Skip to content

Commit

Permalink
Move MenuType to DeferredRegister as well
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed Oct 20, 2021
1 parent 840af9a commit cabba20
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 24 deletions.
Expand Up @@ -74,5 +74,6 @@ public void registerDeferredRegistries(IEventBus modBus) {
AquaBlockEntities.BLOCK_ENTITY_DEFERRED.register(modBus);
AquaBlocks.BLOCK_DEFERRED.register(modBus);
AquaItems.ITEM_DEFERRED.register(modBus);
AquaGuis.MENU_DEFERRED.register(modBus);
}
}
Expand Up @@ -45,7 +45,7 @@ public class ClientHandler {
public static final ModelLayerLocation JELLYFISH_MODEL = new ModelLayerLocation(new ResourceLocation(Aquaculture.MOD_ID, "jellyfish_model"), "jellyfish_model");

public static void setupClient() {
MenuScreens.register(AquaGuis.TACKLE_BOX, TackleBoxScreen::new);
MenuScreens.register(AquaGuis.TACKLE_BOX.get(), TackleBoxScreen::new);
BlockEntityRenderers.register(AquaBlockEntities.NEPTUNES_BOUNTY.get(), NeptunesBountyRenderer::new);
BlockEntityRenderers.register(AquaBlockEntities.TACKLE_BOX.get(), TackleBoxRenderer::new);

Expand Down
30 changes: 8 additions & 22 deletions src/main/java/com/teammetallurgy/aquaculture/init/AquaGuis.java
@@ -1,40 +1,26 @@
package com.teammetallurgy.aquaculture.init;

import com.google.common.collect.Lists;
import com.teammetallurgy.aquaculture.Aquaculture;
import com.teammetallurgy.aquaculture.inventory.container.TackleBoxContainer;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.common.extensions.IForgeContainerType;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.ObjectHolder;
import net.minecraftforge.fmllegacy.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

import javax.annotation.Nonnull;
import java.util.List;
import java.util.function.Supplier;

@Mod.EventBusSubscriber(modid = Aquaculture.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
@ObjectHolder(Aquaculture.MOD_ID)
public class AquaGuis {
public static List<MenuType> CONTAINERS = Lists.newArrayList();
public static final MenuType<TackleBoxContainer> TACKLE_BOX = register(IForgeContainerType.create((windowID, inv, data) -> {
public static final DeferredRegister<MenuType<?>> MENU_DEFERRED = DeferredRegister.create(ForgeRegistries.CONTAINERS, Aquaculture.MOD_ID);
public static final RegistryObject<MenuType<TackleBoxContainer>> TACKLE_BOX = register(() -> IForgeContainerType.create((windowID, inv, data) -> {
BlockPos pos = data.readBlockPos();
return new TackleBoxContainer(windowID, pos, inv);
}), "tackle_box");

private static <T extends AbstractContainerMenu> MenuType<T> register(@Nonnull MenuType<T> container, @Nonnull String name) {
container.setRegistryName(new ResourceLocation(Aquaculture.MOD_ID, name));
CONTAINERS.add(container);
return container;
}

@SubscribeEvent
public static void registerContainers(RegistryEvent.Register<MenuType<?>> event) {
for (MenuType container : CONTAINERS) {
event.getRegistry().register(container);
}
private static <T extends AbstractContainerMenu> RegistryObject<MenuType<T>> register(@Nonnull Supplier<MenuType<T>> initializer, @Nonnull String name) {
return MENU_DEFERRED.register(name, initializer);
}
}
Expand Up @@ -34,7 +34,7 @@ public class TackleBoxContainer extends AbstractContainerMenu {
public Slot slotBobber;

public TackleBoxContainer(int windowID, BlockPos pos, Inventory playerInventory) {
super(AquaGuis.TACKLE_BOX, windowID);
super(AquaGuis.TACKLE_BOX.get(), windowID);
this.tackleBox = (TackleBoxTileEntity) playerInventory.player.level.getBlockEntity(pos);
if (this.tackleBox != null) {
this.tackleBox.startOpen(playerInventory.player);
Expand Down

0 comments on commit cabba20

Please sign in to comment.