From 575a625f757bbd877db5e6a108e65f2c83389712 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Wed, 2 Sep 2020 19:44:37 +0200 Subject: [PATCH] Also update the layer-map, even though the spatial biome should never show up in any vanilla layering. --- .../appeng/mixins/spatial/BiomesMixin.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/appeng/mixins/spatial/BiomesMixin.java b/src/main/java/appeng/mixins/spatial/BiomesMixin.java index 8b8eed998..61698c93d 100644 --- a/src/main/java/appeng/mixins/spatial/BiomesMixin.java +++ b/src/main/java/appeng/mixins/spatial/BiomesMixin.java @@ -1,13 +1,21 @@ package appeng.mixins.spatial; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biomes; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; + import appeng.spatial.SpatialStorageBiome; import appeng.spatial.SpatialStorageDimensionIds; @@ -18,10 +26,21 @@ import appeng.spatial.SpatialStorageDimensionIds; @Mixin(Biomes.class) public class BiomesMixin { + @Unique + private static final Logger LOGGER = LogManager.getLogger(); + + @Shadow + private static Int2ObjectMap> BIOMES; + @Inject(method = "", at = @At("TAIL")) private static void registerBiomes(CallbackInfo ci) { BuiltinRegistries.add(BuiltinRegistries.BIOME, SpatialStorageDimensionIds.BIOME_KEY.getValue(), SpatialStorageBiome.INSTANCE); + int rawId = BuiltinRegistries.BIOME.getRawId(SpatialStorageBiome.INSTANCE); + RegistryKey prev = BIOMES.put(rawId, SpatialStorageDimensionIds.BIOME_KEY); + if (prev != null) { + LOGGER.warn("Biome with raw-id {} was already registered: {}", rawId, prev); + } } }