Fixed Mixin and Frozen Registry Errors

This commit is contained in:
Frank 2022-10-25 17:46:08 +02:00
parent 8edddec2b6
commit 73687e3401
10 changed files with 89 additions and 110 deletions

View file

@ -10,7 +10,6 @@ import net.minecraft.core.Holder;
import net.minecraft.core.MappedRegistry;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.data.BuiltinRegistries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.KeyDispatchDataCodec;
@ -88,37 +87,40 @@ public class BCLBiomeRegistry {
@ApiStatus.Internal
public static Holder<BCLBiome> bootstrap(Registry<BCLBiome> registry) {
BuiltinRegistries.register(registry, BiomeAPI.SMALL_END_ISLANDS.getBCLBiomeKey(), BiomeAPI.SMALL_END_ISLANDS);
BuiltinRegistries.register(registry, BiomeAPI.END_BARRENS.getBCLBiomeKey(), BiomeAPI.END_BARRENS);
BuiltinRegistries.register(registry, BiomeAPI.END_HIGHLANDS.getBCLBiomeKey(), BiomeAPI.END_HIGHLANDS);
BuiltinRegistries.register(registry, BiomeAPI.END_MIDLANDS.getBCLBiomeKey(), BiomeAPI.END_MIDLANDS);
BuiltinRegistries.register(registry, BiomeAPI.THE_END.getBCLBiomeKey(), BiomeAPI.THE_END);
BuiltinRegistries.register(
registry,
BiomeAPI.BASALT_DELTAS_BIOME.getBCLBiomeKey(),
BiomeAPI.BASALT_DELTAS_BIOME
);
BuiltinRegistries.register(
registry,
BiomeAPI.SOUL_SAND_VALLEY_BIOME.getBCLBiomeKey(),
BiomeAPI.SOUL_SAND_VALLEY_BIOME
);
BuiltinRegistries.register(
registry,
BiomeAPI.WARPED_FOREST_BIOME.getBCLBiomeKey(),
BiomeAPI.WARPED_FOREST_BIOME
);
BuiltinRegistries.register(
registry,
BiomeAPI.CRIMSON_FOREST_BIOME.getBCLBiomeKey(),
BiomeAPI.CRIMSON_FOREST_BIOME
);
BuiltinRegistries.register(
registry,
BiomeAPI.NETHER_WASTES_BIOME.getBCLBiomeKey(),
BiomeAPI.NETHER_WASTES_BIOME
);
return BuiltinRegistries.register(registry, EMPTY_BIOME.getBCLBiomeKey(), EMPTY_BIOME);
//TODO:1.19.3 Registry is frozen at this point
// BuiltinRegistries.register(registry, BiomeAPI.SMALL_END_ISLANDS.getBCLBiomeKey(), BiomeAPI.SMALL_END_ISLANDS);
// BuiltinRegistries.register(registry, BiomeAPI.END_BARRENS.getBCLBiomeKey(), BiomeAPI.END_BARRENS);
// BuiltinRegistries.register(registry, BiomeAPI.END_HIGHLANDS.getBCLBiomeKey(), BiomeAPI.END_HIGHLANDS);
// BuiltinRegistries.register(registry, BiomeAPI.END_MIDLANDS.getBCLBiomeKey(), BiomeAPI.END_MIDLANDS);
// BuiltinRegistries.register(registry, BiomeAPI.THE_END.getBCLBiomeKey(), BiomeAPI.THE_END);
// BuiltinRegistries.register(
// registry,
// BiomeAPI.BASALT_DELTAS_BIOME.getBCLBiomeKey(),
// BiomeAPI.BASALT_DELTAS_BIOME
// );
// BuiltinRegistries.register(
// registry,
// BiomeAPI.SOUL_SAND_VALLEY_BIOME.getBCLBiomeKey(),
// BiomeAPI.SOUL_SAND_VALLEY_BIOME
// );
// BuiltinRegistries.register(
// registry,
// BiomeAPI.WARPED_FOREST_BIOME.getBCLBiomeKey(),
// BiomeAPI.WARPED_FOREST_BIOME
// );
// BuiltinRegistries.register(
// registry,
// BiomeAPI.CRIMSON_FOREST_BIOME.getBCLBiomeKey(),
// BiomeAPI.CRIMSON_FOREST_BIOME
// );
// BuiltinRegistries.register(
// registry,
// BiomeAPI.NETHER_WASTES_BIOME.getBCLBiomeKey(),
// BiomeAPI.NETHER_WASTES_BIOME
// );
// return BuiltinRegistries.register(registry, EMPTY_BIOME.getBCLBiomeKey(), EMPTY_BIOME);
return Holder.direct(EMPTY_BIOME);
}
public static BCLBiome get(ResourceLocation loc) {

View file

@ -6,7 +6,6 @@ import net.minecraft.client.color.block.BlockColors;
import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.UnbakedModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.util.profiling.ProfilerFiller;
import org.spongepowered.asm.mixin.Final;
@ -26,11 +25,7 @@ public abstract class ModelBakeryMixin {
@Inject(method = "<init>*", at = @At("TAIL"))
private void bclib_findEmissiveModels(
ResourceManager resourceManager,
BlockColors blockColors,
ProfilerFiller profiler,
int mipmap,
CallbackInfo info
BlockColors blockColors, ProfilerFiller profilerFiller, Map map, Map map2, CallbackInfo ci
) {
//CustomModelBakery.setModelsLoaded(false);
if (ModIntegrationAPI.hasCanvas()) {

View file

@ -1,25 +1,18 @@
package org.betterx.bclib.mixin.client;
import org.betterx.bclib.client.BCLibClient;
import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.ModelManager;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.util.profiling.ProfilerFiller;
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.CallbackInfoReturnable;
@Mixin(ModelManager.class)
public class ModelManagerMixin {
@Inject(method = "prepare", at = @At("HEAD"))
private void bclib_loadCustomModels(
ResourceManager resourceManager,
ProfilerFiller profilerFiller,
CallbackInfoReturnable<ModelBakery> info
) {
BCLibClient.modelBakery.loadCustomModels(resourceManager);
}
//TODO: 1.19.3 Disabled for now
// @Inject(method = "prepare", at = @At("HEAD"))
// private void bclib_loadCustomModels(
// ResourceManager resourceManager,
// ProfilerFiller profilerFiller,
// CallbackInfoReturnable<ModelBakery> info
// ) {
// BCLibClient.modelBakery.loadCustomModels(resourceManager);
// }
}

View file

@ -1,9 +1,6 @@
package org.betterx.bclib.mixin.common;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
import com.mojang.serialization.Lifecycle;
import net.minecraft.core.MappedRegistry;
import net.minecraft.core.Registry;
import net.minecraft.core.WritableRegistry;
import net.minecraft.data.BuiltinRegistries;
@ -30,11 +27,12 @@ public abstract class BuiltinRegistriesMixin {
//this needs to be added BEFORE the WORLD_PRESET-Registry. Otherwise decoding will fail!
@Inject(method = "<clinit>", at = @At(value = "INVOKE", target = "Lnet/minecraft/data/BuiltinRegistries;registerSimple(Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/data/BuiltinRegistries$RegistryBootstrap;)Lnet/minecraft/core/Registry;", ordinal = 0))
private static void bcl_registerBuiltin(CallbackInfo ci) {
BCLBiomeRegistry.BUILTIN_BCL_BIOMES = internalRegister(
BCLBiomeRegistry.BCL_BIOMES_REGISTRY,
(MappedRegistry) BCLBiomeRegistry.BUILTIN_BCL_BIOMES,
BCLBiomeRegistry::bootstrap,
Lifecycle.stable()
);
//TODO: 1.19.3 reenable
// BCLBiomeRegistry.BUILTIN_BCL_BIOMES = internalRegister(
// BCLBiomeRegistry.BCL_BIOMES_REGISTRY,
// (MappedRegistry) BCLBiomeRegistry.BUILTIN_BCL_BIOMES,
// BCLBiomeRegistry::bootstrap,
// Lifecycle.stable()
// );
}
}

View file

@ -1,16 +1,14 @@
package org.betterx.bclib.registry;
import org.betterx.bclib.client.gui.screens.WorldSetupScreen;
import org.betterx.worlds.together.worldPreset.client.WorldPresetsClient;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@Environment(EnvType.CLIENT)
public class PresetsRegistryClient {
public static void onLoad() {
WorldPresetsClient.registerCustomizeUI(PresetsRegistry.BCL_WORLD, (createWorldScreen, worldCreationContext) -> {
return new WorldSetupScreen(createWorldScreen, worldCreationContext);
});
//TODO:1.19.3 Disabled for now
// WorldPresetsClient.registerCustomizeUI(PresetsRegistry.BCL_WORLD, (createWorldScreen, worldCreationContext) -> {
// return new WorldSetupScreen(createWorldScreen, worldCreationContext);
// });
}
}