From 7b4965dde11ffa05aebad61fb87e8f4368f126e3 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sun, 20 Dec 2020 14:58:10 +0300 Subject: [PATCH] Canvas shaders & lake --- .../betterend/integration/ModIntegration.java | 24 +++++++++++++++++-- .../integration/byg/BYGFeatures.java | 8 ++++++- .../integration/byg/OldBulbisGardens.java | 8 ++++++- .../integration/byg/OldBulbisTreeFeature.java | 10 ++++---- .../betterend/world/features/EndFeature.java | 6 +++++ .../assets/betterend/lang/en_us.json | 7 +++++- .../assets/betterend/lang/ru_ru.json | 7 +++++- .../materialmaps/block/ivis_moss.json | 3 +++ .../materialmaps/block/ivis_vine.json | 14 +++++++++++ .../block/mossy_glowshroom_sapling.json | 2 +- .../materialmaps/item/ivis_moss.json | 1 + .../materialmaps/item/ivis_vine.json | 1 + .../byg/materialmaps/block/bulbis_oddity.json | 3 +++ .../byg/materialmaps/block/ivis_sprout.json | 3 +++ .../block/purple_bulbis_oddity.json | 3 +++ .../block/purple_shroomlight.json | 3 +++ .../byg/materialmaps/item/bulbis_oddity.json | 1 + .../byg/materialmaps/item/ivis_sprout.json | 1 + .../item/purple_bulbis_oddity.json | 1 + 19 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 src/main/resources/assets/betterend/materialmaps/block/ivis_moss.json create mode 100644 src/main/resources/assets/betterend/materialmaps/block/ivis_vine.json create mode 100644 src/main/resources/assets/betterend/materialmaps/item/ivis_moss.json create mode 100644 src/main/resources/assets/betterend/materialmaps/item/ivis_vine.json create mode 100644 src/main/resources/assets/byg/materialmaps/block/bulbis_oddity.json create mode 100644 src/main/resources/assets/byg/materialmaps/block/ivis_sprout.json create mode 100644 src/main/resources/assets/byg/materialmaps/block/purple_bulbis_oddity.json create mode 100644 src/main/resources/assets/byg/materialmaps/block/purple_shroomlight.json create mode 100644 src/main/resources/assets/byg/materialmaps/item/bulbis_oddity.json create mode 100644 src/main/resources/assets/byg/materialmaps/item/ivis_sprout.json create mode 100644 src/main/resources/assets/byg/materialmaps/item/purple_bulbis_oddity.json diff --git a/src/main/java/ru/betterend/integration/ModIntegration.java b/src/main/java/ru/betterend/integration/ModIntegration.java index 2eb0f208..59fe7684 100644 --- a/src/main/java/ru/betterend/integration/ModIntegration.java +++ b/src/main/java/ru/betterend/integration/ModIntegration.java @@ -4,13 +4,20 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.Feature; +import ru.betterend.world.features.EndFeature; public abstract class ModIntegration { private final String modID; + public abstract void register(); + public ModIntegration(String modID) { this.modID = modID; } @@ -34,6 +41,19 @@ public abstract class ModIntegration { public boolean modIsInstalled() { return FabricLoader.getInstance().isModLoaded(modID); } - - public abstract void register(); + + public EndFeature getFeature(String featureID, String configuredFeatureID, GenerationStep.Feature featureStep) { + Feature feature = Registry.FEATURE.get(getID(featureID)); + ConfiguredFeature featureConfigured = BuiltinRegistries.CONFIGURED_FEATURE.get(getID(configuredFeatureID)); + System.out.println(feature + " " + featureConfigured); + return new EndFeature(feature, featureConfigured, featureStep); + } + + public EndFeature getFeature(String name, GenerationStep.Feature featureStep) { + return getFeature(name, name, featureStep); + } + + public ConfiguredFeature getConfiguredFeature(String name) { + return BuiltinRegistries.CONFIGURED_FEATURE.get(getID(name)); + } } diff --git a/src/main/java/ru/betterend/integration/byg/BYGFeatures.java b/src/main/java/ru/betterend/integration/byg/BYGFeatures.java index c8c49a41..22480ef8 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGFeatures.java +++ b/src/main/java/ru/betterend/integration/byg/BYGFeatures.java @@ -1,5 +1,6 @@ package ru.betterend.integration.byg; +import net.minecraft.world.gen.feature.ConfiguredFeature; import ru.betterend.integration.Integrations; import ru.betterend.world.features.EndFeature; import ru.betterend.world.features.SinglePlantFeature; @@ -9,10 +10,15 @@ import ru.betterend.world.features.WallPlantOnLogFeature; public class BYGFeatures { public static final EndFeature OLD_BULBIS_TREE = new EndFeature("old_bulbis_tree", new OldBulbisTreeFeature(), 1); - public static final EndFeature IVIS_SPROUT = new EndFeature("ivis_sprout", new SinglePlantFeature(Integrations.BYG.getBlock("ivis_sprout"), 6), 9); + public static final EndFeature IVIS_SPROUT = new EndFeature("ivis_sprout", new SinglePlantFeature(Integrations.BYG.getBlock("ivis_sprout"), 6), 6); public static final EndFeature IVIS_VINE = new EndFeature("ivis_vine", new VineFeature(BYGBlocks.IVIS_VINE, 24), 5); public static final EndFeature IVIS_MOSS = new EndFeature("ivis_moss", new WallPlantFeature(BYGBlocks.IVIS_MOSS, 6), 1); public static final EndFeature IVIS_MOSS_WOOD = new EndFeature("ivis_moss_wood", new WallPlantOnLogFeature(BYGBlocks.IVIS_MOSS, 6), 15); + public static final EndFeature BULBIS_ODDITY = new EndFeature("bulbis_oddity", new SinglePlantFeature(Integrations.BYG.getBlock("bulbis_oddity"), 4), 5); + public static final EndFeature PURPLE_BULBIS_ODDITY = new EndFeature("purple_bulbis_oddity", new SinglePlantFeature(Integrations.BYG.getBlock("purple_bulbis_oddity"), 4), 5); + + public static final ConfiguredFeature BULBIS_TREES = Integrations.BYG.getConfiguredFeature("rs_sparse_bulbis_tree"); + public static final ConfiguredFeature PURPLE_BULBIS_TREES = Integrations.BYG.getConfiguredFeature("rs_sparse_purple_bulbis_tree"); public static void register() {} } diff --git a/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java b/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java index 6754c4a3..fb6d9004 100644 --- a/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java +++ b/src/main/java/ru/betterend/integration/byg/OldBulbisGardens.java @@ -1,6 +1,7 @@ package ru.betterend.integration.byg; import net.minecraft.particle.ParticleTypes; +import net.minecraft.world.gen.GenerationStep.Feature; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndFeatures; import ru.betterend.world.biome.BiomeDefinition; @@ -14,11 +15,16 @@ public class OldBulbisGardens extends EndBiome { .setWaterAndFogColor(40, 0, 56) .setParticles(ParticleTypes.REVERSE_PORTAL, 0.002F) .setSurface(Integrations.BYG.getBlock("ivis_phylium")) + .addFeature(EndFeatures.END_LAKE_RARE) .addFeature(BYGFeatures.OLD_BULBIS_TREE) + .addFeature(Feature.VEGETAL_DECORATION, BYGFeatures.BULBIS_TREES) + .addFeature(Feature.VEGETAL_DECORATION, BYGFeatures.PURPLE_BULBIS_TREES) .addFeature(EndFeatures.PURPLE_POLYPORE) .addFeature(BYGFeatures.IVIS_MOSS_WOOD) .addFeature(BYGFeatures.IVIS_MOSS) .addFeature(BYGFeatures.IVIS_VINE) - .addFeature(BYGFeatures.IVIS_SPROUT)); + .addFeature(BYGFeatures.IVIS_SPROUT) + .addFeature(BYGFeatures.BULBIS_ODDITY) + .addFeature(BYGFeatures.PURPLE_BULBIS_ODDITY)); } } diff --git a/src/main/java/ru/betterend/integration/byg/OldBulbisTreeFeature.java b/src/main/java/ru/betterend/integration/byg/OldBulbisTreeFeature.java index 9b9406da..3fb5fc5f 100644 --- a/src/main/java/ru/betterend/integration/byg/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/OldBulbisTreeFeature.java @@ -30,7 +30,6 @@ import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class OldBulbisTreeFeature extends DefaultFeature { - private static final OpenSimplexNoise NOISE = new OpenSimplexNoise("OldBulbisTreeFeature".hashCode()); private static final List SPLINE; private static final List ROOT; private static final List LEAF; @@ -75,7 +74,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { Vector3f vec = spline.get(spline.size() - 1); float radius = (size + MHelper.randRange(0, size * 0.5F, random)) * 0.35F; - bigSphere(world, pos.add(vec.getX(), vec.getY(), vec.getZ()), radius, cap, glow, wood, replacement); + bigSphere(world, pos.add(vec.getX(), vec.getY(), vec.getZ()), radius, cap, glow, wood, replacement, random); vec = SplineHelper.getPos(spline, 0.3F); makeRoots(world, pos.add(vec.getX(), vec.getY(), vec.getZ()), size * 0.4F + 5, random, wood, replacement); @@ -93,17 +92,18 @@ public class OldBulbisTreeFeature extends DefaultFeature { return true; } - private void bigSphere(StructureWorldAccess world, BlockPos pos, float radius, BlockState cap, BlockState glow, BlockState wood, Function replacement) { + private void bigSphere(StructureWorldAccess world, BlockPos pos, float radius, BlockState cap, BlockState glow, BlockState wood, Function replacement, Random random) { + OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); SDF sphere = new SDFSphere().setRadius(radius).setBlock(cap); SDF sphereInner = new SDFSphere().setRadius(radius * 0.53F).setBlock(Blocks.AIR); sphereInner = new SDFDisplacement().setFunction((vec) -> { - return (float) NOISE.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1); + return (float) noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1); }).setSource(sphereInner); SDF sphereGlow = new SDFSphere().setRadius(radius * 0.6F).setBlock(glow); sphereGlow = new SDFDisplacement().setFunction((vec) -> { - return (float) NOISE.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1) * 2F; + return (float) noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1) * 2F; }).setSource(sphereGlow); sphereGlow = new SDFSubtraction().setSourceA(sphereGlow).setSourceB(sphereInner); diff --git a/src/main/java/ru/betterend/world/features/EndFeature.java b/src/main/java/ru/betterend/world/features/EndFeature.java index 653933a3..23e81e3d 100644 --- a/src/main/java/ru/betterend/world/features/EndFeature.java +++ b/src/main/java/ru/betterend/world/features/EndFeature.java @@ -29,6 +29,12 @@ public class EndFeature { protected EndFeature() {} + public EndFeature(Feature feature, ConfiguredFeature configuredFeature, GenerationStep.Feature featureStep) { + this.featureStep = featureStep; + this.feature = feature; + this.featureConfigured = configuredFeature; + } + public EndFeature(String name, Feature feature, GenerationStep.Feature featureStep, ConfiguredFeature configuredFeature) { Identifier id = BetterEnd.makeID(name); this.featureStep = featureStep; diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index dfc0d42d..8bac45f3 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -484,5 +484,10 @@ "block.betterend.lacugrove_composter": "Lacugrove Composter", "block.betterend.mossy_glowshroom_composter": "Mossy Glowshroom Composter", "block.betterend.pythadendron_composter": "Pythadendron Composter", - "block.betterend.tenanea_composter": "Tenanea Composter" + "block.betterend.tenanea_composter": "Tenanea Composter", + + "biome.betterend.old_bulbis_gardens": "Old Bulbis Gardens", + "block.betterend.ivis_moss": "Ivis Moss", + "block.betterend.ivis_vine": "Ivis Vine", + "block.betterend.silk_moth_nest": "Silk Moth Nest" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 6090262f..cd552962 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -486,5 +486,10 @@ "block.betterend.lacugrove_composter": "Компостер из озёрного мангра", "block.betterend.mossy_glowshroom_composter": "Компостер из мшистого светогриба", "block.betterend.pythadendron_composter": "Компостер из пифадендрона", - "block.betterend.tenanea_composter": "Компостер из тенанеи" + "block.betterend.tenanea_composter": "Компостер из тенанеи", + + "biome.betterend.old_bulbis_gardens": "Древние луковичные сады", + "block.betterend.ivis_moss": "Мох ивиса", + "block.betterend.ivis_vine": "Лоза ивиса", + "block.betterend.silk_moth_nest": "Гнездо шёлковичной моли" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/ivis_moss.json b/src/main/resources/assets/betterend/materialmaps/block/ivis_moss.json new file mode 100644 index 00000000..45210670 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/ivis_moss.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:waving_wall" +} diff --git a/src/main/resources/assets/betterend/materialmaps/block/ivis_vine.json b/src/main/resources/assets/betterend/materialmaps/block/ivis_vine.json new file mode 100644 index 00000000..72010a8e --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/ivis_vine.json @@ -0,0 +1,14 @@ +{ + "defaultMap": { + "spriteMap": [ + { + "sprite": "betterend:block/ivis_vine", + "material": "betterend:waving" + }, + { + "sprite": "betterend:block/ivis_vine_bottom", + "material": "betterend:waving" + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/mossy_glowshroom_sapling.json b/src/main/resources/assets/betterend/materialmaps/block/mossy_glowshroom_sapling.json index 83329294..352de84b 100644 --- a/src/main/resources/assets/betterend/materialmaps/block/mossy_glowshroom_sapling.json +++ b/src/main/resources/assets/betterend/materialmaps/block/mossy_glowshroom_sapling.json @@ -1,3 +1,3 @@ { - "defaultMaterial": "betterend:waving_floor_glow_50_blue" + "defaultMaterial": "betterend:waving_floor" } diff --git a/src/main/resources/assets/betterend/materialmaps/item/ivis_moss.json b/src/main/resources/assets/betterend/materialmaps/item/ivis_moss.json new file mode 100644 index 00000000..69a88e3b --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/item/ivis_moss.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/betterend/materialmaps/item/ivis_vine.json b/src/main/resources/assets/betterend/materialmaps/item/ivis_vine.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/item/ivis_vine.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/main/resources/assets/byg/materialmaps/block/bulbis_oddity.json b/src/main/resources/assets/byg/materialmaps/block/bulbis_oddity.json new file mode 100644 index 00000000..352de84b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/block/bulbis_oddity.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:waving_floor" +} diff --git a/src/main/resources/assets/byg/materialmaps/block/ivis_sprout.json b/src/main/resources/assets/byg/materialmaps/block/ivis_sprout.json new file mode 100644 index 00000000..352de84b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/block/ivis_sprout.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:waving_floor" +} diff --git a/src/main/resources/assets/byg/materialmaps/block/purple_bulbis_oddity.json b/src/main/resources/assets/byg/materialmaps/block/purple_bulbis_oddity.json new file mode 100644 index 00000000..352de84b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/block/purple_bulbis_oddity.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:waving_floor" +} diff --git a/src/main/resources/assets/byg/materialmaps/block/purple_shroomlight.json b/src/main/resources/assets/byg/materialmaps/block/purple_shroomlight.json new file mode 100644 index 00000000..a72e6e79 --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/block/purple_shroomlight.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:glow_all" +} diff --git a/src/main/resources/assets/byg/materialmaps/item/bulbis_oddity.json b/src/main/resources/assets/byg/materialmaps/item/bulbis_oddity.json new file mode 100644 index 00000000..69a88e3b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/item/bulbis_oddity.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/byg/materialmaps/item/ivis_sprout.json b/src/main/resources/assets/byg/materialmaps/item/ivis_sprout.json new file mode 100644 index 00000000..69a88e3b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/item/ivis_sprout.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/byg/materialmaps/item/purple_bulbis_oddity.json b/src/main/resources/assets/byg/materialmaps/item/purple_bulbis_oddity.json new file mode 100644 index 00000000..69a88e3b --- /dev/null +++ b/src/main/resources/assets/byg/materialmaps/item/purple_bulbis_oddity.json @@ -0,0 +1 @@ +{}