zox rod changes

untested
This commit is contained in:
Vaern 2023-02-15 09:24:04 -08:00
parent 7a4cad0923
commit 0cfcbf1a97
6 changed files with 58 additions and 86 deletions

View File

@ -1,11 +1,8 @@
package com.hbm.inventory.container; package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.items.machine.ItemFluidIdentifier;
import com.hbm.items.machine.ItemZirnoxRodDeprecated;
import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas;
import api.hbm.energy.IBatteryItem; import api.hbm.energy.IBatteryItem;
@ -13,7 +10,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ContainerMachineTurbineGas extends Container { public class ContainerMachineTurbineGas extends Container {

View File

@ -3,7 +3,7 @@ package com.hbm.inventory.container;
import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.SlotMachineOutput;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.machine.ItemZirnoxRodDeprecated; import com.hbm.items.machine.ItemZirnoxRod;
import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -88,7 +88,7 @@ public class ContainerReactorZirnox extends Container {
} else { } else {
if(stack.getItem() instanceof ItemZirnoxRodDeprecated) { if(stack.getItem() instanceof ItemZirnoxRod) {
if(!this.mergeItemStack(stack, 0, 24, true)) if(!this.mergeItemStack(stack, 0, 24, true))
return null; return null;

View File

@ -1,27 +0,0 @@
package com.hbm.items.machine;
import java.util.List;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemZirnoxBreedingRod extends ItemZirnoxRodDeprecated {
public ItemZirnoxBreedingRod(int life, int heat) {
super(life, heat);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxBreedingRod", BobMathUtil.getShortNumber(lifeTime));
for(String loc : descLocs) {
list.add(loc);
}
}
}

View File

@ -1,11 +1,16 @@
package com.hbm.items.machine; package com.hbm.items.machine;
import java.util.List;
import com.hbm.items.ItemEnumMulti; import com.hbm.items.ItemEnumMulti;
import com.hbm.util.BobMathUtil;
import com.hbm.util.EnumUtil; import com.hbm.util.EnumUtil;
import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
@ -15,6 +20,17 @@ public class ItemZirnoxRod extends ItemEnumMulti {
public ItemZirnoxRod() { public ItemZirnoxRod() {
super(EnumZirnoxType.class, true, true); super(EnumZirnoxType.class, true, true);
this.setMaxStackSize(1); this.setMaxStackSize(1);
this.canRepair = false;
}
public static void incrementLifeTime(ItemStack stack) {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
int time = stack.stackTagCompound.getInteger("life");
stack.stackTagCompound.setInteger("life", time + 1);
} }
public static void setLifeTime(ItemStack stack, int time) { public static void setLifeTime(ItemStack stack, int time) {
@ -43,6 +59,16 @@ public class ItemZirnoxRod extends ItemEnumMulti {
EnumZirnoxType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); EnumZirnoxType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage());
return (double)getLifeTime(stack) / (double)num.maxLife; return (double)getLifeTime(stack) / (double)num.maxLife;
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
EnumZirnoxType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage());
String[] loc = I18nUtil.resolveKeyArray("desc.item.zirnox" + (num.breeding ? "BreedingRod" : "Rod"), BobMathUtil.getShortNumber(num.maxLife));
for(String s : loc) {
list.add(s);
}
}
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@ -65,22 +91,30 @@ public class ItemZirnoxRod extends ItemEnumMulti {
public static enum EnumZirnoxType { public static enum EnumZirnoxType {
NATURAL_URANIUM_FUEL(250_000, 30), NATURAL_URANIUM_FUEL(250_000, 30),
URANIUM_FUEL(200_000, 50), URANIUM_FUEL(200_000, 50),
TH232(20_000, 0), TH232(20_000, 0, true),
THORIUM_FUEL(200_000, 40), THORIUM_FUEL(200_000, 40),
MOX_FUEL(165_000, 75), MOX_FUEL(165_000, 75),
PLUTONIUM_FUEL(175_000, 65), PLUTONIUM_FUEL(175_000, 65),
U233_FUEL(150_000, 100), U233_FUEL(150_000, 100),
U235_FUEL(165_000, 85), U235_FUEL(165_000, 85),
LES_FUEL(150_000, 150), LES_FUEL(150_000, 150),
LITHIUM(20_000, 0), LITHIUM(20_000, 0, true),
ZFB_MOX(50_000, 35); ZFB_MOX(50_000, 35);
public int maxLife; public final int maxLife;
public int heat; public final int heat;
public final boolean breeding;
private EnumZirnoxType(int life, int heat, boolean breeding) {
this.maxLife = life;
this.heat = heat;
this.breeding = breeding;
}
private EnumZirnoxType(int life, int heat) { private EnumZirnoxType(int life, int heat) {
this.maxLife = life; this.maxLife = life;
this.heat = heat; this.heat = heat;
this.breeding = false;
} }
} }
} }

View File

@ -1,30 +0,0 @@
package com.hbm.items.machine;
import java.util.List;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemZirnoxRodDeprecated extends ItemFuelRod {
public int heat;
public ItemZirnoxRodDeprecated(int life, int heat) {
super(life);
this.heat = heat;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxRod", heat, BobMathUtil.getShortNumber(lifeTime));
for(String loc : descLocs) {
list.add(loc);
}
}
}

View File

@ -20,17 +20,22 @@ import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemZirnoxBreedingRod; import com.hbm.items.machine.ItemZirnoxRod;
import com.hbm.items.machine.ItemZirnoxRodDeprecated;
import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context;
import li.cil.oc.api.network.SimpleComponent;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -38,12 +43,6 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.Optional;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context;
import li.cil.oc.api.network.SimpleComponent;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent { public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent {
@ -96,12 +95,12 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF
@Override @Override
public boolean isItemValidForSlot(int i, ItemStack stack) { public boolean isItemValidForSlot(int i, ItemStack stack) {
return i < 24 && stack.getItem() instanceof ItemZirnoxRodDeprecated; return i < 24 && stack.getItem() instanceof ItemZirnoxRod;
} }
@Override @Override
public boolean canExtractItem(int i, ItemStack stack, int j) { public boolean canExtractItem(int i, ItemStack stack, int j) {
return i < 24 && !(stack.getItem() instanceof ItemZirnoxRodDeprecated); return i < 24 && !(stack.getItem() instanceof ItemZirnoxRod);
} }
@Override @Override
@ -202,7 +201,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF
for(int i = 0; i < 24; i++) { for(int i = 0; i < 24; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() instanceof ItemZirnoxRodDeprecated) if(slots[i].getItem() instanceof ItemZirnoxRod)
decay(i); decay(i);
else if(slots[i].getItem() == ModItems.meteorite_sword_bred) else if(slots[i].getItem() == ModItems.meteorite_sword_bred)
slots[i] = new ItemStack(ModItems.meteorite_sword_irradiated); slots[i] = new ItemStack(ModItems.meteorite_sword_irradiated);
@ -263,8 +262,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF
private boolean hasFuelRod(int id) { private boolean hasFuelRod(int id) {
if(slots[id] != null) { if(slots[id] != null) {
if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) { if(slots[id].getItem() instanceof ItemZirnoxRod) {
return slots[id].getItem() instanceof ItemZirnoxRodDeprecated; final EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, slots[id].getItemDamage());
return !num.breeding;
} }
} }
@ -291,17 +291,16 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF
// itemstack in slots[id] has to contain ItemZirnoxRod // itemstack in slots[id] has to contain ItemZirnoxRod
private void decay(int id) { private void decay(int id) {
int decay = getNeighbourCount(id); int decay = getNeighbourCount(id);
final EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, slots[id].getItemDamage());
if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) { if(!num.breeding)
decay++; decay++;
}
for(int i = 0; i < decay; i++) { for(int i = 0; i < decay; i++) {
ItemZirnoxRodDeprecated rod = ((ItemZirnoxRodDeprecated) slots[id].getItem()); this.heat += num.heat;
this.heat += rod.heat; ItemZirnoxRod.incrementLifeTime(slots[id]);;
ItemZirnoxRodDeprecated.setLifeTime(slots[id], ItemZirnoxRodDeprecated.getLifeTime(slots[id]) + 1);
if(ItemZirnoxRodDeprecated.getLifeTime(slots[id]) > rod.lifeTime) { if(ItemZirnoxRod.getLifeTime(slots[id]) > num.maxLife) {
slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy(); slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy();
break; break;
} }