Class SFSMMOApi
- java.lang.Object
-
- com.smartfoxserver.v2.api.SFSMMOApi
-
- All Implemented Interfaces:
ISFSMMOApi
public class SFSMMOApi extends java.lang.Object implements ISFSMMOApi
Provides advanced features for MMO-related functionalities.Tutorial
To learn more see this introductory tutorial.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.slf4j.Logger
log
protected com.smartfoxserver.v2.api.response.ISFSMMOResponseApi
mmoResponseApi
protected SmartFoxServer
sfs
protected SFSApi
sfsAPI
-
Constructor Summary
Constructors Constructor Description SFSMMOApi(SmartFoxServer sfs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.smartfoxserver.v2.api.response.ISFSMMOResponseApi
getResponseAPI()
void
removeMMOItem(BaseMMOItem item)
Remove an MMOItem from an MMORoom.void
sendObjectMessage(Room targetRoom, User sender, ISFSObject message, Vec3D aoi)
Send an Object message based on a custom SFSObject that can contain any data.void
sendPublicMessage(Room targetRoom, User sender, java.lang.String message, ISFSObject params, Vec3D aoi)
Sends a public chat message.void
setMMOItemPosition(BaseMMOItem item, Vec3D pos, Room targetRoom)
Set or update an MMOItem inside an MMORoomvoid
setMMOItemVariables(BaseMMOItem item, java.util.List<IMMOItemVariable> variables)
Set MMOItemVariables.void
setMMOItemVariables(BaseMMOItem item, java.util.List<IMMOItemVariable> variables, boolean fireClientEvent)
Set MMOItemVariables.void
setUserPosition(User user, Vec3D pos, Room targetRoom)
Set the new User position inside an MMORoom
-
-
-
Field Detail
-
sfs
protected final SmartFoxServer sfs
-
log
protected final org.slf4j.Logger log
-
sfsAPI
protected final SFSApi sfsAPI
-
mmoResponseApi
protected final com.smartfoxserver.v2.api.response.ISFSMMOResponseApi mmoResponseApi
-
-
Constructor Detail
-
SFSMMOApi
public SFSMMOApi(SmartFoxServer sfs)
-
-
Method Detail
-
getResponseAPI
public com.smartfoxserver.v2.api.response.ISFSMMOResponseApi getResponseAPI()
- Specified by:
getResponseAPI
in interfaceISFSMMOApi
-
sendObjectMessage
public void sendObjectMessage(Room targetRoom, User sender, ISFSObject message, Vec3D aoi)
Send an Object message based on a custom SFSObject that can contain any data. Typically this is used for sending game moves to players or other game related updates.
The difference with the regular version of this Request is that it works with a custom Area Of Interest (AOI) inside an MMORoom. Instead of using the default Room AOI here we can specify a custom AOI which should be smaller that the default one. Attempting to use a larger AOI is not possible.
NOTE: The sender must be joined in the target MMORoom.
- Specified by:
sendObjectMessage
in interfaceISFSMMOApi
- Parameters:
targetRoom
- the MMORoomsender
- the sender of the Objectmessage
- the dataaoi
- the custom Area Of Interest (AOI)
-
sendPublicMessage
public void sendPublicMessage(Room targetRoom, User sender, java.lang.String message, ISFSObject params, Vec3D aoi)
Sends a public chat message.The difference with the regular version of this Request is that it works with a custom Area Of Interest (AOI) inside an MMORoom. Instead of using the default Room AOI here we can specify a custom AOI which should be smaller that the default one. Attempting to use a larger AOI is not possible.
- Specified by:
sendPublicMessage
in interfaceISFSMMOApi
- Parameters:
targetRoom
- the MMORoomsender
- the sender of the Messagemessage
- the chat messageparams
- an optional data object (e.g. to define font and color of the message)aoi
- the custom Area Of Interest (AOI)
-
setUserPosition
public void setUserPosition(User user, Vec3D pos, Room targetRoom)
Set the new User position inside an MMORoom- Specified by:
setUserPosition
in interfaceISFSMMOApi
- Parameters:
user
- The Userpos
- The new positiontargetRoom
- The target MMORoom- See Also:
MMORoom
-
setMMOItemPosition
public void setMMOItemPosition(BaseMMOItem item, Vec3D pos, Room targetRoom)
Set or update an MMOItem inside an MMORoom- Specified by:
setMMOItemPosition
in interfaceISFSMMOApi
- Parameters:
item
- the MMOItempos
- the position in 2D/3D spacetargetRoom
- the target MMORoom- See Also:
MMORoom
,MMOItem
-
removeMMOItem
public void removeMMOItem(BaseMMOItem item)
Remove an MMOItem from an MMORoom. (The Room is not required as the system already keeps track of which MMOItem belongs to which MMORoom) This in turn will affect all Users who had this MMOItem in their AOI via a client side PROXIMITY_LIST_UPDATE- Specified by:
removeMMOItem
in interfaceISFSMMOApi
- Parameters:
item
- the MMOItem to remove- See Also:
MMORoom
,MMOItem
-
setMMOItemVariables
public void setMMOItemVariables(BaseMMOItem item, java.util.List<IMMOItemVariable> variables)
Set MMOItemVariables. Only the changed variables are broadcast to the Users that can "see" the MMOItem in the MMORoom. In order to delete a variable you can set it to null.- Specified by:
setMMOItemVariables
in interfaceISFSMMOApi
- Parameters:
item
- the MMOItem, owner of the variablesvariables
- the variables- See Also:
MMOItemVariable
,MMOItem
,MMORoom
-
setMMOItemVariables
public void setMMOItemVariables(BaseMMOItem item, java.util.List<IMMOItemVariable> variables, boolean fireClientEvent)
Set MMOItemVariables. Only the changed variables are broadcast to the Users that can "see" the MMOItem in the MMORoom. In order to delete a variable you can set it to null.- Specified by:
setMMOItemVariables
in interfaceISFSMMOApi
- Parameters:
item
- the MMOItem, owner of the variablesvariables
- the variablesfireClientEvent
- set to true to send an update to clients- See Also:
MMOItemVariable
,MMOItem
,MMORoom
-
-