aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/item/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/miscutil/core/item/base')
-rw-r--r--src/Java/miscutil/core/item/base/BaseItemHotFood.java77
-rw-r--r--src/Java/miscutil/core/item/base/foods/BaseItemFood.java39
-rw-r--r--src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java6
-rw-r--r--src/Java/miscutil/core/item/base/ingots/BaseItemIngotHot.java39
4 files changed, 155 insertions, 6 deletions
diff --git a/src/Java/miscutil/core/item/base/BaseItemHotFood.java b/src/Java/miscutil/core/item/base/BaseItemHotFood.java
new file mode 100644
index 0000000000..1f60059fd9
--- /dev/null
+++ b/src/Java/miscutil/core/item/base/BaseItemHotFood.java
@@ -0,0 +1,77 @@
+package miscutil.core.item.base;
+
+import java.util.List;
+
+import miscutil.core.item.base.foods.BaseItemFood;
+import miscutil.core.util.Utils;
+import miscutil.core.util.item.UtilsItems;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+
+public class BaseItemHotFood extends BaseItemFood{
+
+ protected String materialName;
+ protected String unlocalName;
+ protected int cooldownTime;
+ protected Item output;
+
+ public BaseItemHotFood(String unlocalizedName, int healAmount, float healSaturation, String foodName, int timeToCoolInSeconds, Item cooledFood) {
+ super(unlocalizedName, healAmount, healSaturation, false);
+ this.unlocalName = unlocalizedName;
+ this.cooldownTime = timeToCoolInSeconds * 20;
+ this.materialName = foodName;
+ this.output = cooledFood;
+ this.setMaxStackSize(1);
+ }
+
+ @Override
+ public ItemStack onEaten(ItemStack iStack, World world, EntityPlayer player) {
+ return super.onEaten(iStack, world, player);
+ }
+
+ @Override
+ public void onUpdate(ItemStack iStack, World world, Entity entityHolding, int p_77663_4_, boolean p_77663_5_) {
+ //Utils.LOG_INFO("Item Damage: "+iStack.getItemDamage()+" Max Damage: "+iStack.getMaxDamage());
+ if (!world.isRemote){
+ if(iStack.getItemDamage() == cooldownTime) {
+ if (entityHolding instanceof EntityPlayer){
+ Utils.LOG_INFO("Foods Done.");
+ ((EntityPlayer) entityHolding).inventory.addItemStackToInventory(UtilsItems.getSimpleStack(output));
+ ((EntityPlayer) entityHolding).inventory.consumeInventoryItem(this);
+ }
+ }else if(iStack.getItemDamage() < cooldownTime){
+ iStack.setItemDamage(iStack.getItemDamage() + 1);
+ }
+ if(Utils.divideXintoY(iStack.getItemDamage(), 150)){
+ entityHolding.attackEntityFrom(DamageSource.onFire, 1);
+ }
+
+
+ }
+ super.onUpdate(iStack, world, entityHolding, p_77663_4_, p_77663_5_);
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
+ if (materialName != null && materialName != "" && !materialName.equals("")){
+ list.add(EnumChatFormatting.GRAY+"Warning: Very hot! Avoid direct handling..");
+ list.add(EnumChatFormatting.GRAY+"This food has "+(((int) stack.getMaxDamage()-(int) stack.getItemDamage())/20)+" seconds left.");
+ }
+ super.addInformation(stack, aPlayer, list, bool);
+ }
+
+ public final String getMaterialName() {
+ return materialName;
+ }
+
+ @Override
+ public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) {
+ return Utils.rgbtoHexValue(255, 128, 128);
+
+ }
+}
diff --git a/src/Java/miscutil/core/item/base/foods/BaseItemFood.java b/src/Java/miscutil/core/item/base/foods/BaseItemFood.java
new file mode 100644
index 0000000000..1b67fce1ae
--- /dev/null
+++ b/src/Java/miscutil/core/item/base/foods/BaseItemFood.java
@@ -0,0 +1,39 @@
+package miscutil.core.item.base.foods;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemFood;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+public class BaseItemFood extends ItemFood {
+
+ private PotionEffect[] effects;
+
+ public BaseItemFood(String unlocalizedName, int healAmount, float saturationModifier, boolean wolvesFavorite, PotionEffect... effects) {
+ super(healAmount, saturationModifier, wolvesFavorite);
+ this.setUnlocalizedName(unlocalizedName);
+ this.setTextureName(CORE.MODID + ":" + unlocalizedName);
+ this.setCreativeTab(AddToCreativeTab.tabMisc);
+ this.effects = effects;
+ GameRegistry.registerItem(this, unlocalizedName);
+ }
+
+ @Override
+ protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) {
+ super.onFoodEaten(stack, world, player);
+
+ for (int i = 0; i < effects.length; i ++) {
+ if (!world.isRemote && effects[i] != null && effects[i].getPotionID() > 0)
+ player.addPotionEffect(new PotionEffect(this.effects[i].getPotionID(),
+ this.effects[i].getDuration(), this.effects[i].getAmplifier(),
+ this.effects[i].getIsAmbient()
+ )
+ );
+ }
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java b/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java
index 95da94db62..dee7786f6f 100644
--- a/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java
+++ b/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java
@@ -41,6 +41,12 @@ public class BaseItemIngot extends Item{
}
@Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+
+ return (materialName+ " Ingot");
+ }
+
+ @Override
public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
if (materialName != null && materialName != "" && !materialName.equals("") && !unlocalName.contains("HotIngot") && !unlocalName.toLowerCase().contains("raisinbread")){
list.add(EnumChatFormatting.GRAY+"A solid ingot of " + materialName + ".");
diff --git a/src/Java/miscutil/core/item/base/ingots/BaseItemIngotHot.java b/src/Java/miscutil/core/item/base/ingots/BaseItemIngotHot.java
index 89ceebe922..4ec6e9891d 100644
--- a/src/Java/miscutil/core/item/base/ingots/BaseItemIngotHot.java
+++ b/src/Java/miscutil/core/item/base/ingots/BaseItemIngotHot.java
@@ -1,20 +1,25 @@
package miscutil.core.item.base.ingots;
import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Utility;
import java.util.List;
import miscutil.core.lib.CORE;
import miscutil.core.util.Utils;
import miscutil.core.util.UtilsText;
+import miscutil.core.util.item.UtilsItems;
+import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
public class BaseItemIngotHot extends BaseItemIngot{
-
+
private ItemStack outputIngot;
+ private int tickCounter = 0;
+ private int tickCounterMax = 200;
public BaseItemIngotHot(String unlocalizedName, String materialName, ItemStack coldIngot) {
super(unlocalizedName, materialName, Utils.rgbtoHexValue(225, 225, 225));
@@ -22,21 +27,43 @@ public class BaseItemIngotHot extends BaseItemIngot{
this.outputIngot = coldIngot;
generateRecipe();
}
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+
+ return ("Hot "+materialName+ " Ingot");
+ }
@Override
public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
if (materialName != null && materialName != "" && !materialName.equals("")){
- list.add(EnumChatFormatting.GRAY+"A "+UtilsText.red.colour()+"burning hot"+UtilsText.lightGray.colour()+" ingot of " + materialName + ".");
+ list.add(EnumChatFormatting.GRAY+"A "+UtilsText.red.colour()+"burning hot"+UtilsText.lightGray.colour()+" ingot of " + materialName + ".");
}
super.addInformation(stack, aPlayer, list, bool);
}
-
+
@Override
public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) {
return Utils.rgbtoHexValue(225, 225, 225);
}
-
+
private void generateRecipe(){
- GT_Values.RA.addVacuumFreezerRecipe(GT_Utility.copyAmount(1L, new Object[]{this}), GT_Utility.copyAmount(1L, new Object[]{outputIngot}), 500);
+ GT_Values.RA.addVacuumFreezerRecipe(UtilsItems.getSimpleStack(this), outputIngot.copy(), 500);
+ }
+
+ @Override
+ public void onUpdate(ItemStack iStack, World world, Entity entityHolding, int p_77663_4_, boolean p_77663_5_) {
+ if (!world.isRemote){
+ if(tickCounter < tickCounterMax){
+ tickCounter++;
+ }
+ else if(tickCounter == tickCounterMax){
+ entityHolding.attackEntityFrom(DamageSource.onFire, 1);
+ tickCounter = 0;
+ }
+ super.onUpdate(iStack, world, entityHolding, p_77663_4_, p_77663_5_);
+ }
}
+
+
}