From c617be685b3ec7f0f5a9f5ca35c21ad62d956f9f Mon Sep 17 00:00:00 2001 From: Sen Date: Fri, 29 Aug 2025 17:23:33 +0200 Subject: [PATCH] make game less blocky --- .../main/java/client/renderer/Renderer.java | 7 +-- .../blocks/{grass_top.png => grass.png} | Bin .../blocks/{grass_top_2.png => grass_2.png} | Bin .../resources/textures/blocks/grass_side.png | Bin 5115 -> 0 bytes .../resources/textures/blocks/snowy_grass.png | Bin 0 -> 207 bytes common/src/main/java/common/block/Block.java | 4 ++ .../main/java/common/block/BlockFalling.java | 4 ++ .../java/common/block/foliage/BlockGrass.java | 56 ++++++------------ .../block/natural/BlockBlackenedDirt.java | 2 +- .../common/block/natural/BlockNonBlock.java | 18 ++++++ .../java/common/block/natural/BlockSlime.java | 2 +- .../java/common/block/tech/BlockAnvil.java | 4 ++ .../main/java/common/init/BlockRegistry.java | 10 ++-- common/src/main/java/common/init/Blocks.java | 7 ++- common/src/main/java/common/init/Items.java | 1 + 15 files changed, 64 insertions(+), 51 deletions(-) rename client/src/main/resources/textures/blocks/{grass_top.png => grass.png} (100%) rename client/src/main/resources/textures/blocks/{grass_top_2.png => grass_2.png} (100%) delete mode 100644 client/src/main/resources/textures/blocks/grass_side.png create mode 100755 client/src/main/resources/textures/blocks/snowy_grass.png create mode 100644 common/src/main/java/common/block/natural/BlockNonBlock.java diff --git a/client/src/main/java/client/renderer/Renderer.java b/client/src/main/java/client/renderer/Renderer.java index d86dd5cf..39dac3a1 100755 --- a/client/src/main/java/client/renderer/Renderer.java +++ b/client/src/main/java/client/renderer/Renderer.java @@ -35,7 +35,6 @@ import client.renderer.texture.TextureMap; import client.renderer.tileentity.SpecialRenderer; import client.world.ChunkClient; import common.block.Block; -import common.block.BlockFalling; import common.block.Material; import common.block.artificial.BlockSlab; import common.block.liquid.BlockDynamicLiquid; @@ -1808,7 +1807,7 @@ public class Renderer { this.fluids.put(liquid.first(), sprites); } for(Block block : BlockRegistry.blocks()) { - if(block instanceof BlockFalling && !(block instanceof BlockAnvil)) { + if(block.isNonBlock()) { String name = BlockRegistry.getName(block); this.dynamic.put(block, texturemap.getAtlasSprite("blocks/" + name)); } @@ -3335,7 +3334,7 @@ public class Renderer { return false; else if(block.getMaterial().isLiquid()) return this.renderFluid(world, state, pos, rb); - else if(block instanceof BlockFalling && !(block instanceof BlockAnvil)) + else if(block.isNonBlock()) return this.renderDynamic(world, state, pos, rb); State mstate = state; if(!this.gm.debugWorld) { @@ -3931,7 +3930,7 @@ public class Renderer { { BlockPos blockpos = blockPosIn.add(-(j & 1), 0, -(j >> 1 & 1)); - if (blockAccess.getState(blockpos.up()).getBlock() == block) + if (blockAccess.getState(blockpos.up()).getBlock() != Blocks.air) { return 1.0F; } diff --git a/client/src/main/resources/textures/blocks/grass_top.png b/client/src/main/resources/textures/blocks/grass.png similarity index 100% rename from client/src/main/resources/textures/blocks/grass_top.png rename to client/src/main/resources/textures/blocks/grass.png diff --git a/client/src/main/resources/textures/blocks/grass_top_2.png b/client/src/main/resources/textures/blocks/grass_2.png similarity index 100% rename from client/src/main/resources/textures/blocks/grass_top_2.png rename to client/src/main/resources/textures/blocks/grass_2.png diff --git a/client/src/main/resources/textures/blocks/grass_side.png b/client/src/main/resources/textures/blocks/grass_side.png deleted file mode 100644 index c68a4a3c3bc7a52208319ded486f17c6e0b1861a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5115 zcmeHKc~BE+7LON4JU|D;QNR#T!LgH0=OU3H(L}%)WB~;{20PsyXv}322vFiW3f|&? zfQpQQD_(=>E{=+*s5>ekii{$NqO0QI0V3*n;K6GWD9sUm2`L>)mR z5=bS5lF-l^9;wH@2EA=|F!Vo2x#L|p)UZtO-a|ICbg#$-t=@lYjdiB|9!Z6ww7vS) z<#(wol6kw_BCA+QJ~>>2_}_06D;X7!7;Sc)F~{l~i$tVN&R={JY%3hgP*mwI}YVGgrCQc@zYtj$Jp8ADg$^$9WuQ(foT~D9)sv}A~f?>xAL`NKS7Y}}SROlS(;E?MVxcGDf9gDhhQBh?{vTDE@t*qy^C z%tne;V+_NcbKK75{_9?@OkCBsX=%-XAq8PYA-`CKWAfVAq5||aN1cBrJLi`h)0!DB z&Hn2}agRziiu=jP`!?=r997fb#%4D-@Z*+$8=b>@Hep6>QDNEfsNi))vB$Dzr#;v+ zvd~LJi*Xr;l2)hcy~OPYJx(tDyRa|7TFBSK*_75m(_qc`xSw9tJB0{`(@mCh(>7-r~Aec5TPe9DH-| zVaCDQ3k6x1;cAqxJC=3V^*^d}11s9jOWc~{X0&Q|mrmU|QNFF=$m1h! zugmwl&UK~Awv^tkJSqQ2=sg%7b+?3Cba5m0s=R%EQs?g4pKkJqCGX?@Kn{q`u39f+ z)yeYW`>fuk|8=k9#PFk0TLWIq-}Az6aeHF$oBbUMmCcH#PO`=S7Qe2J@p26H@4FjK z*6%6ry1&VG0Z(4mbojrF%HG(#dyaeBdJ1L891@I+2>Em&rd2agT&o}$32Ge}Clrd$ zqy!y`Eg+0E1rbeZMD(`OGCGaKMf7m49G2^*5HVyxlAZ`n3JSxL7GMILKFOErlOO~D zYQl)p64WYiA3d%V zhDfG%Lx49CJ;rF%37Jfj$;2?R8CrcblO+%cm@vXb5C~X6hD41KO@K58cQZs6hJ-L+ zdQxX3wHlfk6IE#Aj3PQ6=xHC~Q|sjN9(awRn+3oJGXd2xSqzw|Rx^8h7>v?*0MZ@M zpL!U=z|>`i5C(0W9wVgjgvRLJ8v@6A{B?19l_ebm)UNH;2ns@C4jmP=OkQ5!GOX847?iNPvS1 z*ccb#^B@>kC?JkE4j{Z?Z-~dncmSM*q8y|b#0)(Nx)N3Oj>-&$11JTX;IMEG8)EZe z9>hUWE`%ykCB)|O1w18>qeQuE3lxqCr)u?T6qJ)xqtOIYr-`;G%!CWY!GR(=!hko$d2^>W9>7*tu;iDpqR1={_)XXM}&t}Q5&#rNxI&mO zL|9=go)CeBT;w|#5yHLfwK%Cv{D0Qw%|r9)DtQ2D0P81OL|r>7lvvpH*7d3)EnA63 zvup|>igl%6K;sGA5+}gwQeiQuCYk`#qq|){$jLux1=w3ba9K(M;^JH`#6b`xq`(Di z2qQQO80X;#!s?>62i>4m8cnF45Jv+Z0au_sEnLw&Ers&>G!|0~VXguo41)Pk7hy14 zh;X|JV}AJ*SxO!cMsNbOHw$z-ALBy`9?FAQN*KeG3IY)*{_+%i_e6J!K1}mi{7_UM z=Kqwv%b?dB1=MuOz+>o%B2D{pQyJI!X3LLG1-WG{ t8$@>HYxJ!551uOScUG3Q$z+{XPD!fpt>@Iyl^}acpfpHQGz@qLn?0d20QXK7;wD)zyIaj z(|vLmW?o4MHuLmQb6P0tEY|((%=?$eCHgNvm=sggd-0iMU{~aVlj~*}rf7zgnAdqZ z@A&vR{rhw$lTMbRFLuHjtz1w3g*ud&KM*NbIPvV&i|4Y7qXk3v+>O)FwK!N-5+xWO z5+!(7O~~h^ML= 50.0f) { + if(Vars.grassDry) + worldIn.setState(pos, worldIn.rand.chance(20) ? Blocks.coarse_dirt.getState() : + Blocks.dirt.getState()); + } + else { - if (Vars.grassSpread && worldIn.getLightFromNeighbors(pos.up()) >= 9) + if(this == Blocks.snowy_grass && !worldIn.canFreezeAt(pos)) { + worldIn.setState(pos, Blocks.grass.getState()); + } + else if(this == Blocks.grass && worldIn.isRaining() && worldIn.canFreezeAt(pos)) { + worldIn.setState(pos, Blocks.snowy_grass.getState()); + } + else if (Vars.grassSpread && worldIn.getLightFromNeighbors(pos.up()) >= 9) { for (int i = 0; i < 4; ++i) { @@ -59,11 +60,6 @@ public class BlockGrass extends Block implements IGrowable } } } - else { - if(Vars.grassDry) - worldIn.setState(pos, worldIn.rand.chance(20) ? Blocks.coarse_dirt.getState() : - Blocks.dirt.getState()); - } } public Item getDrop(State state, Random rand, int fortune) @@ -85,20 +81,4 @@ public class BlockGrass extends Block implements IGrowable { worldIn.growGrass(pos, state, rand); } - - protected Property[] getProperties() - { - return new Property[] {SNOWY}; - } - - public Model getModel(ModelProvider provider, String name, State state) { - if(state.getValue(SNOWY)) - return provider.getModel("dirt").add().d().u("snow").nswe().add().nswe("soil_snowed"); - else - return provider.getModel("dirt").add().d().u("grass_top").nswe().add().nswe("grass_side"); - } - - protected Property[] getUnsavedProperties() { - return new Property[] {SNOWY}; - } } diff --git a/common/src/main/java/common/block/natural/BlockBlackenedDirt.java b/common/src/main/java/common/block/natural/BlockBlackenedDirt.java index 14177319..ab929da9 100644 --- a/common/src/main/java/common/block/natural/BlockBlackenedDirt.java +++ b/common/src/main/java/common/block/natural/BlockBlackenedDirt.java @@ -10,7 +10,7 @@ import common.vars.Vars; import common.world.State; import common.world.AWorldServer; -public class BlockBlackenedDirt extends Block +public class BlockBlackenedDirt extends BlockNonBlock { public BlockBlackenedDirt() { diff --git a/common/src/main/java/common/block/natural/BlockNonBlock.java b/common/src/main/java/common/block/natural/BlockNonBlock.java new file mode 100644 index 00000000..73d9d32a --- /dev/null +++ b/common/src/main/java/common/block/natural/BlockNonBlock.java @@ -0,0 +1,18 @@ +package common.block.natural; + +import common.block.Block; +import common.block.Material; + +public class BlockNonBlock extends Block { + public BlockNonBlock(Material material) { + super(material); + } + + public boolean isOpaqueCube() { + return false; + } + + public boolean isNonBlock() { + return true; + } +} diff --git a/common/src/main/java/common/block/natural/BlockSlime.java b/common/src/main/java/common/block/natural/BlockSlime.java index 4a8bb267..8fa32740 100755 --- a/common/src/main/java/common/block/natural/BlockSlime.java +++ b/common/src/main/java/common/block/natural/BlockSlime.java @@ -7,7 +7,7 @@ import common.item.CheatTab; import common.util.BlockPos; import common.world.World; -public class BlockSlime extends Block { +public class BlockSlime extends BlockNonBlock { public BlockSlime() { super(Material.LOOSE); this.setTab(CheatTab.NATURE); diff --git a/common/src/main/java/common/block/tech/BlockAnvil.java b/common/src/main/java/common/block/tech/BlockAnvil.java index defab22b..9334c59b 100755 --- a/common/src/main/java/common/block/tech/BlockAnvil.java +++ b/common/src/main/java/common/block/tech/BlockAnvil.java @@ -58,6 +58,10 @@ public class BlockAnvil extends BlockFalling implements Rotatable return false; } + public boolean isNonBlock() { + return false; + } + public boolean isMagnetic() { return true; } diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index 1f6a5676..514afd56 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -211,11 +211,13 @@ public abstract class BlockRegistry { Block dirt; - register("dirt", (dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE)); + register("dirt", (dirt = new BlockNonBlock(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE)); Block grass; - register("grass", (grass = new BlockGrass()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Gras").setMiningTool(Equipment.SHOVEL)); + register("grass", (grass = new BlockGrass(false)).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Gras").setMiningTool(Equipment.SHOVEL)); + Block snowy_grass; + register("snowy_grass", (snowy_grass = new BlockGrass(true)).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Beschneites Gras").setMiningTool(Equipment.SHOVEL)); Block coarse_dirt; - register("coarse_dirt", (coarse_dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Grobe Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE)); + register("coarse_dirt", (coarse_dirt = new BlockNonBlock(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Grobe Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE)); Block podzol; register("podzol", (podzol = new BlockPodzol()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Podsol").setMiningTool(Equipment.SHOVEL)); Block mycelium; @@ -223,7 +225,7 @@ public abstract class BlockRegistry { Block swamp; register("swamp", (swamp = new BlockSwamp()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Sumpf").setMiningTool(Equipment.SHOVEL)); Block tian; - register("tian", (tian = new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE) + register("tian", (tian = new BlockNonBlock(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE) .setDisplay("Tian").setTab(CheatTab.NATURE)); Block tian_soil; register("tian_soil", (tian_soil = new BlockTianSoil()).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE) diff --git a/common/src/main/java/common/init/Blocks.java b/common/src/main/java/common/init/Blocks.java index f4275ee2..ae8d7b03 100755 --- a/common/src/main/java/common/init/Blocks.java +++ b/common/src/main/java/common/init/Blocks.java @@ -153,7 +153,7 @@ public abstract class Blocks { public static final BlockClay clay = get("clay"); public static final BlockCompressable coal_block = get("coal_block"); public static final BlockOre coal_ore = get("coal_ore"); - public static final Block coarse_dirt = get("coarse_dirt"); + public static final BlockNonBlock coarse_dirt = get("coarse_dirt"); public static final BlockMetalBlock cobalt_block = get("cobalt_block"); public static final BlockMetalOre cobalt_ore = get("cobalt_ore"); public static final Block cobblestone = get("cobblestone"); @@ -188,7 +188,7 @@ public abstract class Blocks { public static final BlockTallGrass dead_bush = get("dead_bush"); public static final BlockDeadBush deadbush = get("deadbush"); public static final BlockOre diamond_ore = get("diamond_ore"); - public static final Block dirt = get("dirt"); + public static final BlockNonBlock dirt = get("dirt"); public static final BlockDispenser dispenser = get("dispenser"); public static final BlockDragonEgg dragon_egg = get("dragon_egg"); public static final BlockDispenser dropper = get("dropper"); @@ -235,6 +235,7 @@ public abstract class Blocks { public static final BlockMetalOre gold_ore = get("gold_ore"); public static final BlockStaticLiquid goo = get("goo"); public static final BlockGrass grass = get("grass"); + public static final BlockGrass snowy_grass = get("snowy_grass"); public static final BlockGravel gravel = get("gravel"); public static final BlockCarpet gray_carpet = get("gray_carpet"); public static final BlockColoredClay gray_clay = get("gray_clay"); @@ -457,7 +458,7 @@ public abstract class Blocks { public static final BlockDoublePlant syringa = get("syringa"); public static final BlockTallGrass tallgrass = get("tallgrass"); public static final BlockOre thetium_ore = get("thetium_ore"); - public static final Block tian = get("tian"); + public static final BlockNonBlock tian = get("tian"); public static final BlockDoor tian_wood_door = get("tian_wood_door"); public static final BlockFence tian_wood_fence = get("tian_wood_fence"); public static final BlockFenceGate tian_wood_fence_gate = get("tian_wood_fence_gate"); diff --git a/common/src/main/java/common/init/Items.java b/common/src/main/java/common/init/Items.java index 6cf0ad17..55557320 100755 --- a/common/src/main/java/common/init/Items.java +++ b/common/src/main/java/common/init/Items.java @@ -369,6 +369,7 @@ public abstract class Items { public static final ItemAppleGold charged_apple = get("charged_apple"); public static final ItemBucket goo_bucket = get("goo_bucket"); public static final Item grass = get("grass"); + public static final Item snowy_grass = get("snowy_grass"); public static final Item gravel = get("gravel"); public static final Item gray_carpet = get("gray_carpet"); public static final Item gray_clay = get("gray_clay");