fixed incorrect input mappings for server players
This commit is contained in:
@@ -285,7 +285,6 @@ public class VehicleBaseEntity extends Entity {
|
||||
Controller.PollInputs(GetByteArrayValue("INPUT_DATA"));
|
||||
SubClassTickUpdateEvent();
|
||||
TickUpdateEvent();
|
||||
SetBooleanDataValue("ON_GROUND",Math.abs(CurrentPositionVector.y - LastPositionVector.y) < 0.05D);
|
||||
if(this.world.isRemote()){
|
||||
SubClassClientSideTickEvent();
|
||||
ClientSideTickEvent();
|
||||
@@ -319,6 +318,7 @@ public class VehicleBaseEntity extends Entity {
|
||||
public boolean TouchingGround(){return GetBooleanDataValue("ON_GROUND");}
|
||||
|
||||
public void PhysicsTick(boolean ServerSided){
|
||||
if(ServerSided) SetBooleanDataValue("ON_GROUND",Math.abs(CurrentPositionVector.y - LastPositionVector.y) < 0.05D);
|
||||
VehicleVelocity = new Vector3(GetDoubleDataValue("VELOCITY_X"),GetDoubleDataValue("VELOCITY_Y"),GetDoubleDataValue("VELOCITY_Z"));
|
||||
Vector3d Velocity = Vector3.Positive(VehicleVelocity).GetDouble();
|
||||
Vector3d NormalisedVelocity = Velocity.normalize();
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package net.halbear.hvf.Entity;
|
||||
|
||||
public class VehicleEntityState {
|
||||
|
||||
private double BaseRotationX = 0.0d;
|
||||
private double BaseRotationY = 0.0d;
|
||||
private double BaseRotationZ = 0.0d;
|
||||
private String StateName = "DEFAULT";
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class InputHandler {
|
||||
@SubscribeEvent
|
||||
public static void onKeyInput(InputEvent.KeyInputEvent event) {
|
||||
List<Byte> PressedKeys = new ArrayList<>();
|
||||
InputManager.KEY_BINDING_MAP.forEach((Binding, Name)->{
|
||||
InputManager.KEY_BINDING_MAP.forEach((Name,Binding)->{
|
||||
if(Binding.isKeyDown()){
|
||||
PressedKeys.add(InputManager.INPUT_BYTE_VALUES.get(Name));
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package net.halbear.hvf.Registry.Input;
|
||||
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -11,7 +14,8 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
public class InputManager {
|
||||
public static final Map<String, Byte> INPUT_BYTE_VALUES = new HashMap<>();
|
||||
public static final Map<Byte, String> INPUT_BYTE_VALUES_REVERSE_LOOKUP = new HashMap<>();
|
||||
public static final Map<KeyBinding, String> KEY_BINDING_MAP = new HashMap<>();
|
||||
public static final Map<String,KeyBinding> KEY_BINDING_MAP = new HashMap<>();
|
||||
public static byte Iteration = -128;
|
||||
|
||||
public static List<Byte> ActiveKeys = new ArrayList<>();
|
||||
public static List<Byte> LastActiveKeys = new ArrayList<>();
|
||||
@@ -28,40 +32,57 @@ public class InputManager {
|
||||
}
|
||||
|
||||
public static void AddBinding(KeyBinding keyBinding, String BindingName){
|
||||
KEY_BINDING_MAP.put(keyBinding,BindingName);
|
||||
ReCalculateByteArrays();
|
||||
KEY_BINDING_MAP.put(BindingName,keyBinding);
|
||||
INPUT_BYTE_VALUES.put(BindingName, Iteration);
|
||||
INPUT_BYTE_VALUES_REVERSE_LOOKUP.put(Iteration,BindingName);
|
||||
Iteration++;
|
||||
}
|
||||
public static void AddBindings(KeyBinding[] keyBinding, String[] BindingName){
|
||||
for(int i = 0; i < (Math.min(keyBinding.length, BindingName.length)); i++) {
|
||||
KEY_BINDING_MAP.put(keyBinding[i], BindingName[i]);
|
||||
AddBinding(keyBinding[i], BindingName[i]);
|
||||
}
|
||||
ReCalculateByteArrays();
|
||||
}
|
||||
|
||||
public static void ReCalculateByteArrays() {
|
||||
INPUT_BYTE_VALUES.clear();
|
||||
INPUT_BYTE_VALUES_REVERSE_LOOKUP.clear();
|
||||
AtomicReference<Byte> Iterator = new AtomicReference<>((byte) -128);
|
||||
KEY_BINDING_MAP.forEach((Binding, Name )->{
|
||||
INPUT_BYTE_VALUES.put(Name, Iterator.get());
|
||||
INPUT_BYTE_VALUES_REVERSE_LOOKUP.put(Iterator.get(), Name);
|
||||
Iterator.getAndSet((byte) (Iterator.get() + 1));
|
||||
});
|
||||
StringBuilder Log = new StringBuilder();
|
||||
for(byte i = -128; i <= 126; i++) {
|
||||
if (INPUT_BYTE_VALUES_REVERSE_LOOKUP.containsKey(i)) {
|
||||
String Name = INPUT_BYTE_VALUES_REVERSE_LOOKUP.get(i);
|
||||
KeyBinding Binding = KEY_BINDING_MAP.get(Name);
|
||||
Log.append("\nKEY_BINDING: ").append(Binding.getKey().getTranslationKey()).append(" BINDING_NAME: ").append(Name).append(" BYTE INDICATOR: ").append(INPUT_BYTE_VALUES.get(Name)).append(" STRING_INDICATOR ").append(INPUT_BYTE_VALUES_REVERSE_LOOKUP.get(i));
|
||||
}
|
||||
}
|
||||
System.out.println(Log);
|
||||
File newLogFile;
|
||||
int Iterations = 0;
|
||||
do {
|
||||
newLogFile = new File("F:\\Hals Mod 1.0\\HVF_LOGS\\Log"+Iterations+".txt");
|
||||
Iterations++;
|
||||
} while(newLogFile.exists());
|
||||
if(newLogFile != null ) {
|
||||
try {
|
||||
FileWriter FW = new FileWriter(newLogFile);
|
||||
FW.write(Log.toString());
|
||||
FW.close();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static{
|
||||
KEY_BINDING_MAP.put(ModKeybinds.FORWARD_KEY, "Forward");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.BACKWARD_KEY, "Backward");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.STRAFE_LEFT_KEY, "StrafeLeft");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.STRAFE_RIGHT_KEY, "StrafeRight");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.ACCELERATE_KEY, "Accelerate");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.BRAKE_KEY, "Brake");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.TURN_LEFT_KEY, "TurnLeft");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.TURN_RIGHT_KEY, "TurnRight");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.CLUTCH_KEY, "ClutchToggle");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.GEAR_UP_KEY, "GearShiftUp");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.GEAR_DOWN_KEY, "GearShiftDown");
|
||||
KEY_BINDING_MAP.put(ModKeybinds.GEAR_NEUTRAL_KEY, "GearResetNeutral");
|
||||
AddBinding(ModKeybinds.FORWARD_KEY, "Forward");
|
||||
AddBinding(ModKeybinds.BACKWARD_KEY, "Backward");
|
||||
AddBinding(ModKeybinds.STRAFE_LEFT_KEY, "StrafeLeft");
|
||||
AddBinding(ModKeybinds.STRAFE_RIGHT_KEY, "StrafeRight");
|
||||
AddBinding(ModKeybinds.ACCELERATE_KEY, "Accelerate");
|
||||
AddBinding(ModKeybinds.BRAKE_KEY, "Brake");
|
||||
AddBinding(ModKeybinds.TURN_LEFT_KEY, "TurnLeft");
|
||||
AddBinding(ModKeybinds.TURN_RIGHT_KEY, "TurnRight");
|
||||
AddBinding(ModKeybinds.CLUTCH_KEY, "ClutchToggle");
|
||||
AddBinding(ModKeybinds.GEAR_UP_KEY, "GearShiftUp");
|
||||
AddBinding(ModKeybinds.GEAR_DOWN_KEY, "GearShiftDown");
|
||||
AddBinding(ModKeybinds.GEAR_NEUTRAL_KEY, "GearResetNeutral");
|
||||
ReCalculateByteArrays();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package net.halbear.hvf.Registry.ServerVariables;
|
||||
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.world.storage.WorldSavedData;
|
||||
|
||||
public class GlobalInputData extends WorldSavedData {
|
||||
public GlobalInputData(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(CompoundNBT nbt) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompoundNBT write(CompoundNBT compound) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user