[Fix] Lazy loading of ScreenHandler after registry was already frozen (#35)
This commit is contained in:
parent
9d2ed61413
commit
3694bf1eee
3 changed files with 15 additions and 12 deletions
|
@ -3,6 +3,8 @@ package org.betterx.betterend.client;
|
||||||
import org.betterx.bclib.BCLib;
|
import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.bclib.util.TranslationHelper;
|
import org.betterx.bclib.util.TranslationHelper;
|
||||||
import org.betterx.betterend.BetterEnd;
|
import org.betterx.betterend.BetterEnd;
|
||||||
|
import org.betterx.betterend.blocks.EndStoneSmelter;
|
||||||
|
import org.betterx.betterend.client.gui.EndStoneSmelterScreenHandler;
|
||||||
import org.betterx.betterend.client.render.BetterEndSkyRenderer;
|
import org.betterx.betterend.client.render.BetterEndSkyRenderer;
|
||||||
import org.betterx.betterend.events.ItemTooltipCallback;
|
import org.betterx.betterend.events.ItemTooltipCallback;
|
||||||
import org.betterx.betterend.interfaces.MultiModelItem;
|
import org.betterx.betterend.interfaces.MultiModelItem;
|
||||||
|
@ -15,13 +17,20 @@ import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.MutableComponent;
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.network.chat.Style;
|
import net.minecraft.network.chat.Style;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.inventory.MenuType;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
||||||
import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry;
|
import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry;
|
||||||
|
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
|
||||||
|
|
||||||
public class BetterEndClient implements ClientModInitializer {
|
public class BetterEndClient implements ClientModInitializer {
|
||||||
|
public final static MenuType<EndStoneSmelterScreenHandler> HANDLER_TYPE = ScreenHandlerRegistry.registerSimple(
|
||||||
|
BetterEnd.makeID(EndStoneSmelter.ID),
|
||||||
|
EndStoneSmelterScreenHandler::new
|
||||||
|
);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
EndBlockEntityRenders.register();
|
EndBlockEntityRenders.register();
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
package org.betterx.betterend.client.gui;
|
package org.betterx.betterend.client.gui;
|
||||||
|
|
||||||
import org.betterx.betterend.BetterEnd;
|
|
||||||
import org.betterx.betterend.blocks.EndStoneSmelter;
|
|
||||||
import org.betterx.betterend.blocks.entities.EndStoneSmelterBlockEntity;
|
import org.betterx.betterend.blocks.entities.EndStoneSmelterBlockEntity;
|
||||||
|
import org.betterx.betterend.client.BetterEndClient;
|
||||||
import org.betterx.betterend.client.gui.slot.SmelterFuelSlot;
|
import org.betterx.betterend.client.gui.slot.SmelterFuelSlot;
|
||||||
import org.betterx.betterend.client.gui.slot.SmelterOutputSlot;
|
import org.betterx.betterend.client.gui.slot.SmelterOutputSlot;
|
||||||
import org.betterx.betterend.recipe.builders.AlloyingRecipe;
|
import org.betterx.betterend.recipe.builders.AlloyingRecipe;
|
||||||
|
@ -19,18 +18,13 @@ import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
|
|
||||||
|
|
||||||
import org.anti_ad.mc.ipn.api.IPNIgnore;
|
import org.anti_ad.mc.ipn.api.IPNIgnore;
|
||||||
|
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
@IPNIgnore
|
@IPNIgnore
|
||||||
public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
||||||
|
|
||||||
public final static MenuType<EndStoneSmelterScreenHandler> HANDLER_TYPE = ScreenHandlerRegistry.registerSimple(
|
|
||||||
BetterEnd.makeID(EndStoneSmelter.ID),
|
|
||||||
EndStoneSmelterScreenHandler::new
|
|
||||||
);
|
|
||||||
|
|
||||||
private final Container inventory;
|
private final Container inventory;
|
||||||
private final ContainerData propertyDelegate;
|
private final ContainerData propertyDelegate;
|
||||||
protected final Level world;
|
protected final Level world;
|
||||||
|
@ -45,7 +39,7 @@ public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
||||||
Container inventory,
|
Container inventory,
|
||||||
ContainerData propertyDelegate
|
ContainerData propertyDelegate
|
||||||
) {
|
) {
|
||||||
super(HANDLER_TYPE, syncId);
|
super(BetterEndClient.HANDLER_TYPE, syncId);
|
||||||
this.inventory = inventory;
|
this.inventory = inventory;
|
||||||
this.propertyDelegate = propertyDelegate;
|
this.propertyDelegate = propertyDelegate;
|
||||||
this.world = playerInventory.player.level;
|
this.world = playerInventory.player.level;
|
||||||
|
@ -68,7 +62,7 @@ public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MenuType<?> getType() {
|
public MenuType<?> getType() {
|
||||||
return HANDLER_TYPE;
|
return BetterEndClient.HANDLER_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package org.betterx.betterend.registry;
|
package org.betterx.betterend.registry;
|
||||||
|
|
||||||
|
import org.betterx.betterend.client.BetterEndClient;
|
||||||
import org.betterx.betterend.client.gui.EndStoneSmelterScreen;
|
import org.betterx.betterend.client.gui.EndStoneSmelterScreen;
|
||||||
import org.betterx.betterend.client.gui.EndStoneSmelterScreenHandler;
|
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
|
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
|
||||||
|
|
||||||
public class EndScreens {
|
public class EndScreens {
|
||||||
public static void register() {
|
public static void register() {
|
||||||
ScreenRegistry.register(EndStoneSmelterScreenHandler.HANDLER_TYPE, EndStoneSmelterScreen::new);
|
ScreenRegistry.register(BetterEndClient.HANDLER_TYPE, EndStoneSmelterScreen::new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue