From b28cb6449cd217b7f32e4225f2b724b6078c3587 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 26 Nov 2020 15:40:46 +0300 Subject: [PATCH] Tenanea leaves and fixes --- .../ru/betterend/blocks/basis/BlockFur.java | 3 +- .../world/features/trees/TenaneaFeature.java | 36 ++++++++---------- .../assets/betterend/lang/en_us.json | 3 +- .../assets/betterend/lang/ru_ru.json | 3 +- .../materialmaps/block/tenanea_leaves.json | 3 ++ .../block/tenanea_outer_leaves.json | 3 ++ .../betterend/materials/leaves_noshade.json | 10 +++++ .../textures/block/tenanea_outer_leaves.png | Bin 1973 -> 1735 bytes 8 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 src/main/resources/assets/betterend/materialmaps/block/tenanea_leaves.json create mode 100644 src/main/resources/assets/betterend/materialmaps/block/tenanea_outer_leaves.json create mode 100644 src/main/resources/assets/betterend/materials/leaves_noshade.json diff --git a/src/main/java/ru/betterend/blocks/basis/BlockFur.java b/src/main/java/ru/betterend/blocks/basis/BlockFur.java index cb2b6c2c..9793cc8b 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockFur.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockFur.java @@ -60,7 +60,6 @@ public class BlockFur extends BlockBaseNotFull implements IRenderTypeable { super(FabricBlockSettings.of(Material.REPLACEABLE_PLANT) .breakByTool(FabricToolTags.SHEARS) .sounds(BlockSoundGroup.WET_GRASS) - .luminance(15) .breakByHand(true) .noCollision()); this.drop = drop; @@ -98,7 +97,7 @@ public class BlockFur extends BlockBaseNotFull implements IRenderTypeable { public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { Direction direction = (Direction) state.get(FACING); BlockPos blockPos = pos.offset(direction.getOpposite()); - return sideCoversSmallSquare(world, blockPos, direction) || world.getBlockState(pos).isIn(BlockTags.LEAVES); + return sideCoversSmallSquare(world, blockPos, direction) || world.getBlockState(blockPos).isIn(BlockTags.LEAVES); } @Override diff --git a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java index 474fcf72..a27a2892 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -38,6 +38,7 @@ public class TenaneaFeature extends DefaultFeature { private static final Function REPLACE; private static final Function IGNORE; private static final List SPLINE; + private static final Direction[] DIRECTIONS = Direction.values(); @Override public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, DefaultFeatureConfig config) { @@ -82,16 +83,16 @@ public class TenaneaFeature extends DefaultFeature { } } + BlockState top = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP); + BlockState middle = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.MIDDLE); + BlockState bottom = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.BOTTOM); BlockState outer = EndBlocks.TENANEA_OUTER_LEAVES.getDefaultState(); + List support = Lists.newArrayList(); sphere.setPostProcess((info) -> { - if (info.getStateDown().isAir()) { - if (random.nextBoolean()) { - support.add(info.getPos().toImmutable()); - } - else { - info.setState(info.getPos().down(), outer.with(BlockFur.FACING, Direction.DOWN)); - } + if (random.nextBoolean() && info.getStateDown().isAir()) { + BlockPos d = info.getPos().down(); + support.add(d); } if (random.nextInt(5) == 0) { for (Direction dir: Direction.values()) { @@ -103,14 +104,14 @@ public class TenaneaFeature extends DefaultFeature { info.setState(EndBlocks.TENANEA.bark.getDefaultState()); } - if (info.getState().isOf(EndBlocks.TENANEA_LEAVES)) { - for (Direction d: BlocksHelper.HORIZONTAL) { - if (info.getState(d).isAir()) { - info.setState(info.getPos().offset(d), outer.with(BlockFur.FACING, Direction.DOWN)); - } + MHelper.shuffle(DIRECTIONS, random); + for (Direction d: DIRECTIONS) { + if (info.getState(d).isAir()) { + info.setBlockPos(info.getPos().offset(d), outer.with(BlockFur.FACING, d)); } } - else if (EndBlocks.TENANEA.isTreeLog(info.getState())) { + + if (EndBlocks.TENANEA.isTreeLog(info.getState())) { for (int x = -6; x < 7; x++) { int ax = Math.abs(x); mut.setX(x + info.getPos().getX()); @@ -137,16 +138,11 @@ public class TenaneaFeature extends DefaultFeature { return info.getState(); }); sphere.fillRecursiveIgnore(world, pos, IGNORE); - BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.TENANEA.bark); - BlockState top = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP); - BlockState middle = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.MIDDLE); - BlockState bottom = EndBlocks.TENANEA_FLOWERS.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.BOTTOM); - support.forEach((bpos) -> { - int count = MHelper.randRange(5, 9, random); - mut.set(bpos).move(Direction.DOWN); + int count = MHelper.randRange(3, 8, random); + mut.set(bpos); BlocksHelper.setWithoutUpdate(world, mut, top); for (int i = 1; i < count; i++) { mut.setY(mut.getY() - 1); diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 2735675d..e47468c2 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -332,5 +332,6 @@ "block.betterend.amber_ore": "Amber Ore", "item.betterend.amber_gem": "Amber Gem", "item.betterend.raw_amber": "Raw Amber", - "block.betterend.tenanea_flowers": "Tenanea Flowers" + "block.betterend.tenanea_flowers": "Tenanea Flowers", + "block.betterend.tenanea_outer_leaves": "Tenanea Outer Leaves" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index fcc3fcb8..3cb5ccff 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -334,5 +334,6 @@ "block.betterend.amber_ore": "Янтарная руда", "item.betterend.amber_gem": "Огранённый янтарь", "item.betterend.raw_amber": "Необработанный янтарь", - "block.betterend.tenanea_flowers": "Цветы тенанеи" + "block.betterend.tenanea_flowers": "Цветы тенанеи", + "block.betterend.tenanea_outer_leaves": "Внешние листья тенанеи" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/tenanea_leaves.json b/src/main/resources/assets/betterend/materialmaps/block/tenanea_leaves.json new file mode 100644 index 00000000..11eeb91f --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/tenanea_leaves.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:leaves_noshade" +} diff --git a/src/main/resources/assets/betterend/materialmaps/block/tenanea_outer_leaves.json b/src/main/resources/assets/betterend/materialmaps/block/tenanea_outer_leaves.json new file mode 100644 index 00000000..11eeb91f --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/tenanea_outer_leaves.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:leaves_noshade" +} diff --git a/src/main/resources/assets/betterend/materials/leaves_noshade.json b/src/main/resources/assets/betterend/materials/leaves_noshade.json new file mode 100644 index 00000000..f717541e --- /dev/null +++ b/src/main/resources/assets/betterend/materials/leaves_noshade.json @@ -0,0 +1,10 @@ +{ + "layers": [ + { + "vertexSource": "betterend:shaders/material/wave.vert", + "fragmentSource": "canvas:shaders/material/default.frag", + "disableAo": true, + "disableDiffuse": true + } + ] +} diff --git a/src/main/resources/assets/betterend/textures/block/tenanea_outer_leaves.png b/src/main/resources/assets/betterend/textures/block/tenanea_outer_leaves.png index 78a923603d495ea0a7c7139440098b2b9b9f4caf..4a200c2dac0eac913e8983820e3da76252d339e6 100644 GIT binary patch delta 482 zcmdnWf1G!M1rzJUjaI&llfN*=PHtw*ogBy%z-nk=Wo$lq8IuN-b(u+x8!V=6U~FYz zF!>gP}hGc(01(bzaK$=p0e*TUSySU1(!#7H;M z%-lpb&CtZcJkik1!ot#MvI}#u3K8m*CZA`WJeh|jSeXdLlO0%PpiWL?wV%9+Rbg@x zn{B;?-SICB3=DTXT^vI!dXxYB|8LK%+R&+VcQG4}ICDgSr_I@&M?TDd_`lwb&CTtl zX4Mbg1IvCKK3@L+=n)mkxV=^X;%7BB3Qj-hV{r7%8<_;DnU|DUJ#Yh*o)3kbcK#KL)J ze?9k$?b~^Le0+G$&$CY}xFL9OM%{kVbL^6J@BjJkIH<6fVQE6!qblJg2Y?=B@O1Ta JS?83{1OP!px^e&j delta 660 zcmX@kyOn=}1ruB1Mk`;&$uAf)CpR-DP7Y)WU^TF`GP0Pwj7bB^y3C~J4HnZjFt#!< zP*SMKE%5cV^2{qPNz6-5^>ndS0*dHmW~NvfB_>;1rlpwcnwX`S>87QbnCd23SQzM9 zrlzGCCs`z!nwup}E@CcLPEIsRNli4>wKTR!)lD=sG1E;nO*YcCNHsMwN;R@DH%d#L z%)+ccc_vGk3lVCS6pBk+%Sx=uGg9+xm5dCG40H_*b&bqI3{9;d-Z5r%mMBU|v&zYY zDoso-$;<~TE>0|)e1S#Il^CZJV~xEa)Pm%U#Ju#>6k8?z$%U+nlj~UICTp=2O`gPR zTVKlX@CgG0!!J)4#}JF&f{=J(q&NNX&5Ha+p>B|KHICOIDmaz;Q)MRrBv8~yp`O3Y0#c%CB^lvasXqYmkUS`I#rw`K;(h?H`0xz~m^E__m zaS!8W(otYiVOYFX+`3^dui1^CPwFS!`1)F0a*GMCL}T0k=~E`9I$S%<60D=9cCvwQ z0x#Ro>#6xV%DbXAFf#pd>anl?$8h;Y+XCsHb<+ezxOW`5Jja{ozvRFF>}@s{M>aC< mVH04U!J#c_njpa