diff --git a/gradle.properties b/gradle.properties index 2d32f978..58d5cdbe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,9 +6,9 @@ loom_version=0.9-SNAPSHOT # Fabric Properties # check these on https://fabricmc.net/versions.html -minecraft_version= 21w37a +minecraft_version= 21w38a loader_version= 0.11.7 -fabric_version = 0.40.1+1.17 +fabric_version = 0.40.4+1.18 # Mod Properties mod_version = 0.4.1 diff --git a/src/main/java/ru/bclib/api/BiomeAPI.java b/src/main/java/ru/bclib/api/BiomeAPI.java index 9aef32e0..8639d99c 100644 --- a/src/main/java/ru/bclib/api/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/BiomeAPI.java @@ -3,7 +3,9 @@ package ru.bclib.api; import com.google.common.collect.Maps; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.fabric.impl.biome.InternalBiomeData; +import net.fabricmc.fabric.api.biome.v1.NetherBiomes; +import net.fabricmc.fabric.impl.biome.NetherBiomeData; +import net.fabricmc.fabric.impl.biome.TheEndBiomeData; import net.minecraft.client.Minecraft; import net.minecraft.core.Registry; import net.minecraft.data.BuiltinRegistries; @@ -11,8 +13,8 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Climate; import net.minecraft.world.level.biome.Biomes; +import net.minecraft.world.level.biome.Climate; import org.jetbrains.annotations.Nullable; import ru.bclib.util.MHelper; import ru.bclib.world.biomes.BCLBiome; @@ -106,7 +108,7 @@ public class BiomeAPI { random.nextFloat() ); ResourceKey key = BuiltinRegistries.BIOME.getResourceKey(biome.getBiome()).get(); - InternalBiomeData.addNetherBiome(key, parameters); + NetherBiomeData.addNetherBiome(key, parameters); return biome; } @@ -135,8 +137,8 @@ public class BiomeAPI { END_LAND_BIOME_PICKER.addBiome(biome); float weight = biome.getGenChance(); ResourceKey key = BuiltinRegistries.BIOME.getResourceKey(biome.getBiome()).get(); - InternalBiomeData.addEndBiomeReplacement(Biomes.END_HIGHLANDS, key, weight); - InternalBiomeData.addEndBiomeReplacement(Biomes.END_MIDLANDS, key, weight); + TheEndBiomeData.addEndBiomeReplacement(Biomes.END_HIGHLANDS, key, weight); + TheEndBiomeData.addEndBiomeReplacement(Biomes.END_MIDLANDS, key, weight); return biome; } @@ -180,7 +182,7 @@ public class BiomeAPI { END_VOID_BIOME_PICKER.addBiome(biome); float weight = biome.getGenChance(); ResourceKey key = BuiltinRegistries.BIOME.getResourceKey(biome.getBiome()).get(); - InternalBiomeData.addEndBiomeReplacement(Biomes.SMALL_END_ISLANDS, key, weight); + TheEndBiomeData.addEndBiomeReplacement(Biomes.SMALL_END_ISLANDS, key, weight); return biome; } diff --git a/src/main/java/ru/bclib/blocks/FeatureSaplingBlock.java b/src/main/java/ru/bclib/blocks/FeatureSaplingBlock.java index 40ea6e02..00805a68 100644 --- a/src/main/java/ru/bclib/blocks/FeatureSaplingBlock.java +++ b/src/main/java/ru/bclib/blocks/FeatureSaplingBlock.java @@ -91,6 +91,7 @@ public abstract class FeatureSaplingBlock extends SaplingBlock implements Render @Override public void advanceTree(ServerLevel world, BlockPos pos, BlockState blockState, Random random) { FeaturePlaceContext context = new FeaturePlaceContext( + Optional.empty(), world, world.getChunkSource().getGenerator(), random, diff --git a/src/main/java/ru/bclib/blocks/properties/StringProperty.java b/src/main/java/ru/bclib/blocks/properties/StringProperty.java deleted file mode 100644 index 8aaff298..00000000 --- a/src/main/java/ru/bclib/blocks/properties/StringProperty.java +++ /dev/null @@ -1,61 +0,0 @@ -package ru.bclib.blocks.properties; - -import com.google.common.collect.Sets; -import net.minecraft.world.level.block.state.properties.Property; - -import java.util.Collection; -import java.util.Collections; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; - -@Deprecated -public class StringProperty extends Property { - private final Set values; - - public static StringProperty create(String name, String... values) { - return new StringProperty(name, values); - } - - protected StringProperty(String string, String... values) { - super(string, String.class); - this.values = Sets.newHashSet(values); - } - - public void addValue(String name) { - values.add(name); - } - - @Override - public Collection getPossibleValues() { - return Collections.unmodifiableSet(values); - } - - @Override - public String getName(String comparable) { - return comparable; - } - - @Override - public Optional getValue(String string) { - if (values.contains(string)) { - return Optional.of(string); - } - else { - return Optional.empty(); - } - } - - @Override - public int generateHashCode() { - return super.generateHashCode() + Objects.hashCode(values); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof StringProperty that)) return false; - if (!super.equals(o)) return false; - return values.equals(that.values); - } -} diff --git a/src/main/java/ru/bclib/mixin/common/InternalBiomeDataMixin.java b/src/main/java/ru/bclib/mixin/common/InternalBiomeDataMixin.java deleted file mode 100644 index ac8d41b4..00000000 --- a/src/main/java/ru/bclib/mixin/common/InternalBiomeDataMixin.java +++ /dev/null @@ -1,41 +0,0 @@ -package ru.bclib.mixin.common; - -import net.fabricmc.fabric.impl.biome.InternalBiomeData; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Biomes; -import net.minecraft.world.level.biome.Climate; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import ru.bclib.world.biomes.FabricBiomesData; - -@Mixin(value = InternalBiomeData.class, remap = false) -public class InternalBiomeDataMixin { - @Inject(method = "addEndBiomeReplacement", at = @At(value = "HEAD")) - private static void bclib_addEndBiomeReplacement(ResourceKey replaced, ResourceKey variant, double weight, CallbackInfo info) { - if (replaced == Biomes.END_BARRENS || replaced == Biomes.SMALL_END_ISLANDS) { - FabricBiomesData.END_VOID_BIOMES.put(variant, (float) weight); - } - else { - FabricBiomesData.END_LAND_BIOMES.put(variant, (float) weight); - } - } - - @Inject(method = "addEndMidlandsReplacement", at = @At(value = "HEAD")) - private static void bclib_addEndMidlandsReplacement(ResourceKey highlands, ResourceKey midlands, double weight, CallbackInfo info) { - FabricBiomesData.END_LAND_BIOMES.put(midlands, (float) weight); - } - - @Inject(method = "addEndBarrensReplacement", at = @At(value = "HEAD")) - private static void bclib_addEndBarrensReplacement(ResourceKey highlands, ResourceKey barrens, double weight, CallbackInfo info) { - FabricBiomesData.END_LAND_BIOMES.put(barrens, (float) weight); - FabricBiomesData.END_VOID_BIOMES.put(barrens, (float) weight); - } - - @Inject(method = "addNetherBiome", at = @At(value = "HEAD")) - private static void bclib_addNetherBiome(ResourceKey biome, Climate.ParameterPoint spawnNoisePoint, CallbackInfo info) { - FabricBiomesData.NETHER_BIOMES.add(biome); - } -} diff --git a/src/main/java/ru/bclib/mixin/common/NetherBiomeDataMixin.java b/src/main/java/ru/bclib/mixin/common/NetherBiomeDataMixin.java new file mode 100644 index 00000000..1a941711 --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/NetherBiomeDataMixin.java @@ -0,0 +1,19 @@ +package ru.bclib.mixin.common; + +import net.fabricmc.fabric.impl.biome.NetherBiomeData; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Climate; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import ru.bclib.world.biomes.FabricBiomesData; + +@Mixin(value = NetherBiomeData.class, remap = false) +public class NetherBiomeDataMixin { + @Inject(method = "addNetherBiome", at = @At(value = "HEAD")) + private static void bclib_addNetherBiome(ResourceKey biome, Climate.ParameterPoint spawnNoisePoint, CallbackInfo info) { + FabricBiomesData.NETHER_BIOMES.add(biome); + } +} diff --git a/src/main/java/ru/bclib/mixin/common/TheEndBiomeDataMixin.java b/src/main/java/ru/bclib/mixin/common/TheEndBiomeDataMixin.java new file mode 100644 index 00000000..93bca16f --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/TheEndBiomeDataMixin.java @@ -0,0 +1,35 @@ +package ru.bclib.mixin.common; + +import net.fabricmc.fabric.impl.biome.TheEndBiomeData; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import ru.bclib.world.biomes.FabricBiomesData; + +@Mixin(value = TheEndBiomeData.class, remap = false) +public class TheEndBiomeDataMixin { + @Inject(method = "addEndBiomeReplacement", at = @At(value = "HEAD")) + private static void bclib_addEndBiomeReplacement(ResourceKey replaced, ResourceKey variant, double weight, CallbackInfo info) { + if (replaced == Biomes.END_BARRENS || replaced == Biomes.SMALL_END_ISLANDS) { + FabricBiomesData.END_VOID_BIOMES.put(variant, (float) weight); + } + else { + FabricBiomesData.END_LAND_BIOMES.put(variant, (float) weight); + } + } + + @Inject(method = "addEndMidlandsReplacement", at = @At(value = "HEAD")) + private static void bclib_addEndMidlandsReplacement(ResourceKey highlands, ResourceKey midlands, double weight, CallbackInfo info) { + FabricBiomesData.END_LAND_BIOMES.put(midlands, (float) weight); + } + + @Inject(method = "addEndBarrensReplacement", at = @At(value = "HEAD")) + private static void bclib_addEndBarrensReplacement(ResourceKey highlands, ResourceKey barrens, double weight, CallbackInfo info) { + FabricBiomesData.END_LAND_BIOMES.put(barrens, (float) weight); + FabricBiomesData.END_VOID_BIOMES.put(barrens, (float) weight); + } +} diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java index af2fd15a..67247cc2 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiomeDef.java @@ -321,6 +321,7 @@ public class BCLBiomeDef { }); generationSettings.surfaceBuilder(surface == null ? net.minecraft.data.worldgen.SurfaceBuilders.END : surface); + //TODO: Removed now. Seems to part of a registry step per biome now structures.forEach((structure) -> generationSettings.addStructureStart(structure)); features.forEach((info) -> generationSettings.addFeature(info.featureStep, info.feature)); carvers.forEach((info) -> generationSettings.addCarver(info.carverStep, info.carver)); diff --git a/src/main/java/ru/bclib/world/structures/BCLStructureFeature.java b/src/main/java/ru/bclib/world/structures/BCLStructureFeature.java index 4497bfc7..d1fff1d1 100644 --- a/src/main/java/ru/bclib/world/structures/BCLStructureFeature.java +++ b/src/main/java/ru/bclib/world/structures/BCLStructureFeature.java @@ -25,7 +25,7 @@ public class BCLStructureFeature { .register(); this.featureConfigured = this.structure.configured(NoneFeatureConfiguration.NONE); BuiltinRegistries.register(BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE, id, this.featureConfigured); - FlatChunkGeneratorConfigAccessor.getStructureToFeatures().put(this.structure, this.featureConfigured); + FlatLevelGeneratorSettings.getStructureToFeatures().put(this.structure, this.featureConfigured); } public StructureFeature getStructure() { diff --git a/src/main/java/ru/bclib/world/surface/DoubleBlockSurfaceBuilder.java b/src/main/java/ru/bclib/world/surface/DoubleBlockSurfaceBuilder.java index 434b1a39..3a2b1b6d 100644 --- a/src/main/java/ru/bclib/world/surface/DoubleBlockSurfaceBuilder.java +++ b/src/main/java/ru/bclib/world/surface/DoubleBlockSurfaceBuilder.java @@ -5,7 +5,7 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.ChunkAccess; +import net.minecraft.world.level.chunk.BlockColumn; import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration; @@ -43,13 +43,13 @@ public class DoubleBlockSurfaceBuilder extends SurfaceBuilder