five million billion impls

hopefully all fluid impls done outside of the rbmk stuff
Also implemented copy pasting of molten metals, copying from anything that holds molten metal, and pasting into outlets for filters
This commit is contained in:
70000hp 2024-08-24 13:40:53 -04:00
parent 65ae9b45ab
commit 5de273b5ba
59 changed files with 499 additions and 84 deletions

View File

@ -1,12 +1,14 @@
package com.hbm.tileentity;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.fluid.IFluidUser;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.BobMathUtil;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import java.util.ArrayList;
@ -16,7 +18,7 @@ public interface IFluidCopiable extends ICopiable {
* @return First type for the normal paste, second type for the alt paste, none if there is no alt paste support
*/
default int[] getFluidIDToCopy(){
IFluidStandardTransceiver tile = (IFluidStandardTransceiver) this;
IFluidUser tile = (IFluidUser) this;
ArrayList<Integer> types = new ArrayList<>();
for (FluidTank tank : tile.getAllTanks()) {
@ -28,8 +30,12 @@ public interface IFluidCopiable extends ICopiable {
}
default FluidTank getTankToPaste(){
IFluidStandardTransceiver tile = (IFluidStandardTransceiver) this;
return tile.getReceivingTanks() != null ? tile.getReceivingTanks()[0] : null;
TileEntity te = (TileEntity) this;
if (te instanceof IFluidStandardTransceiver) {
IFluidStandardTransceiver tile = (IFluidStandardTransceiver) this;
return tile.getReceivingTanks() != null ? tile.getReceivingTanks()[0] : null;
}
return null;
}
@Override

View File

@ -0,0 +1,32 @@
package com.hbm.tileentity;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.material.Mats;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public interface IMetalCopiable extends ICopiable {
int[] getMatsToCopy();
@Override
default NBTTagCompound getSettings(World world, int x, int y, int z){
NBTTagCompound tag = new NBTTagCompound();
if(getMatsToCopy().length > 0)
tag.setIntArray("matFilter", getMatsToCopy());
return tag;
}
@Override
default String[] infoForDisplay(World world, int x, int y, int z) {
int[] ids = getMatsToCopy();
String[] names = new String[ids.length];
for (int i = 0; i < ids.length; i++) {
names[i] = Mats.matById.get(ids[i]).getUnlocalizedName();
}
return names;
}
@Override
default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z){
};
}

View File

@ -5,6 +5,7 @@ import java.util.HashSet;
import java.util.Set;
import com.hbm.handler.CompatHandler;
import com.hbm.tileentity.IFluidCopiable;
import cpw.mods.fml.common.Optional;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
@ -56,7 +57,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 abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver, SimpleComponent, CompatHandler.OCComponent {
public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
/** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */
public static final HashMap<ComparableStack, Class<? extends EntityMissileBaseNT>> missiles = new HashMap();
@ -555,4 +556,14 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
}
throw new NoSuchMethodException();
}
@Override
public int[] getFluidIDToCopy() {
return new int[]{tanks[0].getTankType().getID(), tanks[1].getTankType().getID()};
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -13,6 +13,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.NBTPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
@ -36,7 +37,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent {
public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable {
public long power;
public static final long maxPower = 100000000000L;
@ -339,4 +340,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]);
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.machine;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.saveddata.TomSaveData;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
@ -12,7 +13,7 @@ import api.hbm.tile.IInfoProviderEC;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.EnumSkyBlock;
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC {
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC, IFluidCopiable {
public int age = 0;
public FluidTank[] tanks;
@ -118,4 +119,9 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, throughput);
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, throughput);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -22,7 +22,9 @@ import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IMetalCopiable;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BobMathUtil;
import com.hbm.util.CrucibleUtil;
import api.hbm.block.ICrucibleAcceptor;
@ -35,6 +37,7 @@ import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -45,7 +48,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine {
public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine, IMetalCopiable {
public int heat;
public int progress;
@ -417,7 +420,6 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
//if there's no materials in there at all, don't smelt
if(materials.isEmpty())
return false;
CrucibleRecipe recipe = getLoadedRecipe();
//needs to be true, will always be true if there's no recipe loaded
@ -601,4 +603,18 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
@Override
public int[] getMatsToCopy() {
ArrayList<Integer> types = new ArrayList<>();
for (MaterialStack stack : recipeStack) {
types.add(stack.material.id);
}
for (MaterialStack stack : wasteStack) {
types.add(stack.material.id);
}
return BobMathUtil.intCollectionToArray(types);
}
}

View File

@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energymk2.IEnergyReceiverMK2;
@ -9,7 +10,7 @@ import api.hbm.fluid.IFluidStandardTransceiver;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver {
public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IFluidCopiable {
public long power = 0;
public FluidTank[] tanks;
@ -121,4 +122,9 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
public FluidTank[] getAllTanks() {
return tanks;
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -25,9 +25,7 @@ import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.*;
import com.hbm.util.BobMathUtil;
import com.hbm.util.CrucibleUtil;
import com.hbm.util.I18nUtil;
@ -50,7 +48,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable, IMetalCopiable {
public long power;
public static final long maxPower = 20000000;
@ -547,4 +545,50 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn
if(type == UpgradeType.OVERDRIVE) return 3;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return tanks[0];
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound tag = new NBTTagCompound();
if(getFluidIDToCopy().length > 0)
tag.setIntArray("fluidID", getFluidIDToCopy());
if(getMatsToCopy().length > 0)
tag.setIntArray("matFilter", getMatsToCopy());
return tag;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z);
}
@Override
public String[] infoForDisplay(World world, int x, int y, int z) {
ArrayList<String> names = new ArrayList<>();
int[] fluidIDs = getFluidIDToCopy();
int[] matIDs = getMatsToCopy();
for (int fluidID : fluidIDs) {
names.add(Fluids.fromID(fluidID).getUnlocalizedName());
}
for (int matID : matIDs) {
names.add(Mats.matById.get(matID).getUnlocalizedName());
}
return names.toArray(new String[0]);
}
@Override
public int[] getMatsToCopy() {
ArrayList<Integer> types = new ArrayList<>();
if(leftStack != null) types.add(leftStack.material.id);
if(rightStack != null) types.add(rightStack.material.id);
return BobMathUtil.intCollectionToArray(types);
}
}

View File

@ -1,10 +1,12 @@
package com.hbm.tileentity.machine;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.material.Mats;
import com.hbm.inventory.material.NTMMaterial;
import com.hbm.inventory.material.Mats.MaterialStack;
import api.hbm.block.ICrucibleAcceptor;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
@ -19,7 +21,7 @@ import net.minecraftforge.common.util.ForgeDirection;
* @author hbm
*
*/
public abstract class TileEntityFoundryBase extends TileEntity implements ICrucibleAcceptor {
public abstract class TileEntityFoundryBase extends TileEntity implements ICrucibleAcceptor, ICopiable {
public NTMMaterial type;
protected NTMMaterial lastType;
@ -142,4 +144,16 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
return standardAdd(world, x, y, z, side, stack);
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound nbt = new NBTTagCompound();
if(type != null) nbt.setIntArray("matFilter", new int[]{ type.id });
return nbt;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
}
}

View File

@ -1,5 +1,6 @@
package com.hbm.tileentity.machine;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.material.Mats;
import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.packet.AuxParticlePacketNT;
@ -9,13 +10,16 @@ import com.hbm.util.CrucibleUtil;
import api.hbm.block.ICrucibleAcceptor;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityFoundryOutlet extends TileEntityFoundryBase {
import java.util.ArrayList;
public class TileEntityFoundryOutlet extends TileEntityFoundryBase implements ICopiable {
public NTMMaterial filter = null;
public NTMMaterial lastFilter = null;
@ -121,4 +125,39 @@ public class TileEntityFoundryOutlet extends TileEntityFoundryBase {
nbt.setBoolean("invertFilter", this.invertFilter);
nbt.setShort("filter", this.filter == null ? -1 : (short) this.filter.id);
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound nbt = new NBTTagCompound();
nbt.setBoolean("invert", this.invertRedstone);
nbt.setBoolean("invertFilter", this.invertFilter);
if(filter != null){
nbt.setIntArray("matFilter", new int[]{ filter.id });
}
return nbt;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
if(nbt.hasKey("invert")) this.invertRedstone = nbt.getBoolean("invert");
if(nbt.hasKey("invertFilter")) this.invertFilter = nbt.getBoolean("invertFilter");
if(nbt.hasKey("matFilter")) {
int[] ids = nbt.getIntArray("matFilter");
if(ids.length > 0)
this.filter = Mats.matById.get(ids[index]);
}
}
@Override
public String[] infoForDisplay(World world, int x, int y, int z) {
ArrayList<String> info = new ArrayList<>();
info.add("copyTool.invertRedstone");
info.add("copyTool.invertFilter");
if (filter != null) info.add(filter.getUnlocalizedName());
return info.toArray(new String[0]);
}
}

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIFurnaceCombo;
import com.hbm.inventory.recipes.CombinationRecipes;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.Tuple.Pair;
@ -30,7 +31,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider {
public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IFluidCopiable {
public boolean wasOn;
public int progress;

View File

@ -19,6 +19,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.saveddata.TomSaveData;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -31,9 +32,10 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable {
public int heat;
public FluidTank[] tanks;

View File

@ -14,6 +14,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.saveddata.TomSaveData;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -26,8 +27,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable {
public int heat;
public FluidTank[] tanks;

View File

@ -224,13 +224,15 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem
NBTTagCompound tag = new NBTTagCompound();
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
tag.setInteger("burnRate", setting);
tag.setBoolean("isOn", isOn);
return tag;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, int x, int y, int z) {
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
int id = nbt.getIntArray("fluidID")[index];
tank.setTankType(Fluids.fromID(id));
setting = nbt.getInteger("burnRate");
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate");
}
}

View File

@ -13,6 +13,7 @@ import com.hbm.items.machine.ItemICFPellet;
import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -39,7 +40,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 TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent {
public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
public long laser;
public long maxLaser;

View File

@ -12,6 +12,7 @@ import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemICFPellet;
import com.hbm.items.machine.ItemICFPellet.EnumICFFuel;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -26,7 +27,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class TileEntityICFPress extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider {
public class TileEntityICFPress extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
public FluidTank[] tanks;
public int muon;

View File

@ -25,6 +25,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -52,7 +53,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 TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent {
public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
public long power;
public static final long maxPower = 10000000;
@ -666,4 +667,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
}
throw new NoSuchMethodException();
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -16,10 +16,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IConditionalInvAccess;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.*;
import com.hbm.util.I18nUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -41,7 +38,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
public long power;
public long maxPower = 2_000;
@ -392,4 +389,9 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements
if(type == UpgradeType.POWER) return 3;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIAssemfac;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
@ -31,7 +32,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider {
public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable {
public AssemblerArm[] arms;
@ -476,4 +477,9 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im
if(type == UpgradeType.OVERDRIVE) return 12;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -11,6 +11,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.ModDamageSource;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
@ -29,7 +30,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver {
public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver, IFluidCopiable {
public static final HashSet<FluidType> acceptedFuels = new HashSet();
@ -342,4 +343,8 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -14,6 +14,7 @@ import com.hbm.inventory.gui.GUIChemfac;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
@ -32,7 +33,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider {
public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider, IFluidCopiable {
float rotSpeed;
public float rot;
@ -389,4 +390,9 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp
if(type == UpgradeType.OVERDRIVE) return 12;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -14,6 +14,7 @@ import com.hbm.items.machine.ItemPistons.EnumPistonType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.EnumUtil;
@ -32,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 IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable {
public boolean isOn = false;
public static long maxPower = 2_500_000;
@ -318,4 +319,21 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin
this.markChanged();
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound tag = new NBTTagCompound();
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
tag.setBoolean("isOn", isOn);
tag.setInteger("burnRate", setting);
return tag;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
int id = nbt.getIntArray("fluidID")[index];
tank.setTankType(Fluids.fromID(id));
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate");
}
}

View File

@ -15,6 +15,7 @@ import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -37,7 +38,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, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable {
public FluidTank[] tanks;
public long power;
@ -366,4 +367,34 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement
if(type == UpgradeType.OVERDRIVE) return 9;
return 0;
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound tag = new NBTTagCompound();
tag.setIntArray("fluidID", getFluidIDToCopy());
tag.setInteger("compression", tanks[0].getPressure());
return tag;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
if(nbt.hasKey("compression")) {
int compression = nbt.getInteger("compression");
if (compression != tanks[0].getPressure()) {
tanks[0].withPressure(compression);
CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression));
if (recipe == null) {
tanks[1].withPressure(compression + 1);
} else {
tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type);
}
this.markChanged();
}
}
IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z);
}
}

View File

@ -16,10 +16,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IConditionalInvAccess;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.*;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.I18nUtil;
import com.hbm.util.Tuple.Pair;
@ -42,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 100000000;
@ -433,4 +430,9 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? getConsumption() : 0);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -19,6 +19,7 @@ import com.hbm.inventory.gui.GUIMachineDiesel;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachinePolluting;
import com.hbm.util.CompatEnergyControl;
@ -37,7 +38,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public int soundCycle = 0;

View File

@ -15,6 +15,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -30,7 +31,7 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver {
public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver, IFluidCopiable {
public FluidTank tank;
@ -157,4 +158,9 @@ public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFlu
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -24,6 +24,7 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.items.special.ItemBedrockOreBase;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -60,7 +61,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
public static final long maxPower = 1_000_000;
public long power;
@ -879,4 +880,9 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
if(type == UpgradeType.POWER) return 3;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -23,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver {
public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
public FluidTank input;
public FluidTank output;

View File

@ -15,6 +15,7 @@ import com.hbm.inventory.gui.GUIMachineLargeTurbine;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -40,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 TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent {
public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable {
public long power;
public static final long maxPower = 100000000;

View File

@ -20,6 +20,7 @@ import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -46,7 +47,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
public long power;
public static final long maxPower = 100_000;

View File

@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIPlasmaHeater;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -29,7 +30,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider {
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
public long power;
public static final long maxPower = 100000000;

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -22,7 +23,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine, IFluidCopiable {
public static final HashSet<Block> validBlocks = new HashSet();
@ -200,4 +201,9 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -12,6 +12,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemRTGPellet;
import com.hbm.items.machine.ItemRTGPelletDepleted;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -34,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final int maxPower = 1000000;

View File

@ -16,6 +16,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -38,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineSolderingStation extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider {
public class TileEntityMachineSolderingStation extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
public long power;
public long maxPower = 2_000;
@ -363,4 +364,9 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp
if(type == UpgradeType.POWER) return 3;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -12,6 +12,7 @@ import com.hbm.inventory.gui.GUIMachineTurbine;
import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
@ -39,7 +40,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, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent {
public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable {
private ItemStack slots[];

View File

@ -18,6 +18,7 @@ import com.hbm.items.machine.IItemFluidIdentifier;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -42,7 +43,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, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent {
public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable {
public long power;
public static final long maxPower = 1000000L;

View File

@ -21,6 +21,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachinePolluting;
@ -47,7 +48,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 1_000_000;

View File

@ -14,6 +14,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.lib.Library;
import com.hbm.module.ModuleBurnTime;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CompatEnergyControl;
@ -34,7 +35,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, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC {
public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 100_000;
@ -321,4 +322,9 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
if(this.liquidBurn) data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, 1D);
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, power);
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.machine;
import com.hbm.handler.CompatHandler;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.container.ContainerMicrowave;
import com.hbm.inventory.gui.GUIMicrowave;
import com.hbm.lib.Library;
@ -29,7 +30,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 TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent, CompatHandler.OCComponent {
public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent, CompatHandler.OCComponent, ICopiable {
public long power;
public static final long maxPower = 50000;
@ -254,4 +255,21 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIMicrowave(player.inventory, this);
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound nbt = new NBTTagCompound();
nbt.setInteger("microSpeed", speed);
return null;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
if(nbt.hasKey("microSpeed")) speed = nbt.getInteger("microSpeed");
}
@Override
public String[] infoForDisplay(World world, int x, int y, int z) {
return new String[]{ "copyTool.speed"};
}
}

View File

@ -2,12 +2,14 @@ package com.hbm.tileentity.machine;
import java.util.HashSet;
import com.hbm.interfaces.ICopiable;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.fluid.IFluidStandardTransceiver;
@ -19,7 +21,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChunkCoordinates;
public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver {
public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver, IFluidCopiable {
private FluidTank water;
private FluidTank steam;
@ -137,4 +139,9 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
water.deserialize(buf);
steam.deserialize(buf);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -15,6 +15,7 @@ import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -37,7 +38,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider {
public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
public long power;
public static final long maxPower = 1000000;
@ -463,4 +464,9 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUISoyuzLauncher(player.inventory, this);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -10,6 +10,7 @@ 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.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -24,7 +25,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine, IFluidCopiable {
public long powerBuffer;
@ -214,4 +215,9 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
this.tanks[0].readFromNBT(nbt, "s");
this.tanks[1].readFromNBT(nbt, "w");
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -14,6 +14,7 @@ import com.hbm.inventory.gui.GUIStorageDrum;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemWasteLong;
import com.hbm.items.special.ItemWasteShort;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.ContaminationUtil;
@ -34,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidContainer, IFluidStandardSender, IGUIProvider {
public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidContainer, IFluidStandardSender, IGUIProvider, IFluidCopiable {
public FluidTank[] tanks;
private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
@ -280,4 +281,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIStorageDrum(player.inventory, this);
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -20,6 +20,7 @@ import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.Compat;
@ -44,7 +45,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable {
public FluidTank[] tanks;
public int heat;
@ -549,4 +550,9 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
public FluidTank[] getReceivingTanks() {
return new FluidTank[] { tanks[0] };
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -5,6 +5,7 @@ import com.hbm.inventory.FluidStack;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.recipes.CrackingRecipes;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.Tuple.Pair;
@ -17,7 +18,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver {
public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
public FluidTank[] tanks;
@ -193,4 +194,9 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl
public FluidTank[] getAllTanks() {
return tanks;
}
@Override
public FluidTank getTankToPaste() {
return tanks[0];
}
}

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.gui.GUIMachineCatalyticReformer;
import com.hbm.inventory.recipes.ReformingRecipes;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.TileEntityMachineBase;
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
public long power;
public static final long maxPower = 1_000_000;

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.gui.GUIMachineCoker;
import com.hbm.inventory.recipes.CokerRecipes;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.Tuple.Triplet;
@ -28,7 +29,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider {
public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider, IFluidCopiable {
public boolean wasOn;
public int progress;

View File

@ -8,6 +8,7 @@ import com.hbm.lib.Library;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IBufPacketReceiver;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -21,7 +22,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver {
public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
public FluidTank[] tanks;

View File

@ -19,6 +19,7 @@ import com.hbm.inventory.gui.GUIMachineGasFlare;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -43,7 +44,7 @@ import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 100000;
@ -338,4 +339,21 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed);
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output);
}
@Override
public NBTTagCompound getSettings(World world, int x, int y, int z) {
NBTTagCompound tag = new NBTTagCompound();
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
tag.setBoolean("isOn", isOn);
tag.setBoolean("doesBurn", doesBurn);
return tag;
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
int id = nbt.getIntArray("fluidID")[index];
tank.setTankType(Fluids.fromID(id));
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
if(nbt.hasKey("doesBurn")) doesBurn = nbt.getBoolean("doesBurn");
}
}

View File

@ -9,6 +9,7 @@ import com.hbm.inventory.gui.GUIMachineHydrotreater;
import com.hbm.inventory.recipes.HydrotreatingRecipes;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.TileEntityMachineBase;
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
public long power;
public static final long maxPower = 1_000_000;
@ -222,4 +223,9 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIMachineHydrotreater(player.inventory, this);
}
@Override
public FluidTank getTankToPaste() {
return tanks[0];
}
}

View File

@ -14,6 +14,7 @@ import com.hbm.inventory.gui.GUILiquefactor;
import com.hbm.inventory.recipes.LiquefactionRecipes;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -35,7 +36,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 100000;

View File

@ -24,11 +24,7 @@ import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IOverpressurable;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.IRepairable;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.*;
import com.hbm.util.ParticleUtil;
import com.hbm.util.Tuple.Quintet;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -49,7 +45,7 @@ import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider {
public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider, IFluidCopiable {
public long power = 0;
public int sulfur = 0;
@ -467,4 +463,5 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIMachineRefinery(player.inventory, this);
}
}

View File

@ -13,6 +13,7 @@ import com.hbm.inventory.gui.GUISolidifier;
import com.hbm.inventory.recipes.SolidificationRecipes;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
@ -35,7 +36,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public static final long maxPower = 100000;
@ -294,4 +295,9 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage);
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}

View File

@ -10,6 +10,7 @@ import com.hbm.inventory.recipes.RefineryRecipes;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.TileEntityMachineBase;
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
public long power;
public static final long maxPower = 1_000_000;

View File

@ -9,11 +9,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.IUpgradeInfoProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.*;
import com.hbm.util.BobMathUtil;
import com.hbm.util.Tuple;
import com.hbm.util.Tuple.Triplet;
@ -28,9 +24,10 @@ import net.minecraft.item.ItemStack;
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;
public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider {
public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
public int indicator = 0;
@ -331,4 +328,9 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple
if(type == UpgradeType.OVERDRIVE) return 3;
return 0;
}
@Override
public FluidTank getTankToPaste() {
return null;
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.network;
import com.hbm.interfaces.ICopiable;
import com.hbm.tileentity.IControlReceiverFilter;
import com.hbm.tileentity.TileEntityMachineBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -136,7 +137,7 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase implemen
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, int x, int y, int z) {
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
if(index == 1) {
if (nbt.hasKey("outputSide")) {
outputOverride = ForgeDirection.getOrientation(nbt.getInteger("outputSide"));

View File

@ -9,6 +9,7 @@ import com.hbm.inventory.container.ContainerDroneCrate;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.gui.GUIDroneCrate;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityMachineBase;
@ -27,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver {
public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver, IFluidCopiable {
public FluidTank tank;

View File

@ -1,5 +1,9 @@
package com.hbm.tileentity.network;
import com.hbm.blocks.network.FluidDuctBase;
import com.hbm.blocks.network.IBlockFluidDuct;
import com.hbm.extprop.HbmPlayerProps;
import com.hbm.handler.HbmKeybinds;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
@ -8,6 +12,7 @@ import api.hbm.fluid.IPipeNet;
import api.hbm.fluid.PipeNet;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.tileentity.IFluidCopiable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
@ -181,7 +186,7 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor,
}
@Override
public void pasteSettings(NBTTagCompound nbt, int index, World world, int x, int y, int z) {
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
int[] ids = nbt.getIntArray("fluidID");
if(ids.length > 0) {
int id;
@ -189,7 +194,16 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor,
id = ids[index];
else
id = 0;
this.setType(Fluids.fromID(id));
FluidType fluid = Fluids.fromID(id);
if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_CTRL)){
IBlockFluidDuct pipe = (IBlockFluidDuct)world.getBlock(x, y, z);
pipe.changeTypeRecursively(world, x, y, z, getType(), fluid, 64);
} else {
this.setType(fluid);
}
}
}
}

View File

@ -20,6 +20,7 @@ import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import api.hbm.fluid.IFluidStandardReceiver;
import com.hbm.tileentity.IFluidCopiable;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -31,7 +32,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidContainer, IFluidStandardReceiver {
public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidContainer, IFluidStandardReceiver, IFluidCopiable {
public FluidTank tank;
@ -227,4 +228,9 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUITurretFritz(player.inventory, this);
}
@Override
public FluidTank getTankToPaste() {
return tank;
}
}