[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.util.TranslationHelper;
|
||||
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.events.ItemTooltipCallback;
|
||||
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.Style;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry;
|
||||
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
|
||||
|
||||
public class BetterEndClient implements ClientModInitializer {
|
||||
public final static MenuType<EndStoneSmelterScreenHandler> HANDLER_TYPE = ScreenHandlerRegistry.registerSimple(
|
||||
BetterEnd.makeID(EndStoneSmelter.ID),
|
||||
EndStoneSmelterScreenHandler::new
|
||||
);
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
EndBlockEntityRenders.register();
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
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.client.BetterEndClient;
|
||||
import org.betterx.betterend.client.gui.slot.SmelterFuelSlot;
|
||||
import org.betterx.betterend.client.gui.slot.SmelterOutputSlot;
|
||||
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.Environment;
|
||||
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
|
||||
|
||||
import org.anti_ad.mc.ipn.api.IPNIgnore;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@IPNIgnore
|
||||
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 ContainerData propertyDelegate;
|
||||
protected final Level world;
|
||||
|
@ -45,7 +39,7 @@ public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
|||
Container inventory,
|
||||
ContainerData propertyDelegate
|
||||
) {
|
||||
super(HANDLER_TYPE, syncId);
|
||||
super(BetterEndClient.HANDLER_TYPE, syncId);
|
||||
this.inventory = inventory;
|
||||
this.propertyDelegate = propertyDelegate;
|
||||
this.world = playerInventory.player.level;
|
||||
|
@ -68,7 +62,7 @@ public class EndStoneSmelterScreenHandler extends RecipeBookMenu<Container> {
|
|||
|
||||
@Override
|
||||
public MenuType<?> getType() {
|
||||
return HANDLER_TYPE;
|
||||
return BetterEndClient.HANDLER_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package org.betterx.betterend.registry;
|
||||
|
||||
import org.betterx.betterend.client.BetterEndClient;
|
||||
import org.betterx.betterend.client.gui.EndStoneSmelterScreen;
|
||||
import org.betterx.betterend.client.gui.EndStoneSmelterScreenHandler;
|
||||
|
||||
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
|
||||
|
||||
public class EndScreens {
|
||||
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