diff --git a/src/main/java/ru/betterend/item/GuideBook.java b/src/main/java/ru/betterend/item/GuideBook.java index 3cc7eae5..7aff271e 100644 --- a/src/main/java/ru/betterend/item/GuideBook.java +++ b/src/main/java/ru/betterend/item/GuideBook.java @@ -12,11 +12,9 @@ import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.TypedActionResult; import net.minecraft.world.World; - import ru.betterend.BetterEnd; import ru.betterend.registry.EndItems; import ru.betterend.util.LangUtil; - import vazkii.patchouli.api.PatchouliAPI; public class GuideBook extends PatternedItem { diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 87d88e83..0b3746eb 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -12,6 +12,7 @@ import net.minecraft.world.gen.feature.ConfiguredFeature; import ru.betterend.world.biome.EndBiome; import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.CavePlantFeature; +import ru.betterend.world.features.CharniaFeature; import ru.betterend.world.features.CrashedShipFeature; import ru.betterend.world.features.DoublePlantFeature; import ru.betterend.world.features.EndFeature; @@ -19,6 +20,7 @@ import ru.betterend.world.features.EndLilyFeature; import ru.betterend.world.features.EndLotusFeature; import ru.betterend.world.features.EndLotusLeafFeature; import ru.betterend.world.features.HydraluxFeature; +import ru.betterend.world.features.MengerSpongeFeature; import ru.betterend.world.features.SinglePlantFeature; import ru.betterend.world.features.UnderwaterPlantFeature; import ru.betterend.world.features.VineFeature; @@ -82,14 +84,21 @@ public class EndFeatures { public static final EndFeature TWISTED_MOSS_WOOD = new EndFeature("twisted_moss_wood", new WallPlantOnLogFeature(EndBlocks.TWISTED_MOSS, 6), 25); // Water // - public static final EndFeature BUBBLE_CORAL = new EndFeature("bubble_coral", new UnderwaterPlantFeature(EndBlocks.BUBBLE_CORAL, 10), 10); + public static final EndFeature BUBBLE_CORAL = new EndFeature("bubble_coral", new UnderwaterPlantFeature(EndBlocks.BUBBLE_CORAL, 6), 10); public static final EndFeature BUBBLE_CORAL_RARE = new EndFeature("bubble_coral_rare", new UnderwaterPlantFeature(EndBlocks.BUBBLE_CORAL, 3), 4); - public static final EndFeature END_LILY = new EndFeature("end_lily", new EndLilyFeature(10), 10); + public static final EndFeature END_LILY = new EndFeature("end_lily", new EndLilyFeature(6), 10); public static final EndFeature END_LILY_RARE = new EndFeature("end_lily_rare", new EndLilyFeature(3), 4); public static final EndFeature END_LOTUS = new EndFeature("end_lotus", new EndLotusFeature(7), 5); public static final EndFeature END_LOTUS_LEAF = new EndFeature("end_lotus_leaf", new EndLotusLeafFeature(20), 25); public static final EndFeature HYDRALUX = new EndFeature("hydralux", new HydraluxFeature(5), 5); + public static final EndFeature CHARNIA_RED = new EndFeature("charnia_red", new CharniaFeature(EndBlocks.CHARNIA_RED), 10); + public static final EndFeature CHARNIA_PURPLE = new EndFeature("charnia_purple", new CharniaFeature(EndBlocks.CHARNIA_PURPLE), 10); + public static final EndFeature CHARNIA_CYAN = new EndFeature("charnia_cyan", new CharniaFeature(EndBlocks.CHARNIA_CYAN), 10); + public static final EndFeature CHARNIA_LIGHT_BLUE = new EndFeature("charnia_light_blue", new CharniaFeature(EndBlocks.CHARNIA_LIGHT_BLUE), 10); + public static final EndFeature CHARNIA_ORANGE = new EndFeature("charnia_orange", new CharniaFeature(EndBlocks.CHARNIA_ORANGE), 10); + public static final EndFeature MENGER_SPONGE = new EndFeature("menger_sponge", new MengerSpongeFeature(5), 1); + // Terrain // public static final EndFeature END_LAKE = EndFeature.makeLakeFeature("end_lake", new EndLakeFeature(), 4); public static final EndFeature END_LAKE_RARE = EndFeature.makeLakeFeature("end_lake_rare", new EndLakeFeature(), 40); diff --git a/src/main/java/ru/betterend/world/biome/BiomeAmberLand.java b/src/main/java/ru/betterend/world/biome/BiomeAmberLand.java index 394e36e6..e58497af 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeAmberLand.java +++ b/src/main/java/ru/betterend/world/biome/BiomeAmberLand.java @@ -14,6 +14,8 @@ public class BiomeAmberLand extends EndBiome { .setSurface(EndBlocks.AMBER_GRASS) .addFeature(EndFeatures.AMBER_ORE) .addFeature(EndFeatures.END_LAKE_RARE) + .addFeature(EndFeatures.CHARNIA_ORANGE) + .addFeature(EndFeatures.CHARNIA_RED) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); } diff --git a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java index 912d8a8d..9f9f85cf 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java @@ -16,6 +16,7 @@ public class BiomeChorusForest extends EndBiome { .setFogColor(87, 26, 87) .setFogDensity(1.5F) .setPlantsColor(122, 45, 122) + .setWaterAndFogColor(73, 30, 73) .setSurface(EndBlocks.CHORUS_NYLIUM) .setParticles(ParticleTypes.PORTAL, 0.01F) .setLoop(EndSounds.AMBIENT_CHORUS_FOREST) @@ -30,6 +31,7 @@ public class BiomeChorusForest extends EndBiome { .addFeature(EndFeatures.CHORUS_GRASS) .addFeature(EndFeatures.TAIL_MOSS) .addFeature(EndFeatures.TAIL_MOSS_WOOD) + .addFeature(EndFeatures.CHARNIA_PURPLE) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EndEntities.END_SLIME, 5, 1, 2) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index 41a12f44..a2354df9 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -31,6 +31,8 @@ public class BiomeFoggyMushroomland extends EndBiome { .addFeature(EndFeatures.CYAN_MOSS_WOOD) .addFeature(EndFeatures.END_LILY) .addFeature(EndFeatures.BUBBLE_CORAL) + .addFeature(EndFeatures.CHARNIA_CYAN) + .addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5) .addMobSpawn(EndEntities.END_FISH, 20, 2, 5) diff --git a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java index 6d810c74..5cb2b1f7 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java +++ b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java @@ -24,6 +24,9 @@ public class BiomeMegalake extends EndBiome { .addFeature(EndFeatures.END_LILY_RARE) .addFeature(EndFeatures.UMBRELLA_MOSS) .addFeature(EndFeatures.CREEPING_MOSS) + .addFeature(EndFeatures.CHARNIA_CYAN) + .addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) + .addFeature(EndFeatures.MENGER_SPONGE) .addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3) .addMobSpawn(EndEntities.END_FISH, 50, 3, 8) .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); diff --git a/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java b/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java index 5e11d790..c258d748 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java +++ b/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java @@ -27,6 +27,9 @@ public class BiomeMegalakeGrove extends EndBiome { .addFeature(EndFeatures.END_LILY_RARE) .addFeature(EndFeatures.UMBRELLA_MOSS) .addFeature(EndFeatures.CREEPING_MOSS) + .addFeature(EndFeatures.CHARNIA_CYAN) + .addFeature(EndFeatures.CHARNIA_LIGHT_BLUE) + .addFeature(EndFeatures.MENGER_SPONGE) .addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3) .addMobSpawn(EndEntities.END_FISH, 20, 3, 8) .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); diff --git a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java index 3c027767..b8ed59ce 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java @@ -31,6 +31,7 @@ public class BiomeShadowForest extends EndBiome { .addFeature(EndFeatures.PURPLE_POLYPORE) .addFeature(EndFeatures.TAIL_MOSS) .addFeature(EndFeatures.TAIL_MOSS_WOOD) + .addFeature(EndFeatures.CHARNIA_PURPLE) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EndEntities.SHADOW_WALKER, 80, 2, 4) .addMobSpawn(EntityType.ENDERMAN, 40, 1, 4) diff --git a/src/main/java/ru/betterend/world/biome/BiomeSulphurSprings.java b/src/main/java/ru/betterend/world/biome/BiomeSulphurSprings.java index 962faf86..eb0d5cce 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeSulphurSprings.java +++ b/src/main/java/ru/betterend/world/biome/BiomeSulphurSprings.java @@ -19,6 +19,8 @@ public class BiomeSulphurSprings extends EndBiome { .addFeature(EndFeatures.SULPHURIC_LAKE) .addFeature(EndFeatures.SULPHURIC_CAVE) .addFeature(EndFeatures.HYDRALUX) + .addFeature(EndFeatures.CHARNIA_ORANGE) + .addFeature(EndFeatures.CHARNIA_RED) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); } } diff --git a/src/main/java/ru/betterend/world/features/CharniaFeature.java b/src/main/java/ru/betterend/world/features/CharniaFeature.java new file mode 100644 index 00000000..14102c4f --- /dev/null +++ b/src/main/java/ru/betterend/world/features/CharniaFeature.java @@ -0,0 +1,14 @@ +package ru.betterend.world.features; + +import net.minecraft.block.Block; + +public class CharniaFeature extends UnderwaterPlantFeature { + public CharniaFeature(Block plant) { + super(plant, 6); + } + + @Override + protected int getChance() { + return 3; + } +} diff --git a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java new file mode 100644 index 00000000..186fa664 --- /dev/null +++ b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java @@ -0,0 +1,41 @@ +package ru.betterend.world.features; + +import java.util.Random; +import java.util.function.Function; + +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.StructureWorldAccess; +import ru.betterend.registry.EndBlocks; +import ru.betterend.util.BlocksHelper; + +public class MengerSpongeFeature extends UnderwaterPlantScatter { + private static final Function REPLACE; + + public MengerSpongeFeature(int radius) { + super(radius); + } + + @Override + public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.MENGER_SPONGE_WET); + if (random.nextBoolean()) { + for (Direction dir: BlocksHelper.DIRECTIONS) { + BlockPos pos = blockPos.offset(dir); + if (REPLACE.apply(world.getBlockState(pos))) { + BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.MENGER_SPONGE_WET); + } + } + } + } + + static { + REPLACE = (state) -> { + if (state.isOf(EndBlocks.END_LOTUS_STEM)) { + return false; + } + return !state.getFluidState().isEmpty() || state.getMaterial().isReplaceable(); + }; + } +} diff --git a/src/main/resources/assets/betterend/materialmaps/entity/dragonfly.json b/src/main/resources/assets/betterend/materialmaps/entity/dragonfly.json new file mode 100644 index 00000000..b63df8a1 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/entity/dragonfly.json @@ -0,0 +1,12 @@ +{ + "map": [ + { + "predicate": { + "materialPredicate": { + "renderLayerName": "eyes" + } + }, + "material": "canvas:emissive_transform" + } + ] +} diff --git a/src/main/resources/assets/betterend/materialmaps/entity/end_fish.json b/src/main/resources/assets/betterend/materialmaps/entity/end_fish.json new file mode 100644 index 00000000..b63df8a1 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/entity/end_fish.json @@ -0,0 +1,12 @@ +{ + "map": [ + { + "predicate": { + "materialPredicate": { + "renderLayerName": "eyes" + } + }, + "material": "canvas:emissive_transform" + } + ] +} diff --git a/src/main/resources/assets/betterend/materialmaps/entity/end_slime.json b/src/main/resources/assets/betterend/materialmaps/entity/end_slime.json new file mode 100644 index 00000000..b63df8a1 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/entity/end_slime.json @@ -0,0 +1,12 @@ +{ + "map": [ + { + "predicate": { + "materialPredicate": { + "renderLayerName": "eyes" + } + }, + "material": "canvas:emissive_transform" + } + ] +} diff --git a/src/main/resources/assets/betterend/models/block/charnia.json b/src/main/resources/assets/betterend/models/block/charnia.json index 1409556a..74ff20f5 100644 --- a/src/main/resources/assets/betterend/models/block/charnia.json +++ b/src/main/resources/assets/betterend/models/block/charnia.json @@ -8,6 +8,7 @@ "__comment": "PlaneX1", "from": [ 2.5, 0, 2.5 ], "to": [ 2.501, 16, 7.5 ], + "shade": false, "rotation": { "origin": [ 2.5, 0, 2.5 ], "axis": "y", "angle": 22.5 }, "faces": { "west": { "uv": [ 0, 0, 5, 16 ], "texture": "#texture" }, @@ -18,6 +19,7 @@ "__comment": "PlaneX1", "from": [ 13, 0, 1 ], "to": [ 13.001, 16, 6 ], + "shade": false, "rotation": { "origin": [ 13, 0, 1 ], "axis": "y", "angle": -45 }, "faces": { "west": { "uv": [ 0, 0, 5, 16 ], "texture": "#texture" }, @@ -28,6 +30,7 @@ "__comment": "PlaneX1", "from": [ 14, 0, 11 ], "to": [ 14.001, 16, 16 ], + "shade": false, "rotation": { "origin": [ 14, 0, 11 ], "axis": "y", "angle": -45 }, "faces": { "west": { "uv": [ 0, 0, 5, 16 ], "texture": "#texture" }, @@ -38,6 +41,7 @@ "__comment": "PlaneX1", "from": [ 4.5, 0, 8 ], "to": [ 4.501, 16, 13 ], + "shade": false, "rotation": { "origin": [ 4.5, 0, 8 ], "axis": "y", "angle": 45 }, "faces": { "west": { "uv": [ 5, 0, 10, 16 ], "texture": "#texture" }, @@ -48,6 +52,7 @@ "__comment": "PlaneX1", "from": [ 9, 0, 4.5 ], "to": [ 9.001, 16, 9.5 ], + "shade": false, "faces": { "west": { "uv": [ 5, 0, 10, 16 ], "texture": "#texture" }, "east": { "uv": [ 5, 0, 10, 16 ], "texture": "#texture" } @@ -57,6 +62,7 @@ "__comment": "PlaneX1", "from": [ 3.5, 0, 1 ], "to": [ 8.5, 16, 1.001 ], + "shade": false, "rotation": { "origin": [ 8.5, 0, 1 ], "axis": "y", "angle": 22.5 }, "faces": { "north": { "uv": [ 10, 0, 15, 16 ], "texture": "#texture" }, @@ -67,6 +73,7 @@ "__comment": "PlaneX1", "from": [ 14.999, 0, 2.5 ], "to": [ 15, 16, 7.5 ], + "shade": false, "rotation": { "origin": [ 15, 0, 7.5 ], "axis": "y", "angle": 22.5 }, "faces": { "west": { "uv": [ 10, 0, 15, 16 ], "texture": "#texture" }, @@ -77,6 +84,7 @@ "__comment": "PlaneX1", "from": [ 4.999, 0, 9.5 ], "to": [ 5, 16, 14.5 ], + "shade": false, "rotation": { "origin": [ 5, 0, 14.5 ], "axis": "y", "angle": 45 }, "faces": { "west": { "uv": [ 10, 0, 15, 16 ], "texture": "#texture" }, diff --git a/src/main/resources/assets/betterend/models/item/menger_sponge.json b/src/main/resources/assets/betterend/models/item/menger_sponge.json new file mode 100644 index 00000000..5bae5801 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/menger_sponge.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/menger_sponge" +} diff --git a/src/main/resources/assets/betterend/models/item/menger_sponge_wet.json b/src/main/resources/assets/betterend/models/item/menger_sponge_wet.json new file mode 100644 index 00000000..3dfc90ac --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/menger_sponge_wet.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/menger_sponge_wet" +} diff --git a/src/main/resources/assets/betterend/textures/block/menger_sponge.png b/src/main/resources/assets/betterend/textures/block/menger_sponge.png index 583471a2..395e18e0 100644 Binary files a/src/main/resources/assets/betterend/textures/block/menger_sponge.png and b/src/main/resources/assets/betterend/textures/block/menger_sponge.png differ diff --git a/src/main/resources/assets/betterend/textures/block/menger_sponge_wet.png b/src/main/resources/assets/betterend/textures/block/menger_sponge_wet.png index ae10c5e3..c6d32b7f 100644 Binary files a/src/main/resources/assets/betterend/textures/block/menger_sponge_wet.png and b/src/main/resources/assets/betterend/textures/block/menger_sponge_wet.png differ