Marauroa Core API: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Hendrik Brummermann |
imported>Blacklads Undo revision 11663 by Ufizavipupu (Talk) |
||
| (41 intermediate revisions by 3 users not shown) | |||
| Line 3: | Line 3: | ||
Marauroa exposes a very simplified and reduced API so you can easily develop your own games. A nightly build [http:// |
Marauroa exposes a very simplified and reduced API so you can easily develop your own games. A nightly build [http://stendhalgame.org/hudson/job/marauroa_HEAD/javadoc/ JavaDoc API Documentation] is available, too. |
||
== Content == |
== Content == |
||
[[Image:Classdiagram_marauroa.common.game_rp_stubs.png|thumb|Class Diagram of RP* classes]] |
|||
The main entities you should know about are: |
The main entities you should know about are: |
||
* Attributes |
* Attributes |
||
| Line 209: | Line 211: | ||
Now for the complex part. Where it all becomes a little nuts!: IRPZone and IRPRuleProcessor interfaces |
Now for the complex part. Where it all becomes a little nuts!: IRPZone and IRPRuleProcessor interfaces |
||
=RPWorld= |
==RPWorld== |
||
This class is just a container of zones. |
This class is just a container of zones. |
||
| Line 216: | Line 218: | ||
onInit and onFinish are called on server startup and finalization. You need to subclass RPWorld to give proper behaviour to them. |
onInit and onFinish are called on server startup and finalization. You need to subclass RPWorld to give proper behaviour to them. |
||
<source lang="java"> |
|||
| ⚫ | |||
public void |
public void onInit() throws Exception |
||
| ⚫ | |||
</source> |
|||
Some helper methods to add zones and iterate them. |
Some helper methods to add zones and iterate them. |
||
<source lang="java"> |
|||
public void addRPZone(IRPZone zone) |
|||
public |
public void addRPZone(IRPZone zone) |
||
public IRPZone getRPZone( |
public IRPZone getRPZone(IRPZone.ID zoneid) |
||
public |
public IRPZone getRPZone(RPObject.ID objectid) |
||
public |
public Iterator<IRPZone> iterator() |
||
public int size() |
|||
</source> |
|||
Methods to add,get,test existence, remove and modify objects. |
Methods to add, get, test existence, remove and modify objects. modify() is as you know for delta^2 algorithm. |
||
Modify is as you know for delta^2 algorithm. |
|||
<source lang="java"> |
|||
| ⚫ | |||
public |
public void add(RPObject object) throws NoRPZoneException, RPObjectInvalidException |
||
public |
public RPObject get(RPObject.ID id) throws NoRPZoneException, RPObjectInvalidException |
||
public |
public boolean has(RPObject.ID id) throws NoRPZoneException, RPObjectInvalidException |
||
public |
public RPObject remove(RPObject.ID id) throws NoRPZoneException, RPObjectNotFoundException |
||
| ⚫ | |||
</source> |
|||
These are helper methods for changing the zone of an object. Use them instead of doing it by hand. |
These are helper methods for changing the zone of an object. Use them instead of doing it by hand. |
||
<source lang="java"> |
|||
| ⚫ | |||
public void changeZone( |
public void changeZone(IRPZone.ID oldzoneid, IRPZone.ID newzoneid, RPObject object) throws NoRPZoneException |
||
| ⚫ | |||
</source> |
|||
=IRPZone= |
==IRPZone== |
||
IRPZone is the interface that handles the world content and the perceptions. In most cases you should use the implementation MarauroaRPZone and extend it. |
IRPZone is the interface that handles the world content and the perceptions. In most cases you should use the implementation MarauroaRPZone and extend it. |
||
| Line 291: | Line 300: | ||
* buildMapObjectsList |
* buildMapObjectsList |
||
=IRPRuleProcessor= |
==IRPRuleProcessor== |
||
This class must be implemented fully, but it is a childs toy compared to IRPZone :). This is where you code all your games rules.<br> |
This class must be implemented fully, but it is a childs toy compared to IRPZone :). This is where you code all your games rules.<br> |
||
The API is as follows: |
The API is as follows: |
||
| Line 329: | Line 338: | ||
[[Category:Marauroa]] |
[[Category:Marauroa]] |
||
{{#breadcrumbs: [[Marauroa]] | [[Navigation for Marauroa Users|Using]] | [[Marauroa Core API|Core API]]}} |
|||