Started working on crafting infrastructure and C-Cpus

This commit is contained in:
AlgorithmX2
2014-05-08 23:10:12 -05:00
parent b0aedc1b01
commit f031972fcd
16 changed files with 476 additions and 21 deletions
+65
View File
@@ -0,0 +1,65 @@
package appeng.me.cache;
import java.util.HashSet;
import appeng.api.networking.IGridCache;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.networking.IGridStorage;
import appeng.api.networking.crafting.ICraftingProvider;
import appeng.me.cluster.implementations.CraftingCPUCluster;
public class CraftingCache implements IGridCache
{
HashSet<CraftingCPUCluster> cpuClusters = new HashSet();
HashSet<ICraftingProvider> providers = new HashSet();
@Override
public void onUpdateTick()
{
}
@Override
public void removeNode(IGridNode gridNode, IGridHost machine)
{
if ( machine instanceof ICraftingProvider )
providers.remove( machine );
updatePatterns();
}
@Override
public void addNode(IGridNode gridNode, IGridHost machine)
{
if ( machine instanceof ICraftingProvider )
providers.add( (ICraftingProvider) machine );
updatePatterns();
}
private void updatePatterns()
{
// TODO Auto-generated method stub
}
@Override
public void onSplit(IGridStorage destinationStorage)
{ // nothing!
}
@Override
public void onJoin(IGridStorage sourceStorage)
{
// nothing!
}
@Override
public void populateGridStorage(IGridStorage destinationStorage)
{
// nothing!
}
}
@@ -0,0 +1,74 @@
package appeng.me.cluster.implementations;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import appeng.api.util.WorldCoord;
import appeng.me.cluster.IAECluster;
import appeng.me.cluster.IAEMultiBlock;
import appeng.me.cluster.MBCalculator;
import appeng.tile.crafting.TileCraftingTile;
import appeng.tile.qnb.TileQuantumBridge;
public class CraftingCPUCalculator extends MBCalculator
{
TileCraftingTile tqb;
public CraftingCPUCalculator(IAEMultiBlock t) {
super( t );
tqb = (TileCraftingTile) t;
}
@Override
public boolean isValidTile(TileEntity te)
{
return te instanceof TileQuantumBridge;
}
@Override
public boolean checkMultiblockScale(WorldCoord min, WorldCoord max)
{
return true;
}
@Override
public void updateTiles(IAECluster cl, World w, WorldCoord min, WorldCoord max)
{
}
@Override
public IAECluster createCluster(World w, WorldCoord min, WorldCoord max)
{
return new CraftingCPUCluster( min, max );
}
@Override
public void disconnect()
{
tqb.disconnect();
}
@Override
public boolean verifyInternalStructure(World w, WorldCoord min, WorldCoord max)
{
for (int x = min.x; x <= max.x; x++)
{
for (int y = min.y; y <= max.y; y++)
{
for (int z = min.z; z <= max.z; z++)
{
IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( x, y, z );
if ( !te.isValid() )
return false;
}
}
}
return true;
}
}
@@ -0,0 +1,45 @@
package appeng.me.cluster.implementations;
import java.util.Iterator;
import java.util.LinkedList;
import appeng.api.networking.IGridHost;
import appeng.api.util.WorldCoord;
import appeng.me.cluster.IAECluster;
public class CraftingCPUCluster implements IAECluster
{
public WorldCoord min;
public WorldCoord max;
public boolean isDestroyed = false;
private LinkedList<IGridHost> tiles = new LinkedList();
@Override
public Iterator<IGridHost> getTiles()
{
return tiles.iterator();
}
public CraftingCPUCluster(WorldCoord _min, WorldCoord _max) {
min = _min;
max = _max;
}
@Override
public void updateStatus(boolean updateGrid)
{
}
@Override
public void destroy()
{
if ( isDestroyed )
return;
isDestroyed = true;
}
}