Tesla integration for Battery
This commit is contained in:
parent
d77d6292f6
commit
6db24c8dd6
2 changed files with 18 additions and 29 deletions
|
@ -11,8 +11,10 @@ import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import resonantinduction.PacketHandler;
|
import resonantinduction.PacketHandler;
|
||||||
import resonantinduction.api.IBattery;
|
import resonantinduction.api.IBattery;
|
||||||
|
import resonantinduction.api.ITesla;
|
||||||
import resonantinduction.base.IPacketReceiver;
|
import resonantinduction.base.IPacketReceiver;
|
||||||
import resonantinduction.base.ListUtil;
|
import resonantinduction.base.ListUtil;
|
||||||
import resonantinduction.base.TileEntityBase;
|
import resonantinduction.base.TileEntityBase;
|
||||||
|
@ -24,7 +26,7 @@ import com.google.common.io.ByteArrayDataInput;
|
||||||
*
|
*
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*/
|
*/
|
||||||
public class TileEntityBattery extends TileEntityBase implements IPacketReceiver, IInventory
|
public class TileEntityBattery extends TileEntityBase implements IPacketReceiver, IInventory, ITesla
|
||||||
{
|
{
|
||||||
public SynchronizedBatteryData structure = SynchronizedBatteryData.getBase(this);
|
public SynchronizedBatteryData structure = SynchronizedBatteryData.getBase(this);
|
||||||
|
|
||||||
|
@ -93,6 +95,7 @@ public class TileEntityBattery extends TileEntityBase implements IPacketReceiver
|
||||||
|
|
||||||
for(int tagCount = 0; tagCount < tagList.tagCount(); tagCount++)
|
for(int tagCount = 0; tagCount < tagList.tagCount(); tagCount++)
|
||||||
{
|
{
|
||||||
|
System.out.println("Read");
|
||||||
NBTTagCompound tagCompound = (NBTTagCompound)tagList.tagAt(tagCount);
|
NBTTagCompound tagCompound = (NBTTagCompound)tagList.tagAt(tagCount);
|
||||||
int slotID = tagCompound.getInteger("Slot");
|
int slotID = tagCompound.getInteger("Slot");
|
||||||
structure.inventory.add(slotID, ItemStack.loadItemStackFromNBT(tagCompound));
|
structure.inventory.add(slotID, ItemStack.loadItemStackFromNBT(tagCompound));
|
||||||
|
@ -140,6 +143,7 @@ public class TileEntityBattery extends TileEntityBase implements IPacketReceiver
|
||||||
{
|
{
|
||||||
if(structure.inventory.get(slotCount) != null)
|
if(structure.inventory.get(slotCount) != null)
|
||||||
{
|
{
|
||||||
|
System.out.println("Save");
|
||||||
NBTTagCompound tagCompound = new NBTTagCompound();
|
NBTTagCompound tagCompound = new NBTTagCompound();
|
||||||
tagCompound.setInteger("Slot", slotCount);
|
tagCompound.setInteger("Slot", slotCount);
|
||||||
structure.inventory.get(slotCount).writeToNBT(tagCompound);
|
structure.inventory.get(slotCount).writeToNBT(tagCompound);
|
||||||
|
@ -468,4 +472,16 @@ public class TileEntityBattery extends TileEntityBase implements IPacketReceiver
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float transfer(float transferEnergy, boolean doTransfer)
|
||||||
|
{
|
||||||
|
return addEnergy(transferEnergy, doTransfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canReceive(TileEntity transferTile)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ import com.google.common.io.ByteArrayDataInput;
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class TileEntityEMContractor extends TileEntityBase implements IPacketReceiver, ITesla
|
public class TileEntityEMContractor extends TileEntityBase implements IPacketReceiver
|
||||||
{
|
{
|
||||||
public static int MAX_REACH = 40;
|
public static int MAX_REACH = 40;
|
||||||
public static int PUSH_DELAY = 5;
|
public static int PUSH_DELAY = 5;
|
||||||
|
@ -41,8 +41,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
|
|
||||||
private int pushDelay;
|
private int pushDelay;
|
||||||
|
|
||||||
private float energyStored;
|
|
||||||
|
|
||||||
private AxisAlignedBB operationBounds;
|
private AxisAlignedBB operationBounds;
|
||||||
private AxisAlignedBB suckBounds;
|
private AxisAlignedBB suckBounds;
|
||||||
|
|
||||||
|
@ -159,8 +157,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
|
|
||||||
if (operationBounds != null)
|
if (operationBounds != null)
|
||||||
{
|
{
|
||||||
energyStored -= ENERGY_USAGE;
|
|
||||||
|
|
||||||
for (EntityItem entityItem : (List<EntityItem>) worldObj.getEntitiesWithinAABB(EntityItem.class, operationBounds))
|
for (EntityItem entityItem : (List<EntityItem>) worldObj.getEntitiesWithinAABB(EntityItem.class, operationBounds))
|
||||||
{
|
{
|
||||||
if (this.worldObj.isRemote && this.ticks % 5 == 0)
|
if (this.worldObj.isRemote && this.ticks % 5 == 0)
|
||||||
|
@ -417,7 +413,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
|
|
||||||
this.facing = ForgeDirection.getOrientation(nbt.getInteger("facing"));
|
this.facing = ForgeDirection.getOrientation(nbt.getInteger("facing"));
|
||||||
this.suck = nbt.getBoolean("suck");
|
this.suck = nbt.getBoolean("suck");
|
||||||
this.energyStored = nbt.getFloat("energyStored");
|
|
||||||
this.dyeID = nbt.getInteger("dyeID");
|
this.dyeID = nbt.getInteger("dyeID");
|
||||||
this.tempLinkVector = new Vector3(nbt.getInteger("link_x"), nbt.getInteger("link_y"), nbt.getInteger("link_z"));
|
this.tempLinkVector = new Vector3(nbt.getInteger("link_x"), nbt.getInteger("link_y"), nbt.getInteger("link_z"));
|
||||||
updateBounds();
|
updateBounds();
|
||||||
|
@ -430,7 +425,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
|
|
||||||
nbt.setInteger("facing", facing.ordinal());
|
nbt.setInteger("facing", facing.ordinal());
|
||||||
nbt.setBoolean("suck", suck);
|
nbt.setBoolean("suck", suck);
|
||||||
nbt.setFloat("energyStored", energyStored);
|
|
||||||
nbt.setInteger("dyeID", this.dyeID);
|
nbt.setInteger("dyeID", this.dyeID);
|
||||||
|
|
||||||
if (this.linked != null)
|
if (this.linked != null)
|
||||||
|
@ -448,7 +442,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
{
|
{
|
||||||
facing = ForgeDirection.getOrientation(input.readInt());
|
facing = ForgeDirection.getOrientation(input.readInt());
|
||||||
suck = input.readBoolean();
|
suck = input.readBoolean();
|
||||||
energyStored = input.readFloat();
|
|
||||||
this.dyeID = input.readInt();
|
this.dyeID = input.readInt();
|
||||||
|
|
||||||
if (input.readBoolean())
|
if (input.readBoolean())
|
||||||
|
@ -469,7 +462,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
{
|
{
|
||||||
data.add(facing.ordinal());
|
data.add(facing.ordinal());
|
||||||
data.add(suck);
|
data.add(suck);
|
||||||
data.add(energyStored);
|
|
||||||
data.add(this.dyeID);
|
data.add(this.dyeID);
|
||||||
|
|
||||||
if (this.linked != null)
|
if (this.linked != null)
|
||||||
|
@ -487,25 +479,6 @@ public class TileEntityEMContractor extends TileEntityBase implements IPacketRec
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float transfer(float transferEnergy, boolean doTransfer)
|
|
||||||
{
|
|
||||||
float energyToUse = Math.min(transferEnergy, ENERGY_USAGE - energyStored);
|
|
||||||
|
|
||||||
if (doTransfer)
|
|
||||||
{
|
|
||||||
energyStored += energyToUse;
|
|
||||||
}
|
|
||||||
|
|
||||||
return energyToUse;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canReceive(TileEntity transferTile)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link between two TileEntities, do pathfinding operation.
|
* Link between two TileEntities, do pathfinding operation.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue