diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockPlant.java index ef675a52..64e17a66 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockPlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockPlant.java @@ -38,15 +38,23 @@ public class BlockPlant extends BlockBaseNotFull implements IRenderTypeable, Fer private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 14, 12); public BlockPlant() { - super(FabricBlockSettings.of(Material.PLANT) + this(false); + } + + public BlockPlant(int light) { + this(false, light); + } + + public BlockPlant(boolean replaceable) { + super(FabricBlockSettings.of(replaceable ? Material.PLANT : Material.REPLACEABLE_PLANT) .breakByTool(FabricToolTags.SHEARS) .sounds(BlockSoundGroup.GRASS) .breakByHand(true) .noCollision()); } - public BlockPlant(int light) { - super(FabricBlockSettings.of(Material.PLANT) + public BlockPlant(boolean replaceable, int light) { + super(FabricBlockSettings.of(replaceable ? Material.PLANT : Material.REPLACEABLE_PLANT) .breakByTool(FabricToolTags.SHEARS) .sounds(BlockSoundGroup.GRASS) .lightLevel(light) diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index 8f9251cd..5860712a 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -29,6 +29,7 @@ import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EnderBlock; import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.basis.BlockGlowingFur; +import ru.betterend.blocks.basis.BlockPlant; import ru.betterend.blocks.basis.BlockVine; import ru.betterend.blocks.complex.WoodenMaterial; import ru.betterend.tab.CreativeTab; @@ -69,6 +70,8 @@ public class BlockRegistry { public static final Block END_LILY = registerBlockNI("end_lily", new BlockEndLily()); public static final Block END_LILY_SEED = registerBlock("end_lily_seed", new BlockEndLilySeed()); + public static final Block CHORUS_GRASS = registerBlock("chorus_grass", new BlockPlant(true)); + // Vines // public static final Block DENSE_VINE = registerBlock("dense_vine", new BlockVine(15, true)); diff --git a/src/main/java/ru/betterend/registry/FeatureRegistry.java b/src/main/java/ru/betterend/registry/FeatureRegistry.java index 92c4589e..60a2d3f6 100644 --- a/src/main/java/ru/betterend/registry/FeatureRegistry.java +++ b/src/main/java/ru/betterend/registry/FeatureRegistry.java @@ -16,6 +16,7 @@ public class FeatureRegistry { public static final EndFeature UMBRELLA_MOSS = new EndFeature("umbrella_moss", new DoublePlantFeature(BlockRegistry.UMBRELLA_MOSS, BlockRegistry.UMBRELLA_MOSS_TALL, 5), 5); public static final EndFeature CREEPING_MOSS = new EndFeature("creeping_moss", new SinglePlantFeature(BlockRegistry.CREEPING_MOSS, 5), 5); public static final EndFeature BLUE_VINE = new EndFeature("blue_vine", new BlueVineFeature(), 1); + public static final EndFeature CHORUS_GRASS = new EndFeature("chorus_grass", new SinglePlantFeature(BlockRegistry.CHORUS_GRASS, 4), 4); public static final EndFeature DENSE_VINE = new EndFeature("dense_vine", new VineFeature(BlockRegistry.DENSE_VINE, 24), 3); diff --git a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java index b647bb02..4d07d47d 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java @@ -18,6 +18,7 @@ public class BiomeChorusForest extends EndBiome { .addStructureFeature(StructureRegistry.GIANT_MOSSY_GLOWSHROOM) .addFeature(FeatureRegistry.ENDER_ORE) .addFeature(FeatureRegistry.RARE_END_LAKE) + .addFeature(FeatureRegistry.CHORUS_GRASS) .addMobSpawn(EntityRegistry.END_SLIME, 5, 1, 2) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); } diff --git a/src/main/java/ru/betterend/world/features/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/EndLakeFeature.java index f92cf8a3..f2fe5996 100644 --- a/src/main/java/ru/betterend/world/features/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLakeFeature.java @@ -168,9 +168,11 @@ public class EndLakeFeature extends DefaultFeature { if (world.getBlockState(pos).getBlock().isIn(BlockTagRegistry.GEN_TERRAIN)) { BlocksHelper.setWithoutUpdate(world, POS.down(), BlockRegistry.ENDSTONE_DUST.getDefaultState()); - EndBiome biome = BiomeRegistry.getFromBiome(world.getBiome(POS)); - if (biome == BiomeRegistry.CHORUS_FOREST) { - generateFoggyMushroomland(world, x, z, waterLevel); + if (random.nextInt(3) == 0 && pos.getY() < waterLevel - 1) { + EndBiome biome = BiomeRegistry.getFromBiome(world.getBiome(POS)); + if (biome == BiomeRegistry.FOGGY_MUSHROOMLAND) { + generateFoggyMushroomland(world, x, z, waterLevel); + } } } pos = POS.up(); diff --git a/src/main/resources/assets/betterend/blockstates/chorus_grass.json b/src/main/resources/assets/betterend/blockstates/chorus_grass.json new file mode 100644 index 00000000..6de30ad2 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/chorus_grass.json @@ -0,0 +1,38 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/chorus_grass_01" }, + { "model": "betterend:block/chorus_grass_02" }, + { "model": "betterend:block/chorus_grass_03" }, + { "model": "betterend:block/chorus_grass_04" }, + { "model": "betterend:block/chorus_grass_05" }, + { "model": "betterend:block/chorus_grass_06" }, + { "model": "betterend:block/chorus_grass_07" }, + { "model": "betterend:block/chorus_grass_08" }, + { "model": "betterend:block/chorus_grass_01", "y": 90 }, + { "model": "betterend:block/chorus_grass_02", "y": 90 }, + { "model": "betterend:block/chorus_grass_03", "y": 90 }, + { "model": "betterend:block/chorus_grass_04", "y": 90 }, + { "model": "betterend:block/chorus_grass_05", "y": 90 }, + { "model": "betterend:block/chorus_grass_06", "y": 90 }, + { "model": "betterend:block/chorus_grass_07", "y": 90 }, + { "model": "betterend:block/chorus_grass_08", "y": 90 }, + { "model": "betterend:block/chorus_grass_01", "y": 180 }, + { "model": "betterend:block/chorus_grass_02", "y": 180 }, + { "model": "betterend:block/chorus_grass_03", "y": 180 }, + { "model": "betterend:block/chorus_grass_04", "y": 180 }, + { "model": "betterend:block/chorus_grass_05", "y": 180 }, + { "model": "betterend:block/chorus_grass_06", "y": 180 }, + { "model": "betterend:block/chorus_grass_07", "y": 180 }, + { "model": "betterend:block/chorus_grass_08", "y": 180 }, + { "model": "betterend:block/chorus_grass_01", "y": 270 }, + { "model": "betterend:block/chorus_grass_02", "y": 270 }, + { "model": "betterend:block/chorus_grass_03", "y": 270 }, + { "model": "betterend:block/chorus_grass_04", "y": 270 }, + { "model": "betterend:block/chorus_grass_05", "y": 270 }, + { "model": "betterend:block/chorus_grass_06", "y": 270 }, + { "model": "betterend:block/chorus_grass_07", "y": 270 }, + { "model": "betterend:block/chorus_grass_08", "y": 270 } + ] + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_01.json b/src/main/resources/assets/betterend/models/block/chorus_grass_01.json new file mode 100644 index 00000000..2231cc82 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_01.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_grass_01" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_02.json b/src/main/resources/assets/betterend/models/block/chorus_grass_02.json new file mode 100644 index 00000000..761c1e67 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_02.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_grass_02" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_03.json b/src/main/resources/assets/betterend/models/block/chorus_grass_03.json new file mode 100644 index 00000000..14c78de3 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_03.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_grass_03" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_04.json b/src/main/resources/assets/betterend/models/block/chorus_grass_04.json new file mode 100644 index 00000000..8630cd2d --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_04.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_grass_04" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_05.json b/src/main/resources/assets/betterend/models/block/chorus_grass_05.json new file mode 100644 index 00000000..8fead9a9 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_05.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/crop_block", + "textures": { + "texture": "betterend:block/chorus_grass_01" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_06.json b/src/main/resources/assets/betterend/models/block/chorus_grass_06.json new file mode 100644 index 00000000..3fc34e68 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_06.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/crop_block", + "textures": { + "texture": "betterend:block/chorus_grass_02" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_07.json b/src/main/resources/assets/betterend/models/block/chorus_grass_07.json new file mode 100644 index 00000000..e7ffd9bf --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_07.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/crop_block", + "textures": { + "texture": "betterend:block/chorus_grass_03" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_08.json b/src/main/resources/assets/betterend/models/block/chorus_grass_08.json new file mode 100644 index 00000000..687c6976 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_08.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/crop_block", + "textures": { + "texture": "betterend:block/chorus_grass_04" + } +} diff --git a/src/main/resources/assets/betterend/models/item/chorus_grass.json b/src/main/resources/assets/betterend/models/item/chorus_grass.json new file mode 100644 index 00000000..e4965460 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/chorus_grass.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:block/chorus_grass_01" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/chorus_grass_01.png b/src/main/resources/assets/betterend/textures/block/chorus_grass_01.png new file mode 100644 index 00000000..5962de43 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/chorus_grass_01.png differ diff --git a/src/main/resources/assets/betterend/textures/block/chorus_grass_02.png b/src/main/resources/assets/betterend/textures/block/chorus_grass_02.png new file mode 100644 index 00000000..4ec51920 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/chorus_grass_02.png differ diff --git a/src/main/resources/assets/betterend/textures/block/chorus_grass_03.png b/src/main/resources/assets/betterend/textures/block/chorus_grass_03.png new file mode 100644 index 00000000..1a1118a8 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/chorus_grass_03.png differ diff --git a/src/main/resources/assets/betterend/textures/block/chorus_grass_04.png b/src/main/resources/assets/betterend/textures/block/chorus_grass_04.png new file mode 100644 index 00000000..f60f5956 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/chorus_grass_04.png differ