From 9364965e6800c421e636b9a49f6a585583e5f685 Mon Sep 17 00:00:00 2001 From: Halbear Date: Wed, 3 Jun 2026 20:01:41 +0100 Subject: [PATCH] fixed incorrect input mappings for server players --- .../halbear/hvf/Entity/VehicleBaseEntity.java | 2 +- .../hvf/Entity/VehicleEntityState.java | 9 +++ .../hvf/Registry/Input/InputHandler.java | 2 +- .../hvf/Registry/Input/InputManager.java | 73 ++++++++++++------- .../ServerVariables/GlobalInputData.java | 20 +++++ 5 files changed, 78 insertions(+), 28 deletions(-) create mode 100644 src/main/java/net/halbear/hvf/Entity/VehicleEntityState.java create mode 100644 src/main/java/net/halbear/hvf/Registry/ServerVariables/GlobalInputData.java diff --git a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java index 7c80a08..8fc8d10 100644 --- a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java +++ b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java @@ -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(); diff --git a/src/main/java/net/halbear/hvf/Entity/VehicleEntityState.java b/src/main/java/net/halbear/hvf/Entity/VehicleEntityState.java new file mode 100644 index 0000000..ccf865c --- /dev/null +++ b/src/main/java/net/halbear/hvf/Entity/VehicleEntityState.java @@ -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"; +} diff --git a/src/main/java/net/halbear/hvf/Registry/Input/InputHandler.java b/src/main/java/net/halbear/hvf/Registry/Input/InputHandler.java index b3ddd1f..cf18849 100644 --- a/src/main/java/net/halbear/hvf/Registry/Input/InputHandler.java +++ b/src/main/java/net/halbear/hvf/Registry/Input/InputHandler.java @@ -14,7 +14,7 @@ public class InputHandler { @SubscribeEvent public static void onKeyInput(InputEvent.KeyInputEvent event) { List 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)); } diff --git a/src/main/java/net/halbear/hvf/Registry/Input/InputManager.java b/src/main/java/net/halbear/hvf/Registry/Input/InputManager.java index 6934f50..9c3781c 100644 --- a/src/main/java/net/halbear/hvf/Registry/Input/InputManager.java +++ b/src/main/java/net/halbear/hvf/Registry/Input/InputManager.java @@ -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 INPUT_BYTE_VALUES = new HashMap<>(); public static final Map INPUT_BYTE_VALUES_REVERSE_LOOKUP = new HashMap<>(); - public static final Map KEY_BINDING_MAP = new HashMap<>(); + public static final Map KEY_BINDING_MAP = new HashMap<>(); + public static byte Iteration = -128; public static List ActiveKeys = new ArrayList<>(); public static List 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 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)); - }); + public static void ReCalculateByteArrays() { + 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(); } } diff --git a/src/main/java/net/halbear/hvf/Registry/ServerVariables/GlobalInputData.java b/src/main/java/net/halbear/hvf/Registry/ServerVariables/GlobalInputData.java new file mode 100644 index 0000000..ca3963d --- /dev/null +++ b/src/main/java/net/halbear/hvf/Registry/ServerVariables/GlobalInputData.java @@ -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; + } +}