diff --git a/src/main/java/com/raoulvdberge/refinedstorage/ClientSetup.java b/src/main/java/com/raoulvdberge/refinedstorage/ClientSetup.java index 704181876..a29107d15 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/ClientSetup.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/ClientSetup.java @@ -6,6 +6,7 @@ import com.raoulvdberge.refinedstorage.render.model.baked.FullbrightBakedModel; import com.raoulvdberge.refinedstorage.screen.ControllerScreen; import com.raoulvdberge.refinedstorage.screen.DiskDriveScreen; import com.raoulvdberge.refinedstorage.screen.FilterScreen; +import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory; import net.minecraft.client.gui.ScreenManager; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ModelBakeEvent; @@ -57,6 +58,7 @@ public class ClientSetup { ScreenManager.registerFactory(RSContainers.FILTER, FilterScreen::new); ScreenManager.registerFactory(RSContainers.CONTROLLER, ControllerScreen::new); ScreenManager.registerFactory(RSContainers.DISK_DRIVE, DiskDriveScreen::new); + ScreenManager.registerFactory(RSContainers.GRID, new GridScreenFactory()); } @SubscribeEvent diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index ad78becdb..13c077059 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -3,6 +3,7 @@ package com.raoulvdberge.refinedstorage; import com.raoulvdberge.refinedstorage.api.network.grid.GridType; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener; +import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridFactoryGridBlock; import com.raoulvdberge.refinedstorage.apiimpl.network.node.CableNetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode; @@ -16,6 +17,7 @@ import com.raoulvdberge.refinedstorage.config.ServerConfig; import com.raoulvdberge.refinedstorage.container.ControllerContainer; import com.raoulvdberge.refinedstorage.container.DiskDriveContainer; import com.raoulvdberge.refinedstorage.container.FilterContainer; +import com.raoulvdberge.refinedstorage.container.factory.GridContainerFactory; import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerFactory; import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.item.blockitem.ControllerBlockItem; @@ -90,8 +92,9 @@ public final class RS { }); API.instance().getNetworkNodeRegistry().add(CableNetworkNode.ID, (tag, world, pos) -> new CableNetworkNode(world, pos)); - API.instance().getNetworkNodeRegistry().add(GridNetworkNode.ID, (tag, world, pos) -> new GridNetworkNode(world, pos, GridType.NORMAL)); + + API.instance().getGridManager().add(GridFactoryGridBlock.ID, new GridFactoryGridBlock()); } @SubscribeEvent @@ -143,6 +146,7 @@ public final class RS { e.getRegistry().register(IForgeContainerType.create((windowId, inv, data) -> new FilterContainer(inv.player, inv.getCurrentItem(), windowId)).setRegistryName(RS.ID, "filter")); e.getRegistry().register(IForgeContainerType.create(((windowId, inv, data) -> new ControllerContainer(null, inv.player, windowId))).setRegistryName(RS.ID, "controller")); e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory((windowId, inv, tile) -> new DiskDriveContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "disk_drive")); + e.getRegistry().register(IForgeContainerType.create(new GridContainerFactory()).setRegistryName(RS.ID, "grid")); } @SubscribeEvent diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSContainers.java b/src/main/java/com/raoulvdberge/refinedstorage/RSContainers.java index 81d4ae192..0c24e17e4 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSContainers.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSContainers.java @@ -11,6 +11,10 @@ public final class RSContainers { @ObjectHolder(RS.ID + ":controller") public static final ContainerType CONTROLLER = null; + + @ObjectHolder(RS.ID + ":grid") + public static final ContainerType GRID = null; + //@ObjectHolder(RS.ID + ":crafter") public static final ContainerType CRAFTER = null; //@ObjectHolder(RS.ID + ":crafter_manager") @@ -36,8 +40,6 @@ public final class RSContainers { public static final ContainerType FLUID_INTERFACE = null; //@ObjectHolder(RS.ID + ":fluid_storage") public static final ContainerType FLUID_STORAGE = null; - //@ObjectHolder(RS.ID + ":grid") - public static final ContainerType GRID = null; //@ObjectHolder(RS.ID + ":importer") public static final ContainerType IMPORTER = null; //@ObjectHolder(RS.ID + ":interface") diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java index b77d5b865..193cc823e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java @@ -10,6 +10,7 @@ import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.inventory.CraftResultInventory; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; @@ -86,9 +87,9 @@ public interface IGrid { } /** - * @return an unlocalized gui title + * @return the title */ - String getGuiTitle(); + ITextComponent getTitle(); /** * @return the view type diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridManager.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridManager.java index 1a437c3bd..96f190b11 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridManager.java @@ -4,6 +4,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import org.apache.commons.lang3.tuple.Pair; @@ -14,45 +15,45 @@ import javax.annotation.Nullable; */ public interface IGridManager { /** + * @param id the id of this factory * @param factory the factory - * @return the id of this factory */ - int add(IGridFactory factory); + void add(ResourceLocation id, IGridFactory factory); /** * @param id the id of the factory * @return the factory, or null if no factory was found */ @Nullable - IGridFactory get(int id); + IGridFactory get(ResourceLocation id); /** * Opens a grid. Can only be called on the server. * - * @param id the grid factory id as returned from {@link #add(IGridFactory)} + * @param id the grid factory id * @param player the player * @param pos the block position */ - void openGrid(int id, ServerPlayerEntity player, BlockPos pos); + void openGrid(ResourceLocation id, ServerPlayerEntity player, BlockPos pos); /** * Opens a grid. Can only be called on the server. * - * @param id the grid factory id as returned from {@link #add(IGridFactory)} + * @param id the grid factory id * @param player the player * @param stack the stack */ - void openGrid(int id, ServerPlayerEntity player, ItemStack stack); + void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack); /** * Creates a grid. * - * @param id the grid factory id as returned from {@link #add(IGridFactory)} + * @param id the grid factory id * @param player the player * @param stack the stack, if there is one * @param pos the block position, if there is one * @return a grid, or null if an error has occurred */ @Nullable - Pair createGrid(int id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos); + Pair createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridFactoryGridBlock.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridFactoryGridBlock.java index 79280ec4b..dd0781092 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridFactoryGridBlock.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridFactoryGridBlock.java @@ -1,5 +1,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory; @@ -7,12 +8,15 @@ import com.raoulvdberge.refinedstorage.tile.grid.GridTile; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import javax.annotation.Nullable; public class GridFactoryGridBlock implements IGridFactory { + public static final ResourceLocation ID = new ResourceLocation(RS.ID, "grid"); + @Override @Nullable public IGrid createFromStack(PlayerEntity player, ItemStack stack) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridManager.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridManager.java index ba4a5b2e8..c71a66358 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridManager.java @@ -3,81 +3,68 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory; import com.raoulvdberge.refinedstorage.api.network.grid.IGridManager; +import com.raoulvdberge.refinedstorage.container.factory.GridContainerProvider; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.network.NetworkHooks; import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; +import java.util.Map; public class GridManager implements IGridManager { - private List factories = new ArrayList<>(); + private final Map factories = new HashMap<>(); @Override - public int add(IGridFactory factory) { - factories.add(factory); - - return factories.size() - 1; + public void add(ResourceLocation id, IGridFactory factory) { + factories.put(id, factory); } @Override @Nullable - public IGridFactory get(int id) { - if (id < 0 || id >= factories.size()) { - return null; - } - + public IGridFactory get(ResourceLocation id) { return factories.get(id); } @Override - public void openGrid(int id, ServerPlayerEntity player, BlockPos pos) { + public void openGrid(ResourceLocation id, ServerPlayerEntity player, BlockPos pos) { openGrid(id, player, null, pos); } @Override - public void openGrid(int id, ServerPlayerEntity player, ItemStack stack) { + public void openGrid(ResourceLocation id, ServerPlayerEntity player, ItemStack stack) { openGrid(id, player, stack, null); } - private void openGrid(int id, ServerPlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos) { + private void openGrid(ResourceLocation id, ServerPlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos) { Pair grid = createGrid(id, player, stack, pos); if (grid == null) { return; } - // @Volatile: FMLNetworkHandler#openGui - player.getNextWindowId(); - player.closeContainer(); + NetworkHooks.openGui(player, new GridContainerProvider(grid.getLeft(), grid.getRight()), buf -> { + buf.writeResourceLocation(id); - // The order of sending this packet and setting openContainer matters! + buf.writeBoolean(pos != null); + if (pos != null) { + buf.writeBlockPos(pos); + } - // We first need to send the grid open packet with the window id. - - // Then we set the openContainer so the slots are getting sent (ServerPlayerEntity::update -> Container::detectAndSendChanges). - - // If the client window id mismatches with the server window id this causes problems with slots not being set. - // If we would set the openContainer first, the slot packets would be sent first but wouldn't be able to be set - // on the client since the window id would mismatch. - // So we first send the window id in MessageGridOpen. - - // The order is preserved by TCP. - /* TODO ! RS.INSTANCE.network.sendTo(new MessageGridOpen(player.currentWindowId, pos, id, stack), player); - - player.openContainer = new ContainerGrid(grid.getLeft(), new ResizableDisplayDummy(), grid.getRight() instanceof TileBase ? (TileBase) grid.getRight() : null, player); - player.openContainer.windowId = player.currentWindowId; - player.openContainer.addListener(player); - - MinecraftForge.EVENT_BUS.post(new PlayerContainerEvent.Open(player, player.openContainer));*/ + buf.writeBoolean(stack != null); + if (stack != null) { + buf.writeItemStack(stack); + } + }); } @Override @Nullable - public Pair createGrid(int id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos) { + public Pair createGrid(ResourceLocation id, PlayerEntity player, @Nullable ItemStack stack, @Nullable BlockPos pos) { IGridFactory factory = get(id); if (factory == null) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java index e82e6763a..2892b855a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java @@ -5,11 +5,8 @@ import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.security.Permission; -import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import com.raoulvdberge.refinedstorage.util.WorldUtils; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -44,7 +41,7 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem { return false; } - API.instance().getGridManager().openGrid(WirelessFluidGrid.ID, (ServerPlayerEntity) player, stack); + // TODO API.instance().getGridManager().openGrid(WirelessFluidGrid.ID, (ServerPlayerEntity) player, stack); drainEnergy(RS.INSTANCE.config.wirelessFluidGridOpenUsage); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java index 488e78719..f6f856fb3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java @@ -5,11 +5,8 @@ import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.security.Permission; -import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.util.WorldUtils; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -44,7 +41,7 @@ public class NetworkItemWirelessGrid implements INetworkItem { return false; } - API.instance().getGridManager().openGrid(WirelessGrid.ID, (ServerPlayerEntity) player, stack); + // TODO API.instance().getGridManager().openGrid(WirelessGrid.ID, (ServerPlayerEntity) player, stack); drainEnergy(RS.INSTANCE.config.wirelessGridOpenUsage); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java index d1b46b885..2233b97f6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java @@ -39,6 +39,8 @@ import net.minecraft.item.crafting.IRecipeType; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -57,7 +59,6 @@ import java.util.Set; public class GridNetworkNode extends NetworkNode implements IGridNetworkAware, IType { public static final String ID = "grid"; - public static int FACTORY_ID = 0; public static final String NBT_VIEW_TYPE = "ViewType"; public static final String NBT_SORTING_DIRECTION = "SortingDirection"; @@ -266,18 +267,18 @@ public class GridNetworkNode extends NetworkNode implements IGridNetworkAware, I } @Override - public String getGuiTitle() { + public ITextComponent getTitle() { GridType type = getGridType(); switch (type) { case CRAFTING: - return "gui.refinedstorage:crafting_grid"; + return new TranslationTextComponent("gui.refinedstorage.crafting_grid"); case PATTERN: - return "gui.refinedstorage:pattern_grid"; + return new TranslationTextComponent("gui.refinedstorage.pattern_grid"); case FLUID: - return "gui.refinedstorage:fluid_grid"; + return new TranslationTextComponent("gui.refinedstorage.fluid_grid"); default: - return "gui.refinedstorage:grid"; + return new TranslationTextComponent("gui.refinedstorage.grid"); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/GridBlock.java b/src/main/java/com/raoulvdberge/refinedstorage/block/GridBlock.java index 7ce4d7420..0ab203948 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/GridBlock.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/GridBlock.java @@ -2,13 +2,22 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.network.grid.GridType; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridFactoryGridBlock; import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.tile.grid.GridTile; import com.raoulvdberge.refinedstorage.util.BlockUtils; +import com.raoulvdberge.refinedstorage.util.NetworkUtils; import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; import javax.annotation.Nullable; @@ -49,6 +58,16 @@ public class GridBlock extends NodeBlock { return new GridTile(type); } + @Override + @SuppressWarnings("deprecation") + public boolean onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + if (!worldIn.isRemote) { + return NetworkUtils.attemptModify(worldIn, pos, hit.getFace(), player, () -> API.instance().getGridManager().openGrid(GridFactoryGridBlock.ID, (ServerPlayerEntity) player, pos)); + } + + return true; + } + /* @Override @OnlyIn(Dist.CLIENT) @@ -64,10 +83,5 @@ public class GridBlock extends NodeBlock { RS.ID + ":blocks/grid/cutouts/pattern_front_connected", RS.ID + ":blocks/grid/cutouts/fluid_front_connected" )); - } - - @Override - public boolean onBlockActivated(World world, BlockPos pos, BlockState state, PlayerEntity player, EnumHand hand, Direction side, float hitX, float hitY, float hitZ) { - return openNetworkGui(player, world, pos, side, () -> API.instance().getGridManager().openGrid(NetworkNodeGrid.FACTORY_ID, (ServerPlayerEntity) player, pos)); }*/ } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/CrafterManagerContainer.java b/src/main/java/com/raoulvdberge/refinedstorage/container/CrafterManagerContainer.java index 04e9c1adb..554dd39e3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/CrafterManagerContainer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/CrafterManagerContainer.java @@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafter; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafterManager; import com.raoulvdberge.refinedstorage.container.slot.CrafterManagerSlot; import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; -import com.raoulvdberge.refinedstorage.screen.IResizableDisplay; +import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider; import com.raoulvdberge.refinedstorage.screen.grid.filtering.GridFilterParser; import com.raoulvdberge.refinedstorage.screen.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; @@ -62,7 +62,7 @@ public class CrafterManagerContainer extends BaseContainer { } } - private IResizableDisplay display; + private IScreenInfoProvider display; private NetworkNodeCrafterManager crafterManager; private Map containerData; private Map dummyInventories = new HashMap<>(); @@ -83,7 +83,7 @@ public class CrafterManagerContainer extends BaseContainer { return new ArrayList<>(); } - public CrafterManagerContainer(TileCrafterManager crafterManager, PlayerEntity player, IResizableDisplay display, int windowId) { + public CrafterManagerContainer(TileCrafterManager crafterManager, PlayerEntity player, IScreenInfoProvider display, int windowId) { super(RSContainers.CRAFTER_MANAGER, crafterManager, player, windowId); this.display = display; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/GridContainer.java b/src/main/java/com/raoulvdberge/refinedstorage/container/GridContainer.java index 0cad10505..75d6e5b4a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/GridContainer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/GridContainer.java @@ -16,7 +16,7 @@ import com.raoulvdberge.refinedstorage.container.slot.grid.ResultCraftingGridSlo import com.raoulvdberge.refinedstorage.container.slot.legacy.BaseLegacySlot; import com.raoulvdberge.refinedstorage.container.slot.legacy.DisabledLegacySlot; import com.raoulvdberge.refinedstorage.container.slot.legacy.FilterLegacySlot; -import com.raoulvdberge.refinedstorage.screen.IResizableDisplay; +import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider; import com.raoulvdberge.refinedstorage.tile.BaseTile; import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; @@ -37,22 +37,23 @@ public class GridContainer extends BaseContainer implements IGridCraftingListene private IGrid grid; private IStorageCache cache; private IStorageCacheListener listener; - private IResizableDisplay display; + private IScreenInfoProvider screenInfoProvider; private ResultCraftingGridSlot craftingResultSlot; private BaseLegacySlot patternResultSlot; - public GridContainer(IGrid grid, IResizableDisplay display, @Nullable BaseTile gridTile, PlayerEntity player, int windowId) { + public GridContainer(IGrid grid, @Nullable BaseTile gridTile, PlayerEntity player, int windowId) { super(RSContainers.GRID, gridTile, player, windowId); this.grid = grid; - this.display = display; - - initSlots(); grid.addCraftingListener(this); } + public void setScreenInfoProvider(IScreenInfoProvider screenInfoProvider) { + this.screenInfoProvider = screenInfoProvider; + } + public void initSlots() { this.inventorySlots.clear(); // this.inventoryItemStacks.clear(); // TODO at @@ -112,7 +113,7 @@ public class GridContainer extends BaseContainer implements IGridCraftingListene return ItemStack.EMPTY; }); - addPlayerInventory(8, display.getYPlayerInventory()); + addPlayerInventory(8, screenInfoProvider.getYPlayerInventory()); } private void addPortableGridSlots() { @@ -136,7 +137,7 @@ public class GridContainer extends BaseContainer implements IGridCraftingListene } private void addCraftingSlots() { - int headerAndSlots = display.getTopHeight() + (display.getVisibleRows() * 18); + int headerAndSlots = screenInfoProvider.getTopHeight() + (screenInfoProvider.getVisibleRows() * 18); int x = 26; int y = headerAndSlots + 4; @@ -156,7 +157,7 @@ public class GridContainer extends BaseContainer implements IGridCraftingListene } private void addPatternSlots() { - int headerAndSlots = display.getTopHeight() + (display.getVisibleRows() * 18); + int headerAndSlots = screenInfoProvider.getTopHeight() + (screenInfoProvider.getVisibleRows() * 18); addSlot(new SlotItemHandler(((GridNetworkNode) grid).getPatterns(), 0, 172, headerAndSlots + 4)); addSlot(new SlotItemHandler(((GridNetworkNode) grid).getPatterns(), 1, 172, headerAndSlots + 40)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerFactory.java b/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerFactory.java new file mode 100644 index 000000000..3edc152e9 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerFactory.java @@ -0,0 +1,36 @@ +package com.raoulvdberge.refinedstorage.container.factory; + +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.container.GridContainer; +import com.raoulvdberge.refinedstorage.tile.BaseTile; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketBuffer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.network.IContainerFactory; +import org.apache.commons.lang3.tuple.Pair; + +public class GridContainerFactory implements IContainerFactory { + @Override + public GridContainer create(int windowId, PlayerInventory inv, PacketBuffer data) { + ResourceLocation id = data.readResourceLocation(); + + BlockPos pos = null; + ItemStack stack = null; + + if (data.readBoolean()) { + pos = data.readBlockPos(); + } + + if (data.readBoolean()) { + stack = data.readItemStack(); + } + + Pair grid = API.instance().getGridManager().createGrid(id, inv.player, stack, pos); + + return new GridContainer(grid.getLeft(), grid.getRight() instanceof BaseTile ? (BaseTile) grid.getRight() : null, inv.player, windowId); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerProvider.java b/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerProvider.java new file mode 100644 index 000000000..3fee13f07 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/factory/GridContainerProvider.java @@ -0,0 +1,40 @@ +package com.raoulvdberge.refinedstorage.container.factory; + +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; +import com.raoulvdberge.refinedstorage.container.GridContainer; +import com.raoulvdberge.refinedstorage.screen.EmptyScreenInfoProvider; +import com.raoulvdberge.refinedstorage.tile.BaseTile; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.container.Container; +import net.minecraft.inventory.container.INamedContainerProvider; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.text.ITextComponent; + +import javax.annotation.Nullable; + +public class GridContainerProvider implements INamedContainerProvider { + private final IGrid grid; + private final TileEntity tile; + + public GridContainerProvider(IGrid grid, TileEntity tile) { + this.grid = grid; + this.tile = tile; + } + + @Override + public ITextComponent getDisplayName() { + return grid.getTitle(); + } + + @Nullable + @Override + public Container createMenu(int windowId, PlayerInventory inv, PlayerEntity player) { + GridContainer c = new GridContainer(grid, tile instanceof BaseTile ? (BaseTile) tile : null, player, windowId); + + c.setScreenInfoProvider(new EmptyScreenInfoProvider()); + c.initSlots(); + + return c; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/CrafterManagerSlot.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/CrafterManagerSlot.java index 3562589c3..59af10569 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/CrafterManagerSlot.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/CrafterManagerSlot.java @@ -1,15 +1,15 @@ package com.raoulvdberge.refinedstorage.container.slot; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafterManager; -import com.raoulvdberge.refinedstorage.screen.IResizableDisplay; +import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider; import net.minecraftforge.items.IItemHandler; public class CrafterManagerSlot extends BaseSlot { private boolean visible; private NetworkNodeCrafterManager crafterManager; - private IResizableDisplay display; + private IScreenInfoProvider display; - public CrafterManagerSlot(IItemHandler itemHandler, int inventoryIndex, int x, int y, boolean visible, IResizableDisplay display, NetworkNodeCrafterManager crafterManager) { + public CrafterManagerSlot(IItemHandler itemHandler, int inventoryIndex, int x, int y, boolean visible, IScreenInfoProvider display, NetworkNodeCrafterManager crafterManager) { super(itemHandler, inventoryIndex, x, y); this.visible = visible; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/item/ItemHandlerFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/item/ItemHandlerFilter.java index 3fa9591cc..5e77537bf 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/item/ItemHandlerFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/item/ItemHandlerFilter.java @@ -9,7 +9,7 @@ import com.raoulvdberge.refinedstorage.inventory.fluid.FluidInventoryFilter; import com.raoulvdberge.refinedstorage.inventory.item.validator.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.FilterItem; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.LogicalSide; @@ -47,7 +47,7 @@ public class ItemHandlerFilter extends ItemHandlerBase { } if (EffectiveSide.get() == LogicalSide.CLIENT) { // TODO check - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/AmountSpecifyingScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/AmountSpecifyingScreen.java index f73cf397b..c5074df24 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/AmountSpecifyingScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/AmountSpecifyingScreen.java @@ -43,7 +43,7 @@ public abstract class AmountSpecifyingScreen extends BaseSc } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { Pair pos = getOkCancelPos(); okButton = addButton(x + pos.getLeft(), y + pos.getRight(), 50, 20, getOkButtonText(), true, true, btn -> onOkButtonPressed(hasShiftDown())); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java index 6abf4ff86..385757504 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java @@ -60,6 +60,8 @@ public abstract class BaseScreen extends ContainerScreen public void init() { minecraft.keyboardListener.enableRepeatEvents(true); + onPreInit(); + super.init(); buttons.clear(); @@ -67,7 +69,7 @@ public abstract class BaseScreen extends ContainerScreen sideButtonY = 6; - init(guiLeft, guiTop); + onPostInit(guiLeft, guiTop); runActions(); } @@ -318,7 +320,11 @@ public abstract class BaseScreen extends ContainerScreen GlStateManager.enableLighting(); } - public abstract void init(int x, int y); + protected void onPreInit() { + // NO OP + } + + public abstract void onPostInit(int x, int y); public abstract void tick(int x, int y); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/ControllerScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/ControllerScreen.java index dd4769477..673d997e5 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/ControllerScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/ControllerScreen.java @@ -32,7 +32,7 @@ public class ControllerScreen extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, ControllerTile.REDSTONE_MODE)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/ResizableDisplayDummy.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/EmptyScreenInfoProvider.java similarity index 89% rename from src/main/java/com/raoulvdberge/refinedstorage/screen/ResizableDisplayDummy.java rename to src/main/java/com/raoulvdberge/refinedstorage/screen/EmptyScreenInfoProvider.java index e4a8b93c7..421427f7a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/ResizableDisplayDummy.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/EmptyScreenInfoProvider.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.screen; -public class ResizableDisplayDummy implements IResizableDisplay { +public class EmptyScreenInfoProvider implements IScreenInfoProvider { @Override public int getVisibleRows() { return 3; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/FilterScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/FilterScreen.java index fdeda59b2..27a607e41 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/FilterScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/FilterScreen.java @@ -42,7 +42,7 @@ public class FilterScreen extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addCheckBox(x + 7, y + 77, I18n.format("gui.refinedstorage.filter.compare_nbt"), (compare & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT, btn -> { compare ^= IComparer.COMPARE_NBT; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java index 68ee71127..7226ae5fb 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiConstructor.java @@ -17,7 +17,7 @@ public class GuiConstructor extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileConstructor.REDSTONE_MODE)); addSideButton(new SideButtonType(this, TileConstructor.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafter.java index 05fe7526c..02c927faf 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafter.java @@ -13,7 +13,7 @@ public class GuiCrafter extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java index 616aff60d..dcaf8955b 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java @@ -21,7 +21,7 @@ import net.minecraft.inventory.container.Slot; import java.util.Map; // TODO @MouseTweaksDisableWheelTweak -public class GuiCrafterManager extends BaseScreen implements IResizableDisplay { +public class GuiCrafterManager extends BaseScreen implements IScreenInfoProvider { private CrafterManagerContainer container; private NetworkNodeCrafterManager crafterManager; @@ -96,7 +96,7 @@ public class GuiCrafterManager extends BaseScreen imple } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileCrafterManager.REDSTONE_MODE)); addSideButton(new SideButtonCrafterManagerSearchBoxMode(this)); addSideButton(new SideButtonGridSize(this, () -> crafterManager.getSize(), size -> TileDataManager.setParameter(TileCrafterManager.SIZE, size))); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingMonitor.java index 7e1a277dc..983ed8111 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingMonitor.java @@ -151,7 +151,7 @@ public class GuiCraftingMonitor extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { this.tabs.init(xSize); this.scrollbar = new ScrollbarWidget(this, 235, 20, 12, 149); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingPreview.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingPreview.java index c69891623..363c1b2ab 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingPreview.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCraftingPreview.java @@ -67,7 +67,7 @@ public class GuiCraftingPreview extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { cancelButton = addButton(x + 55, y + 201 - 20 - 7, 50, 20, I18n.format("gui.cancel"), true, true, btn -> { }); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java index b20ccb246..bbc1c87a1 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDestructor.java @@ -14,7 +14,7 @@ public class GuiDestructor extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileDestructor.REDSTONE_MODE)); addSideButton(new SideButtonType(this, TileDestructor.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java index 65ccafcf6..54ca97e04 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDetector.java @@ -19,7 +19,7 @@ public class GuiDetector extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonType(this, TileDetector.TYPE)); addSideButton(new SideButtonDetectorMode(this)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java index 7a2cfc901..0d9cba648 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiDiskManipulator.java @@ -14,7 +14,7 @@ public class GuiDiskManipulator extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileDiskManipulator.REDSTONE_MODE)); addSideButton(new SideButtonIOMode(this)); addSideButton(new SideButtonType(this, TileDiskManipulator.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java index 8bb6319fd..84e70719e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiExporter.java @@ -16,7 +16,7 @@ public class GuiExporter extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileExporter.REDSTONE_MODE)); addSideButton(new SideButtonType(this, TileExporter.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiFluidInterface.java index 67edffbf3..443311185 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiFluidInterface.java @@ -20,7 +20,7 @@ public class GuiFluidInterface extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileFluidInterface.REDSTONE_MODE)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java index b431a62d7..3b8e08f88 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiImporter.java @@ -17,7 +17,7 @@ public class GuiImporter extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileImporter.REDSTONE_MODE)); addSideButton(new SideButtonType(this, TileImporter.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java index 9763bb397..3e846dabe 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiInterface.java @@ -15,7 +15,7 @@ public class GuiInterface extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileInterface.REDSTONE_MODE)); addSideButton(new SideButtonCompare(this, TileInterface.COMPARE, IComparer.COMPARE_NBT)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiNetworkTransmitter.java index 04d56f829..7d2ed343b 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiNetworkTransmitter.java @@ -17,7 +17,7 @@ public class GuiNetworkTransmitter extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, readerWriter.getRedstoneModeParameter())); add = addButton(x + 128, y + 15, 20, 20, "+", true, true, btn -> { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiRelay.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiRelay.java index 6fd3a69ad..bc88d1707 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiRelay.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiRelay.java @@ -13,7 +13,7 @@ public class GuiRelay extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileRelay.REDSTONE_MODE)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiSecurityManager.java index 5caecfa25..ba5465a55 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiSecurityManager.java @@ -22,7 +22,7 @@ public class GuiSecurityManager extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonRedstoneMode(this, TileSecurityManager.REDSTONE_MODE)); int padding = 15; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java index 974e6534a..570c748bb 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiStorageMonitor.java @@ -14,7 +14,7 @@ public class GuiStorageMonitor extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { addSideButton(new SideButtonCompare(this, TileStorageMonitor.COMPARE, IComparer.COMPARE_NBT)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiWirelessTransmitter.java index 3cbcc1d56..46f02a580 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiWirelessTransmitter.java @@ -13,7 +13,7 @@ public class GuiWirelessTransmitter extends BaseScreen extends BaseScreen { } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { if (redstoneModeParameter != null) { addSideButton(new SideButtonRedstoneMode(this, redstoneModeParameter)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/factory/GridScreenFactory.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/factory/GridScreenFactory.java new file mode 100644 index 000000000..45d0aef77 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/factory/GridScreenFactory.java @@ -0,0 +1,18 @@ +package com.raoulvdberge.refinedstorage.screen.factory; + +import com.raoulvdberge.refinedstorage.container.GridContainer; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; +import net.minecraft.client.gui.ScreenManager; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.util.text.ITextComponent; + +public class GridScreenFactory implements ScreenManager.IScreenFactory { + @Override + public GridScreen create(GridContainer container, PlayerInventory inv, ITextComponent title) { + GridScreen grid = new GridScreen(container, container.getGrid(), inv, title); + + container.setScreenInfoProvider(grid); + + return grid; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java similarity index 96% rename from src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GuiGrid.java rename to src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java index ab3e4f0fc..65a199a7c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java @@ -9,7 +9,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.render.ElementDrawers; import com.raoulvdberge.refinedstorage.container.GridContainer; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.IResizableDisplay; +import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider; import com.raoulvdberge.refinedstorage.screen.grid.sorting.*; import com.raoulvdberge.refinedstorage.screen.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; @@ -30,12 +30,13 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.config.GuiCheckBox; import java.util.LinkedList; import java.util.List; -public class GuiGrid extends BaseScreen implements IResizableDisplay { +public class GridScreen extends BaseScreen implements IScreenInfoProvider { private IGridView view; private SearchWidget searchField; @@ -51,8 +52,8 @@ public class GuiGrid extends BaseScreen implements IResizableDisp private int slotNumber; - public GuiGrid(GridContainer container, IGrid grid, PlayerInventory inventory) { - super(container, 227, 0, inventory, null); + public GridScreen(GridContainer container, IGrid grid, PlayerInventory inventory, ITextComponent title) { + super(container, 227, 0, inventory, title); this.grid = grid; this.view = grid.getGridType() == GridType.FLUID ? new GridViewFluid(this, getDefaultSorter(), getSorters()) : new GridViewItem(this, getDefaultSorter(), getSorters()); @@ -71,15 +72,15 @@ public class GuiGrid extends BaseScreen implements IResizableDisp }); } - /* TODO - calcHeight @Override - protected void calcHeight() { + protected void onPreInit() { + super.onPreInit(); + this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18); - this.ySize = ySize; - }*/ + } @Override - public void init(int x, int y) { + public void onPostInit(int x, int y) { container.initSlots(); this.tabs.init(xSize - 32); @@ -208,7 +209,7 @@ public class GuiGrid extends BaseScreen implements IResizableDisp case IGrid.SIZE_STRETCH: int screenSpaceAvailable = height - getTopHeight() - getBottomHeight(); - return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.INSTANCE.config.maxRowsStretch)); + return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, Integer.MAX_VALUE));//@TODO: MaxRowsStretch case IGrid.SIZE_SMALL: return 3; case IGrid.SIZE_MEDIUM: @@ -324,7 +325,7 @@ public class GuiGrid extends BaseScreen implements IResizableDisp @Override public void renderForeground(int mouseX, int mouseY) { - renderString(7, 7, I18n.format(grid.getGuiTitle())); + renderString(7, 7, title.getFormattedText()); renderString(7, getYPlayerInventory() - 12, I18n.format("container.inventory")); int x = 8; @@ -372,7 +373,7 @@ public class GuiGrid extends BaseScreen implements IResizableDisp } if (isOverCreatePattern(mouseX, mouseY)) { - renderTooltip(mouseX, mouseY, I18n.format("gui.refinedstorage:grid.pattern_create")); + renderTooltip(mouseX, mouseY, I18n.format("gui.refinedstorage.grid.pattern_create")); } tabs.drawTooltip(font, mouseX, mouseY); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackFluid.java index 2cc975fab..a41ff847e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackFluid.java @@ -111,7 +111,7 @@ public class GridStackFluid implements IGridStack { String text; if (displayCraftText) { - text = I18n.format("gui.refinedstorage:grid.craft"); + text = I18n.format("gui.refinedstorage.grid.craft"); } else { text = API.instance().getQuantityFormatter().formatInBucketFormWithOnlyTrailingDigitsIfZero(getQuantity()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackItem.java index c4ff7120e..08ac73241 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/stack/GridStackItem.java @@ -154,7 +154,7 @@ public class GridStackItem implements IGridStack { String text = null; if (displayCraftText) { - text = I18n.format("gui.refinedstorage:grid.craft"); + text = I18n.format("gui.refinedstorage.grid.craft"); } else if (stack.getCount() > 1) { text = API.instance().getQuantityFormatter().formatWithUnits(getQuantity()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewBase.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewBase.java index d5d34ae3c..7168c3c5a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewBase.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.screen.grid.view; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.screen.grid.filtering.GridFilterParser; import com.raoulvdberge.refinedstorage.screen.grid.sorting.GridSorterDirection; import com.raoulvdberge.refinedstorage.screen.grid.sorting.IGridSorter; @@ -11,7 +11,7 @@ import java.util.*; import java.util.function.Predicate; public abstract class GridViewBase implements IGridView { - private GuiGrid gui; + private GridScreen gui; private boolean canCraft; private IGridSorter defaultSorter; @@ -20,7 +20,7 @@ public abstract class GridViewBase implements IGridView { private List stacks = new ArrayList<>(); protected Map map = new HashMap<>(); - public GridViewBase(GuiGrid gui, IGridSorter defaultSorter, List sorters) { + public GridViewBase(GridScreen gui, IGridSorter defaultSorter, List sorters) { this.gui = gui; this.defaultSorter = defaultSorter; this.sorters = sorters; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewFluid.java index 05d0d227a..2c6515876 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewFluid.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.screen.grid.view; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.screen.grid.sorting.IGridSorter; import com.raoulvdberge.refinedstorage.screen.grid.stack.GridStackFluid; import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; @@ -8,7 +8,7 @@ import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; import java.util.List; public class GridViewFluid extends GridViewBase { - public GridViewFluid(GuiGrid gui, IGridSorter defaultSorter, List sorters) { + public GridViewFluid(GridScreen gui, IGridSorter defaultSorter, List sorters) { super(gui, defaultSorter, sorters); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewItem.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewItem.java index ef6a0f6fc..a6825aa89 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/view/GridViewItem.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.screen.grid.view; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.screen.grid.sorting.IGridSorter; import com.raoulvdberge.refinedstorage.screen.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; @@ -8,7 +8,7 @@ import com.raoulvdberge.refinedstorage.screen.grid.stack.IGridStack; import java.util.List; public class GridViewItem extends GridViewBase { - public GridViewItem(GuiGrid gui, IGridSorter defaultSorter, List sorters) { + public GridViewItem(GridScreen gui, IGridSorter defaultSorter, List sorters) { super(gui, defaultSorter, sorters); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/SideButtonGridSearchBoxMode.java index 204671b5d..08e0f7ad1 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/widget/sidebutton/SideButtonGridSearchBoxMode.java @@ -1,30 +1,30 @@ package com.raoulvdberge.refinedstorage.screen.widget.sidebutton; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import net.minecraft.client.resources.I18n; import net.minecraft.util.text.TextFormatting; public class SideButtonGridSearchBoxMode extends SideButton { - public SideButtonGridSearchBoxMode(GuiGrid gui) { + public SideButtonGridSearchBoxMode(GridScreen gui) { super(gui); } @Override public String getTooltip() { - return I18n.format("sidebutton.refinedstorage:grid.search_box_mode") + "\n" + TextFormatting.GRAY + I18n.format("sidebutton.refinedstorage:grid.search_box_mode." + ((GuiGrid) screen).getGrid().getSearchBoxMode()); + return I18n.format("sidebutton.refinedstorage:grid.search_box_mode") + "\n" + TextFormatting.GRAY + I18n.format("sidebutton.refinedstorage:grid.search_box_mode." + ((GridScreen) screen).getGrid().getSearchBoxMode()); } @Override protected void renderButtonIcon(int x, int y) { - int mode = ((GuiGrid) screen).getGrid().getSearchBoxMode(); + int mode = ((GridScreen) screen).getGrid().getSearchBoxMode(); screen.blit(x, y, mode == IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED ? 16 : 0, 96, 16, 16); } @Override public void onPress() { - int mode = ((GuiGrid) screen).getGrid().getSearchBoxMode(); + int mode = ((GridScreen) screen).getGrid().getSearchBoxMode(); if (mode == IGrid.SEARCH_BOX_MODE_NORMAL) { mode = IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED; @@ -40,8 +40,8 @@ public class SideButtonGridSearchBoxMode extends SideButton { mode = IGrid.SEARCH_BOX_MODE_NORMAL; } - ((GuiGrid) screen).getGrid().onSearchBoxModeChanged(mode); + ((GridScreen) screen).getGrid().onSearchBoxModeChanged(mode); - ((GuiGrid) screen).getSearchField().setMode(mode); + ((GridScreen) screen).getSearchField().setMode(mode); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/GridTile.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/GridTile.java index 5bf3706df..fb94f58d2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/GridTile.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/GridTile.java @@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.api.network.grid.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.tile.NetworkNodeTile; import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; @@ -39,17 +39,17 @@ public class GridTile extends NetworkNodeTile { t.getNode().setSearchBoxMode(v); t.getNode().markDirty(); } - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, grid -> grid.getSearchField().setMode(p))); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getSearchField().setMode(p))); public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getSize(), (t, v) -> { if (IGrid.isValidSize(v)) { t.getNode().setSize(v); t.getNode().markDirty(); } - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, BaseScreen::init)); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getTabSelected(), (t, v) -> { t.getNode().setTabSelected(v == t.getNode().getTabSelected() ? -1 : v); t.getNode().markDirty(); - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort())); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort())); public static final TileDataParameter TAB_PAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getTabPage(), (t, v) -> { if (v >= 0 && v <= t.getNode().getTotalTabPages()) { t.getNode().setTabPage(v); @@ -59,17 +59,17 @@ public class GridTile extends NetworkNodeTile { public static final TileDataParameter OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isOredictPattern(), (t, v) -> { t.getNode().setOredictPattern(v); t.getNode().markDirty(); - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, grid -> grid.updateOredictPattern(p))); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.updateOredictPattern(p))); public static final TileDataParameter PROCESSING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isProcessingPattern(), (t, v) -> { t.getNode().setProcessingPattern(v); t.getNode().clearMatrix(); t.getNode().markDirty(); - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, BaseScreen::init)); - public static final TileDataParameter PROCESSING_TYPE = IType.createParameter((initial, p) -> BaseScreen.executeLater(GuiGrid.class, BaseScreen::init)); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); + public static final TileDataParameter PROCESSING_TYPE = IType.createParameter((initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); public static void trySortGrid(boolean initial) { if (!initial) { - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java index 38fe02454..5258375a2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java @@ -10,7 +10,7 @@ import com.raoulvdberge.refinedstorage.api.util.IFilter; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheListenerGridFluid; import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.PlayerEntity; @@ -21,6 +21,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandlerModifiable; @@ -138,8 +140,8 @@ public class WirelessFluidGrid implements IGridNetworkAware { } @Override - public String getGuiTitle() { - return "gui.refinedstorage:fluid_grid"; + public ITextComponent getTitle() { + return new TranslationTextComponent("gui.refinedstorage.fluid_grid"); } @Override @@ -193,7 +195,7 @@ public class WirelessFluidGrid implements IGridNetworkAware { this.sortingType = type; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -202,7 +204,7 @@ public class WirelessFluidGrid implements IGridNetworkAware { this.sortingDirection = direction; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -229,7 +231,7 @@ public class WirelessFluidGrid implements IGridNetworkAware { // TODO RS.INSTANCE.network.sendToServer(new MessageWirelessFluidGridSettingsUpdate(getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage())); - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java index 1d1fc7b1e..746b0cfee 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java @@ -10,7 +10,7 @@ import com.raoulvdberge.refinedstorage.api.util.IFilter; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheListenerGridItem; import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; @@ -20,6 +20,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandlerModifiable; @@ -139,8 +141,8 @@ public class WirelessGrid implements IGridNetworkAware { } @Override - public String getGuiTitle() { - return "gui.refinedstorage:grid"; + public ITextComponent getTitle() { + return new TranslationTextComponent("gui.refinedstorage.grid"); } @Override @@ -189,7 +191,7 @@ public class WirelessGrid implements IGridNetworkAware { this.viewType = type; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -198,7 +200,7 @@ public class WirelessGrid implements IGridNetworkAware { this.sortingType = type; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -207,7 +209,7 @@ public class WirelessGrid implements IGridNetworkAware { this.sortingDirection = direction; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -234,7 +236,7 @@ public class WirelessGrid implements IGridNetworkAware { // TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage())); - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java index 0a8389fc0..dcae41c1c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java @@ -25,7 +25,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskItemPorta import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; @@ -33,6 +33,8 @@ import net.minecraft.inventory.CraftResultInventory; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.Constants; import net.minecraftforge.energy.CapabilityEnergy; @@ -243,8 +245,8 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer } @Override - public String getGuiTitle() { - return "gui.refinedstorage:portable_grid"; + public ITextComponent getTitle() { + return new TranslationTextComponent("gui.refinedstorage.portable_grid"); } @Override @@ -298,7 +300,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer this.sortingType = type; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -307,7 +309,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer this.sortingDirection = direction; - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override @@ -334,7 +336,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer // TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage())); - BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort()); + BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 18dd30110..8ae6f98a3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -29,7 +29,7 @@ import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.item.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.listener.ListenerTile; import com.raoulvdberge.refinedstorage.screen.BaseScreen; -import com.raoulvdberge.refinedstorage.screen.grid.GuiGrid; +import com.raoulvdberge.refinedstorage.screen.grid.GridScreen; import com.raoulvdberge.refinedstorage.tile.BaseTile; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; @@ -48,6 +48,8 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.Direction; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants; @@ -85,17 +87,17 @@ public class TilePortableGrid extends BaseTile implements IGrid, IPortableGrid, t.setSearchBoxMode(v); t.markDirty(); } - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, grid -> grid.getSearchField().setMode(p))); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getSearchField().setMode(p))); private static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getSize, (t, v) -> { if (IGrid.isValidSize(v)) { t.setSize(v); t.markDirty(); } - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, BaseScreen::init)); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, BaseScreen::init)); private static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getTabSelected, (t, v) -> { t.setTabSelected(v == t.getTabSelected() ? -1 : v); t.markDirty(); - }, (initial, p) -> BaseScreen.executeLater(GuiGrid.class, grid -> grid.getView().sort())); + }, (initial, p) -> BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort())); private static final TileDataParameter TAB_PAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, TilePortableGrid::getTabPage, (t, v) -> { if (v >= 0 && v <= t.getTotalTabPages()) { t.setTabPage(v); @@ -343,8 +345,8 @@ public class TilePortableGrid extends BaseTile implements IGrid, IPortableGrid, } @Override - public String getGuiTitle() { - return "gui.refinedstorage:portable_grid"; + public ITextComponent getTitle() { + return new TranslationTextComponent("gui.refinedstorage.portable_grid"); } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.json b/src/main/resources/assets/refinedstorage/lang/en_us.json index 6885a03ce..23e8904d7 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.json +++ b/src/main/resources/assets/refinedstorage/lang/en_us.json @@ -9,12 +9,13 @@ "key.refinedstorage.openWirelessCraftingMonitor": "Open Wireless Crafting Monitor", "gui.refinedstorage.controller": "Controller", "gui.refinedstorage.creative_controller": "Creative Controller", - "gui.refinedstorage:grid": "Grid", - "gui.refinedstorage:grid.craft": "Craft", - "gui.refinedstorage:crafting_grid": "Crafting Grid", - "gui.refinedstorage:pattern_grid": "Pattern Grid", - "gui.refinedstorage:grid.pattern_create": "Create", - "gui.refinedstorage:fluid_grid": "Fluid Grid", + "gui.refinedstorage.grid": "Grid", + "gui.refinedstorage.grid.craft": "Craft", + "gui.refinedstorage.crafting_grid": "Crafting Grid", + "gui.refinedstorage.pattern_grid": "Pattern Grid", + "gui.refinedstorage.grid.pattern_create": "Create", + "gui.refinedstorage.fluid_grid": "Fluid Grid", + "gui.refinedstorage.portable_grid": "Portable Grid", "gui.refinedstorage:item_amount": "Item amount", "gui.refinedstorage:fluid_amount": "Fluid amount in mB", "gui.refinedstorage.disk_drive": "Disk Drive", @@ -82,7 +83,6 @@ "gui.refinedstorage.security_manager.permission.5": "Security", "gui.refinedstorage.security_manager.permission.5.tooltip": "Ability to change security options", "gui.refinedstorage:storage_monitor": "Storage Monitor", - "gui.refinedstorage:portable_grid": "Portable Grid", "gui.refinedstorage:crafter_manager": "Crafter Manager", "misc.refinedstorage.energy_stored": "%d / %d FE", "misc.refinedstorage.energy_usage": "Usage: %d FE/t",