Working on getting items streaming over net
This commit is contained in:
parent
1c4b2d9846
commit
6bea0cc24f
@ -78,7 +78,7 @@ public class ControlHandler {
|
|||||||
MAIN_GAME,
|
MAIN_GAME,
|
||||||
}
|
}
|
||||||
|
|
||||||
ControlsState state;
|
ControlsState state = ControlsState.TITLE_MENU;
|
||||||
|
|
||||||
|
|
||||||
HashMap<String, Integer> controlsMap;
|
HashMap<String, Integer> controlsMap;
|
||||||
|
|||||||
@ -42,4 +42,8 @@ public class ItemUtils {
|
|||||||
actor.playAnimation("Sword|Idle");
|
actor.playAnimation("Sword|Idle");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isItem(Entity item){
|
||||||
|
return item.getDataKeys().contains(EntityDataStrings.ITEM_IS_ITEM);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,7 +41,7 @@ public class DrawCellManager {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int drawRadius = 1;
|
int drawRadius = 5;
|
||||||
int drawStepdownInterval = 3;
|
int drawStepdownInterval = 3;
|
||||||
int drawStepdownValue = 5;
|
int drawStepdownValue = 5;
|
||||||
|
|
||||||
|
|||||||
@ -39,4 +39,16 @@ public class AttachUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isAttached(Entity e){
|
||||||
|
return e.getDataKeys().contains(EntityDataStrings.ATTACH_ENTITY_IS_ATTACHED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getTargetBone(Entity e){
|
||||||
|
return (String)e.getData(EntityDataStrings.ATTACH_TARGET_BONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Entity getParent(Entity e){
|
||||||
|
return (Entity)e.getData(EntityDataStrings.ATTACH_PARENT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import electrosphere.entity.Entity;
|
|||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
import electrosphere.entity.types.creature.CreatureUtils;
|
import electrosphere.entity.types.creature.CreatureUtils;
|
||||||
import electrosphere.game.client.world.ClientWorldData;
|
import electrosphere.game.client.world.ClientWorldData;
|
||||||
|
import electrosphere.game.state.AttachUtils;
|
||||||
import electrosphere.main.Globals;
|
import electrosphere.main.Globals;
|
||||||
import electrosphere.main.Main;
|
import electrosphere.main.Main;
|
||||||
import electrosphere.net.parser.net.message.EntityMessage;
|
import electrosphere.net.parser.net.message.EntityMessage;
|
||||||
@ -80,6 +81,14 @@ public class ClientProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ATTACHENTITYTOENTITY:
|
||||||
|
Entity child = Globals.entityManager.getEntityFromId(message.getentityID());
|
||||||
|
Entity parent = Globals.entityManager.getEntityFromId(message.gettargetID());
|
||||||
|
System.out.println("Attach " + message.getentityID() + " to " + message.gettargetID() + " on bone " + message.getbone());
|
||||||
|
if(child != null && parent != null){
|
||||||
|
AttachUtils.attachEntityToEntityAtBone(parent, child, message.getbone());
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package electrosphere.net.parser.net.message;
|
package electrosphere.net.parser.net.message;
|
||||||
|
|
||||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EntityMessage extends NetworkMessage {
|
public class EntityMessage extends NetworkMessage {
|
||||||
@ -12,6 +13,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
DESTROY,
|
DESTROY,
|
||||||
SETBEHAVIORTREE,
|
SETBEHAVIORTREE,
|
||||||
SETPROPERTY,
|
SETPROPERTY,
|
||||||
|
ATTACHENTITYTOENTITY,
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityMessageType messageType;
|
EntityMessageType messageType;
|
||||||
@ -25,6 +27,8 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
int treeType;
|
int treeType;
|
||||||
int treeStatus;
|
int treeStatus;
|
||||||
long time;
|
long time;
|
||||||
|
String bone;
|
||||||
|
int targetID;
|
||||||
|
|
||||||
EntityMessage(EntityMessageType messageType){
|
EntityMessage(EntityMessageType messageType){
|
||||||
this.type = MessageType.ENTITY_MESSAGE;
|
this.type = MessageType.ENTITY_MESSAGE;
|
||||||
@ -115,6 +119,22 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
this.time = time;
|
this.time = time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getbone() {
|
||||||
|
return bone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setbone(String bone) {
|
||||||
|
this.bone = bone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int gettargetID() {
|
||||||
|
return targetID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void settargetID(int targetID) {
|
||||||
|
this.targetID = targetID;
|
||||||
|
}
|
||||||
|
|
||||||
static void stripPacketHeader(List<Byte> byteStream){
|
static void stripPacketHeader(List<Byte> byteStream){
|
||||||
byteStream.remove(0);
|
byteStream.remove(0);
|
||||||
byteStream.remove(0);
|
byteStream.remove(0);
|
||||||
@ -158,6 +178,8 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
case TypeBytes.ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY:
|
||||||
|
return EntityMessage.canParseattachEntityToEntityMessage(byteStream);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -282,12 +304,56 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean canParseattachEntityToEntityMessage(List<Byte> byteStream){
|
||||||
|
int currentStreamLength = byteStream.size();
|
||||||
|
List<Byte> temporaryByteQueue = new LinkedList();
|
||||||
|
if(currentStreamLength < 6){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int boneSize = 0;
|
||||||
|
if(currentStreamLength < 10){
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
temporaryByteQueue.add(byteStream.get(6 + 0));
|
||||||
|
temporaryByteQueue.add(byteStream.get(6 + 1));
|
||||||
|
temporaryByteQueue.add(byteStream.get(6 + 2));
|
||||||
|
temporaryByteQueue.add(byteStream.get(6 + 3));
|
||||||
|
boneSize = ByteStreamUtils.popIntFromByteQueue(temporaryByteQueue);
|
||||||
|
}
|
||||||
|
if(currentStreamLength < 10 + boneSize){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(currentStreamLength < 10){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EntityMessage parseattachEntityToEntityMessage(List<Byte> byteStream){
|
||||||
|
EntityMessage rVal = new EntityMessage(EntityMessageType.ATTACHENTITYTOENTITY);
|
||||||
|
stripPacketHeader(byteStream);
|
||||||
|
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteStream));
|
||||||
|
rVal.setbone(ByteStreamUtils.popStringFromByteQueue(byteStream));
|
||||||
|
rVal.settargetID(ByteStreamUtils.popIntFromByteQueue(byteStream));
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EntityMessage constructattachEntityToEntityMessage(int entityID,String bone,int targetID){
|
||||||
|
EntityMessage rVal = new EntityMessage(EntityMessageType.ATTACHENTITYTOENTITY);
|
||||||
|
rVal.setentityID(entityID);
|
||||||
|
rVal.setbone(bone);
|
||||||
|
rVal.settargetID(targetID);
|
||||||
|
rVal.serialize();
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void serialize(){
|
void serialize(){
|
||||||
byte[] intValues = new byte[8];
|
byte[] intValues = new byte[8];
|
||||||
|
byte[] stringBytes;
|
||||||
switch(this.messageType){
|
switch(this.messageType){
|
||||||
case CREATE:
|
case CREATE:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_CREATE_SIZE];
|
rawBytes = new byte[2+4+4+4+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -311,7 +377,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
rawBytes[18+i] = intValues[i];
|
rawBytes[18+i] = intValues[i];
|
||||||
} break;
|
} break;
|
||||||
case SETPOSITION:
|
case SETPOSITION:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_SETPOSITION_SIZE];
|
rawBytes = new byte[2+4+8+4+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -335,7 +401,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
rawBytes[22+i] = intValues[i];
|
rawBytes[22+i] = intValues[i];
|
||||||
} break;
|
} break;
|
||||||
case MOVE:
|
case MOVE:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_MOVE_SIZE];
|
rawBytes = new byte[2+4+8+4+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -359,7 +425,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
rawBytes[22+i] = intValues[i];
|
rawBytes[22+i] = intValues[i];
|
||||||
} break;
|
} break;
|
||||||
case DESTROY:
|
case DESTROY:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_DESTROY_SIZE];
|
rawBytes = new byte[2+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -370,7 +436,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SETBEHAVIORTREE:
|
case SETBEHAVIORTREE:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_SETBEHAVIORTREE_SIZE];
|
rawBytes = new byte[2+4+8+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -393,7 +459,7 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SETPROPERTY:
|
case SETPROPERTY:
|
||||||
rawBytes = new byte[TypeBytes.ENTITY_MESSAGE_TYPE_SETPROPERTY_SIZE];
|
rawBytes = new byte[2+4+8+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -415,6 +481,29 @@ public class EntityMessage extends NetworkMessage {
|
|||||||
rawBytes[18+i] = intValues[i];
|
rawBytes[18+i] = intValues[i];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ATTACHENTITYTOENTITY:
|
||||||
|
rawBytes = new byte[2+4+4+bone.length()+4];
|
||||||
|
//message header
|
||||||
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_ENTITY;
|
||||||
|
//entity messaage header
|
||||||
|
rawBytes[1] = TypeBytes.ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY;
|
||||||
|
intValues = ByteStreamUtils.serializeIntToBytes(entityID);
|
||||||
|
for(int i = 0; i < 4; i++){
|
||||||
|
rawBytes[2+i] = intValues[i];
|
||||||
|
}
|
||||||
|
intValues = ByteStreamUtils.serializeIntToBytes(bone.length());
|
||||||
|
for(int i = 0; i < 4; i++){
|
||||||
|
rawBytes[6+i] = intValues[i];
|
||||||
|
}
|
||||||
|
stringBytes = bone.getBytes();
|
||||||
|
for(int i = 0; i < bone.length(); i++){
|
||||||
|
rawBytes[10+i] = stringBytes[i];
|
||||||
|
}
|
||||||
|
intValues = ByteStreamUtils.serializeIntToBytes(targetID);
|
||||||
|
for(int i = 0; i < 4; i++){
|
||||||
|
rawBytes[10+bone.length()+i] = intValues[i];
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
serialized = true;
|
serialized = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -114,6 +114,11 @@ ENTITY_MESSAGE,
|
|||||||
rVal = EntityMessage.parsesetPropertyMessage(byteStream);
|
rVal = EntityMessage.parsesetPropertyMessage(byteStream);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case TypeBytes.ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY:
|
||||||
|
if(EntityMessage.canParseMessage(byteStream,secondByte)){
|
||||||
|
rVal = EntityMessage.parseattachEntityToEntityMessage(byteStream);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package electrosphere.net.parser.net.message;
|
package electrosphere.net.parser.net.message;
|
||||||
|
|
||||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PlayerMessage extends NetworkMessage {
|
public class PlayerMessage extends NetworkMessage {
|
||||||
@ -104,9 +105,10 @@ public class PlayerMessage extends NetworkMessage {
|
|||||||
@Override
|
@Override
|
||||||
void serialize(){
|
void serialize(){
|
||||||
byte[] intValues = new byte[8];
|
byte[] intValues = new byte[8];
|
||||||
|
byte[] stringBytes;
|
||||||
switch(this.messageType){
|
switch(this.messageType){
|
||||||
case SET_ID:
|
case SET_ID:
|
||||||
rawBytes = new byte[TypeBytes.PLAYER_MESSAGE_TYPE_SET_ID_SIZE];
|
rawBytes = new byte[2+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_PLAYER;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_PLAYER;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -117,7 +119,7 @@ public class PlayerMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SETINITIALDISCRETEPOSITION:
|
case SETINITIALDISCRETEPOSITION:
|
||||||
rawBytes = new byte[TypeBytes.PLAYER_MESSAGE_TYPE_SETINITIALDISCRETEPOSITION_SIZE];
|
rawBytes = new byte[2+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_PLAYER;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_PLAYER;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package electrosphere.net.parser.net.message;
|
package electrosphere.net.parser.net.message;
|
||||||
|
|
||||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class StatusMessage extends NetworkMessage {
|
public class StatusMessage extends NetworkMessage {
|
||||||
@ -63,9 +64,10 @@ public class StatusMessage extends NetworkMessage {
|
|||||||
@Override
|
@Override
|
||||||
void serialize(){
|
void serialize(){
|
||||||
byte[] intValues = new byte[8];
|
byte[] intValues = new byte[8];
|
||||||
|
byte[] stringBytes;
|
||||||
switch(this.messageType){
|
switch(this.messageType){
|
||||||
case READY:
|
case READY:
|
||||||
rawBytes = new byte[TypeBytes.STATUS_MESSAGE_TYPE_READY_SIZE];
|
rawBytes = new byte[2+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_STATUS;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_STATUS;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
|
|||||||
@ -50,6 +50,7 @@ Message categories
|
|||||||
public static final byte ENTITY_MESSAGE_TYPE_DESTROY = 3;
|
public static final byte ENTITY_MESSAGE_TYPE_DESTROY = 3;
|
||||||
public static final byte ENTITY_MESSAGE_TYPE_SETBEHAVIORTREE = 4;
|
public static final byte ENTITY_MESSAGE_TYPE_SETBEHAVIORTREE = 4;
|
||||||
public static final byte ENTITY_MESSAGE_TYPE_SETPROPERTY = 5;
|
public static final byte ENTITY_MESSAGE_TYPE_SETPROPERTY = 5;
|
||||||
|
public static final byte ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY = 6;
|
||||||
/*
|
/*
|
||||||
Entity packet sizes
|
Entity packet sizes
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package electrosphere.net.parser.net.message;
|
package electrosphere.net.parser.net.message;
|
||||||
|
|
||||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WorldMessage extends NetworkMessage {
|
public class WorldMessage extends NetworkMessage {
|
||||||
@ -414,9 +415,10 @@ public class WorldMessage extends NetworkMessage {
|
|||||||
@Override
|
@Override
|
||||||
void serialize(){
|
void serialize(){
|
||||||
byte[] intValues = new byte[8];
|
byte[] intValues = new byte[8];
|
||||||
|
byte[] stringBytes;
|
||||||
switch(this.messageType){
|
switch(this.messageType){
|
||||||
case METADATA:
|
case METADATA:
|
||||||
rawBytes = new byte[TypeBytes.WORLD_MESSAGE_TYPE_METADATA_SIZE];
|
rawBytes = new byte[2+4+4+4+4+4+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -450,7 +452,7 @@ public class WorldMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case REQUESTMACROVALUES:
|
case REQUESTMACROVALUES:
|
||||||
rawBytes = new byte[TypeBytes.WORLD_MESSAGE_TYPE_REQUESTMACROVALUES_SIZE];
|
rawBytes = new byte[2+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -465,7 +467,7 @@ public class WorldMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case UPDATE:
|
case UPDATE:
|
||||||
rawBytes = new byte[TypeBytes.WORLD_MESSAGE_TYPE_UPDATE_SIZE];
|
rawBytes = new byte[2+4+4];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
@ -480,7 +482,7 @@ public class WorldMessage extends NetworkMessage {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MACROVALUE:
|
case MACROVALUE:
|
||||||
rawBytes = new byte[TypeBytes.WORLD_MESSAGE_TYPE_MACROVALUE_SIZE];
|
rawBytes = new byte[2+4+4+4+4+4+4+4+4+4+4+4+8+8+8+8+8+8+8+8+8];
|
||||||
//message header
|
//message header
|
||||||
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
rawBytes[0] = TypeBytes.MESSAGE_TYPE_WORLD;
|
||||||
//entity messaage header
|
//entity messaage header
|
||||||
|
|||||||
@ -68,6 +68,16 @@ public class ByteStreamUtils {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String popStringFromByteQueue(List<Byte> queue){
|
||||||
|
int length = popIntFromByteQueue(queue);
|
||||||
|
byte[] stringBytes = new byte[length];
|
||||||
|
for(int i = 0; i < length; i++){
|
||||||
|
stringBytes[i] = queue.remove(0);
|
||||||
|
}
|
||||||
|
String rVal = new String(stringBytes);
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
public static byte[] serializeIntToBytes(int i){
|
public static byte[] serializeIntToBytes(int i){
|
||||||
byte[] rVal = new byte[4];
|
byte[] rVal = new byte[4];
|
||||||
bufferLock.acquireUninterruptibly();
|
bufferLock.acquireUninterruptibly();
|
||||||
@ -122,4 +132,20 @@ public class ByteStreamUtils {
|
|||||||
bufferLock.release();
|
bufferLock.release();
|
||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public static byte[] serializeStringToBytes(String s){
|
||||||
|
int length = s.length();
|
||||||
|
byte[] rVal = new byte[length + 4]; //the 4 is the header int for the string size
|
||||||
|
byte[] serializedInteger = serializeIntToBytes(length);
|
||||||
|
rVal[0] = serializedInteger[0];
|
||||||
|
rVal[1] = serializedInteger[1];
|
||||||
|
rVal[2] = serializedInteger[2];
|
||||||
|
rVal[3] = serializedInteger[3];
|
||||||
|
byte[] stringBytes = s.getBytes();
|
||||||
|
for(int i = 0; i < length; i++){
|
||||||
|
rVal[4+i] = stringBytes[i];
|
||||||
|
}
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -146,6 +146,17 @@ public class ServerConnectionHandler implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// for(Entity currentEntity : Globals.entityManager.getItemEntities()){
|
||||||
|
// if(AttachUtils.isAttached(currentEntity)){
|
||||||
|
// networkParser.addOutgoingMessage(
|
||||||
|
// EntityMessage.constructattachEntityToEntityMessage(
|
||||||
|
// currentEntity.getId(),
|
||||||
|
// AttachUtils.getTargetBone(currentEntity),
|
||||||
|
// AttachUtils.getParent(currentEntity).getId()
|
||||||
|
// )
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
//let client know it's ready
|
//let client know it's ready
|
||||||
|
|||||||
@ -134,7 +134,6 @@ public class FileLoadingUtils {
|
|||||||
|
|
||||||
public static File unpackBakedFileToFilePath(String bakedFilePath){
|
public static File unpackBakedFileToFilePath(String bakedFilePath){
|
||||||
String sanitizedFilePath = sanitizeBakedFilePath(bakedFilePath);
|
String sanitizedFilePath = sanitizeBakedFilePath(bakedFilePath);
|
||||||
System.out.println(bakedFilePath);
|
|
||||||
if(!Files.exists(new File("./Models").toPath())){
|
if(!Files.exists(new File("./Models").toPath())){
|
||||||
try {
|
try {
|
||||||
Files.createDirectory(new File("./Models").toPath());
|
Files.createDirectory(new File("./Models").toPath());
|
||||||
|
|||||||
@ -297,6 +297,14 @@
|
|||||||
{
|
{
|
||||||
"name" : "time",
|
"name" : "time",
|
||||||
"type" : "FIXED_LONG"
|
"type" : "FIXED_LONG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "bone",
|
||||||
|
"type" : "VAR_STRING"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "targetID",
|
||||||
|
"type" : "FIXED_INT"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"messageTypes" : [
|
"messageTypes" : [
|
||||||
@ -355,6 +363,14 @@
|
|||||||
"propertyType",
|
"propertyType",
|
||||||
"propertyValue"
|
"propertyValue"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"messageName" : "attachEntityToEntity",
|
||||||
|
"data" : [
|
||||||
|
"entityID",
|
||||||
|
"bone",
|
||||||
|
"targetID"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user