summaryrefslogtreecommitdiff
path: root/ihl/datanet
diff options
context:
space:
mode:
Diffstat (limited to 'ihl/datanet')
-rw-r--r--ihl/datanet/Contact.java254
-rw-r--r--ihl/datanet/DataCableItem.java177
-rw-r--r--ihl/datanet/DataGrid.java60
-rw-r--r--ihl/datanet/DataNet.java127
-rw-r--r--ihl/datanet/GuiInvisibleButton.java22
-rw-r--r--ihl/datanet/RedstoneSignalConverterContainer.java100
-rw-r--r--ihl/datanet/RedstoneSignalConverterGui.java139
-rw-r--r--ihl/datanet/RedstoneSignalConverterTileEntity.java508
8 files changed, 0 insertions, 1387 deletions
diff --git a/ihl/datanet/Contact.java b/ihl/datanet/Contact.java
deleted file mode 100644
index 5dce365..0000000
--- a/ihl/datanet/Contact.java
+++ /dev/null
@@ -1,254 +0,0 @@
-package ihl.datanet;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-import ic2.core.Ic2Items;
-import ihl.IHLMod;
-import ihl.interfaces.IDataCableHolder;
-import ihl.interfaces.IDataNode;
-import ihl.processing.invslots.InvSlotSignalProcessor;
-import ihl.utils.IHLUtils;
-
-public class Contact implements IDataNode
-{
- public final int innerId;
- private int dataGridID=-1;
- private Set<IDataNode> connectedContacts = new HashSet<IDataNode>(8);
- public final InvSlotSignalProcessor attachedSlot;
- public final int attachedSlotNumber;
- public final int type; //Free:-1; A1:0; A2:1; C:2; NO:3; NC:4;
- private final TileEntity base;
-
- public Contact(TileEntity base1, int innerId1,InvSlotSignalProcessor attachedSlot1,int attachedSlotNumber1, int type1)
- {
- type=type1;
- base=base1;
- innerId=innerId1;
- attachedSlot=attachedSlot1;
- attachedSlotNumber=attachedSlotNumber1;
- }
-
- public void onLoad()
- {
- if(dataGridID!=-1)
- {
- DataGrid grid = IHLMod.datanet.getGrid(dataGridID);
- grid.telist.add(this);
- }
- }
-
- @Override
- public int getDataGridID() {
- return dataGridID;
- }
-
- @Override
- public void setDataGrid(int newGridID)
- {
- dataGridID=newGridID;
- onLoad();
- }
-
- @Override
- public Set<IDataNode> getConnectedDataNodes() {
- return this.connectedContacts;
- }
-
- public void removeLinkTo(Contact contact2)
- {
- this.connectedContacts.remove(contact2);
- contact2.getConnectedDataNodes().remove(this);
- if(dataGridID!=-1)
- {
- IHLMod.datanet.splitGrids(dataGridID);
- }
- if(dataGridID!=-1)
- {
- for(IDataNode contact3:IHLMod.datanet.getGrid(dataGridID).telist)
- {
- contact3.checkAttachedSlots();
- }
- }
- else
- {
- this.checkAttachedSlots();
- }
- if(contact2.getDataGridID()!=-1)
- {
- for(IDataNode contact3:IHLMod.datanet.getGrid(contact2.getDataGridID()).telist)
- {
- contact3.checkAttachedSlots();
- }
- }
- else
- {
- contact2.checkAttachedSlots();
- }
-
- }
-
- public void removeConnections(Contact[] contacts)
- {
- if(this.dataGridID!=-1)
- {
- this.connectedContacts.removeAll(Arrays.asList(contacts));
- IHLMod.datanet.splitGrids(dataGridID);
- }
- }
-
- public void establishLink(Contact contact)
- {
- this.connectedContacts.add(contact);
- contact.getConnectedDataNodes().add(this);
- if(dataGridID!=contact.getDataGridID() || dataGridID==-1 || contact.getDataGridID()==-1)
- {
- int newDataGridID = IHLMod.datanet.mergeGrids(dataGridID,contact.getDataGridID());
- if(this.dataGridID==-1)
- {
- this.setDataGrid(newDataGridID);
- }
- if(contact.getDataGridID()==-1)
- {
- contact.setDataGrid(newDataGridID);
- }
- for(IDataNode contact2:IHLMod.datanet.getGrid(newDataGridID).telist)
- {
- contact2.checkAttachedSlots();
- }
- }
- }
-
- public void writeToNBT(NBTTagCompound nbt)
- {
- nbt.setInteger("dataGridID", dataGridID);
- NBTTagList connections = new NBTTagList();
- for(IDataNode contact1:this.connectedContacts)
- {
- NBTTagCompound contactNBT = new NBTTagCompound();
- contactNBT.setInteger("x", contact1.getXPos());
- contactNBT.setInteger("y", contact1.getYPos());
- contactNBT.setInteger("z", contact1.getZPos());
- contactNBT.setInteger("innerId", contact1.getInnerId());
- connections.appendTag(contactNBT);
- }
- nbt.setTag("connections"+innerId, connections);
- }
-
- public void readFromNBT(NBTTagCompound nbt)
- {
- this.setDataGrid(nbt.getInteger("dataGridID"));
- NBTTagList connections = nbt.getTagList("connections"+innerId, 10);
- for(int i=0;i<connections.tagCount();i++)
- {
- NBTTagCompound contactNBT = connections.getCompoundTagAt(i);
- int innerId1 = contactNBT.getInteger("innerId");
- int x = contactNBT.getInteger("x");
- int y = contactNBT.getInteger("y");
- int z = contactNBT.getInteger("z");
- World world = this.base.getWorldObj();
- TileEntity te = world.getTileEntity(x, y, z);
- if(te!=null && te instanceof IDataCableHolder)
- {
- IDataCableHolder idch = (IDataCableHolder)te;
- Contact contact1 = idch.getContact(innerId1);
- this.establishLink(contact1);
- }
- else
- {
- IHLMod.log.error("Can't load contacts, because IDataCableHolder is null.");
- }
- }
- }
-
- @Override
- public int getXPos() {
- return base.xCoord;
- }
-
- @Override
- public int getYPos() {
- return base.yCoord;
- }
-
- @Override
- public int getZPos() {
- return base.zCoord;
- }
-
- @Override
- public int getInnerId() {
- return innerId;
- }
-
- public boolean isConnectedToContact(int id)
- {
- if(dataGridID!=-1)
- {
- return IHLMod.datanet.getGrid(getDataGridID()).isConnectedToContact(this,id);
- }
- else
- {
- return false;
- }
- }
-
- @Override
- public boolean isIndirectlyConnectedWithContact(int id) {
- if(this.attachedSlot!=null)
- {
- return this.attachedSlot.isIndirectlyConnectedWithContact(this,id);
- }
- return false;
- }
-
- @Override
- public void checkAttachedSlots()
- {
- if(this.attachedSlot!=null)
- {
- ItemStack is = this.attachedSlot.get(this.attachedSlotNumber);
- if(is!=null && IHLUtils.isItemStacksIsEqual(is, Ic2Items.detectorCableItem, true))
- {
- if((this.isConnectedToContact(0) && this.attachedSlot.getOppositeContact(this).isConnectedToContact(1))||
- (this.isConnectedToContact(1) && this.attachedSlot.getOppositeContact(this).isConnectedToContact(0)))
- {
- this.attachedSlot.slotStatus[this.attachedSlotNumber]=true;
- }
- else
- {
- this.attachedSlot.slotStatus[this.attachedSlotNumber]=false;
- }
- }
- else
- {
- this.attachedSlot.slotStatus[this.attachedSlotNumber]=false;
- }
- this.attachedSlot.notifyNeighbors();
- }
- }
-
- @Override
- public InvSlotSignalProcessor getAttachedSlot() {
- return this.attachedSlot;
- }
-
- @Override
- public int getAttachedSlotNumber()
- {
- return this.attachedSlotNumber;
- }
-
- @Override
- public int getType()
- {
- return this.type;
- }
-
-}
diff --git a/ihl/datanet/DataCableItem.java b/ihl/datanet/DataCableItem.java
deleted file mode 100644
index c8349ca..0000000
--- a/ihl/datanet/DataCableItem.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package ihl.datanet;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.World;
-import ihl.IHLModInfo;
-import ihl.flexible_cable.NodeEntity;
-import ihl.interfaces.IDataCableHolder;
-import ihl.items_blocks.FlexibleCableItem;
-import ihl.utils.IHLUtils;
-
-public class DataCableItem extends FlexibleCableItem {
-
- private static Map<Integer, IIcon> iconMap = new HashMap<Integer, IIcon>();
- private static Map<Integer, String> nameMap = new HashMap<Integer, String>();
- private static Map<Integer, String> descriptionMap = new HashMap<Integer, String>();
- public static DataCableItem dataCableInstance;
-
- public DataCableItem()
- {
- super();
- this.isDataCable=true;
- this.setUnlocalizedName("dataCable");
- dataCableInstance=this;
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- @Override
- @SideOnly(Side.CLIENT)
- public void getSubItems(Item item, CreativeTabs tabs, List itemList)
- {
- Type[] var1 = Type.values();
- for(int i=0;i<var1.length;i++)
- {
- ItemStack stack = IHLUtils.getThisModWireItemStackWithLength(var1[i].unlocalizedName,16);
- itemList.add(stack);
- }
- }
-
- public static void init()
- {
- DataCableItem item = new DataCableItem();
- GameRegistry.registerItem(item,item.getUnlocalizedName());
- Type[] var1 = Type.values();
- for(int i=0;i<var1.length;i++)
- {
- nameMap.put(var1[i].damage,var1[i].unlocalizedName);
- IHLUtils.registerLocally(var1[i].unlocalizedName, new ItemStack(item,1,var1[i].damage));
- if(var1[i].description!=null)
- {
- descriptionMap.put(var1[i].damage,var1[i].description);
- }
- }
-
- }
-
- @Override
- protected void connect(TileEntity t1, short facing, TileEntity t2, short facing2, ItemStack stack)
- {
- IDataCableHolder te = (IDataCableHolder)t1;
- IDataCableHolder te1 = (IDataCableHolder)t2;
- NBTTagCompound cable = (NBTTagCompound) stack.stackTagCompound.copy();
- int l2=stack.stackTagCompound.getInteger("length");
- int fl=stack.stackTagCompound.getInteger("fullLength");
- cable.setInteger("fullLength", fl-l2);
- cable.setInteger("length", fl-l2);
- cable.setBoolean("firstConnection", false);
- cable.setInteger("connectorX1", t1.xCoord);
- cable.setInteger("connectorY1", t1.yCoord);
- cable.setInteger("connectorZ1", t1.zCoord);
- cable.setInteger("connectorDimensionId1", t1.getWorldObj().provider.dimensionId);
- if(te.addDataCable(cable) && te1.addDataCable(cable))
- {
- Contact[] c = te.getContacts(stack.stackTagCompound.getInteger("chainUID"));
- Contact[] c1 = te1.getContacts(stack.stackTagCompound.getInteger("chainUID"));
- for(int i=0;i<c.length;i++)
- {
- c[i].establishLink(c1[i]);
- }
- }
- }
-
- @Override
- protected NodeEntity newNode(World world, double ppx, double ppy, double ppz, ItemStack stack, int can, int x, int y, int z)
- {
- NodeEntity node = new NodeEntity(world);
- node.setPosition(ppx, ppy, ppz);
- node.setChainUniqueID(stack.stackTagCompound.getInteger("chainUID"));
- short facing = stack.stackTagCompound.getShort("connectorFacing");
- int dimensionId = stack.stackTagCompound.getInteger("connectorDimensionId");
- node.setAnchor(x, y, z,facing,dimensionId);
- node.chainArrangeNumber=can;
- node.colorIndex = 0xFF0000;
- node.type=3;
- world.spawnEntityInWorld(node);
- return node;
- }
-
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean flag)
- {
- if(itemStack.stackTagCompound!=null)
- {
- info.add("Length " + itemStack.stackTagCompound.getInteger("length") +"m");
- }
- }
-
- @Override
- public String getTag()
- {
- return "length";
- }
-
- @Override
- public String getTagSecondary()
- {
- return "fullLength";
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister register)
- {
- Type[] var1 = Type.values();
- for(int i=0;i<var1.length;i++)
- {
- iconMap.put(var1[i].damage, register.registerIcon(IHLModInfo.MODID + ":"+var1[i].unlocalizedName));
- }
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public IIcon getIconFromDamage(int i)
- {
- return iconMap.get(i);
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack)
- {
- return nameMap.get(stack.getItemDamage());
- }
-
- public enum Type
- {
- Pin8DataCable(0,"EightPinDataCable");
- Type(int damage1, String unlocalizedName1)
- {
- damage=damage1;
- unlocalizedName=unlocalizedName1;
- }
- public int damage;
- public String unlocalizedName;
- public String description;
- }
-
- @Override
- public boolean isSameWire(ItemStack stack1,ItemStack stack2)
- {
- return stack1.getItem()==stack2.getItem();
- }
-}
diff --git a/ihl/datanet/DataGrid.java b/ihl/datanet/DataGrid.java
deleted file mode 100644
index 0f4f9f9..0000000
--- a/ihl/datanet/DataGrid.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package ihl.datanet;
-
-import ihl.interfaces.IDataNode;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-public class DataGrid
-{
- public final Set<IDataNode> telist = new HashSet<IDataNode>();
- public double energy=0D;
- public boolean isGridValid=true;
-
- public Set<IDataNode> getListOfExcludedNodes()
- {
- Set<IDataNode> excludedNodes = new HashSet<IDataNode>();
- if(this.telist.isEmpty())
- {
- return excludedNodes;
- }
- excludedNodes.addAll(this.telist);
- IDataNode startNode = this.telist.iterator().next();
- this.recursiveGridNodesSearch(excludedNodes, startNode);
- this.telist.removeAll(excludedNodes);
- return excludedNodes;
- }
-
- public void recursiveGridNodesSearch(Set<IDataNode> excludedNodes, IDataNode startNode)
- {
- Iterator<IDataNode> nodei = startNode.getConnectedDataNodes().iterator();
- excludedNodes.remove(startNode);
- while(nodei.hasNext())
- {
- IDataNode node = nodei.next();
- if(excludedNodes.contains(node))
- {
- recursiveGridNodesSearch(excludedNodes, node);
- }
- }
- }
-
- public boolean isConnectedToContact(Contact emitter, int id)
- {
- Iterator<IDataNode> it1 = this.telist.iterator();
- while(it1.hasNext())
- {
- IDataNode ate1 = it1.next();
- if(ate1.getInnerId()==id)
- {
- return true;
- }
- else if(emitter!=ate1 && ate1.isIndirectlyConnectedWithContact(id))
- {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/ihl/datanet/DataNet.java b/ihl/datanet/DataNet.java
deleted file mode 100644
index a241517..0000000
--- a/ihl/datanet/DataNet.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package ihl.datanet;
-
-import ihl.IHLMod;
-import ihl.flexible_cable.NodeEntity;
-import ihl.interfaces.IDataNode;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import net.minecraft.nbt.NBTTagCompound;
-
-public class DataNet {
-
- public Map<Integer, DataGrid> grids = new HashMap<Integer, DataGrid>();
- private int griduid=0;
-
- public DataNet()
- {
- }
-
- public int getNewUniqueGridID()
- {
- for(int i=0;i<Integer.MAX_VALUE;i++)
- {
- if(grids.get(++griduid)==null)
- {
- return griduid;
- }
- }
- return -1;
- }
-
- public int mergeGrids(int gridID, int gridID2)
- {
- if(gridID==-1 && gridID2!=-1)
- {
- return gridID2;
- }
- else if(gridID!=-1 && gridID2==-1)
- {
- return gridID;
- }
- else if(gridID==-1 && gridID2==-1)
- {
- int newGridID=this.getNewUniqueGridID();
- DataGrid cgrid;
- cgrid=new DataGrid();
- grids.put(newGridID, cgrid);
- return newGridID;
- }
- else if(gridID!=gridID2)
- {
- Iterator<IDataNode> tei = grids.get(gridID2).telist.iterator();
- while(tei.hasNext())
- {
- IDataNode te = tei.next();
- te.setDataGrid(gridID);
- }
- grids.remove(gridID2);
- return gridID;
- }
- return gridID2;
- }
-
-
- public DataGrid getGrid(int gridID)
- {
- if(this.grids.get(gridID)==null)
- {
- DataGrid cgrid;
- cgrid=new DataGrid();
- grids.put(gridID, cgrid);
- return cgrid;
- }
- else
- {
- return this.grids.get(gridID);
- }
- }
-
- public void splitGrids(int gridID)
- {
- DataGrid grid1 = this.grids.get(gridID);
- Set<IDataNode> excludedNodes = grid1.getListOfExcludedNodes();
- if(!excludedNodes.isEmpty())
- {
- if(grid1.telist.size()==1)
- {
- IDataNode singleNode = grid1.telist.iterator().next();
- singleNode.setDataGrid(-1);
- grid1.telist.remove(singleNode);
- }
- if(excludedNodes.size()==1)
- {
- IDataNode singleNode = excludedNodes.iterator().next();
- singleNode.setDataGrid(-1);
- }
- else //Form a new grid
- {
- int newGridId = this.getNewUniqueGridID();
- Iterator<IDataNode> excludedNodesI = excludedNodes.iterator();
- while(excludedNodesI.hasNext())
- {
- excludedNodesI.next().setDataGrid(newGridId);
- }
- }
- }
- }
-
- public void removeCableEntities(NBTTagCompound cable)
- {
- int uid = cable.getInteger("chainUID");
- Set<NodeEntity> cs = IHLMod.proxy.nodeEntityRegistry.get(uid);
- if(cs!=null)
- {
- for(NodeEntity ne:cs)
- {
- if(ne!=null)
- {
- ne.setDead();
- }
- }
- }
- }
-}
diff --git a/ihl/datanet/GuiInvisibleButton.java b/ihl/datanet/GuiInvisibleButton.java
deleted file mode 100644
index 31e8b3f..0000000
--- a/ihl/datanet/GuiInvisibleButton.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package ihl.datanet;
-
-import java.util.List;
-import java.util.Map;
-
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiButton;
-
-public class GuiInvisibleButton extends GuiButton {
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public GuiInvisibleButton(int id1, int x, int y, int w, int h, Map<Integer, Integer[]> linksCoordinatesMap, List buttonList)
- {
- super(id1, x, y, w, h, "");
- linksCoordinatesMap.put(id1, new Integer[] {x+w/2,y+h/2});
- buttonList.add(this);
- }
-
- @Override
- public void drawButton(Minecraft minecraft, int i, int j){}
-
-}
diff --git a/ihl/datanet/RedstoneSignalConverterContainer.java b/ihl/datanet/RedstoneSignalConverterContainer.java
deleted file mode 100644
index 261c9d5..0000000
--- a/ihl/datanet/RedstoneSignalConverterContainer.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package ihl.datanet;
-
-import java.util.List;
-
-import ic2.core.ContainerBase;
-import ic2.core.IC2;
-import ic2.core.slot.SlotInvSlot;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.ICrafting;
-import net.minecraft.inventory.Slot;
-
-public class RedstoneSignalConverterContainer extends ContainerBase<RedstoneSignalConverterTileEntity> {
-
- protected RedstoneSignalConverterTileEntity tileEntity;
- private int lastLinksAmount = -1;
- private int lastCablesAmount = -1;
- private short lastEnergy = -1;
- private int prevButtonPressed1 = -1;
- public final static int height=224;
- public final static int width=198;
- public List<Integer> links;
-
- public RedstoneSignalConverterContainer(EntityPlayer entityPlayer, RedstoneSignalConverterTileEntity tileEntity1){
- super(tileEntity1);
- this.tileEntity = tileEntity1;
- links=this.tileEntity.links;
- int col;
- for (col = 0; col < 3; ++col)
- {
- for (int col1 = 0; col1 < 9; ++col1)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col1 + col * 9 + 9, 8 + col1 * 18, height + -82 + col * 18));
- }
- }
- for (col = 0; col < 9; ++col)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col, 8 + col * 18, height + -24));
- }
- for (col = 0; col < tileEntity1.sensorEmitterSlots.size(); ++col)
- {
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.sensorEmitterSlots, col, 8, 8+col*18));
- }
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.dischargeSlot, 0, 8, 116));
- }
-
- @Override
- public boolean canInteractWith(EntityPlayer var1) {
- return tileEntity.isUseableByPlayer(var1);
- }
-
-
- @Override
- public void detectAndSendChanges()
- {
- super.detectAndSendChanges();
- for (int i = 0; i < this.crafters.size(); ++i)
- {
- ICrafting icrafting = (ICrafting)this.crafters.get(i);
- if (this.tileEntity.links.size() != this.lastLinksAmount)
- {
- IC2.network.get().sendContainerField(this, "links");
- }
- if (this.tileEntity.energy != this.lastEnergy)
- {
- icrafting.sendProgressBarUpdate(this, 1, this.tileEntity.energy);
- }
- if (this.tileEntity.cableList.size() != this.lastCablesAmount)
- {
- icrafting.sendProgressBarUpdate(this, 2, this.tileEntity.cableList.size());
- }
- if (this.tileEntity.prevButtonPressed != this.prevButtonPressed1)
- {
- icrafting.sendProgressBarUpdate(this, 3, this.tileEntity.prevButtonPressed);
- }
- }
- this.lastCablesAmount=this.tileEntity.cableList.size();
- this.lastLinksAmount=this.tileEntity.links.size();
- this.lastEnergy=this.tileEntity.energy;
- this.prevButtonPressed1 = this.tileEntity.prevButtonPressed;
-
- }
-
- @Override
- public void updateProgressBar(int index, int value)
- {
- super.updateProgressBar(index, value);
- switch (index)
- {
- case 1:
- this.tileEntity.energy=(short) value;
- break;
- case 2:
- this.tileEntity.cablesAmount=(short) value;
- break;
- case 3:
- this.tileEntity.prevButtonPressed=(short) value;
- break;
- }
- }
-}
diff --git a/ihl/datanet/RedstoneSignalConverterGui.java b/ihl/datanet/RedstoneSignalConverterGui.java
deleted file mode 100644
index ce7e2d4..0000000
--- a/ihl/datanet/RedstoneSignalConverterGui.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package ihl.datanet;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import ic2.core.IC2;
-import net.minecraft.client.gui.GuiButton;
-import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.util.ResourceLocation;
-
-import org.lwjgl.opengl.GL11;
-
-import ihl.collector.GuiMultiTextureButton;
-
-@SideOnly(Side.CLIENT)
-public class RedstoneSignalConverterGui extends GuiContainer {
- private static final ResourceLocation background = new ResourceLocation("ihl", "textures/gui/GUIRedstoneSignalConverter.png");
- private RedstoneSignalConverterContainer container;
- private GuiInvisibleButton[] sensorsEmittersPlus = new GuiInvisibleButton[6];
- private GuiInvisibleButton[] sensorsEmittersMinus = new GuiInvisibleButton[6];
- private GuiInvisibleButton[][] cableContacts = new GuiInvisibleButton[4][8];
- public Map<Integer, Integer[]> linksCoordinatesMap = new HashMap<Integer,Integer[]>();
- private GuiMultiTextureButton removeLast;
- private GuiMultiTextureButton removeAll;
- private int timer=10;
-
- public RedstoneSignalConverterGui (RedstoneSignalConverterContainer container1)
- {
- super(container1);
- this.container=container1;
- this.ySize=RedstoneSignalConverterContainer.height;
- this.xSize=RedstoneSignalConverterContainer.width;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void initGui()
- {
- super.initGui();
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- int i,i1;
- new GuiInvisibleButton(0, x+24, y+121, 3, 3, linksCoordinatesMap, buttonList); //battery plus
- new GuiInvisibleButton(1, x+24, y+124, 3, 3, linksCoordinatesMap, buttonList); //battery minus
- for(i=0;i<sensorsEmittersPlus.length;i++)
- {
- sensorsEmittersPlus[i]=new GuiInvisibleButton(i+2, x+24, y+13+18*i, 3, 3, linksCoordinatesMap, buttonList);
- }
- for(i=0;i<sensorsEmittersMinus.length;i++)
- {
- sensorsEmittersMinus[i]=new GuiInvisibleButton(i+sensorsEmittersPlus.length+2, x+24, y+16+18*i, 3, 3, linksCoordinatesMap, buttonList);
- }
- for(i=0;i<cableContacts.length;i++)
- {
- for(i1=0;i1<cableContacts[i].length;i1++)
- {
- cableContacts[i][i1]=new GuiInvisibleButton(i*8+i1+sensorsEmittersPlus.length+sensorsEmittersMinus.length+2, x+97, y+11+i1*3+i*25, 6, 3, linksCoordinatesMap, buttonList);
- }
- }
- removeLast = new GuiMultiTextureButton(256, x+171, y+4, 23, 17, background, 171, 4, 170, 3);//256, x+171, y+4, 23, 17, background, 171, 4, 170, 3
- removeAll = new GuiMultiTextureButton(257, x+171, y+22, 23, 17, background, 171, 22, 170, 21);
- this.buttonList.add(removeLast);
- this.buttonList.add(removeAll);
- }
-
- private void drawLink(int integer,int index)
- {
- Integer[] from = this.linksCoordinatesMap.get((integer>>8) & 255);
- Integer[] to = this.linksCoordinatesMap.get(integer & 255);
- this.drawLink(from[0], from[1], to[0], to[1], index);
- }
-
- @Override
- public void actionPerformed(GuiButton button)
- {
- super.actionPerformed(button);
- IC2.network.get().initiateClientTileEntityEvent(this.container.tileEntity, button.id);
- if (button.id == removeLast.id)
- {
- //removeLast.isActive=true;
- timer=10;
- }
- if (button.id == removeAll.id)
- {
- removeAll.isActive=true;
- timer=10;
- }
- }
-
- @Override
- protected void drawGuiContainerBackgroundLayer(float par1, int par2,
- int par3) {
-
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); this.mc.renderEngine.bindTexture(background);
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
- for(int i = 0;i<this.container.tileEntity.links.size();i++)
- {
- drawLink(this.container.tileEntity.links.get(i),i);
- }
- if(this.container.tileEntity.prevButtonPressed!=-1)
- {
- Integer[] from = this.linksCoordinatesMap.get(this.container.tileEntity.prevButtonPressed);
- this.drawLink(from[0], from[1], par2, par3, 20);
- }
- if (this.container.tileEntity.energy > 0)
- {
- int i1 = Math.min(this.container.tileEntity.getGUIEnergy(12),12);
- this.drawTexturedModalRect(x+184, y+119 + 12 - i1, 202, 12 - i1, 14, i1 + 2);
- }
- for(int i=0;i<this.container.tileEntity.cablesAmount;i++)
- {
- this.drawTexturedModalRect(x+98, y+12 + 25*i, 198, 13, 4, 25);
- }
- if(timer>0)
- {
- timer--;
- }
- if(timer==1)
- {
- //removeLast.isActive=false;
- removeAll.isActive=false;
- }
- }
-
- private void drawLink(int fromX, int fromY, int toX, int toY, int index)
- {
- int verticalLineOffset = 3*index+3;
- this.drawTexturedModalRect(Math.min(fromX+verticalLineOffset,toX), toY-1, 0, 253, Math.abs(fromX+verticalLineOffset-toX)+(toX<=fromX+verticalLineOffset?1:0), 3);
- this.drawTexturedModalRect(fromX+verticalLineOffset-1, Math.min(fromY, toY), 253, 0, 3, Math.abs(fromY-toY)+(toY<fromY?1:0));
- this.drawTexturedModalRect(fromX, fromY-1, 0, 253, verticalLineOffset, 3);
- }
-
-} \ No newline at end of file
diff --git a/ihl/datanet/RedstoneSignalConverterTileEntity.java b/ihl/datanet/RedstoneSignalConverterTileEntity.java
deleted file mode 100644
index 6d36cb2..0000000
--- a/ihl/datanet/RedstoneSignalConverterTileEntity.java
+++ /dev/null
@@ -1,508 +0,0 @@
-package ihl.datanet;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraftforge.common.util.ForgeDirection;
-import ic2.api.network.INetworkClientTileEntityEventListener;
-import ic2.core.ContainerBase;
-import ic2.core.IC2;
-import ic2.core.IHasGui;
-import ic2.core.Ic2Items;
-import ic2.core.block.TileEntityInventory;
-import ic2.core.block.invslot.InvSlot.Access;
-import ihl.IHLMod;
-import ihl.interfaces.IDataCableHolder;
-import ihl.interfaces.IDataNode;
-import ihl.processing.invslots.InvSlotSignalProcessor;
-import ihl.utils.IHLInvSlotDischarge;
-import ihl.utils.IHLUtils;
-
-public class RedstoneSignalConverterTileEntity extends TileEntityInventory implements IDataCableHolder, INetworkClientTileEntityEventListener, IHasGui{
-
- public final InvSlotSignalProcessor sensorEmitterSlots;
- public final List<NBTTagCompound> cableList;
- public final IHLInvSlotDischarge dischargeSlot;
- public final List<Integer> links = new ArrayList<Integer>();//Short has 16 bits
- public int prevButtonPressed=-1;
- public short energy=0;
- public final static short maxEnergy=Short.MAX_VALUE;
- private int tick=0;
- public boolean linksOrInventoryChanged=false;
- private int inventoryCheckSum=0;
- public final Contact[] contacts = new Contact[68];
- private NBTTagCompound nbtread;
- public boolean checkcableList=true;
- public short cablesAmount=0;
-
- /*Contacts is:
- * 0 - battery slot plus
- * 1 - battery slot minus
- * 2-7 sensors/emitters plus
- * 8-13 sensors/emitters minus
- * 14-49 cableList
- */
-
- public RedstoneSignalConverterTileEntity()
- {
- sensorEmitterSlots = new InvSlotSignalProcessor(this, "sensorEmitterSlots", 0, Access.IO, 6, 2);
- cableList = new ArrayList<NBTTagCompound>();
- dischargeSlot = new IHLInvSlotDischarge(this, 2, Access.IO, 4);
- contacts[0]=new Contact(this,0,null,-1,0);
- contacts[1]=new Contact(this,1,null,-1,1);
- for(int i1=2;i1<8;i1++)
- {
- contacts[i1]=new Contact(this,i1, sensorEmitterSlots,i1-2,0);
- }
- for(int i1=8;i1<14;i1++)
- {
- sensorEmitterSlots.setStackSizeLimit(1);
- contacts[i1]=new Contact(this,i1, sensorEmitterSlots,i1-8,1);
- }
- for(int i1=14;i1<50;i1++)
- {
- contacts[i1]=new Contact(this,i1,null, -1, -1);
- }
- for(int i1=50;i1<56;i1++)
- {
- contacts[i1]=new Contact(this,i1, sensorEmitterSlots,i1-50,2);
- }
- for(int i1=56;i1<62;i1++)
- {
- contacts[i1]=new Contact(this,i1, sensorEmitterSlots,i1-56,3);
- }
- for(int i1=62;i1<68;i1++)
- {
- contacts[i1]=new Contact(this,i1, sensorEmitterSlots,i1-02,4);
- }
- }
-
- @Override
- public boolean wrenchCanRemove(EntityPlayer var1)
- {
- return this.cableList.isEmpty();
- }
-
- @Override
- public void setFacing(short facing)
- {
- this.removeAttachedChains();
- }
-
- @Override
- public void onLoaded()
- {
- super.onLoaded();
- if (IC2.platform.isSimulating())
- {
- IC2.network.get().updateTileEntityField(this, "sensorEmitterSlots");
- if(nbtread!=null)
- {
- for(Contact contact1:contacts)
- {
- contact1.readFromNBT(nbtread);
- }
- }
- nbtread=null;
- }
- }
-
- @Override
- public List<String> getNetworkedFields()
- {
- List<String> fields = super.getNetworkedFields();
- fields.add("sensorEmitterSlots");
- return fields;
- }
-
- @Override
- public void updateEntityClient()
- {
- int checkSum=0;
- for(int i=0;i<this.sensorEmitterSlots.size();i++)
- {
- if(this.sensorEmitterSlots.get(i)!=null)
- {
- if(IHLUtils.isItemStacksIsEqual(this.sensorEmitterSlots.get(i), Ic2Items.splitterCableItem, true))
- {
- checkSum++;
- }
- else if(IHLUtils.isItemStacksIsEqual(this.sensorEmitterSlots.get(i), Ic2Items.detectorCableItem, true))
- {
- checkSum+=2;
- }
- }
- }
- if(checkSum!=inventoryCheckSum)
- {
- inventoryCheckSum=checkSum;
- this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
- }
- }
-
- @Override
- public void updateEntityServer()
- {
- super.updateEntityServer();
- if(this.linksOrInventoryChanged && this.energy>0)
- {
- Set<Integer> checkedGrids = new HashSet<Integer>();
- Set<Integer> unCheckedGrids = new HashSet<Integer>();
- InvSlotSignalProcessor slots = this.sensorEmitterSlots;
- for(int i=0;i<slots.size();i++)
- {
- ItemStack is = slots.get(i);
- if(is!=null && IHLUtils.isItemStacksIsEqual(is, Ic2Items.splitterCableItem, true))
- {
- int dgid1 = contacts[i+2].getDataGridID();
- int dgid2 = contacts[i+8].getDataGridID();
- if(dgid1!=-1)
- {
- for(IDataNode contact3:IHLMod.datanet.getGrid(dgid1).telist)
- {
- contact3.checkAttachedSlots();
- if(contact3.getAttachedSlot()!=null)
- {
- Contact c4 = contact3.getAttachedSlot().getOppositeContact(contact3);
- if(!checkedGrids.contains(c4.getDataGridID()))
- {
- unCheckedGrids.add(c4.getDataGridID());
- }
- }
- }
- checkedGrids.add(dgid1);
- }
- if(dgid2!=-1 && dgid2!=dgid1)
- {
- for(IDataNode contact3:IHLMod.datanet.getGrid(dgid2).telist)
- {
- contact3.checkAttachedSlots();
- if(contact3.getAttachedSlot()!=null)
- {
- Contact c4 = contact3.getAttachedSlot().getOppositeContact(contact3);
- if(!checkedGrids.contains(c4.getDataGridID()))
- {
- unCheckedGrids.add(c4.getDataGridID());
- }
- }
- }
- checkedGrids.add(dgid2);
- }
-
- }
-
- }
- Iterator<Integer> ugi = unCheckedGrids.iterator();
- while(!unCheckedGrids.isEmpty())
- {
- Integer dgid2 = ugi.next();
- ugi.remove();
- {
- for(IDataNode contact3:IHLMod.datanet.getGrid(dgid2).telist)
- {
- contact3.checkAttachedSlots();
- if(contact3.getAttachedSlot()!=null)
- {
- Contact c4 = contact3.getAttachedSlot().getOppositeContact(contact3);
- if(!checkedGrids.contains(c4.getDataGridID()))
- {
- unCheckedGrids.add(c4.getDataGridID());
- }
- }
- }
- checkedGrids.add(dgid2);
- }
- }
- this.linksOrInventoryChanged=false;
- }
- if(this.energy < 1)
- {
- this.energy += (short)(this.dischargeSlot.discharge(getDemandedEnergy(), false)*256D);
- }
- if(tick++ % 256==0)
- {
- this.energy--;
- }
- }
-
- @Override
- public String getInventoryName()
- {
- return "redstoneSignalConverter";
- }
- @Override
- public boolean addDataCable(NBTTagCompound cable)
- {
- if(this.cableList.size()<4)
- {
- this.cableList.add(cable);
- return true;
- }
- return false;
- }
-
-
- @Override
- public double[] getPortPos(EntityLivingBase player)
- {
- ForgeDirection direction = ForgeDirection.getOrientation(IHLUtils.getFacingFromPlayerView(player, true)).getOpposite();
- return new double[] {this.xCoord+0.5d+0.5d*direction.offsetX,this.yCoord+direction.offsetY*1.0d,this.zCoord+0.5d+0.5d*direction.offsetZ};
- }
-
- @Override
- public void onNetworkEvent(EntityPlayer player, int event)
- {
- if(prevButtonPressed==-1 && event < 255)
- {
- prevButtonPressed = event;
- }
- else if(prevButtonPressed!=event && event < 255)
- {
- int minor = Math.min(prevButtonPressed,event);
- int major = Math.max(prevButtonPressed,event);
- int link = ((minor<<8) | major);
- this.links.add(link);
- contacts[prevButtonPressed].establishLink(contacts[event]);
- prevButtonPressed=-1;
- }
- else if(event==256 && !this.links.isEmpty())
- {
- int link = this.links.remove(this.links.size()-1);
- Contact contact1 = this.contacts[link >> 8];
- Contact contact2 = this.contacts[link & 255];
- contact1.removeLinkTo(contact2);
- }
- else if(event==257 && !this.links.isEmpty())
- {
- this.links.clear();
- for(Contact contact1:contacts)
- {
- contact1.removeConnections(contacts);
- }
- }
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbt)
- {
- super.writeToNBT(nbt);
- for(Contact contact1:contacts)
- {
- contact1.writeToNBT(nbt);
- }
- if (!links.isEmpty())
- {
- NBTTagList linkList1 = new NBTTagList();
- Iterator<Integer> fli = links.iterator();
- while(fli.hasNext())
- {
- Integer link = fli.next();
- if(link!=null)
- {
- NBTTagCompound linkNBT1 = new NBTTagCompound();
- linkNBT1.setInteger("link", link);
- linkList1.appendTag(linkNBT1);
- }
- }
- nbt.setTag("links", linkList1);
- }
- else
- {
- nbt.setString("Empty", "");
- }
- NBTTagList cableNBTList = new NBTTagList();
- for(NBTTagCompound cable:this.cableList)
- {
- cableNBTList.appendTag(cable);
- }
- nbt.setTag("cableList", cableNBTList);
- nbt.setBoolean("checkcableList", this.checkcableList);
- }
-
- @Override
- public void readFromNBT(NBTTagCompound nbt)
- {
- super.readFromNBT(nbt);
- NBTTagList cableNBTList=nbt.getTagList("cableList", 10);
- for(int i=0;i<cableNBTList.tagCount();i++)
- {
- this.cableList.add(cableNBTList.getCompoundTagAt(i));
- }
- if (!nbt.hasKey("Empty"))
- {
- NBTTagList ll = nbt.getTagList("links", 10);
- for(int i=0;i<ll.tagCount();i++)
- {
- NBTTagCompound llNBT1 = ll.getCompoundTagAt(i);
- links.add(llNBT1.getInteger("link"));
- }
- }
- nbtread=nbt;
- this.checkcableList=nbt.getBoolean("checkcableList");
- }
-
- public double getDemandedEnergy()
- {
- return (RedstoneSignalConverterTileEntity.maxEnergy - this.energy)/256D;
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public GuiScreen getGui(EntityPlayer player, boolean flag)
- {
- return new RedstoneSignalConverterGui(new RedstoneSignalConverterContainer(player, this));
- }
-
- @Override
- public ContainerBase<?> getGuiContainer(EntityPlayer player)
- {
- return new RedstoneSignalConverterContainer(player, this);
- }
-
- public int getGUIEnergy(int i)
- {
- if(this.energy<Float.MAX_VALUE)
- {
- return Math.round((float)this.energy/(float)RedstoneSignalConverterTileEntity.maxEnergy*i);
- }
- else
- {
- return Math.round((float)(this.energy/(double)RedstoneSignalConverterTileEntity.maxEnergy)*i);
- }
- }
-
- @Override
- public void onGuiClosed(EntityPlayer player) {/*Do nothing*/}
-
- public int isProvidingRedstonePower(int side)
- {
- return this.sensorEmitterSlots.isSlotActivated(side)?15:0;
- }
-
- public void removeAttachedChains()
- {
- if(!cableList.isEmpty())
- {
- Iterator<NBTTagCompound> cli = cableList.iterator();
- while(cli.hasNext())
- {
- NBTTagCompound cl=cli.next();
- IHLMod.datanet.removeCableEntities(cl);
- ItemStack is = IHLUtils.getThisModItemStack("dataCable");
- is.stackTagCompound=cl;
- double[] pps = this.getPortPos(null);
- EntityItem eitem = new EntityItem(worldObj, pps[0], pps[1], pps[2], is);
- worldObj.spawnEntityInWorld(eitem);
- {
- int chainUID = cl.getInteger("chainUID");
- int x1 = cl.getInteger("connectorX1");
- int y1 = cl.getInteger("connectorY1");
- int z1 = cl.getInteger("connectorZ1");
- int connectorDimensionId1 = cl.getInteger("connectorDimensionId1");
- int x = cl.getInteger("connectorX");
- int y = cl.getInteger("connectorY");
- int z = cl.getInteger("connectorZ");
- int connectorDimensionId = cl.getInteger("connectorDimensionId");
- if(x1!=xCoord || y1!=yCoord || z1!=zCoord)
- {
- x=x1;
- y=y1;
- z=z1;
- connectorDimensionId=connectorDimensionId1;
- }
- TileEntity te = MinecraftServer.getServer().worldServerForDimension(connectorDimensionId).getTileEntity(x, y, z);
- if(te instanceof IDataCableHolder)
- {
- IDataCableHolder dch = ((IDataCableHolder)te);
- Contact[] c = this.getContacts(chainUID);
- Contact[] c1 = dch.getContacts(chainUID);
- for(int i2=0;i2<c.length;i2++)
- {
- c[i2].removeLinkTo(c1[i2]);
- }
- dch.removeCable(chainUID);
- }
- cli.remove();
- }
- }
- }
- }
-
- @Override
- public Contact[] getContacts(int chainUID)
- {
- for(int i=0;i<this.cableList.size();i++)
- {
- NBTTagCompound is = this.cableList.get(i);
- if(is.getInteger("chainUID")==chainUID)
- {
- Contact[] contactsOut = new Contact[8];
- for(int i1=0;i1<contactsOut.length;i1++)
- {
- contactsOut[i1]=contacts[i1+i*8+14];
- }
- return contactsOut;
- }
- }
- return null;
- }
-
- @Override
- public void removeCable(int chainUID)
- {
- Iterator<NBTTagCompound> cli = cableList.iterator();
- while(cli.hasNext())
- {
- NBTTagCompound cl=cli.next();
- int chainUID1 = cl.getInteger("chainUID");
- if(chainUID1==chainUID)
- {
- cli.remove();
- return;
- }
- }
- }
-
- @Override
- public Contact getContact(int innerId1)
- {
- return this.contacts[innerId1];
- }
-
-
- @Override
- public boolean isCableRemoved(int chainUniqueID) {
- if(!checkcableList)
- {
- return false;
- }
- for(NBTTagCompound cl:cableList)
- {
- if(cl.getInteger("chainUID")==chainUniqueID)
- {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public void setCableCheck(boolean b)
- {
- this.checkcableList=b;
- }
-}