aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/item
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-06-16 12:51:48 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-06-16 12:51:48 +1000
commitb96d8f61d1550d61f432290431ebf8a96da252f2 (patch)
treeb1f7c78635db0131815f6dad54347b392b4859b5 /src/Java/miscutil/core/item
parent51d5db94cfafac652a05f6f121ec2521d62aaf5c (diff)
downloadGT5-Unofficial-b96d8f61d1550d61f432290431ebf8a96da252f2.tar.gz
GT5-Unofficial-b96d8f61d1550d61f432290431ebf8a96da252f2.tar.bz2
GT5-Unofficial-b96d8f61d1550d61f432290431ebf8a96da252f2.zip
~Changed Fuel Rods to Utilise NBT data instead of private instance variables.
Diffstat (limited to 'src/Java/miscutil/core/item')
-rw-r--r--src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java108
1 files changed, 81 insertions, 27 deletions
diff --git a/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java b/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java
index aedf91f66a..9a3de2c08f 100644
--- a/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java
+++ b/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java
@@ -4,11 +4,13 @@ import java.util.List;
import miscutil.core.creative.AddToCreativeTab;
import miscutil.core.lib.CORE;
-import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
public class FuelRod_Base extends Item{
@@ -16,10 +18,8 @@ public class FuelRod_Base extends Item{
public int maximumFuel = 0;
public String fuelType = "";
public float heat = 0;
- public float maxHeat = 5000;
+ public float maxHeat = getMaxHeat();
private ItemStack thisStack = null;
- private int internalClock = 0;
-
public FuelRod_Base(String unlocalizedName, String type, int fuelLeft, int maxFuel) {
this.setUnlocalizedName(unlocalizedName);
this.setTextureName(CORE.MODID + ":" + unlocalizedName);
@@ -30,35 +30,56 @@ public class FuelRod_Base extends Item{
this.fuelType = type;
this.setCreativeTab(AddToCreativeTab.tabMachines);
}
- @Override
- public boolean onEntityItemUpdate(EntityItem entityItem) {
- if (internalClock <= 200){
- internalClock++;
+
+ /*@Override
+ public void setDamage(ItemStack stack, int damage) {
+ this.heat=heat+5;
+ super.setDamage(stack, damage);
+ }*/
+
+ private float getMaxHeat(){
+ float tempvar;
+ if (fuelType == "Thorium"){
+ tempvar = 2500;
}
+
+ if (fuelType == "Uranium"){
+ tempvar = 5000;
+ }
+
+ if (fuelType == "Plutonium"){
+ tempvar = 10000;
+ }
+
else {
- if (heat < maxHeat){
- heat++;
- }
- if (fuelRemaining <= maximumFuel){
- fuelRemaining--;
- }
- internalClock = 0;
+ tempvar = 5000;
}
- return super.onEntityItemUpdate(entityItem);
+ return tempvar;
+
}
- @Override
- public void setDamage(ItemStack stack, int damage) {
- this.heat=heat+5;
- super.setDamage(stack, damage);
- }
+
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
+
+ Float NBT_Heat = heat;
+ Float NBT_MaxHeat = maxHeat;
+ int NBT_Fuel = fuelRemaining;
+ String NBT_Type= fuelType;
+
thisStack = stack;
- String tempHeat = String.valueOf(heat);
- String tempFuel = String.valueOf(fuelRemaining);
- String formattedType = EnumChatFormatting.DARK_RED+fuelType+EnumChatFormatting.GRAY;
+ if (stack.stackTagCompound != null) {
+ NBT_Heat = stack.stackTagCompound.getFloat("heat");
+ NBT_MaxHeat = stack.stackTagCompound.getFloat("maxHeat");
+ NBT_Fuel = stack.stackTagCompound.getInteger("fuelRemaining");
+ NBT_Type = stack.stackTagCompound.getString("fuelType");}
+
+ String tempHeat = String.valueOf(NBT_Heat);
+ String tempMaxHeat = String.valueOf(NBT_MaxHeat);
+ String tempFuel = String.valueOf(NBT_Fuel);
+ String formattedType = EnumChatFormatting.DARK_RED+NBT_Type+EnumChatFormatting.GRAY;
String formattedHeat = EnumChatFormatting.RED+tempHeat+EnumChatFormatting.GRAY;
+ String formattedMaxHeat = EnumChatFormatting.RED+tempMaxHeat+EnumChatFormatting.GRAY;
String formattedFuelLeft = tempFuel+EnumChatFormatting.GRAY;
int tempMax = maximumFuel;
@@ -89,9 +110,9 @@ public class FuelRod_Base extends Item{
formattedHeat = EnumChatFormatting.BLUE+tempHeat+EnumChatFormatting.GRAY;
}
- list.add(EnumChatFormatting.GRAY+"A "+formattedType+" fuel rod.");
- list.add(EnumChatFormatting.GRAY+"Running at "+formattedHeat+"K.");
- list.add(EnumChatFormatting.GRAY+"Currently there is: "+formattedFuelLeft+"L of fuel left.");
+ list.add(EnumChatFormatting.GRAY+"A "+formattedType+" Fuel Rod.");
+ list.add(EnumChatFormatting.GRAY+"Running at "+formattedHeat+"/"+formattedMaxHeat+" Kelvin.");
+ list.add(EnumChatFormatting.GRAY+"Fuel Remaining: "+formattedFuelLeft+"L.");
super.addInformation(stack, aPlayer, list, bool);
}
@@ -147,4 +168,37 @@ public class FuelRod_Base extends Item{
return false;
}
+
+ //Ticking and NBT Handling
+ /* Called each tick as long the item is on a player inventory. Uses by maps to check if is on a player hand and
+ * update it's contents.
+ *
+ * public int fuelRemaining = 0;
+ public int maximumFuel = 0;
+ public String fuelType = "";
+ public float heat = 0;
+ public float maxHeat = 5000;
+ *
+ */
+ @Override
+ public void onCreated(ItemStack itemStack, World world, EntityPlayer player) {
+ itemStack.stackTagCompound = new NBTTagCompound();
+ itemStack.stackTagCompound.setInteger("fuelRemaining", fuelRemaining);
+ itemStack.stackTagCompound.setInteger("maximumFuel", maximumFuel);
+ itemStack.stackTagCompound.setFloat("heat", heat);
+ itemStack.stackTagCompound.setFloat("maxHeat", maxHeat);
+ itemStack.stackTagCompound.setString("fuelType", fuelType);
+ }
+
+ @Override
+ public void onUpdate(ItemStack itemStack, World par2World, Entity par3Entity, int par4, boolean par5) {
+ itemStack.stackTagCompound = new NBTTagCompound();
+ itemStack.stackTagCompound.setInteger("fuelRemaining", fuelRemaining);
+ itemStack.stackTagCompound.setInteger("maximumFuel", maximumFuel);
+ itemStack.stackTagCompound.setFloat("heat", heat);
+ itemStack.stackTagCompound.setFloat("maxHeat", maxHeat);
+ itemStack.stackTagCompound.setString("fuelType", fuelType);
+
+ }
+
}