diff options
Diffstat (limited to 'src/main/java')
43 files changed, 1166 insertions, 1744 deletions
diff --git a/src/main/java/lance5057/tDefense/PacketHandler.java b/src/main/java/lance5057/tDefense/PacketHandler.java index f48202c..f60c1fb 100644 --- a/src/main/java/lance5057/tDefense/PacketHandler.java +++ b/src/main/java/lance5057/tDefense/PacketHandler.java @@ -1,17 +1,13 @@ package lance5057.tDefense; -import lance5057.tDefense.core.blocks.crestMount.Handler_CrestMount; -import lance5057.tDefense.core.blocks.crestMount.Message_CrestMount; -import net.minecraftforge.fml.relauncher.Side; - public class PacketHandler { private static int id = 0; public static void init() { - TinkersDefense.INSTANCE.registerMessage(Handler_CrestMount.class, Message_CrestMount.class, id++, Side.SERVER); + //TinkersDefense.INSTANCE.registerMessage(Handler_CrestMount.class, Message_CrestMount.class, id++, Side.SERVER); //TinkersDefense.INSTANCE.registerMessage(Handler_FinishingAnvil.class, Message_FinishingAnvil.class, id++, Side.SERVER); } diff --git a/src/main/java/lance5057/tDefense/TD_Config.java b/src/main/java/lance5057/tDefense/TD_Config.java index 47b747b..86837dd 100644 --- a/src/main/java/lance5057/tDefense/TD_Config.java +++ b/src/main/java/lance5057/tDefense/TD_Config.java @@ -1,25 +1,143 @@ package lance5057.tDefense; import lance5057.tDefense.util.Color16Util; +import net.minecraftforge.common.config.Config; +import net.minecraftforge.common.config.ConfigManager; import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.fml.client.event.ConfigChangedEvent; +import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import scala.Int; +import slimeknights.tconstruct.library.materials.Material; +@Config(modid = Reference.MOD_ID) public class TD_Config { - public boolean debug; - public boolean ArmorAddon; - public boolean transparency; - public boolean mossEnabled; - public boolean mossHard; - - static int count = 18; - public int AeonsteelMatID; - public int QueensGoldMatID; - public int DogbeariumMatID; - public int RedMintMatID; - public int GreenMintMatID; - + @Config.Comment("Enable Debug Features") + public static boolean debug = false; +// public boolean ArmorAddon; +// public boolean transparency; +// public boolean mossEnabled; +// public boolean mossHard; + + @Config.Name("Shields") + public static final Shields shields = new Shields(); + @Config.Name("Tools") + public static final Tools tools = new Tools(); + @Config.Name("Materials") + public static final Materials materials = new Materials(); + @Config.Name("Addons") + public static final Addons addons = new Addons(); + + public static class Shields + { + @Config.RequiresMcRestart() + @Config.Comment("Enable Shields") + public static boolean enableShields= true; + + @Config.RequiresMcRestart() + public static boolean enableHeaterShield= true; + + @Config.RequiresMcRestart() + public static boolean enableBuckler= true; + + @Config.Comment("How much damage should a shield block percentage wise if the material has no shield data built in?") + public static int defaultShieldBlockPercentage = 33; + } + + public static class Tools + { + @Config.RequiresMcRestart() + public static boolean enableZweihander= true; + + @Config.RequiresMcRestart() + public static boolean enableShears= true; + + @Config.RequiresMcRestart() + public static boolean enableFishingRod= true; + } + + public static class Materials + { + @Config.RequiresMcRestart() + public static boolean enableCustomMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableBaseMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableJokeMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableHolidayMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableGemMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableBloodMagicMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableTwilightForestMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableHarvestCraftMaterials= true; + + @Config.RequiresMcRestart() + public static boolean enableAeonsteel= true; + + @Config.RequiresMcRestart() + public static boolean enableQueensGold= true; + + @Config.RequiresMcRestart() + public static boolean enableDogbearium= true; + + @Config.RequiresMcRestart() + public static boolean enableRedCandy= true; + + @Config.RequiresMcRestart() + public static boolean enableGreenCandy= true; + + @Config.RequiresMcRestart() + public static boolean enableSinisterium= true; + + @Config.RequiresMcRestart() + public static boolean enableNihilite= true; + + @Config.RequiresMcRestart() + public static boolean enableVibrant= true; + + @Config.RequiresMcRestart() + public static boolean enableOrichalcum= true; + + @Config.RequiresMcRestart() + public static boolean enablePandorium= true; + + @Config.RequiresMcRestart() + public static boolean enableRoseGold= true; + + @Config.RequiresMcRestart() + public static boolean enablePlatinum= true; + + @Config.RequiresMcRestart() + public static boolean enableBrass= true; + + @Config.RequiresMcRestart() + public static boolean enableSilver= true; + + @Config.RequiresMcRestart() + public static boolean enableCheese= true; + + @Config.RequiresMcRestart() + public static boolean enableGold= true; + } + + public static class Addons + { + + } + public int SoulBoundID; public int DazeID; public int RainbowID; @@ -65,10 +183,6 @@ public class TD_Config public int ArmorHighstepID; public int ArmorKnockbackResistID; - public int MaterialIndex; - - public boolean MineAndBladeAddon; - public boolean BotaniaAddon; public int CorpseIvyModID; public int ManaRepairModID; @@ -76,10 +190,10 @@ public class TD_Config public int ArmorPixieCoreModID; public int ArmorManaDiscountModID; - public boolean ThaumcraftAddon; - public int RevealingModID; - public int VisDiscountModID; - public int CapsModID; +// public boolean ThaumcraftAddon; +// public int RevealingModID; +// public int VisDiscountModID; +// public int CapsModID; //public int SpellbindModID; public boolean BloodMagicAddon; @@ -88,104 +202,19 @@ public class TD_Config public int ScabbingModID; public int DivinationModID; - public TD_Config(FMLPreInitializationEvent e) - { - final Configuration config = new Configuration( - e.getSuggestedConfigurationFile()); - - config.load(); - - debug = config.getBoolean("Should debug mode be enabled?", "Debug Mode", false, null); - ArmorAddon = config.getBoolean("Should the armor addon be enabled?", "Armor Addon", true, null); - transparency = config.getBoolean("Should Transparent Textures be enabled?", "General Settings", true, "May help fps if disabled"); - mossEnabled = config.getBoolean("Should the moss recipe be enabled?", "General Settings", true, null); - mossHard = config.getBoolean("Should the moss recipe be hard?", "General Settings", true, null); - - MaterialIndex = config.getInt("Material Index", "Highest material ID", 206, 30, Int.MaxValue(), "TDefense - 206 MFR - 1001 ExtraTIC - 1024"); - - AeonsteelMatID = config.getInt("Aeonsteel Material ID", "Material Configs", 201, 30, Int.MaxValue(), null); - QueensGoldMatID = config.getInt("QueensGold Material ID", "Material Configs", 202, 30, Int.MaxValue(), null); - DogbeariumMatID = config.getInt("Dogbearium Material ID", "Material Configs", 203, 30, Int.MaxValue(), null); - RedMintMatID = config.getInt("RedMint Material ID", "Material Configs", 204, 30, Int.MaxValue(), null); - GreenMintMatID = config.getInt("GreenMint Material ID", "Material Configs", 205, 30, Int.MaxValue(), null); - - DazeID = config.getInt("Daze ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - SoulBoundID = config.getInt("Soulbound ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - RainbowID = config.getInt("Rainbow ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - XPBoostID = config.getInt("XPBoost ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - ShearFortuneID = config.getInt("Fortune for Shears ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - - CrestFeathersID = ConfigCrest(config, "Feathers"); - CrestMirrorsID = ConfigCrest(config, "Mirrors"); - CrestLegendsID = ConfigCrest(config, "Legends"); - CrestBladesID = ConfigCrest(config, "Blades"); - CrestGluttonyID = ConfigCrest(config, "Gluttony"); - CrestPitchID = ConfigCrest(config, "Pitch"); - CrestThornsID = ConfigCrest(config, "Thorns"); - CrestSanguisugaID = ConfigCrest(config, "Sanguisuga"); - CrestWindsID = ConfigCrest(config, "Winds"); - CrestRetributionID = ConfigCrest(config, "Retribution"); - CrestLightID = ConfigCrest(config, "Light"); - - SoulSteveID = config.getInt("Soulstone Steve ID", "Modifier Configs", count++, 18, Int.MaxValue(), null); - - ArmorProtectionID = config.getInt("Protection ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorFireProtectionID = config.getInt("Fire Protection ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorBlastProtectionID = config.getInt("Blast Protection ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorProjectileProtectionID = config.getInt("Projectile Protection ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorFeatherfallID = config.getInt("Featherfall ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorGlowstepID = config.getInt("Glowstep ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorFrostwalkerID = config.getInt("Frostwalker ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorFirewalkerID = config.getInt("Firewalker ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorDepthstriderID = config.getInt("Depthstrider ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorRebreatherID = config.getInt("Rebreather ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorNightvisionID = config.getInt("Nightvision ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorAntiBlindnessID = config.getInt("Anti Blindness ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorPumpkinID = config.getInt("Pumpkin ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorDodgeID = config.getInt("Dodge ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorThornsID = config.getInt("Thorns ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorAbsorptionID = config.getInt("Absorbtion ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorJumpboostID = config.getInt("Jump Boost ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorSpeedID = config.getInt("Speed ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorHighstepID = config.getInt("High Step ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - ArmorKnockbackResistID = config.getInt("Knockback Resistance ID", "Armor Modifier Configs", count++, 18, Int.MaxValue(), null); - - MineAndBladeAddon = config.getBoolean("Enable Mine and Blade Addon", "Integration", true, ""); - - BotaniaAddon = config.getBoolean("Enable Botania Addon", "Integration", true, ""); - CorpseIvyModID = config.getInt("Corpse Drinker Ivy Modifier ID", "Botania Addon", count++, 18, Int.MaxValue(), null); - ManaRepairModID = config.getInt("Mana Repair Modifier ID", "Botania Addon", count++, 18, Int.MaxValue(), null); - TerraCoreModID = config.getInt("Terra Core Modifier ID", "Botania Addon", count++, 18, Int.MaxValue(), null); - ArmorPixieCoreModID = config.getInt("Elementium Core Modifier ID", "Botania Addon", count++, 18, Int.MaxValue(), null); - ArmorManaDiscountModID = config.getInt("Mana Embroidery Modifier ID", "Botania Addon", count++, 18, Int.MaxValue(), null); - - ThaumcraftAddon = config.getBoolean("Enable Thaumcraft Addon", "Integration", true, "Requires Thaumcraft to use"); - RevealingModID = config.getInt("Revealing Modifier ID", "Thaumcraft Addon", count++, 18, Int.MaxValue(), null); - VisDiscountModID = config.getInt("Vis Discount Modifier ID", "Thaumcraft Addon", count++, 18, Int.MaxValue(), null); - CapsModID = config.getInt("Cap Repair Modifier ID", "Thaumcraft Addon", count++, 18, Int.MaxValue(), null); - //SpellbindModID = config.getIntInt("Spellbinding Modifier ID", "Thaumcraft Addon", 73, 0, Integer.MAX_VALUE, ""); - - BloodMagicAddon = config.getBoolean("Enable BloodMagic Addon", "Integration", true, "Requires BloodMagic to use"); - DivinationModID = config.getInt("Divination Modifier ID", "BloodMagic Addon", count++, 18, Int.MaxValue(), null); - SuppingModID = config.getInt("Supping Modifier ID", "BloodMagic Addon", count++, 18, Int.MaxValue(), null); - BloodOathModID = config.getInt("Blood Oath Modifier ID", "BloodMagic Addon", count++, 18, Int.MaxValue(), null); - ScabbingModID = config.getInt("Scabbing Modifier ID", "BloodMagic Addon", count++, 18, Int.MaxValue(), null); - - //JokeInsultID = config.getInt("Insult ID", "Joke Modifier Configs", count++, 18, Int.MaxValue(), null); - //JokePyrotechID = config.getInt("Pyrotech ID", "Joke Modifier Configs", count++, 18, Int.MaxValue(), null); - - config.save(); - } - - private int[] ConfigCrest(Configuration config, String name) - { - final int[] crest = new int[Color16Util.colors.length]; - - for(int i = 0; i < Color16Util.colors.length; i++) - { - crest[i] = config.getInt("Crest of " + name + " (" + Color16Util.colors[i] + ") ID", "Shield Modifier Configs", count++, 18, Int.MaxValue(), null); + @Mod.EventBusSubscriber(modid = Reference.MOD_ID) + private static class EventHandler { + + /** + * Inject the new values and save to the config file when the config has been changed from the GUI. + * + * @param event The event + */ + @SubscribeEvent + public static void onConfigChanged(final ConfigChangedEvent.OnConfigChangedEvent event) { + if (event.getModID().equals(Reference.MOD_ID)) { + ConfigManager.sync(Reference.MOD_ID, Config.Type.INSTANCE); + } } - - return crest; - } +} } diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java index 1aae6a1..40b9177 100644 --- a/src/main/java/lance5057/tDefense/TinkersDefense.java +++ b/src/main/java/lance5057/tDefense/TinkersDefense.java @@ -1,8 +1,5 @@ package lance5057.tDefense; -import java.util.Iterator; -import java.util.List; - import lance5057.tDefense.core.CoreBase; import lance5057.tDefense.core.materials.TDMaterials; import lance5057.tDefense.core.parts.TDParts; @@ -10,9 +7,8 @@ import lance5057.tDefense.core.tools.TDTools; import lance5057.tDefense.holiday.HolidayBase; import lance5057.tDefense.proxy.CommonProxy; import lance5057.tDefense.util.ModuleBase; +import lance5057.tDefense.util.RegEvents; import net.minecraft.block.Block; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; @@ -25,6 +21,7 @@ import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; import scala.reflect.internal.Trees.Modifiers; + @Mod(modid = Reference.MOD_ID, version = Reference.VERSION, name = Reference.MOD_NAME) public class TinkersDefense { @@ -50,68 +47,15 @@ public class TinkersDefense { public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE .newSimpleChannel(Reference.MOD_ID); + public static RegEvents reg; + public static Modifiers mods; // public static Item item_Guidebook; - TDParts parts; - TDTools tools; - TDMaterials mats; - - public static Block block_aeonsteelBlock; - public static Fluid moltenaeonsteel; - public static Block moltenaeonsteelBlock; - - public static Block block_queensgoldBlock; - public static Fluid moltenqueensgold; - public static Block moltenqueensgoldBlock; - - public static Block block_dogbeariumBlock; - public static Fluid moltendogbearium; - public static Block moltendogbeariumBlock; - - public static Block block_redmintBlock; - public static Fluid moltenredmint; - public static Block moltenredmintBlock; - - public static Block block_greenmintBlock; - public static Fluid moltengreenmint; - public static Block moltengreenmintBlock; - - // public static Item item_RawSapphire; - // public static Item item_RawRuby; - // public static Item item_RawAmethyst; - // public static Item item_RawAmber; - // - // public static Block block_SapphireOre; - // public static Block block_RubyOre; - // public static Block block_AmethystOre; - // public static Block block_AmberOre; - - // public static ToolCore tool_roundShield; - // public static ToolCore tool_heaterShield; - // public static ToolCore tool_wrench; - // public static ToolCore tool_zweihander; - // public static ToolCore tool_shears; - // public static ToolCore tool_hookshot; - - // public static Block block_CrestMount; - // public static Block block_ArmorAnvil; - // public static Block block_JewelersBench; - // - // //public static Item item_ChainArmor; - // public static Pattern woodPattern; - // public static Pattern metalPattern; - // - // public static Item partRivet; - // public static Item partArmorplate; - // public static Item partClasp; - // public static Item partCloth; - // public static Item partChainmaille; - // - // public static ToolCore tcInject; - - // public static BotaniaMods flowermod; - + public static TDParts parts; + public static TDTools tools; + public static TDMaterials mats; + @SidedProxy(clientSide = "lance5057.tDefense.proxy.ClientProxy", serverSide = "lance5057.tDefense.proxy.CommonProxy") public static CommonProxy proxy; public static int month; @@ -122,6 +66,8 @@ public class TinkersDefense { public void preInit(FMLPreInitializationEvent e) { NetworkRegistry.INSTANCE.registerGuiHandler(TinkersDefense.instance, new CommonProxy()); + //reg = new RegEvents(); + core = new CoreBase(); holiday = new HolidayBase(); //armor = new ArmorBase(); @@ -129,7 +75,7 @@ public class TinkersDefense { mats = new TDMaterials(); parts = new TDParts(); tools = new TDTools(); - config = new TD_Config(e); + //config = new TD_Config(e); // mods = new Modifiers(); // Blocks @@ -333,19 +279,21 @@ public class TinkersDefense { tools.preInit(e); proxy.preInit(); - mats.integrate(mats.materials, mats.materialIntegrations, mats.deferredMaterials); + } + + @EventHandler public void init(FMLInitializationEvent e) { - // I reject your moss and substitute my own! - if (config.mossEnabled || config.mossHard) { - - final List<IRecipe> recipes = CraftingManager.getInstance() - .getRecipeList(); - final Iterator<IRecipe> recipe = recipes.iterator(); - } +// // I reject your moss and substitute my own! +// if (config.mossEnabled || config.mossHard) { +// +// final List<IRecipe> recipes = CraftingManager.class +// .getRecipeList(); +// final Iterator<IRecipe> recipe = recipes.iterator(); +// } core.init(e); //armor.init(e); @@ -356,6 +304,8 @@ public class TinkersDefense { proxy.init(); phandler.init(); + + mats.integrate(mats.materials, mats.materialIntegrations, mats.deferredMaterials); } @EventHandler @@ -370,157 +320,4 @@ public class TinkersDefense { tools.postInit(e); } - public void castmolten(Fluid fluid, int ID) { - // // .addCastingRecipe(output, fluid, cast, hardeningDelay) - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.toolRod, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), TConstructRegistry.getItemStack("toolRodCast"), - // 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.pickaxeHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("pickaxeHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.shovelHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("shovelHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.hatchetHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("hatchetHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.swordBlade, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("swordBladeCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.fullGuard, 1, ID), new FluidStack(fluid, - // (int) (144 * 3.0D)), - // TConstructRegistry.getItemStack("fullGuardCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.wideGuard, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), - // TConstructRegistry.getItemStack("wideGuardCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.crossbar, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), TConstructRegistry.getItemStack("crossbarCast"), - // 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.binding, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), TConstructRegistry.getItemStack("bindingCast"), - // 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.handGuard, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), - // TConstructRegistry.getItemStack("handGuardCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.frypanHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("frypanHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.signHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), TConstructRegistry.getItemStack("signHeadCast"), - // 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.knifeBlade, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), - // TConstructRegistry.getItemStack("knifeBladeCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.chiselHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 0.5D)), - // TConstructRegistry.getItemStack("chiselHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.toughRod, 1, ID), new FluidStack(fluid, - // (int) (144 * 3.0D)), TConstructRegistry.getItemStack("toughRodCast"), - // 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.toughBinding, 1, ID), new FluidStack(fluid, - // (int) (144 * 3.0D)), - // TConstructRegistry.getItemStack("toughBindingCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.largePlate, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("largePlateCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.broadAxeHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("broadAxeHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.scytheBlade, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("scytheHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.excavatorHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("excavatorHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.largeSwordBlade, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("largeBladeCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.hammerHead, 1, ID), new FluidStack(fluid, - // (int) (144 * 8.0D)), - // TConstructRegistry.getItemStack("hammerHeadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // TinkerTools.arrowhead, 1, ID), new FluidStack(fluid, - // (int) (144 * 1.0D)), - // TConstructRegistry.getItemStack("arrowheadCast"), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // partArmorplate, 1, ID), new FluidStack(fluid, - // (int) (144 * 4.0D)), new ItemStack(metalPattern, 1, 2), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // partRivet, 1, ID), new FluidStack(fluid, (int) (144 * 0.5D)), new - // ItemStack( - // metalPattern, 1, 0), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // partClasp, 1, ID), new FluidStack(fluid, (int) (144 * 1.0D)), new - // ItemStack( - // metalPattern, 1, 1), 50); - // TConstructRegistry.getTableCasting().addCastingRecipe(new ItemStack( - // partChainmaille, 1, ID), new FluidStack(fluid, - // (int) (144 * 4.0D)), new ItemStack(metalPattern, 1, 4), 50); - } - - // public void buildParts(Item item, int meta) - // { - // final int[] nonMetals = {0, 1, 3, 4, 5, 6, 7, 8, 9, 17}; - // final int[] liquidDamage = new int[] {2, 13, 10, 11, 12, 14, 15, 6, 16, - // 18}; - // - // for(int mat = 0; mat < nonMetals.length; mat++) // - // { - // TConstructRegistry.addPartMapping(woodPattern, meta, mat, new ItemStack( - // item, 1, mat)); - // } - // - // final LiquidCasting tableCasting = TConstructRegistry.getTableCasting(); - // // patternOutputs = new Item[] { partShuriken, partCrossbowLimb, - // // partCrossbowBody, partBowLimb }; - // - // final ItemStack cast = new ItemStack(metalPattern, 1, meta); - // - // tableCasting.addCastingRecipe(cast, new FluidStack( - // TinkerSmeltery.moltenAlubrassFluid, TConstruct.ingotLiquidValue), new - // ItemStack( - // item, 1, Short.MAX_VALUE), false, 50); - // tableCasting.addCastingRecipe(cast, new FluidStack( - // TinkerSmeltery.moltenGoldFluid, TConstruct.ingotLiquidValue * 2), new - // ItemStack( - // item, 1, Short.MAX_VALUE), false, 50); - // - // for(int iterTwo = 0; iterTwo < TinkerSmeltery.liquids.length; iterTwo++) - // { - // final Fluid fs = TinkerSmeltery.liquids[iterTwo].getFluid(); - // final int fluidAmount = metalPattern.getPatternCost(cast) * - // TConstruct.ingotLiquidValue / 2; - // final ItemStack metalCast = new ItemStack(item, 1, - // liquidDamage[iterTwo]); - // tableCasting.addCastingRecipe(metalCast, new FluidStack(fs, - // fluidAmount), cast, 50); - // Smeltery.addMelting(FluidType.getFluidType(fs), metalCast, 0, - // fluidAmount); - // } - // } - - - } diff --git a/src/main/java/lance5057/tDefense/armor/items/straps/ItemStraps.java b/src/main/java/lance5057/tDefense/armor/items/straps/ItemStraps.java index 84f7d69..a236fc0 100644 --- a/src/main/java/lance5057/tDefense/armor/items/straps/ItemStraps.java +++ b/src/main/java/lance5057/tDefense/armor/items/straps/ItemStraps.java @@ -29,16 +29,16 @@ public class ItemStraps extends ItemArmor } @Override - public ActionResult<ItemStack> onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand) + public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { - if (!world.isRemote) + if (!worldIn.isRemote) { // If player not sneaking, open the inventory gui - if (!player.isSneaking()) { - player.openGui(TinkersDefense.instance, TinkersDefense.GUI_STRAPS_INV, world, 0, 0, 0); + if (!playerIn.isSneaking()) { + playerIn.openGui(TinkersDefense.instance, TinkersDefense.GUI_STRAPS_INV, worldIn, 0, 0, 0); } } - return new ActionResult(EnumActionResult.PASS, itemStack); + return new ActionResult(EnumActionResult.PASS, playerIn.getHeldItem(handIn)); } }
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/armor/items/straps/ItemStrapsInv.java b/src/main/java/lance5057/tDefense/armor/items/straps/ItemStrapsInv.java index fc71353..95b8036 100644 --- a/src/main/java/lance5057/tDefense/armor/items/straps/ItemStrapsInv.java +++ b/src/main/java/lance5057/tDefense/armor/items/straps/ItemStrapsInv.java @@ -49,7 +49,7 @@ public class ItemStrapsInv implements IInventory { // Just double-checking that the saved slot index is within our // inventory array bounds if (slot >= 0 && slot < getSizeInventory()) { - inventory[slot] = ItemStack.loadItemStackFromNBT(item); + inventory[slot] = new ItemStack(item); } } } @@ -111,7 +111,7 @@ public class ItemStrapsInv implements IInventory { public ItemStack decrStackSize(int index, int count) { ItemStack stack = getStackInSlot(index); if (stack != null) { - if (stack.stackSize > count) { + if (stack.getCount() > count) { stack = stack.splitStack(count); // Don't forget this line or your inventory will not be saved! markDirty(); @@ -135,8 +135,8 @@ public class ItemStrapsInv implements IInventory { public void setInventorySlotContents(int index, ItemStack stack) { inventory[index] = stack; - if (stack != null && stack.stackSize > getInventoryStackLimit()) { - stack.stackSize = getInventoryStackLimit(); + if (stack != null && stack.getCount() > getInventoryStackLimit()) { + stack.setCount(getInventoryStackLimit()); } // Don't forget this line or your inventory will not be saved! @@ -151,7 +151,7 @@ public class ItemStrapsInv implements IInventory { @Override public void markDirty() { for (int i = 0; i < getSizeInventory(); ++i) { - if (getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) { + if (getStackInSlot(i) != null && getStackInSlot(i).getCount() == 0) { inventory[i] = null; } } @@ -203,4 +203,10 @@ public class ItemStrapsInv implements IInventory { // TODO Auto-generated method stub } + + @Override + public boolean isEmpty() { + // TODO Auto-generated method stub + return false; + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java index 96a2aed..e4c59c4 100644 --- a/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java +++ b/src/main/java/lance5057/tDefense/armor/items/straps/StrapsContainer.java @@ -161,7 +161,7 @@ public class StrapsContainer extends Container } } - if (itemstack1.stackSize == 0) + if (itemstack1.getItemDamage() == 0) { slot.putStack((ItemStack) null); } @@ -170,12 +170,12 @@ public class StrapsContainer extends Container slot.onSlotChanged(); } - if (itemstack1.stackSize == itemstack.stackSize) + if (itemstack1.getItemDamage() == itemstack.getItemDamage()) { return null; } - slot.onPickupFromSlot(par1EntityPlayer, itemstack1); + slot.onTake(par1EntityPlayer, itemstack1); } return itemstack; diff --git a/src/main/java/lance5057/tDefense/core/CoreBlocks.java b/src/main/java/lance5057/tDefense/core/CoreBlocks.java index 62a3139..6ae204d 100644 --- a/src/main/java/lance5057/tDefense/core/CoreBlocks.java +++ b/src/main/java/lance5057/tDefense/core/CoreBlocks.java @@ -1,21 +1,18 @@ package lance5057.tDefense.core; -import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.core.blocks.TDMetalBlock; import lance5057.tDefense.core.blocks.TDMetalItemBlock; -import lance5057.tDefense.core.blocks.crestMount.CrestMount; import lance5057.tDefense.util.BlocksBase; 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.registry.GameRegistry; public class CoreBlocks extends BlocksBase { public static TDMetalBlock metalBlocks; public static TDMetalItemBlock metalItemBlock; - public static CrestMount crestMount; + //public static CrestMount crestMount; @Override public void preInit(FMLPreInitializationEvent e) { @@ -25,18 +22,18 @@ public class CoreBlocks extends BlocksBase { // greencandyBlock = register("greencandyblock", CoreBase.tab, 5); // redcandyBlock = register("redcandyblock", CoreBase.tab, 5); - crestMount = new CrestMount(); - crestMount.setCreativeTab(CoreBase.tab); + //crestMount = new CrestMount(); + //crestMount.setCreativeTab(CoreBase.tab); metalBlocks = (TDMetalBlock) (new TDMetalBlock().setUnlocalizedName("metalblock")); metalBlocks.setRegistryName("metalblock"); - GameRegistry.register(metalBlocks); + blockList.add(metalBlocks); // We also need to create and register an ItemBlock for this block // otherwise it won't appear in the inventory metalItemBlock = new TDMetalItemBlock(metalBlocks); metalItemBlock.setRegistryName(metalBlocks.getRegistryName()); - GameRegistry.register(metalItemBlock); + itemList.add(metalItemBlock); diff --git a/src/main/java/lance5057/tDefense/core/CoreClientProxy.java b/src/main/java/lance5057/tDefense/core/CoreClientProxy.java index 04c5b0c..4876427 100644 --- a/src/main/java/lance5057/tDefense/core/CoreClientProxy.java +++ b/src/main/java/lance5057/tDefense/core/CoreClientProxy.java @@ -9,7 +9,7 @@ public class CoreClientProxy { public void preInit() { - CoreBlocks.crestMount.initModel(); + //CoreBlocks.crestMount.initModel(); } public void init() { diff --git a/src/main/java/lance5057/tDefense/core/CoreItems.java b/src/main/java/lance5057/tDefense/core/CoreItems.java index 8b525b1..615b037 100644 --- a/src/main/java/lance5057/tDefense/core/CoreItems.java +++ b/src/main/java/lance5057/tDefense/core/CoreItems.java @@ -28,7 +28,7 @@ public class CoreItems extends ItemsBase { item_straps = new ItemStraps().setMaxStackSize(1).setUnlocalizedName("straps").setRegistryName(Reference.MOD_ID, "straps"); - GameRegistry.register(item_straps); + itemList.add(item_straps); } @Override diff --git a/src/main/java/lance5057/tDefense/core/blocks/TDMetalBlock.java b/src/main/java/lance5057/tDefense/core/blocks/TDMetalBlock.java index 07ad86b..7c54892 100644 --- a/src/main/java/lance5057/tDefense/core/blocks/TDMetalBlock.java +++ b/src/main/java/lance5057/tDefense/core/blocks/TDMetalBlock.java @@ -13,6 +13,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; +import net.minecraft.util.NonNullList; public class TDMetalBlock extends Block { public static final PropertyEnum METAL = PropertyEnum.create("metal", TDMetalBlock.EnumMetal.class); @@ -48,10 +49,10 @@ public class TDMetalBlock extends Block { } @Override - public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { + public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> tab) { EnumMetal[] all = EnumMetal.values(); for (EnumMetal block : all) { - list.add(new ItemStack(itemIn, 1, block.getID())); + tab.add(new ItemStack(this, 1, block.getID())); } } diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Container_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/Container_CrestMount.java deleted file mode 100644 index 91c076a..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Container_CrestMount.java +++ /dev/null @@ -1,46 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class Container_CrestMount extends Container -{ - - public Container_CrestMount(InventoryPlayer inventoryPlayer, TileEntity_CrestMount te) - { - addSlotToContainer(new Slot(te, 0, 62, 28)); - addSlotToContainer(new Slot(te, 1, 98, 28)); - addSlotToContainer(new Slot(te, 2, 80, 28)); - addSlotToContainer(new Slot(te, 3, 80, 46)); - - for(int x = 0; x < 9; x++) - { - addSlotToContainer(new Slot(inventoryPlayer, x, 8 + 18 * x, 142)); - } - - for(int y = 0; y < 3; y++) - { - for(int x = 0; x < 9; x++) - { - addSlotToContainer(new Slot(inventoryPlayer, x + y * 9 + 9, - 8 + 18 * x, 84 + y * 18)); - } - } - } - - @Override - public boolean canInteractWith(EntityPlayer player) - { - - return true; - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) - { - return null; - } -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/CrestMount.java deleted file mode 100644 index b41f9c0..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/CrestMount.java +++ /dev/null @@ -1,242 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import java.util.Random; - -import javax.annotation.Nullable; - -import lance5057.tDefense.Reference; -import lance5057.tDefense.TinkersDefense; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.BlockHorizontal; -import net.minecraft.block.ITileEntityProvider; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyDirection; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.registry.ClientRegistry; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CrestMount extends BlockContainer implements ITileEntityProvider { - - public static final PropertyDirection FACING = BlockHorizontal.FACING; - protected static final AxisAlignedBB EAST_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D); - protected static final AxisAlignedBB WEST_AABB = new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - protected static final AxisAlignedBB SOUTH_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D); - protected static final AxisAlignedBB NORTH_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D); - - public CrestMount() { - super(Material.IRON); - this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); - - this.setRegistryName("crestmount"); - this.setUnlocalizedName("crestmount"); - - GameRegistry.register(this); - GameRegistry.register(new ItemBlock(this), getRegistryName()); - GameRegistry.registerTileEntity(TileEntity_CrestMount.class, Reference.MOD_ID + "_crestmount"); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { FACING }); - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - EnumFacing enumfacing = EnumFacing.getFront(meta); - - if (enumfacing.getAxis() == EnumFacing.Axis.Y) - { - enumfacing = EnumFacing.NORTH; - } - - return this.getDefaultState().withProperty(FACING, enumfacing); - } - - @Override - public int getMetaFromState(IBlockState state) - { - return ((EnumFacing)state.getValue(FACING)).getIndex(); - } - - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { - switch ((EnumFacing) state.getValue(FACING)) { - case NORTH: - return NORTH_AABB; - case SOUTH: - return SOUTH_AABB; - case WEST: - return WEST_AABB; - case EAST: - default: - return EAST_AABB; - } - } - - @SideOnly(Side.CLIENT) - public void initModel() { - ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_CrestMount.class, new Renderer_CrestMount()); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, - EnumFacing side) { - return false; - } - - @Override - public boolean isBlockNormalCube(IBlockState blockState) { - return false; - } - - @Override - public boolean isOpaqueCube(IBlockState blockState) { - return false; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.INVISIBLE; - } - - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { - return worldIn.getBlockState(pos.west()).isSideSolid(worldIn, pos.west(), EnumFacing.EAST) - || worldIn.getBlockState(pos.east()).isSideSolid(worldIn, pos.east(), EnumFacing.WEST) - || worldIn.getBlockState(pos.north()).isSideSolid(worldIn, pos.north(), EnumFacing.SOUTH) - || worldIn.getBlockState(pos.south()).isSideSolid(worldIn, pos.south(), EnumFacing.NORTH); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, - float hitZ, int meta, EntityLivingBase placer) { - if (facing.getAxis().isHorizontal() && this.canBlockStay(worldIn, pos, facing)) { - return this.getDefaultState().withProperty(FACING, facing); - } else { - for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL) { - if (this.canBlockStay(worldIn, pos, enumfacing)) { - return this.getDefaultState().withProperty(FACING, enumfacing); - } - } - - return this.getDefaultState(); - } - } - - protected boolean canBlockStay(World worldIn, BlockPos pos, EnumFacing facing) { - return worldIn.getBlockState(pos.offset(facing.getOpposite())).isSideSolid(worldIn, - pos.offset(facing.getOpposite()), facing); - } - - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, - EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { - final TileEntity tileEntity = worldIn.getTileEntity(pos); - if (tileEntity == null || playerIn.isSneaking()) - return false; - // code to open gui explained later - playerIn.openGui(TinkersDefense.instance, TinkersDefense.GUI_CREST_INV, worldIn, 0, 0, 0); - return true; - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - dropItems(worldIn, pos); - super.breakBlock(worldIn, pos, state); - } - - private void dropItems(World world, BlockPos pos) { - final Random rand = new Random(); - - final TileEntity tileEntity = world.getTileEntity(pos); - if (!(tileEntity instanceof IInventory)) - return; - final IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) { - final ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) { - final float rx = rand.nextFloat() * 0.8F + 0.1F; - final float ry = rand.nextFloat() * 0.8F + 0.1F; - final float rz = rand.nextFloat() * 0.8F + 0.1F; - - final EntityItem entityItem = new EntityItem(world, pos.getX() + rx, pos.getY() + ry, pos.getZ() + rz, - new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - final float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntity(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World w, int md) { - final TileEntity_CrestMount te = new TileEntity_CrestMount(); - return te; - } - - // @Override - // public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState - // state, EntityLivingBase placer, ItemStack stack) - // { - // int j1 = p_149660_9_; - // - // if((p_149660_9_ == 0 || p_149660_5_ == 2) && - // p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, - // NORTH)) - // { - // j1 = 1; - // } - // - // if((j1 == 0 || p_149660_5_ == 3) && p_149660_1_.isSideSolid(p_149660_2_, - // p_149660_3_, p_149660_4_ - 1, SOUTH)) - // { - // j1 = 2; - // } - // - // if((j1 == 0 || p_149660_5_ == 4) && p_149660_1_.isSideSolid(p_149660_2_ + - // 1, p_149660_3_, p_149660_4_, WEST)) - // { - // j1 = 3; - // } - // - // if((j1 == 0 || p_149660_5_ == 5) && p_149660_1_.isSideSolid(p_149660_2_ - - // 1, p_149660_3_, p_149660_4_, EAST)) - // { - // j1 = 4; - // } - // - // return j1; - // } -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Gui_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/Gui_CrestMount.java deleted file mode 100644 index d1c0713..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Gui_CrestMount.java +++ /dev/null @@ -1,85 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import org.lwjgl.opengl.GL11; - -import lance5057.tDefense.TinkersDefense; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class Gui_CrestMount extends GuiContainer -{ - private static final ResourceLocation iconLocation = new ResourceLocation( - "tinkersdefense", - "textures/gui/crest_mount.png"); - - private final TileEntity_CrestMount inventory; - - public Gui_CrestMount(InventoryPlayer invPlayer, TileEntity_CrestMount te_crest) - { - super(new Container_CrestMount(invPlayer, te_crest)); - inventory = te_crest; - - } - - @Override - public void initGui() - { - super.initGui(); - buttonList.add(new GuiButton(1, guiLeft + 61, - guiTop + 8, 18, 18, "Flip")); - buttonList.add(new GuiButton(3, guiLeft + 79, - guiTop + 8, 18, 18, "Flip")); - buttonList.add(new GuiButton(2, guiLeft + 97, - guiTop + 8, 18, 18, "Flip")); - - buttonList.add(new GuiButton(4, guiLeft + 79, - guiTop + 63, 18, 18, "Flip")); - } - - @Override - protected void actionPerformed(GuiButton button) - { - for(int i = 1; i < 5; i++) - { - if(button.id == i) - { - if(inventory.flip[i - 1] == false) - { - inventory.flip[i - 1] = true; - } - else - { - inventory.flip[i - 1] = false; - } - - TinkersDefense.INSTANCE.sendToServer(new Message_CrestMount( - inventory.getPos(), - inventory.flip)); - } - } - } - - @Override - public void drawScreen(int par1, int par2, float par3) - { - super.drawScreen(par1, par2, par3); - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) - { - - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.getTextureManager().bindTexture(iconLocation); - final int k = (width - xSize) / 2; - final int l = (height - ySize) / 2; - drawTexturedModalRect(k, l, 0, 0, xSize, ySize); - } -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Handler_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/Handler_CrestMount.java deleted file mode 100644 index f238121..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Handler_CrestMount.java +++ /dev/null @@ -1,20 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; - -public class Handler_CrestMount implements IMessageHandler<Message_CrestMount, IMessage> -{ - @Override - public IMessage onMessage(Message_CrestMount message, MessageContext ctx) - { - final TileEntity te = ctx.getServerHandler().playerEntity.world.getTileEntity(message.pos); - if(te instanceof TileEntity_CrestMount) - { - ((TileEntity_CrestMount) te).flip = message.flip; - } - return null; - } -}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Message_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/Message_CrestMount.java deleted file mode 100644 index 12a1706..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Message_CrestMount.java +++ /dev/null @@ -1,48 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import io.netty.buffer.ByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -public class Message_CrestMount implements IMessage -{ - public BlockPos pos; - public boolean[] flip = new boolean[4]; - - public Message_CrestMount() - { - - } - - public Message_CrestMount(BlockPos pos, boolean[] flip) - { - this.pos = pos; - this.flip = flip; - //System.arraycopy(flip, 0, this.flip, 0, flip.length); - - } - - @Override - public void fromBytes(ByteBuf buf) - { - pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); - - for(int i = 0; i < flip.length; i++) - { - flip[i] = buf.readBoolean(); - } - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(pos.getX()); - buf.writeInt(pos.getY()); - buf.writeInt(pos.getZ()); - for(final boolean element : flip) - { - buf.writeBoolean(element); - } - } - -}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/ModelCrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/ModelCrestMount.java deleted file mode 100644 index 5b816ae..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/ModelCrestMount.java +++ /dev/null @@ -1,98 +0,0 @@ -// Date: 1/18/2015 9:46:49 PM -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package lance5057.tDefense.core.blocks.crestMount; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCrestMount extends ModelBase -{ - //fields - ModelRenderer ShieldMount; - ModelRenderer Base; - ModelRenderer SwordMount1; - ModelRenderer SwordMount2; - - //ModelRenderer SwordMount3; - - public ModelCrestMount() - { - textureWidth = 32; - textureHeight = 32; - - ShieldMount = new ModelRenderer(this, 20, 6); - ShieldMount.addBox(0F, 0F, 0F, 2, 7, 2); - ShieldMount.setRotationPoint(-1F, 17F, -1F); - ShieldMount.setTextureSize(32, 32); - ShieldMount.mirror = true; - setRotation(ShieldMount, 0F, 0F, 0F); - - Base = new ModelRenderer(this, 0, 6); - Base.addBox(0F, 0F, 0F, 4, 4, 4); - Base.setRotationPoint(-2F, 20F, -2F); - Base.setTextureSize(32, 32); - Base.mirror = true; - setRotation(Base, 0F, 0F, 0F); - - SwordMount1 = new ModelRenderer(this, 0, 0); - SwordMount1.addBox(-5F, 0F, -2F, 10, 2, 4); - SwordMount1.setRotationPoint(0F, 22F, 0F); - SwordMount1.setTextureSize(32, 32); - SwordMount1.mirror = true; - setRotation(SwordMount1, 0F, 0.7853982F, 0F); - - SwordMount2 = new ModelRenderer(this, 0, 0); - SwordMount2.addBox(-5F, 0F, -2F, 10, 2, 4); - SwordMount2.setRotationPoint(0F, 22F, 0F); - SwordMount2.setTextureSize(32, 32); - SwordMount2.mirror = true; - setRotation(SwordMount2, 0F, -0.7853982F, 0F); - - // SwordMount3 = new ModelRenderer(this, 0, 0); - // SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4); - // SwordMount3.setRotationPoint(0F, 21.9F, 0F); - // SwordMount3.setTextureSize(32, 32); - // SwordMount3.mirror = true; - // setRotation(SwordMount3, 0F, 1.570796F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, boolean left, boolean right, boolean shield) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - if(shield) - { - ShieldMount.render(f5); - } - if(left) - { - SwordMount1.render(f5); - } - if(right) - { - SwordMount2.render(f5); - } - - Base.render(f5); - //SwordMount3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Renderer_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/Renderer_CrestMount.java deleted file mode 100644 index d64fac3..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/Renderer_CrestMount.java +++ /dev/null @@ -1,138 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderItem; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import slimeknights.tconstruct.library.tools.ToolCore; - -public class Renderer_CrestMount extends TileEntitySpecialRenderer -{ - //private RenderItem itemRenderer; - private final ModelCrestMount model; - EntityItem entItem = null; - EntityItem entItem2 = null; - EntityItem entItem3 = null; - EntityItem entItem4 = null; - - public Renderer_CrestMount() - { - model = new ModelCrestMount(); - } - - @Override - public void renderTileEntityAt(TileEntity te, double x, double y, double z, float partialTicks, int destroyStage) - { - final TileEntity_CrestMount tileEntity = (TileEntity_CrestMount) te; - - boolean left = false, right = false, shield = false; - - if(tileEntity.getStackInSlot(1) != null) - { - right = true; - } - if(tileEntity.getStackInSlot(0) != null) - { - left = true; - } - if(tileEntity.getStackInSlot(3) != null) - { - shield = true; - } - - GL11.glPushMatrix(); - - //Render Crest Mount - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - - final ResourceLocation textures = (new ResourceLocation( - "tinkersdefense:textures/blocks/crestmount.png")); - - Minecraft.getMinecraft().renderEngine.bindTexture(textures); - - GL11.glPushMatrix(); - - final int meta = te.getBlockMetadata(); - float rotation = 0; - switch(meta) - { - case 1: - rotation = 180; - break; - case 2: - rotation = 0; - break; - case 3: - rotation = -90; - break; - case 4: - rotation = 90; - break; - } - GL11.glRotatef(rotation, 0.0F, 1.0F, 0.0F); - - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(90F, 0.5F, 0.0F, 0.0F); - GL11.glTranslatef(0, -1, -1); - - model.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F, left, right, shield); - GL11.glPopMatrix(); - - //Render Inventory - - //right slot - renderSlot(tileEntity, x, y, z, 1, rotation, tileEntity.flip[1]); - - //left slot - renderSlot(tileEntity, x, y, z, 0, rotation, tileEntity.flip[0]); - - //middle slot - renderSlot(tileEntity, x, y, z, 2, rotation, tileEntity.flip[2]); - - //shield slot - renderSlot(tileEntity, x, y, z, 3, rotation, tileEntity.flip[3]); - - GL11.glPopMatrix(); - - entItem = null; - entItem2 = null; - entItem3 = null; - entItem4 = null; - } - - private void renderSlot(TileEntity_CrestMount te, double x, double y, double z, int slot, float rotation, boolean flip) - { - if(te.getStackInSlot(slot) != null) - { - GL11.glPushMatrix(); - - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - - GL11.glScalef(2f, 2f, 2f); - GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(rotation, 0.0F, 1.0F, 0.0F); - - if(te.flip[3] == true) - { - GL11.glRotatef(180, 0, 0, 1); - GL11.glTranslatef(0.0f, 1.0f, 0); - } - - Minecraft.getMinecraft().getRenderItem().renderItem(te.getStackInSlot(slot), - ItemCameraTransforms.TransformType.NONE); - - GL11.glPopMatrix(); - } - } - -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/crestMount/TileEntity_CrestMount.java b/src/main/java/lance5057/tDefense/core/blocks/crestMount/TileEntity_CrestMount.java deleted file mode 100644 index 6f63a66..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/crestMount/TileEntity_CrestMount.java +++ /dev/null @@ -1,236 +0,0 @@ -package lance5057.tDefense.core.blocks.crestMount; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.Constants; - -public class TileEntity_CrestMount extends TileEntity implements IInventory -{ - public static int invSize = 4; - public ItemStack[] inventory; - public boolean[] flip; - - private final String name = "Crest Inventory"; - - public TileEntity_CrestMount() - { - super(); - inventory = new ItemStack[invSize]; - flip = new boolean[4]; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - final NBTTagCompound tag = new NBTTagCompound(); - writeToNBT(tag); - return new SPacketUpdateTileEntity(getPos(), 1, tag); - } - - @Override - public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity packet) - { - readFromNBT(packet.getNbtCompound()); - } - - @Override - public int getSizeInventory() - { - return invSize; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inventory[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amount) - { - ItemStack stack = getStackInSlot(slot); - if(stack != null) - { - if(stack.stackSize > amount) - { - stack = stack.splitStack(amount); - - if(stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - else - { - setInventorySlotContents(slot, null); - } - - markDirty(); - } - return stack; - - } - -// @Override -// public ItemStack getStackInSlotOnClosing(int slot) -// { -// final ItemStack stack = getStackInSlot(slot); -// -// if(stack != null) -// { -// setInventorySlotContents(slot, stack); -// } -// return stack; -// } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemstack) - { - inventory[slot] = itemstack; - - if(itemstack != null && itemstack.stackSize > getInventoryStackLimit()) - { - itemstack.stackSize = getInventoryStackLimit(); - } - - markDirty(); - } - - @Override - public String getName() - { - return name; - } - - @Override - public boolean hasCustomName() - { - return name.length() > 0; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - return true; - } - - @Override - public void openInventory(EntityPlayer player) - { - - } - - @Override - public void closeInventory(EntityPlayer player) - { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) - { - return true; - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - if(flip != null) - { - compound.setBoolean("flip_1", flip[0]); - compound.setBoolean("flip_2", flip[1]); - compound.setBoolean("flip_3", flip[2]); - compound.setBoolean("flip_4", flip[3]); - } - - writeInventoryToNBT(compound); - return compound; - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - flip[0] = compound.getBoolean("flip_1"); - flip[1] = compound.getBoolean("flip_2"); - flip[2] = compound.getBoolean("flip_3"); - flip[3] = compound.getBoolean("flip_4"); - - readInventoryFromNBT(compound); - } - - public void readInventoryFromNBT(NBTTagCompound tags) - { - final NBTTagList nbttaglist = tags.getTagList("Items", Constants.NBT.TAG_COMPOUND); - for(int iter = 0; iter < nbttaglist.tagCount(); iter++) - { - final NBTTagCompound tagList = nbttaglist.getCompoundTagAt(iter); - final byte slotID = tagList.getByte("Slot"); - if(slotID >= 0 && slotID < inventory.length) - { - inventory[slotID] = ItemStack.loadItemStackFromNBT(tagList); - } - } - } - - public void writeInventoryToNBT(NBTTagCompound tags) - { - final NBTTagList nbttaglist = new NBTTagList(); - for(int iter = 0; iter < inventory.length; iter++) - { - if(inventory[iter] != null) - { - final NBTTagCompound tagList = new NBTTagCompound(); - tagList.setByte("Slot", (byte) iter); - inventory[iter].writeToNBT(tagList); - nbttaglist.appendTag(tagList); - } - } - - tags.setTag("Items", nbttaglist); - } - - @Override - public ItemStack removeStackFromSlot(int index) { - // TODO Auto-generated method stub - return this.getStackInSlot(index); - } - - @Override - public int getField(int id) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setField(int id, int value) { - // TODO Auto-generated method stub - - } - - @Override - public int getFieldCount() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void clear() { - // TODO Auto-generated method stub - - } -} diff --git a/src/main/java/lance5057/tDefense/core/blocks/fluid/VibrantFluid.java b/src/main/java/lance5057/tDefense/core/blocks/fluid/VibrantFluid.java index daea94a..6699538 100644 --- a/src/main/java/lance5057/tDefense/core/blocks/fluid/VibrantFluid.java +++ b/src/main/java/lance5057/tDefense/core/blocks/fluid/VibrantFluid.java @@ -24,8 +24,8 @@ public class VibrantFluid extends BlockFluidClassic { } @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn) { - super.neighborChanged(state, worldIn, pos, blockIn); + public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos npos) { + super.neighborChanged(state, worldIn, pos, blockIn, npos); dirtToGrass(state, worldIn, pos); } diff --git a/src/main/java/lance5057/tDefense/core/blocks/fluid/VileFluid.java b/src/main/java/lance5057/tDefense/core/blocks/fluid/VileFluid.java index 9a6fe88..ae0c2b2 100644 --- a/src/main/java/lance5057/tDefense/core/blocks/fluid/VileFluid.java +++ b/src/main/java/lance5057/tDefense/core/blocks/fluid/VileFluid.java @@ -3,14 +3,15 @@ package lance5057.tDefense.core.blocks.fluid; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; +import net.minecraft.entity.monster.EntityHusk; import net.minecraft.entity.monster.EntityPigZombie; import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntityWitherSkeleton; import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.monster.SkeletonType; -import net.minecraft.entity.monster.ZombieType; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.passive.EntityPig; -import net.minecraft.entity.passive.HorseType; +import net.minecraft.entity.passive.EntitySkeletonHorse; +import net.minecraft.entity.passive.EntityZombieHorse; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.BlockFluidClassic; @@ -25,19 +26,28 @@ public class VileFluid extends BlockFluidClassic { @Override public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) { if (entity instanceof EntitySkeleton) { - ((EntitySkeleton) entity).setSkeletonType(SkeletonType.WITHER); + EntityWitherSkeleton wither = new EntityWitherSkeleton(world); + wither.setPosition(entity.posX, entity.posY, entity.posZ); + world.spawnEntity(wither); + entity.setDead(); } if (entity instanceof EntityZombie) { - ((EntityZombie) entity).setZombieType(ZombieType.HUSK); + EntityHusk husk = new EntityHusk(world); + husk.setPosition(entity.posX, entity.posY, entity.posZ); + world.spawnEntity(husk); + entity.setDead(); } if (entity instanceof EntityHorse) { - if (((EntityHorse) entity).getType() != HorseType.SKELETON - && ((EntityHorse) entity).getType() != HorseType.ZOMBIE) - { - if (world.rand.nextInt(2) == 0) - ((EntityHorse) entity).setType(HorseType.SKELETON); - else - ((EntityHorse) entity).setType(HorseType.ZOMBIE); + if (world.rand.nextInt(2) == 0) { + EntitySkeletonHorse horse = new EntitySkeletonHorse(world); + horse.setPosition(entity.posX, entity.posY, entity.posZ); + world.spawnEntity(horse); + entity.setDead(); + } else { + EntityZombieHorse horse = new EntityZombieHorse(world); + horse.setPosition(entity.posX, entity.posY, entity.posZ); + world.spawnEntity(horse); + entity.setDead(); } } if (entity instanceof EntityPig) { diff --git a/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java b/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java index 94febcb..9934d1d 100644 --- a/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java +++ b/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java @@ -1,18 +1,31 @@ package lance5057.tDefense.core.items; +import java.util.ArrayList; +import java.util.List; + import lance5057.tDefense.core.CoreBase; +import lance5057.tDefense.util.TDMatHelper; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class TDOreDictItem extends Item { String prefix; + + public List<String> mats = new ArrayList<String>(); - public TDOreDictItem(String pre, String name) { - setUnlocalizedName(pre + "_" + name); - setRegistryName(pre + "_" + name); + public TDOreDictItem(String pre, List<String> materials_master) { + setUnlocalizedName(pre + "_meta"); + setRegistryName(pre + "_meta"); prefix = pre; + mats = materials_master; this.setCreativeTab(CoreBase.tab); + this.hasSubtypes = true; } - + public boolean isOreDict() { return true; } @@ -20,4 +33,24 @@ public class TDOreDictItem extends Item { public String getOreDictPrefix() { return prefix; } + + @SideOnly(Side.CLIENT) + @Override + public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) { + for (int i = 0; i < mats.size(); i++) { + items.add(new ItemStack(this, 1, i)); + } + } + + public ItemStack getItembyName(String name) + { + for(int i = 0; i < mats.size(); i++) + { + if(mats.get(i).equals(name)) + { + return new ItemStack(this, 1, i); + } + } + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java b/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java index 8121edb..34edd07 100644 --- a/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java +++ b/src/main/java/lance5057/tDefense/core/materials/TDMaterials.java @@ -1,6 +1,9 @@ package lance5057.tDefense.core.materials; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; @@ -12,31 +15,29 @@ import gnu.trove.set.hash.THashSet; import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.materials.MaterialCloth; -import lance5057.tDefense.core.CoreBase; -import lance5057.tDefense.core.blocks.fluid.VibrantFluid; -import lance5057.tDefense.core.blocks.fluid.VileFluid; import lance5057.tDefense.core.items.TDOreDictItem; import lance5057.tDefense.core.materials.traits.TraitAxeLover; import lance5057.tDefense.core.materials.traits.TraitBarbed; import lance5057.tDefense.core.materials.traits.TraitDogToy; import lance5057.tDefense.core.materials.traits.TraitDulling; import lance5057.tDefense.core.materials.traits.TraitFirestarter; +import lance5057.tDefense.util.TDMatHelper; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.registries.IForgeRegistry; import slimeknights.tconstruct.library.MaterialIntegration; import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.fluid.FluidMolten; -import slimeknights.tconstruct.library.materials.BowMaterialStats; import slimeknights.tconstruct.library.materials.ExtraMaterialStats; import slimeknights.tconstruct.library.materials.HandleMaterialStats; import slimeknights.tconstruct.library.materials.HeadMaterialStats; @@ -49,6 +50,7 @@ import slimeknights.tconstruct.shared.TinkerFluids; import slimeknights.tconstruct.smeltery.block.BlockMolten; import slimeknights.tconstruct.tools.TinkerMaterials; +@Mod.EventBusSubscriber(modid = Reference.MOD_ID) public class TDMaterials { // public static final List<Material> materials = Lists.newArrayList(); @@ -59,9 +61,8 @@ public class TDMaterials { public static final Map<String, MaterialIntegration> materialIntegrations = new THashMap<>(); public static final Collection<String> deferredMaterials = new THashSet<>(); - // public static final Material aeonsteel = mat("aeonsteel", 0xd200d1); - // public static final Material queensgold = mat("queensgold", 0xdede00); - // public static final Material dogbearium = mat("dogbearium", 0x604933); + public static final Map<String, Integer> colors = new THashMap(); + public static final Map<String, FluidMolten> fluids = new THashMap(); public static Material black; public static Material red; @@ -80,88 +81,121 @@ public class TDMaterials { public static Material orange; public static Material white; - public static FluidMolten fluidAeonsteel = new FluidMolten("aeonsteel", 0xa470e0); - public static FluidMolten fluidQueensGold = new FluidMolten("queensgold", 0xdcff00); - public static FluidMolten fluidDogbearium = new FluidMolten("dogbearium", 0x6d3300); - public static FluidMolten fluidRedCandy = new FluidMolten("redcandy", 0xff0000); - public static FluidMolten fluidGreenCandy = new FluidMolten("greencandy", 0x00ff00); + // public static FluidMolten fluidAeonsteel = new FluidMolten("aeonsteel", + // 0xa470e0); + // public static FluidMolten fluidQueensGold = new FluidMolten("queensgold", + // 0xdcff00); + // public static FluidMolten fluidDogbearium = new FluidMolten("dogbearium", + // 0x6d3300); + // public static FluidMolten fluidRedCandy = new FluidMolten("redcandy", + // 0xff0000); + // public static FluidMolten fluidGreenCandy = new FluidMolten("greencandy", + // 0x00ff00); public static FluidMolten fluidVile = new FluidMolten("vile", 0x111111); - public static FluidMolten fluidSinisterium = new FluidMolten("sinisterium", 0x210000); - //public static FluidMolten fluidNihilite = new FluidMolten("nihilite", 0x000021); + // public static FluidMolten fluidSinisterium = new + // FluidMolten("sinisterium", 0x210000); + // public static FluidMolten fluidNihilite = new FluidMolten("nihilite", + // 0x000021); public static FluidMolten fluidVibrant = new FluidMolten("vibrant", 0x76ff00); - public static FluidMolten fluidOrichalcum = new FluidMolten("orichalcum", 0xffc700); - public static FluidMolten fluidPandorium = new FluidMolten("pandorium", 0x7f6a00); - public static FluidMolten fluidChorusJuice = new FluidMolten("chorusjuice", 0xd982ff); - public static FluidMolten fluidDragonsBreath = new FluidMolten("dragonsbreath", 0x7f00b7); - public static FluidMolten fluidRoseGold = new FluidMolten("rosegold", 0xff9b84); - public static FluidMolten fluidPlatinum = new FluidMolten("platinum", 0xe8e8e8); - public static FluidMolten fluidBrass = new FluidMolten("brass", 0xdbb332); - public static FluidMolten fluidSilver = new FluidMolten("silver", 0x9e9e9e); - public static FluidMolten fluidCheese = new FluidMolten("cheese", 0xffe731); + // public static FluidMolten fluidOrichalcum = new FluidMolten("orichalcum", + // 0xffc700); + // public static FluidMolten fluidPandorium = new FluidMolten("pandorium", + // 0x7f6a00); + // public static FluidMolten fluidChorusJuice = new + // FluidMolten("chorusjuice", 0xd982ff); + // public static FluidMolten fluidDragonsBreath = new + // FluidMolten("dragonsbreath", 0x7f00b7); + // public static FluidMolten fluidRoseGold = new FluidMolten("rosegold", + // 0xff9b84); + // public static FluidMolten fluidPlatinum = new FluidMolten("platinum", + // 0xe8e8e8); + // public static FluidMolten fluidBrass = new FluidMolten("brass", + // 0xdbb332); + // public static FluidMolten fluidSilver = new FluidMolten("silver", + // 0x9e9e9e); + // public static FluidMolten fluidCheese = new FluidMolten("cheese", + // 0xffe731); // public static FluidMolten fluidGold = new FluidMolten("gold", 0xffe330); - public static TDOreDictItem ingotAeonsteel = new TDOreDictItem("ingot", "aeonsteel"); - public static TDOreDictItem ingotQueensGold = new TDOreDictItem("ingot", "queensgold"); - public static TDOreDictItem ingotDogbearium = new TDOreDictItem("ingot", "dogbearium"); - public static TDOreDictItem ingotRedCandy = new TDOreDictItem("ingot", "redcandy"); - public static TDOreDictItem ingotGreenCandy = new TDOreDictItem("ingot", "greencandy"); - public static TDOreDictItem ingotSinisterium = new TDOreDictItem("ingot", "sinisterium"); - public static TDOreDictItem ingotNihilite = new TDOreDictItem("ingot", "nihilite"); - public static TDOreDictItem ingotOrichalcum = new TDOreDictItem("ingot", "orichalcum"); - public static TDOreDictItem ingotPandorium = new TDOreDictItem("ingot", "pandorium"); - public static TDOreDictItem ingotRoseGold = new TDOreDictItem("ingot", "rosegold"); - public static TDOreDictItem ingotPlatinum = new TDOreDictItem("ingot", "platinum"); - public static TDOreDictItem ingotBrass = new TDOreDictItem("ingot", "brass"); - public static TDOreDictItem ingotSilver = new TDOreDictItem("ingot", "silver"); - public static TDOreDictItem ingotCheese = new TDOreDictItem("ingot", "cheese"); - - public static TDOreDictItem nuggetAeonsteel = new TDOreDictItem("nugget", "aeonsteel"); - public static TDOreDictItem nuggetQueensGold = new TDOreDictItem("nugget", "queensgold"); - public static TDOreDictItem nuggetDogbearium = new TDOreDictItem("nugget", "dogbearium"); - public static TDOreDictItem nuggetRedCandy = new TDOreDictItem("nugget", "redcandy"); - public static TDOreDictItem nuggetGreenCandy = new TDOreDictItem("nugget", "greencandy"); - public static TDOreDictItem nuggetSinisterium = new TDOreDictItem("nugget", "sinisterium"); - public static TDOreDictItem nuggetNihilite = new TDOreDictItem("nugget", "nihilite"); - public static TDOreDictItem nuggetOrichalcum = new TDOreDictItem("nugget", "orichalcum"); - public static TDOreDictItem nuggetPandorium = new TDOreDictItem("nugget", "pandorium"); - public static TDOreDictItem nuggetRoseGold = new TDOreDictItem("nugget", "rosegold"); - public static TDOreDictItem nuggetPlatinum = new TDOreDictItem("nugget", "platinum"); - public static TDOreDictItem nuggetBrass = new TDOreDictItem("nugget", "brass"); - public static TDOreDictItem nuggetSilver = new TDOreDictItem("nugget", "silver"); - public static TDOreDictItem nuggetCheese = new TDOreDictItem("nugget", "cheese"); - - public static TDOreDictItem dustAeonsteel = new TDOreDictItem("dust", "aeonsteel"); - public static TDOreDictItem dustQueensGold = new TDOreDictItem("dust", "queensgold"); - public static TDOreDictItem dustDogbearium = new TDOreDictItem("dust", "dogbearium"); - public static TDOreDictItem dustRedCandy = new TDOreDictItem("dust", "redcandy"); - public static TDOreDictItem dustGreenCandy = new TDOreDictItem("dust", "greencandy"); - public static TDOreDictItem dustSinisterium = new TDOreDictItem("dust", "sinisterium"); - public static TDOreDictItem dustNihilite = new TDOreDictItem("dust", "nihilite"); - public static TDOreDictItem dustOrichalcum = new TDOreDictItem("dust", "orichalcum"); - public static TDOreDictItem dustPandorium = new TDOreDictItem("dust", "pandorium"); - public static TDOreDictItem dustRoseGold = new TDOreDictItem("dust", "rosegold"); - public static TDOreDictItem dustPlatinum = new TDOreDictItem("dust", "platinum"); - public static TDOreDictItem dustBrass = new TDOreDictItem("dust", "brass"); - public static TDOreDictItem dustSilver = new TDOreDictItem("dust", "silver"); - public static TDOreDictItem dustCheese = new TDOreDictItem("dust", "cheese"); - public static TDOreDictItem dustGold = new TDOreDictItem("dust", "gold"); - - public static Material matAeonsteel = new Material("aeonsteel", 0xa470e0); - public static Material matQueensGold = new Material("queensgold", 0xdcff00); - public static Material matDogbearium = new Material("dogbearium", 0x6d3300); - public static Material matRedCandy = new Material("redcandy", 0xff0000); - public static Material matGreenCandy = new Material("greencandy", 0x00ff00); - public static Material matSinisterium = new Material("sinisterium", 0x210000); - public static Material matNihilite = new Material("nihilite", 0x000021); - public static Material matVibrant = new Material("vibrant", 0x76ff00); - public static Material matOrichalcum = new Material("orichalcum", 0xffc700); - public static Material matPandorium = new Material("pandorium", 0x7f6a00); - public static Material matRoseGold = new Material("rosegold", 0xff9b84); - public static Material matPlatinum = new Material("platinum", 0xe8e8e8); - public static Material matBrass = new Material("brass", 0xdbb332); - public static Material matSilver = new Material("silver", 0x9e9e9e); - public static Material matCheese = new Material("cheese", 0xffe731); - public static Material matGold = new Material("gold", 0xffe330); + List<TDMatHelper> materials_master = new ArrayList<>(); + + // Base + List<TDMatHelper> materials_base = new ArrayList<>(Arrays.asList( + new TDMatHelper("aeonsteel", 0xa470e0, new FluidMolten("aeonsteel", 0xa470e0)) + .setHead(new HeadMaterialStats(500, 15.00f, 4.0f, HarvestLevels.COBALT)) + .setHandle(new HandleMaterialStats(1.1f, 0)).setExtra(new ExtraMaterialStats(50)), + new TDMatHelper("queensgold", 0xdcff00, new FluidMolten("queensgold", 0xdcff00)), + new TDMatHelper("dogbearium", 0x6d3300, new FluidMolten("dogbearium", 0x6d3300)), + new TDMatHelper("sinisterium", 0x210000, new FluidMolten("sinisterium", 0x210000)), + new TDMatHelper("nihilite", 0x000021, new FluidMolten("nihilite", 0x000021)), + new TDMatHelper("orichalcum", 0xffc700, new FluidMolten("orichalcum", 0xffc700)), + new TDMatHelper("pandorium", 0x7f6a00, new FluidMolten("pandorium", 0x7f6a00)), + new TDMatHelper("rosegold", 0xff9b84, new FluidMolten("rosegold", 0xff9b84)), + new TDMatHelper("platinum", 0xe8e8e8, new FluidMolten("platinum", 0xe8e8e8)), + new TDMatHelper("brass", 0xdbb332, new FluidMolten("brass", 0xdbb332)), + // new TDMatHelper("silver", 0x9e9e9e, new FluidMolten("silver", + // 0x9e9e9e)), + new TDMatHelper("valyriansteel", 0xe2d9e2, new FluidMolten("valyriansteel", 0xe2d9e2)), + new TDMatHelper("froststeel", 0xc6dcff, new FluidMolten("froststeel", 0xc6dcff)), + new TDMatHelper("resonatingcrystal", 0xffffff, new FluidMolten("resonatingcrystal", 0xffffff)), + new TDMatHelper("pureardite", 0xff4300, new FluidMolten("pureardite", 0xff4300)), + new TDMatHelper("purecobalt", 0x547eff, new FluidMolten("purecobalt", 0x547eff)), + new TDMatHelper("puremanyullyn", 0xd044ff, new FluidMolten("puremanyullyn", 0xd044ff)), + new TDMatHelper("glass", 0xffffff, TinkerFluids.glass), + // new TDMatHelper("ice", 0xdcff00, new FluidMolten("queensgold", + // 0xdcff00)), + new TDMatHelper("purifiedgold", 0xffe242, new FluidMolten("purifiedgold", 0xffe242)), + new TDMatHelper("purifiedsilver", 0xefefef, new FluidMolten("purifiedsilver", 0xefefef)))); + + // Jokes + List<TDMatHelper> materials_joke = new ArrayList<>( + Arrays.asList(new TDMatHelper("cheese", 0xffe900, new FluidMolten("cheese", 0xffe900)), + new TDMatHelper("bread", 0x89732a), new TDMatHelper("melon", 0xff77a4))); + + // Holiday + List<TDMatHelper> materials_xmas = new ArrayList<>( + Arrays.asList(new TDMatHelper("redcandy", 0xff0000), new TDMatHelper("greencandy", 0x00ff00))); + + // Gems + List<TDMatHelper> materials_gems = new ArrayList<>( + Arrays.asList(new TDMatHelper("sapphire", 0x6e00ff), + new TDMatHelper("ruby", 0xff0061, true), + new TDMatHelper("emerald", 0x16cc4f, true), + new TDMatHelper("diamond", 0x96ecf2, true), + new TDMatHelper("starsapphire", 0x6e00ff, true), + new TDMatHelper("starruby", 0xff0061, true), + new TDMatHelper("citrine", 0xffe877, true), + new TDMatHelper("ghasttear", 0xe8fbff, true), + new TDMatHelper("quartz", 0xede8e8, true), + new TDMatHelper("glowstonecrystal", 0xfff956, true), + new TDMatHelper("enderpearl", 0x2bad3a, true), + new TDMatHelper("amethyst", 0xb436e2, true), + new TDMatHelper("lapis", 0x4349bc, true), + new TDMatHelper("topaz", 0xffc551, true), + new TDMatHelper("garnet", 0x9e1c1c, true), + new TDMatHelper("opal", 0xe2e2e2, true), + new TDMatHelper("tanzanite", 0x8860e5, true), + new TDMatHelper("amber", 0xdba827, true))); + + // // Blood Magic + // List<String> materials_bm = new ArrayList<>( + // Arrays.asList("blankslate", "reinforcedslate", "imbued", "demonic", + // "ethereal")); + // + // // Twilight Forest + // List<String> materials_tf = new ArrayList<>(Arrays.asList("rainbowoak", + // "ravenfeather", "horn", "ironwood", + // "steelleaf", "nagascale", "fiery", "caminite", "knightmetal")); + // + // // Pam's Harvestcraft + // List<String> materials_pam = new + // ArrayList<>(Arrays.asList("hardenedleather")); + + public static TDOreDictItem ingot; + public static TDOreDictItem dust; + public static TDOreDictItem nugget; + public static TDOreDictItem grain; + public static TDOreDictItem gem; public static final AbstractTrait axelover = new TraitAxeLover(); public static final AbstractTrait dulling = new TraitDulling(); @@ -169,14 +203,80 @@ public class TDMaterials { public static final AbstractTrait barbed = new TraitBarbed(); public static final AbstractTrait dogtoy = new TraitDogToy(); + static ArrayList<Item> itemList = new ArrayList<Item>(); + static ArrayList<Block> blockList = new ArrayList<Block>(); + private static Material mat(String name, int color) { Material mat = new Material(name, color); // materials.add(mat); return mat; } + List<String> getMatNames(List<TDMatHelper> mats) { + List<String> r = new ArrayList<String>(); + + for (TDMatHelper m : mats) { + r.add(m.name); + } + + return r; + } + + List<Integer> getMatColors(List<TDMatHelper> mats) { + List<Integer> r = new ArrayList<Integer>(); + + for (TDMatHelper m : mats) { + r.add(m.color); + } + + return r; + } + + List<FluidMolten> getMatFluids(List<TDMatHelper> mats) { + List<FluidMolten> r = new ArrayList<FluidMolten>(); + + for (TDMatHelper m : mats) { + r.add(m.fluid); + } + + return r; + } + @Subscribe public void preInit(FMLPreInitializationEvent event) { + + if (TinkersDefense.config.materials.enableBaseMaterials) + this.materials_master.addAll(materials_base); + if (TinkersDefense.config.materials.enableJokeMaterials) + this.materials_master.addAll(this.materials_joke); + if (TinkersDefense.config.materials.enableHolidayMaterials) + this.materials_master.addAll(materials_xmas); + if (TinkersDefense.config.materials.enableGemMaterials) + this.materials_master.addAll(materials_gems); + // if (TinkersDefense.config.materials.enableTwilightForestMaterials) + // this.materials_master.addAll(materials_tf); + // if (TinkersDefense.config.materials.enableBloodMagicMaterials) + // this.materials_master.addAll(materials_bm); + // if (TinkersDefense.config.materials.enableHarvestCraftMaterials) + // this.materials_master.addAll(materials_pam); + + nugget = new TDOreDictItem("nugget", getMatNames(materials_master)); + dust = new TDOreDictItem("dust", getMatNames(materials_master)); + grain = new TDOreDictItem("grain", getMatNames(materials_master)); + + List<TDMatHelper> gemMaster = new ArrayList<TDMatHelper>(); + List<TDMatHelper> ingotMaster = new ArrayList<TDMatHelper>(); + + for (TDMatHelper i : materials_master) { + if (i.isGem) + gemMaster.add(i); + else + ingotMaster.add(i); + } + + gem = new TDOreDictItem("gem", getMatNames(gemMaster)); + ingot = new TDOreDictItem("ingot", getMatNames(ingotMaster)); + Material.UNKNOWN.addStats(new ShieldMaterialStats(35, 33)); // TinkerRegistry.addMaterialStats(Material.UNKNOWN, @@ -197,10 +297,10 @@ public class TDMaterials { TinkerRegistry.addMaterialStats(TinkerMaterials.cactus, new ShieldMaterialStats(210, 33)); TinkerRegistry.addMaterialTrait(TinkerMaterials.cactus, barbed, SHIELD); - + TinkerRegistry.addMaterialStats(TinkerMaterials.bone, new ShieldMaterialStats(200, 33)); TinkerRegistry.addMaterialTrait(TinkerMaterials.bone, dogtoy, SHIELD); - + TinkerRegistry.addMaterialStats(TinkerMaterials.obsidian, new ShieldMaterialStats(139, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.prismarine, new ShieldMaterialStats(430, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.endstone, new ShieldMaterialStats(420, 33)); @@ -236,162 +336,156 @@ public class TDMaterials { TinkerRegistry.addMaterialStats(TinkerMaterials.electrum, new ShieldMaterialStats(50, 33)); TinkerRegistry.addMaterialStats(TinkerMaterials.steel, new ShieldMaterialStats(540, 33)); - - //TinkerRegistry.addMaterialStats(matAeonsteel, new ShieldMaterialStats(540, 33)); - - registerClothMaterials(); - - addMat("aeonsteel", fluidAeonsteel, nuggetAeonsteel, ingotAeonsteel, dustAeonsteel); - addMat("queensgold", fluidQueensGold, nuggetQueensGold, ingotQueensGold, dustQueensGold); - addMat("dogbearium", fluidDogbearium, nuggetDogbearium, ingotDogbearium, dustDogbearium); - addMat("redcandy", fluidRedCandy, nuggetRedCandy, ingotRedCandy, dustRedCandy); - addMat("greencandy", fluidGreenCandy, nuggetGreenCandy, ingotGreenCandy, dustGreenCandy); - addMat("sinisterium", fluidSinisterium, nuggetSinisterium, ingotSinisterium, dustSinisterium); - //addMat("nihilite", fluidNihilite, nuggetNihilite, ingotNihilite, dustNihilite); - - addMat("orichalcum", fluidOrichalcum, nuggetOrichalcum, ingotOrichalcum, dustOrichalcum); - addMat("pandorium", fluidPandorium, nuggetPandorium, ingotPandorium, dustPandorium); - - addMat("rosegold", fluidRoseGold, nuggetRoseGold, ingotRoseGold, dustRoseGold); - addMat("platinum", fluidPlatinum, nuggetPlatinum, ingotPlatinum, dustPlatinum); - addMat("brass", fluidBrass, nuggetBrass, ingotBrass, dustBrass); - addMat("silver", fluidSilver, nuggetSilver, ingotSilver, dustSilver); + for (TDMatHelper m : materials_master) { + createMaterial(m); + } - addMat("cheese", fluidCheese, nuggetCheese, ingotCheese, dustCheese); + // TAIGA TEST + // Collection<Material> mats = TinkerRegistry.getAllMaterials(); + for (Material i : TinkerRegistry.getAllMaterials()) { + if (!i.hasStats(SHIELD)) { + if (i.hasStats(MaterialTypes.HEAD)) { + int dur = ((HeadMaterialStats) i.getStats(MaterialTypes.HEAD)).durability; + i.addStats(new ShieldMaterialStats(dur, 33)); + } + } + } - addMat("chorusjuice", fluidChorusJuice); - addMat("dragonsbreath", fluidDragonsBreath); + registerClothMaterials(); + createFluid("vibrant", fluidVibrant); FluidRegistry.registerFluid(fluidVibrant); FluidRegistry.addBucketForFluid(fluidVibrant); - addMat("vibrantfluid", fluidVibrant, new VibrantFluid(fluidVibrant)); + createFluid("vile", fluidVile); FluidRegistry.registerFluid(fluidVile); FluidRegistry.addBucketForFluid(fluidVile); - addMat("vilefluid", fluidVile, new VileFluid(fluidVile)); - - registerMaterials(); - //integrate(materials, materialIntegrations, deferredMaterials); + // integrate(materials, materialIntegrations, deferredMaterials); } - @Subscribe - public void init(FMLInitializationEvent event) { - - // registerMaterials(); - // TinkerRegistry.addMaterialStats(aeonsteel, new - // HeadMaterialStats(1000, 4.0f, 3.00f, COBALT), - // new HandleMaterialStats(1.10f, 200), new ExtraMaterialStats(500)); - // iron.addItemIngot("ingotIron"); - // iron.setRepresentativeItem(Items.field_151042_j); - // iron.addTrait(magnetic2, HEAD); - // iron.addTrait(magnetic); - - // TinkerMaterials.stone.addTrait(TinkerMaterials.cheapskate, - // ShieldMaterialStats.TYPE); + void createMaterial(TDMatHelper tdmat) { + Material mat = new Material(tdmat.name, tdmat.color); - // TAIGA TEST - Collection<Material> mats = TinkerRegistry.getAllMaterials(); - for (Material i : mats) { - if (!i.hasStats(SHIELD)) { - if (i.hasStats(MaterialTypes.HEAD)) { - int dur = ((HeadMaterialStats) i.getStats(MaterialTypes.HEAD)).durability; - i.addStats(new ShieldMaterialStats(dur, 33)); - } - } + if(tdmat.isGem) + { + mat.addItem("gem" + tdmat.name.substring(0, 1).toUpperCase() + tdmat.name.substring(1)); + mat.addItem(gem.getItembyName(tdmat.name), 1, Material.VALUE_Ingot); + } + else + mat.addItem("ingot" + tdmat.name.substring(0, 1).toUpperCase() + tdmat.name.substring(1)); + mat.addItem("nugget" + tdmat.name.substring(0, 1).toUpperCase() + tdmat.name.substring(1)); + mat.addItem("dust" + tdmat.name.substring(0, 1).toUpperCase() + tdmat.name.substring(1)); + mat.addItem("grain" + tdmat.name.substring(0, 1).toUpperCase() + tdmat.name.substring(1)); + + if(tdmat.isGem) + mat.setCraftable(true).setCastable(false); + else + mat.setCraftable(false).setCastable(true); + TinkersDefense.proxy.registerMatColor(mat, tdmat.color); + + if (tdmat.fluid != null) { + createFluid(tdmat.name, tdmat.fluid); + tdmat.fluid.setTemperature(800); + mat.setFluid(tdmat.fluid); } - } - void addMat(String name, FluidMolten fluid) { - FluidRegistry.registerFluid(fluid); - FluidRegistry.addBucketForFluid(fluid); + ItemStack i; + if(tdmat.isGem) + i = gem.getItembyName(tdmat.name); + else + i = ingot.getItembyName(tdmat.name); + mat.setRepresentativeItem(i); - createFluid(name, fluid); - } + setStats(mat, tdmat); + materials.put(tdmat.name, mat); - void addMat(String name, FluidMolten fluid, Item nugget, Item ingot, Item dust) { - FluidRegistry.registerFluid(fluid); - FluidRegistry.addBucketForFluid(fluid); + if (tdmat.fluid != null) + TinkerRegistry.integrate(new MaterialIntegration(mat, tdmat.fluid).toolforge()).preInit(); + else + TinkerRegistry.integrate(new MaterialIntegration(mat).toolforge()).preInit(); + } - createFluid(name, fluid); - createItems(name, nugget, ingot, dust); + void setStats(Material m, TDMatHelper tdm) { + if (tdm.head != null) + TinkerRegistry.addMaterialStats(m, tdm.head); + else + TinkerRegistry.addMaterialStats(m, new HeadMaterialStats(0,0,0,0)); + if (tdm.handle != null) + TinkerRegistry.addMaterialStats(m, tdm.handle); + else + TinkerRegistry.addMaterialStats(m, new HandleMaterialStats(0,0)); + if (tdm.extra != null) + TinkerRegistry.addMaterialStats(m, tdm.extra); + else + TinkerRegistry.addMaterialStats(m, new ExtraMaterialStats(0)); + if (tdm.bow != null) + TinkerRegistry.addMaterialStats(m, tdm.bow); + if (tdm.shaft != null) + TinkerRegistry.addMaterialStats(m, tdm.shaft); + if (tdm.bowstring != null) + TinkerRegistry.addMaterialStats(m, tdm.bowstring); + if (tdm.shield != null) + TinkerRegistry.addMaterialStats(m, tdm.shield); } - void addMat(String name, FluidMolten fluid, Block fluidBlock) { + public void registerItems(final RegistryEvent.Register<Item> event) { + final IForgeRegistry registry = event.getRegistry(); - createFluid(name, fluid, fluidBlock); + registry.register(ingot); + registry.register(dust); + registry.register(nugget); + registry.register(grain); + registry.register(gem); } - void addMat(String name, FluidMolten fluid, Block fluidBlock, Item nugget, Item ingot, Item dust) { + @Subscribe + public void init(FMLInitializationEvent event) { + for (int i = 0; i < ingot.mats.size(); i++) + OreDictionary.registerOre( + "ingot" + ingot.mats.get(i).substring(0, 1).toUpperCase() + ingot.mats.get(i).substring(1), + new ItemStack(ingot, 1, i)); + for (int i = 0; i < nugget.mats.size(); i++) + OreDictionary.registerOre( + "nugget" + nugget.mats.get(i).substring(0, 1).toUpperCase() + nugget.mats.get(i).substring(1), + new ItemStack(nugget, 1, i)); + for (int i = 0; i < dust.mats.size(); i++) + OreDictionary.registerOre( + "dust" + dust.mats.get(i).substring(0, 1).toUpperCase() + dust.mats.get(i).substring(1), + new ItemStack(dust, 1, i)); + for (int i = 0; i < grain.mats.size(); i++) + OreDictionary.registerOre( + "grain" + grain.mats.get(i).substring(0, 1).toUpperCase() + grain.mats.get(i).substring(1), + new ItemStack(grain, 1, i)); + for (int i = 0; i < gem.mats.size(); i++) + OreDictionary.registerOre( + "gem" + gem.mats.get(i).substring(0, 1).toUpperCase() + gem.mats.get(i).substring(1), + new ItemStack(gem, 1, i)); + } - createFluid(name, fluid, fluidBlock); - createItems(name, nugget, ingot, dust); + @SubscribeEvent + public static void registerBlocks(final RegistryEvent.Register<Block> event) { + for (Block i : blockList) { + event.getRegistry().register(i); + } } - void createFluid(String name, FluidMolten fluid) { + static void createFluid(String name, FluidMolten fluid) { + FluidRegistry.registerFluid(fluid); + BlockMolten block = new BlockMolten(fluid); // Sets names block.setUnlocalizedName("molten_" + fluid.getName()); block.setRegistryName(Reference.MOD_ID, "molten_" + fluid.getName()); - // Registers the fluid in its block form and its corresponding item - // (block/fluid as item in inventory) - GameRegistry.register(block); - GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName())); - // Registers the fluid's model but only on the client side - TinkersDefense.proxy.registerFluidModels(fluid); - } - void createFluid(String name, FluidMolten fluid, Block fluidBlock) { - fluidBlock.setUnlocalizedName("molten_" + fluid.getName()); - fluidBlock.setRegistryName(Reference.MOD_ID, "molten_" + fluid.getName()); - // Registers the fluid in its block form and its corresponding item - // (block/fluid as item in inventory) - GameRegistry.register(fluidBlock); - GameRegistry.register(new ItemBlock(fluidBlock).setRegistryName(fluidBlock.getRegistryName())); + blockList.add(block); + itemList.add(new ItemBlock(block).setRegistryName(block.getRegistryName())); // Registers the fluid's model but only on the client side TinkersDefense.proxy.registerFluidModels(fluid); - } - void createItems(String name, Item nugget, Item ingot, Item dust) { - nugget.setCreativeTab(CoreBase.tab); - ingot.setCreativeTab(CoreBase.tab); - dust.setCreativeTab(CoreBase.tab); - - GameRegistry.register(nugget); - GameRegistry.register(ingot); - GameRegistry.register(dust); - - if (nugget instanceof TDOreDictItem) - OreDictionary.registerOre(((TDOreDictItem) nugget).getOreDictPrefix() + StringUtils.capitalize(name), - nugget); - if (ingot instanceof TDOreDictItem) - OreDictionary.registerOre(((TDOreDictItem) ingot).getOreDictPrefix() + StringUtils.capitalize(name), ingot); - if (dust instanceof TDOreDictItem) - OreDictionary.registerOre(((TDOreDictItem) dust).getOreDictPrefix() + StringUtils.capitalize(name), dust); - } - - void createMaterial(String name, Material mat, Fluid fluid, Item item, HeadMaterialStats headstat, - HandleMaterialStats handlestat, ExtraMaterialStats extrastat, BowMaterialStats bowstat, boolean craftable, - boolean castable) { - - mat.setFluid(fluid); - mat.setCraftable(craftable).setCastable(castable); - mat.addItem(item, 1, Material.VALUE_Ingot); - mat.setRepresentativeItem(item); - - TinkerRegistry.addMaterialStats(mat, headstat); - TinkerRegistry.addMaterialStats(mat, handlestat); - TinkerRegistry.addMaterialStats(mat, extrastat); - TinkerRegistry.addMaterialStats(mat, bowstat); - TinkerRegistry.addMaterialStats(mat, new ShieldMaterialStats(0, 0)); - - materials.put(name, mat); - - // MaterialIntegration integration = new MaterialIntegration(mat, fluid, - // name); - // integration.integrate(); + FluidRegistry.addBucketForFluid(fluid); } private void registerClothMaterials() { @@ -482,55 +576,9 @@ public class TDMaterials { TinkerRegistry.addMaterialStats(white, new MaterialCloth(100)); } - private void registerMaterials() { - createMaterial("aeonsteel", matAeonsteel, fluidAeonsteel, ingotAeonsteel, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("queensgold", matQueensGold, fluidQueensGold, ingotQueensGold, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("dogbearium", matDogbearium, fluidDogbearium, ingotDogbearium, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("redcandy", matRedCandy, fluidRedCandy, ingotRedCandy, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("greencandy", matGreenCandy, fluidGreenCandy, ingotGreenCandy, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - - createMaterial("sinisterium", matSinisterium, fluidSinisterium, ingotSinisterium, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); -// createMaterial("nihilite", matNihilite, fluidNihilite, ingotNihilite, -// new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), -// new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("orichalcum", matOrichalcum, fluidOrichalcum, ingotOrichalcum, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("pandorium", matPandorium, fluidPandorium, ingotPandorium, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - - createMaterial("rosegold", matRoseGold, fluidRoseGold, ingotRoseGold, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("platinum", matPlatinum, fluidPlatinum, ingotPlatinum, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("brass", matBrass, fluidBrass, ingotBrass, new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), - new HandleMaterialStats(0, 0), new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("cheese", matCheese, fluidCheese, ingotCheese, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - createMaterial("gold", matGold, TinkerFluids.gold, Items.GOLD_INGOT, - new HeadMaterialStats(0, 0, 0, HarvestLevels.COBALT), new HandleMaterialStats(0, 0), - new ExtraMaterialStats(0), new BowMaterialStats(0, 0, 0), false, true); - } - - //PlusTIC to the rescue - public static void integrate(Map<String, Material> materials, - Map<String, MaterialIntegration> materialIntegrations, Collection<String> excludedMaterials) { + // PlusTIC to the rescue + public static void integrate(Map<String, Material> materials, Map<String, MaterialIntegration> materialIntegrations, + Collection<String> excludedMaterials) { materials.forEach((k, v) -> { if (!materialIntegrations.containsKey(k) && !excludedMaterials.contains(k)) { MaterialIntegration mi; @@ -540,7 +588,7 @@ public class TDMaterials { mi = new MaterialIntegration(v); } mi.integrate(); - mi.integrateRecipes(); + // mi.integrateRecipes(); materialIntegrations.put(k, mi); } }); diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitAxeLover.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitAxeLover.java index f262aea..17d1811 100644 --- a/src/main/java/lance5057/tDefense/core/materials/traits/TraitAxeLover.java +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitAxeLover.java @@ -1,5 +1,7 @@ package lance5057.tDefense.core.materials.traits; +import java.util.Optional; + import lance5057.tDefense.util.TDToolHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -9,8 +11,10 @@ import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.mantle.util.RecipeMatch.Match; import slimeknights.tconstruct.library.traits.AbstractTrait; import slimeknights.tconstruct.library.utils.ToolHelper; import slimeknights.tconstruct.tools.tools.Hatchet; @@ -26,7 +30,7 @@ public class TraitAxeLover extends AbstractTrait { @Override public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { - Entity src = event.getSource().getSourceOfDamage(); + Entity src = event.getSource().getTrueSource(); if (src != null && src instanceof EntityLiving) { EntityLivingBase liv = (EntityLivingBase) src; @@ -44,4 +48,10 @@ public class TraitAxeLover extends AbstractTrait { } } } + + @Override + public Optional<Match> matches(NonNullList<ItemStack> arg0) { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java index 1da3ab0..9e82775 100644 --- a/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitBarbed.java @@ -1,10 +1,14 @@ package lance5057.tDefense.core.materials.traits; +import java.util.Optional; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; +import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.mantle.util.RecipeMatch.Match; import slimeknights.tconstruct.library.traits.AbstractTrait; public class TraitBarbed extends AbstractTrait { @@ -15,9 +19,15 @@ public class TraitBarbed extends AbstractTrait { @Override public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { - if (event.getSource() != DamageSource.generic) { - player.attackEntityFrom(DamageSource.generic, 1); - event.getSource().getSourceOfDamage().attackEntityFrom(DamageSource.generic, 1); + if (event.getSource() != DamageSource.GENERIC) { + player.attackEntityFrom(DamageSource.GENERIC, 1); + event.getSource().getTrueSource().attackEntityFrom(DamageSource.GENERIC, 1); } } + + @Override + public Optional<Match> matches(NonNullList<ItemStack> arg0) { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java index da56768..81b608d 100644 --- a/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDogToy.java @@ -1,5 +1,7 @@ package lance5057.tDefense.core.materials.traits; +import java.util.Optional; + import net.minecraft.block.BlockFence; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; @@ -11,10 +13,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.mantle.util.RecipeMatch.Match; import slimeknights.tconstruct.library.traits.AbstractTrait; public class TraitDogToy extends AbstractTrait { @@ -27,7 +31,7 @@ public class TraitDogToy extends AbstractTrait { @Override public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { - if (event.getSource().getSourceOfDamage() instanceof EntityLiving || event.getSource().getEntity() instanceof EntityLiving ) { + if (event.getSource().getTrueSource() instanceof EntityLiving || event.getSource().getImmediateSource() instanceof EntityLiving ) { BlockPos pos = new BlockPos(player.posX + player.world.rand.nextInt(10) - 5, player.posY, player.posZ + player.world.rand.nextInt(10) - 5); IBlockState iblockstate = player.world.getBlockState(pos); @@ -57,10 +61,10 @@ public class TraitDogToy extends AbstractTrait { entWolf.onInitialSpawn(player.world.getDifficultyForLocation(new BlockPos(entWolf)), (IEntityLivingData) null); - if(event.getSource().getSourceOfDamage() instanceof EntityLiving) - entWolf.setAttackTarget((EntityLivingBase) event.getSource().getSourceOfDamage()); + if(event.getSource().getTrueSource() instanceof EntityLiving) + entWolf.setAttackTarget((EntityLivingBase) event.getSource().getTrueSource()); else - entWolf.setAttackTarget((EntityLivingBase) event.getSource().getEntity()); + entWolf.setAttackTarget((EntityLivingBase) event.getSource().getImmediateSource()); entWolf.setAngry(true); entWolf.setCollarColor(EnumDyeColor.BLACK); @@ -74,4 +78,10 @@ public class TraitDogToy extends AbstractTrait { // applyItemEntityDataToEntity(player.world, player, null, entity); } } + + @Override + public Optional<Match> matches(NonNullList<ItemStack> arg0) { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitDulling.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDulling.java index 263f4e4..badd802 100644 --- a/src/main/java/lance5057/tDefense/core/materials/traits/TraitDulling.java +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitDulling.java @@ -1,12 +1,16 @@ package lance5057.tDefense.core.materials.traits; +import java.util.Optional; + import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.mantle.util.RecipeMatch.Match; import slimeknights.tconstruct.library.tools.ToolCore; import slimeknights.tconstruct.library.traits.AbstractTrait; import slimeknights.tconstruct.library.utils.ToolHelper; @@ -20,7 +24,7 @@ public class TraitDulling extends AbstractTrait { @Override public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { - Entity src = event.getSource().getSourceOfDamage(); + Entity src = event.getSource().getTrueSource(); if (src != null && src instanceof EntityLiving) { EntityLivingBase liv = (EntityLivingBase) src; @@ -37,4 +41,10 @@ public class TraitDulling extends AbstractTrait { } } } + + @Override + public Optional<Match> matches(NonNullList<ItemStack> arg0) { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/materials/traits/TraitFirestarter.java b/src/main/java/lance5057/tDefense/core/materials/traits/TraitFirestarter.java index 16b1c2b..90bc373 100644 --- a/src/main/java/lance5057/tDefense/core/materials/traits/TraitFirestarter.java +++ b/src/main/java/lance5057/tDefense/core/materials/traits/TraitFirestarter.java @@ -1,5 +1,7 @@ package lance5057.tDefense.core.materials.traits; +import java.util.Optional; + import lance5057.tDefense.util.TDToolHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -7,11 +9,13 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3i; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.event.entity.living.LivingHurtEvent; +import slimeknights.mantle.util.RecipeMatch.Match; import slimeknights.tconstruct.library.tools.ToolCore; import slimeknights.tconstruct.library.traits.AbstractTrait; import slimeknights.tconstruct.library.utils.ToolHelper; @@ -25,7 +29,7 @@ public class TraitFirestarter extends AbstractTrait { @Override public void onBlock(ItemStack tool, EntityPlayer player, LivingHurtEvent event) { - Entity src = event.getSource().getSourceOfDamage(); + Entity src = event.getSource().getTrueSource(); if (src != null && src instanceof EntityLiving) { EntityLivingBase liv = (EntityLivingBase) src; @@ -36,11 +40,17 @@ public class TraitFirestarter extends AbstractTrait { if(TDToolHelper.checkIfMetal(tool)) { Vec3d vec = player.getLookVec(); - BlockPos block = player.getPosition().add(vec.xCoord,-1,vec.zCoord); + BlockPos block = player.getPosition().add(vec.x,-1,vec.z); player.world.setBlockState(block, Blocks.FIRE.getDefaultState()); } } } } } + + @Override + public Optional<Match> matches(NonNullList<ItemStack> arg0) { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/lance5057/tDefense/core/parts/TDParts.java b/src/main/java/lance5057/tDefense/core/parts/TDParts.java index bccabff..9aa05dc 100644 --- a/src/main/java/lance5057/tDefense/core/parts/TDParts.java +++ b/src/main/java/lance5057/tDefense/core/parts/TDParts.java @@ -1,14 +1,24 @@ package lance5057.tDefense.core.parts; +import java.util.ArrayList; + +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.materials.MaterialArmor; import lance5057.tDefense.armor.materials.MaterialCloth; import lance5057.tDefense.core.materials.ShieldMaterialStats; import lance5057.tDefense.util.ModuleBase; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.event.RegistryEvent.Register; +import net.minecraftforge.fml.common.Mod; 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.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.registries.IForgeRegistry; import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.materials.Material; import slimeknights.tconstruct.library.materials.MaterialTypes; @@ -18,77 +28,88 @@ import slimeknights.tconstruct.library.tools.ToolPart; import slimeknights.tconstruct.tools.TinkerMaterials; import slimeknights.tconstruct.tools.TinkerTools; -public class TDParts extends ModuleBase -{ +@Mod.EventBusSubscriber(modid = Reference.MOD_ID) +public class TDParts extends ModuleBase { public static PartMaterialType ShieldMat; - + public static PartMaterialType ArmorplateMat; public static PartMaterialType ChainmailMat; public static PartMaterialType RivetMat; public static PartMaterialType ClaspMat; public static PartMaterialType ClothMat; - + public static ToolPart armorPlate; public static ToolPart chainmail; public static ToolPart cloth; public static ToolPart rivets; public static ToolPart clasp; - + public static ToolPart ringShank; public static ToolPart setting; public static ToolPart wire; public static ToolPart filigree; + protected static ArrayList<Item> itemList = new ArrayList<Item>(); @Override public void preInit(FMLPreInitializationEvent e) { - armorPlate = regToolPart(Material.VALUE_Ingot * 4, "armor_plate"); -// armorPlate = new ToolPart(Material.VALUE_Ingot * 4); -// armorPlate.setUnlocalizedName("armor_plate").setRegistryName("tinkersdefense:armor_plate"); -// GameRegistry.register(armorPlate); -// -// TinkerRegistry.registerStencilTableCrafting(Pattern.setTagForPart(new ItemStack(TinkerTools.pattern), armorPlate)); -// - chainmail = regToolPart(Material.VALUE_Ingot * 3, "chainmail"); - cloth = regToolPart(Material.VALUE_Ingot * 3, "cloth"); - rivets = regToolPart(Material.VALUE_Ingot * 1, "rivets"); - clasp = regToolPart(Material.VALUE_Ingot * 1, "clasp"); - - ringShank = regToolPart(Material.VALUE_Ingot * 2, "ringShank"); - setting = regToolPart(Material.VALUE_Ingot * 1, "setting"); - wire = regToolPart(Material.VALUE_Ingot * 1, "wire"); - filigree = regToolPart(Material.VALUE_Ingot * 1, "filigree"); - - ShieldMat = new PartMaterialType(armorPlate, ShieldMaterialStats.TYPE); - ArmorplateMat = new PartMaterialType(armorPlate, MaterialArmor.TYPE); - ChainmailMat = new PartMaterialType(chainmail, MaterialArmor.TYPE); - RivetMat = new PartMaterialType(rivets, MaterialTypes.EXTRA); - ClaspMat = new PartMaterialType(clasp, MaterialTypes.EXTRA); - ClothMat = new PartMaterialType(cloth, MaterialCloth.TYPE); + } @Override public void init(FMLInitializationEvent e) { - // TODO Auto-generated method stub } @Override public void postInit(FMLPostInitializationEvent e) { // TODO Auto-generated method stub + + } + + public void registerItems(final RegistryEvent.Register<Item> event) { + + final IForgeRegistry registry = event.getRegistry(); + + armorPlate = regToolPart(Material.VALUE_Ingot * 4, "armor_plate", event); + // armorPlate = new ToolPart(Material.VALUE_Ingot * 4); + // armorPlate.setUnlocalizedName("armor_plate").setRegistryName("tinkersdefense:armor_plate"); + // GameRegistry.register(armorPlate); + // + // TinkerRegistry.registerStencilTableCrafting(Pattern.setTagForPart(new + // ItemStack(TinkerTools.pattern), armorPlate)); + // + chainmail = regToolPart(Material.VALUE_Ingot * 3, "chainmail", event); + cloth = regToolPart(Material.VALUE_Ingot * 3, "cloth", event); + rivets = regToolPart(Material.VALUE_Ingot * 1, "rivets", event); + clasp = regToolPart(Material.VALUE_Ingot * 1, "clasp", event); + + ringShank = regToolPart(Material.VALUE_Ingot * 2, "ringShank", event); + setting = regToolPart(Material.VALUE_Ingot * 1, "setting", event); + wire = regToolPart(Material.VALUE_Ingot * 1, "wire", event); + filigree = regToolPart(Material.VALUE_Ingot * 1, "filigree", event); + ShieldMat = new PartMaterialType(TDParts.armorPlate, ShieldMaterialStats.TYPE); + + ArmorplateMat = new PartMaterialType(armorPlate, MaterialArmor.TYPE); + ChainmailMat = new PartMaterialType(chainmail, MaterialArmor.TYPE); + RivetMat = new PartMaterialType(rivets, MaterialTypes.EXTRA); + ClaspMat = new PartMaterialType(clasp, MaterialTypes.EXTRA); + ClothMat = new PartMaterialType(cloth, MaterialCloth.TYPE); + + //registry.registerAll((Item[]) itemList.toArray()); } - - private ToolPart regToolPart(int castVolume, String name) - { + + private static ToolPart regToolPart(int castVolume, String name, RegistryEvent.Register<Item> event) { ToolPart part = new ToolPart(castVolume); - part.setUnlocalizedName(name).setRegistryName("tinkersdefense:"+name); - GameRegistry.register(part); + part.setUnlocalizedName(name).setRegistryName("tinkersdefense:" + name); + event.getRegistry().register(part); TinkerRegistry.registerStencilTableCrafting(Pattern.setTagForPart(new ItemStack(TinkerTools.pattern), part)); - //TinkerRegistry.registerTableCasting(output, cast, fluid, amount); + TinkersDefense.proxy.registerPartModel(part); + // TinkerRegistry.registerTableCasting(output, cast, fluid, amount); + itemList.add(part); return part; } - } diff --git a/src/main/java/lance5057/tDefense/core/tools/TDTools.java b/src/main/java/lance5057/tDefense/core/tools/TDTools.java index c846f97..f03c108 100644 --- a/src/main/java/lance5057/tDefense/core/tools/TDTools.java +++ b/src/main/java/lance5057/tDefense/core/tools/TDTools.java @@ -1,7 +1,11 @@ package lance5057.tDefense.core.tools; +import java.util.ArrayList; + import com.google.common.eventbus.Subscribe; +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.items.cloth.TinkersHood; import lance5057.tDefense.armor.items.cloth.TinkersRobe; import lance5057.tDefense.armor.items.cloth.TinkersShawl; @@ -14,15 +18,20 @@ import lance5057.tDefense.core.tools.basic.Zweihander; import lance5057.tDefense.core.tools.baubles.Amulet; import lance5057.tDefense.core.tools.baubles.Ring; import lance5057.tDefense.core.tools.baubles.Sheathe; +import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod; 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.registry.GameRegistry; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.registries.IForgeRegistry; import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.tools.ToolCore; +@Mod.EventBusSubscriber(modid = Reference.MOD_ID) //@Pulse(id = TDTools.PulseId, description = "All the tools and everything related to it.") public class TDTools { @@ -55,6 +64,8 @@ public class TDTools { public static ToolCore sheathe; public static ToolCore ring; public static ToolCore amulet; + + static ArrayList<Item> itemList = new ArrayList<Item>(); // Tool Parts @@ -71,7 +82,20 @@ public class TDTools { // PRE-INITIALIZATION @Subscribe public void preInit(FMLPreInitializationEvent event) { - // register items + + } + + private void regTools() { + + + + // TinkerRegistry.registerToolStationCrafting(roundshield); + // TinkerRegistry.registerToolForgeCrafting(heatershield); + // TinkerRegistry.registerToolForgeCrafting(zweihander); + } + + public void registerItems(final RegistryEvent.Register<Item> event) + { roundshield = new RoundShield(); heatershield = new HeaterShield(); zweihander = new Zweihander(); @@ -86,46 +110,35 @@ public class TDTools { sheathe = new Sheathe(); ring = new Ring(); amulet = new Amulet(); - - MinecraftForge.EVENT_BUS.register(events); - - regTools(); - registerModifiers(); - - // register blocks - - // register entities - - // proxy.preInit(); - } - - private void regTools() { - - regTool(roundshield, "roundshield"); - regTool(heatershield, "heatershield"); - regTool(zweihander, "zweihander"); - regTool(shears, "shears"); - regTool(fishingRod, "fishingRod"); - - regTool(hood, "hood"); - regTool(shawl, "shawl"); - regTool(robe, "robe"); - regTool(shoes, "shoes"); - regTool(sheathe, "sheathe"); - regTool(ring, "ring"); - regTool(amulet, "amulet"); - - // TinkerRegistry.registerToolStationCrafting(roundshield); - // TinkerRegistry.registerToolForgeCrafting(heatershield); - // TinkerRegistry.registerToolForgeCrafting(zweihander); + regTool(roundshield, "roundshield", event); + regTool(heatershield, "heatershield", event); + regTool(zweihander, "zweihander", event); + regTool(shears, "shears", event); + regTool(fishingRod, "fishingRod", event); + + regTool(hood, "hood", event); + regTool(shawl, "shawl", event); + regTool(robe, "robe", event); + regTool(shoes, "shoes", event); + + regTool(sheathe, "sheathe", event); + regTool(ring, "ring", event); + regTool(amulet, "amulet", event); + +// final IForgeRegistry registry = event.getRegistry(); +// for (Item i : itemList) { +// event.getRegistry().register(i); +// } } - private void regTool(ToolCore tool, String name) { + private static void regTool(ToolCore tool, String name, RegistryEvent.Register<Item> event) { tool.setRegistryName(new ResourceLocation("tinkersdefense:" + name)); + event.getRegistry().register(tool); TinkerRegistry.registerTool(tool); - GameRegistry.register(tool); - } + TinkersDefense.proxy.registerToolModel(tool); + itemList.add(tool); + } private void registerModifiers() { @@ -134,6 +147,14 @@ public class TDTools { // INITIALIZATION @Subscribe public void init(FMLInitializationEvent event) { + // register items + + + // register blocks + + // register entities + + // proxy.preInit(); regToolBuilding(); regRecipies(); @@ -165,6 +186,11 @@ public class TDTools { @Subscribe public void postInit(FMLPostInitializationEvent event) { // proxy.postInit(); - } + + MinecraftForge.EVENT_BUS.register(events); + + regTools(); + registerModifiers(); + } } diff --git a/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java b/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java index 53722b1..d14b31a 100644 --- a/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java +++ b/src/main/java/lance5057/tDefense/core/tools/bases/Shield.java @@ -5,35 +5,27 @@ import java.util.List; import javax.annotation.Nullable; import lance5057.tDefense.core.materials.ShieldMaterialStats; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; +import lance5057.tDefense.core.parts.TDParts; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.item.EnumAction; import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; -import net.minecraft.util.DamageSource; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.common.Optional; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import slimeknights.tconstruct.library.client.model.ToolModelLoader; import slimeknights.tconstruct.library.tinkering.PartMaterialType; import slimeknights.tconstruct.library.tools.ToolCore; import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.tools.TinkerTools; //@Optional.InterfaceList({@Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.ISheathed"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowCatcher"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IArrowDisplay"), @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.shield.IShield")}) public class Shield extends ToolCore //implements IShield, ISheathed, IArrowCatcher, IArrowDisplay @@ -41,7 +33,6 @@ public class Shield extends ToolCore //implements IShield, ISheathed, IArrowCatc public Shield(PartMaterialType... requiredComponents) { super(requiredComponents); - this.addPropertyOverride(new ResourceLocation("block"), new IItemPropertyGetter() { @SideOnly(Side.CLIENT) @@ -92,7 +83,7 @@ public class Shield extends ToolCore //implements IShield, ISheathed, IArrowCatc public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - return super.onItemUse(stack, playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); + return super.onItemUse(playerIn, worldIn, pos, hand, facing, hitX, hitY, hitZ); } /** diff --git a/src/main/java/lance5057/tDefense/holiday/xmas/XmasBase.java b/src/main/java/lance5057/tDefense/holiday/xmas/XmasBase.java index 2c83902..c166f96 100644 --- a/src/main/java/lance5057/tDefense/holiday/xmas/XmasBase.java +++ b/src/main/java/lance5057/tDefense/holiday/xmas/XmasBase.java @@ -23,7 +23,7 @@ public class XmasBase extends ModuleBase { public void preInit(FMLPreInitializationEvent e) { // TODO Auto-generated method stub items.preInit(e); - EntityRegistry.registerModEntity(GumDropSlime.class, "gumdropslime", 0, + EntityRegistry.registerModEntity(null, GumDropSlime.class, "gumdropslime", 0, TinkersDefense.instance, 64, 5, true, 0x963430, 0xDDDDDD); //LootTableList.register(GumDropSlime.LOOT_TABLE); } diff --git a/src/main/java/lance5057/tDefense/holiday/xmas/XmasItems.java b/src/main/java/lance5057/tDefense/holiday/xmas/XmasItems.java index 3ac3d58..4b22960 100644 --- a/src/main/java/lance5057/tDefense/holiday/xmas/XmasItems.java +++ b/src/main/java/lance5057/tDefense/holiday/xmas/XmasItems.java @@ -3,7 +3,6 @@ package lance5057.tDefense.holiday.xmas; import lance5057.tDefense.util.Color16Util; import lance5057.tDefense.util.ItemsBase; import lance5057.tDefense.util.MetaItem; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java index af0a175..ea2a3c7 100644 --- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java @@ -12,13 +12,16 @@ import lance5057.tDefense.core.renderers.BaubleRenderer; import lance5057.tDefense.core.renderers.SheatheModel; import lance5057.tDefense.core.tools.TDTools; import lance5057.tDefense.holiday.HolidayClientProxy; +import lance5057.tDefense.renderers.deserializers.AlphaColorTextureDeserializer; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.StateMapperBase; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.resources.IReloadableResourceManager; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -26,9 +29,12 @@ import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fluids.Fluid; import slimeknights.tconstruct.common.ModelRegisterUtil; -import slimeknights.tconstruct.library.TinkerRegistry; import slimeknights.tconstruct.library.TinkerRegistryClient; import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; +import slimeknights.tconstruct.library.client.material.MaterialRenderInfoLoader; +import slimeknights.tconstruct.library.materials.Material; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolPart; //import lance5057.tDefense.core.renderer.TestSkinChanger; @@ -74,8 +80,8 @@ public class ClientProxy extends CommonProxy { @Override public void preInit() { ClientCommandHandler.instance.registerCommand(new TD_Commands()); - registerToolRenderers(); - registerPartModels(); + + MaterialRenderInfoLoader.addRenderInfo("alpha_color", AlphaColorTextureDeserializer.class); coreProxy.preInit(); } @@ -89,7 +95,7 @@ public class ClientProxy extends CommonProxy { render = skinMap.get("slim"); render.addLayer(new BaubleRenderer()); - + createToolGuis(); setToolGuis(); registerToolGuis(); @@ -99,22 +105,45 @@ public class ClientProxy extends CommonProxy { // armorProxy.init(); holiProxy.Init(); } + + @Override + public void postInit() + { + //IReloadableResourceManager resourceManager = (IReloadableResourceManager) mc.getResourceManager(); + //resourceManager.registerReloadListener(TDMaterialRenderInfoLoader.INSTANCE); + } + + @Override + public void registerFluidModels(Fluid fluid) { + if (fluid == null) return; + Block block = fluid.getBlock(); + if (block != null) { + Item item = Item.getItemFromBlock(block); + FluidStateMapper mapper = new FluidStateMapper(fluid); + if (item != null) { + ModelBakery.registerItemVariants(item); + ModelLoader.setCustomMeshDefinition(item, mapper); + } + ModelLoader.setCustomStateMapper(block, mapper); + } +} - public void registerToolRenderers() { - ModelRegisterUtil.registerToolModel(TDTools.roundshield); - ModelRegisterUtil.registerToolModel(TDTools.heatershield); - ModelRegisterUtil.registerToolModel(TDTools.zweihander); - ModelRegisterUtil.registerToolModel(TDTools.shears); - ModelRegisterUtil.registerToolModel(TDTools.fishingRod); - - ModelRegisterUtil.registerToolModel(TDTools.hood); - ModelRegisterUtil.registerToolModel(TDTools.shawl); - ModelRegisterUtil.registerToolModel(TDTools.robe); - ModelRegisterUtil.registerToolModel(TDTools.shoes); - - ModelRegisterUtil.registerToolModel(TDTools.sheathe); - ModelRegisterUtil.registerToolModel(TDTools.ring); - ModelRegisterUtil.registerToolModel(TDTools.amulet); + @Override + public void registerToolModel(ToolCore tool) + { + ModelRegisterUtil.registerToolModel(tool); + } + + @Override + public void registerPartModel(ToolPart part) + { + ModelRegisterUtil.registerPartModel(part); + } + + @Override + public void registerMatColor(Material mat, int color) + { + mat.setRenderInfo(color); } public void createToolGuis() { @@ -284,27 +313,6 @@ public class ClientProxy extends CommonProxy { } @Override - public void registerFluidModels(Fluid fluid) { - if (fluid == null) { - return; - } - - Block block = fluid.getBlock(); - if (block != null) { - Item item = Item.getItemFromBlock(block); - FluidStateMapper mapper = new FluidStateMapper(fluid); - - // item-model - if (item != null) { - ModelLoader.registerItemVariants(item); - ModelLoader.setCustomMeshDefinition(item, mapper); - } - // block-model - ModelLoader.setCustomStateMapper(block, mapper); - } - } - - @Override public void registerItemBlockRenderer(Block block, int meta, String file) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), meta, new ModelResourceLocation(Reference.MOD_ID + ":" + file, "inventory")); diff --git a/src/main/java/lance5057/tDefense/proxy/CommonProxy.java b/src/main/java/lance5057/tDefense/proxy/CommonProxy.java index 407080d..a6b34ae 100644 --- a/src/main/java/lance5057/tDefense/proxy/CommonProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/CommonProxy.java @@ -1,23 +1,25 @@ package lance5057.tDefense.proxy; +import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.items.straps.ItemStrapsInv; import lance5057.tDefense.armor.items.straps.StrapsContainer; import lance5057.tDefense.armor.items.straps.StrapsGui; -import lance5057.tDefense.core.blocks.crestMount.Container_CrestMount; -import lance5057.tDefense.core.blocks.crestMount.Gui_CrestMount; -import lance5057.tDefense.core.blocks.crestMount.TileEntity_CrestMount; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.util.EnumHand; -import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.IGuiHandler; -import net.minecraftforge.fml.common.network.NetworkRegistry; - +import slimeknights.tconstruct.library.materials.Material; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.tools.ToolPart; +@Mod.EventBusSubscriber(modid = Reference.MOD_ID) public class CommonProxy implements IGuiHandler { //public static ModifierSoulHandler SoulHandler = null; @@ -46,27 +48,27 @@ public class CommonProxy implements IGuiHandler } -// public EntityPlayer getPlayerEntity(MessageContext ctx) -// { -// return ctx.getServerHandler().playerEntity; -// } -// -// public ModelBiped getArmorModel(int id) -// { -// return null; -// } -// -// public World getClientWorld() -// { -// return null; -// } -// + public void registerToolModel(ToolCore tool) + { + + } + + public void registerPartModel(ToolPart part) + { + + } + + public void registerMatColor(Material mat, int color) + { + + } + @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - if(ID == TinkersDefense.GUI_CREST_INV) - return new Container_CrestMount(player.inventory, - (TileEntity_CrestMount) world.getTileEntity(new BlockPos(x, y, z))); +// if(ID == TinkersDefense.GUI_CREST_INV) +// return new Container_CrestMount(player.inventory, +// (TileEntity_CrestMount) world.getTileEntity(new BlockPos(x, y, z))); // if(ID == TinkersDefense.GUI_ANVIL_INV) // return new Container_FinishingAnvil(player.inventory, // (TileEntity_FinishingAnvil) world.getTileEntity(x, y, z)); @@ -79,9 +81,9 @@ public class CommonProxy implements IGuiHandler @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - if(ID == TinkersDefense.GUI_CREST_INV) - return new Gui_CrestMount(player.inventory, - (TileEntity_CrestMount) world.getTileEntity(new BlockPos(x, y, z))); +// if(ID == TinkersDefense.GUI_CREST_INV) +// return new Gui_CrestMount(player.inventory, +// (TileEntity_CrestMount) world.getTileEntity(new BlockPos(x, y, z))); // if(ID == TinkersDefense.GUI_ANVIL_INV) // return new Gui_FinishingAnvil(player.inventory, // (TileEntity_FinishingAnvil) world.getTileEntity(x, y, z)); @@ -104,4 +106,11 @@ public class CommonProxy implements IGuiHandler { } + + @SubscribeEvent + public static void registerItems(RegistryEvent.Register<Item> event) { + TinkersDefense.mats.registerItems(event); + TinkersDefense.parts.registerItems(event); + TinkersDefense.tools.registerItems(event); + } } diff --git a/src/main/java/lance5057/tDefense/renderers/AlphaColorTexture.java b/src/main/java/lance5057/tDefense/renderers/AlphaColorTexture.java new file mode 100644 index 0000000..15da871 --- /dev/null +++ b/src/main/java/lance5057/tDefense/renderers/AlphaColorTexture.java @@ -0,0 +1,85 @@ +package lance5057.tDefense.renderers; + +import net.minecraft.util.ResourceLocation; +import slimeknights.tconstruct.library.client.RenderUtil; +import slimeknights.tconstruct.library.client.texture.AbstractColoredTexture; + +public class AlphaColorTexture extends AbstractColoredTexture { + protected final int colorLow; + protected final int colorMid; + protected final int colorHigh; + protected int minBrightness; + protected int maxBrightness; + protected int brightnessData[]; + + public AlphaColorTexture(int colorLow, int colorMid, int colorHigh, ResourceLocation baseTexture, + String spriteName) { + super(baseTexture, spriteName); + this.colorLow = colorLow; + this.colorMid = colorMid; + this.colorHigh = colorHigh; + } + + @Override + protected void preProcess(int[] data) { + // setup brigthness data + int max = 0; + int min = 255; + brightnessData = new int[data.length]; + for(int i = 0; i < data.length; i++) { + int pixel = data[i]; + if(RenderUtil.alpha(pixel) == 0) { + continue; + } + int brightness = getPerceptualBrightness(pixel); + if(brightness < min) { + min = brightness; + } + if(brightness > max) { + max = brightness; + } + brightnessData[i] = brightness; + } + + // calculate the actual limits where we change color + int brightnessDiff = max - min; + brightnessDiff /= 2; + minBrightness = Math.max(min + 1, min + (int) (brightnessDiff * 0.4f)); + maxBrightness = Math.min(max - 1, max - (int) (brightnessDiff * 0.3f)); + } + + @Override + protected void postProcess(int[] data) { + // delete memory that we don't need anymore. We only cached it for faster loading anyway + brightnessData = null; + } + + @Override + protected int colorPixel(int pixel, int pxCoord) { + int a = RenderUtil.alpha(pixel); + if(a == 0) { + return pixel; + } + + int brightness = brightnessData[pxCoord]; + int c = colorMid; + if(brightness < minBrightness) { + c = colorLow; + } + else if(brightness > maxBrightness) { + c = colorHigh; + } + + // multiply in the color + int r = RenderUtil.red(c); + int b = RenderUtil.blue(c); + int g = RenderUtil.green(c); + + r = mult(r, RenderUtil.red(pixel)) & 0xff; + g = mult(g, RenderUtil.blue(pixel)) & 0xff; + b = mult(b, RenderUtil.green(pixel)) & 0xff; + + // put it back together + return RenderUtil.compose(r, g, b, a); + } +} diff --git a/src/main/java/lance5057/tDefense/renderers/deserializers/AlphaColorTextureDeserializer.java b/src/main/java/lance5057/tDefense/renderers/deserializers/AlphaColorTextureDeserializer.java new file mode 100644 index 0000000..2242526 --- /dev/null +++ b/src/main/java/lance5057/tDefense/renderers/deserializers/AlphaColorTextureDeserializer.java @@ -0,0 +1,15 @@ +package lance5057.tDefense.renderers.deserializers; + +import lance5057.tDefense.renderers.info.TDMaterialRenderInfo; +import slimeknights.tconstruct.library.client.MaterialRenderInfo; +import slimeknights.tconstruct.library.client.material.deserializers.AbstractRenderInfoDeserializer; + +public class AlphaColorTextureDeserializer extends AbstractRenderInfoDeserializer { + + protected String color; + + @Override + public MaterialRenderInfo getMaterialRenderInfo() { + return new TDMaterialRenderInfo.AlphaColor(fromHex(color)); + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/renderers/info/TDMaterialRenderInfo.java b/src/main/java/lance5057/tDefense/renderers/info/TDMaterialRenderInfo.java new file mode 100644 index 0000000..a22d514 --- /dev/null +++ b/src/main/java/lance5057/tDefense/renderers/info/TDMaterialRenderInfo.java @@ -0,0 +1,85 @@ +package lance5057.tDefense.renderers.info; + +import lance5057.tDefense.renderers.AlphaColorTexture; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.util.ResourceLocation; +import slimeknights.tconstruct.library.client.MaterialRenderInfo; +import slimeknights.tconstruct.library.client.MaterialRenderInfo.AbstractMaterialRenderInfo; +import slimeknights.tconstruct.library.client.texture.SimpleColoredTexture; +import slimeknights.tconstruct.library.client.texture.TinkerTexture; + +public interface TDMaterialRenderInfo { + + TextureAtlasSprite getTexture(ResourceLocation baseTexture, String location); + + boolean isStitched(); + + boolean useVertexColoring(); + + int getVertexColor(); + + // this actually would require its own thing, but we put it here for simplicity + String getTextureSuffix(); + + MaterialRenderInfo setTextureSuffix(String suffix); + + abstract class AbstractMaterialRenderInfo implements MaterialRenderInfo { + + private String suffix; + + @Override + public boolean isStitched() { + return true; + } + + @Override + public boolean useVertexColoring() { + return false; + } + + @Override + public int getVertexColor() { + return 0xffffffff; // white and opaque + } + + @Override + public String getTextureSuffix() { + return suffix; + } + + @Override + public MaterialRenderInfo setTextureSuffix(String suffix) { + this.suffix = suffix; + return this; + } + } + + class AlphaColor extends AbstractMaterialRenderInfo { + + public final int color; + + public AlphaColor(int color) { + this.color = color; + } + + @Override + public TextureAtlasSprite getTexture(ResourceLocation baseTexture, String location) { + return new AlphaColorTexture(color, color, color, baseTexture, location); + } + + @Override + public boolean isStitched() { + return false; + } + + @Override + public boolean useVertexColoring() { + return true; + } + + @Override + public int getVertexColor() { + return color; + } + } +} diff --git a/src/main/java/lance5057/tDefense/util/BlocksBase.java b/src/main/java/lance5057/tDefense/util/BlocksBase.java index d8ff0ab..d33f459 100644 --- a/src/main/java/lance5057/tDefense/util/BlocksBase.java +++ b/src/main/java/lance5057/tDefense/util/BlocksBase.java @@ -1,5 +1,7 @@ package lance5057.tDefense.util; +import java.util.ArrayList; + import lance5057.tDefense.Reference; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -14,7 +16,8 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.GameRegistry; public abstract class BlocksBase { - + protected static ArrayList<Block> blockList = new ArrayList<Block>(); + protected static ArrayList<Item> itemList = new ArrayList<Item>(); public BlocksBase() { @@ -29,7 +32,7 @@ public abstract class BlocksBase { protected Block setupRegister(String name, CreativeTabs tabName, float hardness) { Block block = new Block(Material.IRON).setCreativeTab(tabName).setUnlocalizedName(name).setRegistryName(Reference.MOD_ID, name).setHardness(hardness); - GameRegistry.register(block); + blockList.add(block); return block; } @@ -37,7 +40,7 @@ public abstract class BlocksBase { { ItemBlock item = new ItemBlock(block); item.setCreativeTab(tabName).setMaxStackSize(size).setUnlocalizedName(name).setRegistryName(Reference.MOD_ID, name).setCreativeTab(tabName); - GameRegistry.register(item); + itemList.add(item); return item; } diff --git a/src/main/java/lance5057/tDefense/util/ItemsBase.java b/src/main/java/lance5057/tDefense/util/ItemsBase.java index e146579..aa45463 100644 --- a/src/main/java/lance5057/tDefense/util/ItemsBase.java +++ b/src/main/java/lance5057/tDefense/util/ItemsBase.java @@ -1,16 +1,21 @@ package lance5057.tDefense.util; +import java.util.ArrayList; + import lance5057.tDefense.Reference; +import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraftforge.event.RegistryEvent; 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.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry; -import slimeknights.mantle.client.CreativeTab; +import net.minecraftforge.registries.IForgeRegistry; public abstract class ItemsBase { + protected static ArrayList<Item> itemList = new ArrayList<Item>(); public ItemsBase() { @@ -22,10 +27,18 @@ public abstract class ItemsBase { public abstract void postInit(FMLPostInitializationEvent e); + @SubscribeEvent + public static void registerItems(final RegistryEvent.Register<Item> event) + { + final IForgeRegistry registry = event.getRegistry(); + + registry.registerAll((Item[]) itemList.toArray()); + } + protected Item register(String name, int size, CreativeTabs tabName) { Item item = new Item().setCreativeTab(tabName).setMaxStackSize(size).setUnlocalizedName(name).setRegistryName(Reference.MOD_ID, name); - GameRegistry.register(item); + itemList.add(item); return item; } @@ -33,7 +46,7 @@ public abstract class ItemsBase { { Item item = new MetaItem(names).setCreativeTab(tabName).setMaxStackSize(size).setUnlocalizedName(name).setRegistryName(Reference.MOD_ID, name); - GameRegistry.register(item); + itemList.add(item); return (MetaItem) item; } } diff --git a/src/main/java/lance5057/tDefense/util/MetaItem.java b/src/main/java/lance5057/tDefense/util/MetaItem.java index de51022..07b7c8e 100644 --- a/src/main/java/lance5057/tDefense/util/MetaItem.java +++ b/src/main/java/lance5057/tDefense/util/MetaItem.java @@ -5,6 +5,7 @@ import java.util.List; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; public class MetaItem extends Item { @@ -22,11 +23,11 @@ public class MetaItem extends Item } @Override - public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) + public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> subItems) { for(int i = 0; i < items.length; i++) { - subItems.add(new ItemStack(itemIn, 1, i)); + subItems.add(new ItemStack(this, 1, i)); } } } diff --git a/src/main/java/lance5057/tDefense/util/RegEvents.java b/src/main/java/lance5057/tDefense/util/RegEvents.java new file mode 100644 index 0000000..9d40e1c --- /dev/null +++ b/src/main/java/lance5057/tDefense/util/RegEvents.java @@ -0,0 +1,13 @@ +package lance5057.tDefense.util; + +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; +import net.minecraft.item.Item; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + + +public class RegEvents { + +} diff --git a/src/main/java/lance5057/tDefense/util/TDMatHelper.java b/src/main/java/lance5057/tDefense/util/TDMatHelper.java new file mode 100644 index 0000000..c36c4ee --- /dev/null +++ b/src/main/java/lance5057/tDefense/util/TDMatHelper.java @@ -0,0 +1,99 @@ +package lance5057.tDefense.util; + +import lance5057.tDefense.core.materials.ShieldMaterialStats; +import slimeknights.tconstruct.library.fluid.FluidMolten; +import slimeknights.tconstruct.library.materials.ArrowShaftMaterialStats; +import slimeknights.tconstruct.library.materials.BowMaterialStats; +import slimeknights.tconstruct.library.materials.BowStringMaterialStats; +import slimeknights.tconstruct.library.materials.ExtraMaterialStats; +import slimeknights.tconstruct.library.materials.FletchingMaterialStats; +import slimeknights.tconstruct.library.materials.HandleMaterialStats; +import slimeknights.tconstruct.library.materials.HeadMaterialStats; + +public class TDMatHelper { + public String name; + public int color; + public FluidMolten fluid; + + public boolean isGem; + + public HeadMaterialStats head; + public ShieldMaterialStats shield; + public BowMaterialStats bow; + public ExtraMaterialStats extra; + public FletchingMaterialStats fletching; + public BowStringMaterialStats bowstring; + public HandleMaterialStats handle; + public ArrowShaftMaterialStats shaft; + + public TDMatHelper(String n, int c, FluidMolten f) + { + name = n; + color = c; + fluid = f; + } + + public TDMatHelper(String n, int c) + { + name = n; + color = c; + fluid = null; + } + + public TDMatHelper(String n, int c, boolean o) + { + name = n; + color = c; + fluid = null; + + isGem = o; + } + + public TDMatHelper setHead(HeadMaterialStats h) + { + head = h; + return this; + } + + public TDMatHelper setHandle(HandleMaterialStats h) + { + handle = h; + return this; + } + + public TDMatHelper setShield(ShieldMaterialStats h) + { + shield = h; + return this; + } + + public TDMatHelper setExtra(ExtraMaterialStats h) + { + extra = h; + return this; + } + + public TDMatHelper setBow(BowMaterialStats h) + { + bow = h; + return this; + } + + public TDMatHelper setFletching(FletchingMaterialStats h) + { + fletching = h; + return this; + } + + public TDMatHelper setString(BowStringMaterialStats h) + { + bowstring = h; + return this; + } + + public TDMatHelper setShaft(ArrowShaftMaterialStats h) + { + shaft = h; + return this; + } +} diff --git a/src/main/java/lance5057/tDefense/util/TDToolHelper.java b/src/main/java/lance5057/tDefense/util/TDToolHelper.java index 8c5cfe1..d5b6e6e 100644 --- a/src/main/java/lance5057/tDefense/util/TDToolHelper.java +++ b/src/main/java/lance5057/tDefense/util/TDToolHelper.java @@ -31,8 +31,8 @@ public class TDToolHelper { { ItemTool i = (ItemTool) item.getItem(); - if(i.getToolMaterial() != i.getToolMaterial().WOOD || - i.getToolMaterial() != i.getToolMaterial().STONE) + if(i.getToolMaterialName() != "WOOD" || + i.getToolMaterialName() != "STONE") { } |
