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(); movementTree.start();
} }
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD, true); controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD, true);
//send to server
Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter); Vector3f position = EntityUtils.getEntityPosition(Globals.playerCharacter);
EntityMessage outgoingMessage = EntityMessage.constructMoveMessage( EntityMessage outgoingMessage = EntityMessage.constructMoveMessage(
Globals.playerCharacter.getId(), Globals.playerCharacter.getId(),
@ -241,6 +242,16 @@ public class ControlHandler {
movementTree.start(); movementTree.start();
} }
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD, true); 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 { } else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD) == true){ if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD) == true){
movementTree.slowdown(); movementTree.slowdown();
@ -258,6 +269,16 @@ public class ControlHandler {
movementTree.start(); movementTree.start();
} }
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT, true); 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 { } else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT) == true){ if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_LEFT) == true){
movementTree.slowdown(); movementTree.slowdown();
@ -275,6 +296,16 @@ public class ControlHandler {
movementTree.start(); movementTree.start();
} }
controlsState.put(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT, true); 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 { } else {
if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT) == true){ if(controlsState.get(DATA_STRING_INPUT_CODE_MOVEMENT_RIGHT) == true){
movementTree.slowdown(); movementTree.slowdown();

View File

@ -285,7 +285,7 @@ public class Main {
public static void initControlHandler(){ public static void initControlHandler(){
ControlHandler.generateExampleControlsMap(); // ControlHandler.generateExampleControlsMap();
Globals.controlHandler = Utilities.loadObjectFromBakedJsonFile("/Config/keybinds.json",ControlHandler.class); 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 //literally just adding this to scope so I can use `` Entity target; `` again
if(message.getentityID() != -1){ if(message.getentityID() != -1){
Entity target = Globals.entityManager.getEntityFromId(message.getentityID()); 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); // CreatureUtils.attachEntityMessageToMovementTree(Globals.entityManager.getEntityFromId(message.getId()),message);
break; break;

View File

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