From 4073e0a32ca6b9bb111e4060983d4fb561a21df8 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 26 Oct 2020 00:34:04 +0300 Subject: [PATCH] Fixes --- .../ru/betterend/registry/BiomeRegistry.java | 4 ++++ .../java/ru/betterend/util/BlocksHelper.java | 4 ++-- .../world/biome/BiomeCrystalMountains.java | 3 +++ .../world/structures/piece/MountainPiece.java | 8 +++++++- .../betterend/blockstates/crystal_moss.json | 10 ++++++++++ .../betterend/blockstates/crystal_moss_path.json | 10 ++++++++++ .../betterend/models/block/crystal_moss.json | 12 ++++++++++++ .../models/block/crystal_moss_path.json | 7 +++++++ .../betterend/models/item/crystal_moss.json | 3 +++ .../betterend/models/item/crystal_moss_path.json | 3 +++ .../textures/block/crystal_moss_path_top.png | Bin 0 -> 2291 bytes 11 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/betterend/blockstates/crystal_moss.json create mode 100644 src/main/resources/assets/betterend/blockstates/crystal_moss_path.json create mode 100644 src/main/resources/assets/betterend/models/block/crystal_moss.json create mode 100644 src/main/resources/assets/betterend/models/block/crystal_moss_path.json create mode 100644 src/main/resources/assets/betterend/models/item/crystal_moss.json create mode 100644 src/main/resources/assets/betterend/models/item/crystal_moss_path.json create mode 100644 src/main/resources/assets/betterend/textures/block/crystal_moss_path_top.png diff --git a/src/main/java/ru/betterend/registry/BiomeRegistry.java b/src/main/java/ru/betterend/registry/BiomeRegistry.java index 640b157e..ba365492 100644 --- a/src/main/java/ru/betterend/registry/BiomeRegistry.java +++ b/src/main/java/ru/betterend/registry/BiomeRegistry.java @@ -154,4 +154,8 @@ public class BiomeRegistry { Identifier id = biomeRegistry.getId(biome); return id == null ? END.getID() : id; } + + public static EndBiome getBiome(Identifier biomeID) { + return ID_MAP.getOrDefault(biomeID, END); + } } diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index fac2a596..f835bdba 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -154,7 +154,7 @@ public class BlocksHelper { Set remove = Sets.newHashSet(); ends.add(POS.toImmutable()); - while (!ends.isEmpty()) { + for (int i = 0; i < 128 && !ends.isEmpty(); i++) { ends.forEach((pos) -> { setWithoutUpdate(world, pos, AIR); for (Direction dir: HORIZONTAL) { @@ -169,8 +169,8 @@ public class BlocksHelper { } remove.add(pos); }); - ends.removeAll(remove); ends.addAll(add); + ends.removeAll(remove); remove.clear(); add.clear(); } diff --git a/src/main/java/ru/betterend/world/biome/BiomeCrystalMountains.java b/src/main/java/ru/betterend/world/biome/BiomeCrystalMountains.java index e6b94857..fb4584d6 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeCrystalMountains.java +++ b/src/main/java/ru/betterend/world/biome/BiomeCrystalMountains.java @@ -1,6 +1,8 @@ package ru.betterend.world.biome; +import net.minecraft.block.Blocks; import net.minecraft.entity.EntityType; +import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.FeatureRegistry; import ru.betterend.registry.SoundRegistry; import ru.betterend.registry.StructureRegistry; @@ -9,6 +11,7 @@ public class BiomeCrystalMountains extends EndBiome { public BiomeCrystalMountains() { super(new BiomeDefinition("crystal_mountains") .setPlantsColor(255, 133, 211) + .setSurface(BlockRegistry.CRYSTAL_MOSS, Blocks.END_STONE) .setMusic(SoundRegistry.MUSIC_CRYSTAL_MOUNTAINS) .addStructureFeature(StructureRegistry.MOUNTAIN) .addFeature(FeatureRegistry.ROUND_CAVE) diff --git a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java index 736eda01..1384023b 100644 --- a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java @@ -5,6 +5,7 @@ import java.util.Random; import com.google.common.collect.Maps; +import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtHelper; @@ -37,6 +38,7 @@ public class MountainPiece extends BasePiece { private float height; private float r2; private Identifier biomeID; + private BlockState top; public MountainPiece(BlockPos center, float radius, float height, int id, Biome biome) { super(StructureRegistry.MOUNTAIN_PIECE, id); @@ -46,6 +48,7 @@ public class MountainPiece extends BasePiece { this.r2 = radius * radius; this.noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ())); this.biomeID = BiomeRegistry.getBiomeID(biome); + top = biome.getGenerationSettings().getSurfaceConfig().getTopMaterial(); makeBoundingBox(); } @@ -70,6 +73,7 @@ public class MountainPiece extends BasePiece { biomeID = new Identifier(tag.getString("biome")); r2 = radius * radius; noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ())); + top = BiomeRegistry.getBiome(biomeID).getBiome().getGenerationSettings().getSurfaceConfig().getTopMaterial(); } @Override @@ -99,9 +103,11 @@ public class MountainPiece extends BasePiece { maxY *= (float) noise.eval(px * 0.05, pz * 0.05) * 0.3F + 0.7F; maxY *= (float) noise.eval(px * 0.1, pz * 0.1) * 0.1F + 0.8F; maxY += 56; + int cover = (int) (maxY - 1); + boolean needCover = noise.eval(px * 0.3, pz * 0.3) > 0 && (noise.eval(px * 0.03, pz * 0.03) - (maxY - 60) * 0.2) > 0; for (int y = minY; y < maxY; y++) { pos.setY(y); - chunk.setBlockState(pos, Blocks.END_STONE.getDefaultState(), false); + chunk.setBlockState(pos, needCover && y >= cover ? top : Blocks.END_STONE.getDefaultState(), false); } } } diff --git a/src/main/resources/assets/betterend/blockstates/crystal_moss.json b/src/main/resources/assets/betterend/blockstates/crystal_moss.json new file mode 100644 index 00000000..ddf93100 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/crystal_moss.json @@ -0,0 +1,10 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/crystal_moss" }, + { "model": "betterend:block/crystal_moss", "y": 90 }, + { "model": "betterend:block/crystal_moss", "y": 180 }, + { "model": "betterend:block/crystal_moss", "y": 270 } + ] + } +} diff --git a/src/main/resources/assets/betterend/blockstates/crystal_moss_path.json b/src/main/resources/assets/betterend/blockstates/crystal_moss_path.json new file mode 100644 index 00000000..2218e820 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/crystal_moss_path.json @@ -0,0 +1,10 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/crystal_moss_path" }, + { "model": "betterend:block/crystal_moss_path", "y": 90 }, + { "model": "betterend:block/crystal_moss_path", "y": 180 }, + { "model": "betterend:block/crystal_moss_path", "y": 270 } + ] + } +} diff --git a/src/main/resources/assets/betterend/models/block/crystal_moss.json b/src/main/resources/assets/betterend/models/block/crystal_moss.json new file mode 100644 index 00000000..a64db84a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/crystal_moss.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "down": "block/end_stone", + "east": "betterend:block/crystal_moss_side", + "north": "betterend:block/crystal_moss_side", + "particle": "betterend:block/crystal_moss_side", + "south": "betterend:block/crystal_moss_side", + "up": "betterend:block/crystal_moss_top", + "west": "betterend:block/crystal_moss_side" + } +} diff --git a/src/main/resources/assets/betterend/models/block/crystal_moss_path.json b/src/main/resources/assets/betterend/models/block/crystal_moss_path.json new file mode 100644 index 00000000..ae4d6b55 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/crystal_moss_path.json @@ -0,0 +1,7 @@ +{ "parent": "betterend:block/path", + "textures": { + "top": "betterend:block/crystal_moss_path_top", + "side": "betterend:block/crystal_moss_side", + "bottom": "block/end_stone" + } +} diff --git a/src/main/resources/assets/betterend/models/item/crystal_moss.json b/src/main/resources/assets/betterend/models/item/crystal_moss.json new file mode 100644 index 00000000..d31083f2 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/crystal_moss.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/crystal_moss" +} diff --git a/src/main/resources/assets/betterend/models/item/crystal_moss_path.json b/src/main/resources/assets/betterend/models/item/crystal_moss_path.json new file mode 100644 index 00000000..801db548 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/crystal_moss_path.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/crystal_moss_path" +} diff --git a/src/main/resources/assets/betterend/textures/block/crystal_moss_path_top.png b/src/main/resources/assets/betterend/textures/block/crystal_moss_path_top.png new file mode 100644 index 0000000000000000000000000000000000000000..830aaf7571b48539000ca76d95c8b0576e5a239f GIT binary patch literal 2291 zcmcIm4Qvx-819C^224OO{LSn8ag6^cu;^d}f)gQ2giHYmEDC0U5t(Fh6Uq2VCiq>~RYX8SVw3BA_ucb7 z@B2RQbKl*Hyqsw%14a)p7z`=dS&n>o9-<#fiSU2TS|0;X$)T(_RfA#RF#Sj{Y}`E3 zVCc71ausTY&KaB_2aLQZyMZwr2tl;LFnMY?#0v|7hPZ)O3fj=lBS%q05^d;gvy*U! z?7$~wMHDbIlH(F03k6n0r%pj8hdD?P02+^k1OA}Og>7h*mxE({8b^^RL|bS>GxUH+ zp)(J$%L+iuMg|i|6NOk#- zk!C|-radJDLUG!l8j}eMhKKnOP8tclq$p4n;V#Ghd5wPn%(w`GBP|?F{{t+GlBe`Pp`yTfWF^2up`-xs1$ZdvjYe}ix$K~- z@j(G(J8URS)hJ0KM|v2>A}|CdQYI^A5ltS9wF)98(r%t1D62;_TYJ|#WT8lJqQ1Vz z&!Q|qj<|FjpO@%Ii0La7w^ zR#|fIqgI0<;dZto!!_ab`26e-hmk`j7D(*}Z48fI!n;>a+5(c2o~>TAr+(eIy7wzy zsM}m{_+xdlE3^cXEZu%dAm8$ts)xCQz zEZcF8x?0$szj$ZHt&4Lv&DuAkQaR~4yIH^wuR|+0F`jB6(*DKqk$p^8i?o5-mFBik zE3u@Z#gmqq?#XGFnyx9_?y~nzrQ9fN$~#?|ao}U|#HyB=IcutDSKqYX1DUB8TMCYp zZ)i}{(u+Q5ufEmLQD5-${AN{4cxh?H=gsF=)SvlNi5#1~tle!ML>_s5@x0tuN7NE2YEAhSDcN(dtzTDYaAH$q!X55jbu~Bq-EXS4 zOzTrQeb1+(%D1mP;VP^;`l7Az$NuBE<=6JNt#3Fq_N=gdBbjRh+uG9FS)cSMXKUCm5Tl;w@_Wfk&_}m*^cl&~h(HqeDhrUfPUUzkD=?MD| zufNiD<^Z{@c??KITfaZ(Y25o&`Q^HK2kgVAq%6p&YkQ{l!YcIHISEeFh!IOGS2b6q j9;