diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java index 936b56e12..d5ecb395d 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java @@ -42,7 +42,6 @@ public final class BlockOptionalMeta { private final ImmutableSet stateHashes; private final ImmutableSet stackHashes; private static final Pattern pattern = Pattern.compile("^(.+?)(?::(\\d+))?$"); - private static final Map normalizations; public BlockOptionalMeta(@Nonnull Block block) { this.block = block; @@ -72,162 +71,6 @@ public final class BlockOptionalMeta { stackHashes = getStackHashes(blockstates); } - static { - Map _normalizations = new HashMap<>(); - Consumer put = instance -> _normalizations.put(instance.getClass(), instance); - put.accept(EnumFacing.NORTH); - put.accept(EnumFacing.Axis.Y); - put.accept(Half.BOTTOM); - put.accept(StairsShape.STRAIGHT); - put.accept(AttachFace.FLOOR); - put.accept(DoubleBlockHalf.UPPER); - put.accept(SlabType.BOTTOM); - put.accept(DoorHingeSide.LEFT); - put.accept(BedPart.HEAD); - put.accept(RailShape.NORTH_SOUTH); - _normalizations.put(BlockBanner.ROTATION, 0); - _normalizations.put(BlockBed.OCCUPIED, false); - _normalizations.put(BlockBrewingStand.HAS_BOTTLE[0], false); - _normalizations.put(BlockBrewingStand.HAS_BOTTLE[1], false); - _normalizations.put(BlockBrewingStand.HAS_BOTTLE[2], false); - _normalizations.put(BlockButton.POWERED, false); - // _normalizations.put(BlockCactus.AGE, 0); - // _normalizations.put(BlockCauldron.LEVEL, 0); - // _normalizations.put(BlockChorusFlower.AGE, 0); - _normalizations.put(BlockChorusPlant.NORTH, false); - _normalizations.put(BlockChorusPlant.EAST, false); - _normalizations.put(BlockChorusPlant.SOUTH, false); - _normalizations.put(BlockChorusPlant.WEST, false); - _normalizations.put(BlockChorusPlant.UP, false); - _normalizations.put(BlockChorusPlant.DOWN, false); - // _normalizations.put(BlockCocoa.AGE, 0); - // _normalizations.put(BlockCrops.AGE, 0); - _normalizations.put(BlockDirtSnowy.SNOWY, false); - _normalizations.put(BlockDoor.OPEN, false); - _normalizations.put(BlockDoor.POWERED, false); - // _normalizations.put(BlockFarmland.MOISTURE, 0); - _normalizations.put(BlockFence.NORTH, false); - _normalizations.put(BlockFence.EAST, false); - _normalizations.put(BlockFence.WEST, false); - _normalizations.put(BlockFence.SOUTH, false); - // _normalizations.put(BlockFenceGate.POWERED, false); - // _normalizations.put(BlockFenceGate.IN_WALL, false); - _normalizations.put(BlockFire.AGE, 0); - _normalizations.put(BlockFire.NORTH, false); - _normalizations.put(BlockFire.EAST, false); - _normalizations.put(BlockFire.SOUTH, false); - _normalizations.put(BlockFire.WEST, false); - _normalizations.put(BlockFire.UP, false); - // _normalizations.put(BlockFrostedIce.AGE, 0); - _normalizations.put(BlockGrass.SNOWY, false); - // _normalizations.put(BlockHopper.ENABLED, true); - // _normalizations.put(BlockLever.POWERED, false); - // _normalizations.put(BlockLiquid.LEVEL, 0); - // _normalizations.put(BlockMycelium.SNOWY, false); - // _normalizations.put(BlockNetherWart.AGE, false); - _normalizations.put(BlockLeaves.DISTANCE, false); - // _normalizations.put(BlockLeaves.DECAYABLE, false); - // _normalizations.put(BlockObserver.POWERED, false); - _normalizations.put(BlockPane.NORTH, false); - _normalizations.put(BlockPane.EAST, false); - _normalizations.put(BlockPane.WEST, false); - _normalizations.put(BlockPane.SOUTH, false); - // _normalizations.put(BlockPistonBase.EXTENDED, false); - // _normalizations.put(BlockPressurePlate.POWERED, false); - // _normalizations.put(BlockPressurePlateWeighted.POWER, false); - // _normalizations.put(BlockRailDetector.POWERED, false); - // _normalizations.put(BlockRailPowered.POWERED, false); - _normalizations.put(BlockRedstoneWire.NORTH, false); - _normalizations.put(BlockRedstoneWire.EAST, false); - _normalizations.put(BlockRedstoneWire.SOUTH, false); - _normalizations.put(BlockRedstoneWire.WEST, false); - // _normalizations.put(BlockReed.AGE, false); - _normalizations.put(BlockSapling.STAGE, 0); - _normalizations.put(BlockStandingSign.ROTATION, 0); - _normalizations.put(BlockStem.AGE, 0); - _normalizations.put(BlockTripWire.NORTH, false); - _normalizations.put(BlockTripWire.EAST, false); - _normalizations.put(BlockTripWire.WEST, false); - _normalizations.put(BlockTripWire.SOUTH, false); - _normalizations.put(BlockVine.NORTH, false); - _normalizations.put(BlockVine.EAST, false); - _normalizations.put(BlockVine.SOUTH, false); - _normalizations.put(BlockVine.WEST, false); - _normalizations.put(BlockVine.UP, false); - _normalizations.put(BlockWall.UP, false); - _normalizations.put(BlockWall.NORTH, false); - _normalizations.put(BlockWall.EAST, false); - _normalizations.put(BlockWall.WEST, false); - _normalizations.put(BlockWall.SOUTH, false); - normalizations = Collections.unmodifiableMap(_normalizations); - } - - public static , P extends IProperty> P castToIProperty(Object value) { - //noinspection unchecked - return (P) value; - } - - public static , P extends IProperty> C castToIPropertyValue(P iproperty, Object value) { - //noinspection unchecked - return (C) value; - } - - /** - * Normalizes the specified blockstate by setting meta-affecting properties which - * are not being targeted by the meta parameter to their default values. - *

- * For example, block variant/color is the primary target for the meta value, so properties - * such as rotation/facing direction will be set to default values in order to nullify - * the effect that they have on the state's meta value. - * - * @param state The state to normalize - * @return The normalized block state - */ - public static IBlockState normalize(IBlockState state) { - IBlockState newState = state; - - for (IProperty property : state.getProperties()) { - Class valueClass = property.getValueClass(); - if (normalizations.containsKey(property)) { - try { - newState = newState.with( - castToIProperty(property), - castToIPropertyValue(property, normalizations.get(property)) - ); - } catch (IllegalArgumentException ignored) {} - } else if (normalizations.containsKey(state.get(property))) { - try { - newState = newState.with( - castToIProperty(property), - castToIPropertyValue(property, normalizations.get(state.get(property))) - ); - } catch (IllegalArgumentException ignored) {} - } else if (normalizations.containsKey(valueClass)) { - try { - newState = newState.with( - castToIProperty(property), - castToIPropertyValue(property, normalizations.get(valueClass)) - ); - } catch (IllegalArgumentException ignored) {} - } - } - - return newState; - } - - /** - * Evaluate the target meta value for the specified state. The target meta value is - * most often that which is influenced by the variant/color property of the block state. - * - * @see #normalize(IBlockState) - * - * @param state The state to check - * @return The target meta of the state - */ - public static int stateMeta(IBlockState state) { - return state.hashCode(); - } - private static Set getStates(@Nonnull Block block) { return new HashSet<>(block.getStateContainer().getValidStates()); }