Class OccupantArea
java.lang.Object
marauroa.common.game.Attributes
marauroa.common.game.SlotOwner
marauroa.common.game.RPObject
games.stendhal.server.entity.Entity
games.stendhal.server.entity.mapstuff.area.AreaEntity
games.stendhal.server.entity.mapstuff.area.OccupantArea
- All Implemented Interfaces:
MovementListener,TurnListener,Killer,Cloneable,Iterable<String>,Serializable
- Direct Known Subclasses:
DamagingArea,LifeDrainArea
An base area that performs actions on RPEntity's that are entering, leaving,
moving in, or standing in it's space.
-
Nested Class Summary
Nested classes/interfaces inherited from class marauroa.common.game.RPObject
RPObject.ID -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intHow often an action is done while stationary (in turns).protected booleanApplies only to players.protected List<RPObject.ID>A list of entities [potentially] occupying this area.Fields inherited from class games.stendhal.server.entity.mapstuff.area.AreaEntity
ATTR_NAMEFields inherited from class marauroa.common.game.RPObject
INVALID_ID -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdd an entity to the target list.voidbeforeMove(ActiveEntity entity, StendhalRPZone zone, int oldX, int oldY, int newX, int newY) Invoked before an entity moves while over the object area.protected booleanhandleAdded(RPEntity entity) An entity has entered the area.protected booleanhandleInterval(RPEntity entity) Apply actions done at regular intervals.protected booleanhandleMovement(RPEntity entity) Apply actions done while moving.protected voidhandleRemoved(RPEntity entity) An entity has left the area.booleanisOccupant(RPEntity entity) Check if an entity is an [acknowledged] occupant of this area.voidonAdded(StendhalRPZone zone) Called when this object is added to a zone.voidonEntered(ActiveEntity entity, StendhalRPZone zone, int newX, int newY) Invoked when an entity enters the object area.voidonExited(ActiveEntity entity, StendhalRPZone zone, int oldX, int oldY) Invoked when an entity leaves the object area.voidonMoved(ActiveEntity entity, StendhalRPZone zone, int oldX, int oldY, int newX, int newY) Invoked when an entity moves while over the object area.voidonRemoved(StendhalRPZone zone) Called when this object is being removed from a zone.voidonTurnReached(int currentTurn) This method is called when the turn number is reached.protected voidremoveTarget(RPEntity entity) Remove an entity from the target list.voidsetPlayersOnly(boolean playersOnly) Set whether only players get affected.voidupdate()Handle object attribute change(s).Methods inherited from class games.stendhal.server.entity.mapstuff.area.AreaEntity
addBehaviour, generateRPClass, getDescriptionName, getName, getTitle, setNameMethods inherited from class games.stendhal.server.entity.Entity
describe, getAdjacentNodes, getArea, getArea, getCursor, getDescription, getEntitySlot, getHeight, getOrigin, getResistance, getResistance, getWidth, getX, getY, getZone, hasDescription, isInSight, isObstacle, nextTo, nextTo, notifyWorldAboutChanges, onMoved, setCursor, setDescription, setEntityClass, setEntitySubclass, setMenu, setPosition, setResistance, setSize, setVisibility, slotIterator, slots, squaredDistance, squaredDistance, stoppedMethods inherited from class marauroa.common.game.RPObject
addEvent, addLink, addLink, addMap, addSlot, addSlot, applyDifferences, clearEvents, clearVisible, clone, containsKey, equals, events, eventsIterator, fill, get, getBaseContainer, getBoolean, getContainer, getContainerBaseOwner, getContainerOwner, getContainerSlot, getDifferences, getDouble, getFromSlots, getID, getInt, getLink, getLinkedObject, getMap, getSlot, has, hashCode, hasLink, hasMap, hasSlot, hide, isContained, isEmpty, isHidden, isStorable, maps, put, put, put, put, readObject, remove, removeLink, removeMap, removeSlot, resetAddedAndDeleted, resetAddedAndDeletedMaps, resetAddedAndDeletedRPLink, resetAddedAndDeletedRPSlot, setAddedMaps, setAddedRPSlot, setContainer, setDeletedMaps, setDeletedRPSlot, setID, size, slots, slotsIterator, store, toString, unhide, unstore, writeObject, writeObject, writeToJsonMethods inherited from class marauroa.common.game.SlotOwner
deserializeRPSlots, fill, serializeRPSlotsMethods inherited from class marauroa.common.game.Attributes
add, applyDifferences, get, getBool, getDouble, getInt, getList, getLong, getRPClass, has, instanceOf, iterator, put, put, put, put, put, readFromMap, remove, resetAddedAndDeletedAttributes, setAddedAttributes, setDeletedAttributes, setRPClass, setRPClass, toAttributeStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface games.stendhal.server.core.events.MovementListener
getArea
-
Field Details
-
interval
protected int intervalHow often an action is done while stationary (in turns). -
playersOnly
protected boolean playersOnlyApplies only to players. -
targets
A list of entities [potentially] occupying this area.
-
-
Constructor Details
-
OccupantArea
public OccupantArea(int width, int height, int interval) Create an occupant area.- Parameters:
width- Width of this areaheight- Height of this areainterval- Standing action interval.
-
-
Method Details
-
addTarget
Add an entity to the target list.- Parameters:
entity- The RPEntity to add.
-
isOccupant
Check if an entity is an [acknowledged] occupant of this area.- Parameters:
entity- to be tested- Returns:
- true if is occupant
-
handleAdded
An entity has entered the area. This should not apply any actions thathandleMovement()does.- Parameters:
entity- The RPEntity that was added.- Returns:
falseif this entity should not be processed,trueotherwise.
-
handleInterval
Apply actions done at regular intervals.- Parameters:
entity- The RPEntity occupant.- Returns:
falseif this entity should be removed from further processing,trueotherwise.
-
handleMovement
Apply actions done while moving.- Parameters:
entity- The RPEntity that moved.- Returns:
falseif this entity should be removed from further processing,trueotherwise.
-
handleRemoved
An entity has left the area. This should not apply any actions thathandleMovement()does.- Parameters:
entity- The RPEntity that was added.
-
removeTarget
Remove an entity from the target list.- Parameters:
entity- The RPEntity to remove.
-
setPlayersOnly
public void setPlayersOnly(boolean playersOnly) Set whether only players get affected.- Parameters:
playersOnly- Whether to only affect players.
-
onAdded
Called when this object is added to a zone.- Overrides:
onAddedin classAreaEntity- Parameters:
zone- The zone this was added to.
-
onRemoved
Called when this object is being removed from a zone.- Overrides:
onRemovedin classAreaEntity- Parameters:
zone- The zone this will be removed from.
-
update
public void update()Handle object attribute change(s). -
onEntered
Invoked when an entity enters the object area.- Specified by:
onEnteredin interfaceMovementListener- Parameters:
entity- The entity that moved.zone- The new zone.newX- The new X coordinate.newY- The new Y coordinate.
-
onExited
Invoked when an entity leaves the object area.- Specified by:
onExitedin interfaceMovementListener- Parameters:
entity- The entity that entered.zone- The old zone.oldX- The old X coordinate.oldY- The old Y coordinate.
-
onMoved
public void onMoved(ActiveEntity entity, StendhalRPZone zone, int oldX, int oldY, int newX, int newY) Invoked when an entity moves while over the object area.- Specified by:
onMovedin interfaceMovementListener- Parameters:
entity- The entity that left.zone- The zone.oldX- The old X coordinate.oldY- The old Y coordinate.newX- The new X coordinate.newY- The new Y coordinate.
-
onTurnReached
public void onTurnReached(int currentTurn) This method is called when the turn number is reached.- Specified by:
onTurnReachedin interfaceTurnListener- Parameters:
currentTurn- Current turn number.
-
beforeMove
public void beforeMove(ActiveEntity entity, StendhalRPZone zone, int oldX, int oldY, int newX, int newY) Description copied from interface:MovementListenerInvoked before an entity moves while over the object area.- Specified by:
beforeMovein interfaceMovementListener- Parameters:
entity- The entity that left.zone- The zone.oldX- The old X coordinate.oldY- The old Y coordinate.newX- The new X coordinate.newY- The new Y coordinate.
-