diff --git a/src/main/java/appeng/client/gui/implementations/GuiPriority.java b/src/main/java/appeng/client/gui/implementations/GuiPriority.java index 212904150..801069240 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiPriority.java +++ b/src/main/java/appeng/client/gui/implementations/GuiPriority.java @@ -25,14 +25,9 @@ import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import appeng.api.AEApi; -import appeng.api.definitions.IBlocks; -import appeng.api.definitions.IDefinitions; -import appeng.api.definitions.IParts; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiNumberBox; import appeng.client.gui.widgets.GuiTabButton; -import appeng.container.AEBaseContainer; import appeng.container.implementations.ContainerPriority; import appeng.core.AEConfig; import appeng.core.AELog; @@ -42,12 +37,6 @@ import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketSwitchGuis; import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.IPriorityHost; -import appeng.parts.automation.PartFormationPlane; -import appeng.parts.misc.PartInterface; -import appeng.parts.misc.PartStorageBus; -import appeng.tile.misc.TileInterface; -import appeng.tile.storage.TileChest; -import appeng.tile.storage.TileDrive; public class GuiPriority extends AEBaseGui @@ -92,49 +81,11 @@ public class GuiPriority extends AEBaseGui this.buttonList.add( this.minus100 = new GuiButton( 0, this.guiLeft + 82, this.guiTop + 69, 32, 20, "-" + c ) ); this.buttonList.add( this.minus1000 = new GuiButton( 0, this.guiLeft + 120, this.guiTop + 69, 38, 20, "-" + d ) ); - ItemStack myIcon = null; - final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget(); - final IDefinitions definitions = AEApi.instance().definitions(); - final IParts parts = definitions.parts(); - final IBlocks blocks = definitions.blocks(); + final ContainerPriority con = ( (ContainerPriority) this.inventorySlots ); + final ItemStack myIcon = con.getPriorityHost().getItemStackRepresentation(); + this.OriginalGui = con.getPriorityHost().getGuiBridge(); - if( target instanceof PartStorageBus ) - { - myIcon = parts.storageBus().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_STORAGEBUS; - } - - if( target instanceof PartFormationPlane ) - { - myIcon = parts.formationPlane().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_FORMATION_PLANE; - } - - if( target instanceof TileDrive ) - { - myIcon = blocks.drive().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_DRIVE; - } - - if( target instanceof TileChest ) - { - myIcon = blocks.chest().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_CHEST; - } - - if( target instanceof TileInterface ) - { - myIcon = blocks.iface().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_INTERFACE; - } - - if( target instanceof PartInterface ) - { - myIcon = parts.iface().maybeStack( 1 ).orElse( myIcon ); - this.OriginalGui = GuiBridge.GUI_INTERFACE; - } - - if( this.OriginalGui != null && myIcon != null ) + if( this.OriginalGui != null && !myIcon.isEmpty() ) { this.buttonList.add( this.originalGuiBtn = new GuiTabButton( this.guiLeft + 154, this.guiTop, myIcon, myIcon.getDisplayName(), this.itemRender ) ); } diff --git a/src/main/java/appeng/container/implementations/ContainerPriority.java b/src/main/java/appeng/container/implementations/ContainerPriority.java index 782edbe6c..61ce9595f 100644 --- a/src/main/java/appeng/container/implementations/ContainerPriority.java +++ b/src/main/java/appeng/container/implementations/ContainerPriority.java @@ -88,4 +88,9 @@ public class ContainerPriority extends AEBaseContainer super.onUpdate( field, oldValue, newValue ); } + + public IPriorityHost getPriorityHost() + { + return this.priHost; + } } diff --git a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java index a26892f71..6999251c7 100644 --- a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java +++ b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java @@ -61,7 +61,6 @@ import appeng.core.settings.TickRates; import appeng.fluids.util.AEFluidInventory; import appeng.fluids.util.IAEFluidInventory; import appeng.fluids.util.IAEFluidTank; -import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; import appeng.me.helpers.AENetworkProxy; import appeng.me.helpers.MachineSource; @@ -73,7 +72,7 @@ import appeng.util.IConfigManagerHost; import appeng.util.Platform; -public class DualityFluidInterface implements IGridTickable, IStorageMonitorable, IAEFluidInventory, IPriorityHost, IUpgradeableHost, IConfigManagerHost +public class DualityFluidInterface implements IGridTickable, IStorageMonitorable, IAEFluidInventory, IUpgradeableHost, IConfigManagerHost { public static final int NUMBER_OF_TANKS = 6; public static final int TANK_CAPACITY = Fluid.BUCKET_VOLUME * 4; @@ -472,13 +471,11 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable } } - @Override public int getPriority() { return this.priority; } - @Override public void setPriority( final int newValue ) { this.priority = newValue; diff --git a/src/main/java/appeng/fluids/parts/PartFluidInterface.java b/src/main/java/appeng/fluids/parts/PartFluidInterface.java index 36a63c0fd..34f44993b 100644 --- a/src/main/java/appeng/fluids/parts/PartFluidInterface.java +++ b/src/main/java/appeng/fluids/parts/PartFluidInterface.java @@ -32,6 +32,7 @@ import net.minecraft.util.math.Vec3d; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; +import appeng.api.AEApi; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkChannelsChanged; @@ -236,4 +237,16 @@ public class PartFluidInterface extends PartBasicState implements IGridTickable, { return this.duality.getInventoryByName( name ); } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().parts().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_FLUID_INTERFACE; + } } diff --git a/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java b/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java index afb2fdc7f..4c7d1ef50 100644 --- a/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java +++ b/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java @@ -491,4 +491,16 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni return MODELS_OFF; } } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().parts().fluidStorageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_STORAGEBUS_FLUID; + } } diff --git a/src/main/java/appeng/fluids/tile/TileFluidInterface.java b/src/main/java/appeng/fluids/tile/TileFluidInterface.java index a954dfc51..d2b8d8ab4 100644 --- a/src/main/java/appeng/fluids/tile/TileFluidInterface.java +++ b/src/main/java/appeng/fluids/tile/TileFluidInterface.java @@ -23,12 +23,14 @@ import java.util.EnumSet; import javax.annotation.Nullable; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; +import appeng.api.AEApi; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkChannelsChanged; @@ -41,6 +43,7 @@ import appeng.api.util.AECableType; import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; +import appeng.core.sync.GuiBridge; import appeng.fluids.helper.DualityFluidInterface; import appeng.fluids.helper.IFluidInterfaceHost; import appeng.helpers.IPriorityHost; @@ -172,4 +175,16 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable, { return this.duality.getInventoryByName( name ); } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().blocks().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_FLUID_INTERFACE; + } } diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 52b4bb5d7..09def5981 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -110,7 +110,7 @@ import appeng.util.inv.InvOperation; import appeng.util.item.AEItemStack; -public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost, IPriorityHost +public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost { public static final int NUMBER_OF_STORAGE_SLOTS = 9; @@ -1243,13 +1243,11 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn this.updateCraftingList(); } - @Override public int getPriority() { return this.priority; } - @Override public void setPriority( final int newValue ) { this.priority = newValue; diff --git a/src/main/java/appeng/helpers/IPriorityHost.java b/src/main/java/appeng/helpers/IPriorityHost.java index 083fd8ca4..cdff4d6ac 100644 --- a/src/main/java/appeng/helpers/IPriorityHost.java +++ b/src/main/java/appeng/helpers/IPriorityHost.java @@ -18,6 +18,9 @@ package appeng.helpers; +import net.minecraft.item.ItemStack; + +import appeng.core.sync.GuiBridge; public interface IPriorityHost { @@ -31,4 +34,8 @@ public interface IPriorityHost * set new priority */ void setPriority( int newValue ); + + ItemStack getItemStackRepresentation(); + + GuiBridge getGuiBridge(); } diff --git a/src/main/java/appeng/parts/automation/PartFormationPlane.java b/src/main/java/appeng/parts/automation/PartFormationPlane.java index 8454c406a..1a3d02e68 100644 --- a/src/main/java/appeng/parts/automation/PartFormationPlane.java +++ b/src/main/java/appeng/parts/automation/PartFormationPlane.java @@ -613,4 +613,15 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine return MODELS.getModel( this.getConnections(), this.isPowered(), this.isActive() ); } + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().parts().formationPlane().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_FORMATION_PLANE; + } } diff --git a/src/main/java/appeng/parts/misc/PartInterface.java b/src/main/java/appeng/parts/misc/PartInterface.java index 9d3177b95..42fe733a7 100644 --- a/src/main/java/appeng/parts/misc/PartInterface.java +++ b/src/main/java/appeng/parts/misc/PartInterface.java @@ -36,6 +36,7 @@ import net.minecraft.util.math.Vec3d; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; +import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; @@ -310,4 +311,16 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto { return this.duality.getCapability( capabilityClass, this.getSide().getFacing() ); } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().parts().iface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_INTERFACE; + } } diff --git a/src/main/java/appeng/parts/misc/PartStorageBus.java b/src/main/java/appeng/parts/misc/PartStorageBus.java index 7992af4dc..93b1406ac 100644 --- a/src/main/java/appeng/parts/misc/PartStorageBus.java +++ b/src/main/java/appeng/parts/misc/PartStorageBus.java @@ -625,4 +625,16 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC return MODELS_OFF; } } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().parts().storageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_STORAGEBUS; + } } diff --git a/src/main/java/appeng/tile/misc/TileInterface.java b/src/main/java/appeng/tile/misc/TileInterface.java index 25de6a29a..ea7e95616 100644 --- a/src/main/java/appeng/tile/misc/TileInterface.java +++ b/src/main/java/appeng/tile/misc/TileInterface.java @@ -39,6 +39,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; +import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.networking.IGridNode; @@ -56,6 +57,7 @@ import appeng.api.util.AECableType; import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; +import appeng.core.sync.GuiBridge; import appeng.helpers.DualityInterface; import appeng.helpers.IInterfaceHost; import appeng.helpers.IPriorityHost; @@ -358,4 +360,16 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, II } return super.getCapability( capability, facing ); } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().blocks().iface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_INTERFACE; + } } diff --git a/src/main/java/appeng/tile/storage/TileChest.java b/src/main/java/appeng/tile/storage/TileChest.java index b2f68fc54..b8f60092c 100644 --- a/src/main/java/appeng/tile/storage/TileChest.java +++ b/src/main/java/appeng/tile/storage/TileChest.java @@ -85,6 +85,7 @@ import appeng.api.storage.data.IAEStack; import appeng.api.util.AEColor; import appeng.api.util.IConfigManager; import appeng.capabilities.Capabilities; +import appeng.core.sync.GuiBridge; import appeng.fluids.util.AEFluidStack; import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; @@ -1074,4 +1075,24 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal } + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().blocks().chest().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + if( this.itemCell != null ) + { + return GuiBridge.GUI_ME; + } + else if( this.fluidCell != null ) + { + return GuiBridge.GUI_FLUID_TERMINAL; + } + return null; + } + } diff --git a/src/main/java/appeng/tile/storage/TileDrive.java b/src/main/java/appeng/tile/storage/TileDrive.java index 0fb787997..e312dc2b7 100644 --- a/src/main/java/appeng/tile/storage/TileDrive.java +++ b/src/main/java/appeng/tile/storage/TileDrive.java @@ -51,6 +51,7 @@ import appeng.api.storage.data.IAEStack; import appeng.api.util.AECableType; import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; +import appeng.core.sync.GuiBridge; import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; import appeng.me.helpers.MachineSource; @@ -404,4 +405,16 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior } } + + @Override + public ItemStack getItemStackRepresentation() + { + return AEApi.instance().definitions().blocks().drive().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + } + + @Override + public GuiBridge getGuiBridge() + { + return GuiBridge.GUI_DRIVE; + } }