I will kill Horse Ronald Reagan when I become 23 years old

This commit is contained in:
Boblet 2024-04-10 16:10:55 +02:00
parent b661b89334
commit ba58f42ef2
53 changed files with 139 additions and 830 deletions

View File

@ -119,12 +119,12 @@ public class PowerNetMK2 {
for(Entry<IEnergyProviderMK2, Long> entry : providerEntries.entrySet()) {
IEnergyProviderMK2 provider = entry.getKey();
if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getConnectionSpeed());
if(provider.isLoaded() && timestamp - entry.getValue() < timeout) supply += Math.min(provider.getPower(), provider.getProviderSpeed());
}
for(Entry<IEnergyReceiverMK2, Long> entry : receiverEntries.entrySet()) {
IEnergyReceiverMK2 receiver = entry.getKey();
if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getConnectionSpeed());
if(receiver.isLoaded() && timestamp - entry.getValue() < timeout) demand += Math.min(receiver.getMaxPower() - receiver.getPower(), receiver.getReceiverSpeed());
}
double drainScale = 1D;
@ -153,8 +153,8 @@ public class PowerNetMK2 {
IEnergyProviderMK2 src = providers.get(0);
IEnergyReceiverMK2 dest = receivers.get(0);
long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getConnectionSpeed()) - prevSrc;
long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getConnectionSpeed()) - prevDest;
long toDrain = Math.min((long) (src.getPower() * drainScale) + prevSrc, src.getProviderSpeed()) - prevSrc;
long toFill = Math.min(dest.getMaxPower() - dest.getPower() + prevDest, dest.getReceiverSpeed()) - prevDest;
long finalTransfer = Math.min(toDrain, toFill);
if(toDrain <= 0) { providers.remove(0); prevSrc = 0; continue; }

View File

@ -6,7 +6,7 @@ import java.util.List;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.ParticleBurstPacket;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyHandlerMK2;
import cofh.api.energy.IEnergyProvider;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
@ -44,19 +44,15 @@ public class EntityEMP extends Entity {
private void allocate() {
machines = new ArrayList();
int radius = 100;
for(int x = -radius; x <= radius; x++) {
int x2 = (int) Math.pow(x, 2);
for(int y = -radius; y <= radius; y++) {
int y2 = (int) Math.pow(y, 2);
for(int z = -radius; z <= radius; z++) {
int z2 = (int) Math.pow(z, 2);
if(Math.sqrt(x2 + y2 + z2) <= radius) {
@ -81,7 +77,7 @@ public class EntityEMP extends Entity {
private void add(int x, int y, int z) {
TileEntity te = worldObj.getTileEntity(x, y, z);
if (te != null && te instanceof IEnergyUser) {
if (te != null && te instanceof IEnergyHandlerMK2) {
machines.add(new int[] { x, y, z });
} else if (te != null && te instanceof IEnergyProvider) {
machines.add(new int[] { x, y, z });
@ -94,9 +90,9 @@ public class EntityEMP extends Entity {
boolean flag = false;
if (te != null && te instanceof IEnergyUser) {
if (te != null && te instanceof IEnergyHandlerMK2) {
((IEnergyUser)te).setPower(0);
((IEnergyHandlerMK2)te).setPower(0);
flag = true;
}
if (te != null && te instanceof IEnergyProvider) {

View File

@ -1,111 +0,0 @@
package com.hbm.items.tool;
import com.hbm.interfaces.IFluidDuct;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.TileEntityLockableBase;
import com.hbm.tileentity.network.TileEntityPylon;
import api.hbm.energy.IEnergyConnector;
import net.minecraft.block.Block;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
public class ItemAnalyzer extends Item {
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int b, float f0, float f1, float f2)
{
Block block = world.getBlock(x, y, z);
TileEntity te = world.getTileEntity(x, y, z);
if(world.isRemote) {
player.addChatMessage(new ChatComponentText(
"Block: " + I18n.format(block.getUnlocalizedName() + ".name") + " (" + block.getUnlocalizedName() + ")"
));
player.addChatMessage(new ChatComponentText(
"Meta: " + world.getBlockMetadata(x, y, z)
));
}
if(!world.isRemote) {
if(te == null) {
player.addChatMessage(new ChatComponentText(
"Tile Entity: none"));
} else {
if(te instanceof TileEntityDummy) {
player.addChatMessage(new ChatComponentText(
"Dummy Block, references TE at " + ((TileEntityDummy)te).targetX + " / " + ((TileEntityDummy)te).targetY + " / " + ((TileEntityDummy)te).targetZ));
te = world.getTileEntity(((TileEntityDummy)te).targetX, ((TileEntityDummy)te).targetY, ((TileEntityDummy)te).targetZ);
}
String[] parts = te.toString().split("\\.");
if(parts.length == 0)
parts = new String[]{"error"};
String post = parts[parts.length - 1];
String name = post.split("@")[0];
player.addChatMessage(new ChatComponentText(
"Tile Entity: " + name));
if(te instanceof IInventory) {
player.addChatMessage(new ChatComponentText(
"Slots: " + ((IInventory)te).getSizeInventory()));
}
if(te instanceof IEnergyConnector) {
player.addChatMessage(new ChatComponentText(
"Electricity: " + ((IEnergyConnector)te).getPower() + " HE"));
}
if(te instanceof IFluidDuct) {
player.addChatMessage(new ChatComponentText(
"Duct Type: " + ((IFluidDuct)te).getType().getLocalizedName()));
}
if(te instanceof TileEntityPylon) {
/**
* this is a smoldering crater
*/
}
if(te instanceof TileEntityLockableBase) {
player.addChatMessage(new ChatComponentText(
"Locked: " + ((TileEntityLockableBase)te).isLocked()));
if(((TileEntityLockableBase)te).isLocked()) {
//player.addChatMessage(new ChatComponentText(
// "Pins: " + ((TileEntityLockableBase)te).getPins()));
player.addChatMessage(new ChatComponentText(
"Pick Chance: " + (((TileEntityLockableBase)te).getMod() * 100D) + "%"));
}
}
}
player.addChatMessage(new ChatComponentText(
"----------------------------"
));
}
return true;
}
}

View File

@ -1,6 +1,6 @@
package com.hbm.packet;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyHandlerMK2;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
@ -55,9 +55,9 @@ public class AuxElectricityPacket implements IMessage {
try {
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
if (te instanceof IEnergyUser) {
if (te instanceof IEnergyHandlerMK2) {
IEnergyUser gen = (IEnergyUser) te;
IEnergyHandlerMK2 gen = (IEnergyHandlerMK2) te;
gen.setPower(m.charge);
}
} catch (Exception x) { }

View File

@ -68,7 +68,6 @@ public class TileMappings {
put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer");
put(TileEntityMachineBattery.class, "tileentity_battery");
put(TileEntityCapacitor.class, "tileentity_capacitor");
put(TileEntityMachineCoal.class, "tileentity_coal");
put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner");
put(TileEntityRedBarrel.class, "tileentity_barrel");
put(TileEntityYellowBarrel.class, "tileentity_nukebarrel");

View File

@ -64,8 +64,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne
public void updateEntity() {
if (!worldObj.isRemote) {
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.subscribeToAllAround(tank.getTankType(), this);
watts = MathHelper.clamp_int(watts, 1, 100);

View File

@ -19,7 +19,6 @@ import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.world.machine.FWatz;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
@ -34,7 +33,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider {
public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider {
public long power;
public final static long maxPower = 10000000000L;
@ -281,7 +280,6 @@ public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedI
if(!worldObj.isRemote && this.isStructureValid(this.worldObj)) {
for(DirPos pos : this.getConPos()) {
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.trySubscribe(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
@ -387,21 +385,6 @@ public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedI
public boolean isRunning() {
return FWatz.getPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord) && this.isStructureValid(worldObj);
}
@Override
public long getMaxPower() {
return this.maxPower;
}
@Override
public long getPower() {
return power;
}
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public void setFillForSync(int fill, int index) {

View File

@ -21,7 +21,7 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -37,7 +37,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUser, IGUIProvider {
public class TileEntityHadron extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider {
public long power;
public static final long maxPower = 10000000;

View File

@ -4,12 +4,12 @@ import com.hbm.blocks.machine.BlockHadronPower;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver {
public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver {
public long power;

View File

@ -7,7 +7,7 @@ import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.tile.IHeatSource;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
@ -17,7 +17,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver, IInfoProviderEC {
public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyReceiverMK2, INBTPacketReceiver, IInfoProviderEC {
public long power;
public int heatEnergy;

View File

@ -5,14 +5,14 @@ import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IInfoProviderEC;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC {
public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC {
public long power;
public long maxPower = 500;
@ -42,7 +42,7 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne
power = maxPower;
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
}

View File

@ -13,7 +13,7 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
@ -27,8 +27,9 @@ import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IInfoProviderEC {
private ItemStack slots[];
@ -315,8 +316,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements
boolean flag1 = false;
if(!worldObj.isRemote) {
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
if(hasPower() && canProcess())
{

View File

@ -23,7 +23,7 @@ import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
@ -39,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider {
public long power;
public long maxPower = 2_000;

View File

@ -13,14 +13,14 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate;
import com.hbm.util.InventoryUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider {
public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider {
public long power;
public int[] progress;

View File

@ -10,7 +10,7 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.ItemStackUtil;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
@ -23,8 +23,9 @@ import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyUser, IGUIProvider {
public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider {
public static final String MODE_EXACT = "exact";
public static final String MODE_WILDCARD = "wildcard";
@ -146,7 +147,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
if(!worldObj.isRemote) {
this.power = Library.chargeTEFromItems(slots, 20, power, maxPower);
this.updateStandardConnections(worldObj, this);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
if(!this.recipes.isEmpty() && this.power >= this.consumption) {
IRecipe recipe = this.recipes.get(recipeIndex);

View File

@ -21,8 +21,8 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
@ -38,7 +38,7 @@ import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver, IGUIProvider {
public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider {
private ItemStack slots[];

View File

@ -18,7 +18,7 @@ import com.hbm.util.BobMathUtil;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.I18nUtil;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -31,8 +31,9 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public int progress;
public long power;
@ -155,8 +156,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement
public void updateEntity() {
if(!worldObj.isRemote) {
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
power = Library.chargeTEFromItems(slots, 1, power, maxPower);

View File

@ -1,16 +1,12 @@
package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.UpgradeManager;
import com.hbm.inventory.container.ContainerMachineChemplant;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIMachineChemplant;
@ -29,7 +25,7 @@ import com.hbm.util.I18nUtil;
import com.hbm.util.InventoryUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -46,7 +42,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider {
public long power;
public static final long maxPower = 100000;
@ -78,7 +74,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
tanks = new FluidTank[4];
for(int i = 0; i < 4; i++) {
tanks[i] = new FluidTank(Fluids.NONE, 24_000, i);
tanks[i] = new FluidTank(Fluids.NONE, 24_000);
}
}
@ -123,10 +119,6 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
loadItems();
unloadItems();
if(worldObj.getTotalWorldTime() % 10 == 0) {
this.fillFluidInit(tanks[2].getTankType());
this.fillFluidInit(tanks[3].getTankType());
}
if(worldObj.getTotalWorldTime() % 20 == 0) {
this.updateConnections();
}
@ -511,106 +503,6 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
public long getMaxPower() {
return this.maxPower;
}
@Override
public void setFillForSync(int fill, int index) {
if(index >= 0 && index < tanks.length) tanks[index].setFill(fill);
}
@Override
public void setFluidFill(int fill, FluidType type) {
for(FluidTank tank : tanks) {
if(tank.getTankType() == type) {
tank.setFill(fill);
return;
}
}
}
@Override
public void setTypeForSync(FluidType type, int index) {
if(index >= 0 && index < tanks.length) tanks[index].setTankType(type);
}
@Override
public int getFluidFill(FluidType type) {
for(FluidTank tank : tanks) {
if(tank.getTankType() == type) {
return tank.getFill();
}
}
return 0;
}
@Override
public int getMaxFluidFill(FluidType type) {
for(int i = 0; i < 2; i++) {
if(tanks[i].getTankType() == type) {
return tanks[i].getMaxFill();
}
}
return 0;
}
@Override
public void fillFluidInit(FluidType type) {
/*
* ####
* X####X
* X##O#X
* ####
*/
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite();
ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN);
fillFluid(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, this.getTact(), type);
fillFluid(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, this.getTact(), type);
fillFluid(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, this.getTact(), type);
fillFluid(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, this.getTact(), type);
}
@Override
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public boolean getTact() {
return worldObj.getTotalWorldTime() % 20 < 10;
}
List<IFluidAcceptor>[] lists = new List[] {
new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList()
};
@Override
public List<IFluidAcceptor> getFluidList(FluidType type) {
for(int i = 0; i < tanks.length; i++) {
if(tanks[i].getTankType() == type) {
return lists[i];
}
}
return new ArrayList();
}
@Override
public void clearFluidList(FluidType type) {
for(int i = 0; i < tanks.length; i++) {
if(tanks[i].getTankType() == type) {
lists[i].clear();
}
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {

View File

@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.InventoryUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidUser;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
@ -32,7 +32,7 @@ import net.minecraft.tileentity.TileEntity;
* Tanks follow the order R1(I1, I2, O1, O2), R2(I1, I2, O1, O2) ...
* @author hbm
*/
public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyUser, IFluidUser, IGUIProvider {
public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidUser, IGUIProvider {
public long power;
public int[] progress;

View File

@ -1,33 +0,0 @@
package com.hbm.tileentity.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.tileentity.TileEntityMachineBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
@Deprecated
public class TileEntityMachineCoal extends TileEntityMachineBase implements ISidedInventory {
public TileEntityMachineCoal() {
super(4);
}
@Override
public String getName() {
return "container.machineCoal";
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
worldObj.setBlockToAir(xCoord, yCoord, zCoord);
EntityItem drop = new EntityItem(worldObj);
drop.setEntityItemStack(new ItemStack(ModBlocks.machine_wood_burner));
drop.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
worldObj.spawnEntityInWorld(drop);
}
}
}

View File

@ -20,7 +20,7 @@ import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -33,7 +33,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
public boolean isOn = false;
public static long maxPower = 2_500_000;
@ -52,7 +52,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin
public TileEntityMachineCombustionEngine() {
super(5, 50);
this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0);
this.tank = new FluidTank(Fluids.DIESEL, 24_000);
}
@Override
@ -105,7 +105,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin
this.power = Library.chargeItemsFromTE(slots, 3, power, power);
for(DirPos pos : getConPos()) {
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}

View File

@ -23,7 +23,7 @@ import com.hbm.util.I18nUtil;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -37,7 +37,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider {
public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
public FluidTank[] tanks;
public long power;

View File

@ -22,8 +22,8 @@ import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -38,7 +38,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider {
public long power;
public static final long maxPower = 1000000;

View File

@ -35,7 +35,7 @@ import com.hbm.util.I18nUtil;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -52,7 +52,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC {
public long power;
public static final long maxPower = 100000000;

View File

@ -25,8 +25,8 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
@ -39,7 +39,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC {
public long power;
public int soundCycle = 0;
@ -132,7 +132,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
if(!worldObj.isRemote) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}

View File

@ -16,7 +16,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.I18nUtil;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -30,7 +30,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public long power = 0;
public final static long maxPower = 50000;

View File

@ -14,8 +14,8 @@ import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.I18nUtil;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
@ -29,7 +29,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider {
// HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE
// thanks Martin, vaer and Bob for the help

View File

@ -35,7 +35,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.conveyor.IConveyorBelt;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
@ -58,7 +58,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
public static final long maxPower = 1_000_000;
public long power;

View File

@ -17,7 +17,7 @@ import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@ -31,7 +31,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser, IUpgradeInfoProvider {
public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyReceiverMK2, IUpgradeInfoProvider {
public long power;
public static final long maxPower = 1_000_000;

View File

@ -19,7 +19,7 @@ import com.hbm.util.CompatEnergyControl;
import com.hbm.util.InventoryUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -36,7 +36,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
//epic!
public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC {
public long power;
public int progress;

View File

@ -1,24 +1,17 @@
package com.hbm.tileentity.machine;
import java.io.IOException;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.inventory.container.ContainerIGenerator;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Flammable;
import com.hbm.inventory.gui.GUIIGenerator;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.fluid.IFluidStandardReceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
@ -34,7 +27,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidAcceptor, IEnergyGenerator, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC {
public long power;
public int spin;
@ -66,37 +59,6 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement
protected long output;
@Override
public String getConfigName() {
return "igen";
}
@Override
public void readIfPresent(JsonObject obj) {
maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower);
waterCap = IConfigurableMachine.grab(obj, "I:waterCap", waterCap);
oilCap = IConfigurableMachine.grab(obj, "I:oilCap", oilCap);
lubeCap = IConfigurableMachine.grab(obj, "I:lubeCap", lubeCap);
coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate2", coalGenRate);
rtgHeatMult = IConfigurableMachine.grab(obj, "D:rtgHeatMult", rtgHeatMult);
waterRate = IConfigurableMachine.grab(obj, "I:waterRate", waterRate);
lubeRate = IConfigurableMachine.grab(obj, "I:lubeRate", lubeRate);
fluidHeatDiv = IConfigurableMachine.grab(obj, "D:fluidHeatDiv", fluidHeatDiv);
}
@Override
public void writeConfig(JsonWriter writer) throws IOException {
writer.name("L:powerCap").value(maxPower);
writer.name("I:waterCap").value(waterCap);
writer.name("I:oilCap").value(oilCap);
writer.name("I:lubeCap").value(lubeCap);
writer.name("I:solidFuelRate2").value(coalGenRate);
writer.name("D:rtgHeatMult").value(rtgHeatMult);
writer.name("I:waterRate").value(waterRate);
writer.name("I:lubeRate").value(lubeRate);
writer.name("D:fluidHeatDiv").value(fluidHeatDiv);
}
public TileEntityMachineIGenerator() {
super(21);
tanks = new FluidTank[3];
@ -274,47 +236,6 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement
FluidType type = tanks[1].getTankType();
return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 5000L : fluidHeatDiv)) : 0;
}
@Override
public void setFillForSync(int fill, int index) {
tanks[index].setFill(fill);
}
@Override
public void setFluidFill(int fill, FluidType type) {
if(type == Fluids.WATER)
tanks[0].setFill(fill);
else if(type == Fluids.LUBRICANT)
tanks[2].setFill(fill);
else if(tanks[1].getTankType() == type)
tanks[1].setFill(fill);
}
@Override
public void setTypeForSync(FluidType type, int index) {
tanks[index].setTankType(type);
}
@Override
public int getFluidFill(FluidType type) {
for(int i = 0; i < 3; i++)
if(tanks[i].getTankType() == type)
return tanks[i].getFill();
return 0;
}
@Override
public int getMaxFluidFill(FluidType type) {
for(int i = 0; i < 3; i++)
if(tanks[i].getTankType() == type)
return tanks[i].getMaxFill();
return 0;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
@ -345,26 +266,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public void setPower(long power) {
this.power = power;
}
@Override
public long getPower() {
return this.power;
}
@Override
public long getMaxPower() {
return this.maxPower;
}
@Override
public FluidTank[] getReceivingTanks() {
return new FluidTank[] { tanks[0], tanks[1], tanks[2] };

View File

@ -24,7 +24,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.Optional;
@ -44,7 +44,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
public long power;
public static final long maxPower = 100000000;
@ -92,7 +92,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme
fillFluidInit(tanks[1].getTankType());
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
this.sendPower(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite());
this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite());
for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
for(DirPos pos : getConPos()) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());

View File

@ -31,7 +31,7 @@ import com.hbm.util.InventoryUtil;
import api.hbm.block.IDrillInteraction;
import api.hbm.block.IMiningDrill;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardSender;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -54,7 +54,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider {
public long power;
public int age = 0;

View File

@ -21,7 +21,7 @@ import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -34,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider {
public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
public long power;
public static final long maxPower = 10_000;

View File

@ -16,7 +16,7 @@ import com.hbm.lib.Library;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider {
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider {
public long power;
public static final long maxPower = 100000000;

View File

@ -4,10 +4,10 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyUser {
public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyReceiverMK2 {
public long power;
public static final long maxPower = 10_000;

View File

@ -11,7 +11,7 @@ import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.RTGUtil;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
@ -26,7 +26,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC {
private ItemStack slots[];
@ -211,7 +211,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided
if(!worldObj.isRemote) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
heat = RTGUtil.updateRTGs(slots, slot_io);

View File

@ -14,7 +14,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.Tuple.Triplet;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -30,7 +30,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyGenerator, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyProviderMK2, IGUIProvider, IInfoProviderEC {
public int[] progress = new int[12];
public int[] maxProgress = new int[12];
@ -60,7 +60,7 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE
this.output = 0;
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
this.sendPower(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite());
this.tryProvide(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite());
//check if reload necessary for any queues
for(int i = 0; i < 12; i++) {

View File

@ -32,7 +32,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.world.WorldUtil;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.entity.IRadarDetectable;
import api.hbm.entity.IRadarDetectableNT;
import api.hbm.entity.IRadarDetectableNT.RadarScanParams;
@ -60,7 +60,7 @@ import net.minecraft.world.WorldServer;
* Now with SmЯt lag-free entity detection! (patent pending)
* @author hbm
*/
public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IConfigurableMachine, IControlReceiver {
public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IConfigurableMachine, IControlReceiver {
public boolean scanMissiles = true;
public boolean scanShells = true;

View File

@ -24,7 +24,7 @@ import com.hbm.util.RTGUtil;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
@ -39,7 +39,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC {
public long power;
public static final int maxPower = 1000000;
@ -144,7 +144,7 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement
}
for(DirPos pos : getConPos()) {
this.sendPower(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir());
this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir());
this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir());
if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir());
if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir());

View File

@ -5,12 +5,12 @@ import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IInfoProviderEC;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyGenerator, IInfoProviderEC {
public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC {
public long power;
public static final long maxPower = 100000;
@ -22,11 +22,11 @@ public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnerg
if(!worldObj.isRemote) {
this.sendPower(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X);
this.sendPower(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X);
this.sendPower(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z);
this.sendPower(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z);
this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y);
this.tryProvide(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X);
this.tryProvide(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X);
this.tryProvide(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z);
this.tryProvide(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z);
this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y);
if(worldObj.getTotalWorldTime() % 20 == 0)
gen = checkStructure() * 15;

View File

@ -12,8 +12,8 @@ import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
@ -24,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyUser, IGUIProvider {
public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider {
public long power = 0;
public int process = 0;

View File

@ -1,47 +1,17 @@
package com.hbm.tileentity.machine;
import java.io.IOException;
import java.util.HashMap;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.inventory.container.ContainerMachineSelenium;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Combustible;
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
import com.hbm.inventory.gui.GUIMachineSelenium;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider {
public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory {
private ItemStack slots[];
@ -51,27 +21,11 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem
public FluidTank tank;
public int pistonCount = 0;
public static long maxPower = 250000;
public static int fluidCap = 16000;
public static double pistonExp = 1.0D;
public static boolean shutUp = false;
public static HashMap<FuelGrade, Double> fuelEfficiency = new HashMap();
static {
fuelEfficiency.put(FuelGrade.LOW, 0.75D);
fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D);
fuelEfficiency.put(FuelGrade.HIGH, 0.25D);
fuelEfficiency.put(FuelGrade.AERO, 0.00D);
}
private static final int[] slots_top = new int[] { 0 };
private static final int[] slots_bottom = new int[] { 1, 2 };
private static final int[] slots_side = new int[] { 2 };
private String customName;
public TileEntityMachineSeleniumEngine() {
slots = new ItemStack[14];
tank = new FluidTank(Fluids.DIESEL, fluidCap, 0);
}
@Override
@ -211,225 +165,16 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side);
return new int[0];
}
@Override
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
return this.isItemValidForSlot(i, itemStack);
}
@Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
if (i == 1)
if (itemStack.getItem() == ModItems.canister_empty || itemStack.getItem() == ModItems.tank_steel)
return true;
if (i == 2)
if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge())
return true;
public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) {
return false;
}
public long getPowerScaled(long i) {
return (power * i) / powerCap;
}
@Override
public void updateEntity() {
if (!worldObj.isRemote) {
this.subscribeToAllAround(tank.getTankType(), this);
this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN);
pistonCount = countPistons();
//Tank Management
tank.setType(11, 12, slots);
tank.loadTank(9, 10, slots);
tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
FluidType type = tank.getTankType();
if(type == Fluids.NITAN)
powerCap = maxPower * 10;
else
powerCap = maxPower;
// Battery Item
power = Library.chargeItemsFromTE(slots, 13, power, powerCap);
if(this.pistonCount > 2)
generate();
PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pistonCount, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150));
PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, (int)powerCap, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
}
}
public int countPistons() {
int count = 0;
for(int i = 0; i < 9; i++) {
if(slots[i] != null && slots[i].getItem() == ModItems.piston_selenium)
count++;
}
return count;
}
public boolean hasAcceptableFuel() {
return getHEFromFuel() > 0;
}
public long getHEFromFuel() {
return getHEFromFuel(tank.getTankType());
}
public static long getHEFromFuel(FluidType type) {
if(type.hasTrait(FT_Combustible.class)) {
FT_Combustible fuel = type.getTrait(FT_Combustible.class);
FuelGrade grade = fuel.getGrade();
double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0;
return (long) (fuel.getCombustionEnergy() / 1000L * efficiency);
}
return 0;
}
public void generate() {
if (hasAcceptableFuel()) {
if (tank.getFill() > 0) {
if(!shutUp) {
if (soundCycle == 0) {
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(1.0F), 0.5F);
}
soundCycle++;
if (soundCycle >= 3)
soundCycle = 0;
}
tank.setFill(tank.getFill() - this.pistonCount);
if(tank.getFill() < 0)
tank.setFill(0);
power += getHEFromFuel() * Math.pow(this.pistonCount, pistonExp);
if(power > powerCap)
power = powerCap;
}
}
}
@Override
public long getPower() {
return power;
}
@Override
public long getMaxPower() {
return maxPower;
}
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public void setFillForSync(int fill, int index) {
tank.setFill(fill);
}
@Override
public void setTypeForSync(FluidType type, int index) {
tank.setTankType(type);
}
@Override
public int getMaxFluidFill(FluidType type) {
return type == this.tank.getTankType() ? tank.getMaxFill() : 0;
}
@Override
public int getFluidFill(FluidType type) {
return type == this.tank.getTankType() ? tank.getFill() : 0;
}
@Override
public void setFluidFill(int i, FluidType type) {
if(type == tank.getTankType())
tank.setFill(i);
}
@Override
public boolean canConnect(ForgeDirection dir) {
return dir == ForgeDirection.DOWN;
}
@Override
public String getConfigName() {
return "radialengine";
}
@Override
public void readIfPresent(JsonObject obj) {
maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower);
fluidCap = IConfigurableMachine.grab(obj, "I:fuelCap", fluidCap);
pistonExp = IConfigurableMachine.grab(obj, "D:pistonGenExponent", pistonExp);
if(obj.has("D[:efficiency")) {
JsonArray array = obj.get("D[:efficiency").getAsJsonArray();
for(FuelGrade grade : FuelGrade.values()) {
fuelEfficiency.put(grade, array.get(grade.ordinal()).getAsDouble());
}
}
shutUp = IConfigurableMachine.grab(obj, "B:shutUp", shutUp);
}
@Override
public void writeConfig(JsonWriter writer) throws IOException {
writer.name("L:powerCap").value(maxPower);
writer.name("I:fuelCap").value(fluidCap);
writer.name("D:pistonGenExponent").value(pistonExp);
String info = "Fuel grades in order: ";
for(FuelGrade grade : FuelGrade.values()) info += grade.name() + " ";
info = info.trim();
writer.name("INFO").value(info);
writer.name("D[:efficiency").beginArray().setIndent("");
for(FuelGrade grade : FuelGrade.values()) {
double d = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0.0D;
writer.value(d);
}
writer.endArray().setIndent(" ");
writer.name("B:shutUp").value(shutUp);
}
@Override
public FluidTank[] getAllTanks() {
return new FluidTank[] {tank};
}
@Override
public FluidTank[] getReceivingTanks() {
return new FluidTank[] {tank};
}
@Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerMachineSelenium(player.inventory, this);
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIMachineSelenium(player.inventory, this);
public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) {
return false;
}
}

View File

@ -10,8 +10,8 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -25,7 +25,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider {
public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider {
private ItemStack slots[];

View File

@ -6,7 +6,7 @@ import java.util.List;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.energymk2.IEnergyReceiverMK2;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.ReflectionHelper;
import net.minecraft.entity.Entity;
@ -27,8 +27,9 @@ import net.minecraft.util.IntHashMap;
import net.minecraft.util.MathHelper;
import net.minecraft.world.WorldServer;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver {
public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyReceiverMK2, INBTPacketReceiver {
public long power = 0;
public int targetX = -1;
@ -42,7 +43,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements
public void updateEntity() {
if(!this.worldObj.isRemote) {
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
if(this.targetY != -1) {
List<Entity> entities = this.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(this.xCoord + 0.25, this.yCoord, this.zCoord + 0.25, this.xCoord + 0.75, this.yCoord + 2, this.zCoord + 0.75));

View File

@ -16,8 +16,8 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.Optional;
@ -39,7 +39,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
private ItemStack slots[];
@ -239,7 +239,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS
this.subscribeToAllAround(tanks[0].getTankType(), this);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
tanks[0].setType(0, 1, slots);
tanks[0].loadTank(2, 3, slots);

View File

@ -21,7 +21,7 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.Optional;
@ -41,7 +41,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC {
public long power;
public static final long maxPower = 1000000L;
@ -136,7 +136,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement
//do net/battery deductions first...
power = Library.chargeItemsFromTE(slots, 0, power, maxPower);
this.sendPower(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power
this.tryProvide(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power
//...and then cap it. Prevents potential future cases where power would be limited due to the fuel being too strong and the buffer too small.
if(this.power > this.maxPower)

View File

@ -32,7 +32,7 @@ import com.hbm.util.CompatEnergyControl;
import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -51,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public long power;
public static final long maxPower = 1_000_000;
@ -182,7 +182,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
power = Library.chargeItemsFromTE(slots, 3, power, power);
for(DirPos pos : getConPos()) {
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(this.blood.getFill() > 0) this.sendFluid(blood, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir());

View File

@ -19,7 +19,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardReceiver;
import api.hbm.tile.IInfoProviderEC;
import cpw.mods.fml.relauncher.Side;
@ -33,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC {
public long power;
public static final long maxPower = 100_000;
@ -73,7 +73,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower);
for(DirPos pos : getConPos()) {
if(power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(power > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}

View File

@ -23,6 +23,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent {
@ -48,8 +49,8 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg
public void updateEntity() {
if(!worldObj.isRemote) {
this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.power = Library.chargeTEFromItems(slots, 2, power, maxPower);

View File

@ -1,26 +1,20 @@
package com.hbm.tileentity.machine;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Coolable;
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -30,14 +24,13 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
public long powerBuffer;
public float rotor;
public float lastRotor;
private float syncRotor;
public List<IFluidAcceptor> list2 = new ArrayList();
public FluidTank[] tanks;
private int turnProgress;
@ -51,8 +44,8 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
public TileEntitySteamEngine() {
tanks = new FluidTank[2];
tanks[0] = new FluidTank(Fluids.STEAM, steamCap, 0);
tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap, 1);
tanks[0] = new FluidTank(Fluids.STEAM, steamCap);
tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap);
}
@Override
@ -117,12 +110,10 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
tanks[1].writeToNBT(data, "w");
for(DirPos pos : getConPos()) {
if(this.powerBuffer > 0)
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(this.powerBuffer > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}
if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType());
INBTPacketReceiver.networkPack(this, data, 150);
} else {
@ -168,69 +159,6 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
tanks[0].writeToNBT(nbt, "s");
tanks[1].writeToNBT(nbt, "w");
}
@Override
public void fillFluidInit(FluidType type) {
for(DirPos pos : getConPos()) fillFluid(pos.getX(), pos.getY(), pos.getZ(), getTact(), type);
}
@Override
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public boolean getTact() {
return worldObj.getTotalWorldTime() % 2 == 0;
}
@Override
public void setFluidFill(int i, FluidType type) {
if(type == tanks[0].getTankType())
tanks[0].setFill(i);
else if(type == tanks[1].getTankType())
tanks[1].setFill(i);
}
@Override
public int getFluidFill(FluidType type) {
if(type == tanks[0].getTankType())
return tanks[0].getFill();
else if(type == tanks[1].getTankType())
return tanks[1].getFill();
return 0;
}
@Override
public int getMaxFluidFill(FluidType type) {
if(type == tanks[0].getTankType())
return tanks[0].getMaxFill();
return 0;
}
@Override
public void setFillForSync(int fill, int index) {
if(index < 2 && tanks[index] != null)
tanks[index].setFill(fill);
}
@Override
public void setTypeForSync(FluidType type, int index) {
if(index < 2 && tanks[index] != null)
tanks[index].setTankType(type);
}
@Override
public List<IFluidAcceptor> getFluidList(FluidType type) {
return list2;
}
@Override
public void clearFluidList(FluidType type) {
list2.clear();
}
@Override
public AxisAlignedBB getRenderBoundingBox() {

View File

@ -13,7 +13,7 @@ import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IHeatSource;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -22,7 +22,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyGenerator, IConfigurableMachine {
public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyProviderMK2, IConfigurableMachine {
public long powerBuffer;
public int heat;
@ -95,7 +95,7 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack
if(hasCog) {
for(DirPos pos : getConPos()) {
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}
this.powerBuffer = 0;
} else {

View File

@ -1,7 +1,7 @@
package com.hbm.tileentity.machine.storage;
import api.hbm.energy.*;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
import api.hbm.tile.IInfoProviderEC;
import com.hbm.blocks.machine.MachineBattery;