From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/datanet/DataNet.java | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 ihl/datanet/DataNet.java (limited to 'ihl/datanet/DataNet.java') diff --git a/ihl/datanet/DataNet.java b/ihl/datanet/DataNet.java new file mode 100644 index 0000000..3f88c55 --- /dev/null +++ b/ihl/datanet/DataNet.java @@ -0,0 +1,127 @@ +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 grids = new HashMap(); + private int griduid=0; + + public DataNet() + { + } + + public int getNewUniqueGridID() + { + for(int i=0;i 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 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 excludedNodesI = excludedNodes.iterator(); + while(excludedNodesI.hasNext()) + { + excludedNodesI.next().setDataGrid(newGridId); + } + } + } + } + + public void removeCableEntities(NBTTagCompound cable) + { + int uid = cable.getInteger("chainUID"); + Set cs = IHLMod.proxy.nodeEntityRegistry.get(uid); + if(cs!=null) + { + for(NodeEntity ne:cs) + { + if(ne!=null) + { + ne.setDead(); + } + } + } + } +} -- cgit v1.2.3