From 687def43d1d8ec34f34e8225d714d5ab7422501c Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 9 Nov 2020 00:03:48 +0300 Subject: [PATCH] Fixes, structures, removed glow --- .../java/ru/betterend/registry/EndBlocks.java | 2 +- .../java/ru/betterend/util/BlocksHelper.java | 197 +++++++++--------- .../world/features/NBTStructureFeature.java | 13 +- .../bushes/DragonTreeBushFeature.java | 16 +- .../materialmaps/block/cyan_moss.json | 2 +- .../foggy_mushroomland/fallen_tree_1.nbt | Bin 0 -> 1279 bytes .../foggy_mushroomland/fallen_tree_2.nbt | Bin 0 -> 3590 bytes .../biome/foggy_mushroomland/library.nbt | Bin 0 -> 7642 bytes .../biome/foggy_mushroomland/ruins_1.nbt | Bin 0 -> 453 bytes .../biome/foggy_mushroomland/ruins_2.nbt | Bin 0 -> 489 bytes .../biome/foggy_mushroomland/ruins_3.nbt | Bin 0 -> 528 bytes .../biome/foggy_mushroomland/structures.json | 13 ++ .../biome/foggy_mushroomland/stump_1.nbt | Bin 0 -> 503 bytes .../biome/foggy_mushroomland/stump_2.nbt | Bin 0 -> 369 bytes .../biome/foggy_mushroomland/tree_house.nbt | Bin 0 -> 23503 bytes 15 files changed, 140 insertions(+), 103 deletions(-) create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/fallen_tree_1.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/fallen_tree_2.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/library.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_1.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_2.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_3.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/structures.json create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/stump_1.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/stump_2.nbt create mode 100644 src/main/resources/data/betterend/structures/biome/foggy_mushroomland/tree_house.nbt diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 8b0b1070..1d3d59f2 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -139,7 +139,7 @@ public class EndBlocks { // Wall Plants // public static final Block PURPLE_POLYPORE = registerBlock("purple_polypore", new BlockWallMushroom(13)); public static final Block TAIL_MOSS = registerBlock("tail_moss", new BlockWallPlant()); - public static final Block CYAN_MOSS = registerBlock("cyan_moss", new BlockWallPlant(13)); + public static final Block CYAN_MOSS = registerBlock("cyan_moss", new BlockWallPlant()); // Crops // public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new BlockShadowBerry()); diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index dfbac0ba..e9fe5398 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -24,6 +24,7 @@ import net.minecraft.world.WorldAccess; import ru.betterend.blocks.BlockBlueVine; import ru.betterend.blocks.basis.BlockDoublePlant; import ru.betterend.blocks.basis.BlockGlowingFur; +import ru.betterend.blocks.basis.BlockVine; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -147,117 +148,127 @@ public class BlocksHelper { doubleCheck.add(POS.toImmutable()); } - // Chorus - if (state.isOf(Blocks.CHORUS_PLANT)) { - Set ends = Sets.newHashSet(); - Set add = Sets.newHashSet(); - ends.add(POS.toImmutable()); - - for (int i = 0; i < 64 && !ends.isEmpty(); i++) { - ends.forEach((pos) -> { - setWithoutUpdate(world, pos, AIR); - for (Direction dir: HORIZONTAL) { - BlockPos p = pos.offset(dir); + if (!state.canPlaceAt(world, POS)) { + + // Chorus + if (state.isOf(Blocks.CHORUS_PLANT)) { + Set ends = Sets.newHashSet(); + Set add = Sets.newHashSet(); + ends.add(POS.toImmutable()); + + for (int i = 0; i < 64 && !ends.isEmpty(); i++) { + ends.forEach((pos) -> { + setWithoutUpdate(world, pos, AIR); + for (Direction dir : HORIZONTAL) { + BlockPos p = pos.offset(dir); + BlockState st = world.getBlockState(p); + if ((st.isOf(Blocks.CHORUS_PLANT) || st.isOf(Blocks.CHORUS_FLOWER)) && !st.canPlaceAt(world, p)) { + add.add(p); + } + } + BlockPos p = pos.up(); BlockState st = world.getBlockState(p); if ((st.isOf(Blocks.CHORUS_PLANT) || st.isOf(Blocks.CHORUS_FLOWER)) && !st.canPlaceAt(world, p)) { add.add(p); } - } - BlockPos p = pos.up(); - BlockState st = world.getBlockState(p); - if ((st.isOf(Blocks.CHORUS_PLANT) || st.isOf(Blocks.CHORUS_FLOWER)) && !st.canPlaceAt(world, p)) { - add.add(p); - } - }); - ends.clear(); - ends.addAll(add); - add.clear(); + }); + ends.clear(); + ends.addAll(add); + add.clear(); + } } - } - // Liquids - else if (!state.getFluidState().isEmpty()) { - POS.setY(y - 1); - if (world.isAir(POS)) { - POS.setY(y); - while (!world.getFluidState(POS).isEmpty()) { + // Vines + else if (state.getBlock() instanceof BlockVine) { + while (world.getBlockState(POS).getBlock() instanceof BlockVine) { setWithoutUpdate(world, POS, AIR); - POS.setY(POS.getY() + 1); - } - continue; - } - BlockState st; - for (Direction dir: HORIZONTAL) { - if ((st = world.getBlockState(POS.offset(dir))).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { - world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); - break; - } - } - if ((st = world.getBlockState(POS.up())).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { - world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); - } - } - // Falling blocks - else if (state.getBlock() instanceof FallingBlock) { - BlockState falling = state; - - POS.setY(POS.getY() - 1); - state = world.getBlockState(POS); - - int ray = downRayRep(world, POS.toImmutable(), 64); - if (ray > 32) { - BlocksHelper.setWithoutUpdate(world, POS, Blocks.END_STONE.getDefaultState()); - if (world.getRandom().nextBoolean()) { POS.setY(POS.getY() - 1); - state = world.getBlockState(POS); - BlocksHelper.setWithoutUpdate(world, POS, Blocks.END_STONE.getDefaultState()); } } - else { - POS.setY(y); - boolean place = true; - for (Direction dir: HORIZONTAL) { - state = world.getBlockState(POS.offset(dir)); - if (!state.getFluidState().isEmpty()) { - BlocksHelper.setWithoutUpdate(world, POS, state); - place = false; + // Liquids + else if (!state.getFluidState().isEmpty()) { + POS.setY(y - 1); + if (world.isAir(POS)) { + POS.setY(y); + while (!world.getFluidState(POS).isEmpty()) { + setWithoutUpdate(world, POS, AIR); + POS.setY(POS.getY() + 1); + } + continue; + } + BlockState st; + for (Direction dir : HORIZONTAL) { + if ((st = world.getBlockState(POS.offset(dir))).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { + world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); break; } } - if (place) { - BlocksHelper.setWithoutUpdate(world, POS, AIR); + if ((st = world.getBlockState(POS.up())).getMaterial().isReplaceable() && st.getFluidState().isEmpty()) { + world.getFluidTickScheduler().schedule(POS, state.getFluidState().getFluid(), 0); } - - POS.setY(y - ray); - BlocksHelper.setWithoutUpdate(world, POS, falling); } - } - // Blocks without support - else if (!state.canPlaceAt(world, POS)) { - // Blue Vine - if (state.getBlock() instanceof BlockBlueVine) { - while (state.isOf(EndBlocks.BLUE_VINE) || state.isOf(EndBlocks.BLUE_VINE_LANTERN) || state.isOf(EndBlocks.BLUE_VINE_FUR)) { - BlocksHelper.setWithoutUpdate(world, POS, AIR); - for (Direction dir : HORIZONTAL) { - BlockPos p = POS.offset(dir); - state = world.getBlockState(p); - if (state.getBlock() instanceof BlockGlowingFur) { - BlocksHelper.setWithoutUpdate(world, p, AIR); - } - world.getBlockTickScheduler().schedule(p, world.getBlockState(p).getBlock(), 0); + // Falling blocks + else if (state.getBlock() instanceof FallingBlock) { + BlockState falling = state; + + POS.setY(POS.getY() - 1); + state = world.getBlockState(POS); + + int ray = downRayRep(world, POS.toImmutable(), 64); + if (ray > 32) { + BlocksHelper.setWithoutUpdate(world, POS, Blocks.END_STONE.getDefaultState()); + if (world.getRandom().nextBoolean()) { + POS.setY(POS.getY() - 1); + state = world.getBlockState(POS); + BlocksHelper.setWithoutUpdate(world, POS, Blocks.END_STONE.getDefaultState()); } - POS.setY(POS.getY() + 1); - state = world.getBlockState(POS); + } + else { + POS.setY(y); + boolean place = true; + for (Direction dir : HORIZONTAL) { + state = world.getBlockState(POS.offset(dir)); + if (!state.getFluidState().isEmpty()) { + BlocksHelper.setWithoutUpdate(world, POS, state); + place = false; + break; + } + } + if (place) { + BlocksHelper.setWithoutUpdate(world, POS, AIR); + } + + POS.setY(y - ray); + BlocksHelper.setWithoutUpdate(world, POS, falling); } } - // Double plants - if (state.getBlock() instanceof BlockDoublePlant) { - BlocksHelper.setWithoutUpdate(world, POS, AIR); - POS.setY(POS.getY() + 1); - BlocksHelper.setWithoutUpdate(world, POS, AIR); - } - // Other blocks + // Blocks without support else { - BlocksHelper.setWithoutUpdate(world, POS, AIR); + // Blue Vine + if (state.getBlock() instanceof BlockBlueVine) { + while (state.isOf(EndBlocks.BLUE_VINE) || state.isOf(EndBlocks.BLUE_VINE_LANTERN) || state.isOf(EndBlocks.BLUE_VINE_FUR)) { + BlocksHelper.setWithoutUpdate(world, POS, AIR); + for (Direction dir : HORIZONTAL) { + BlockPos p = POS.offset(dir); + state = world.getBlockState(p); + if (state.getBlock() instanceof BlockGlowingFur) { + BlocksHelper.setWithoutUpdate(world, p, AIR); + } + world.getBlockTickScheduler().schedule(p, world.getBlockState(p).getBlock(), 0); + } + POS.setY(POS.getY() + 1); + state = world.getBlockState(POS); + } + } + // Double plants + if (state.getBlock() instanceof BlockDoublePlant) { + BlocksHelper.setWithoutUpdate(world, POS, AIR); + POS.setY(POS.getY() + 1); + BlocksHelper.setWithoutUpdate(world, POS, AIR); + } + // Other blocks + else { + BlocksHelper.setWithoutUpdate(world, POS, AIR); + } } } } diff --git a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java index 0d49d983..3a0aedab 100644 --- a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java +++ b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java @@ -95,12 +95,12 @@ public abstract class NBTStructureFeature extends DefaultFeature { structure.place(world, center, placementData, random); TerrainMerge merge = getTerrainMerge(world, center, random); + int x1 = center.getX(); + int z1 = center.getZ(); + int x2 = x1 + offset.getX(); + int z2 = z1 + offset.getZ(); if (merge != TerrainMerge.NONE) { Mutable mut = new Mutable(); - int x1 = center.getX(); - int z1 = center.getZ(); - int x2 = x1 + offset.getX(); - int z2 = z1 + offset.getZ(); if (x2 < x1) { int a = x1; @@ -119,10 +119,10 @@ public abstract class NBTStructureFeature extends DefaultFeature { mut.setX(x); for (int z = z1; z <= z2; z++) { mut.setZ(z); - mut.setY(posY); + mut.setY(surfMax); BlockState state = world.getBlockState(mut); if (!state.isIn(EndTags.GEN_TERRAIN) && state.isSideSolidFullSquare(world, mut, Direction.DOWN)) { - for (int i = 0; i < 10; i--) { + for (int i = 0; i < 10; i++) { mut.setY(mut.getY() - 1); BlockState stateSt = world.getBlockState(mut); if (!stateSt.isIn(EndTags.GEN_TERRAIN)) { @@ -153,6 +153,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { } } } + BlocksHelper.fixBlocks(world, new BlockPos(x1, center.getY(), z1), new BlockPos(x2, center.getY() + offset.getY(), z2)); return true; } diff --git a/src/main/java/ru/betterend/world/features/bushes/DragonTreeBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/DragonTreeBushFeature.java index a56f8f12..40fc8f13 100644 --- a/src/main/java/ru/betterend/world/features/bushes/DragonTreeBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/DragonTreeBushFeature.java @@ -31,14 +31,26 @@ public class DragonTreeBushFeature extends DefaultFeature { if (world.getBlockState(pos.down()).getBlock() != EndBlocks.SHADOW_GRASS) return false; BlockState leaves = EndBlocks.DRAGON_TREE_LEAVES.getDefaultState().with(LeavesBlock.DISTANCE, 1); - float radius = MHelper.randRange(1.8F, 4.5F, random); + float radius = MHelper.randRange(1.8F, 3.5F, random); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextInt()); SDF sphere = new SDFSphere().setRadius(radius).setBlock(EndBlocks.DRAGON_TREE_LEAVES.getDefaultState().with(LeavesBlock.DISTANCE, 1)); sphere = new SDFScale3D().setScale(1, 0.5F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; }).setSource(sphere); - sphere = new SDFDisplacement().setFunction((vec) -> { return random.nextFloat() * 3F - 1.5F; }).setSource(sphere); + sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-2F, 2F, random); }).setSource(sphere); sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(new SDFTranslate().setTranslate(0, -radius, 0).setSource(sphere)); sphere.setReplaceFunction(REPLACE); + sphere.setPostProcess((info) -> { + if (info.getState().getBlock() instanceof LeavesBlock) { + int distance = info.getPos().getManhattanDistance(pos); + if (distance < 7) { + return info.getState().with(LeavesBlock.DISTANCE, distance); + } + else { + return AIR; + } + } + return info.getState(); + }); sphere.fillRecursive(world, pos); BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.DRAGON_TREE.bark); for (Direction d: Direction.values()) { diff --git a/src/main/resources/assets/betterend/materialmaps/block/cyan_moss.json b/src/main/resources/assets/betterend/materialmaps/block/cyan_moss.json index 1cc4c628..45210670 100644 --- a/src/main/resources/assets/betterend/materialmaps/block/cyan_moss.json +++ b/src/main/resources/assets/betterend/materialmaps/block/cyan_moss.json @@ -1,3 +1,3 @@ { - "defaultMaterial": "betterend:waving_wall_glow_inc" + "defaultMaterial": "betterend:waving_wall" } diff --git a/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/fallen_tree_1.nbt b/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/fallen_tree_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..9ba61b150372e45a662db76ede7bde032d009269 GIT binary patch literal 1279 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/library.nbt b/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/library.nbt new file mode 100644 index 0000000000000000000000000000000000000000..bf3c0cd0fd3da3de9bf85b58a9fd4881467597fc GIT binary patch literal 7642 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 L_~-k(mc94CB;B(K literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_1.nbt b/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..278b78c7f0df5ea77a199f611cd133a25a54451c GIT binary patch literal 453 zcmV;$0XqI4iwFP!000000IgKPZlf>|9WbOoE|vDOJym~a;+ecUV zmzxrp(QXJD7Gsb*;)JJ&5R)vxqzf=-y#<(L0VZ953G+!Na!wZHJjRT92Ck1V>;ufO z!n)E3CJQhu(ywHOCz;U7B0ZhUC!5g9CvqNpxQg^*E}tRqQ0pp!33-YLX3oQOqNn9V z?c<*2Pytglm5|>NcK-*kfK=?@x<(?jsCIv9ZY|1)-C=o^$6OgM`^bKJ*9BzvyhHf) zM%HQPj+;j6gKMqU-Ns0+9-WV^9;`NK`-{NG@n_*6Il@5kdxpZ16~^FhBXu(-S|5CF z*8ga52l<{$hn|v-2K_ywiF9|CxSf-bydG1p_IxW;WDMBYq__k@RoAXv=rzaFwmRps6P(EezW?>N+&hvc<=uKLthw8t%n6=NfN z$tnHyH3{S#VosN+3J6)i?9A-=V+~M1YQiSn~}E z6G8Sv_lhHU{QGfB%w$OIZaUhLBb0%RqFMi&6MCPIdXAM$*%2D~Hr;rpd+9J29m=70 zSngLjq`$Bw_;#eLCEjW2{FI#=Y(u*tp5I1yWQI+X!>Yzgs6C_yrwbFs_ajBCt-UYz zQXgz%v~J6~H%la$(uSKSmQP2P>K;`&P|Zuz24(Gbt!CCPw9UaaXQbZmoz<*HX(@Lt zH`o#6mJN!1!=7tG&-Is3<1Q{?{JR&QoEkX2iKo+Hk#)2?l3q>) fCF|}?>I61Fk?{{1E3|UQ={5WVRH)A#fd>EpDah!k literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_3.nbt b/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/ruins_3.nbt new file mode 100644 index 0000000000000000000000000000000000000000..1377ae93c6007b089d278ffde30384eecc6616f2 GIT binary patch literal 528 zcmV+r0`L7FiwFP!000000KJw?kJB&^h9~hyJ{B%;0mSd%uva)EPFyP|ol=V=j$-d3 z`1Lp}L$i_NniV8cR8@WEednEVqtpNuaI1eH1AzH1{4M-lRZ!yKw9{x|zABJSXWFl} z_Fvvrz(!-KD1(P9V<4QisiSIvJ(^AJ25PQ5s_TP$OI-fXPGc(ncyV@UZL}xU6~;)ug zAy4ok=Gxw`>4*d!x|TX@<9|^u7`|~x%}R!wHAu?TAP8f?Z%|`KqU42S2uxAKy72`4v0PldbZVJNPa4SN-RC zuJi5TSM21M(KG0gUj@aey190KrL0TfA61X=<|23M)V=9^ABSer{?!wRc^zV$?(l-V z4I!iduxC8_to5hKj5y8jwhq7+ z1r!G#aMAcFK!<3f`(2S@G=nh&BN(-i5f_Y@VI)IGF&ItMk_Xo(+R3 ziTxRKWiW!lQ2T=nwLi#EeIdi?t0EZ1=nEODFJvgsnxTUXmAk&87PUWy(K|BKJ%|jI zDKgZ|BSZC$4Ana_RPQCj4>HtwSYAlRN7~W}juk z^BhAxcZ!7P)VVR$N!`mi9mUYm3>{>0_j|6EVPs(#wM?Q`YM!T=re;GjWgYloMQ;B@ t)+gI72c@}{y7PV9{%fgnHdnNOnsRDC%~#VRvrzWwgD(%#q`OQlv=UIBNn%Bv4;U1NHH P;sJgEGMTqjHwXX#+#shs literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/tree_house.nbt b/src/main/resources/data/betterend/structures/biome/foggy_mushroomland/tree_house.nbt new file mode 100644 index 0000000000000000000000000000000000000000..fc2eb3d28621ba603a134e0927faa03ae74bd796 GIT binary patch literal 23503 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

OvbtA09c+X;!tY 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 literal 0 HcmV?d00001