119 lines
4.5 KiB
Java
119 lines
4.5 KiB
Java
package electrosphere.net.server;
|
|
|
|
import electrosphere.entity.Entity;
|
|
import electrosphere.entity.types.creature.CreatureUtils;
|
|
import electrosphere.main.Globals;
|
|
import electrosphere.net.parser.net.message.EntityMessage;
|
|
import electrosphere.net.parser.net.message.NetworkMessage;
|
|
import electrosphere.net.parser.net.message.WorldMessage;
|
|
|
|
public class ServerProtocol {
|
|
|
|
ServerConnectionHandler connectionHandler;
|
|
|
|
public ServerProtocol(ServerConnectionHandler connectionHandler){
|
|
this.connectionHandler = connectionHandler;
|
|
}
|
|
|
|
void handleMessage(NetworkMessage message){
|
|
switch(message.getType()){
|
|
case ENTITY_MESSAGE:
|
|
handleEntityMessage((EntityMessage)message);
|
|
break;
|
|
case WORLD_MESSAGE:
|
|
handleWorldMessage((WorldMessage)message);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void handleEntityMessage(EntityMessage message){
|
|
Entity targetEntity;
|
|
switch(message.getMessageSubtype()){
|
|
case CREATE:
|
|
break;
|
|
case DESTROY:
|
|
break;
|
|
case MOVE:
|
|
targetEntity = Globals.entityManager.getEntityFromId(message.getentityID());
|
|
if(targetEntity != null){
|
|
CreatureUtils.attachEntityMessageToMovementTree(targetEntity,message);
|
|
}
|
|
break;
|
|
case SETBEHAVIORTREE:
|
|
break;
|
|
case MOVEUPDATE:
|
|
targetEntity = Globals.entityManager.getEntityFromId(message.getentityID());
|
|
if(targetEntity != null){
|
|
CreatureUtils.attachEntityMessageToMovementTree(targetEntity,message);
|
|
}
|
|
break;
|
|
case ATTACKUPDATE:
|
|
targetEntity = Globals.entityManager.getEntityFromId(message.getentityID());
|
|
if(targetEntity != null){
|
|
CreatureUtils.attachEntityMessageToAttackTree(targetEntity,message);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
void handleWorldMessage(WorldMessage message){
|
|
switch(message.getMessageSubtype()){
|
|
case REQUESTMACROVALUES:
|
|
/*
|
|
int locationX,
|
|
int locationY,
|
|
float macroValue00,
|
|
float macroValue01,
|
|
float macroValue02,
|
|
float macroValue10,
|
|
float macroValue11,
|
|
float macroValue12,
|
|
float macroValue20,
|
|
float macroValue21,
|
|
float macroValue22,
|
|
long randomizerValue00,
|
|
long randomizerValue01,
|
|
long randomizerValue02,
|
|
long randomizerValue10,
|
|
long randomizerValue11,
|
|
long randomizerValue12,
|
|
long randomizerValue20,
|
|
long randomizerValue21,
|
|
long randomizerValue22
|
|
*/
|
|
float[][] macroValues = Globals.serverTerrainManager.getMacroValues(message.getlocationX(), message.getlocationY());
|
|
long[][] randomizer = Globals.serverTerrainManager.getRandomizer(message.getlocationX(), message.getlocationY());
|
|
connectionHandler.addMessagetoOutgoingQueue(
|
|
WorldMessage.constructMacroValueMessage(
|
|
message.getlocationX(),
|
|
message.getlocationY(),
|
|
|
|
|
|
macroValues[0][0],
|
|
macroValues[0][1],
|
|
macroValues[0][2],
|
|
macroValues[1][0],
|
|
macroValues[1][1],
|
|
macroValues[1][2],
|
|
macroValues[2][0],
|
|
macroValues[2][1],
|
|
macroValues[2][2],
|
|
|
|
|
|
randomizer[0][0],
|
|
randomizer[0][1],
|
|
randomizer[0][2],
|
|
randomizer[1][0],
|
|
randomizer[1][1],
|
|
randomizer[1][2],
|
|
randomizer[2][0],
|
|
randomizer[2][1],
|
|
randomizer[2][2]
|
|
)
|
|
);
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|