generated from tilera/1710mod
feat: improve Fusion Reactor
This commit is contained in:
parent
983f408142
commit
bcf670fd8c
|
@ -67,6 +67,8 @@ import cpw.mods.fml.common.registry.EntityRegistry;
|
|||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.logging.Logger;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -106,7 +108,7 @@ import universalelectricity.prefab.ore.OreGenerator;
|
|||
dependencies = "required-after:basiccomponents")
|
||||
public class AtomicScience {
|
||||
public static Configuration CONFIGURATION =
|
||||
new Configuration(Loader.instance().getConfigDir(), "AtomicScience.cfg");
|
||||
new Configuration(new File(Loader.instance().getConfigDir(), "AtomicScience.cfg"));
|
||||
public static final String ID = "AtomicScience";
|
||||
public static final String CHANNEL = "AtomicScience";
|
||||
public static final String PREFIX = "atomicscience:";
|
||||
|
@ -120,6 +122,7 @@ public class AtomicScience {
|
|||
public static boolean ALLOW_LAYERED_TURBINES = true;
|
||||
public static boolean ALLOW_TOXIC_WASTE = true;
|
||||
public static boolean ALLOW_RADIOACTIVE_ORES = true;
|
||||
public static boolean REQUIRE_TRITIUM = false;
|
||||
public static final int BLOCK_ID_PREFIX = 3768;
|
||||
public static final int ENTITY_ID_PREFIX = 49;
|
||||
public static Block blockRadioactive;
|
||||
|
@ -142,7 +145,6 @@ public class AtomicScience {
|
|||
public static Block bAtomicAssembler;
|
||||
public static Block bFissionReactor;
|
||||
public static Block bReactorTap;
|
||||
public static Block bSuperConductor;
|
||||
public static final int ITEM_ID_PREFIX = 13768;
|
||||
public static Item itCell;
|
||||
public static Item itCellUranium;
|
||||
|
@ -150,6 +152,7 @@ public class AtomicScience {
|
|||
public static Item itCellStrangeMatter;
|
||||
public static Item itCellAntimatter;
|
||||
public static Item itCellDeuterium;
|
||||
public static Item itCellTritium;
|
||||
public static Item itCellWater;
|
||||
public static Item itBucketToxic;
|
||||
public static Block bUraniumOre;
|
||||
|
@ -164,6 +167,8 @@ public class AtomicScience {
|
|||
public static Fluid FLUID_URANIUM_HEXAFLOURIDE;
|
||||
public static Fluid FLUID_STEAM;
|
||||
public static Fluid FLUID_TOXIC_WASTE;
|
||||
public static Fluid FLUID_DEUTERIUM;
|
||||
public static Fluid FLUID_TRITIUM;
|
||||
public static final ArmorMaterial hazmatArmorMaterial =
|
||||
EnumHelper.addArmorMaterial("HAZMAT", 0, new int[] {0, 0, 0, 0}, 0);
|
||||
public static OreGenBase uraniumOreGeneration;
|
||||
|
@ -208,7 +213,8 @@ public class AtomicScience {
|
|||
STEAM_RATIO =
|
||||
AtomicScience.CONFIGURATION.get("general", "Steam Ratio", STEAM_RATIO)
|
||||
.getInt(STEAM_RATIO);
|
||||
PotionRadiation.INSTANCE.getId();
|
||||
REQUIRE_TRITIUM = AtomicScience.CONFIGURATION.get("general", "Require Tritium", REQUIRE_TRITIUM).getBoolean(REQUIRE_TRITIUM);
|
||||
PotionRadiation.INSTANCE = new PotionRadiation(21, true, 5149489, "radiation");
|
||||
blockRadioactive = (new BlockRadioactive()
|
||||
.setBlockName("atomicscience:radioactive")
|
||||
.setCreativeTab(TabAS.INSTANCE));
|
||||
|
@ -250,6 +256,7 @@ public class AtomicScience {
|
|||
itCell = new ItCell("cellEmpty");
|
||||
itCellUranium = new ItFissileFuel();
|
||||
itCellDeuterium = new ItCell("cellDeuterium");
|
||||
itCellTritium =new ItCell("cellTritium");
|
||||
itCellStrangeMatter = new ItStrangeMatter();
|
||||
itCellAntimatter = new ItAntimatterCell();
|
||||
itCellWater = new ItCell("cellWater");
|
||||
|
@ -260,6 +267,8 @@ public class AtomicScience {
|
|||
FLUID_URANIUM_HEXAFLOURIDE = getOrRegisterFluid("uranium_hexafluoride");
|
||||
FLUID_STEAM = getOrRegisterFluid("steam");
|
||||
FLUID_TOXIC_WASTE = getOrRegisterFluid("toxic_waste");
|
||||
FLUID_DEUTERIUM = getOrRegisterFluid("deuterium");
|
||||
FLUID_TRITIUM = getOrRegisterFluid("tritium");
|
||||
bToxicWaste =
|
||||
(new BToxicWaste("toxicWaste")).setCreativeTab((CreativeTabs)null);
|
||||
itBucketToxic = (new ItemBucket(bToxicWaste))
|
||||
|
@ -278,6 +287,7 @@ public class AtomicScience {
|
|||
GameRegistry.registerItem(itCellStrangeMatter, "itCellStrangeMatter");
|
||||
GameRegistry.registerItem(itCellAntimatter, "itCellAntimatter");
|
||||
GameRegistry.registerItem(itCellDeuterium, "itCellDeuterium");
|
||||
GameRegistry.registerItem(itCellTritium, "itCellTritium");
|
||||
GameRegistry.registerItem(itCellWater, "itCellWater");
|
||||
GameRegistry.registerItem(itBucketToxic, "itBucketToxic");
|
||||
GameRegistry.registerItem(itYellowcake, "itYellowcake");
|
||||
|
@ -311,7 +321,6 @@ public class AtomicScience {
|
|||
GameRegistry.registerBlock(bAtomicAssembler, "bAtomicAssembler");
|
||||
GameRegistry.registerBlock(bToxicWaste, "bToxicWaste");
|
||||
GameRegistry.registerBlock(bReactorTap, "bReactorTap");
|
||||
GameRegistry.registerBlock(bSuperConductor, "bSuperConductor");
|
||||
uraniumOreGeneration = new OreGenReplaceStone("Uranium Ore", "oreUranium",
|
||||
new ItemStack(bUraniumOre), 0,
|
||||
25, 9, 3, "pickaxe", 2);
|
||||
|
@ -336,6 +345,7 @@ public class AtomicScience {
|
|||
OreDictionary.registerOre("cellEmpty", itCell);
|
||||
OreDictionary.registerOre("cellUranium", itCellUranium);
|
||||
OreDictionary.registerOre("cellDeuterium", itCellDeuterium);
|
||||
OreDictionary.registerOre("cellTritium", itCellTritium);
|
||||
OreDictionary.registerOre("cellWater", itCellWater);
|
||||
OreDictionary.registerOre("strangeMatter", itCellStrangeMatter);
|
||||
OreDictionary.registerOre("antimatterMilligram",
|
||||
|
@ -345,6 +355,12 @@ public class AtomicScience {
|
|||
FluidContainerRegistry.registerFluidContainer(new FluidContainerData(
|
||||
new FluidStack(FluidRegistry.WATER, 1000), new ItemStack(itCellWater),
|
||||
new ItemStack(itCell)));
|
||||
FluidContainerRegistry.registerFluidContainer(new FluidContainerData(
|
||||
new FluidStack(FLUID_DEUTERIUM, 200), new ItemStack(itCellDeuterium),
|
||||
new ItemStack(itCell)));
|
||||
FluidContainerRegistry.registerFluidContainer(new FluidContainerData(
|
||||
new FluidStack(FLUID_TRITIUM, 200), new ItemStack(itCellTritium),
|
||||
new ItemStack(itCell)));
|
||||
ForgeChunkManager.setForcedChunkLoadingCallback(this, (tickets, world) -> {
|
||||
for (Ticket ticket : tickets) {
|
||||
if (ticket.getType() == Type.ENTITY && ticket.getEntity() != null &&
|
||||
|
|
|
@ -66,10 +66,11 @@ public class BToxicWaste extends BlockFluidClassic {
|
|||
AtomicScience.FLUID_TOXIC_WASTE.setIcons(this.blockIcon);
|
||||
|
||||
// TODO: WTF
|
||||
AtomicScience.FLUID_URANIUM_HEXAFLOURIDE.setIcons(
|
||||
iconRegister.registerIcon("atomicscience:uraniumHexafluoride"));
|
||||
AtomicScience.FLUID_URANIUM_HEXAFLOURIDE.setIcons(iconRegister.registerIcon("atomicscience:uraniumHexafluoride"));
|
||||
// TODO: might override railcraft icon?
|
||||
AtomicScience.FLUID_STEAM.setIcons(
|
||||
iconRegister.registerIcon("atomicscience:steam"));
|
||||
AtomicScience.FLUID_STEAM.setIcons(iconRegister.registerIcon("atomicscience:steam"));
|
||||
AtomicScience.FLUID_DEUTERIUM.setIcons(iconRegister.registerIcon("atomicscience:deuterium"));
|
||||
AtomicScience.FLUID_TRITIUM.setIcons(iconRegister.registerIcon("atomicscience:tritium"));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import universalelectricity.prefab.potion.CustomPotion;
|
||||
|
||||
public class PotionRadiation extends CustomPotion {
|
||||
public static final PotionRadiation INSTANCE;
|
||||
public static PotionRadiation INSTANCE;
|
||||
|
||||
public PotionRadiation(int id, boolean isBadEffect, int color, String name) {
|
||||
super(AtomicScience.CONFIGURATION.get("Potion", name + " potion ID", id)
|
||||
|
@ -29,10 +29,4 @@ public class PotionRadiation extends CustomPotion {
|
|||
public boolean isReady(int duration, int amplifier) {
|
||||
return duration % 10 == 0;
|
||||
}
|
||||
|
||||
static {
|
||||
AtomicScience.CONFIGURATION.load();
|
||||
INSTANCE = new PotionRadiation(21, true, 5149489, "radiation");
|
||||
AtomicScience.CONFIGURATION.save();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
public class BFusionReactor extends BBase {
|
||||
|
||||
|
@ -21,23 +22,30 @@ public class BFusionReactor extends BBase {
|
|||
EntityPlayer entityPlayer, int side,
|
||||
float hitX, float hitY, float hitZ) {
|
||||
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
||||
if (entityPlayer.inventory.getCurrentItem() != null &&
|
||||
AtomicScience.isFusionFuel(entityPlayer.inventory.getCurrentItem())) {
|
||||
if (((TFusionReactor) tileEntity).getStackInSlot(0) != null) {
|
||||
ItemStack var10000 = ((TFusionReactor) tileEntity).getStackInSlot(0);
|
||||
var10000.stackSize += entityPlayer.inventory.getCurrentItem().stackSize;
|
||||
} else {
|
||||
((TFusionReactor) tileEntity)
|
||||
.setInventorySlotContents(0,
|
||||
entityPlayer.inventory.getCurrentItem());
|
||||
if (entityPlayer.inventory.getCurrentItem() != null) {
|
||||
if (AtomicScience.isFusionFuel(entityPlayer.inventory.getCurrentItem())) {
|
||||
int deuterium = entityPlayer.inventory.getCurrentItem().stackSize * 200;
|
||||
int wouldFill = ((TFusionReactor) tileEntity).fill(null, new FluidStack(AtomicScience.FLUID_DEUTERIUM, deuterium), false);
|
||||
int remainder = wouldFill % 200;
|
||||
((TFusionReactor) tileEntity).fill(null, new FluidStack(AtomicScience.FLUID_DEUTERIUM, deuterium - remainder), true);
|
||||
entityPlayer.inventory.getCurrentItem().stackSize -= wouldFill / 200;
|
||||
if (entityPlayer.inventory.getCurrentItem().stackSize <= 0) {
|
||||
entityPlayer.inventory.setInventorySlotContents(entityPlayer.inventory.currentItem, (ItemStack) null);
|
||||
}
|
||||
return true;
|
||||
} else if (entityPlayer.inventory.getCurrentItem().getItem() == AtomicScience.itCellTritium) {
|
||||
int tritium = entityPlayer.inventory.getCurrentItem().stackSize * 200;
|
||||
int wouldFill = ((TFusionReactor) tileEntity).fill(null, new FluidStack(AtomicScience.FLUID_TRITIUM, tritium), false);
|
||||
int remainder = wouldFill % 200;
|
||||
((TFusionReactor) tileEntity).fill(null, new FluidStack(AtomicScience.FLUID_TRITIUM, tritium - remainder), true);
|
||||
entityPlayer.inventory.getCurrentItem().stackSize -= wouldFill / 200;
|
||||
if (entityPlayer.inventory.getCurrentItem().stackSize <= 0) {
|
||||
entityPlayer.inventory.setInventorySlotContents(entityPlayer.inventory.currentItem, (ItemStack) null);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
entityPlayer.inventory.setInventorySlotContents(
|
||||
entityPlayer.inventory.currentItem, (ItemStack) null);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,32 +1,37 @@
|
|||
package atomicscience.hecheng;
|
||||
|
||||
import atomicscience.AtomicScience;
|
||||
import atomicscience.jiqi.TInventory;
|
||||
import atomicscience.api.IElectromagnet;
|
||||
import calclavia.lib.TileEntityUniversalRunnable;
|
||||
import calclavia.lib.render.ITagRender;
|
||||
import java.util.HashMap;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import universalelectricity.core.block.IElectricityStorage;
|
||||
import universalelectricity.core.electricity.ElectricityPack;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
|
||||
public class TFusionReactor extends TInventory
|
||||
implements ISidedInventory, IElectricityStorage, ITagRender {
|
||||
public class TFusionReactor extends TileEntityUniversalRunnable
|
||||
implements IFluidHandler, IElectricityStorage, ITagRender {
|
||||
|
||||
public static final int YAO_DAO = 1000;
|
||||
public static final int YONG_DIAN = 20000;
|
||||
private ItemStack deuteriumStack = null;
|
||||
public final FluidTank deuteriumTank = new FluidTank(AtomicScience.FLUID_DEUTERIUM, 0, 12800);
|
||||
public final FluidTank tritiumTank = new FluidTank(AtomicScience.FLUID_TRITIUM, 0, 12800);
|
||||
public float rotation = 0.0F;
|
||||
|
||||
@Override
|
||||
public ElectricityPack getRequest() {
|
||||
return this.deuteriumStack != null
|
||||
return this.hasFuel()
|
||||
? new ElectricityPack(20000.0D / this.getVoltage(), this.getVoltage())
|
||||
: new ElectricityPack();
|
||||
}
|
||||
|
@ -36,18 +41,22 @@ public class TFusionReactor extends TInventory
|
|||
super.updateEntity();
|
||||
if (!this.worldObj.isRemote) {
|
||||
if (!this.isDisabled() && super.wattsReceived >= 20000.0D &&
|
||||
this.deuteriumStack != null && super.ticks % 20L == 0L) {
|
||||
this.hasFuel() && super.ticks % 20L == 0L) {
|
||||
for (int i = 2; i < 6; ++i) {
|
||||
Vector3 diDian = new Vector3(this);
|
||||
diDian.modifyPositionFromSide(ForgeDirection.getOrientation(i), 2.0D);
|
||||
AtomicScience.bPlasma.spawn(this.worldObj, diDian.intX(),
|
||||
diDian.intY(), diDian.intZ(),
|
||||
(byte) 7);
|
||||
diDian.modifyPositionFromSide(ForgeDirection.getOrientation(i), 1.0D);
|
||||
if (diDian.getBlock(worldObj) instanceof IElectromagnet) {
|
||||
diDian.modifyPositionFromSide(ForgeDirection.getOrientation(i), 1.0D);
|
||||
AtomicScience.bPlasma.spawn(this.worldObj, diDian.intX(), diDian.intY(), diDian.intZ(), (byte) 7);
|
||||
}
|
||||
}
|
||||
|
||||
this.setJoules(Math.max(super.wattsReceived - 20000.0D, 0.0D));
|
||||
if (this.worldObj.rand.nextInt(10) == 0) {
|
||||
this.decrStackSize(0, 1);
|
||||
deuteriumTank.drain(200, true);
|
||||
if (AtomicScience.REQUIRE_TRITIUM) {
|
||||
tritiumTank.drain(200, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,54 +70,36 @@ public class TFusionReactor extends TInventory
|
|||
public Packet getDescriptionPacket() {
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
nbt.setDouble("wattsReceived", super.wattsReceived);
|
||||
nbt.setInteger("stackSize", this.deuteriumStack != null
|
||||
? this.deuteriumStack.stackSize
|
||||
: 0);
|
||||
nbt.setInteger("deuterium", this.deuteriumTank.getFluidAmount());
|
||||
nbt.setInteger("tritium", this.tritiumTank.getFluidAmount());
|
||||
|
||||
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord,
|
||||
this.getBlockMetadata(), nbt);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void handlePacketData(INetworkManager network, int packetType,
|
||||
// Packet250CustomPayload packet,
|
||||
// EntityPlayer player,
|
||||
// ByteArrayDataInput dataStream) {
|
||||
// try {
|
||||
// super.wattsReceived = dataStream.readDouble();
|
||||
// this.setInventorySlotContents(
|
||||
// 0, new ItemStack(AtomicScience.itCellDao,
|
||||
// dataStream.readInt()));
|
||||
// } catch (Exception var7) {
|
||||
// var7.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onDataPacket(NetworkManager arg0,
|
||||
S35PacketUpdateTileEntity arg1) {
|
||||
NBTTagCompound nbt = arg1.func_148857_g();
|
||||
super.wattsReceived = nbt.getDouble("wattsReceived");
|
||||
this.setInventorySlotContents(0,
|
||||
new ItemStack(AtomicScience.itCellDeuterium,
|
||||
nbt.getInteger("stackSize")));
|
||||
this.deuteriumTank.setFluid(new FluidStack(AtomicScience.FLUID_DEUTERIUM, nbt.getInteger("deuterium")));
|
||||
this.tritiumTank.setFluid(new FluidStack(AtomicScience.FLUID_TRITIUM, nbt.getInteger("tritium")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
super.wattsReceived = nbt.getDouble("wattsReceived");
|
||||
this.deuteriumStack = new ItemStack(AtomicScience.itCellDeuterium,
|
||||
nbt.getInteger("stackSize"));
|
||||
this.deuteriumTank.setFluid(new FluidStack(AtomicScience.FLUID_DEUTERIUM, nbt.getInteger("deuterium")));
|
||||
this.tritiumTank.setFluid(new FluidStack(AtomicScience.FLUID_TRITIUM, nbt.getInteger("tritium")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
nbt.setDouble("wattsReceived", super.wattsReceived);
|
||||
nbt.setInteger("stackSize", this.deuteriumStack != null
|
||||
? this.deuteriumStack.stackSize
|
||||
: 0);
|
||||
nbt.setInteger("deuterium", this.deuteriumTank.getFluidAmount());
|
||||
nbt.setInteger("tritium", this.tritiumTank.getFluidAmount());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -126,83 +117,64 @@ public class TFusionReactor extends TInventory
|
|||
return 20000.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSizeInventory() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int var1) {
|
||||
return this.deuteriumStack != null && this.deuteriumStack.stackSize <= 0
|
||||
? null
|
||||
: this.deuteriumStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int i, int amount) {
|
||||
if (this.deuteriumStack != null) {
|
||||
ItemStack itemstack;
|
||||
if (this.deuteriumStack.stackSize <= amount) {
|
||||
itemstack = this.deuteriumStack;
|
||||
this.deuteriumStack = null;
|
||||
return itemstack;
|
||||
} else {
|
||||
itemstack = this.deuteriumStack.splitStack(amount);
|
||||
if (this.deuteriumStack.stackSize == 0) {
|
||||
this.deuteriumStack = null;
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int var1) {
|
||||
return this.deuteriumStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int i, ItemStack itemStack) {
|
||||
this.deuteriumStack = itemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit() {
|
||||
return 1000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float addInformation(HashMap map, EntityPlayer player) {
|
||||
if (this.deuteriumStack != null) {
|
||||
map.put("Deuterium: " + this.deuteriumStack.stackSize,
|
||||
if (this.deuteriumTank.getFluidAmount() > 0) {
|
||||
map.put("Deuterium: " + this.deuteriumTank.getFluidAmount() + " mB",
|
||||
Integer.valueOf(16777215));
|
||||
} else {
|
||||
map.put("No Deuterium", Integer.valueOf(16777215));
|
||||
}
|
||||
if (this.tritiumTank.getFluidAmount() > 0) {
|
||||
map.put("Tritium: " + this.tritiumTank.getFluidAmount() + " mB",
|
||||
Integer.valueOf(16777215));
|
||||
} else if (AtomicScience.REQUIRE_TRITIUM) {
|
||||
map.put("No Tritium", Integer.valueOf(16777215));
|
||||
}
|
||||
|
||||
return 1.0F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int var1) {
|
||||
return new int[] { 0 };
|
||||
public boolean hasFuel() {
|
||||
return deuteriumTank.getFluidAmount() >= 200 && (tritiumTank.getFluidAmount() >= 200 || !AtomicScience.REQUIRE_TRITIUM);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slotID, ItemStack itemStack) {
|
||||
return itemStack.getItem() == AtomicScience.itCellDeuterium;
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
|
||||
if (resource.getFluid() == AtomicScience.FLUID_DEUTERIUM) {
|
||||
return deuteriumTank.fill(resource, doFill);
|
||||
} else if (resource.getFluid() == AtomicScience.FLUID_TRITIUM) {
|
||||
return tritiumTank.fill(resource, doFill);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int i, ItemStack itemstack, int j) {
|
||||
return this.isItemValidForSlot(i, itemstack);
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemstack, int j) {
|
||||
return this.isItemValidForSlot(i, itemstack);
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canFill(ForgeDirection from, Fluid fluid) {
|
||||
return (fluid == AtomicScience.FLUID_DEUTERIUM && deuteriumTank.getFluidAmount() < deuteriumTank.getCapacity()) || (fluid == AtomicScience.FLUID_TRITIUM && tritiumTank.getFluidAmount() < tritiumTank.getCapacity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
|
||||
return new FluidTankInfo[] {
|
||||
new FluidTankInfo(this.deuteriumTank),
|
||||
new FluidTankInfo(this.tritiumTank)
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ item.atomicscience\:bucketToxicWaste.name=Toxic Waste Bucket
|
|||
item.atomicscience\:cellEmpty.name=Empty Cell
|
||||
item.atomicscience\:cellWater.name=Water Cell
|
||||
item.atomicscience\:cellDeuterium.name=Deuterium Cell
|
||||
item.atomicscience\:cellTritium.name=Tritium Cell
|
||||
item.atomicscience\:strangeMatter.name=Strange Matter
|
||||
item.atomicscience\:antimatter.name=Antimatter
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 4 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Loading…
Reference in a new issue