Config values for Contractor, began work on energy usage

This commit is contained in:
Aidan Brady 2013-08-03 19:32:54 -04:00
parent 32cbb970f4
commit 3e194f16e4
2 changed files with 39 additions and 1 deletions

View file

@ -121,6 +121,11 @@ public class ResonantInduction
POWER_PER_COAL = (float) CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Coal Wattage", POWER_PER_COAL).getDouble(POWER_PER_COAL);
SOUND_FXS = CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Tesla Sound FXs", SOUND_FXS).getBoolean(SOUND_FXS);
TileEntityEMContractor.ACCELERATION = CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Contractor Item Acceleration", TileEntityEMContractor.ACCELERATION).getDouble(TileEntityEMContractor.ACCELERATION);
TileEntityEMContractor.MAX_REACH = CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Contractor Max Item Reach", TileEntityEMContractor.MAX_REACH).getInt(TileEntityEMContractor.MAX_REACH);
TileEntityEMContractor.MAX_SPEED = CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Contractor Max Item Speed", TileEntityEMContractor.MAX_SPEED).getDouble(TileEntityEMContractor.MAX_SPEED);
TileEntityEMContractor.PUSH_DELAY = CONFIGURATION.get(Configuration.CATEGORY_GENERAL, "Contractor Item Push Delay", TileEntityEMContractor.PUSH_DELAY).getInt(TileEntityEMContractor.PUSH_DELAY);
// Items
itemQuantumEntangler = new ItemQuantumEntangler(getNextItemID());
GameRegistry.registerItem(itemQuantumEntangler, itemQuantumEntangler.getUnlocalizedName());

View file

@ -13,21 +13,30 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.ForgeDirection;
import resonantinduction.PacketHandler;
import resonantinduction.api.ITesla;
import resonantinduction.base.IPacketReceiver;
import com.google.common.io.ByteArrayDataInput;
public class TileEntityEMContractor extends TileEntity implements IPacketReceiver
/**
*
* @author AidanBrady
*
*/
public class TileEntityEMContractor extends TileEntity implements IPacketReceiver, ITesla
{
public static int MAX_REACH = 40;
public static int PUSH_DELAY = 5;
public static double MAX_SPEED = .1;
public static double ACCELERATION = .01;
public static float ENERGY_USAGE = .005F;
private ForgeDirection facing = ForgeDirection.UP;
public int pushDelay;
public float energyStored;
public AxisAlignedBB operationBounds;
public AxisAlignedBB suckBounds;
@ -461,6 +470,11 @@ public class TileEntityEMContractor extends TileEntity implements IPacketReceive
updateBounds();
}
public boolean canFunction()
{
return energyStored == ENERGY_USAGE && worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) > 0;
}
@Override
public void readFromNBT(NBTTagCompound nbtTags)
{
@ -501,4 +515,23 @@ public class TileEntityEMContractor extends TileEntity implements IPacketReceive
data.add(suck);
return data;
}
@Override
public float transfer(float transferEnergy, boolean doTransfer)
{
float energyToUse = Math.min(transferEnergy, energyStored-ENERGY_USAGE);
if(doTransfer)
{
energyStored += energyToUse;
}
return energyToUse;
}
@Override
public boolean canReceive(TileEntity transferTile)
{
return true;
}
}