fixing my dumbass bugs

This commit is contained in:
austin 2021-06-20 00:02:17 -04:00
parent 2926f8b49b
commit aba735dac0
4 changed files with 68 additions and 2 deletions

View File

@ -215,6 +215,7 @@ public class ControlHandler {
movementTree.start();
}
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD, true);
//send to server
Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter);
EntityMessage outgoingMessage = EntityMessage.constructMoveMessage(
Globals.playerCharacter.getId(),
@ -241,6 +242,16 @@ public class ControlHandler {
movementTree.start();
}
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD, true);
//send to server
Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter);
EntityMessage outgoingMessage = EntityMessage.constructMoveMessage(
Globals.playerCharacter.getId(),
System.currentTimeMillis(),
position.x,
position.y,
position.z
);
Globals.clientConnection.queueOutgoingMessage(outgoingMessage);
} else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD) == true){
movementTree.slowdown();
@ -258,6 +269,16 @@ public class ControlHandler {
movementTree.start();
}
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT, true);
//send to server
Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter);
EntityMessage outgoingMessage = EntityMessage.constructMoveMessage(
Globals.playerCharacter.getId(),
System.currentTimeMillis(),
position.x,
position.y,
position.z
);
Globals.clientConnection.queueOutgoingMessage(outgoingMessage);
} else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT) == true){
movementTree.slowdown();
@ -275,6 +296,16 @@ public class ControlHandler {
movementTree.start();
}
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT, true);
//send to server
Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter);
EntityMessage outgoingMessage = EntityMessage.constructMoveMessage(
Globals.playerCharacter.getId(),
System.currentTimeMillis(),
position.x,
position.y,
position.z
);
Globals.clientConnection.queueOutgoingMessage(outgoingMessage);
} else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT) == true){
movementTree.slowdown();

View File

@ -285,7 +285,7 @@ public class Main {
public static void initControlHandler(){
ControlHandler.generateExampleControlsMap();
// ControlHandler.generateExampleControlsMap();
Globals.controlHandler = Utilities.loadObjectFromBakedJsonFile("/Config/keybinds.json",ControlHandler.class);
}

View File

@ -60,7 +60,10 @@ public class ClientProtocol {
//literally just adding this to scope so I can use `` Entity target; `` again
if(message.getentityID() != -1){
Entity target = Globals.entityManager.getEntityFromId(message.getentityID());
EntityUtils.getEntityPosition(target).set(message.getpositionX(),message.getpositionY(),message.getpositionZ());
System.out.println("ID: " + message.getentityID());
if(target != null){
EntityUtils.getEntityPosition(target).set(message.getpositionX(),message.getpositionY(),message.getpositionZ());
}
}
// CreatureUtils.attachEntityMessageToMovementTree(Globals.entityManager.getEntityFromId(message.getId()),message);
break;

View File

@ -2,10 +2,12 @@ package electrosphere.net.parser.util;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.concurrent.Semaphore;
public class ByteStreamUtils {
static ByteBuffer integerCompactor;
static Semaphore bufferLock = new Semaphore(1);
static {
integerCompactor = ByteBuffer.allocate(8);
@ -13,31 +15,44 @@ public class ByteStreamUtils {
public static int popIntFromByteQueue(List<Byte> queue){
int rVal = -1;
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.put(0,queue.remove(0));
integerCompactor.put(1,queue.remove(0));
integerCompactor.put(2,queue.remove(0));
integerCompactor.put(3,queue.remove(0));
integerCompactor.position(0);
integerCompactor.limit(4);
rVal = integerCompactor.getInt();
bufferLock.release();
return rVal;
}
public static float popFloatFromByteQueue(List<Byte> queue){
float rVal = -1;
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.put(0,queue.remove(0));
integerCompactor.put(1,queue.remove(0));
integerCompactor.put(2,queue.remove(0));
integerCompactor.put(3,queue.remove(0));
integerCompactor.position(0);
integerCompactor.limit(4);
rVal = integerCompactor.getFloat();
bufferLock.release();
return rVal;
}
public static long popLongFromByteQueue(List<Byte> queue){
long rVal = -1;
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(8);
integerCompactor.put(0,queue.remove(0));
integerCompactor.put(1,queue.remove(0));
integerCompactor.put(2,queue.remove(0));
@ -47,39 +62,55 @@ public class ByteStreamUtils {
integerCompactor.put(6,queue.remove(0));
integerCompactor.put(7,queue.remove(0));
integerCompactor.position(0);
integerCompactor.limit(8);
rVal = integerCompactor.getLong();
bufferLock.release();
return rVal;
}
public static byte[] serializeIntToBytes(int i){
byte[] rVal = new byte[4];
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.putInt(i);
integerCompactor.position(0);
integerCompactor.limit(4);
rVal[0] = integerCompactor.get(0);
rVal[1] = integerCompactor.get(1);
rVal[2] = integerCompactor.get(2);
rVal[3] = integerCompactor.get(3);
bufferLock.release();
return rVal;
}
public static byte[] serializeFloatToBytes(float i){
byte[] rVal = new byte[4];
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.putFloat(i);
integerCompactor.position(0);
integerCompactor.limit(4);
rVal[0] = integerCompactor.get(0);
rVal[1] = integerCompactor.get(1);
rVal[2] = integerCompactor.get(2);
rVal[3] = integerCompactor.get(3);
bufferLock.release();
return rVal;
}
public static byte[] serializeLongToBytes(long i){
byte[] rVal = new byte[8];
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(8);
integerCompactor.putLong(i);
integerCompactor.position(0);
integerCompactor.limit(8);
rVal[0] = integerCompactor.get(0);
rVal[1] = integerCompactor.get(1);
rVal[2] = integerCompactor.get(2);
@ -88,6 +119,7 @@ public class ByteStreamUtils {
rVal[5] = integerCompactor.get(5);
rVal[6] = integerCompactor.get(6);
rVal[7] = integerCompactor.get(7);
bufferLock.release();
return rVal;
}
}