From c7329fe829f69f4585837a5f483dab064d57774f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 10 Dec 2019 11:36:39 +0100 Subject: visiting Lucy~ --- src/main/java/kekztech/GuiHandler.java | 22 ++- src/main/java/kekztech/IConduit.java | 8 - .../ItemDistributionNetworkController.java | 193 --------------------- src/main/java/kekztech/Items.java | 4 +- src/main/java/kekztech/KekzCore.java | 32 +++- 5 files changed, 40 insertions(+), 219 deletions(-) delete mode 100644 src/main/java/kekztech/IConduit.java delete mode 100644 src/main/java/kekztech/ItemDistributionNetworkController.java (limited to 'src/main/java/kekztech') 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 { - - private static final HashSet instances = new HashSet<>(); - - private final UUID uuid = UUID.randomUUID(); - private final LinkedList conduits = new LinkedList<>(); - private final boolean[] slotDirections = new boolean[15]; - private final ItemStack[] networkedItemStacks = new ItemStack[15]; - //private final HashMap 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 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 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 -- cgit