diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index e28ab6ea..92ec1ee4 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -4,6 +4,8 @@ import java.util.List; import com.google.common.collect.Lists; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; import net.minecraft.client.sound.MusicType; import net.minecraft.entity.EntityType; import net.minecraft.sound.BiomeAdditionsSound; @@ -23,7 +25,10 @@ import net.minecraft.world.biome.SpawnSettings; import net.minecraft.world.gen.GenerationStep.Feature; import net.minecraft.world.gen.feature.ConfiguredFeature; import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilders; +import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; +import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig; import ru.betterend.BetterEnd; import ru.betterend.util.MHelper; import ru.betterend.world.features.EndFeature; @@ -45,11 +50,22 @@ public class BiomeDefinition { private float fogDensity = 1F; private final Identifier id; + + private ConfiguredSurfaceBuilder surface; public BiomeDefinition(String name) { this.id = new Identifier(BetterEnd.MOD_ID, name); } + public BiomeDefinition setSurface(Block surfaceBlock) { + this.surface = SurfaceBuilder.DEFAULT.method_30478(new TernarySurfaceConfig( + surfaceBlock.getDefaultState(), + Blocks.END_STONE.getDefaultState(), + Blocks.END_STONE.getDefaultState() + )); + return this; + } + public BiomeDefinition setParticleConfig(BiomeParticleConfig config) { this.particleConfig = config; return this; @@ -148,7 +164,7 @@ public class BiomeDefinition { new SpawnSettings.SpawnEntry(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize)); }); - generationSettings.surfaceBuilder(ConfiguredSurfaceBuilders.END); + generationSettings.surfaceBuilder(surface == null ? ConfiguredSurfaceBuilders.END : surface); structures.forEach((structure) -> generationSettings.structureFeature(structure)); features.forEach((info) -> generationSettings.feature(info.featureStep, info.feature)); diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index c47d4339..728c4bf2 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -2,6 +2,7 @@ package ru.betterend.world.biome; import net.minecraft.world.gen.GenerationStep.Feature; import net.minecraft.world.gen.feature.ConfiguredFeatures; +import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.FeatureRegistry; public class BiomeFoggyMushroomland extends EndBiome { @@ -11,6 +12,7 @@ public class BiomeFoggyMushroomland extends EndBiome { .setFogDensity(3) .setWaterColor(119, 227, 250) .setWaterFogColor(119, 227, 250) + .setSurface(BlockRegistry.WET_MYCELIUM) .addFeature(FeatureRegistry.STONE_SPIRAL) .addFeature(Feature.LAKES, ConfiguredFeatures.LAKE_WATER)); } diff --git a/src/main/resources/assets/betterend/blockstates/wet_mycelium.json b/src/main/resources/assets/betterend/blockstates/wet_mycelium.json new file mode 100644 index 00000000..8b63bc11 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/wet_mycelium.json @@ -0,0 +1,10 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/wet_mycelium" }, + { "model": "betterend:block/wet_mycelium", "y": 90 }, + { "model": "betterend:block/wet_mycelium", "y": 180 }, + { "model": "betterend:block/wet_mycelium", "y": 270 } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/wet_mycelium.json b/src/main/resources/assets/betterend/models/block/wet_mycelium.json new file mode 100644 index 00000000..4a8444a7 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/wet_mycelium.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "betterend:block/wet_mycelium_side", + "down": "block/end_stone", + "up": "betterend:block/wet_mycelium_top", + "north": "betterend:block/wet_mycelium_side", + "east": "betterend:block/wet_mycelium_side", + "south": "betterend:block/wet_mycelium_side", + "west": "betterend:block/wet_mycelium_side" + } +} diff --git a/src/main/resources/assets/betterend/models/item/wet_mycelium.json b/src/main/resources/assets/betterend/models/item/wet_mycelium.json new file mode 100644 index 00000000..baa349e4 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/wet_mycelium.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/wet_mycelium" +} diff --git a/src/main/resources/assets/betterend/textures/block/wet_mycelium_side.png b/src/main/resources/assets/betterend/textures/block/wet_mycelium_side.png new file mode 100644 index 00000000..3da7c0b2 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/wet_mycelium_side.png differ diff --git a/src/main/resources/assets/betterend/textures/block/wet_mycelium_top.png b/src/main/resources/assets/betterend/textures/block/wet_mycelium_top.png new file mode 100644 index 00000000..c1f29ec9 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/wet_mycelium_top.png differ