more work on network
resolved a few power issues though i'm running into mekanism energy cubes self powering. As well energy cube, different one, is request power from the network but is never getting supplied any.
This commit is contained in:
parent
88778499fb
commit
d08bb5c48e
3 changed files with 34 additions and 43 deletions
|
@ -8,8 +8,6 @@ import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.common.Configuration;
|
import net.minecraftforge.common.Configuration;
|
||||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
|
||||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
|
||||||
|
|
||||||
import org.modstats.ModstatInfo;
|
import org.modstats.ModstatInfo;
|
||||||
import org.modstats.Modstats;
|
import org.modstats.Modstats;
|
||||||
|
@ -20,7 +18,6 @@ import universalelectricity.prefab.multiblock.TileEntityMulti;
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
import universalelectricity.prefab.network.PacketManager;
|
||||||
import assemblyline.common.armbot.BlockArmbot;
|
import assemblyline.common.armbot.BlockArmbot;
|
||||||
import assemblyline.common.armbot.TileEntityArmbot;
|
import assemblyline.common.armbot.TileEntityArmbot;
|
||||||
import assemblyline.common.armbot.command.GrabDictionary;
|
|
||||||
import assemblyline.common.imprinter.BlockImprinter;
|
import assemblyline.common.imprinter.BlockImprinter;
|
||||||
import assemblyline.common.imprinter.ItemImprinter;
|
import assemblyline.common.imprinter.ItemImprinter;
|
||||||
import assemblyline.common.imprinter.TileEntityImprinter;
|
import assemblyline.common.imprinter.TileEntityImprinter;
|
||||||
|
@ -59,8 +56,6 @@ import cpw.mods.fml.common.network.NetworkMod;
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import dark.core.DarkMain;
|
|
||||||
import dark.core.PowerSystems;
|
|
||||||
|
|
||||||
@ModstatInfo(prefix = "asmline")
|
@ModstatInfo(prefix = "asmline")
|
||||||
@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.MOD_NAME, version = AssemblyLine.VERSION, dependencies = "after:BasicComponents; after:IC2", useMetadata = true)
|
@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.MOD_NAME, version = AssemblyLine.VERSION, dependencies = "after:BasicComponents; after:IC2", useMetadata = true)
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class NetworkAssembly extends NetworkPowerTiles
|
||||||
public void addPower(double d)
|
public void addPower(double d)
|
||||||
{
|
{
|
||||||
double before = this.wattStored;
|
double before = this.wattStored;
|
||||||
this.wattStored = Math.max(this.wattStored + d, this.getMaxBattery());
|
this.wattStored = Math.min(this.wattStored + d, this.getMaxBattery());
|
||||||
System.out.println("Power| +++" + ElectricityDisplay.getDisplaySimple(d, ElectricUnit.WATT, 2) + " A: " + ElectricityDisplay.getDisplaySimple(this.wattStored, ElectricUnit.WATT, 2));
|
System.out.println("Power| +++" + ElectricityDisplay.getDisplaySimple(d, ElectricUnit.WATT, 2) + " A: " + ElectricityDisplay.getDisplaySimple(this.wattStored, ElectricUnit.WATT, 2));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,14 @@ public class NetworkAssembly extends NetworkPowerTiles
|
||||||
{
|
{
|
||||||
pack = new ElectricityPack(0, 120);
|
pack = new ElectricityPack(0, 120);
|
||||||
}
|
}
|
||||||
double watt = pack.getWatts();
|
|
||||||
|
return ElectricityPack.getFromWatts(pack.getWatts() + this.getMemberRequest(), pack.voltage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMemberRequest()
|
||||||
|
{
|
||||||
|
double watt = 0;
|
||||||
for (INetworkPart part : this.getNetworkMemebers())
|
for (INetworkPart part : this.getNetworkMemebers())
|
||||||
{
|
{
|
||||||
//TODO do check for ignored tiles/ents
|
//TODO do check for ignored tiles/ents
|
||||||
|
@ -61,7 +68,7 @@ public class NetworkAssembly extends NetworkPowerTiles
|
||||||
watt += ((TileEntityAssembly) part).getWattLoad();
|
watt += ((TileEntityAssembly) part).getWattLoad();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ElectricityPack.getFromWatts(watt, pack.voltage);
|
return watt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -27,6 +27,7 @@ import buildcraft.api.power.PowerProvider;
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
import dark.core.api.INetworkPart;
|
import dark.core.api.INetworkPart;
|
||||||
|
import dark.core.tile.network.NetworkPowerTiles;
|
||||||
import dark.core.tile.network.NetworkTileEntities;
|
import dark.core.tile.network.NetworkTileEntities;
|
||||||
import dark.library.machine.TileEntityRunnableMachine;
|
import dark.library.machine.TileEntityRunnableMachine;
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
{
|
{
|
||||||
/** Is the tile currently powered allowing it to run */
|
/** Is the tile currently powered allowing it to run */
|
||||||
public boolean running = false;
|
public boolean running = false;
|
||||||
|
private boolean prevRun = false;
|
||||||
/** Network used to link assembly machines together */
|
/** Network used to link assembly machines together */
|
||||||
private NetworkAssembly assemblyNetwork;
|
private NetworkAssembly assemblyNetwork;
|
||||||
/** Tiles that are connected to this */
|
/** Tiles that are connected to this */
|
||||||
|
@ -47,12 +49,6 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
/** Random rate by which this tile updates its connections */
|
/** Random rate by which this tile updates its connections */
|
||||||
private int updateTick = 1;
|
private int updateTick = 1;
|
||||||
|
|
||||||
public TileEntityAssembly()
|
|
||||||
{
|
|
||||||
this.powerProvider = new AssemblyPowerProvider(this);
|
|
||||||
powerProvider.configure(0, 0, 100, 0, 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static enum AssemblyTilePacket
|
public static enum AssemblyTilePacket
|
||||||
{
|
{
|
||||||
POWER(),
|
POWER(),
|
||||||
|
@ -75,7 +71,7 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
boolean prevRun = this.running;
|
this.prevRun = this.running;
|
||||||
super.updateEntity();
|
super.updateEntity();
|
||||||
if (ticks % updateTick == 0)
|
if (ticks % updateTick == 0)
|
||||||
{
|
{
|
||||||
|
@ -135,6 +131,26 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getBattery(ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
return ((NetworkAssembly) this.getTileNetwork()).getMaxBattery();
|
||||||
|
}
|
||||||
|
return super.getBattery(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getCurrentBattery(ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
return ((NetworkAssembly) this.getTileNetwork()).getCurrentBattery();
|
||||||
|
}
|
||||||
|
return super.getCurrentBattery(side);
|
||||||
|
}
|
||||||
|
|
||||||
/** Amount of energy the network needs at any given time */
|
/** Amount of energy the network needs at any given time */
|
||||||
@Override
|
@Override
|
||||||
public double getRequest(ForgeDirection side)
|
public double getRequest(ForgeDirection side)
|
||||||
|
@ -142,8 +158,7 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
if (this.getTileNetwork() instanceof NetworkAssembly)
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
{
|
{
|
||||||
NetworkAssembly net = ((NetworkAssembly) this.getTileNetwork());
|
NetworkAssembly net = ((NetworkAssembly) this.getTileNetwork());
|
||||||
double room = net.getMaxBattery() - net.getCurrentBattery();
|
return Math.min(100 + net.getMemberRequest(), Math.max(0, net.getRequest(new Vector3(this).modifyPositionFromSide(side).getTileEntity(this.worldObj), this).getWatts()));
|
||||||
return Math.min(100, Math.max(0, room));
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -303,30 +318,4 @@ public abstract class TileEntityAssembly extends TileEntityRunnableMachine imple
|
||||||
return 1000;
|
return 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
class AssemblyPowerProvider extends PowerProvider
|
|
||||||
{
|
|
||||||
public TileEntityAssembly tileEntity;
|
|
||||||
|
|
||||||
public AssemblyPowerProvider(TileEntityAssembly tile)
|
|
||||||
{
|
|
||||||
tileEntity = tile;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void receiveEnergy(float quantity, ForgeDirection from)
|
|
||||||
{
|
|
||||||
powerSources[from.ordinal()] = 2;
|
|
||||||
|
|
||||||
if (tileEntity.getTileNetwork() instanceof NetworkAssembly)
|
|
||||||
{
|
|
||||||
((NetworkAssembly) tileEntity.getTileNetwork()).addPower(UniversalElectricity.BC3_RATIO * quantity);
|
|
||||||
System.out.println("BuildCraft Power Reciver>>>PlugPower>>>"+quantity);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.energyStored += quantity;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue