diff options
| author | botn365 <42187820+botn365@users.noreply.github.com> | 2019-12-30 03:55:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-30 03:55:42 +0100 |
| commit | fa1a1f4a6cd8dee8011a8f04fa6afbcc71d8db89 (patch) | |
| tree | b9f75736d90eb228de26ad8dcf9956bd1e6bd7e8 /src/Java/gtPlusPlus/core/handler/events | |
| parent | a731e939c6b9a70ac9fd444dbf06243f63f29c06 (diff) | |
| parent | d2ab710218628d51cd2ede566d50492238d797cf (diff) | |
| download | GT5-Unofficial-fa1a1f4a6cd8dee8011a8f04fa6afbcc71d8db89.tar.gz GT5-Unofficial-fa1a1f4a6cd8dee8011a8f04fa6afbcc71d8db89.tar.bz2 GT5-Unofficial-fa1a1f4a6cd8dee8011a8f04fa6afbcc71d8db89.zip | |
Merge pull request #5 from alkcorp/master
sync fork
Diffstat (limited to 'src/Java/gtPlusPlus/core/handler/events')
| -rw-r--r-- | src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java | 12 | ||||
| -rw-r--r-- | src/Java/gtPlusPlus/core/handler/events/SneakManager.java | 88 |
2 files changed, 73 insertions, 27 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java b/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java index f1587fa82a..b70e58d009 100644 --- a/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java @@ -61,7 +61,7 @@ public class CustomMovementHandler { // // Check to see if Enabled - Added 6/17/14 to provide option to disable Sneak Toggle - final boolean isSneaking = SneakManager.Sneaking(); + final boolean isSneaking = SneakManager.get(thisPlayer).Sneaking(); //Utils.LOG_INFO("Can sneak: "+isSneaking); //Utils.LOG_INFO("Can sprint: "+SneakManager.Sprinting()); if (isSneaking) @@ -107,7 +107,7 @@ public class CustomMovementHandler { options.sneak = settings.keyBindSneak.getIsKeyPressed(); } - if(options.sneak || SneakManager.Sneaking()) + if(options.sneak || SneakManager.get(thisPlayer).Sneaking()) { options.moveStrafe = (float)(options.moveStrafe * 0.3D); options.moveForward = (float)(options.moveForward * 0.3D); @@ -121,8 +121,8 @@ public class CustomMovementHandler { final boolean enoughHunger = (thisPlayer.getFoodStats().getFoodLevel() > 6.0F) || thisPlayer.capabilities.isFlying; final boolean canSprint = !options.sneak && !thisPlayer.isRiding() && !thisPlayer.capabilities.isFlying && enoughHunger; - this.isDisabled = !SneakManager.Sprinting(); - this.canDoubleTap = SneakManager.optionDoubleTap; + this.isDisabled = !SneakManager.get(thisPlayer).Sprinting(); + this.canDoubleTap = SneakManager.get(thisPlayer).optionDoubleTap; // Key Pressed if((canSprint || this.isDisabled) && settings.keyBindSprint.getIsKeyPressed() && !this.handledSprintPress) @@ -149,8 +149,8 @@ public class CustomMovementHandler { } - public void UpdateSprint(final boolean newValue, final boolean doubleTapped){ - if (!SneakManager.Sprinting()){ + public void UpdateSprint(final boolean newValue, final boolean doubleTapped, SneakManager aSneak){ + if (!aSneak.Sprinting()){ this.sprint = false; this.sprintDoubleTapped = doubleTapped; } diff --git a/src/Java/gtPlusPlus/core/handler/events/SneakManager.java b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java index e9c8c72934..3e51c6488a 100644 --- a/src/Java/gtPlusPlus/core/handler/events/SneakManager.java +++ b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java @@ -1,47 +1,77 @@ package gtPlusPlus.core.handler.events; -import net.minecraft.client.Minecraft; +import java.util.concurrent.ConcurrentHashMap; import gtPlusPlus.api.objects.Logger; +import net.minecraft.entity.player.EntityPlayer; public class SneakManager { //We make this a singleton for clientside data storage. - public static SneakManager instance = new SneakManager(); - protected static final Minecraft mc = Minecraft.getMinecraft(); - public static boolean canSprint = true; - public static boolean isSneaking = true; - public static boolean optionDoubleTap = true; - public static boolean wasSprintDisabled = false; - private static State Sprinting = State.ON; - private static State Crouching = State.OFF; + public static ConcurrentHashMap<String, SneakManager> mPlayerCache = new ConcurrentHashMap<String, SneakManager>(); + + private static void addPlayer(EntityPlayer aPlayer) { + String aKey = getKey(aPlayer); + if (!mPlayerCache.containsKey(aKey)) { + mPlayerCache.put(aKey, new SneakManager(aPlayer)); + } + } + + public static SneakManager get(EntityPlayer aPlayer) { + + String aKey = getKey(aPlayer); + if (!mPlayerCache.containsKey(aKey)) { + addPlayer(aPlayer); + } + return mPlayerCache.get(aKey); + } + + private static String getKey(EntityPlayer aPlayer) { + return ""+aPlayer.getGameProfile().getId().toString(); + } + + + public SneakManager instance; + public EntityPlayer owner; + public boolean canSprint = true; + public boolean isSneaking = true; + public boolean optionDoubleTap = true; + public boolean wasSprintDisabled = false; + public boolean mIsWearingRing = false; + + private State Sprinting = State.ON; + private State Crouching = State.OFF; + + public SneakManager(EntityPlayer aPlayer) { + owner = aPlayer; + } - public static boolean Sneaking(){ + public boolean Sneaking(){ return Crouching.getState(); } - public static boolean Sprinting(){ + public boolean Sprinting(){ return Sprinting.getState(); } - public static State getSneakingState(){ + public State getSneakingState(){ return Crouching; } - public static State getSprintingDisabledState(){ + public State getSprintingDisabledState(){ return Sprinting; } - public static void toggleSneaking(){ + public void toggleSneaking(){ toggleState(Crouching); } - public static void toggleSprinting(){ + public void toggleSprinting(){ toggleState(Sprinting); } - private static State toggleState(final State state){ + private State toggleState(final State state){ Logger.INFO("State Toggle"); if (state == State.ON) { return State.OFF; @@ -49,22 +79,38 @@ public class SneakManager { return State.ON; } - public static State setCrouchingStateON(){ + private State setCrouchingStateON(){ return Crouching = State.ON; } - public static State setCrouchingStateOFF(){ + private State setCrouchingStateOFF(){ return Crouching = State.OFF; } - public static State setSprintingStateON(){ + private State setSprintingStateON(){ return Sprinting = State.ON; } - public static State setSprintingStateOFF(){ + private State setSprintingStateOFF(){ return Sprinting = State.OFF; } - + + public void putRingOn() { + mIsWearingRing = true; + setSprintingStateOFF(); + setCrouchingStateON(); + } + + public void takeRingOff() { + mIsWearingRing = false; + setSprintingStateON(); + setCrouchingStateOFF(); + } + + public boolean isWearingRing() { + return mIsWearingRing; + } + public static enum State { ON(true), OFF(false); |
