public class MessageRegionTrigger extends java.lang.Object implements RegionTrigger
The trigger has two modes: subject and target. In subject mode, the trigger publishes a SubjectMessage sub-class which will be received by all perceivers of the subject (the player). In target mode, the trigger publishes a TargetMessage sub-class which will apply only to the object itself.
The trigger can add a fixed set of properties to each message. And the properties can be filtered by a set of property exclusions. The message will always have a "regionAction" property set to either "onEnter" or "onLeave" indicating which action triggered the message.
The remaining trigger behavior is controled by custom region properties:
Modifier and Type | Field and Description |
---|---|
static int |
SUBJECT_MODE
Publish a 'subject' message (SubjectMessage sub-class).
|
static int |
TARGET_MODE
Publish a 'targeted' message (TargetMessage sub-class).
|
Constructor and Description |
---|
MessageRegionTrigger() |
MessageRegionTrigger(int mode) |
MessageRegionTrigger(int mode,
java.util.Map<java.lang.String,java.io.Serializable> messageProperties,
java.util.Set<java.lang.String> propertyExclusions) |
Modifier and Type | Method and Description |
---|---|
protected void |
configureMessage(Message message,
AOObject obj,
Region region,
java.lang.String action) |
protected void |
copyProperties(java.lang.String propertyNames,
java.util.Map<java.lang.String,java.io.Serializable> source,
java.util.Map<java.lang.String,java.io.Serializable> destination) |
void |
enter(AOObject obj,
Region region)
Send message when object enters a region.
|
java.util.Map<java.lang.String,java.io.Serializable> |
getMessageProperties()
Get the additional message properties.
|
int |
getMode()
Get the trigger mode.
|
java.util.Set<java.lang.String> |
getPropertyExclusions()
Get the property exclusions.
|
void |
leave(AOObject obj,
Region region)
Send message when object leaves a region.
|
protected Message |
makeMessage(AOObject obj,
Region region) |
void |
setMessageProperties(java.util.Map<java.lang.String,java.io.Serializable> messageProperties)
Set the additional message properties.
|
void |
setMode(int mode)
Set the trigger mode to TARGET_MODE or SUBJECT_MODE.
|
void |
setPropertyExclusions(java.util.Set<java.lang.String> propertyExclusions)
Set the property exclusions.
|
public static final int TARGET_MODE
public static final int SUBJECT_MODE
public MessageRegionTrigger()
public MessageRegionTrigger(int mode)
public MessageRegionTrigger(int mode, java.util.Map<java.lang.String,java.io.Serializable> messageProperties, java.util.Set<java.lang.String> propertyExclusions)
public int getMode()
public void setMode(int mode)
public java.util.Map<java.lang.String,java.io.Serializable> getMessageProperties()
public void setMessageProperties(java.util.Map<java.lang.String,java.io.Serializable> messageProperties)
public java.util.Set<java.lang.String> getPropertyExclusions()
public void setPropertyExclusions(java.util.Set<java.lang.String> propertyExclusions)
public void enter(AOObject obj, Region region)
enter
in interface RegionTrigger
public void leave(AOObject obj, Region region)
leave
in interface RegionTrigger
protected void configureMessage(Message message, AOObject obj, Region region, java.lang.String action)
protected void copyProperties(java.lang.String propertyNames, java.util.Map<java.lang.String,java.io.Serializable> source, java.util.Map<java.lang.String,java.io.Serializable> destination)