From c765542d6a122b8433406d55d2b40116a611e585 Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Fri, 28 Sep 2018 02:04:01 -0400 Subject: [PATCH] Forge Light level reduce, forge cools down, ingots dont need to read upgrades, casting form fixed, anvil now cools its inventory, longbow arrow velocity balanced, more bucket crafting, config, copper tools, config for lowering fortune multiplier need to finish copper tool and tool head assets --- kfc/To-Dos.md | 12 +- .../nmd/primal/forgecraft/CommonEvents.java | 17 +- .../blocks/machine/CastingForm.java | 41 +- .../nmd/primal/forgecraft/init/ModConfig.java | 8 +- .../primal/forgecraft/init/ModCrafting.java | 38 +- .../nmd/primal/forgecraft/init/ModItems.java | 62 ++- .../forgecraft/items/BaseMultiItem.java | 2 - ...ronzeToolPart.java => SimpleToolPart.java} | 57 ++- .../forgecraft/items/parts/ToolPart.java | 190 +-------- .../forgecraft/items/tools/AbstractAxe.java | 36 +- .../forgecraft/items/tools/AbstractHoe.java | 212 ++++++++++ .../items/tools/AbstractPickaxe.java | 243 ++++++++++++ .../items/tools/AbstractShovel.java | 237 +++++++++++ .../forgecraft/items/tools/CustomAxe.java | 200 ---------- .../forgecraft/items/tools/CustomHoe.java | 195 +-------- .../forgecraft/items/tools/CustomPickaxe.java | 374 +----------------- .../forgecraft/items/tools/CustomShovel.java | 370 +---------------- .../items/tools/bronze/BronzeAxe.java | 52 --- .../items/tools/bronze/BronzeHoe.java | 69 +--- .../items/tools/bronze/BronzePickaxe.java | 231 +---------- .../items/tools/bronze/BronzeShovel.java | 221 +---------- .../items/tools/copper/CopperAxe.java | 63 +++ .../items/tools/copper/CopperHoe.java | 45 +++ .../items/tools/copper/CopperPickaxe.java | 40 ++ .../items/tools/copper/CopperShovel.java | 51 +++ .../primal/forgecraft/tiles/TileForge.java | 3 +- .../models/item/axe/copper/copperaxe_0.json | 8 + .../models/item/axe/copper/copperaxe_1.json | 8 + .../models/item/axe/copper/copperaxe_2.json | 8 + .../models/item/axe/copper/copperaxe_3.json | 8 + .../models/item/axe/copper/copperaxe_4.json | 8 + .../forgecraft/models/item/bronzeaxe.json | 9 +- .../forgecraft/models/item/bronzeaxehead.json | 10 +- .../forgecraft/models/item/bronzehoe.json | 9 +- .../forgecraft/models/item/bronzehoehead.json | 8 +- .../forgecraft/models/item/bronzepickaxe.json | 8 +- .../models/item/bronzepickaxehead.json | 8 +- .../forgecraft/models/item/bronzeshovel.json | 8 +- .../models/item/bronzeshovelhead.json | 8 +- 39 files changed, 1156 insertions(+), 2021 deletions(-) rename kfc/src/main/java/nmd/primal/forgecraft/items/parts/{BronzeToolPart.java => SimpleToolPart.java} (73%) create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractHoe.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractPickaxe.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractShovel.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperAxe.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperHoe.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperPickaxe.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperShovel.java create mode 100644 kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_0.json create mode 100644 kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_1.json create mode 100644 kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_2.json create mode 100644 kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_3.json create mode 100644 kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_4.json diff --git a/kfc/To-Dos.md b/kfc/To-Dos.md index bf5ab8cd..cae880ed 100644 --- a/kfc/To-Dos.md +++ b/kfc/To-Dos.md @@ -11,15 +11,15 @@ - [x] Anvil cool down items - [x] Longbow Fire Speed - [x] More Crafting for buckets +- [x] Config Usage +- [x] Copper Tools +- [x] Config for lowering fortune multiplier -- [ ] Config Usage -- [ ] Copper Tools - [ ] Copper Tool Casting - [ ] Copper Tool Assets - +- [ ] Emerald and redstone asset +- [ ] Diamond + Redstone no texture - [ ] Craft Tweaker Support - -- [ ] Config for lowering fortune multiplier - [ ] Hardened Leather Helmet Inventory Model ## Feature Musket @@ -36,7 +36,7 @@ ## Backlog - [ ] Bloomery Print out - [ ] Random Floats for hot texture -- [ ] Diamond + Redstone no texture + - [ ] Mass Ore Production - [ ] Silver/Lead Production - [ ] Sparks to forging diff --git a/kfc/src/main/java/nmd/primal/forgecraft/CommonEvents.java b/kfc/src/main/java/nmd/primal/forgecraft/CommonEvents.java index 60836e6e..39ec91eb 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/CommonEvents.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/CommonEvents.java @@ -5,9 +5,12 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; -import nmd.primal.forgecraft.items.parts.BronzeToolPart; +import nmd.primal.forgecraft.items.parts.SimpleToolPart; import nmd.primal.forgecraft.items.parts.ToolPart; -import nmd.primal.forgecraft.items.tools.*; +import nmd.primal.forgecraft.items.tools.CustomAxe; +import nmd.primal.forgecraft.items.tools.CustomHoe; +import nmd.primal.forgecraft.items.tools.CustomPickaxe; +import nmd.primal.forgecraft.items.tools.CustomShovel; import nmd.primal.forgecraft.items.tools.bronze.BronzeAxe; import nmd.primal.forgecraft.items.tools.bronze.BronzeHoe; import nmd.primal.forgecraft.items.tools.bronze.BronzePickaxe; @@ -31,7 +34,7 @@ public class CommonEvents implements ToolNBT { if (event.craftMatrix.getStackInSlot(i) != null) { // If there is an item ItemStack a = event.craftMatrix.getStackInSlot(i); // Gets the item - if (a.getItem() instanceof ToolPart || a.getItem() instanceof BronzeToolPart) { + if (a.getItem() instanceof ToolPart || a.getItem() instanceof SimpleToolPart) { tempTag = a.getSubCompound("tags").copy(); event.crafting.getTagCompound().setTag("tags", tempTag); event.crafting.getItem().updateItemStackNBT(event.crafting.getTagCompound()); @@ -46,7 +49,7 @@ public class CommonEvents implements ToolNBT { if (event.craftMatrix.getStackInSlot(i) != null) { // If there is an item ItemStack a = event.craftMatrix.getStackInSlot(i); // Gets the item - if (a.getItem() instanceof ToolPart || a.getItem() instanceof BronzeToolPart) { + if (a.getItem() instanceof ToolPart || a.getItem() instanceof SimpleToolPart) { tempTag = a.getSubCompound("tags").copy(); event.crafting.getTagCompound().setTag("tags", tempTag); event.crafting.getItem().updateItemStackNBT(event.crafting.getTagCompound()); @@ -61,7 +64,7 @@ public class CommonEvents implements ToolNBT { if (event.craftMatrix.getStackInSlot(i) != null) { // If there is an item ItemStack a = event.craftMatrix.getStackInSlot(i); // Gets the item - if (a.getItem() instanceof ToolPart || a.getItem() instanceof BronzeToolPart) { + if (a.getItem() instanceof ToolPart || a.getItem() instanceof SimpleToolPart) { tempTag = a.getSubCompound("tags").copy(); event.crafting.getTagCompound().setTag("tags", tempTag); event.crafting.getItem().updateItemStackNBT(event.crafting.getTagCompound()); @@ -76,7 +79,7 @@ public class CommonEvents implements ToolNBT { if (event.craftMatrix.getStackInSlot(i) != null) { // If there is an item ItemStack a = event.craftMatrix.getStackInSlot(i); // Gets the item - if (a.getItem() instanceof ToolPart || a.getItem() instanceof BronzeToolPart) { + if (a.getItem() instanceof ToolPart || a.getItem() instanceof SimpleToolPart) { tempTag = a.getSubCompound("tags").copy(); event.crafting.getTagCompound().setTag("tags", tempTag); event.crafting.getItem().updateItemStackNBT(event.crafting.getTagCompound()); @@ -85,7 +88,7 @@ public class CommonEvents implements ToolNBT { } } } - if (event.crafting.getItem() instanceof ToolPart || event.crafting.getItem() instanceof BronzeToolPart) { + if (event.crafting.getItem() instanceof ToolPart || event.crafting.getItem() instanceof SimpleToolPart) { NBTTagCompound tempTag = new NBTTagCompound(); for (int i = 0; i < event.craftMatrix.getSizeInventory(); i++) { // Checks all the slots diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/CastingForm.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/CastingForm.java index 4db3311e..40d88406 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/CastingForm.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/machine/CastingForm.java @@ -31,7 +31,7 @@ import nmd.primal.forgecraft.crafting.CrucibleCrafting; import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.items.SlottedTongs; -import nmd.primal.forgecraft.items.parts.BronzeToolPart; +import nmd.primal.forgecraft.items.parts.SimpleToolPart; import nmd.primal.forgecraft.tiles.TileCastingForm; import nmd.primal.forgecraft.util.CastingFormHandler; import nmd.primal.forgecraft.util.ToolNBT; @@ -64,11 +64,14 @@ public class CastingForm extends CustomContainerFacing implements CastingFormHan doInventoryManager(pItem, world, tile, pos, hitx, hity, hitz, state, player); } if(pItem.getItem().equals(ModItems.slottedtongs)){ + IItemHandler inventory = pItem.getCapability(ITEM_HANDLER, null); - ItemStack slotStack = inventory.getStackInSlot(0).copy(); + SlottedTongs itemstackItem = (SlottedTongs) pItem.getItem(); + ItemStack tongsStack = inventory.getStackInSlot(0).copy(); + SlottedTongs tongs = (SlottedTongs) pItem.getItem(); - if(slotStack.getItem().equals(Item.getItemFromBlock(ModBlocks.nbtCrucible))) { - ItemStack tongsStack = slotStack.copy(); + if(tongsStack.getItem().equals(Item.getItemFromBlock(ModBlocks.nbtCrucible))) { + NBTTagCompound tag = tongsStack.getTagCompound().copy(); if(tag != null){ @@ -86,7 +89,8 @@ public class CastingForm extends CustomContainerFacing implements CastingFormHan CastingCrafting casting = CastingCrafting.getRecipe(tongsStack, tempArray); if(casting != null){ NBTTagCompound tagOutput = casting.getOutput().getTagCompound(); - //System.out.println(tagOutput); + NBTTagCompound crucibleOutput = crucibleRecipe.getDropsCooked().getTagCompound(); + if(tagOutput != null) { ItemStack dropStack = casting.getOutput(); dropStack.setTagCompound(new NBTTagCompound()); @@ -94,46 +98,39 @@ public class CastingForm extends CustomContainerFacing implements CastingFormHan dropStack.getTagCompound().setTag("tags", tags); setHot(dropStack, false); - if (tagOutput.getString("upgrades") == "emerald") { + if (crucibleOutput.getString("upgrades") == "emerald") { setEmerald(dropStack, true); + setModifiers(dropStack, 1); } else { setEmerald(dropStack, false); } - if (tagOutput.getString("upgrades") == "diamond") { + if (crucibleOutput.getString("upgrades") == "diamond") { setDiamondLevel(dropStack, 1); + setModifiers(dropStack, 1); } else { setDiamondLevel(dropStack, 0); } - if (tagOutput.getString("upgrades") == "redstone") { + if (crucibleOutput.getString("upgrades") == "redstone") { setRedstoneLevel(dropStack, 1); + setModifiers(dropStack, 1); } else { setRedstoneLevel(dropStack, 0); } - if (tagOutput.getString("upgrades") == "lapis") { + if (crucibleOutput.getString("upgrades") == "lapis") { setLapisLevel(dropStack, 1); + setModifiers(dropStack, 1); } else { setLapisLevel(dropStack, 0); } - setModifiers(dropStack, 1); + CommonUtils.spawnItemEntityFromWorld(world, pos, dropStack); tag.getCompoundTag("BlockEntityTag").setBoolean("status", false); tag.getCompoundTag("BlockEntityTag").setInteger("hot", 0); ItemStackHelper.saveAllItems(tag.getCompoundTag("BlockEntityTag"), ingListEmpty); inventory.getStackInSlot(0).setTagCompound(tag); + itemstackItem.markDirty(pItem); return true; } - if(tagOutput == null){ - System.out.println("Tag is null"); - if( !(casting.getOutput().getItem() instanceof BronzeToolPart) ){ - ItemStack dropStack = casting.getOutput(); - CommonUtils.spawnItemEntityFromWorld(world, pos, dropStack); - tag.getCompoundTag("BlockEntityTag").setBoolean("status", false); - tag.getCompoundTag("BlockEntityTag").setInteger("hot", 0); - ItemStackHelper.saveAllItems(tag.getCompoundTag("BlockEntityTag"), ingListEmpty); - inventory.getStackInSlot(0).setTagCompound(tag); - return true; - } - } } } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModConfig.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModConfig.java index d0e85996..cf4aca86 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModConfig.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModConfig.java @@ -1,7 +1,6 @@ package nmd.primal.forgecraft.init; import net.minecraftforge.common.config.Config; -import nmd.primal.forgecraft.ForgeCraft; import nmd.primal.forgecraft.ModInfo; @Config(modid = ModInfo.MOD_ID, name = ModInfo.MOD_CONFIG, category = "") @@ -10,9 +9,9 @@ import nmd.primal.forgecraft.ModInfo; public final class ModConfig { - static { - ForgeCraft.LOGGER.info("Loading Config File: " + ModInfo.MOD_CONFIG + ".cfg"); - } + //static { + // ForgeCraft.LOGGER.info("Loading Config File: " + ModInfo.MOD_CONFIG + ".cfg"); + //} /** * Main Config Sections @@ -44,6 +43,7 @@ public final class ModConfig public static boolean ENABLE_COPPER_TOOLS = false; @Config.Comment({"Bronze Tool Lapis Bonus do not go greater than 5"}) + @Config.RangeInt(min = 0, max = 5) public static int BRONZE_LAPIS_MULTIPLIER = 5; @Config.Comment({"Copper Tools Emerald Upgrade"}) diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java index 4b239062..3211b5d2 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java @@ -30,7 +30,6 @@ public class ModCrafting{ NBTTagCompound newTag = new NBTTagCompound(); - NBTTagCompound setHot = new NBTTagCompound(); setHot.setBoolean("hot", true); @@ -174,15 +173,16 @@ public class ModCrafting{ for(ItemStack temp : toolArray) { - NBTTagCompound tags = new NBTTagCompound(); - temp.getTagCompound().setTag("tags", tags); + NBTTagCompound tags = temp.getTagCompound(); + tags.setTag("tags", tags); - temp.getSubCompound("tags").setBoolean("hot", false); - temp.getSubCompound("tags").setBoolean("emerald", false); - temp.getSubCompound("tags").setInteger("diamond", 0); - temp.getSubCompound("tags").setInteger("redstone", 0); - temp.getSubCompound("tags").setInteger("lapis", 0); - temp.getSubCompound("tags").setInteger("modifiers", 0); + tags.getCompoundTag("tags").setBoolean("hot", false); + tags.getCompoundTag("tags").setBoolean("emerald", false); + tags.getCompoundTag("tags").setInteger("diamond", 0); + tags.getCompoundTag("tags").setInteger("redstone", 0); + tags.getCompoundTag("tags").setInteger("lapis", 0); + tags.getCompoundTag("tags").setInteger("modifiers", 0); + temp.setTagCompound(tags); } bronzepickaxehead = toolArray[0]; @@ -393,20 +393,6 @@ public class ModCrafting{ 800, 600); - - /*CrucibleCrafting.addRecipe( - new OreIngredient("oreBronze"), - Ingredient.EMPTY, - Ingredient.EMPTY, - Ingredient.EMPTY, - Ingredient.EMPTY, - new ItemStack(PrimalAPI.Items.SLAG, 1), - defaultBronze, - 1100, - 800, - 600); - */ - CrucibleCrafting.addRecipe( new OreIngredient("ingotBronze"), Ingredient.EMPTY, @@ -419,10 +405,6 @@ public class ModCrafting{ 800, 600); - //NBTTagCompound tag = new NBTTagCompound(); - //tag.setString("upgrades", "redstone"); - //ItemStack redBronze = new ItemStack(ModItems.bronzeingotball, 1); - //redBronze.setTagCompound(tag.copy()); ItemStack redBronze = defaultBronze.copy(); redBronze.getTagCompound().setString("upgrades", "redstone"); CrucibleCrafting.addRecipe( @@ -469,7 +451,7 @@ public class ModCrafting{ lapisBronze.getTagCompound().setString("upgrades", "lapis"); CrucibleCrafting.addRecipe( new OreIngredient("ingotBronze"), - new OreIngredient("dustLapis"), + new OreIngredient("gemLapis"), Ingredient.EMPTY, Ingredient.EMPTY, Ingredient.EMPTY, diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java index df303880..3c663149 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java @@ -12,13 +12,20 @@ import nmd.primal.core.api.PrimalAPI; import nmd.primal.forgecraft.items.*; import nmd.primal.forgecraft.items.armor.CustomHelmet; import nmd.primal.forgecraft.items.blocks.ItemNBTCrucible; -import nmd.primal.forgecraft.items.parts.BronzeToolPart; +import nmd.primal.forgecraft.items.parts.SimpleToolPart; import nmd.primal.forgecraft.items.parts.ToolPart; -import nmd.primal.forgecraft.items.tools.*; +import nmd.primal.forgecraft.items.tools.CustomAxe; +import nmd.primal.forgecraft.items.tools.CustomHoe; +import nmd.primal.forgecraft.items.tools.CustomPickaxe; +import nmd.primal.forgecraft.items.tools.CustomShovel; import nmd.primal.forgecraft.items.tools.bronze.BronzeAxe; import nmd.primal.forgecraft.items.tools.bronze.BronzeHoe; import nmd.primal.forgecraft.items.tools.bronze.BronzePickaxe; import nmd.primal.forgecraft.items.tools.bronze.BronzeShovel; +import nmd.primal.forgecraft.items.tools.copper.CopperAxe; +import nmd.primal.forgecraft.items.tools.copper.CopperHoe; +import nmd.primal.forgecraft.items.tools.copper.CopperPickaxe; +import nmd.primal.forgecraft.items.tools.copper.CopperShovel; import nmd.primal.forgecraft.items.weapons.CustomShield; import nmd.primal.forgecraft.items.weapons.CustomSword; import nmd.primal.forgecraft.items.weapons.Longbow; @@ -129,6 +136,7 @@ public class ModItems { public static Item steelslayer; public static Item wootzslayer; + public static Item brokencoppertool; public static Item brokenbronzetool; public static Item brokenwroughtirontool; public static Item brokencleanirontool; @@ -171,21 +179,21 @@ public class ModItems { TOOL PARTS **********/ if(ModConfig.Features.ENABLE_COPPER_TOOLS){ - copperpickaxehead; - copperaxehead; - coppershovelhead; - copperhoehead; + copperpickaxehead = new SimpleToolPart("copperpickaxehead", PrimalAPI.ToolMaterials.TOOL_COPPER, "pickaxe"); + copperaxehead = new SimpleToolPart("copperaxehead", PrimalAPI.ToolMaterials.TOOL_COPPER, "axe"); + coppershovelhead= new SimpleToolPart("coppershovelhead", PrimalAPI.ToolMaterials.TOOL_COPPER, "shovel"); + copperhoehead = new SimpleToolPart("copperhoehead", PrimalAPI.ToolMaterials.TOOL_COPPER, "hoe"); - copperpickaxe; - copperaxe; - coppershovel; - copperhoe; + copperpickaxe = new CopperPickaxe("copperpickaxe", PrimalAPI.ToolMaterials.TOOL_COPPER, brokencoppertool); + copperaxe = new CopperAxe("copperaxe", PrimalAPI.ToolMaterials.TOOL_COPPER, brokencoppertool, 4, -2.6F); + coppershovel = new CopperShovel("coppershovel", PrimalAPI.ToolMaterials.TOOL_COPPER, brokencoppertool); + copperhoe = new CopperHoe("copperhoe", PrimalAPI.ToolMaterials.TOOL_COPPER, brokencoppertool); } - bronzepickaxehead = new BronzeToolPart("bronzepickaxehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "pickaxe"); - bronzeaxehead = new BronzeToolPart("bronzeaxehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "axe"); - bronzeshovelhead = new BronzeToolPart("bronzeshovelhead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "shovel"); - bronzehoehead = new BronzeToolPart("bronzehoehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "hoe"); + bronzepickaxehead = new SimpleToolPart("bronzepickaxehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "pickaxe"); + bronzeaxehead = new SimpleToolPart("bronzeaxehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "axe"); + bronzeshovelhead = new SimpleToolPart("bronzeshovelhead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "shovel"); + bronzehoehead = new SimpleToolPart("bronzehoehead", PrimalAPI.ToolMaterials.TOOL_BRONZE, "hoe"); pickaxehead = new ToolPart("ironpickaxehead", PrimalAPI.ToolMaterials.TOOL_WROUGHT_IRON, "pickaxe"); ironaxehead = new ToolPart("ironaxehead", PrimalAPI.ToolMaterials.TOOL_WROUGHT_IRON, "axe"); @@ -276,6 +284,7 @@ public class ModItems { //forgingmanual = new ItemForgingManual(); //test = new ItemTest("ironsword"); + brokencoppertool = new BaseItem("brokencoppertool"); brokenbronzetool = new BaseItem("brokenbronzetool"); brokenwroughtirontool = new BaseItem("brokenwroughtirontool"); brokencleanirontool = new BaseItem("brokencleanirontool"); @@ -316,6 +325,18 @@ public class ModItems { /********** TOOL PARTS **********/ + if(ModConfig.Features.ENABLE_COPPER_TOOLS){ + ForgeRegistries.ITEMS.register(copperpickaxehead); + ForgeRegistries.ITEMS.register(copperaxehead); + ForgeRegistries.ITEMS.register(coppershovelhead); + ForgeRegistries.ITEMS.register(copperhoehead); + + ForgeRegistries.ITEMS.register(copperpickaxe); + ForgeRegistries.ITEMS.register(copperaxe); + ForgeRegistries.ITEMS.register(coppershovel); + ForgeRegistries.ITEMS.register(copperhoe); + } + ForgeRegistries.ITEMS.register(bronzepickaxehead); ForgeRegistries.ITEMS.register(bronzeaxehead); ForgeRegistries.ITEMS.register(bronzeshovelhead); @@ -437,6 +458,19 @@ public class ModItems { /********** TOOL PARTS **********/ + + if(ModConfig.Features.ENABLE_COPPER_TOOLS){ + registerRender(copperpickaxehead); + registerRender(copperaxehead); + registerRender(coppershovelhead); + registerRender(copperhoehead); + + registerRender(copperpickaxe); + registerRender(copperaxe); + registerRender(coppershovel); + registerRender(copperhoe); + } + registerRender(bronzepickaxehead); registerRender(bronzeaxehead); registerRender(bronzeshovelhead); diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java b/kfc/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java index 4a36cae9..2cb17a4a 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/BaseMultiItem.java @@ -1,6 +1,5 @@ package nmd.primal.forgecraft.items; -import com.mojang.realmsclient.gui.ChatFormatting; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -16,7 +15,6 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.FireHelper; import nmd.primal.forgecraft.init.ModItems; import javax.annotation.Nullable; diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/parts/BronzeToolPart.java b/kfc/src/main/java/nmd/primal/forgecraft/items/parts/SimpleToolPart.java similarity index 73% rename from kfc/src/main/java/nmd/primal/forgecraft/items/parts/BronzeToolPart.java rename to kfc/src/main/java/nmd/primal/forgecraft/items/parts/SimpleToolPart.java index abecdb4c..3a693335 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/parts/BronzeToolPart.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/parts/SimpleToolPart.java @@ -13,6 +13,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.util.ToolNBT; import javax.annotation.Nullable; @@ -21,61 +22,53 @@ import java.util.List; /** * Created by mminaie on 3/9/17. */ -public class BronzeToolPart extends Item implements ToolNBT{ +public class SimpleToolPart extends Item implements ToolNBT{ private String toolType; - public BronzeToolPart(String name, ToolMaterial material, String type) { + public SimpleToolPart(String name, ToolMaterial material, String type) { this.setMaxDamage(material.getMaxUses()); this.setUnlocalizedName(name); this.setRegistryName(name); - //this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + this.setCreativeTab(ModInfo.TAB_FORGECRAFT); this.setMaxStackSize(1); this.setNoRepair(); this.toolType = type; - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() - { + this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { /*** - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 + hot | emerald | diamond | redstone | lapis + X.0 | 0.X | 0.0X | 0.00X | 0.000X ***/ @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { + public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { if (item.hasTagCompound()) { - - - if (getModifiers(item) != 0) { - if (getEmerald(item)) { - return 0.1F; - } - - if (getDiamondLevel(item) == 1) { - return 0.2F; - } - - if ( getRedstoneLevel(item) == 1) { - return 0.3F; - } - - if (getLapisLevel(item) == 1) { - return 0.4F; - } + Float returnFloat = 0.0F; + if(getHot(item)){ + returnFloat = returnFloat + 1.0F; } - if (getModifiers(item) == 0) { - return 0.0F; + if(getEmerald(item)){ + returnFloat += 0.1F; } + if(getDiamondLevel(item)>0){ + returnFloat += (0.01F * getDiamondLevel(item)); + } + if(getRedstoneLevel(item)>0){ + returnFloat += (0.001F * getRedstoneLevel(item)); + } + if(getLapisLevel(item)>0){ + returnFloat += (0.0001F * getLapisLevel(item)); + } + return returnFloat; } return 0.0F; } }); - } public static boolean isHidden() @@ -130,8 +123,8 @@ public class BronzeToolPart extends Item implements ToolNBT{ { if(item.hasTagCompound()) { - tooltip.add(ChatFormatting.GRAY + "Upgrades"); - if (getEmerald(item) == true) { + tooltip.add(ChatFormatting.GRAY + "Upgrades: " + getModifiers(item)); + if (getEmerald(item)) { tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); } if (getDiamondLevel(item) > 0) { diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/parts/ToolPart.java b/kfc/src/main/java/nmd/primal/forgecraft/items/parts/ToolPart.java index 43e95325..5ff9997b 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/parts/ToolPart.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/parts/ToolPart.java @@ -16,7 +16,6 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.FireHelper; import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.util.ToolNBT; @@ -42,192 +41,39 @@ public class ToolPart extends Item implements ToolNBT{ this.toolType = type; this.toolMaterial = material; - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() - { + this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { /*** - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 + hot | emerald | diamond | redstone | lapis + X.0 | 0.X | 0.0X | 0.00X | 0.000X ***/ @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { + public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { if (item.hasTagCompound()) { - - if (getHot(item) == false) { - if (getModifiers(item) != 0) { - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.1F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.11F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.12F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.111F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.102F; - } - - // ============ - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.01F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.02F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 3) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.03F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 3) && - (getLapisLevel(item) == 0)) { - return 0.003F; - } - - //========= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 1)) { - return 0.0001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2)) { - return 0.0002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 3)) { - return 0.0003F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 1)) { - return 0.0111F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 2)) { - return 0.0012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 1)) { - return 0.0021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2) ) { - return 0.0102F; - } - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 1) ) { - return 0.0011F; - } - } + Float returnFloat = 0.0F; + if(getHot(item)){ + returnFloat = returnFloat + 1.0F; } - if (getHot(item) == true) { - return 1.0F; + if(getEmerald(item)){ + returnFloat += 0.1F; } - - if (getHot(item) == false) { - if (getModifiers(item) == 0) { - return 0.0F; - } + if(getDiamondLevel(item)>0){ + returnFloat += (0.01F * getDiamondLevel(item)); } + if(getRedstoneLevel(item)>0){ + returnFloat += (0.001F * getRedstoneLevel(item)); + } + if(getLapisLevel(item)>0){ + returnFloat += (0.0001F * getLapisLevel(item)); + } + return returnFloat; } return 0.0F; } }); - } public static boolean isHidden() diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractAxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractAxe.java index a5c9f73e..fcfa6ffb 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractAxe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractAxe.java @@ -4,7 +4,6 @@ import com.mojang.realmsclient.gui.ChatFormatting; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +29,7 @@ public abstract class AbstractAxe extends ItemAxe implements ToolNBT { Item drop; - public AbstractAxe(String name, Item.ToolMaterial material, Item damageDrop, Integer damage, Float speed) { + public AbstractAxe(String name, ToolMaterial material, Item damageDrop, Integer damage, Float speed) { super(material, damage, speed); this.setUnlocalizedName(name); this.setRegistryName(name); @@ -39,6 +38,39 @@ public abstract class AbstractAxe extends ItemAxe implements ToolNBT { this.setNoRepair(); this.drop = damageDrop; + this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { + + /*** + + hot | emerald | diamond | redstone | lapis + X.0 | 0.X | 0.0X | 0.00X | 0.000X + + ***/ + + @SideOnly(Side.CLIENT) + public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { + if (item.hasTagCompound()) { + Float returnFloat = 0.0F; + if(getHot(item)){ + returnFloat = returnFloat + 1.0F; + } + if(getEmerald(item)){ + returnFloat += 0.1F; + } + if(getDiamondLevel(item)>0){ + returnFloat += (0.01F * getDiamondLevel(item)); + } + if(getRedstoneLevel(item)>0){ + returnFloat += (0.001F * getRedstoneLevel(item)); + } + if(getLapisLevel(item)>0){ + returnFloat += (0.0001F * getLapisLevel(item)); + } + return returnFloat; + } + return 0.0F; + } + }); } public static boolean isHidden() diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractHoe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractHoe.java new file mode 100644 index 00000000..3bc1d509 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractHoe.java @@ -0,0 +1,212 @@ +package nmd.primal.forgecraft.items.tools; + +import com.mojang.realmsclient.gui.ChatFormatting; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; +import net.minecraft.item.Item; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.core.common.helper.PlayerHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.util.ToolNBT; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public abstract class AbstractHoe extends ItemHoe implements ToolNBT { + + private Item drop; + + public AbstractHoe(String name, ToolMaterial material, Item damageDrop) { + super(material); + this.setUnlocalizedName(name); + this.setRegistryName(name); + this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + this.setMaxStackSize(1); + this.setNoRepair(); + this.drop = damageDrop; + } + + public static boolean isHidden() + { + return false; + } + + @Override + public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { + + if(!world.isRemote) { + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + /*setHot(item, false); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0);*/ + } + } + } + + @Override + public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { + if(!world.isRemote) { + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0); + + } + + if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ + PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); + ((EntityPlayer) player).inventory.deleteStack(item); + } + + } + } + + //public void onItemTooltip(ItemTooltipEvent event){ + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) + { + if(item.hasTagCompound()) + { + tooltip.add(ChatFormatting.GRAY + "Upgrades: " + (getModifiers(item)) ); + if (getEmerald(item) == true) { + tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); + } + if (getDiamondLevel(item) > 0) { + tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); + } + if (getRedstoneLevel(item) > 0) { + tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); + } + if (getLapisLevel(item) > 0) { + tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); + } + tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); + } + + } + + + @Override + protected void setBlock(ItemStack stack, EntityPlayer player, World worldIn, BlockPos pos, IBlockState state) + { + worldIn.playSound(player, pos, SoundEvents.ITEM_HOE_TILL, SoundCategory.BLOCKS, 1.0F, 1.0F); + + if (!worldIn.isRemote) + { + worldIn.setBlockState(pos, state, 11); + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.damageItem(1, player); + } else { + ItemStack dropStack = new ItemStack(drop, 1); + dropStack.setItemDamage(stack.getItemDamage()); + dropStack.setTagCompound(new NBTTagCompound()); + NBTTagCompound copyNBT; + copyNBT = stack.getSubCompound("tags").copy(); + dropStack.setTagCompound(copyNBT); + PlayerHelper.spawnItemOnPlayer(worldIn, player, dropStack); + player.renderBrokenItemStack(stack); + stack.shrink(1); + } + } + } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.damageItem(1, attacker); + return true; + } else { + ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + + EntityPlayer player = (EntityPlayer) attacker; + World world = attacker.getEntityWorld(); + if(!world.isRemote) { + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + attacker.renderBrokenItemStack(stack); + stack.shrink(1); + return true; + } + return false; + } + } + + @Override + public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) + { + if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.getTagCompound().removeTag("ench"); + if(getDiamondLevel(stack) > 0) { + if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { + stack.damageItem(1, entityLiving); + } + } else stack.damageItem(1, entityLiving); + } else { + ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + EntityPlayer player = (EntityPlayer) entityLiving; + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + entityLiving.renderBrokenItemStack(stack); + stack.shrink(1); + } + } + + return true; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean hasEffect(ItemStack stack) + { + return false; + } + + @Override + public boolean isRepairable() + { + return false; + } + + public int getItemEnchantability(ItemStack stack) + { + return 0; + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractPickaxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractPickaxe.java new file mode 100644 index 00000000..91c88eff --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractPickaxe.java @@ -0,0 +1,243 @@ +package nmd.primal.forgecraft.items.tools; + +import com.mojang.realmsclient.gui.ChatFormatting; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.core.common.helper.PlayerHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.util.ToolNBT; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public abstract class AbstractPickaxe extends ItemPickaxe implements ToolNBT { + private Item drop; + + public AbstractPickaxe(String name, Item.ToolMaterial material, Item damageDrop) { + super(material); + this.setUnlocalizedName(name); + this.setRegistryName(name); + this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + this.setMaxStackSize(1); + this.setNoRepair(); + this.drop=damageDrop; + //this.toolClass = "pickaxe"; + + this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { + + /*** + + hot | emerald | diamond | redstone | lapis + X.0 | 0.X | 0.0X | 0.00X | 0.000X + + ***/ + + @SideOnly(Side.CLIENT) + public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { + if (item.hasTagCompound()) { + Float returnFloat = 0.0F; + if(getHot(item)){ + returnFloat = returnFloat + 1.0F; + } + if(getEmerald(item)){ + returnFloat += 0.1F; + } + if(getDiamondLevel(item)>0){ + returnFloat += (0.01F * getDiamondLevel(item)); + } + if(getRedstoneLevel(item)>0){ + returnFloat += (0.001F * getRedstoneLevel(item)); + } + if(getLapisLevel(item)>0){ + returnFloat += (0.0001F * getLapisLevel(item)); + } + return returnFloat; + } + return 0.0F; + } + }); + } + + public static boolean isHidden() + { + return false; + } + + @Override + public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { + + if(!world.isRemote) { + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + setHot(item, false); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0); + } + } + + } + + @Override + public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { + if(!world.isRemote) { + //item.setItemDamage(item.getMaxDamage()-2); + + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0); + + } + + if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ + PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); + ((EntityPlayer) player).inventory.deleteStack(item); + } + + } + } + + //public void onItemTooltip(ItemTooltipEvent event){ + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) + { + //tooltip.add(ChatFormatting.GRAY + "Damage: " + item.getItemDamage() ); + if(item.hasTagCompound()) + { + tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (3 - getModifiers(item)) ); + if (getEmerald(item) == true) { + tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); + } + if (getDiamondLevel(item) > 0) { + tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); + } + if (getRedstoneLevel(item) > 0) { + tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); + } + if (getLapisLevel(item) > 0) { + tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); + } + tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); + } + } + + + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.damageItem(1, attacker); + return true; + } else { + ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + + EntityPlayer player = (EntityPlayer) attacker; + World world = attacker.getEntityWorld(); + if(!world.isRemote) { + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + attacker.renderBrokenItemStack(stack); + stack.shrink(1); + return true; + } + return false; + } + } + + @Override + public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) + { + if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.getTagCompound().removeTag("ench"); + if(getDiamondLevel(stack) > 0) { + if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { + stack.damageItem(1, entityLiving); + } + } else stack.damageItem(1, entityLiving); + } else { + ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + EntityPlayer player = (EntityPlayer) entityLiving; + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + entityLiving.renderBrokenItemStack(stack); + stack.shrink(1); + player.inventory.markDirty(); + //player.inventory.inventoryChanged = true; + } + } + + return true; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean hasEffect(ItemStack stack) + { + return false; + } + + @Override + public boolean isRepairable() + { + return false; + } + + public int getItemEnchantability(ItemStack stack) + { + return 0; + } + + @Override + public float getDestroySpeed(ItemStack stack, IBlockState state) + { + Material material = state.getMaterial(); + //return material != Material.IRON && material != Material.ANVIL && material != Material.ROCK ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial; + + if(material != Material.IRON && material != Material.ANVIL && material != Material.ROCK){ + return super.getDestroySpeed(stack, state); + } else { + return this.efficiency * ( (this.getRedstoneLevel(stack) * 2 ) + 1); + } + + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractShovel.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractShovel.java new file mode 100644 index 00000000..6c3ae3ef --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/AbstractShovel.java @@ -0,0 +1,237 @@ +package nmd.primal.forgecraft.items.tools; + +import com.google.common.collect.Sets; +import com.mojang.realmsclient.gui.ChatFormatting; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.core.common.helper.PlayerHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.util.ToolNBT; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ThreadLocalRandom; + +public class AbstractShovel extends ItemSpade implements ToolNBT { + + private static final Set EFFECTIVE_ON = Sets.newHashSet(new Block[] {Blocks.CLAY, Blocks.DIRT, Blocks.FARMLAND, Blocks.GRASS, Blocks.GRAVEL, Blocks.MYCELIUM, Blocks.SAND, Blocks.SNOW, Blocks.SNOW_LAYER, Blocks.SOUL_SAND, Blocks.GRASS_PATH}); + private Item drop; + + public AbstractShovel(String name, Item.ToolMaterial material, Item damageDrop) { + super(material); + this.setUnlocalizedName(name); + this.setRegistryName(name); + this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + this.setMaxStackSize(1); + this.setNoRepair(); + this.drop = damageDrop; + + this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { + + /*** + + hot | emerald | diamond | redstone | lapis + X.0 | 0.X | 0.0X | 0.00X | 0.000X + + ***/ + + @SideOnly(Side.CLIENT) + public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { + if (item.hasTagCompound()) { + Float returnFloat = 0.0F; + if(getHot(item)){ + returnFloat = returnFloat + 1.0F; + } + if(getEmerald(item)){ + returnFloat += 0.1F; + } + if(getDiamondLevel(item)>0){ + returnFloat += (0.01F * getDiamondLevel(item)); + } + if(getRedstoneLevel(item)>0){ + returnFloat += (0.001F * getRedstoneLevel(item)); + } + if(getLapisLevel(item)>0){ + returnFloat += (0.0001F * getLapisLevel(item)); + } + return returnFloat; + } + return 0.0F; + } + }); + } + + public static boolean isHidden() + { + return false; + } + + @Override + public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { + + if(!world.isRemote) { + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + /*setHot(item, false); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0);*/ + } + } + + } + + @Override + public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { + if(!world.isRemote) { + if (!item.hasTagCompound()) { + item.setTagCompound(new NBTTagCompound()); + NBTTagCompound tags = new NBTTagCompound(); + + item.getTagCompound().setTag("tags", tags); + + setHot(item, false); + setEmerald(item, false); + setDiamondLevel(item, 0); + setRedstoneLevel(item, 0); + setLapisLevel(item, 0); + setModifiers(item, 0); + + } + + if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ + PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); + ((EntityPlayer) player).inventory.deleteStack(item); + } + } + } + + //public void onItemTooltip(ItemTooltipEvent event){ + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) + { + if(item.hasTagCompound()) + { + + tooltip.add(ChatFormatting.GRAY + "Upgrades: " + getModifiers(item) ); + if (getEmerald(item)) { + tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); + } + if (getDiamondLevel(item) > 0) { + tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); + } + if (getRedstoneLevel(item) > 0) { + tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); + } + if (getLapisLevel(item) > 0) { + tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); + } + tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); + } + } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.damageItem(1, attacker); + return true; + } else { + ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + + EntityPlayer player = (EntityPlayer) attacker; + World world = attacker.getEntityWorld(); + if(!world.isRemote) { + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + attacker.renderBrokenItemStack(stack); + stack.shrink(1); + return true; + } + return false; + } + } + + @Override + public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) + { + if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) + { + if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { + stack.getTagCompound().removeTag("ench"); + if(getDiamondLevel(stack) > 0) { + if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { + stack.damageItem(1, entityLiving); + } + } else stack.damageItem(1, entityLiving); + } else { + ItemStack dropStack = new ItemStack(this.drop, 1, stack.getItemDamage()); + NBTTagCompound copyNBT = stack.getTagCompound(); + dropStack.setTagCompound(copyNBT); + EntityPlayer player = (EntityPlayer) entityLiving; + PlayerHelper.spawnItemOnPlayer(world, player, dropStack); + entityLiving.renderBrokenItemStack(stack); + stack.shrink(1); + } + } + + return true; + } + + @Override + public float getDestroySpeed(ItemStack stack, IBlockState state) + { + for (String type : getToolClasses(stack)) + { + if (state.getBlock().isToolEffective(type, state)) + return efficiency; + } + return this.EFFECTIVE_ON.contains(state.getBlock()) ? (this.efficiency * ( (this.getRedstoneLevel(stack) * 2 ) + 1)) : 1.0F; + } + + @SideOnly(Side.CLIENT) + @Override + public boolean hasEffect(ItemStack stack) + { + return false; + } + + @Override + public boolean isRepairable() + { + return false; + } + + public int getItemEnchantability(ItemStack stack) + { + return 0; + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomAxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomAxe.java index 64354a2e..6ab055c2 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomAxe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomAxe.java @@ -1,33 +1,13 @@ package nmd.primal.forgecraft.items.tools; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; -import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 3/20/17. */ @@ -37,186 +17,6 @@ public class CustomAxe extends AbstractAxe implements ToolNBT { public CustomAxe(String name, Item.ToolMaterial material, Item damageDrop, Integer damage, Float speed) { super(name, material, damageDrop, damage, speed); - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { - if (item.hasTagCompound()) { - - - - if (getHot(item) != true) { - if (getModifiers(item) != 0) { - if ((getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.1F; - } - - if ((getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.11F; - } - - if ((getEmerald(item) == true) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.12F; - } - - if ((getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.111F; - } - - if ((getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.102F; - } - - // ============ - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.01F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.02F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 3) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.03F; - } - - //======= - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.001F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.002F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 3) && - (getLapisLevel(item) == 0)) { - return 0.003F; - } - - //========= - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 1)) { - return 0.0001F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2)) { - return 0.0002F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 3)) { - return 0.0003F; - } - - //======= - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 1)) { - return 0.0111F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.021F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.012F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 2)) { - return 0.0012F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 1)) { - return 0.0021F; - } - - if ((getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2)) { - return 0.0102F; - } - } - } - if (getHot(item) == true) { - return 1.0F; - } - - if (getHot(item) == false) { - if (getModifiers(item) == 0) { - return 0.0F; - } - } - - } - return 0.0F; - } - }); } @Override diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomHoe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomHoe.java index 33b6a053..789d3a26 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomHoe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomHoe.java @@ -1,49 +1,29 @@ package nmd.primal.forgecraft.items.tools; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; -import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.util.ToolNBT; import javax.annotation.Nullable; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; /** * Created by mminaie on 3/21/17. */ -public class CustomHoe extends ItemHoe implements ToolNBT { +public class CustomHoe extends AbstractHoe implements ToolNBT { private Item drop; public CustomHoe(String name, Item.ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop = damageDrop; + super(name, material, damageDrop); this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { /*** @@ -223,86 +203,6 @@ public class CustomHoe extends ItemHoe implements ToolNBT { }); } - public static boolean isHidden() - { - return false; - } - - @Override - public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { - - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - /*setHot(item, false); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0);*/ - } - } - - } - - @Override - public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - - } - - if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ - PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); - ((EntityPlayer) player).inventory.deleteStack(item); - } - - } - } - - //public void onItemTooltip(ItemTooltipEvent event){ - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) - { - if(item.hasTagCompound()) - { - tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (3 - getModifiers(item)) ); - if (getEmerald(item) == true) { - tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); - } - if (getDiamondLevel(item) > 0) { - tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); - } - if (getRedstoneLevel(item) > 0) { - tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); - } - if (getLapisLevel(item) > 0) { - tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); - } - tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); - } - - } - @Override public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) { @@ -330,95 +230,4 @@ public class CustomHoe extends ItemHoe implements ToolNBT { return false; } - @Override - protected void setBlock(ItemStack stack, EntityPlayer player, World worldIn, BlockPos pos, IBlockState state) - { - worldIn.playSound(player, pos, SoundEvents.ITEM_HOE_TILL, SoundCategory.BLOCKS, 1.0F, 1.0F); - - if (!worldIn.isRemote) - { - worldIn.setBlockState(pos, state, 11); - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, player); - } else { - ItemStack dropStack = new ItemStack(drop, 1); - dropStack.setItemDamage(stack.getItemDamage()); - dropStack.setTagCompound(new NBTTagCompound()); - NBTTagCompound copyNBT; - copyNBT = stack.getSubCompound("tags").copy(); - dropStack.setTagCompound(copyNBT); - PlayerHelper.spawnItemOnPlayer(worldIn, player, dropStack); - player.renderBrokenItemStack(stack); - stack.shrink(1); - } - } - } - - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, attacker); - return true; - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - - EntityPlayer player = (EntityPlayer) attacker; - World world = attacker.getEntityWorld(); - if(!world.isRemote) { - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - attacker.renderBrokenItemStack(stack); - stack.shrink(1); - return true; - } - return false; - } - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.getTagCompound().removeTag("ench"); - if(getDiamondLevel(stack) > 0) { - if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { - stack.damageItem(1, entityLiving); - } - } else stack.damageItem(1, entityLiving); - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - EntityPlayer player = (EntityPlayer) entityLiving; - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - entityLiving.renderBrokenItemStack(stack); - stack.shrink(1); - } - } - - return true; - } - - @SideOnly(Side.CLIENT) - @Override - public boolean hasEffect(ItemStack stack) - { - return false; - } - - @Override - public boolean isRepairable() - { - return false; - } - - public int getItemEnchantability(ItemStack stack) - { - return 0; - } - } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomPickaxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomPickaxe.java index 239fa0ba..c725e5a9 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomPickaxe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomPickaxe.java @@ -1,309 +1,22 @@ package nmd.primal.forgecraft.items.tools; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; -import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 3/14/17. */ -public class CustomPickaxe extends ItemPickaxe implements ToolNBT{ +public class CustomPickaxe extends AbstractPickaxe implements ToolNBT{ private Item drop; public CustomPickaxe(String name, Item.ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop=damageDrop; - //this.toolClass = "pickaxe"; - - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { - if (item.hasTagCompound()) { - - if (getHot(item) == false) { - if (getModifiers(item) != 0) { - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.1F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.11F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.12F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.111F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.102F; - } - - // ============ - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.01F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.02F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 3) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.03F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 3) && - (getLapisLevel(item) == 0)) { - return 0.003F; - } - - //========= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 1)) { - return 0.0001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2)) { - return 0.0002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 3)) { - return 0.0003F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 1)) { - return 0.0111F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 2)) { - return 0.0012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 1)) { - return 0.0021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2) ) { - return 0.0102F; - } - } - } - if (getHot(item) == true) { - return 1.0F; - } - - if (getHot(item) == false) { - if (getModifiers(item) == 0) { - return 0.0F; - } - } - } - return 0.0F; - } - }); - } - - public static boolean isHidden() - { - return false; - } - - @Override - public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { - - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - } - } - - } - - @Override - public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { - if(!world.isRemote) { - //item.setItemDamage(item.getMaxDamage()-2); - - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - - } - - if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ - PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); - ((EntityPlayer) player).inventory.deleteStack(item); - } - - } - } - - //public void onItemTooltip(ItemTooltipEvent event){ - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) - { - //tooltip.add(ChatFormatting.GRAY + "Damage: " + item.getItemDamage() ); - if(item.hasTagCompound()) - { - tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (3 - getModifiers(item)) ); - if (getEmerald(item) == true) { - tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); - } - if (getDiamondLevel(item) > 0) { - tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); - } - if (getRedstoneLevel(item) > 0) { - tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); - } - if (getLapisLevel(item) > 0) { - tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); - } - tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); - } + super(name, material, damageDrop); } @Override @@ -333,87 +46,4 @@ public class CustomPickaxe extends ItemPickaxe implements ToolNBT{ return false; } - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, attacker); - return true; - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - - EntityPlayer player = (EntityPlayer) attacker; - World world = attacker.getEntityWorld(); - if(!world.isRemote) { - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - attacker.renderBrokenItemStack(stack); - stack.shrink(1); - return true; - } - return false; - } - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.getTagCompound().removeTag("ench"); - if(getDiamondLevel(stack) > 0) { - if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { - stack.damageItem(1, entityLiving); - } - } else stack.damageItem(1, entityLiving); - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - EntityPlayer player = (EntityPlayer) entityLiving; - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - entityLiving.renderBrokenItemStack(stack); - stack.shrink(1); - player.inventory.markDirty(); - //player.inventory.inventoryChanged = true; - } - } - - return true; - } - - @SideOnly(Side.CLIENT) - @Override - public boolean hasEffect(ItemStack stack) - { - return false; - } - - @Override - public boolean isRepairable() - { - return false; - } - - public int getItemEnchantability(ItemStack stack) - { - return 0; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - Material material = state.getMaterial(); - //return material != Material.IRON && material != Material.ANVIL && material != Material.ROCK ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial; - - if(material != Material.IRON && material != Material.ANVIL && material != Material.ROCK){ - return super.getDestroySpeed(stack, state); - } else { - return this.efficiency * ( (this.getRedstoneLevel(stack) * 2 ) + 1); - } - - } - } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomShovel.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomShovel.java index 7e71ec28..977e794f 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomShovel.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/CustomShovel.java @@ -1,308 +1,20 @@ package nmd.primal.forgecraft.items.tools; -import com.google.common.collect.Sets; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; -import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 3/21/17. */ -public class CustomShovel extends ItemSpade implements ToolNBT { - - private static final Set EFFECTIVE_ON = Sets.newHashSet(new Block[] {Blocks.CLAY, Blocks.DIRT, Blocks.FARMLAND, Blocks.GRASS, Blocks.GRAVEL, Blocks.MYCELIUM, Blocks.SAND, Blocks.SNOW, Blocks.SNOW_LAYER, Blocks.SOUL_SAND, Blocks.GRASS_PATH}); - private Item drop; +public class CustomShovel extends AbstractShovel implements ToolNBT { public CustomShovel(String name, Item.ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop=damageDrop; - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { - if (item.hasTagCompound()) { - - if (getHot(item) == false) { - if (getModifiers(item) != 0) { - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.1F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.11F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.12F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.111F; - } - - if ( (getEmerald(item) == true) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.102F; - } - - // ============ - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.01F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.02F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 3) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 0)) { - return 0.03F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 3) && - (getLapisLevel(item) == 0)) { - return 0.003F; - } - - //========= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 1)) { - return 0.0001F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2)) { - return 0.0002F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 3)) { - return 0.0003F; - } - - //======= - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 1)) { - return 0.0111F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 2) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 0)) { - return 0.021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 0)) { - return 0.012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 1) && - (getLapisLevel(item) == 2)) { - return 0.0012F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 0) && - (getRedstoneLevel(item) == 2) && - (getLapisLevel(item) == 1)) { - return 0.0021F; - } - - if ( (getEmerald(item) == false) && - (getDiamondLevel(item) == 1) && - (getRedstoneLevel(item) == 0) && - (getLapisLevel(item) == 2) ) { - return 0.0102F; - } - } - } - if (getHot(item) == true) { - return 1.0F; - } - - if (getHot(item) == false) { - if (getModifiers(item) == 0) { - return 0.0F; - } - } - } - return 0.0F; - } - }); - } - - public static boolean isHidden() - { - return false; - } - - @Override - public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { - - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - /*setHot(item, false); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0);*/ - } - } - - } - - @Override - public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - - } - - if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ - PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); - ((EntityPlayer) player).inventory.deleteStack(item); - } - } - } - - //public void onItemTooltip(ItemTooltipEvent event){ - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) - { - if(item.hasTagCompound()) - { - - tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (3 - getModifiers(item)) ); - if (getEmerald(item) == true) { - tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); - } - if (getDiamondLevel(item) > 0) { - tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); - } - if (getRedstoneLevel(item) > 0) { - tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); - } - if (getLapisLevel(item) > 0) { - tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + getLapisLevel(item) ); - } - tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); - } + super(name, material, damageDrop); } @Override @@ -331,82 +43,4 @@ public class CustomShovel extends ItemSpade implements ToolNBT { return false; } - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, attacker); - return true; - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - - EntityPlayer player = (EntityPlayer) attacker; - World world = attacker.getEntityWorld(); - if(!world.isRemote) { - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - attacker.renderBrokenItemStack(stack); - stack.shrink(1); - return true; - } - return false; - } - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.getTagCompound().removeTag("ench"); - if(getDiamondLevel(stack) > 0) { - if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { - stack.damageItem(1, entityLiving); - } - } else stack.damageItem(1, entityLiving); - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - EntityPlayer player = (EntityPlayer) entityLiving; - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - entityLiving.renderBrokenItemStack(stack); - stack.shrink(1); - } - } - - return true; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - for (String type : getToolClasses(stack)) - { - if (state.getBlock().isToolEffective(type, state)) - return efficiency; - } - return this.EFFECTIVE_ON.contains(state.getBlock()) ? (this.efficiency * ( (this.getRedstoneLevel(stack) * 2 ) + 1)) : 1.0F; - } - - @SideOnly(Side.CLIENT) - @Override - public boolean hasEffect(ItemStack stack) - { - return false; - } - - @Override - public boolean isRepairable() - { - return false; - } - - public int getItemEnchantability(ItemStack stack) - { - return 0; - } - } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeAxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeAxe.java index 87bc1cfe..293efd80 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeAxe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeAxe.java @@ -3,25 +3,14 @@ package nmd.primal.forgecraft.items.tools.bronze; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.common.helper.PlayerHelper; import nmd.primal.forgecraft.init.ModConfig; import nmd.primal.forgecraft.items.tools.AbstractAxe; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 6/25/17. */ @@ -31,46 +20,6 @@ public class BronzeAxe extends AbstractAxe implements ToolNBT { public BronzeAxe(String name, Item.ToolMaterial material, Item damageDrop, Integer damage, Float speed) { super(name, material, damageDrop, damage, speed); - - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { - - if (item.hasTagCompound()) { - - if (getModifiers(item) != 0) { - if (getEmerald(item)) { - return 0.1F; - } - - if (getDiamondLevel(item) == 1) { - return 0.2F; - } - - if ( getRedstoneLevel(item) == 1) { - return 0.3F; - } - - if (getLapisLevel(item) == 1) { - return 0.4F; - } - } - if (getModifiers(item) == 0) { - return 0.0F; - } - } - return 0.0F; - } - }); } @@ -78,7 +27,6 @@ public class BronzeAxe extends AbstractAxe implements ToolNBT { public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) { if(!player.world.isRemote){ - World world = player.getEntityWorld(); //System.out.println(world.getBlockState(pos).getBlock()); if(itemstack.getItem() instanceof BronzeAxe){ if( getEmerald(itemstack)){ diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeHoe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeHoe.java index c94f6379..55e312b2 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeHoe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeHoe.java @@ -1,88 +1,29 @@ package nmd.primal.forgecraft.items.tools.bronze; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.init.ModConfig; -import nmd.primal.forgecraft.items.tools.CustomHoe; +import nmd.primal.forgecraft.items.tools.AbstractHoe; import nmd.primal.forgecraft.util.ToolNBT; import javax.annotation.Nullable; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; /** * Created by mminaie on 3/21/17. */ public class BronzeHoe extends AbstractHoe implements ToolNBT { - Item drop; - - public BronzeHoe(String name, Item.ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop=damageDrop; - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { - if (item.hasTagCompound()) { - - - if (getModifiers(item) != 0) { - if (getEmerald(item)) { - return 0.1F; - } - - if (getDiamondLevel(item) == 1) { - return 0.2F; - } - - if ( getRedstoneLevel(item) == 1) { - return 0.3F; - } - - if (getLapisLevel(item) == 1) { - return 0.4F; - } - } - if (getModifiers(item) == 0) { - return 0.0F; - } - } - return 0.0F; - } - }); + public BronzeHoe(String name, ToolMaterial material, Item damageDrop) { + super(name, material, damageDrop); } @Override @@ -102,10 +43,10 @@ public class BronzeHoe extends AbstractHoe implements ToolNBT { /*if( getRedstoneLevel(itemstack) > 0 ){ itemstack.addEnchantment(Enchantment.getEnchantmentByID(32), getRedstoneLevel(itemstack)); //System.out.println(itemstack.getEnchantmentTagList()); - } + }*/ if ( getLapisLevel(itemstack) > 0) { itemstack.addEnchantment(Enchantment.getEnchantmentByID(35), ModConfig.Features.BRONZE_LAPIS_MULTIPLIER); - }*/ + } } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzePickaxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzePickaxe.java index 700a118b..6bcc5a5f 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzePickaxe.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzePickaxe.java @@ -1,170 +1,26 @@ package nmd.primal.forgecraft.items.tools.bronze; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractPickaxe; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 3/14/17. */ -public class BronzePickaxe extends ItemPickaxe implements ToolNBT{ +public class BronzePickaxe extends AbstractPickaxe implements ToolNBT { private Item drop; public BronzePickaxe(String name, ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop=damageDrop; - //this.toolClass = "pickaxe"; - - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { - if (item.hasTagCompound()) { - - - if (getModifiers(item) != 0) { - if (getEmerald(item)) { - return 0.1F; - } - - if (getDiamondLevel(item) == 1) { - return 0.2F; - } - - if ( getRedstoneLevel(item) == 1) { - return 0.3F; - } - - if (getLapisLevel(item) == 1) { - return 0.4F; - } - } - if (getModifiers(item) == 0) { - return 0.0F; - } - } - return 0.0F; - } - }); + super(name, material, damageDrop); } - public static boolean isHidden() - { - return false; - } - - @Override - public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { - - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - /*setHot(item, false); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0);*/ - } - } - - } - - @Override - public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - - } - if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ - PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); - ((EntityPlayer) player).inventory.deleteStack(item); - } - } - } - - //public void onItemTooltip(ItemTooltipEvent event){ - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) - { - if(!item.isEmpty()) - { - if (item.hasTagCompound()) - { - tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (1 - getModifiers(item)) ); - if (getEmerald(item) == true) { - tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); - } - if (getDiamondLevel(item) > 0) { - tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); - } - if (getRedstoneLevel(item) > 0) { - tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); - } - if (getLapisLevel(item) > 0) { - int lapisOutput = Integer.valueOf(ModConfig.Features.BRONZE_LAPIS_MULTIPLIER) ; - tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + Integer.toString(lapisOutput*1)); - } - tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); - } - } - } @Override public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) @@ -185,89 +41,8 @@ public class BronzePickaxe extends ItemPickaxe implements ToolNBT{ } } } - return false; } - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, attacker); - return true; - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - - EntityPlayer player = (EntityPlayer) attacker; - World world = attacker.getEntityWorld(); - if(!world.isRemote) { - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - attacker.renderBrokenItemStack(stack); - stack.shrink(1); - return true; - } - return false; - } - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.getTagCompound().removeTag("ench"); - if(getDiamondLevel(stack) > 0) { - if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { - stack.damageItem(1, entityLiving); - } - } else stack.damageItem(1, entityLiving); - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - EntityPlayer player = (EntityPlayer) entityLiving; - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - entityLiving.renderBrokenItemStack(stack); - stack.shrink(1); - } - } - - return true; - } - - @SideOnly(Side.CLIENT) - @Override - public boolean hasEffect(ItemStack stack) - { - return false; - } - - @Override - public boolean isRepairable() - { - return false; - } - - public int getItemEnchantability(ItemStack stack) - { - return 0; - } - - @Override - public float getDestroySpeed(ItemStack stack, IBlockState state) - { - Material material = state.getMaterial(); - //return material != Material.IRON && material != Material.ANVIL && material != Material.ROCK ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial; - - if(material != Material.IRON && material != Material.ANVIL && material != Material.ROCK){ - return super.getDestroySpeed(stack, state); - } else { - return this.efficiency + 1; - } - - } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeShovel.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeShovel.java index 2ef6518e..8e16a29d 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeShovel.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/bronze/BronzeShovel.java @@ -1,177 +1,29 @@ package nmd.primal.forgecraft.items.tools.bronze; -import com.google.common.collect.Sets; -import com.mojang.realmsclient.gui.ChatFormatting; -import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; -import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import nmd.primal.core.common.helper.PlayerHelper; -import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractShovel; import nmd.primal.forgecraft.util.ToolNBT; -import javax.annotation.Nullable; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ThreadLocalRandom; - /** * Created by mminaie on 3/21/17. */ -public class BronzeShovel extends ItemSpade implements ToolNBT { - - private static final Set EFFECTIVE_ON = Sets.newHashSet(new Block[] {Blocks.CLAY, Blocks.DIRT, Blocks.FARMLAND, Blocks.GRASS, Blocks.GRAVEL, Blocks.MYCELIUM, Blocks.SAND, Blocks.SNOW, Blocks.SNOW_LAYER, Blocks.SOUL_SAND, Blocks.GRASS_PATH}); -Item drop; +public class BronzeShovel extends AbstractShovel implements ToolNBT { public BronzeShovel(String name, ToolMaterial material, Item damageDrop) { - super(material); - this.setUnlocalizedName(name); - this.setRegistryName(name); - this.setCreativeTab(ModInfo.TAB_FORGECRAFT); - this.setMaxStackSize(1); - this.setNoRepair(); - this.drop=damageDrop; - this.addPropertyOverride(new ResourceLocation("type"), new IItemPropertyGetter() { - - /*** - - hot . emerald . diamond . redstone . lapis - 0 . 0 . 0 . 0 . 0 - - ***/ - - @SideOnly(Side.CLIENT) - public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) - { - if (item.hasTagCompound()) { - - - if (getModifiers(item) != 0) { - if (getEmerald(item)) { - return 0.1F; - } - - if (getDiamondLevel(item) == 1) { - return 0.2F; - } - - if ( getRedstoneLevel(item) == 1) { - return 0.3F; - } - - if (getLapisLevel(item) == 1) { - return 0.4F; - } - } - if (getModifiers(item) == 0) { - return 0.0F; - } - } - return 0.0F; - } - }); + super(name, material, damageDrop); } - public static boolean isHidden() - { - return false; - } - - @Override - public void onCreated(ItemStack item, World world, EntityPlayer playerIn) { - - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - /*setHot(item, false); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0);*/ - } - } - - } - - @Override - public void onUpdate(ItemStack item, World world, Entity player, int itemSlot, boolean isSelected) { - if(!world.isRemote) { - if (!item.hasTagCompound()) { - item.setTagCompound(new NBTTagCompound()); - NBTTagCompound tags = new NBTTagCompound(); - - item.getTagCompound().setTag("tags", tags); - - setHot(item, false); - setEmerald(item, false); - setDiamondLevel(item, 0); - setRedstoneLevel(item, 0); - setLapisLevel(item, 0); - setModifiers(item, 0); - - } - if( this.getMaxDamage(item) - this.getDamage(item) <= 1 ){ - PlayerHelper.spawnItemOnPlayer(world, (EntityPlayer) player, new ItemStack(this.drop, 1)); - ((EntityPlayer) player).inventory.deleteStack(item); - } - } - } - - //public void onItemTooltip(ItemTooltipEvent event){ - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack item, @Nullable World world, List tooltip, ITooltipFlag flagIn) - { - if(!item.isEmpty()) - { - if (item.hasTagCompound()) - { - tooltip.add(ChatFormatting.GRAY + "Upgrades Left: " + (1 - getModifiers(item)) ); - if (getEmerald(item) == true) { - tooltip.add(ChatFormatting.DARK_GREEN + "Emerald"); - } - if (getDiamondLevel(item) > 0) { - tooltip.add(ChatFormatting.AQUA + "Diamond Level: " + getDiamondLevel(item)); - } - if (getRedstoneLevel(item) > 0) { - tooltip.add(ChatFormatting.RED + "Redstone Level: " + getRedstoneLevel(item) ); - } - if (getLapisLevel(item) > 0) { - tooltip.add(ChatFormatting.BLUE + "Lapis Level: " + Integer.toString(ModConfig.Features.BRONZE_LAPIS_MULTIPLIER)); - } - tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + item.getItemDamage() ); - } - } - } @Override public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) { if(!player.world.isRemote){ - World world = player.getEntityWorld(); if(itemstack.getItem() instanceof BronzeShovel){ if( getEmerald(itemstack)){ @@ -186,55 +38,6 @@ Item drop; return false; } - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.damageItem(1, attacker); - return true; - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - - EntityPlayer player = (EntityPlayer) attacker; - World world = attacker.getEntityWorld(); - if(!world.isRemote) { - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - attacker.renderBrokenItemStack(stack); - stack.shrink(1); - return true; - } - return false; - } - } - - @Override - public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) - { - if (!world.isRemote && (double)state.getBlockHardness(world, pos) != 0.0D) - { - if(stack.getMaxDamage() - stack.getItemDamage() >1 ) { - stack.getTagCompound().removeTag("ench"); - if(getDiamondLevel(stack) > 0) { - if(ThreadLocalRandom.current().nextInt(0, getDiamondLevel(stack)) == 0) { - stack.damageItem(1, entityLiving); - } - } else stack.damageItem(1, entityLiving); - } else { - ItemStack dropStack = new ItemStack(drop, 1, stack.getItemDamage()); - NBTTagCompound copyNBT = stack.getTagCompound(); - dropStack.setTagCompound(copyNBT); - EntityPlayer player = (EntityPlayer) entityLiving; - PlayerHelper.spawnItemOnPlayer(world, player, dropStack); - entityLiving.renderBrokenItemStack(stack); - stack.shrink(1); - } - } - - return true; - } - @Override public float getDestroySpeed(ItemStack stack, IBlockState state) { @@ -246,22 +49,4 @@ Item drop; return this.efficiency + 1; } - @SideOnly(Side.CLIENT) - @Override - public boolean hasEffect(ItemStack stack) - { - return false; - } - - @Override - public boolean isRepairable() - { - return false; - } - - public int getItemEnchantability(ItemStack stack) - { - return 0; - } - } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperAxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperAxe.java new file mode 100644 index 00000000..85d2cc26 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperAxe.java @@ -0,0 +1,63 @@ +package nmd.primal.forgecraft.items.tools.copper; + +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractAxe; +import nmd.primal.forgecraft.util.ToolNBT; + +/** + * Created by mminaie on 6/25/17. + */ +public class CopperAxe extends AbstractAxe implements ToolNBT { + + Item drop; + + public CopperAxe(String name, ToolMaterial material, Item damageDrop, Integer damage, Float speed) { + super(name, material, damageDrop, damage, speed); + } + + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) + { + if(!player.world.isRemote){ + //System.out.println(world.getBlockState(pos).getBlock()); + if(itemstack.getItem() instanceof CopperAxe){ + if(ModConfig.Features.ENABLE_COPPER_EMERALD) { + if (getEmerald(itemstack)) { + itemstack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + } + /*if( getDiamondLevel(itemstack) > 0 ){ + itemstack.getItem().setHarvestLevel("pickaxe", 3); + } + if ( getLapisLevel(itemstack) > 0) { + itemstack.addEnchantment(Enchantment.getEnchantmentByID(35), ModConfig.Features.BRONZE_LAPIS_MULTIPLIER); + }*/ + } + } + + return false; + } + + @Override + public float getDestroySpeed(ItemStack stack, IBlockState state) + { + Material material = state.getMaterial(); + //return material != Material.IRON && material != Material.ANVIL && material != Material.ROCK ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial; + + if(material != Material.WOOD && material != Material.PLANTS && material != Material.VINE){ + return super.getDestroySpeed(stack, state); + } else { + return this.efficiency + 1; + } + + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperHoe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperHoe.java new file mode 100644 index 00000000..28af9b97 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperHoe.java @@ -0,0 +1,45 @@ +package nmd.primal.forgecraft.items.tools.copper; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.IItemPropertyGetter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractHoe; +import nmd.primal.forgecraft.util.ToolNBT; + +import javax.annotation.Nullable; + +/** + * Created by mminaie on 3/21/17. + */ +public class CopperHoe extends AbstractHoe implements ToolNBT { + + public CopperHoe(String name, ToolMaterial material, Item damageDrop) { + super(name, material, damageDrop); + + } + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) + { + if(!player.world.isRemote){ + World world = player.getEntityWorld(); + if(ModConfig.Features.ENABLE_COPPER_EMERALD) { + if (getEmerald(itemstack)) { + itemstack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + } + } + + return false; + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperPickaxe.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperPickaxe.java new file mode 100644 index 00000000..a401c1d8 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperPickaxe.java @@ -0,0 +1,40 @@ +package nmd.primal.forgecraft.items.tools.copper; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractPickaxe; +import nmd.primal.forgecraft.util.ToolNBT; + +/** + * Created by mminaie on 3/14/17. + */ +public class CopperPickaxe extends AbstractPickaxe implements ToolNBT { + + private Item drop; + + public CopperPickaxe(String name, ToolMaterial material, Item damageDrop) { + super(name, material, damageDrop); + } + + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) + { + if(!player.world.isRemote){ + World world = player.getEntityWorld(); + if(ModConfig.Features.ENABLE_COPPER_EMERALD) { + if (getEmerald(itemstack)) { + itemstack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + } + } + return false; + } + + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperShovel.java b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperShovel.java new file mode 100644 index 00000000..c6986b4a --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/tools/copper/CopperShovel.java @@ -0,0 +1,51 @@ +package nmd.primal.forgecraft.items.tools.copper; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import nmd.primal.forgecraft.init.ModConfig; +import nmd.primal.forgecraft.items.tools.AbstractShovel; +import nmd.primal.forgecraft.util.ToolNBT; + +/** + * Created by mminaie on 3/21/17. + */ +public class CopperShovel extends AbstractShovel implements ToolNBT { + + public CopperShovel(String name, ToolMaterial material, Item damageDrop) { + super(name, material, damageDrop); + } + + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) + { + if(!player.world.isRemote){ + + if(itemstack.getItem() instanceof CopperShovel){ + if(ModConfig.Features.ENABLE_COPPER_EMERALD) { + if (getEmerald(itemstack)) { + itemstack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + } + } + } + + return false; + } + + @Override + public float getDestroySpeed(ItemStack stack, IBlockState state) + { + for (String type : getToolClasses(stack)) + { + if (state.getBlock().isToolEffective(type, state)) + return efficiency; + } + return this.efficiency + 1; + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileForge.java b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileForge.java index 504d6d25..8bf94a80 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileForge.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/tiles/TileForge.java @@ -15,7 +15,6 @@ import nmd.primal.forgecraft.crafting.ForgeCrafting; import nmd.primal.forgecraft.items.BaseMultiItem; import nmd.primal.forgecraft.items.parts.ToolPart; import nmd.primal.forgecraft.util.ToolNBT; -import scala.Int; import static nmd.primal.core.api.PrimalAPI.randomCheck; import static nmd.primal.core.common.helper.FireHelper.makeSmoke; @@ -69,7 +68,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{ } } if(this.iteration == 250){ - setHeat(this.getHeat()-50); + setHeat(this.getHeat()-25); } if (this.iteration == 300) { this.heatManager(this.getHeat(), state, this.getSlotStack(0), world, pos); diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_0.json b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_0.json new file mode 100644 index 00000000..4c0be917 --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_0.json @@ -0,0 +1,8 @@ +{ + "parent": "forgecraft:item/axe", + "textures": { + "particle": "forgecraft:items/raw_bronze", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:items/finished_bronze" + } +} diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_1.json b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_1.json new file mode 100644 index 00000000..f69edd84 --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_1.json @@ -0,0 +1,8 @@ +{ + "parent": "forgecraft:item/axe", + "textures": { + "particle": "forgecraft:items/raw_bronze", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:items/finished_bronze_emerald" + } +} diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_2.json b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_2.json new file mode 100644 index 00000000..db6abd4c --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_2.json @@ -0,0 +1,8 @@ +{ + "parent": "forgecraft:item/axe", + "textures": { + "particle": "forgecraft:items/raw_bronze", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:items/finished_bronze_diamond" + } +} diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_3.json b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_3.json new file mode 100644 index 00000000..ef1651d1 --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_3.json @@ -0,0 +1,8 @@ +{ + "parent": "forgecraft:item/axe", + "textures": { + "particle": "forgecraft:items/raw_bronze", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:items/finished_bronze_redstone" + } +} diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_4.json b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_4.json new file mode 100644 index 00000000..6e05bf4a --- /dev/null +++ b/kfc/src/main/resources/assets/forgecraft/models/item/axe/copper/copperaxe_4.json @@ -0,0 +1,8 @@ +{ + "parent": "forgecraft:item/axe", + "textures": { + "particle": "forgecraft:items/raw_bronze", + "texture": "blocks/planks_oak", + "texture1": "forgecraft:items/finished_bronze_lapis" + } +} diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxe.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxe.json index 7c0ad504..107500ca 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxe.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxe.json @@ -7,11 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/axe/bronze/bronzeaxe_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/axe/bronze/bronzeaxe_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/axe/bronze/bronzeaxe_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/axe/bronze/bronzeaxe_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/axe/bronze/bronzeaxe_4"} - + {"predicate": {"type": 0.0001},"model": "forgecraft:item/axe/bronze/bronzeaxe_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/axe/bronze/bronzeaxe_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/axe/bronze/bronzeaxe_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/axe/bronze/bronzeaxe_1"} ] } diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxehead.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxehead.json index aa500686..e93e7f11 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxehead.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeaxehead.json @@ -7,14 +7,12 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_4"} - + {"predicate": {"type": 0.0001},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/axehead/bronze/bronzeaxehead_1"} ] } - diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoe.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoe.json index 2a91e897..ab04b365 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoe.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoe.json @@ -7,10 +7,11 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/hoe/bronze/bronzehoe_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/hoe/bronze/bronzehoe_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/hoe/bronze/bronzehoe_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/hoe/bronze/bronzehoe_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/hoe/bronze/bronzehoe_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/hoe/bronze/bronzehoe_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/hoe/bronze/bronzehoe_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/hoe/bronze/bronzehoe_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/hoe/bronze/bronzehoe_1"} + ] } diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoehead.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoehead.json index c04af984..76f6f4f1 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoehead.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzehoehead.json @@ -7,10 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/hoehead/bronze/bronzehoehead_1"} ] } diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxe.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxe.json index da0069f2..feda72a5 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxe.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxe.json @@ -7,10 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/pickaxe/bronze/bronzepickaxe_1"} ] } \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxehead.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxehead.json index a027151c..9bab1008 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxehead.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzepickaxehead.json @@ -7,10 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/pickaxehead/bronze/bronzepickaxehead_1"} ] } \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovel.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovel.json index ccf8b66a..4d085d92 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovel.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovel.json @@ -7,10 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/shovel/bronze/bronzeshovel_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/shovel/bronze/bronzeshovel_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/shovel/bronze/bronzeshovel_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/shovel/bronze/bronzeshovel_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/shovel/bronze/bronzeshovel_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/shovel/bronze/bronzeshovel_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/shovel/bronze/bronzeshovel_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/shovel/bronze/bronzeshovel_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/shovel/bronze/bronzeshovel_1"} ] } \ No newline at end of file diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovelhead.json b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovelhead.json index a27abef0..95e4d2ae 100644 --- a/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovelhead.json +++ b/kfc/src/main/resources/assets/forgecraft/models/item/bronzeshovelhead.json @@ -7,10 +7,10 @@ }, "overrides": [ {"predicate": {"type": 0.0},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_0"}, - {"predicate": {"type": 0.1},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_1"}, - {"predicate": {"type": 0.2},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_2"}, - {"predicate": {"type": 0.3},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_3"}, - {"predicate": {"type": 0.4},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_4"} + {"predicate": {"type": 0.0001},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_4"}, + {"predicate": {"type": 0.001},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_3"}, + {"predicate": {"type": 0.01},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_2"}, + {"predicate": {"type": 0.1},"model": "forgecraft:item/shovelhead/bronze/bronzeshovelhead_1"} ] } \ No newline at end of file