diff --git a/src/main/java/techreborn/compat/CompatManager.java b/src/main/java/techreborn/compat/CompatManager.java index 506ec2b31..f43a3956d 100644 --- a/src/main/java/techreborn/compat/CompatManager.java +++ b/src/main/java/techreborn/compat/CompatManager.java @@ -13,6 +13,7 @@ import techreborn.compat.recipes.RecipesBuildcraft; import techreborn.compat.recipes.RecipesThaumcraft; import techreborn.compat.waila.CompatModuleWaila; import techreborn.config.ConfigTechReborn; +import techreborn.parts.StandalonePartCompact; import techreborn.parts.TechRebornParts; public class CompatManager { @@ -45,6 +46,7 @@ public class CompatManager { registerCompact(RecipesThaumcraft.class, "Thaumcraft"); registerCompact(TechRebornParts.class, "mcmultipart"); registerCompact(ClientPartLoader.class, "mcmultipart", "@client"); + registerCompact(StandalonePartCompact.class, "!mcmultipart"); } public void registerCompact(Class moduleClass, Object... objs) { diff --git a/src/main/java/techreborn/init/ModRecipes.java b/src/main/java/techreborn/init/ModRecipes.java index 44cc010ac..f92c8a41f 100644 --- a/src/main/java/techreborn/init/ModRecipes.java +++ b/src/main/java/techreborn/init/ModRecipes.java @@ -46,7 +46,7 @@ import techreborn.items.ItemIngots; import techreborn.items.ItemNuggets; import techreborn.items.ItemParts; import techreborn.items.ItemPlates; -import techreborn.parts.ItemCables; +import techreborn.parts.ItemStandaloneCables; import techreborn.utils.RecipeUtils; public class ModRecipes { @@ -81,26 +81,26 @@ public class ModRecipes { } static void addWireRecipes() { - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("copper", 6), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("copper", 6), "XXX","CCC", "XXX", 'C', "ingotCopper"); - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("tin", 9), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("tin", 9), "XXX","CCC", "XXX", 'C', "ingotTin"); - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("gold", 12), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("gold", 12), "XXX","CCC", "XXX", 'C', "ingotGold"); - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("hv", 8), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("hv", 8), "XXX","CCC", "XXX", 'C', ItemIngots.getIngotByName("refinediron")); - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("glassfiber", 6), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("glassfiber", 6), "GGG", "SDS", "GGG", 'G', "blockGlass", 'S', "ingotSilver", 'D', Items.diamond); - CraftingHelper.addShapedOreRecipe(ItemCables.getCableByName("glassfiber", 4), + CraftingHelper.addShapedOreRecipe(ItemStandaloneCables.getCableByName("glassfiber", 4), "GGG", "RDR", "GGG", @@ -108,9 +108,9 @@ public class ModRecipes { 'R', Items.redstone, 'D', Items.diamond); - CraftingHelper.addShapelessOreRecipe(ItemCables.getCableByName("insulatedcopper"), ItemParts.getPartByName("rubber"), ItemCables.getCableByName("copper")); - CraftingHelper.addShapelessOreRecipe(ItemCables.getCableByName("insulatedgold"), ItemParts.getPartByName("rubber"), ItemCables.getCableByName("gold")); - CraftingHelper.addShapelessOreRecipe(ItemCables.getCableByName("insulatedhv"), ItemParts.getPartByName("rubber"), ItemCables.getCableByName("hv")); + CraftingHelper.addShapelessOreRecipe(ItemStandaloneCables.getCableByName("insulatedcopper"), ItemParts.getPartByName("rubber"), ItemStandaloneCables.getCableByName("copper")); + CraftingHelper.addShapelessOreRecipe(ItemStandaloneCables.getCableByName("insulatedgold"), ItemParts.getPartByName("rubber"), ItemStandaloneCables.getCableByName("gold")); + CraftingHelper.addShapelessOreRecipe(ItemStandaloneCables.getCableByName("insulatedhv"), ItemParts.getPartByName("rubber"), ItemStandaloneCables.getCableByName("hv")); } private static void addCompressorRecipes() { @@ -202,7 +202,7 @@ public class ModRecipes { "WWW", "SRS", "WWW", 'R', ItemIngots.getIngotByName("refinediron"), 'S', Items.redstone, - 'W', ItemCables.getCableByName("insulatedcopper")); + 'W', ItemStandaloneCables.getCableByName("insulatedcopper")); CraftingHelper.addShapedOreRecipe(new ItemStack(ModItems.wrench), "BAB", "BBB", "ABA", diff --git a/src/main/java/techreborn/parts/ItemCables.java b/src/main/java/techreborn/parts/ItemCables.java index 680e79c07..625f37677 100644 --- a/src/main/java/techreborn/parts/ItemCables.java +++ b/src/main/java/techreborn/parts/ItemCables.java @@ -14,8 +14,6 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import reborncore.RebornCore; import techreborn.client.TechRebornCreativeTab; -import techreborn.init.ModItems; -import techreborn.items.ItemTextureBase; import techreborn.lib.ModInfo; import java.security.InvalidParameterException; @@ -25,19 +23,6 @@ import java.util.List; * Created by Mark on 27/02/2016. */ public class ItemCables extends ItemMultiPart implements ITexturedItem { - - public static ItemStack getCableByName(String name, int count) { - for (int i = 0; i < EnumCableType.values().length; i++) { - if (EnumCableType.values()[i].getName().equalsIgnoreCase(name)) { - return new ItemStack(TechRebornParts.cables, count, i); - } - } - throw new InvalidParameterException("The cable " + name + " could not be found."); - } - - public static ItemStack getCableByName(String name) { - return getCableByName(name, 1); - } public ItemCables() { setCreativeTab(TechRebornCreativeTab.instance); @@ -45,6 +30,7 @@ public class ItemCables extends ItemMultiPart implements ITexturedItem { setUnlocalizedName("techreborn.cable"); setNoRepair(); RebornCore.jsonDestroyer.registerObject(this); + ItemStandaloneCables.mcPartCable = this; } @Override diff --git a/src/main/java/techreborn/parts/ItemStandaloneCables.java b/src/main/java/techreborn/parts/ItemStandaloneCables.java new file mode 100644 index 000000000..bbfd9d068 --- /dev/null +++ b/src/main/java/techreborn/parts/ItemStandaloneCables.java @@ -0,0 +1,77 @@ +package techreborn.parts; + +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import reborncore.RebornCore; +import techreborn.client.TechRebornCreativeTab; +import techreborn.items.ItemTR; +import techreborn.items.ItemTextureBase; +import techreborn.lib.ModInfo; + +import java.security.InvalidParameterException; +import java.util.List; + +/** + * Created by Mark on 06/03/2016. + */ +public class ItemStandaloneCables extends ItemTextureBase { + + public static Item mcPartCable; + + public static ItemStack getCableByName(String name, int count) { + for (int i = 0; i < EnumCableType.values().length; i++) { + if (EnumCableType.values()[i].getName().equalsIgnoreCase(name)) { + return new ItemStack(mcPartCable != null? mcPartCable : StandalonePartCompact.itemStandaloneCable, count, i); + } + } + throw new InvalidParameterException("The cable " + name + " could not be found."); + } + + public static ItemStack getCableByName(String name) { + return getCableByName(name, 1); + } + + public ItemStandaloneCables() { + setCreativeTab(TechRebornCreativeTab.instance); + setHasSubtypes(true); + setUnlocalizedName("techreborn.cable"); + setNoRepair(); + RebornCore.jsonDestroyer.registerObject(this); + } + + @Override + // gets Unlocalized Name depending on meta data + public String getUnlocalizedName(ItemStack itemStack) { + int meta = itemStack.getItemDamage(); + if (meta < 0 || meta >= EnumCableType.values().length) { + meta = 0; + } + + return super.getUnlocalizedName() + "." + EnumCableType.values()[meta]; + } + + // Adds Dusts SubItems To Creative Tab + public void getSubItems(Item item, CreativeTabs creativeTabs, List list) { + for (int meta = 0; meta < EnumCableType.values().length; ++meta) { + list.add(new ItemStack(item, 1, meta)); + } + } + + @Override + public String getTextureName(int damage) { + return ModInfo.MOD_ID + ":items/cables/" + EnumCableType.values()[damage]; + } + + @Override + public int getMaxMeta() { + return EnumCableType.values().length; + } + + @Override + public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) { + return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory"); + } +} diff --git a/src/main/java/techreborn/parts/StandalonePartCompact.java b/src/main/java/techreborn/parts/StandalonePartCompact.java new file mode 100644 index 000000000..9d8cd3722 --- /dev/null +++ b/src/main/java/techreborn/parts/StandalonePartCompact.java @@ -0,0 +1,37 @@ +package techreborn.parts; + +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.event.FMLServerStartingEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; +import techreborn.compat.ICompatModule; + +/** + * Created by Mark on 06/03/2016. + */ +public class StandalonePartCompact implements ICompatModule { + + public static ItemStandaloneCables itemStandaloneCable; + + @Override + public void preInit(FMLPreInitializationEvent event) { + + } + + @Override + public void init(FMLInitializationEvent event) { + itemStandaloneCable = new ItemStandaloneCables(); + GameRegistry.registerItem(itemStandaloneCable, "cables"); + } + + @Override + public void postInit(FMLPostInitializationEvent event) { + + } + + @Override + public void serverStarting(FMLServerStartingEvent event) { + + } +}