diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 4891b583..7ad04e0a 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -111,6 +111,7 @@ public class Constants public static final int TELEPOSER_GUI = 0; public static final int SOUL_FORGE_GUI = 1; public static final int ROUTING_NODE_GUI = 2; + public static final int MASTER_ROUTING_NODE_GUI = 3; } public static class Compat diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java index e0b42dd7..3d707444 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockMasterRoutingNode.java @@ -2,7 +2,11 @@ package WayofTime.bloodmagic.block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; @@ -32,4 +36,15 @@ public class BlockMasterRoutingNode extends BlockContainer { return new TileMasterRoutingNode(); } + + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ) + { + if (world.getTileEntity(pos) instanceof TileMasterRoutingNode) + { + player.openGui(BloodMagic.instance, Constants.Gui.MASTER_ROUTING_NODE_GUI, world, pos.getX(), pos.getY(), pos.getZ()); + } + + return true; + } } diff --git a/src/main/java/WayofTime/bloodmagic/client/gui/GuiHandler.java b/src/main/java/WayofTime/bloodmagic/client/gui/GuiHandler.java index 4e94fb9d..783a6f44 100644 --- a/src/main/java/WayofTime/bloodmagic/client/gui/GuiHandler.java +++ b/src/main/java/WayofTime/bloodmagic/client/gui/GuiHandler.java @@ -9,9 +9,11 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.tile.TileSoulForge; import WayofTime.bloodmagic.tile.TileTeleposer; import WayofTime.bloodmagic.tile.container.ContainerItemRoutingNode; +import WayofTime.bloodmagic.tile.container.ContainerMasterRoutingNode; import WayofTime.bloodmagic.tile.container.ContainerSoulForge; import WayofTime.bloodmagic.tile.container.ContainerTeleposer; import WayofTime.bloodmagic.tile.routing.TileFilteredRoutingNode; +import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode; public class GuiHandler implements IGuiHandler { @@ -28,6 +30,8 @@ public class GuiHandler implements IGuiHandler return new ContainerSoulForge(player.inventory, (TileSoulForge) world.getTileEntity(pos)); case Constants.Gui.ROUTING_NODE_GUI: return new ContainerItemRoutingNode(player.inventory, (TileFilteredRoutingNode) world.getTileEntity(pos)); + case Constants.Gui.MASTER_ROUTING_NODE_GUI: + return new ContainerMasterRoutingNode(player.inventory, (TileMasterRoutingNode) world.getTileEntity(pos)); } return null; @@ -48,6 +52,8 @@ public class GuiHandler implements IGuiHandler return new GuiSoulForge(player.inventory, (TileSoulForge) world.getTileEntity(pos)); case Constants.Gui.ROUTING_NODE_GUI: return new GuiItemRoutingNode(player.inventory, (TileFilteredRoutingNode) world.getTileEntity(pos)); + case Constants.Gui.MASTER_ROUTING_NODE_GUI: + return new GuiMasterRoutingNode(player.inventory, (TileMasterRoutingNode) world.getTileEntity(pos)); } } diff --git a/src/main/java/WayofTime/bloodmagic/client/gui/GuiMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/client/gui/GuiMasterRoutingNode.java new file mode 100644 index 00000000..168aa879 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/client/gui/GuiMasterRoutingNode.java @@ -0,0 +1,44 @@ +package WayofTime.bloodmagic.client.gui; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.tile.container.ContainerMasterRoutingNode; + +@SideOnly(Side.CLIENT) +public class GuiMasterRoutingNode extends GuiContainer +{ + private TileEntity inventory; + + public GuiMasterRoutingNode(InventoryPlayer playerInventory, IInventory tileRoutingNode) + { + super(new ContainerMasterRoutingNode(playerInventory, tileRoutingNode)); + this.xSize = 216; + this.ySize = 216; + inventory = (TileEntity) tileRoutingNode; + } + + @Override + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) + { +// this.fontRendererObj.drawString(TextHelper.localize("tile.BloodMagic.soulForge.name"), 8, 5, 4210752); +// this.fontRendererObj.drawString(TextHelper.localize("container.inventory"), 8, 111, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) + { + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + ResourceLocation soulForgeGuiTextures = new ResourceLocation(Constants.Mod.MODID + ":textures/gui/masterRoutingNode.png"); + this.mc.getTextureManager().bindTexture(soulForgeGuiTextures); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerMasterRoutingNode.java new file mode 100644 index 00000000..77121ecf --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerMasterRoutingNode.java @@ -0,0 +1,23 @@ +package WayofTime.bloodmagic.tile.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; + +public class ContainerMasterRoutingNode extends Container +{ + private final IInventory tileMasterRoutingNode; + + public ContainerMasterRoutingNode(InventoryPlayer inventoryPlayer, IInventory tileMasterRoutingNode) + { + this.tileMasterRoutingNode = tileMasterRoutingNode; + + } + + @Override + public boolean canInteractWith(EntityPlayer playerIn) + { + return this.tileMasterRoutingNode.isUseableByPlayer(playerIn); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java index e52705e3..c6e498ab 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java @@ -20,9 +20,16 @@ import WayofTime.bloodmagic.routing.IMasterRoutingNode; import WayofTime.bloodmagic.routing.IOutputItemRoutingNode; import WayofTime.bloodmagic.routing.IRoutingNode; import WayofTime.bloodmagic.routing.NodeHelper; +import WayofTime.bloodmagic.tile.TileInventory; -public class TileMasterRoutingNode extends TileEntity implements IMasterRoutingNode, ITickable +public class TileMasterRoutingNode extends TileInventory implements IMasterRoutingNode, ITickable { + public TileMasterRoutingNode() + { + super(0, "masterRoutingNode"); + // TODO Auto-generated constructor stub + } + // A list of connections private HashMap> connectionMap = new HashMap>(); private List generalNodeList = new LinkedList(); diff --git a/src/main/resources/assets/bloodmagic/textures/gui/masterRoutingNode.png b/src/main/resources/assets/bloodmagic/textures/gui/masterRoutingNode.png new file mode 100644 index 00000000..4039c1c4 Binary files /dev/null and b/src/main/resources/assets/bloodmagic/textures/gui/masterRoutingNode.png differ