From 0e2ad2637fa04b74b0d5a506a92e21c5d5842cd9 Mon Sep 17 00:00:00 2001 From: Gig Date: Sat, 11 Apr 2015 00:12:59 +0100 Subject: [PATCH 1/3] Added basic Item for all the dusts --- src/main/java/techreborn/Core.java | 15 ++-- src/main/java/techreborn/items/ItemDusts.java | 81 +++++++++++++++++++ 2 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 src/main/java/techreborn/items/ItemDusts.java diff --git a/src/main/java/techreborn/Core.java b/src/main/java/techreborn/Core.java index 8ae1bc639..e3ce16ce0 100644 --- a/src/main/java/techreborn/Core.java +++ b/src/main/java/techreborn/Core.java @@ -1,19 +1,22 @@ package techreborn; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import techreborn.blocks.BlockThermalGenerator; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.items.ItemDusts; +import techreborn.tiles.TileThermalGenerator; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.Block; -import techreborn.blocks.BlockThermalGenerator; -import techreborn.client.GuiHandler; -import techreborn.client.TechRebornCreativeTab; -import techreborn.tiles.TileThermalGenerator; @Mod(modid = "techreborn", name = "TechReborn", version = "@MODVERSION@") public class Core { public static Block thermalGenerator; + public static Item dusts; @Mod.Instance public static Core INSTANCE; @@ -23,6 +26,8 @@ public class Core { thermalGenerator = new BlockThermalGenerator().setBlockName("techreborn.thermalGenerator").setBlockTextureName("techreborn:ThermalGenerator_other").setCreativeTab(TechRebornCreativeTab.instance); GameRegistry.registerBlock(thermalGenerator, "techreborn.thermalGenerator"); GameRegistry.registerTileEntity(TileThermalGenerator.class, "TileThermalGenerator"); + dusts = new ItemDusts(); + GameRegistry.registerItem(dusts, "dust"); NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, new GuiHandler()); } diff --git a/src/main/java/techreborn/items/ItemDusts.java b/src/main/java/techreborn/items/ItemDusts.java new file mode 100644 index 000000000..665012dab --- /dev/null +++ b/src/main/java/techreborn/items/ItemDusts.java @@ -0,0 +1,81 @@ +package techreborn.items; + +import java.util.List; + +import techreborn.Core; +import techreborn.client.TechRebornCreativeTab; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemDusts extends Item +{ + public static final String[] types = new String[] + { + "Almandine", "Aluminium", "Andradite", "Ashes", "Basalt", "Bauxite", "Brass", "Bronze", + "Calcite","Charcoal", "Chrome", "Cinnabar", "Clay", "Coal", "Copper", "Dark Ashes", "Diamond", + "Electrum","Emerald", "Ender Eye", "Ender Pearl", "Endstone", "Flint", "Gold", "Green Sapphire", "Grossular", + "Invar", "Iron", "Lazurite", "Lead", "Magnesium", "Marble", "Netherrack", "Nickel", "Obsidian", + "Olivine","Phosphor", "Platinum", "Pyrite", "Pyrope", "Red Garnet", "Redrock", "Ruby", "Saltpeter", "Sapphire", + "Silver", "Sodalite", "Spessartine", "Sphalerite", "Steel", "Sulfur", "Tin", "Titanium", "Tungsten", "Uranium", + "Uvarovite", "Yellow Garnet", "Zinc" + }; + + private IIcon[] textures; + + public ItemDusts() + { + setUnlocalizedName("dust"); + setHasSubtypes(true); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + // Registers Textures For All Dusts + public void registerIcons(IIconRegister iconRegister) + { + textures = new IIcon[types.length]; + + for (int i = 0; i < types.length; ++i) + { + textures[i] = iconRegister.registerIcon("techreborn" + "dust"); + } + } + + @Override + // Adds Texture what match's meta data + public IIcon getIconFromDamage(int meta) + { + if (meta < 0 || meta >= textures.length) + { + meta = 0; + } + + return textures[meta]; + } + + @Override + // gets Unlocalized Name depending on meta data + public String getUnlocalizedName(ItemStack itemStack) + { + int meta = itemStack.getItemDamage(); + if (meta < 0 || meta >= types.length) + { + meta = 0; + } + + return super.getUnlocalizedName() + "." + types[meta]; + } + + // Adds Dusts SubItems To Creative Tab + public void getSubItems(Item item, CreativeTabs creativeTabs, List list) + { + for (int meta = 0; meta < types.length; ++meta) + { + list.add(new ItemStack(item, 1, meta)); + } + } + +} From 6df95800e11e15d45b5c30a404dafad2f433e7ab Mon Sep 17 00:00:00 2001 From: Gig Date: Sat, 11 Apr 2015 00:29:11 +0100 Subject: [PATCH 2/3] Added basic recipe remover for use in overriding Ic2 recipes. --- src/main/java/techreborn/items/ItemDusts.java | 18 +++---- .../java/techreborn/util/RecipeRemover.java | 50 +++++++++++++++++++ 2 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 src/main/java/techreborn/util/RecipeRemover.java diff --git a/src/main/java/techreborn/items/ItemDusts.java b/src/main/java/techreborn/items/ItemDusts.java index 665012dab..a78f82df4 100644 --- a/src/main/java/techreborn/items/ItemDusts.java +++ b/src/main/java/techreborn/items/ItemDusts.java @@ -13,15 +13,15 @@ import net.minecraft.util.IIcon; public class ItemDusts extends Item { public static final String[] types = new String[] - { - "Almandine", "Aluminium", "Andradite", "Ashes", "Basalt", "Bauxite", "Brass", "Bronze", - "Calcite","Charcoal", "Chrome", "Cinnabar", "Clay", "Coal", "Copper", "Dark Ashes", "Diamond", - "Electrum","Emerald", "Ender Eye", "Ender Pearl", "Endstone", "Flint", "Gold", "Green Sapphire", "Grossular", - "Invar", "Iron", "Lazurite", "Lead", "Magnesium", "Marble", "Netherrack", "Nickel", "Obsidian", - "Olivine","Phosphor", "Platinum", "Pyrite", "Pyrope", "Red Garnet", "Redrock", "Ruby", "Saltpeter", "Sapphire", - "Silver", "Sodalite", "Spessartine", "Sphalerite", "Steel", "Sulfur", "Tin", "Titanium", "Tungsten", "Uranium", - "Uvarovite", "Yellow Garnet", "Zinc" - }; + { + "Almandine", "Aluminium", "Andradite", "Ashes", "Basalt", "Bauxite", "Brass", "Bronze", + "Calcite","Charcoal", "Chrome", "Cinnabar", "Clay", "Coal", "Copper", "Dark Ashes", "Diamond", + "Electrum","Emerald", "Ender Eye", "Ender Pearl", "Endstone", "Flint", "Gold", "Green Sapphire", "Grossular", + "Invar", "Iron", "Lazurite", "Lead", "Magnesium", "Marble", "Netherrack", "Nickel", "Obsidian", + "Olivine","Phosphor", "Platinum", "Pyrite", "Pyrope", "Red Garnet", "Redrock", "Ruby", "Saltpeter", "Sapphire", + "Silver", "Sodalite", "Spessartine", "Sphalerite", "Steel", "Sulfur", "Tin", "Titanium", "Tungsten", "Uranium", + "Uvarovite", "Yellow Garnet", "Zinc" + }; private IIcon[] textures; diff --git a/src/main/java/techreborn/util/RecipeRemover.java b/src/main/java/techreborn/util/RecipeRemover.java new file mode 100644 index 000000000..05953b57d --- /dev/null +++ b/src/main/java/techreborn/util/RecipeRemover.java @@ -0,0 +1,50 @@ +package techreborn.util; + +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.ShapedRecipes; + +public class RecipeRemover +{ + public static void removeShapedRecipes(List removelist) + { + for (ItemStack stack : removelist) + removeShapedRecipe(stack); + } + + public static void removeAnyRecipe(ItemStack resultItem) + { + List recipes = CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < recipes.size(); i++) + { + IRecipe tmpRecipe = recipes.get(i); + ItemStack recipeResult = tmpRecipe.getRecipeOutput(); + if (ItemStack.areItemStacksEqual(resultItem, recipeResult)) + { + recipes.remove(i--); + } + } + } + + public static void removeShapedRecipe(ItemStack resultItem) + { + List recipes = CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < recipes.size(); i++) + { + IRecipe tmpRecipe = recipes.get(i); + if (tmpRecipe instanceof ShapedRecipes) + { + ShapedRecipes recipe = (ShapedRecipes) tmpRecipe; + ItemStack recipeResult = recipe.getRecipeOutput(); + + if (ItemStack.areItemStacksEqual(resultItem, recipeResult)) + { + recipes.remove(i++); + } + } + } + } +} From 1704f989c5f58f461fe491b1c811ac54f64f3fc0 Mon Sep 17 00:00:00 2001 From: Gig Date: Sat, 11 Apr 2015 00:37:04 +0100 Subject: [PATCH 3/3] Added ItemTR.class for easy item creation --- src/main/java/techreborn/items/ItemDusts.java | 2 +- src/main/java/techreborn/items/ItemTR.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/main/java/techreborn/items/ItemTR.java diff --git a/src/main/java/techreborn/items/ItemDusts.java b/src/main/java/techreborn/items/ItemDusts.java index a78f82df4..8448c2b67 100644 --- a/src/main/java/techreborn/items/ItemDusts.java +++ b/src/main/java/techreborn/items/ItemDusts.java @@ -10,7 +10,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -public class ItemDusts extends Item +public class ItemDusts extends ItemTR { public static final String[] types = new String[] { diff --git a/src/main/java/techreborn/items/ItemTR.java b/src/main/java/techreborn/items/ItemTR.java new file mode 100644 index 000000000..979fdf189 --- /dev/null +++ b/src/main/java/techreborn/items/ItemTR.java @@ -0,0 +1,20 @@ +package techreborn.items; + +import techreborn.client.TechRebornCreativeTab; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; + +public class ItemTR extends Item{ + + public ItemTR() + { + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public void registerIcons(IIconRegister iconRegister) + { + itemIcon = iconRegister.registerIcon("techreborn" + ":" + getUnlocalizedName().toLowerCase().substring(5)); + } + +}