Worked on Assembly TileNetwork
Right now its just an extended version of the Shared power network. This should get the network moving towards running first. Then i can slowly add in support for powering UE machines back. UE support should auto cover BC, & IC2. So only thing to do after that is refine and add fluid support.
This commit is contained in:
parent
5e3a440ff0
commit
d0b5f22900
2 changed files with 60 additions and 39 deletions
|
@ -1,15 +1,17 @@
|
|||
package dark.assembly.common.machine;
|
||||
|
||||
import dark.api.INetworkPart;
|
||||
import dark.core.tile.network.NetworkSharedPower;
|
||||
import dark.core.tile.network.NetworkTileEntities;
|
||||
|
||||
public class NetworkAssembly extends NetworkTileEntities
|
||||
public class NetworkAssembly extends NetworkSharedPower
|
||||
{
|
||||
public NetworkAssembly(INetworkPart... parts)
|
||||
{
|
||||
super(parts);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkTileEntities newInstance()
|
||||
{
|
||||
return new NetworkAssembly();
|
||||
|
|
|
@ -5,22 +5,24 @@ import java.util.List;
|
|||
import java.util.Random;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import universalelectricity.core.block.IConductor;
|
||||
import universalelectricity.core.grid.IElectricityNetwork;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.prefab.network.IPacketReceiver;
|
||||
import dark.api.INetworkPart;
|
||||
import dark.api.INetworkEnergyPart;
|
||||
import dark.assembly.common.AssemblyLine;
|
||||
import dark.core.blocks.TileEntityMachine;
|
||||
import dark.core.tile.network.NetworkSharedPower;
|
||||
import dark.core.tile.network.NetworkTileEntities;
|
||||
|
||||
/** A class to be inherited by all machines on the assembly line. This class acts as a single peace
|
||||
* in a network of similar tiles allowing all to share power from one or more sources
|
||||
*
|
||||
* @author DarkGuardsman */
|
||||
public abstract class TileEntityAssembly extends TileEntityMachine implements INetworkPart, IPacketReceiver, IConductor
|
||||
public abstract class TileEntityAssembly extends TileEntityMachine implements IPacketReceiver, INetworkEnergyPart
|
||||
{
|
||||
public static int refresh_min_rate = 20;
|
||||
public static int refresh_diff = 9;
|
||||
/** Network used to link assembly machines together */
|
||||
private NetworkAssembly assemblyNetwork;
|
||||
/** Tiles that are connected to this */
|
||||
|
@ -54,13 +56,14 @@ public abstract class TileEntityAssembly extends TileEntityMachine implements IN
|
|||
@Override
|
||||
public void updateEntity()
|
||||
{
|
||||
super.updateEntity();
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
this.prevRunning = this.running;
|
||||
super.updateEntity();
|
||||
|
||||
if (ticks % updateTick == 0)
|
||||
{
|
||||
this.updateTick = ((int) random.nextInt(10) + 20);
|
||||
this.updateTick = ((int) random.nextInt(1 + refresh_diff) + refresh_min_rate);
|
||||
this.refresh();
|
||||
}
|
||||
this.running = this.canRun();
|
||||
|
@ -156,6 +159,48 @@ public abstract class TileEntityAssembly extends TileEntityMachine implements IN
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean consumePower(float watts, boolean doDrain)
|
||||
{
|
||||
return ((NetworkSharedPower) this.getTileNetwork()).drainPower(this, watts, doDrain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRequest(ForgeDirection direction)
|
||||
{
|
||||
return this.WATTS_PER_TICK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void togglePowerMode()
|
||||
{
|
||||
((NetworkSharedPower) this.getTileNetwork()).setPowerLess(this.runPowerLess());
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getEnergyStored()
|
||||
{
|
||||
return ((NetworkSharedPower) this.getTileNetwork()).getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getPartEnergy()
|
||||
{
|
||||
return this.energyStored;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getPartMaxEnergy()
|
||||
{
|
||||
return this.MAX_WATTS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPartEnergy(float energy)
|
||||
{
|
||||
this.energyStored = energy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mergeDamage(String effect)
|
||||
{
|
||||
|
@ -163,40 +208,14 @@ public abstract class TileEntityAssembly extends TileEntityMachine implements IN
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox()
|
||||
{
|
||||
return INFINITE_EXTENT_AABB;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return "[AssemblyTile]@" + (new Vector3(this).toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IElectricityNetwork getNetwork()
|
||||
{
|
||||
return (this.getTileNetwork() instanceof IElectricityNetwork ? (IElectricityNetwork) this.getTileNetwork() : null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNetwork(IElectricityNetwork network)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity[] getAdjacentConnections()
|
||||
{
|
||||
return this.connectedTiles.toArray(new TileEntity[this.connectedTiles.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getResistance()
|
||||
{
|
||||
return 0.01f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCurrentCapacity()
|
||||
{
|
||||
return 1000;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue