From 6d4dfc7d571b062d41220ed79358e484ccd12280 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 27 Jul 2016 08:38:57 +1000 Subject: + Added plate handler for item generation. % Changed internal item handling, to use abstract classes. % All Generated items now register against the OreDictionary. --- .../miscutil/core/item/base/BaseItemHotFood.java | 78 ---------------------- .../core/item/base/foods/BaseItemFood.java | 12 +++- .../core/item/base/foods/BaseItemHotFood.java | 77 +++++++++++++++++++++ .../core/item/base/ingots/BaseItemIngot.java | 29 ++++---- .../core/item/base/plates/BaseItemPlate.java | 76 +++++++++++++++++++++ 5 files changed, 179 insertions(+), 93 deletions(-) delete mode 100644 src/Java/miscutil/core/item/base/BaseItemHotFood.java create mode 100644 src/Java/miscutil/core/item/base/foods/BaseItemHotFood.java create mode 100644 src/Java/miscutil/core/item/base/plates/BaseItemPlate.java (limited to 'src/Java/miscutil/core/item/base') diff --git a/src/Java/miscutil/core/item/base/BaseItemHotFood.java b/src/Java/miscutil/core/item/base/BaseItemHotFood.java deleted file mode 100644 index b6751e8485..0000000000 --- a/src/Java/miscutil/core/item/base/BaseItemHotFood.java +++ /dev/null @@ -1,78 +0,0 @@ -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.UtilsText; -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: "+UtilsText.red.colour()+"Very hot!"+UtilsText.lightGray.colour()+" Avoid direct handling.."); - list.add(EnumChatFormatting.GRAY+"This food has "+((cooldownTime-(int) stack.getItemDamage())/20)+" seconds left, until it is cool."); - } - 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 index 1b67fce1ae..34e332e629 100644 --- a/src/Java/miscutil/core/item/base/foods/BaseItemFood.java +++ b/src/Java/miscutil/core/item/base/foods/BaseItemFood.java @@ -12,13 +12,15 @@ import cpw.mods.fml.common.registry.GameRegistry; public class BaseItemFood extends ItemFood { private PotionEffect[] effects; + protected String localName; - public BaseItemFood(String unlocalizedName, int healAmount, float saturationModifier, boolean wolvesFavorite, PotionEffect... effects) { + public BaseItemFood(String unlocalizedName, String localizedName, int healAmount, float saturationModifier, boolean wolvesFavorite, PotionEffect... effects) { super(healAmount, saturationModifier, wolvesFavorite); this.setUnlocalizedName(unlocalizedName); - this.setTextureName(CORE.MODID + ":" + unlocalizedName); + this.setTextureName(CORE.MODID + ":" + unlocalizedName.replace("Hot", "")); this.setCreativeTab(AddToCreativeTab.tabMisc); this.effects = effects; + this.localName = localizedName; GameRegistry.registerItem(this, unlocalizedName); } @@ -35,5 +37,11 @@ public class BaseItemFood extends ItemFood { ); } } + + @Override + public String getItemStackDisplayName(ItemStack p_77653_1_) { + + return ("A Serving of "+localName); + } } \ No newline at end of file diff --git a/src/Java/miscutil/core/item/base/foods/BaseItemHotFood.java b/src/Java/miscutil/core/item/base/foods/BaseItemHotFood.java new file mode 100644 index 0000000000..1632df582a --- /dev/null +++ b/src/Java/miscutil/core/item/base/foods/BaseItemHotFood.java @@ -0,0 +1,77 @@ +package miscutil.core.item.base.foods; + +import java.util.List; + +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.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, "Hot "+foodName, 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: "+UtilsText.red.colour()+"Very hot!"+UtilsText.lightGray.colour()+" Avoid direct handling.."); + list.add(EnumChatFormatting.GRAY+"This food has "+((cooldownTime-(int) stack.getItemDamage())/20)+" seconds left, until it is cool."); + } + super.addInformation(stack, aPlayer, list, bool); + } + + public final String getMaterialName() { + return materialName; + } + + @Override + public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) { + return Utils.rgbtoHexValue(230, 96, 96); + + } +} diff --git a/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java b/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java index dee7786f6f..26245f1a04 100644 --- a/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java +++ b/src/Java/miscutil/core/item/base/ingots/BaseItemIngot.java @@ -1,6 +1,7 @@ package miscutil.core.item.base.ingots; import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import java.util.List; @@ -27,17 +28,22 @@ public class BaseItemIngot extends Item{ this.setUnlocalizedName(unlocalizedName); this.unlocalName = unlocalizedName; this.setMaxStackSize(64); - if (unlocalizedName.contains("RaisinBread")){ - this.setTextureName(CORE.MODID + ":" + "itemBread"); - } - else { - this.setTextureName(CORE.MODID + ":" + "itemIngot"); - } + this.setTextureName(CORE.MODID + ":" + "itemIngot"); this.setMaxStackSize(64); this.colour = colour; this.materialName = materialName; GameRegistry.registerItem(this, unlocalizedName); - addBendingRecipe(); + String temp = ""; + if (unlocalName.contains("itemIngot")){ + temp = unlocalName.replace("itemI", "i"); + } + if (unlocalName.contains("itemHotIngot")){ + temp = unlocalName.replace("itemHotIngot", "ingotHot"); + } + if (temp != null && temp != ""){ + GT_OreDictUnificator.registerOre(temp, UtilsItems.getSimpleStack(this)); + } + //addBendingRecipe(); } @Override @@ -48,15 +54,12 @@ public class BaseItemIngot extends Item{ @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")){ + if (materialName != null && materialName != "" && !materialName.equals("") && !unlocalName.contains("HotIngot")){ list.add(EnumChatFormatting.GRAY+"A solid ingot of " + materialName + "."); } - else if (materialName != null && materialName != "" && !materialName.equals("") && unlocalName.toLowerCase().contains("ingothot") && !unlocalName.toLowerCase().contains("raisinbread")){ + else if (materialName != null && materialName != "" && !materialName.equals("") && unlocalName.toLowerCase().contains("ingothot")){ list.add(EnumChatFormatting.GRAY+"Warning: Very hot! Avoid direct handling.."); } - else if (materialName != null && materialName != "" && !materialName.equals("") && !unlocalName.toLowerCase().contains("ingothot") && unlocalName.toLowerCase().contains("raisinbread")){ - list.add(EnumChatFormatting.GRAY+"We all know that " + materialName + " is delicious!"); - } super.addInformation(stack, aPlayer, list, bool); } @@ -74,7 +77,7 @@ public class BaseItemIngot extends Item{ } private void addBendingRecipe(){ - if (!unlocalName.toLowerCase().contains("ingothot") && !unlocalName.toLowerCase().contains("raisinbread")){ + if (!unlocalName.toLowerCase().contains("ingothot")){ GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{this}), UtilsItems.getItemStackOfAmountFromOreDict("plate"+materialName, 1), 1200, 24); diff --git a/src/Java/miscutil/core/item/base/plates/BaseItemPlate.java b/src/Java/miscutil/core/item/base/plates/BaseItemPlate.java new file mode 100644 index 0000000000..07c5a99f11 --- /dev/null +++ b/src/Java/miscutil/core/item/base/plates/BaseItemPlate.java @@ -0,0 +1,76 @@ +package miscutil.core.item.base.plates; + +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_OreDictUnificator; + +import java.util.List; + +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.lib.CORE; +import miscutil.core.util.Utils; +import miscutil.core.util.item.UtilsItems; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import cpw.mods.fml.common.registry.GameRegistry; + +public class BaseItemPlate extends Item{ + + protected int colour; + protected String materialName; + protected String unlocalName; + + public BaseItemPlate(String unlocalizedName, String materialName, int colour) { + setUnlocalizedName(unlocalizedName); + this.setCreativeTab(AddToCreativeTab.tabMisc); + this.setUnlocalizedName(unlocalizedName); + this.unlocalName = unlocalizedName; + this.setMaxStackSize(64); + this.setTextureName(CORE.MODID + ":" + "itemPlate"); + this.setMaxStackSize(64); + this.colour = colour; + this.materialName = materialName; + GameRegistry.registerItem(this, unlocalizedName); + GT_OreDictUnificator.registerOre(unlocalName.replace("itemP", "p"), UtilsItems.getSimpleStack(this)); + addBendingRecipe(); + } + + @Override + public String getItemStackDisplayName(ItemStack p_77653_1_) { + + return (materialName+ " Plate"); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) { + if (materialName != null && materialName != "" && !materialName.equals("")){ + list.add(EnumChatFormatting.GRAY+"A flat plate of " + materialName + "."); + } + super.addInformation(stack, aPlayer, list, bool); + } + + public final String getMaterialName() { + return materialName; + } + + @Override + public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) { + if (colour == 0){ + return Utils.generateSingularRandomHexValue(); + } + return colour; + + } + + private void addBendingRecipe(){ + String tempIngot = unlocalName.replace("itemPlate", "ingot"); + ItemStack tempOutputStack = UtilsItems.getItemStackOfAmountFromOreDict(tempIngot, 1); + if (null != tempOutputStack){ + GT_Values.RA.addBenderRecipe(UtilsItems.getSimpleStack(this), + tempOutputStack, + 1200, 24); + } + } + +} -- cgit