From 2919d991263086a50275630ee1adc7360e81fe42 Mon Sep 17 00:00:00 2001 From: Sen Date: Fri, 27 Jun 2025 16:56:08 +0200 Subject: [PATCH] remove block metadata TEMP --- common/src/main/java/common/block/Block.java | 34 ++++++++++++++++++- .../common/block/artificial/BlockFence.java | 4 +++ .../block/artificial/BlockFenceGate.java | 4 +++ .../common/block/artificial/BlockPane.java | 4 +++ .../common/block/artificial/BlockStairs.java | 4 +++ .../common/block/artificial/BlockWall.java | 4 +++ .../block/foliage/BlockDoublePlant.java | 12 +++---- .../java/common/block/foliage/BlockGrass.java | 4 +++ .../common/block/foliage/BlockMycelium.java | 4 +++ .../java/common/block/foliage/BlockStem.java | 4 +++ .../common/block/foliage/BlockTianSoil.java | 4 +++ .../java/common/block/foliage/BlockVine.java | 4 +++ .../java/common/block/natural/BlockFire.java | 4 +++ .../common/block/natural/BlockPodzol.java | 4 +++ .../common/block/tech/BlockPistonHead.java | 4 +++ .../block/tech/BlockRedstoneRepeater.java | 4 +++ .../common/block/tech/BlockRedstoneWire.java | 4 +++ .../java/common/block/tech/BlockTripWire.java | 4 +++ .../common/block/tech/BlockTripWireHook.java | 4 +++ .../main/java/common/init/BlockRegistry.java | 7 +++- 20 files changed, 111 insertions(+), 10 deletions(-) diff --git a/common/src/main/java/common/block/Block.java b/common/src/main/java/common/block/Block.java index 99a70251..6ea1c5a3 100755 --- a/common/src/main/java/common/block/Block.java +++ b/common/src/main/java/common/block/Block.java @@ -158,7 +158,9 @@ public class Block { } private final ImmutableList properties; + private final ImmutableList savedProps; private final ImmutableList states; + private final ImmutableList saved; protected final Material material; protected final boolean translucent; @@ -253,6 +255,26 @@ public class Block { return ImmutableList.copyOf(properties); } + private static ImmutableList getPropertyList(Property[] properties, Property[] unsaved) { + List list = unsaved.length == 0 ? Lists.newArrayList(properties) : Lists.newArrayList(); + if(unsaved.length > 0) { + for(Property prop : properties) { + for(int z = 0; z < unsaved.length; z++) { + if(unsaved[z] == prop) + break; + else if(z == unsaved.length - 1) + list.add(prop); + } + } + } + Collections.sort(list, new Comparator() { + public int compare(Property p1, Property p2) { + return p1.getName().compareTo(p2.getName()); + } + }); + return ImmutableList.copyOf(list); + } + private static ImmutableList getStateList(List properties, Block block) { Map, State> map = Maps., State>newLinkedHashMap(); List list = Lists.newArrayList(); @@ -283,6 +305,8 @@ public class Block { this.properties = getPropertyList(this.getProperties()); this.states = getStateList(this.properties, this); this.setDefaultState(this.getBaseState()); + this.savedProps = getPropertyList(this.getProperties(), this.getUnsavedProperties()); + this.saved = getStateList(this.savedProps, this); } public Block setStepSound(SoundType sound) { @@ -397,12 +421,16 @@ public class Block { return this.states; } + public ImmutableList getSavedStates() { + return this.saved; + } + public final State getBaseState() { return this.states.get(0); } public Collection getPropertyMap() { - return this.properties; + return this.savedProps; } public State getStateFromMeta(int meta) { @@ -951,6 +979,10 @@ public class Block { return new Property[0]; } + public Property[] getUnsavedProperties() { + return new Property[0]; + } + protected final void setDefaultState(State state) { this.defaultState = state; } diff --git a/common/src/main/java/common/block/artificial/BlockFence.java b/common/src/main/java/common/block/artificial/BlockFence.java index a00a463f..5e072bcb 100755 --- a/common/src/main/java/common/block/artificial/BlockFence.java +++ b/common/src/main/java/common/block/artificial/BlockFence.java @@ -385,4 +385,8 @@ public class BlockFence extends Block protected Item getItemToRegister() { return new ItemFence(this); } + + public Property[] getUnsavedProperties() { + return new Property[] {NORTH, SOUTH, WEST, EAST}; + } } diff --git a/common/src/main/java/common/block/artificial/BlockFenceGate.java b/common/src/main/java/common/block/artificial/BlockFenceGate.java index 0d936155..53384e89 100755 --- a/common/src/main/java/common/block/artificial/BlockFenceGate.java +++ b/common/src/main/java/common/block/artificial/BlockFenceGate.java @@ -409,4 +409,8 @@ public class BlockFenceGate extends Block implements Rotatable public Property[] getIgnoredProperties() { return new Property[] {POWERED}; } + + public Property[] getUnsavedProperties() { + return new Property[] {IN_WALL}; + } } diff --git a/common/src/main/java/common/block/artificial/BlockPane.java b/common/src/main/java/common/block/artificial/BlockPane.java index 0c1ee080..c8d474bb 100755 --- a/common/src/main/java/common/block/artificial/BlockPane.java +++ b/common/src/main/java/common/block/artificial/BlockPane.java @@ -504,4 +504,8 @@ public class BlockPane extends Block protected Item getItemToRegister() { return this.canDrop ? super.getItemToRegister() : new ItemBlock(this, "glass", false); } + + public Property[] getUnsavedProperties() { + return new Property[] {NORTH, SOUTH, WEST, EAST}; + } } diff --git a/common/src/main/java/common/block/artificial/BlockStairs.java b/common/src/main/java/common/block/artificial/BlockStairs.java index bbbaef2f..17492719 100755 --- a/common/src/main/java/common/block/artificial/BlockStairs.java +++ b/common/src/main/java/common/block/artificial/BlockStairs.java @@ -833,6 +833,10 @@ public class BlockStairs extends Block implements Rotatable return true; } + public Property[] getUnsavedProperties() { + return new Property[] {SHAPE}; + } + public static enum EnumHalf implements Identifyable { TOP("top"), diff --git a/common/src/main/java/common/block/artificial/BlockWall.java b/common/src/main/java/common/block/artificial/BlockWall.java index e393ea43..1ca2a161 100755 --- a/common/src/main/java/common/block/artificial/BlockWall.java +++ b/common/src/main/java/common/block/artificial/BlockWall.java @@ -299,4 +299,8 @@ public class BlockWall extends Block protected Item getItemToRegister() { return new ItemWall(this); } + + public Property[] getUnsavedProperties() { + return new Property[] {NORTH, SOUTH, UP, WEST, EAST}; + } } diff --git a/common/src/main/java/common/block/foliage/BlockDoublePlant.java b/common/src/main/java/common/block/foliage/BlockDoublePlant.java index 1a06a153..e194886d 100755 --- a/common/src/main/java/common/block/foliage/BlockDoublePlant.java +++ b/common/src/main/java/common/block/foliage/BlockDoublePlant.java @@ -29,7 +29,7 @@ import common.world.State; import common.world.World; import common.world.AWorldServer; -public class BlockDoublePlant extends BlockBush implements Rotatable, IGrowable +public class BlockDoublePlant extends BlockBush implements IGrowable { public static final PropertyEnum HALF = PropertyEnum.create("half", BlockDoublePlant.EnumBlockHalf.class); public static final BlockDoublePlant[] PLANTS = new BlockDoublePlant[EnumPlantType.values().length]; @@ -44,7 +44,7 @@ public class BlockDoublePlant extends BlockBush implements Rotatable, IGrowable { super(Material.BUSH); this.type = type; - this.setDefaultState(this.getBaseState().withProperty(HALF, BlockDoublePlant.EnumBlockHalf.LOWER).withProperty(FACING, Facing.NORTH)); + this.setDefaultState(this.getBaseState().withProperty(HALF, BlockDoublePlant.EnumBlockHalf.LOWER)); this.setHardness(0.0F); this.setStepSound(SoundType.GRASS); this.setFlammable(60, 100); @@ -271,12 +271,12 @@ public class BlockDoublePlant extends BlockBush implements Rotatable, IGrowable */ public int getMetaFromState(State state) { - return state.getValue(HALF) == BlockDoublePlant.EnumBlockHalf.UPPER ? 8 | ((Facing)state.getValue(FACING)).getHorizontalIndex() : 0; + return state.getValue(HALF) == BlockDoublePlant.EnumBlockHalf.UPPER ? 8 : 0; } protected Property[] getProperties() { - return new Property[] {HALF, FACING}; + return new Property[] {HALF}; } public Model getModel(ModelProvider provider, String name, State state) { @@ -295,10 +295,6 @@ public class BlockDoublePlant extends BlockBush implements Rotatable, IGrowable return provider.getModel(this.type.getName() + "_" + (state.getValue(HALF) == EnumBlockHalf.UPPER ? "top" : "bottom")).cross(); } - - public Property[] getIgnoredProperties() { - return new Property[] {FACING}; - } protected Item getItemToRegister() { return new ItemDoublePlant(this); diff --git a/common/src/main/java/common/block/foliage/BlockGrass.java b/common/src/main/java/common/block/foliage/BlockGrass.java index c4248043..66b7d827 100755 --- a/common/src/main/java/common/block/foliage/BlockGrass.java +++ b/common/src/main/java/common/block/foliage/BlockGrass.java @@ -148,4 +148,8 @@ public class BlockGrass extends Block implements IGrowable protected Item getItemToRegister() { return new ItemColored(this); } + + public Property[] getUnsavedProperties() { + return new Property[] {SNOWY}; + } } diff --git a/common/src/main/java/common/block/foliage/BlockMycelium.java b/common/src/main/java/common/block/foliage/BlockMycelium.java index 49b79fdb..d13bda0e 100755 --- a/common/src/main/java/common/block/foliage/BlockMycelium.java +++ b/common/src/main/java/common/block/foliage/BlockMycelium.java @@ -106,4 +106,8 @@ public class BlockMycelium extends Block else return provider.getModel("mycelium_side").add().nswe().d("dirt").u("mycelium_top"); } + + public Property[] getUnsavedProperties() { + return new Property[] {SNOWY}; + } } diff --git a/common/src/main/java/common/block/foliage/BlockStem.java b/common/src/main/java/common/block/foliage/BlockStem.java index f4b252d0..c0d3382b 100755 --- a/common/src/main/java/common/block/foliage/BlockStem.java +++ b/common/src/main/java/common/block/foliage/BlockStem.java @@ -324,4 +324,8 @@ public class BlockStem extends BlockBush implements DirectionalUp, IGrowable protected Item getItemToRegister() { return new ItemSeeds(this, Blocks.farmland).setDisplay(this.itemName).setMaxAmount(256); } + + public Property[] getUnsavedProperties() { + return new Property[] {FACING}; + } } diff --git a/common/src/main/java/common/block/foliage/BlockTianSoil.java b/common/src/main/java/common/block/foliage/BlockTianSoil.java index dce3ab62..28967997 100755 --- a/common/src/main/java/common/block/foliage/BlockTianSoil.java +++ b/common/src/main/java/common/block/foliage/BlockTianSoil.java @@ -52,4 +52,8 @@ public class BlockTianSoil extends Block else return provider.getModel("tian_soil_side").add().nswe().d("tian").u("tian_soil_top"); } + + public Property[] getUnsavedProperties() { + return new Property[] {SNOWY}; + } } diff --git a/common/src/main/java/common/block/foliage/BlockVine.java b/common/src/main/java/common/block/foliage/BlockVine.java index c3347ba0..a7440890 100755 --- a/common/src/main/java/common/block/foliage/BlockVine.java +++ b/common/src/main/java/common/block/foliage/BlockVine.java @@ -597,4 +597,8 @@ public class BlockVine extends Block protected Item getItemToRegister() { return new ItemColored(this, ""); } + + public Property[] getUnsavedProperties() { + return new Property[] {UP}; + } } diff --git a/common/src/main/java/common/block/natural/BlockFire.java b/common/src/main/java/common/block/natural/BlockFire.java index ef5d1bdf..687087d0 100755 --- a/common/src/main/java/common/block/natural/BlockFire.java +++ b/common/src/main/java/common/block/natural/BlockFire.java @@ -1156,4 +1156,8 @@ public class BlockFire extends Block protected Item getItemToRegister() { return null; } + + public Property[] getUnsavedProperties() { + return new Property[] {NORTH, SOUTH, UPPER, FLIP, WEST, EAST, ALT}; + } } diff --git a/common/src/main/java/common/block/natural/BlockPodzol.java b/common/src/main/java/common/block/natural/BlockPodzol.java index f812ce73..8552fc4c 100644 --- a/common/src/main/java/common/block/natural/BlockPodzol.java +++ b/common/src/main/java/common/block/natural/BlockPodzol.java @@ -45,4 +45,8 @@ public class BlockPodzol extends Block { return state.getValue(SNOWY) ? provider.getModel("grass_side_snowed").add().nswe().d("dirt").u("grass_top") : provider.getModel("dirt_podzol_side").add().nswe().d("dirt").u("dirt_podzol_top"); } + + public Property[] getUnsavedProperties() { + return new Property[] {SNOWY}; + } } diff --git a/common/src/main/java/common/block/tech/BlockPistonHead.java b/common/src/main/java/common/block/tech/BlockPistonHead.java index 6e907e59..d8e39df6 100755 --- a/common/src/main/java/common/block/tech/BlockPistonHead.java +++ b/common/src/main/java/common/block/tech/BlockPistonHead.java @@ -300,6 +300,10 @@ public class BlockPistonHead extends Block implements Directional return null; } + public Property[] getUnsavedProperties() { + return new Property[] {SHORT}; + } + public static enum EnumPistonType implements Identifyable { DEFAULT("normal"), diff --git a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java index 573d19a8..17dd4e8d 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java @@ -574,4 +574,8 @@ public class BlockRedstoneRepeater extends BlockRedstoneDiode protected Item getItemToRegister() { return this.isRepeaterPowered ? null : new ItemSmallBlock(this).setDisplay("Redstone-Verstärker").setTab(CheatTab.TECHNOLOGY); } + + public Property[] getUnsavedProperties() { + return new Property[] {LOCKED}; + } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneWire.java b/common/src/main/java/common/block/tech/BlockRedstoneWire.java index 3c272622..102808c6 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneWire.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneWire.java @@ -1033,6 +1033,10 @@ public class BlockRedstoneWire extends Block return new ItemRedstone(Blocks.redstone).setDisplay("Redstone").setPotionEffect(PotionHelper.redstoneEffect).setMaxAmount(256); } + public Property[] getUnsavedProperties() { + return new Property[] {EAST, NORTH, SOUTH, WEST}; + } + public static enum EnumAttachPosition implements Identifyable { UP("up"), diff --git a/common/src/main/java/common/block/tech/BlockTripWire.java b/common/src/main/java/common/block/tech/BlockTripWire.java index 05c7a2a9..cc1363c8 100755 --- a/common/src/main/java/common/block/tech/BlockTripWire.java +++ b/common/src/main/java/common/block/tech/BlockTripWire.java @@ -702,4 +702,8 @@ public class BlockTripWire extends Block protected Item getItemToRegister() { return new ItemSmallBlock(this).setDisplay("Faden").setTab(CheatTab.TECHNOLOGY).setMaxAmount(1024); } + + public Property[] getUnsavedProperties() { + return new Property[] {NORTH, SOUTH, WEST, EAST}; + } } diff --git a/common/src/main/java/common/block/tech/BlockTripWireHook.java b/common/src/main/java/common/block/tech/BlockTripWireHook.java index c4d8166e..8aca2476 100755 --- a/common/src/main/java/common/block/tech/BlockTripWireHook.java +++ b/common/src/main/java/common/block/tech/BlockTripWireHook.java @@ -594,4 +594,8 @@ public class BlockTripWireHook extends Block implements Rotatable protected Item getItemToRegister() { return new ItemBlock(this, "tripwire_hook", false); } + + public Property[] getUnsavedProperties() { + return new Property[] {SUSPENDED}; + } } diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index 8fdd3236..4ae3a708 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -139,6 +139,7 @@ import common.collect.BiMap; import common.collect.HashBiMap; import common.collect.Lists; import common.collect.Maps; +import common.collect.Sets; import common.color.DyeColor; import common.item.CheatTab; import common.log.Log; @@ -674,9 +675,13 @@ public abstract class BlockRegistry { STATES.add(state); } } - StringBuilder sb = new StringBuilder("\n\n\tpublic Property[] getSavedProperties() {\n\t\treturn new Property[] {"); + StringBuilder sb = new StringBuilder("\n\n\tpublic Property[] getUnsavedProperties() {\n\t\treturn new Property[] {"); boolean put = false; + Set props = Sets.newHashSet(block.getPropertyMap()); for(Property prop : block.getState().getSavedProperties()) { + props.remove(prop); + } + for(Property prop : props) { if(put) sb.append(", "); sb.append(prop.getName().toUpperCase());