From 9cf5a2182953b2e3cd2c1bd5d2c8bb48e3f1c0ec Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 14 Nov 2025 14:07:48 -0500 Subject: [PATCH 01/10] basic standless move functionality --- .../net/hydra/jojomod/client/KeyInputs.java | 12 -- .../jojomod/event/powers/StandPowers.java | 23 ++- .../fates/powers/AbilityScapeBasis.java | 154 ++++++++---------- .../stand/powers/PowersKillerQueen.java | 2 +- .../stand/powers/PowersMagiciansRed.java | 7 + .../powers/presets/TWAndSPSharedPowers.java | 2 +- 6 files changed, 90 insertions(+), 110 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java index a9564f6e6..3289f233b 100644 --- a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java +++ b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java @@ -87,9 +87,6 @@ public static void showEXPKey(Player player, Minecraft client, boolean keyIsDown } public static void MoveKey4(Player player, Minecraft client, boolean keyIsDown, Options option){ if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - if (FateTypes.isHuman(player)) { - forceSummon(player, keyIsDown); - } ((StandUser) player).roundabout$getStandPowers().preButtonInput4(keyIsDown, option); } if (!FateTypes.isHuman(player)) { @@ -98,9 +95,6 @@ public static void MoveKey4(Player player, Minecraft client, boolean keyIsDown, } public static void MoveKey3(Player player, Minecraft client, boolean keyIsDown, Options option){ if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - if (FateTypes.isHuman(player)) { - forceSummon(player, keyIsDown); - } ((StandUser) player).roundabout$getStandPowers().preButtonInput3(keyIsDown, option); } if (!FateTypes.isHuman(player)) { @@ -109,9 +103,6 @@ public static void MoveKey3(Player player, Minecraft client, boolean keyIsDown, } public static void MoveKey2(Player player, Minecraft client, boolean keyIsDown, Options option){ if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - if (FateTypes.isHuman(player)) { - forceSummon(player, keyIsDown); - } ((StandUser) player).roundabout$getStandPowers().preButtonInput2(keyIsDown, option); } if (!FateTypes.isHuman(player)) { @@ -120,9 +111,6 @@ public static void MoveKey2(Player player, Minecraft client, boolean keyIsDown, } public static void MoveKey1(Player player, Minecraft client, boolean keyIsDown, Options option){ if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - if (FateTypes.isHuman(player)) { - forceSummon(player, keyIsDown); - } ((StandUser) player).roundabout$getStandPowers().preButtonInput1(keyIsDown, option); } if (!FateTypes.isHuman(player)) { diff --git a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java index 9facfee07..f4ef6000c 100644 --- a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java +++ b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java @@ -16,6 +16,7 @@ import net.hydra.jojomod.event.ModParticles; import net.hydra.jojomod.event.index.*; import net.hydra.jojomod.fates.powers.AbilityScapeBasis; +import net.hydra.jojomod.stand.powers.elements.PowerContext; import net.hydra.jojomod.stand.powers.presets.TWAndSPSharedPowers; import net.hydra.jojomod.item.MaxStandDiscItem; import net.hydra.jojomod.item.ModItems; @@ -381,6 +382,12 @@ public void updateGuard(boolean yeet){ public void updateMove(float flot){ } + /** Moves that the user can use without the stand actively being out. **/ + public List standlessAbilities(){ + List $$1 = Lists.newArrayList(); + return $$1; + } + /**If you want something to happen when you spawn a projectile, this is your place. * For instance, you could make every shot out arrow be super thrown, or create a penalty for throwing * a knife*/ @@ -1818,39 +1825,39 @@ public boolean preCanInterruptPower(DamageSource sauce, Entity interrupter, bool @Override public void preButtonInput4(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) && !this.isClashing()) { + if (hasStandActive(this.getSelf()) || FateTypes.isHuman((this.getSelf())) && !this.isClashing()) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options); + buttonInput4(keyIsDown, options, STAND); } } } @Override public void preButtonInput3(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) && !this.isClashing()) { + if (hasStandActive(this.getSelf()) || FateTypes.isHuman((this.getSelf())) && !this.isClashing()) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput3(keyIsDown, options); + buttonInput3(keyIsDown, options, STAND); } } } @Override public void preButtonInput2(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) && !this.isClashing()) { + if (hasStandActive(this.getSelf()) || FateTypes.isHuman(this.getSelf()) && !this.isClashing()) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput2(keyIsDown, options); + buttonInput2(keyIsDown, options, STAND); } } } @Override public void preButtonInput1(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) && !this.isClashing()) { + if (hasStandActive(this.getSelf()) || FateTypes.isHuman(this.getSelf()) && !this.isClashing()) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput1(keyIsDown, options); + buttonInput1(keyIsDown, options, STAND); } } } diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index 0933bfd90..a7ab6b56e 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -7,6 +7,7 @@ import net.hydra.jojomod.access.IPlayerEntity; import net.hydra.jojomod.client.ClientNetworking; import net.hydra.jojomod.client.KeyInputRegistry; +import net.hydra.jojomod.client.KeyInputs; import net.hydra.jojomod.client.StandIcons; import net.hydra.jojomod.entity.projectile.KnifeEntity; import net.hydra.jojomod.entity.projectile.ThrownObjectEntity; @@ -89,6 +90,11 @@ public AbilityScapeBasis(LivingEntity self) { /**This is when the punch combo goes on cooldown. Default is 3 hit combo.*/ public final byte activePowerPhaseMax = 3; + public final byte + FATE = 1, + STAND = 2; + + /**This variable exists so that a client can begin displaying your attack hud info without ticking through it. * Basically, stand attacks are clientside, but they need the server's confirmation to kickstart so you * can't hit targets in frozen tps*/ @@ -1050,33 +1056,26 @@ public void powerActivate(PowerContext context) { private boolean held3 = false; private boolean held4 = false; - public void buttonInput1(boolean keyIsDown, Options options) { + public void buttonInput1(boolean keyIsDown, Options options, int source) { if (keyIsDown) { if (held1) return; held1 = true; - if (!isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_1_NORMAL); - return; - } - if (isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_1_CROUCH); - return; - } - if (!isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_1_GUARD); - return; - } - if (isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_1_CROUCH_GUARD); - return; - } + PowerContext activatedPower; + + if(isHoldingSneak()) + if(isGuarding()) + activatedPower = PowerContext.SKILL_1_CROUCH_GUARD; + else activatedPower = PowerContext.SKILL_1_CROUCH; + else if(isGuarding()) + activatedPower = PowerContext.SKILL_1_GUARD; + else activatedPower = PowerContext.SKILL_1_NORMAL; + + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); + powerActivate(activatedPower); } else { @@ -1084,33 +1083,26 @@ public void buttonInput1(boolean keyIsDown, Options options) { } } - public void buttonInput2(boolean keyIsDown, Options options) { + public void buttonInput2(boolean keyIsDown, Options options, int source) { if (keyIsDown) { if (held2) return; held2 = true; - if (!isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_2_NORMAL); - return; - } - if (isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_2_CROUCH); - return; - } - if (!isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_2_GUARD); - return; - } - if (isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_2_CROUCH_GUARD); - return; - } + PowerContext activatedPower; + + if(isHoldingSneak()) + if(isGuarding()) + activatedPower = PowerContext.SKILL_2_CROUCH_GUARD; + else activatedPower = PowerContext.SKILL_2_CROUCH; + else if(isGuarding()) + activatedPower = PowerContext.SKILL_2_GUARD; + else activatedPower = PowerContext.SKILL_2_NORMAL; + + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); + powerActivate(activatedPower); } else { @@ -1118,33 +1110,26 @@ public void buttonInput2(boolean keyIsDown, Options options) { } } - public void buttonInput3(boolean keyIsDown, Options options) { + public void buttonInput3(boolean keyIsDown, Options options, int source) { if (keyIsDown) { if (held3) return; held3 = true; - if (!isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_3_NORMAL); - return; - } - if (isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_3_CROUCH); - return; - } - if (!isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_3_GUARD); - return; - } - if (isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_3_CROUCH_GUARD); - return; - } + PowerContext activatedPower; + + if(isHoldingSneak()) + if(isGuarding()) + activatedPower = PowerContext.SKILL_3_CROUCH_GUARD; + else activatedPower = PowerContext.SKILL_3_CROUCH; + else if(isGuarding()) + activatedPower = PowerContext.SKILL_3_GUARD; + else activatedPower = PowerContext.SKILL_3_NORMAL; + + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); + powerActivate(activatedPower); } else { @@ -1152,33 +1137,26 @@ public void buttonInput3(boolean keyIsDown, Options options) { } } - public void buttonInput4(boolean keyIsDown, Options options) { + public void buttonInput4(boolean keyIsDown, Options options, int source) { if (keyIsDown) { if (held4) return; held4 = true; - if (!isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_4_NORMAL); - return; - } - if (isHoldingSneak() && !isGuarding()) - { - powerActivate(PowerContext.SKILL_4_CROUCH); - return; - } - if (!isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_4_GUARD); - return; - } - if (isHoldingSneak() && isGuarding()) - { - powerActivate(PowerContext.SKILL_4_CROUCH_GUARD); - return; - } + PowerContext activatedPower; + + if(isHoldingSneak()) + if(isGuarding()) + activatedPower = PowerContext.SKILL_4_CROUCH_GUARD; + else activatedPower = PowerContext.SKILL_4_CROUCH; + else if(isGuarding()) + activatedPower = PowerContext.SKILL_4_GUARD; + else activatedPower = PowerContext.SKILL_4_NORMAL; + + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); + powerActivate(activatedPower); } else { @@ -1191,7 +1169,7 @@ public void preButtonInput4(boolean keyIsDown, Options options){ if (!hasStandActive(this.getSelf())) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options); + buttonInput4(keyIsDown, options, FATE); } } } @@ -1199,7 +1177,7 @@ public void preButtonInput3(boolean keyIsDown, Options options){ if (!hasStandActive(this.getSelf())) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput3(keyIsDown, options); + buttonInput3(keyIsDown, options, FATE); } } } @@ -1208,7 +1186,7 @@ public void preButtonInput2(boolean keyIsDown, Options options){ if (!hasStandActive(this.getSelf())) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput2(keyIsDown, options); + buttonInput2(keyIsDown, options, FATE); } } } @@ -1217,7 +1195,7 @@ public void preButtonInput1(boolean keyIsDown, Options options){ if (!hasStandActive(this.getSelf())) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput1(keyIsDown, options); + buttonInput1(keyIsDown, options, FATE); } } } diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java index 0fbf7656b..64a9aed4d 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java @@ -232,7 +232,7 @@ public boolean tryBlockPosPower(int move, boolean forced, BlockPos blockPos){ @Override - public void buttonInput2(boolean KeyIsDown, Options options) { + public void buttonInput2(boolean KeyIsDown, Options options, int source) { } @Override diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersMagiciansRed.java b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersMagiciansRed.java index 61912d82e..1ab7b0ba7 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersMagiciansRed.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersMagiciansRed.java @@ -706,6 +706,13 @@ public int getRangedBarrage2Length(){ return 60; } + @Override + public List standlessAbilities(){ + List $$1 = Lists.newArrayList(); + $$1.add(PowerContext.SKILL_3_CROUCH); + return $$1; + } + @Override public void renderAttackHud(GuiGraphics context, Player playerEntity, int scaledWidth, int scaledHeight, int ticks, int vehicleHeartCount, diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java index 8e8650a2a..2751eb343 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java @@ -788,7 +788,7 @@ public boolean clientForwardBarrage(){ public void preButtonInput4(boolean keyIsDown, Options options){ if (hasStandActive(this.getSelf()) && !this.isClashing()) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options); + buttonInput4(keyIsDown, options, STAND); } } From 53743faa980b33b2da9004bfd5310af55a5f1673 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 14 Nov 2025 14:28:32 -0500 Subject: [PATCH 02/10] adjusted wording & added documentation --- .../main/java/net/hydra/jojomod/event/powers/StandPowers.java | 2 +- .../java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java index f4ef6000c..18027121a 100644 --- a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java +++ b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java @@ -382,7 +382,7 @@ public void updateGuard(boolean yeet){ public void updateMove(float flot){ } - /** Moves that the user can use without the stand actively being out. **/ + /** Stand abilities that the user can use without the stand actively being out. **/ public List standlessAbilities(){ List $$1 = Lists.newArrayList(); return $$1; diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index a7ab6b56e..b9000d088 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -90,6 +90,7 @@ public AbilityScapeBasis(LivingEntity self) { /**This is when the punch combo goes on cooldown. Default is 3 hit combo.*/ public final byte activePowerPhaseMax = 3; + /** Used to determine which ability set is being used. */ public final byte FATE = 1, STAND = 2; From f479d12cefc1e3fceb91060d7b8ed663f344777a Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 14 Nov 2025 14:34:01 -0500 Subject: [PATCH 03/10] uneven indenting bothers me --- .../net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index b9000d088..69a8437e8 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -1072,7 +1072,7 @@ public void buttonInput1(boolean keyIsDown, Options options, int source) { else activatedPower = PowerContext.SKILL_1_CROUCH; else if(isGuarding()) activatedPower = PowerContext.SKILL_1_GUARD; - else activatedPower = PowerContext.SKILL_1_NORMAL; + else activatedPower = PowerContext.SKILL_1_NORMAL; if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); @@ -1099,7 +1099,7 @@ public void buttonInput2(boolean keyIsDown, Options options, int source) { else activatedPower = PowerContext.SKILL_2_CROUCH; else if(isGuarding()) activatedPower = PowerContext.SKILL_2_GUARD; - else activatedPower = PowerContext.SKILL_2_NORMAL; + else activatedPower = PowerContext.SKILL_2_NORMAL; if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); @@ -1153,7 +1153,7 @@ public void buttonInput4(boolean keyIsDown, Options options, int source) { else activatedPower = PowerContext.SKILL_4_CROUCH; else if(isGuarding()) activatedPower = PowerContext.SKILL_4_GUARD; - else activatedPower = PowerContext.SKILL_4_NORMAL; + else activatedPower = PowerContext.SKILL_4_NORMAL; if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); From 92b25ceaffe36ca97be2e9969899836b718b9df8 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 14 Nov 2025 23:05:45 -0500 Subject: [PATCH 04/10] adds a config toggle for the feature --- .../main/java/net/hydra/jojomod/event/powers/StandPowers.java | 2 +- .../java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 3 ++- common/src/main/java/net/hydra/jojomod/util/config/Config.java | 2 ++ common/src/main/resources/assets/roundabout/lang/en_us.json | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java index 18027121a..b369cb1b2 100644 --- a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java +++ b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java @@ -382,7 +382,7 @@ public void updateGuard(boolean yeet){ public void updateMove(float flot){ } - /** Stand abilities that the user can use without the stand actively being out. **/ + /** Stand abilities that the user can use without the stand actively being out (if the config is enabled). **/ public List standlessAbilities(){ List $$1 = Lists.newArrayList(); return $$1; diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index 69a8437e8..9dc2c3265 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -22,6 +22,7 @@ import net.hydra.jojomod.util.C2SPacketUtil; import net.hydra.jojomod.util.MainUtil; import net.hydra.jojomod.util.S2CPacketUtil; +import net.hydra.jojomod.util.config.ConfigManager; import net.hydra.jojomod.util.gravity.GravityAPI; import net.hydra.jojomod.util.gravity.RotationUtil; import net.minecraft.ChatFormatting; @@ -1128,7 +1129,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_3_GUARD; else activatedPower = PowerContext.SKILL_3_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } diff --git a/common/src/main/java/net/hydra/jojomod/util/config/Config.java b/common/src/main/java/net/hydra/jojomod/util/config/Config.java index 07d50c7f3..0b6ff88f4 100644 --- a/common/src/main/java/net/hydra/jojomod/util/config/Config.java +++ b/common/src/main/java/net/hydra/jojomod/util/config/Config.java @@ -171,6 +171,8 @@ public static class MiscSettings { public Boolean disableBleedingAndBloodSplatters; @BooleanOption(group = "inherit", value = false) public Boolean banDirectionalBlockPlacingFailure; + @BooleanOption(group = "inherit", value = false) + public Boolean standlessAbilities; } public static class VampireSettings { @BooleanOption(group = "inherit", value = false) diff --git a/common/src/main/resources/assets/roundabout/lang/en_us.json b/common/src/main/resources/assets/roundabout/lang/en_us.json index 469423db5..9186e6240 100644 --- a/common/src/main/resources/assets/roundabout/lang/en_us.json +++ b/common/src/main/resources/assets/roundabout/lang/en_us.json @@ -2297,6 +2297,8 @@ "config.roundabout.generalDetectionGoThroughDoorsAndCorners.desc": "Some of the mod's area of affect or line of sight mechanics stop when they hit a block, turning this off lets you hit past corners and doors with certain things. Not recommended.", "config.roundabout.disableBleedingAndBloodSplatters.name": "Disable Blood", "config.roundabout.disableBleedingAndBloodSplatters.desc": "If you are sensitive to blood, this setting might help.", + "config.roundabout.standlessAbilities.name": "Stand Abilities Without Stand Summoned", + "config.roundabout.standlessAbilities.desc": "If this is enabled, certain stand abilities can be used without summoning the stand.", "config.roundabout.major.done": "Done", "config.roundabout.major.reset": "Reset", From d07ec70320cb09fe415916fef74682123b1ac8fd Mon Sep 17 00:00:00 2001 From: Tirochora Date: Sat, 15 Nov 2025 21:10:38 -0500 Subject: [PATCH 05/10] added the config check to missing abilities --- .../net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index 9dc2c3265..d63802c63 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -1075,7 +1075,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_1_GUARD; else activatedPower = PowerContext.SKILL_1_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } @@ -1102,7 +1102,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_2_GUARD; else activatedPower = PowerContext.SKILL_2_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } @@ -1156,7 +1156,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_4_GUARD; else activatedPower = PowerContext.SKILL_4_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND) + if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } From 1785b614afc4c053371726fa86118ea241bfbb4a Mon Sep 17 00:00:00 2001 From: Tirochora Date: Mon, 17 Nov 2025 15:19:00 -0500 Subject: [PATCH 06/10] unbreak stand abilities... oops --- .../net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index d63802c63..b67792c06 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -1075,7 +1075,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_1_GUARD; else activatedPower = PowerContext.SKILL_1_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) + if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } @@ -1102,7 +1102,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_2_GUARD; else activatedPower = PowerContext.SKILL_2_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) + if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } @@ -1129,7 +1129,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_3_GUARD; else activatedPower = PowerContext.SKILL_3_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) + if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } @@ -1156,7 +1156,7 @@ else if(isGuarding()) activatedPower = PowerContext.SKILL_4_GUARD; else activatedPower = PowerContext.SKILL_4_NORMAL; - if (!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) && source == STAND || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) + if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); powerActivate(activatedPower); } From 49841a38d92ca372401adab1dfa7e7ccaab76018 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 21 Nov 2025 01:10:27 -0500 Subject: [PATCH 07/10] removed movekey 2 3 and 4 --- .../jojomod/client/KeyInputRegistry.java | 8 + .../net/hydra/jojomod/client/KeyInputs.java | 53 ++----- .../jojomod/event/powers/StandPowers.java | 33 +--- .../fates/powers/AbilityScapeBasis.java | 150 ++---------------- .../net/hydra/jojomod/mixin/InputEvents.java | 26 +-- .../stand/powers/PowersKillerQueen.java | 8 +- .../powers/presets/TWAndSPSharedPowers.java | 12 +- 7 files changed, 66 insertions(+), 224 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/client/KeyInputRegistry.java b/common/src/main/java/net/hydra/jojomod/client/KeyInputRegistry.java index fd1c3049d..a3d912194 100644 --- a/common/src/main/java/net/hydra/jojomod/client/KeyInputRegistry.java +++ b/common/src/main/java/net/hydra/jojomod/client/KeyInputRegistry.java @@ -48,6 +48,14 @@ public class KeyInputRegistry { InputConstants.KEY_V, KeyInputRegistry.KEY_CATEGORY_JOJO ); + + public static KeyMapping[] abilityKeyList = { + abilityOneKey, + abilityTwoKey, + abilityThreeKey, + abilityFourKey + }; + public static KeyMapping menuKey = new KeyMapping( KeyInputRegistry.KEY_JOJO_MENU, InputConstants.KEY_Y, diff --git a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java index 3289f233b..82033e901 100644 --- a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java +++ b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java @@ -42,7 +42,7 @@ public static void summonKey(Player player, Minecraft client){ public static void menuKey(Player player, Minecraft client){ if (((StandUser) player).roundabout$getSummonCD() && roundaboutClickCount == 0 && !player.isSpectator()) { - forceSummon(player,true); + forceSummon(player); PlayerMaskSlots ms = ((IPlayerEntity)player).roundabout$getMaskInventory(); ItemStack stack = ms.getItem(0); ItemStack stack2 = ms.getItem(1); @@ -58,17 +58,15 @@ public static void menuKey(Player player, Minecraft client){ roundaboutClickCount = 2; } - public static void forceSummon(Player player,boolean keyIsDown){ - if (keyIsDown) { - if (!((StandUser) player).roundabout$getStandDisc().isEmpty() && !((StandUser) player).roundabout$getActive()) { - if (((StandUser) player).roundabout$getStandPowers().canSummonStand() && !((StandUser) player).roundabout$isSealed()) { - if (((StandUser) player).roundabout$getSummonCD() && roundaboutClickCount == 0 && - ConfigManager.getClientConfig().pressingAbilityKeysSummonsStands) { - ((StandUser) player).roundabout$setActive(true); - ((StandUser) player).roundabout$setSummonCD(2); - C2SPacketUtil.trySingleBytePacket(PacketDataIndex.SINGLE_BYTE_SILENT_SUMMON); + public static void forceSummon(Player player){ + if (!((StandUser) player).roundabout$getStandDisc().isEmpty() && !((StandUser) player).roundabout$getActive()) { + if (((StandUser) player).roundabout$getStandPowers().canSummonStand() && !((StandUser) player).roundabout$isSealed()) { + if (((StandUser) player).roundabout$getSummonCD() && roundaboutClickCount == 0 && + ConfigManager.getClientConfig().pressingAbilityKeysSummonsStands) { + ((StandUser) player).roundabout$setActive(true); + ((StandUser) player).roundabout$setSummonCD(2); + C2SPacketUtil.trySingleBytePacket(PacketDataIndex.SINGLE_BYTE_SILENT_SUMMON); - } } } } @@ -85,39 +83,14 @@ public static void switchRowsKey(Player player, Minecraft client, boolean keyIsD public static void showEXPKey(Player player, Minecraft client, boolean keyIsDown, Options option){ ((IPlayerEntity) player).roundabout$showExp(keyIsDown); } - public static void MoveKey4(Player player, Minecraft client, boolean keyIsDown, Options option){ - if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - ((StandUser) player).roundabout$getStandPowers().preButtonInput4(keyIsDown, option); - } - if (!FateTypes.isHuman(player)) { - ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput4(keyIsDown, option); - } - } - public static void MoveKey3(Player player, Minecraft client, boolean keyIsDown, Options option){ - if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - ((StandUser) player).roundabout$getStandPowers().preButtonInput3(keyIsDown, option); - } - if (!FateTypes.isHuman(player)) { - ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput3(keyIsDown, option); - } - } - public static void MoveKey2(Player player, Minecraft client, boolean keyIsDown, Options option){ - if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - ((StandUser) player).roundabout$getStandPowers().preButtonInput2(keyIsDown, option); - } - if (!FateTypes.isHuman(player)) { - ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput2(keyIsDown, option); - } - } - public static void MoveKey1(Player player, Minecraft client, boolean keyIsDown, Options option){ + + public static void MoveKey(Player player, int buttonPressed, Options option){ if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - ((StandUser) player).roundabout$getStandPowers().preButtonInput1(keyIsDown, option); + ((StandUser) player).roundabout$getStandPowers().preButtonInput(buttonPressed, option); } if (!FateTypes.isHuman(player)) { - ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput1(keyIsDown, option); + ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput(buttonPressed, option); } } - - } diff --git a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java index b369cb1b2..81668663f 100644 --- a/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java +++ b/common/src/main/java/net/hydra/jojomod/event/powers/StandPowers.java @@ -1824,40 +1824,11 @@ public boolean preCanInterruptPower(DamageSource sauce, Entity interrupter, bool } @Override - public void preButtonInput4(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) || FateTypes.isHuman((this.getSelf())) && !this.isClashing()) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options, STAND); - } - } - } - @Override - public void preButtonInput3(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) || FateTypes.isHuman((this.getSelf())) && !this.isClashing()) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput3(keyIsDown, options, STAND); - } - } - } - - @Override - public void preButtonInput2(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) || FateTypes.isHuman(this.getSelf()) && !this.isClashing()) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput2(keyIsDown, options, STAND); - } - } - } - - @Override - public void preButtonInput1(boolean keyIsDown, Options options){ + public void preButtonInput(int buttonPressed, Options options){ if (hasStandActive(this.getSelf()) || FateTypes.isHuman(this.getSelf()) && !this.isClashing()) { if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput1(keyIsDown, options, STAND); + buttonInput(buttonPressed, STAND); } } } diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index b67792c06..0bd323a48 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -1058,146 +1058,30 @@ public void powerActivate(PowerContext context) { private boolean held3 = false; private boolean held4 = false; - public void buttonInput1(boolean keyIsDown, Options options, int source) { - if (keyIsDown) - { - if (held1) - return; - held1 = true; + public void buttonInput(int buttonPressed, int source) { + PowerContext activatedPower; + int power; - PowerContext activatedPower; + if(isHoldingSneak()) + if(isGuarding()) + power = 4; + else power = 2; + else if(isGuarding()) + power = 3; + else power = 1; - if(isHoldingSneak()) - if(isGuarding()) - activatedPower = PowerContext.SKILL_1_CROUCH_GUARD; - else activatedPower = PowerContext.SKILL_1_CROUCH; - else if(isGuarding()) - activatedPower = PowerContext.SKILL_1_GUARD; - else activatedPower = PowerContext.SKILL_1_NORMAL; + activatedPower = PowerContext.values()[power + ((buttonPressed - 1) * 4) - 1]; - if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) - KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); - powerActivate(activatedPower); - } - else - { - held1 = false; - } - } - - public void buttonInput2(boolean keyIsDown, Options options, int source) { - if (keyIsDown) - { - if (held2) - return; - held2 = true; - - PowerContext activatedPower; - - if(isHoldingSneak()) - if(isGuarding()) - activatedPower = PowerContext.SKILL_2_CROUCH_GUARD; - else activatedPower = PowerContext.SKILL_2_CROUCH; - else if(isGuarding()) - activatedPower = PowerContext.SKILL_2_GUARD; - else activatedPower = PowerContext.SKILL_2_NORMAL; - - if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) - KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); - powerActivate(activatedPower); - } - else - { - held2 = false; - } - } - - public void buttonInput3(boolean keyIsDown, Options options, int source) { - if (keyIsDown) - { - if (held3) - return; - held3 = true; - - PowerContext activatedPower; - - if(isHoldingSneak()) - if(isGuarding()) - activatedPower = PowerContext.SKILL_3_CROUCH_GUARD; - else activatedPower = PowerContext.SKILL_3_CROUCH; - else if(isGuarding()) - activatedPower = PowerContext.SKILL_3_GUARD; - else activatedPower = PowerContext.SKILL_3_NORMAL; - - if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) - KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); - powerActivate(activatedPower); - } - else - { - held3 = false; - } - } - - public void buttonInput4(boolean keyIsDown, Options options, int source) { - if (keyIsDown) - { - if (held4) - return; - held4 = true; - - PowerContext activatedPower; - - if(isHoldingSneak()) - if(isGuarding()) - activatedPower = PowerContext.SKILL_4_CROUCH_GUARD; - else activatedPower = PowerContext.SKILL_4_CROUCH; - else if(isGuarding()) - activatedPower = PowerContext.SKILL_4_GUARD; - else activatedPower = PowerContext.SKILL_4_NORMAL; - - if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) - KeyInputs.forceSummon(Minecraft.getInstance().player, keyIsDown); - powerActivate(activatedPower); - } - else - { - held4 = false; - } - } - - - public void preButtonInput4(boolean keyIsDown, Options options){ - if (!hasStandActive(this.getSelf())) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options, FATE); - } - } - } - public void preButtonInput3(boolean keyIsDown, Options options){ - if (!hasStandActive(this.getSelf())) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput3(keyIsDown, options, FATE); - } - } - } - - public void preButtonInput2(boolean keyIsDown, Options options){ - if (!hasStandActive(this.getSelf())) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput2(keyIsDown, options, FATE); - } - } + if ((!((StandUser) this.getSelf()).roundabout$getStandPowers().standlessAbilities().contains(activatedPower) || !ConfigManager.getConfig().miscellaneousSettings.standlessAbilities) && source == STAND) + KeyInputs.forceSummon(Minecraft.getInstance().player); + powerActivate(activatedPower); } - public void preButtonInput1(boolean keyIsDown, Options options){ + public void preButtonInput(int buttonPressed, Options options){ if (!hasStandActive(this.getSelf())) { - if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed() ) { + if (!((TimeStop)this.getSelf().level()).CanTimeStopEntity(this.getSelf()) && !this.getStandUserSelf().roundabout$isPossessed()) { ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput1(keyIsDown, options, FATE); + buttonInput(buttonPressed, FATE); } } } diff --git a/common/src/main/java/net/hydra/jojomod/mixin/InputEvents.java b/common/src/main/java/net/hydra/jojomod/mixin/InputEvents.java index 68f1269a1..0fc3d0304 100644 --- a/common/src/main/java/net/hydra/jojomod/mixin/InputEvents.java +++ b/common/src/main/java/net/hydra/jojomod/mixin/InputEvents.java @@ -85,6 +85,13 @@ public abstract class InputEvents implements IInputEvents { @Unique public Level roundabout$playerlev; + private boolean[] heldKeys = { + false, + false, + false, + false + }; + protected InputEvents() { } @@ -967,17 +974,14 @@ private void handleKeybinds() { ((StandUser)player).roundabout$getStandPowers().visualFrameTick(); if (rdbt$isInitialized(player)) { - KeyInputs.MoveKey1(player, ((Minecraft) (Object) this), roundabout$sameKeyOne(KeyInputRegistry.abilityOneKey), - this.options); - - KeyInputs.MoveKey2(player, ((Minecraft) (Object) this), roundabout$sameKeyOne(KeyInputRegistry.abilityTwoKey), - this.options); - - KeyInputs.MoveKey3(player, ((Minecraft) (Object) this), roundabout$sameKeyOne(KeyInputRegistry.abilityThreeKey), - this.options); - - KeyInputs.MoveKey4(player, ((Minecraft) (Object) this), roundabout$sameKeyOne(KeyInputRegistry.abilityFourKey), - this.options); + for (int i = 0; i < KeyInputRegistry.abilityKeyList.length; i++) { + if (roundabout$sameKeyOne(KeyInputRegistry.abilityKeyList[i])) { + if (!heldKeys[i]) { + heldKeys[i] = true; + KeyInputs.MoveKey(player, i + 1, this.options); + } + } else heldKeys[i] = false; + } } KeyInputs.showEXPKey(player,((Minecraft) (Object) this), roundabout$sameKeyThree(KeyInputRegistry.showExp), diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java index 64a9aed4d..07aca864a 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java @@ -231,10 +231,10 @@ public boolean tryBlockPosPower(int move, boolean forced, BlockPos blockPos){ } - @Override - public void buttonInput2(boolean KeyIsDown, Options options, int source) { - - } +// @Override +// public void buttonInput2(boolean KeyIsDown, Options options, int source) { +// +// } @Override public void renderIcons(GuiGraphics context, int x, int y) { diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java index 2751eb343..b913498fd 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java @@ -785,11 +785,13 @@ public boolean clientForwardBarrage(){ } @Override - public void preButtonInput4(boolean keyIsDown, Options options){ - if (hasStandActive(this.getSelf()) && !this.isClashing()) { - ((StandUser) this.getSelf()).roundabout$setIdleTime(0); - buttonInput4(keyIsDown, options, STAND); - } + public void preButtonInput(int buttonPressed, Options options){ + if (buttonPressed == 4){ + if (hasStandActive(this.getSelf()) && !this.isClashing()) { + ((StandUser) this.getSelf()).roundabout$setIdleTime(0); + buttonInput(buttonPressed, STAND); + } + } else buttonInput(buttonPressed, STAND); } From 05abd1319e3e27ee0caba4bcdc6f055dcb15de86 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Fri, 21 Nov 2025 01:24:25 -0500 Subject: [PATCH 08/10] fixed summoning the stand when not intended --- .../src/main/java/net/hydra/jojomod/client/KeyInputs.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java index 82033e901..6b592c92c 100644 --- a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java +++ b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java @@ -85,12 +85,12 @@ public static void showEXPKey(Player player, Minecraft client, boolean keyIsDown } public static void MoveKey(Player player, int buttonPressed, Options option){ - if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { - ((StandUser) player).roundabout$getStandPowers().preButtonInput(buttonPressed, option); - } - if (!FateTypes.isHuman(player)) { + if (!FateTypes.isHuman(player) && !((StandUser)player).roundabout$getActive()) { ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput(buttonPressed, option); } + else if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { + ((StandUser) player).roundabout$getStandPowers().preButtonInput(buttonPressed, option); + } } } From aa9797207da03c50f81eb13e509129cb6aa585c4 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Sun, 23 Nov 2025 15:45:42 -0500 Subject: [PATCH 09/10] stronger definition of when to use fate or stand powers --- .../src/main/java/net/hydra/jojomod/client/KeyInputs.java | 6 ++---- .../net/hydra/jojomod/fates/powers/AbilityScapeBasis.java | 5 ----- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java index 6b592c92c..40f15025c 100644 --- a/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java +++ b/common/src/main/java/net/hydra/jojomod/client/KeyInputs.java @@ -85,12 +85,10 @@ public static void showEXPKey(Player player, Minecraft client, boolean keyIsDown } public static void MoveKey(Player player, int buttonPressed, Options option){ - if (!FateTypes.isHuman(player) && !((StandUser)player).roundabout$getActive()) { + if (!FateTypes.isHuman(player) && !((StandUser)player).roundabout$getActive()) ((IFatePlayer) player).rdbt$getFatePowers().preButtonInput(buttonPressed, option); - } - else if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) { + else if (!((StandUser) player).roundabout$isSealed() && !((StandUser)player).roundabout$isPossessed()) ((StandUser) player).roundabout$getStandPowers().preButtonInput(buttonPressed, option); - } } } diff --git a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java index 0bd323a48..5aeed985b 100644 --- a/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java +++ b/common/src/main/java/net/hydra/jojomod/fates/powers/AbilityScapeBasis.java @@ -1053,11 +1053,6 @@ public void powerActivate(PowerContext context) { } }; - private boolean held1 = false; - private boolean held2 = false; - private boolean held3 = false; - private boolean held4 = false; - public void buttonInput(int buttonPressed, int source) { PowerContext activatedPower; int power; From d804e5d896b3f39048f1f730a0070c5971c46793 Mon Sep 17 00:00:00 2001 From: Tirochora Date: Sun, 23 Nov 2025 17:23:57 -0500 Subject: [PATCH 10/10] fixed kq, tw, and sp power functions to work the same as before --- .../jojomod/stand/powers/PowersKillerQueen.java | 12 ++++++++---- .../stand/powers/presets/TWAndSPSharedPowers.java | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java index 07aca864a..1ae00f531 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/PowersKillerQueen.java @@ -231,10 +231,14 @@ public boolean tryBlockPosPower(int move, boolean forced, BlockPos blockPos){ } -// @Override -// public void buttonInput2(boolean KeyIsDown, Options options, int source) { -// -// } + @Override + public void buttonInput(int buttonPressed, int source) { + if (buttonPressed == 2){ + + } + else super.buttonInput(buttonPressed, source); + } + @Override public void renderIcons(GuiGraphics context, int x, int y) { diff --git a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java index b913498fd..7f9eeff09 100644 --- a/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java +++ b/common/src/main/java/net/hydra/jojomod/stand/powers/presets/TWAndSPSharedPowers.java @@ -791,7 +791,7 @@ public void preButtonInput(int buttonPressed, Options options){ ((StandUser) this.getSelf()).roundabout$setIdleTime(0); buttonInput(buttonPressed, STAND); } - } else buttonInput(buttonPressed, STAND); + } else super.preButtonInput(buttonPressed, options); }