diff options
Diffstat (limited to 'src/Java/miscutil/core/item')
5 files changed, 186 insertions, 16 deletions
diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java index db6b081fd1..5c5902206e 100644 --- a/src/Java/miscutil/core/item/ModItems.java +++ b/src/Java/miscutil/core/item/ModItems.java @@ -4,8 +4,10 @@ import static miscutil.core.creative.AddToCreativeTab.tabMisc; import static miscutil.core.lib.CORE.LOAD_ALL_CONTENT; import gregtech.api.util.GT_OreDictUnificator; import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.item.base.BaseItemHotFood; import miscutil.core.item.base.CoreItem; import miscutil.core.item.base.dusts.BaseItemDust; +import miscutil.core.item.base.foods.BaseItemFood; import miscutil.core.item.base.ingots.BaseItemIngot; import miscutil.core.item.base.ingots.BaseItemIngotHot; import miscutil.core.item.effects.RarityUncommon; @@ -21,6 +23,8 @@ import miscutil.core.util.debug.DEBUG_INIT; import miscutil.core.util.item.UtilsItems; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraftforge.common.util.EnumHelper; import cpw.mods.fml.common.registry.GameRegistry; public final class ModItems { @@ -64,7 +68,7 @@ Gold Tool: 22*/ public static ToolMaterial STABALLOY = EnumHelper.addToolMaterial("Staballoy", 3, 2500, 7, 1.0F, 18); public static Item AAA_Broken; - + public static Item itemDebugShapeSpawner; public static Item itemBaseSpawnEgg; @@ -130,11 +134,16 @@ Gold Tool: 22*/ public static Item itemIngotRaisinBread; public static Item itemHotIngotRaisinBread; + public static BaseItemIngot itemIngotTantalloy60; + public static BaseItemIngotHot itemHotIngotTantalloy60; + public static BaseItemIngot itemIngotTantalloy61; + public static BaseItemIngotHot itemHotIngotTantalloy61; + //@SuppressWarnings("unused") public static final void init(){ AAA_Broken = new BaseItemIngot("AAA_Broken", "Errors - Tell Alkalus", Utils.rgbtoHexValue(128, 128, 0)); - + //Debug Loading if (CORE.DEBUG){ DEBUG_INIT.registerItems(); @@ -275,7 +284,7 @@ Gold Tool: 22*/ GameRegistry.registerItem(itemStaballoyPickaxe, itemStaballoyPickaxe.getUnlocalizedName()); itemStaballoyAxe = new StaballoyAxe("itemStaballoyAxe", STABALLOY).setCreativeTab(AddToCreativeTab.tabTools); GameRegistry.registerItem(itemStaballoyAxe, itemStaballoyAxe.getUnlocalizedName()); - + //Staballoy Ingot/Plate itemIngotStaballoy = new BaseItemIngot("itemIngotStaballoy", "Staballoy", Utils.rgbtoHexValue(68, 75, 66)); GT_OreDictUnificator.registerOre("ingotStaballoy", UtilsItems.getItemStack(CORE.MODID+":itemIngotStaballoy", 1)); @@ -284,8 +293,8 @@ Gold Tool: 22*/ GT_OreDictUnificator.registerOre("plateStaballoy", UtilsItems.getItemStack(CORE.MODID+":itemPlateStaballoy", 1)); /*itemIngotStaballoy = new Item().setUnlocalizedName("itemIngotStaballoy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemIngotStaballoy"); GameRegistry.registerItem(itemIngotStaballoy, "itemIngotStaballoy"); - */ - + */ + //Staballoy Dusts itemDustStaballoy = new BaseItemDust("itemDustStaballoy", "Staballoy", Utils.rgbtoHexValue(68, 75, 66), "Dust").setCreativeTab(tabMisc); @@ -310,18 +319,30 @@ Gold Tool: 22*/ itemDustSmallBloodSteel = new BaseItemDust("itemDustSmallBloodSteel", "BloodSteel", Utils.rgbtoHexValue(142, 28, 0), "Small").setCreativeTab(tabMisc); GT_OreDictUnificator.registerOre("dustSmallBloodSteel", UtilsItems.getItemStack(CORE.MODID+":itemDustSmallBloodSteel", 1)); - //Hot Staballoy Ingot itemHotIngotStaballoy = new BaseItemIngotHot("itemHotIngotStaballoy", "Staballoy", UtilsItems.getItemStack(CORE.MODID+":itemIngotStaballoy", 1)); GT_OreDictUnificator.registerOre("ingotHotStaballoy", UtilsItems.getItemStack(CORE.MODID+":itemHotIngotStaballoy", 1)); - //Raisin Bread Ingot - itemIngotRaisinBread = new BaseItemIngot("itemIngotRaisinBread", "Raisin Bread", Utils.rgbtoHexValue(255, 255, 255)); + //Raisin Bread + itemIngotRaisinBread = new BaseItemFood("itemIngotRaisinBread", 3, 1.5f, false, new PotionEffect(Potion.weakness.id, 40, 1)).setAlwaysEdible(); GT_OreDictUnificator.registerOre("itemIngotRaisinBread", UtilsItems.getItemStack(CORE.MODID+":itemIngotRaisinBread", 1)); - //Hot Raisin Bread Ingot - itemHotIngotRaisinBread = new BaseItemIngotHot("itemHotIngotRaisinBread", "Raisin Bread", UtilsItems.getItemStack(CORE.MODID+":itemIngotStaballoy", 1)); + //Hot Raisin Bread + itemHotIngotRaisinBread = new BaseItemHotFood("itemHotIngotRaisinBread", 1, 0.5f, "Raisin Bread", 120, itemIngotRaisinBread); GT_OreDictUnificator.registerOre("itemHotIngotRaisinBread", UtilsItems.getItemStack(CORE.MODID+":itemHotIngotRaisinBread", 1)); + //Tantalloy Ingot/Plate + itemIngotTantalloy60 = new BaseItemIngot("itemIngotTantalloy60", "Tantalloy-60", Utils.rgbtoHexValue(68, 75, 166)); + GT_OreDictUnificator.registerOre("ingotTantalloy-60", UtilsItems.getItemStack(CORE.MODID+":itemIngotTantalloy60", 1)); + //Hot Tantalloy Ingot + itemHotIngotTantalloy60 = new BaseItemIngotHot("itemHotIngotTantalloy60", "Tantalloy-60", UtilsItems.getItemStack(CORE.MODID+":itemIngotTantalloy60", 1)); + GT_OreDictUnificator.registerOre("ingotHotTantalloy-60", UtilsItems.getItemStack(CORE.MODID+":itemHotIngotTantalloy60", 1)); + + //Tantalloy Ingot/Plate + itemIngotTantalloy61 = new BaseItemIngot("itemIngotTantalloy61", "Tantalloy-61", Utils.rgbtoHexValue(122, 135, 196)); + GT_OreDictUnificator.registerOre("ingotTantalloy-61", UtilsItems.getItemStack(CORE.MODID+":itemIngotTantalloy61", 1)); + //Hot Tantalloy Ingot + itemHotIngotTantalloy61 = new BaseItemIngotHot("itemHotIngotTantalloy61", "Tantalloy-61", UtilsItems.getItemStack(CORE.MODID+":itemIngotTantalloy61", 1)); + GT_OreDictUnificator.registerOre("ingotHotTantalloy-61", UtilsItems.getItemStack(CORE.MODID+":itemHotIngotTantalloy61", 1)); //Sandstone Hammer itemSandstoneHammer = new SandstoneHammer("itemSandstoneHammer").setCreativeTab(AddToCreativeTab.tabTools); 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_); + } } + + } |