aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kekztech
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kekztech')
-rw-r--r--src/main/java/kekztech/GuiHandler.java22
-rw-r--r--src/main/java/kekztech/IConduit.java8
-rw-r--r--src/main/java/kekztech/ItemDistributionNetworkController.java193
-rw-r--r--src/main/java/kekztech/Items.java4
-rw-r--r--src/main/java/kekztech/KekzCore.java32
5 files changed, 40 insertions, 219 deletions
diff --git a/src/main/java/kekztech/GuiHandler.java b/src/main/java/kekztech/GuiHandler.java
index 21ad5c95ae..439baff31f 100644
--- a/src/main/java/kekztech/GuiHandler.java
+++ b/src/main/java/kekztech/GuiHandler.java
@@ -1,21 +1,26 @@
package kekztech;
-import container.Container_ItemDistributionNode;
-import container.Gui_ItemDistributionNode;
+import container.Container_ItemProxyEndpoint;
+import container.Container_ItemProxySource;
+import container.Gui_ItemProxyEndpoint;
+import container.Gui_ItemProxySource;
import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
-import tileentities.TE_ItemDistributionNode;
public class GuiHandler implements IGuiHandler {
-
+
+ public static final int ITEM_PROXY_SOURCE = 0;
+ public static final int ITEM_PROXY_ENDPOINT = 1;
+
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
final TileEntity te = world.getTileEntity(x, y, z);
if(te != null) {
- if(ID == 0) {
- return new Container_ItemDistributionNode((TE_ItemDistributionNode) te, player);
+ switch(ID) {
+ case ITEM_PROXY_SOURCE: return new Container_ItemProxySource(te, player);
+ case ITEM_PROXY_ENDPOINT: return new Container_ItemProxyEndpoint(te, player);
}
}
return null;
@@ -25,8 +30,9 @@ public class GuiHandler implements IGuiHandler {
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
final TileEntity te = world.getTileEntity(x, y, z);
if(te != null) {
- if(ID == 0) {
- return new Gui_ItemDistributionNode((TE_ItemDistributionNode) te, player);
+ switch(ID) {
+ case ITEM_PROXY_SOURCE: return new Gui_ItemProxySource(te, player);
+ case ITEM_PROXY_ENDPOINT: return new Gui_ItemProxyEndpoint(te, player);
}
}
return null;
diff --git a/src/main/java/kekztech/IConduit.java b/src/main/java/kekztech/IConduit.java
deleted file mode 100644
index ce726a2207..0000000000
--- a/src/main/java/kekztech/IConduit.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package kekztech;
-
-public interface IConduit {
-
- public void setNetwork(ItemDistributionNetworkController network);
- public ItemDistributionNetworkController getNetwork();
-
-}
diff --git a/src/main/java/kekztech/ItemDistributionNetworkController.java b/src/main/java/kekztech/ItemDistributionNetworkController.java
deleted file mode 100644
index 11383845b2..0000000000
--- a/src/main/java/kekztech/ItemDistributionNetworkController.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package kekztech;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.UUID;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-
-public class ItemDistributionNetworkController implements Comparable<ItemDistributionNetworkController> {
-
- private static final HashSet<ItemDistributionNetworkController> instances = new HashSet<>();
-
- private final UUID uuid = UUID.randomUUID();
- private final LinkedList<IConduit> conduits = new LinkedList<>();
- private final boolean[] slotDirections = new boolean[15];
- private final ItemStack[] networkedItemStacks = new ItemStack[15];
- //private final HashMap<String, IConduit> sources = new HashMap<>(); // k = resource name, v = source conduit
-
- public ItemDistributionNetworkController() {
-
- }
-
- /**
- * Places a new conduit as it's own network. Merges with adjacent networks automatically.
- *
- * @param conduit
- * The conduit to be placed
- */
- public static void placeConduit(IConduit conduit) {
-
- conduit.setNetwork(new ItemDistributionNetworkController());
- conduit.getNetwork().addConduit(conduit);
- /*
- final TileEntity te = (TileEntity) conduit;
- final int x = te.xCoord;
- final int y = te.yCoord;
- final int z = te.zCoord;
-
- // Search for adjacent Networks on all six sides
- final HashSet<ItemDistributionNetworkController> networks = new HashSet<>();
- final World world = te.getWorldObj();
- final TileEntity te1x = world.getTileEntity(x + 1, y, z);
- final TileEntity te0x = world.getTileEntity(x - 1, y, z);
- final TileEntity te1y = world.getTileEntity(x, y + 1, z);
- final TileEntity te0y = world.getTileEntity(x, y - 1, z);
- final TileEntity te1z = world.getTileEntity(x, y, z + 1);
- final TileEntity te0z = world.getTileEntity(x, y, z - 1);
- if(te1x != null && te1x instanceof IConduit) {
- final IConduit c = (IConduit) te1x;
- networks.add(c.getNetwork());
- }
- if(te0x != null && te0x instanceof IConduit) {
- final IConduit c = (IConduit) te0x;
- networks.add(c.getNetwork());
- }
- if(te1y != null && te1y instanceof IConduit) {
- final IConduit c = (IConduit) te1y;
- networks.add(c.getNetwork());
- }
- if(te0y != null && te0y instanceof IConduit) {
- final IConduit c = (IConduit) te0y;
- networks.add(c.getNetwork());
- }
- if(te1z != null && te1z instanceof IConduit) {
- final IConduit c = (IConduit) te1z;
- networks.add(c.getNetwork());
- }
- if(te0z != null && te0z instanceof IConduit) {
- final IConduit c = (IConduit) te0z;
- networks.add(c.getNetwork());
- }
- // Return prematurely if no adjacent network was found
- if(networks.size() == 0) {
- return;
- }
- // Sort networks by descending size
- final LinkedList<ItemDistributionNetworkController> networkList = new LinkedList<>();
- networkList.addAll(networks);
- Collections.sort(networkList, Collections.reverseOrder());
- // Larger networks consume smaller networks to reduce copying around data
- while(networkList.size() > 1) {
- final ItemDistributionNetworkController l = networkList.get(networkList.size() - 2);
- final ItemDistributionNetworkController r = networkList.getLast();
- l.appendNetwork(r);
- networkList.removeLast();
- }*/
-
- }
-
- /**
- * Deletes this conduit and breaks up adjacent networks into separate networks.
- *
- * @param conduit
- * Conduit to be removed.
- */
- public static void destroyConduit(IConduit conduit) {
-
- }
-
- public void run() {
-
- }
-
- @Override
- public boolean equals(Object o) {
- if(o instanceof ItemDistributionNetworkController) {
- final ItemDistributionNetworkController network = (ItemDistributionNetworkController) o;
- return uuid.equals(network.getUUID());
- } else {
- return false;
- }
- }
-
- @Override
- public int compareTo(ItemDistributionNetworkController o) {
- return (int) Math.signum(o.getSize() - this.getSize());
- }
-
- public UUID getUUID() {
- return uuid;
- }
-
- public int getSize() {
- return conduits.size();
- }
-
- /**
- * Find out if this slot is designated as input and can accept an item into the network.
- *
- * Slots are numbered left to right, then top to bottom and start at zero.
- * For example, the second slot in the second row, would have a slot number of five.
- *
- * @param slot:
- * Slot number.
- * @return whether this slot can accept input or not.
- */
- public boolean isInputSlot(int slot) {
- if(slot >= slotDirections.length) {
- return false;
- }
- return slotDirections[slot];
- }
-
- /**
- * Return the ItemStack that is contained in the given slot number.
- *
- * Slots are numbered left to right, then top to bottom and start at zero.
- * For example, the second slot in the second row, would have a slot number of five.
- *
- * @param slot:
- * Slot number.
- * @return ItemStack at given slot number.
- */
- public ItemStack getStackInSlot(int slot) {
- if(slot >= networkedItemStacks.length) {
- return null;
- }
- return networkedItemStacks[slot];
- }
-
- public void setStackInSlot(int slot, ItemStack itemStack) {
- if(slot < networkedItemStacks.length && isInputSlot(slot)) {
- networkedItemStacks[slot] = itemStack;
- }
- }
-
- /**
- * Register a new conduit to this network.
- *
- * @param conduit
- * New conduit.
- */
- private void addConduit(IConduit conduit) {
- conduits.add(conduit);
- conduit.setNetwork(this);
- }
-
- /**
- * Merge another network with this one if they have been connected by a new conduit.
- *
- * @param network
- * Network to merge with this one.
- */
- private void appendNetwork(ItemDistributionNetworkController network) {
- for(IConduit conduit : network.conduits) {
- this.addConduit(conduit);
- }
- }
-
-}
diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java
index a2870d6e2c..cb79d01947 100644
--- a/src/main/java/kekztech/Items.java
+++ b/src/main/java/kekztech/Items.java
@@ -42,7 +42,9 @@ public enum Items {
YSZCeramicPlate(14,1), GDCCeramicPlate(15,1),
ItemServerBlade(16,1),
// Error Item
- Error(0,1);
+ Error(0,1),
+ // Configurator
+ Configurator(0, 1);
static {
YttriaDust.setOreDictName("dustYttriumOxide");
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index 9d0ae23283..247131c7f7 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -2,6 +2,9 @@ package kekztech;
import blocks.Block_ControlRod;
import blocks.Block_GDCUnit;
+import blocks.Block_ItemProxyCable;
+import blocks.Block_ItemProxyEndpoint;
+import blocks.Block_ItemProxySource;
import blocks.Block_ItemServerDrive;
import blocks.Block_ItemServerIOPort;
import blocks.Block_ItemServerRackCasing;
@@ -14,6 +17,7 @@ import blocks.Block_TFFTStorageFieldBlockT2;
import blocks.Block_TFFTStorageFieldBlockT3;
import blocks.Block_TFFTStorageFieldBlockT4;
import blocks.Block_YSZUnit;
+import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@@ -29,17 +33,21 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import items.ErrorItem;
+import items.Item_Configurator;
import items.MetaItem_CraftingComponent;
import items.MetaItem_ReactorComponent;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidRegistry;
+import render.ConduitRenderer;
import tileentities.GTMTE_FluidMultiStorage;
import tileentities.GTMTE_ItemServer;
import tileentities.GTMTE_ModularNuclearReactor;
import tileentities.GTMTE_SOFuelCellMK1;
import tileentities.GTMTE_SOFuelCellMK2;
-import tileentities.TE_ItemDistributionCable;
-import tileentities.TE_ItemDistributionNode;
+import tileentities.TE_ItemProxyCable;
+import tileentities.TE_ItemProxyEndpoint;
+import tileentities.TE_ItemProxySource;
+import tileentities.TE_ItemServerIOPort;
import tileentities.TE_TFFTMultiHatch;
import util.Util;
@@ -77,6 +85,7 @@ public class KekzCore {
ErrorItem.getInstance().registerItem();
MetaItem_ReactorComponent.getInstance().registerItem();
MetaItem_CraftingComponent.getInstance().registerItem();
+ Item_Configurator.getInstance().registerItem();
Items.registerOreDictNames();
// Blocks
Block_YSZUnit.getInstance().registerBlock();
@@ -93,14 +102,17 @@ public class KekzCore {
Block_ItemServerDrive.getInstance().registerBlock();
Block_ItemServerRackCasing.getInstance().registerBlock();
Block_ItemServerIOPort.getInstance().registerBlock();
- // TODO: Disabled for new release
- //Block_ItemDistributionCable.getInstance().registerBlock();
- //Block_ItemDistributionNode.getInstance().registerBlock();
+ Block_ItemProxyCable.getInstance().registerBlock();
+ Block_ItemProxySource.getInstance().registerBlock();
+ Block_ItemProxyEndpoint.getInstance().registerBlock();
// Register TileEntities
GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile");
- GameRegistry.registerTileEntity(TE_ItemDistributionCable.class, "kekztech_itemdistributioncable_tile");
- GameRegistry.registerTileEntity(TE_ItemDistributionNode.class, "kekztech_itemdistributionnode_tile");
- // Register a GUI?
+ GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile");
+ GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile");
+ GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile");
+ GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile");
+
+ // Register guis
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
}
@@ -111,7 +123,9 @@ public class KekzCore {
sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor");
fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T");
- is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server");
+ is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server");
+ // Register renderer
+ ConduitRenderer.getInstance().registerRenderer();
}
@Mod.EventHandler