GUI Registration

This commit is contained in:
Sebastian Hartte
2020-06-06 21:54:09 +02:00
parent ff042a394b
commit 70418b0bb2
4 changed files with 88 additions and 18 deletions
@@ -54,7 +54,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class GuiCraftingCPU extends AEBaseGui<ContainerCraftingCPU> implements ISortSource public class GuiCraftingCPU<T extends ContainerCraftingCPU> extends AEBaseGui<T> implements ISortSource
{ {
private static final int GUI_HEIGHT = 184; private static final int GUI_HEIGHT = 184;
private static final int GUI_WIDTH = 238; private static final int GUI_WIDTH = 238;
@@ -89,7 +89,7 @@ public class GuiCraftingCPU extends AEBaseGui<ContainerCraftingCPU> implements I
private Button cancel; private Button cancel;
private int tooltip = -1; private int tooltip = -1;
public GuiCraftingCPU(ContainerCraftingCPU container, PlayerInventory playerInventory, ITextComponent title) { public GuiCraftingCPU(T container, PlayerInventory playerInventory, ITextComponent title) {
super(container, playerInventory, title); super(container, playerInventory, title);
this.ySize = GUI_HEIGHT; this.ySize = GUI_HEIGHT;
this.xSize = GUI_WIDTH; this.xSize = GUI_WIDTH;
@@ -35,18 +35,15 @@ import net.minecraft.util.text.ITextComponent;
import java.io.IOException; import java.io.IOException;
public class GuiCraftingStatus extends GuiCraftingCPU public class GuiCraftingStatus extends GuiCraftingCPU<ContainerCraftingStatus>
{ {
private final ContainerCraftingStatus craftingStatus;
private final AESubGui subGui; private final AESubGui subGui;
private Button selectCPU; private Button selectCPU;
public GuiCraftingStatus(ContainerCraftingStatus container, PlayerInventory playerInventory, ITextComponent title) { public GuiCraftingStatus(ContainerCraftingStatus container, PlayerInventory playerInventory, ITextComponent title) {
super(container, playerInventory, title); super(container, playerInventory, title);
this.craftingStatus = container;
this.subGui = new AESubGui(this, container.getTarget()); this.subGui = new AESubGui(this, container.getTarget());
} }
@@ -76,20 +73,20 @@ public class GuiCraftingStatus extends GuiCraftingCPU
{ {
String btnTextText = GuiText.NoCraftingJobs.getLocal(); String btnTextText = GuiText.NoCraftingJobs.getLocal();
if( this.craftingStatus.selectedCpu >= 0 )// && status.selectedCpu < status.cpus.size() ) if( this.container.selectedCpu >= 0 )// && status.selectedCpu < status.cpus.size() )
{ {
if( this.craftingStatus.myName.length() > 0 ) if( this.container.myName.length() > 0 )
{ {
final String name = this.craftingStatus.myName.substring( 0, Math.min( 20, this.craftingStatus.myName.length() ) ); final String name = this.container.myName.substring( 0, Math.min( 20, this.container.myName.length() ) );
btnTextText = GuiText.CPUs.getLocal() + ": " + name; btnTextText = GuiText.CPUs.getLocal() + ": " + name;
} }
else else
{ {
btnTextText = GuiText.CPUs.getLocal() + ": #" + this.craftingStatus.selectedCpu; btnTextText = GuiText.CPUs.getLocal() + ": #" + this.container.selectedCpu;
} }
} }
if( this.craftingStatus.noCPU ) if( this.container.noCPU )
{ {
btnTextText = GuiText.NoCraftingJobs.getLocal(); btnTextText = GuiText.NoCraftingJobs.getLocal();
} }
+73 -1
View File
@@ -30,8 +30,42 @@ import appeng.api.networking.storage.IStorageGrid;
import appeng.api.networking.ticking.ITickManager; import appeng.api.networking.ticking.ITickManager;
import appeng.bootstrap.IModelRegistry; import appeng.bootstrap.IModelRegistry;
import appeng.bootstrap.components.*; import appeng.bootstrap.components.*;
import appeng.client.gui.implementations.GuiCellWorkbench;
import appeng.client.gui.implementations.GuiChest;
import appeng.client.gui.implementations.GuiCondenser;
import appeng.client.gui.implementations.GuiCraftAmount;
import appeng.client.gui.implementations.GuiCraftConfirm;
import appeng.client.gui.implementations.GuiCraftingCPU;
import appeng.client.gui.implementations.GuiCraftingStatus;
import appeng.client.gui.implementations.GuiCraftingTerm;
import appeng.client.gui.implementations.GuiDrive;
import appeng.client.gui.implementations.GuiFormationPlane;
import appeng.client.gui.implementations.GuiGrinder; import appeng.client.gui.implementations.GuiGrinder;
import appeng.client.gui.implementations.GuiGrinder;
import appeng.client.gui.implementations.GuiIOPort;
import appeng.client.gui.implementations.GuiInscriber;
import appeng.client.gui.implementations.GuiInterface;
import appeng.client.gui.implementations.GuiInterfaceTerminal;
import appeng.client.gui.implementations.GuiLevelEmitter;
import appeng.client.gui.implementations.GuiMAC;
import appeng.client.gui.implementations.GuiMEMonitorable;
import appeng.client.gui.implementations.GuiMEPortableCell;
import appeng.client.gui.implementations.GuiNetworkStatus;
import appeng.client.gui.implementations.GuiNetworkTool;
import appeng.client.gui.implementations.GuiPatternTerm;
import appeng.client.gui.implementations.GuiPriority;
import appeng.client.gui.implementations.GuiQNB;
import appeng.client.gui.implementations.GuiQNB;
import appeng.client.gui.implementations.GuiQuartzKnife;
import appeng.client.gui.implementations.GuiSecurityStation;
import appeng.client.gui.implementations.GuiSkyChest; import appeng.client.gui.implementations.GuiSkyChest;
import appeng.client.gui.implementations.GuiSkyChest;
import appeng.client.gui.implementations.GuiSpatialIOPort;
import appeng.client.gui.implementations.GuiStorageBus;
import appeng.client.gui.implementations.GuiUpgradeable;
import appeng.client.gui.implementations.GuiVibrationChamber;
import appeng.client.gui.implementations.GuiWireless;
import appeng.client.gui.implementations.GuiWirelessTerm;
import appeng.client.render.effects.*; import appeng.client.render.effects.*;
import appeng.client.render.model.SkyCompassModel; import appeng.client.render.model.SkyCompassModel;
import appeng.client.render.tesr.SkyChestTESR; import appeng.client.render.tesr.SkyChestTESR;
@@ -43,6 +77,7 @@ import appeng.core.features.registries.cell.BasicItemCellGuiHandler;
import appeng.core.features.registries.cell.CreativeCellHandler; import appeng.core.features.registries.cell.CreativeCellHandler;
import appeng.core.stats.AeStats; import appeng.core.stats.AeStats;
import appeng.core.stats.PartItemPredicate; import appeng.core.stats.PartItemPredicate;
import appeng.fluids.client.gui.*;
import appeng.fluids.container.*; import appeng.fluids.container.*;
import appeng.fluids.registries.BasicFluidCellGuiHandler; import appeng.fluids.registries.BasicFluidCellGuiHandler;
import appeng.me.cache.*; import appeng.me.cache.*;
@@ -491,8 +526,45 @@ final class Registration
); );
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> { DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> {
ScreenManager.registerFactory(ContainerSkyChest.TYPE, GuiSkyChest::new);
ScreenManager.registerFactory(ContainerGrinder.TYPE, GuiGrinder::new); ScreenManager.registerFactory(ContainerGrinder.TYPE, GuiGrinder::new);
ScreenManager.registerFactory(ContainerQNB.TYPE, GuiQNB::new);
ScreenManager.registerFactory(ContainerSkyChest.TYPE, GuiSkyChest::new);
ScreenManager.registerFactory(ContainerChest.TYPE, GuiChest::new);
ScreenManager.registerFactory(ContainerWireless.TYPE, GuiWireless::new);
ScreenManager.<ContainerMEMonitorable, GuiMEMonitorable<ContainerMEMonitorable>>registerFactory(ContainerMEMonitorable.TYPE, GuiMEMonitorable::new);
ScreenManager.registerFactory(ContainerMEPortableCell.TYPE, GuiMEPortableCell::new);
ScreenManager.registerFactory(ContainerWirelessTerm.TYPE, GuiWirelessTerm::new);
ScreenManager.registerFactory(ContainerNetworkStatus.TYPE, GuiNetworkStatus::new);
ScreenManager.<ContainerCraftingCPU,GuiCraftingCPU<ContainerCraftingCPU>>registerFactory(ContainerCraftingCPU.TYPE, GuiCraftingCPU::new);
ScreenManager.registerFactory(ContainerNetworkTool.TYPE, GuiNetworkTool::new);
ScreenManager.registerFactory(ContainerQuartzKnife.TYPE, GuiQuartzKnife::new);
ScreenManager.registerFactory(ContainerDrive.TYPE, GuiDrive::new);
ScreenManager.registerFactory(ContainerVibrationChamber.TYPE, GuiVibrationChamber::new);
ScreenManager.registerFactory(ContainerCondenser.TYPE, GuiCondenser::new);
ScreenManager.registerFactory(ContainerInterface.TYPE, GuiInterface::new);
ScreenManager.registerFactory(ContainerFluidInterface.TYPE, GuiFluidInterface::new);
ScreenManager.<ContainerUpgradeable, GuiUpgradeable<ContainerUpgradeable>>registerFactory(ContainerUpgradeable.TYPE, GuiUpgradeable::new);
ScreenManager.registerFactory(ContainerFluidIO.TYPE, GuiFluidIO::new);
ScreenManager.registerFactory(ContainerIOPort.TYPE, GuiIOPort::new);
ScreenManager.registerFactory(ContainerStorageBus.TYPE, GuiStorageBus::new);
ScreenManager.registerFactory(ContainerFluidStorageBus.TYPE, GuiFluidStorageBus::new);
ScreenManager.registerFactory(ContainerFormationPlane.TYPE, GuiFormationPlane::new);
ScreenManager.registerFactory(ContainerFluidFormationPlane.TYPE, GuiFluidFormationPlane::new);
ScreenManager.registerFactory(ContainerPriority.TYPE, GuiPriority::new);
ScreenManager.registerFactory(ContainerSecurityStation.TYPE, GuiSecurityStation::new);
ScreenManager.registerFactory(ContainerCraftingTerm.TYPE, GuiCraftingTerm::new);
ScreenManager.registerFactory(ContainerPatternTerm.TYPE, GuiPatternTerm::new);
ScreenManager.registerFactory(ContainerFluidTerminal.TYPE, GuiFluidTerminal::new);
ScreenManager.registerFactory(ContainerLevelEmitter.TYPE, GuiLevelEmitter::new);
ScreenManager.registerFactory(ContainerFluidLevelEmitter.TYPE, GuiFluidLevelEmitter::new);
ScreenManager.registerFactory(ContainerSpatialIOPort.TYPE, GuiSpatialIOPort::new);
ScreenManager.registerFactory(ContainerInscriber.TYPE, GuiInscriber::new);
ScreenManager.registerFactory(ContainerCellWorkbench.TYPE, GuiCellWorkbench::new);
ScreenManager.registerFactory(ContainerMAC.TYPE, GuiMAC::new);
ScreenManager.registerFactory(ContainerCraftAmount.TYPE, GuiCraftAmount::new);
ScreenManager.registerFactory(ContainerCraftConfirm.TYPE, GuiCraftConfirm::new);
ScreenManager.registerFactory(ContainerInterfaceTerminal.TYPE, GuiInterfaceTerminal::new);
ScreenManager.registerFactory(ContainerCraftingStatus.TYPE, GuiCraftingStatus::new);
}); });
} }
@@ -26,6 +26,7 @@ import javax.annotation.Nonnull;
import appeng.api.config.*; import appeng.api.config.*;
import appeng.container.ContainerLocator; import appeng.container.ContainerLocator;
import appeng.container.helper.PartContainerHelper; import appeng.container.helper.PartContainerHelper;
import appeng.container.helper.PartOrTileContainerHelper;
import appeng.fluids.parts.PartFluidFormationPlane; import appeng.fluids.parts.PartFluidFormationPlane;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
@@ -81,12 +82,12 @@ import appeng.util.Platform;
public class ContainerFluidTerminal extends AEBaseContainer implements IConfigManagerHost, IConfigurableObject, IMEMonitorHandlerReceiver<IAEFluidStack> public class ContainerFluidTerminal extends AEBaseContainer implements IConfigManagerHost, IConfigurableObject, IMEMonitorHandlerReceiver<IAEFluidStack>
{ {
public static ContainerType<ContainerFluidFormationPlane> TYPE; public static ContainerType<ContainerFluidTerminal> TYPE;
private static final PartContainerHelper<ContainerFluidFormationPlane, PartFluidFormationPlane> helper private static final PartOrTileContainerHelper<ContainerFluidTerminal, ITerminalHost> helper
= new PartContainerHelper<>(ContainerFluidFormationPlane::new, PartFluidFormationPlane.class, SecurityPermissions.BUILD); = new PartOrTileContainerHelper<>(ContainerFluidTerminal::new, ITerminalHost.class, SecurityPermissions.BUILD);
public static ContainerFluidFormationPlane fromNetwork(int windowId, PlayerInventory inv, PacketBuffer buf) { public static ContainerFluidTerminal fromNetwork(int windowId, PlayerInventory inv, PacketBuffer buf) {
return helper.fromNetwork(windowId, inv, buf); return helper.fromNetwork(windowId, inv, buf);
} }
@@ -106,8 +107,8 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa
// Holds the fluid the client wishes to extract, or null for insert // Holds the fluid the client wishes to extract, or null for insert
private IAEFluidStack clientRequestedTargetFluid = null; private IAEFluidStack clientRequestedTargetFluid = null;
public ContainerFluidTerminal(ContainerType<?> containerType, int id, PlayerInventory ip, ITerminalHost terminal) { public ContainerFluidTerminal(int id, PlayerInventory ip, ITerminalHost terminal) {
super(containerType, id, ip, terminal); super(TYPE, id, ip, terminal);
this.terminal = terminal; this.terminal = terminal;
this.clientCM = new ConfigManager( this ); this.clientCM = new ConfigManager( this );