From d154618e53837e64dff2b1af90726c2f86472d68 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 9 Mar 2024 19:28:29 +0000 Subject: [PATCH 1/2] Fixed sounds playing for blocks that they shouldn't --- .../ha3/presencefootsteps/world/AssociationPool.java | 11 +++++++---- .../eu/ha3/presencefootsteps/world/PFSolver.java | 5 ----- .../eu/ha3/presencefootsteps/world/Substrates.java | 12 ++++++++++++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/eu/ha3/presencefootsteps/world/AssociationPool.java b/src/main/java/eu/ha3/presencefootsteps/world/AssociationPool.java index 3fc69c99..c0da0eb0 100644 --- a/src/main/java/eu/ha3/presencefootsteps/world/AssociationPool.java +++ b/src/main/java/eu/ha3/presencefootsteps/world/AssociationPool.java @@ -78,10 +78,10 @@ public SoundsKey get(BlockPos pos, BlockState state, String substrate) { getForState(state, substrate) || (!baseState.isAir() && ( getForState(baseState, substrate) - || (!Substrates.DEFAULT.equals(substrate) && getForState(baseState, Substrates.DEFAULT)) - || getForPrimitive(baseState) + || (!Substrates.isDefault(substrate) && getForState(baseState, Substrates.DEFAULT)) + || (getForPrimitive(baseState, substrate)) )) - || getForPrimitive(state) + || getForPrimitive(state, substrate) )) { return association; } @@ -93,7 +93,10 @@ private boolean getForState(BlockState state, String substrate) { return (association = engine.getIsolator().blocks().getAssociation(state, substrate)).isResult(); } - private boolean getForPrimitive(BlockState state) { + private boolean getForPrimitive(BlockState state, String substrate) { + if (Substrates.isSupplimentary(substrate)) { + return false; + } BlockSoundGroup sounds = state.getSoundGroup(); return (association = engine.getIsolator().primitives().getAssociation(sounds.getStepSound(), PrimitiveLookup.getSubstrate(sounds))).isResult(); } diff --git a/src/main/java/eu/ha3/presencefootsteps/world/PFSolver.java b/src/main/java/eu/ha3/presencefootsteps/world/PFSolver.java index 7d05d4ec..ed19ffda 100644 --- a/src/main/java/eu/ha3/presencefootsteps/world/PFSolver.java +++ b/src/main/java/eu/ha3/presencefootsteps/world/PFSolver.java @@ -18,12 +18,8 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.World; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; public class PFSolver implements Solver { - private static final Logger LOGGER = LogManager.getLogger("PFSolver"); - private static final double TRAP_DOOR_OFFSET = 0.1; private final SoundEngine engine; @@ -217,7 +213,6 @@ private Association findAssociation(AssociationPool associations, LivingEntity e SoundsKey wetAssociation = SoundsKey.UNASSIGNED; if (isValidCarpet && (association = associations.get(pos, carpet, Substrates.CARPET)).isEmitter()) { - LOGGER.debug("Carpet detected: " + association); target = carpet; // reference frame moved up by 1 } else { diff --git a/src/main/java/eu/ha3/presencefootsteps/world/Substrates.java b/src/main/java/eu/ha3/presencefootsteps/world/Substrates.java index 765c6430..a049107e 100644 --- a/src/main/java/eu/ha3/presencefootsteps/world/Substrates.java +++ b/src/main/java/eu/ha3/presencefootsteps/world/Substrates.java @@ -1,5 +1,7 @@ package eu.ha3.presencefootsteps.world; +import java.util.Set; + public interface Substrates { String DEFAULT = ""; String CARPET = "carpet"; @@ -7,4 +9,14 @@ public interface Substrates { String FENCE = "bigger"; String FOLIAGE = "foliage"; String MESSY = "messy"; + + Set SUPPLIMENTART_SUBSTRATES = Set.of(WET, FOLIAGE, MESSY); + + static boolean isDefault(String substrate) { + return Substrates.DEFAULT.equals(substrate); + } + + static boolean isSupplimentary(String substrate) { + return SUPPLIMENTART_SUBSTRATES.contains(substrate); + } } From 1f8b52da6ab15526cc5163142abdcf960f7e7ea2 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 9 Mar 2024 19:43:02 +0000 Subject: [PATCH 2/2] Fixed inccorect stance appearing in the debug screen --- src/main/java/eu/ha3/presencefootsteps/PFDebugHud.java | 4 ++-- .../eu/ha3/presencefootsteps/sound/generator/Locomotion.java | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/ha3/presencefootsteps/PFDebugHud.java b/src/main/java/eu/ha3/presencefootsteps/PFDebugHud.java index 30e243cb..a42fb88c 100644 --- a/src/main/java/eu/ha3/presencefootsteps/PFDebugHud.java +++ b/src/main/java/eu/ha3/presencefootsteps/PFDebugHud.java @@ -50,8 +50,8 @@ public void render(HitResult blockHit, HitResult fluidHit, List finalLis config.otherPlayerVolume )); list.add(String.format("Stepping Mode: %s, Targeting Mode: %s, Footwear: %s", config.getLocomotion() == Locomotion.NONE - ? String.format("AUTO (%sDETECTED %s%s)", Formatting.BOLD, Locomotion.forPlayer(client.player, Locomotion.BIPED), Formatting.RESET) - : config.getLocomotion().toString(), config.getEntitySelector(), config.getEnabledFootwear())); + ? String.format("AUTO (%sDETECTED %s%s)", Formatting.BOLD, Locomotion.forPlayer(client.player, Locomotion.NONE), Formatting.RESET) + : config.getLocomotion(), config.getEntitySelector(), config.getEnabledFootwear())); list.add(String.format("Data Loaded: B%s P%s G%s", engine.getIsolator().blocks().getSubstrates().size(), engine.getIsolator().primitives().getSubstrates().size(), diff --git a/src/main/java/eu/ha3/presencefootsteps/sound/generator/Locomotion.java b/src/main/java/eu/ha3/presencefootsteps/sound/generator/Locomotion.java index 0e9d8ea8..5d6a3af3 100644 --- a/src/main/java/eu/ha3/presencefootsteps/sound/generator/Locomotion.java +++ b/src/main/java/eu/ha3/presencefootsteps/sound/generator/Locomotion.java @@ -6,7 +6,6 @@ import eu.ha3.presencefootsteps.sound.SoundEngine; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.resource.language.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -53,10 +52,6 @@ public Text getOptionTooltip() { return Text.translatable(translationKey + ".tooltip"); } - public String getDisplayName() { - return I18n.translate("pf.stance", I18n.translate(translationKey)); - } - public static Locomotion byName(String name) { return registry.getOrDefault(name, BIPED); }