From 6c6acc12a2ded63a27b69734c5791ad56edb209d Mon Sep 17 00:00:00 2001 From: Motschen Date: Fri, 9 Oct 2020 20:43:27 +0200 Subject: [PATCH] Backport 3.0.0 to MC 1.16.1 --- build.gradle | 2 +- gradle.properties | 10 ++--- .../motschen/decorative/DecorativeMain.java | 29 ++++++++++-- .../GenerationSettingsAccessorMixin.java | 19 -------- .../decorative/world/OreFeatureInjector.java | 44 ------------------- .../decorative/world/OreFeatures.java | 17 ------- .../decorative/world/RockyAsphalt.java | 41 +++++++++++++++++ src/main/resources/decorative.mixins.json | 11 ----- src/main/resources/fabric.mod.json | 4 -- 9 files changed, 72 insertions(+), 105 deletions(-) delete mode 100644 src/main/java/eu/midnightdust/motschen/decorative/mixin/GenerationSettingsAccessorMixin.java delete mode 100644 src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatureInjector.java delete mode 100644 src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatures.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/world/RockyAsphalt.java delete mode 100644 src/main/resources/decorative.mixins.json diff --git a/build.gradle b/build.gradle index c8a7337..d416756 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modCompile("vazkii.patchouli:Patchouli:${project.patchouli_version}") + modCompile("vazkii.patchouli:Patchouli_1.16-fabric:${project.patchouli_version}") // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // You may need to force-disable transitiveness on them. diff --git a/gradle.properties b/gradle.properties index 304d987..f899a53 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=1.16.2 - yarn_mappings=1.16.2+build.6 - loader_version=0.9.1+build.205 + minecraft_version=1.16.1 + yarn_mappings=1.16.1+build.7 + loader_version=0.8.8+build.202 # Mod Properties mod_version = 3.0.0 @@ -14,6 +14,6 @@ org.gradle.jvmargs=-Xmx1G # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.17.2+build.396-1.16 - patchouli_version=1.16-40-FABRIC + fabric_version=0.14.0+build.371-1.16 + patchouli_version=1.16-37.21-FABRIC midnighthats_version=1.0.2 diff --git a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java index 5e9b168..523b76d 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java @@ -6,8 +6,6 @@ import eu.midnightdust.motschen.decorative.blockstates.Part; import eu.midnightdust.motschen.decorative.blockstates.PoolShape; import eu.midnightdust.motschen.decorative.blockstates.Program; import eu.midnightdust.motschen.decorative.init.*; -import eu.midnightdust.motschen.decorative.world.OreFeatureInjector; -import eu.midnightdust.motschen.decorative.world.OreFeatures; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; @@ -18,6 +16,8 @@ import net.minecraft.state.property.EnumProperty; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import java.util.Locale; + public class DecorativeMain implements ModInitializer { public static final String MOD_ID = "decorative"; @@ -98,7 +98,28 @@ public class DecorativeMain implements ModInitializer { Lamps.init(); DoubleLamps.init(); - OreFeatures.init(); - OreFeatureInjector.init(); + eu.midnightdust.motschen.decorative.world.RockyAsphalt.initBiomeFeatures(); + } + public enum Ores implements ItemConvertible { + RockyAsphalt(7, 20, 14, 200); + + public final String name; + public final int veinSize; + public final int veinsPerChunk; + public final int minY; + public final int maxY; + + Ores(int veinSize, int veinsPerChunk, int minY, int maxY) { + name = this.toString().toLowerCase(Locale.ROOT); + this.veinSize = veinSize; + this.veinsPerChunk = veinsPerChunk; + this.minY = minY; + this.maxY = maxY; + } + + @Override + public Item asItem() { + return RockyAsphalt.asItem(); + } } } diff --git a/src/main/java/eu/midnightdust/motschen/decorative/mixin/GenerationSettingsAccessorMixin.java b/src/main/java/eu/midnightdust/motschen/decorative/mixin/GenerationSettingsAccessorMixin.java deleted file mode 100644 index 4b9d27a..0000000 --- a/src/main/java/eu/midnightdust/motschen/decorative/mixin/GenerationSettingsAccessorMixin.java +++ /dev/null @@ -1,19 +0,0 @@ -package eu.midnightdust.motschen.decorative.mixin; - -import net.minecraft.world.biome.GenerationSettings; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; -import java.util.function.Supplier; - -@Mixin(GenerationSettings.class) -public interface GenerationSettingsAccessorMixin { - - @Accessor - List>>> getFeatures(); - - @Accessor - void setFeatures(List>>> features); -} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatureInjector.java b/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatureInjector.java deleted file mode 100644 index f33b0ce..0000000 --- a/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatureInjector.java +++ /dev/null @@ -1,44 +0,0 @@ -package eu.midnightdust.motschen.decorative.world; - -import com.google.common.collect.Lists; -import eu.midnightdust.motschen.decorative.mixin.GenerationSettingsAccessorMixin; -import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.ConfiguredFeature; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Supplier; - -public class OreFeatureInjector { - - public static void init() { - BuiltinRegistries.BIOME.forEach(OreFeatureInjector::addToBiome); - RegistryEntryAddedCallback.event(BuiltinRegistries.BIOME).register((i, identifier, biome) -> addToBiome(biome)); - } - - private static void addToBiome(Biome biome) { - addSaltOre(biome); - } - - private static void addSaltOre(Biome biome) { - if (biome.getCategory() != Biome.Category.NETHER && biome.getCategory() != Biome.Category.THEEND) { - addFeature(biome, GenerationStep.Feature.UNDERGROUND_DECORATION, OreFeatures.ROCKY_ASPHALT_FEATURE); - } - } - - public static void addFeature(Biome biome, GenerationStep.Feature step, ConfiguredFeature feature) { - GenerationSettingsAccessorMixin generationSettingsAccessor = (GenerationSettingsAccessorMixin) biome.getGenerationSettings(); - int stepIndex = step.ordinal(); - List>>> featuresByStep = new ArrayList<>( generationSettingsAccessor.getFeatures()); - while (featuresByStep.size() <= stepIndex) { - featuresByStep.add(Lists.newArrayList()); - } - List>> features = new ArrayList<>(featuresByStep.get(stepIndex)); - features.add(() -> feature); - featuresByStep.set(stepIndex, features); - generationSettingsAccessor.setFeatures(featuresByStep); - } -} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatures.java b/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatures.java deleted file mode 100644 index a1fac42..0000000 --- a/src/main/java/eu/midnightdust/motschen/decorative/world/OreFeatures.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.midnightdust.motschen.decorative.world; - -import eu.midnightdust.motschen.decorative.DecorativeMain; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.OreFeatureConfig; - -public class OreFeatures { - public static final ConfiguredFeature ROCKY_ASPHALT_FEATURE = Feature.ORE.configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, DecorativeMain.RockyAsphalt.getDefaultState(), 7)).method_30377(200).spreadHorizontally().repeat(20); - - public static void init() { - Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(DecorativeMain.MOD_ID, "rocky_asphalt"), ROCKY_ASPHALT_FEATURE); - } -} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/world/RockyAsphalt.java b/src/main/java/eu/midnightdust/motschen/decorative/world/RockyAsphalt.java new file mode 100644 index 0000000..2159e0f --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/world/RockyAsphalt.java @@ -0,0 +1,41 @@ +package eu.midnightdust.motschen.decorative.world; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.decorator.Decorator; +import net.minecraft.world.gen.decorator.RangeDecoratorConfig; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.OreFeatureConfig; + +import java.util.ArrayList; +import java.util.List; + +public class RockyAsphalt { + private static List checkedBiomes = new ArrayList<>(); + + public static void initBiomeFeatures() { + for (Biome biome : Registry.BIOME) { + addToBiome(biome); + } + + //Handles modded biomes + RegistryEntryAddedCallback.event(Registry.BIOME).register((i, identifier, biome) -> addToBiome(biome)); + } + private static void addToBiome(Biome biome){ + if(checkedBiomes.contains(biome)){ + //Just to be sure we dont add the stuff twice to the same biome + return; + } + checkedBiomes.add(biome); + addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, DecorativeMain.Ores.RockyAsphalt); + } + + private static void addOre(Biome biome, OreFeatureConfig.Target canReplaceIn, DecorativeMain.Ores ore) { + biome.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, Feature.ORE.configure( + new OreFeatureConfig(canReplaceIn, DecorativeMain.RockyAsphalt.getDefaultState(), ore.veinSize)).createDecoratedFeature(Decorator.COUNT_RANGE.configure( + new RangeDecoratorConfig(ore.veinsPerChunk, ore.minY, ore.minY, ore.maxY)))); + } +} \ No newline at end of file diff --git a/src/main/resources/decorative.mixins.json b/src/main/resources/decorative.mixins.json deleted file mode 100644 index baa1df2..0000000 --- a/src/main/resources/decorative.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "eu.midnightdust.motschen.decorative.mixin", - "compatibilityLevel": "JAVA_8", - "mixins": [ - "GenerationSettingsAccessorMixin" - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 19f2971..3d2f502 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -27,10 +27,6 @@ ] }, - "mixins": [ - "decorative.mixins.json" - ], - "depends": { "fabricloader": ">=0.7.2", "fabric": "*"