diff --git a/MineTweaker3-MC1710-Main/src/main/java/minetweaker/mc1710/MineTweakerMod.java b/MineTweaker3-MC1710-Main/src/main/java/minetweaker/mc1710/MineTweakerMod.java index 5ef39d6..47ef038 100644 --- a/MineTweaker3-MC1710-Main/src/main/java/minetweaker/mc1710/MineTweakerMod.java +++ b/MineTweaker3-MC1710-Main/src/main/java/minetweaker/mc1710/MineTweakerMod.java @@ -151,16 +151,15 @@ public class MineTweakerMod { @EventHandler public void onComplete(FMLLoadCompleteEvent ev) { - MineTweakerAPI.logInfo("MineTweaker: Everything should be finished loading we should rebuild the registry now.."); + MineTweakerAPI.logInfo("MineTweaker: Building registry"); ItemBracketHandler.rebuildItemRegistry(); - MineTweakerAPI.logInfo("MineTweaker: Sucessfully rebuilt our registry"); + MineTweakerAPI.logInfo("MineTweaker: Sucessfully built item registry"); } @EventHandler public void onServerAboutToStart(FMLServerAboutToStartEvent ev) { // starts before loading worlds // perfect place to start MineTweaker! - if (MineTweakerPlatformUtils.isClient()) { MineTweakerAPI.client = new MCClient(); diff --git a/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/MineTweakerMod.java b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/MineTweakerMod.java index 9a03012..3a94f46 100644 --- a/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/MineTweakerMod.java +++ b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/MineTweakerMod.java @@ -12,8 +12,6 @@ import minetweaker.MineTweakerAPI; import minetweaker.MineTweakerImplementationAPI; import minetweaker.api.logger.FileLogger; import minetweaker.mc18.brackets.ItemBracketHandler; -import minetweaker.mc18.brackets.LiquidBracketHandler; -import minetweaker.mc18.brackets.OreBracketHandler; import minetweaker.mc18.client.MCClient; import minetweaker.mc18.formatting.MCFormatter; import minetweaker.mc18.furnace.FuelTweaker; @@ -42,6 +40,7 @@ import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLInterModComms; +import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent; @@ -150,11 +149,17 @@ public class MineTweakerMod { } + @EventHandler + public void onComplete(FMLLoadCompleteEvent ev) { + MineTweakerAPI.logInfo("MineTweaker: Building registry"); + ItemBracketHandler.rebuildItemRegistry(); + MineTweakerAPI.logInfo("MineTweaker: Sucessfully built item registry"); + } + @EventHandler public void onServerAboutToStart(FMLServerAboutToStartEvent ev) { // starts before loading worlds // perfect place to start MineTweaker! - ItemBracketHandler.rebuildItemRegistry(); if (MineTweakerPlatformUtils.isClient()) { MineTweakerAPI.client = new MCClient(); diff --git a/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/actions/SetStackmaxDamageAction.java b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/actions/SetStackmaxDamageAction.java new file mode 100644 index 0000000..2eb7c88 --- /dev/null +++ b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/actions/SetStackmaxDamageAction.java @@ -0,0 +1,61 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package minetweaker.mc18.actions; + +import minetweaker.IUndoableAction; +import net.minecraft.item.ItemStack; + +/** + * + * @author Jared + */ +public class SetStackmaxDamageAction implements IUndoableAction { + + private final ItemStack stack; + private final int damage; + private final int oldDamage; + + public SetStackmaxDamageAction(ItemStack stack, int damage) { + this.stack = stack; + this.damage= damage; + this.oldDamage= stack.getMaxDamage(); + } + + @Override + public void apply() { + set(stack, damage); + } + + @Override + public boolean canUndo() { + return true; + } + + @Override + public void undo() { + set(stack, oldDamage); + } + + @Override + public String describe() { + return "Setting max damage of " + stack.getDisplayName() + " to " + damage; + } + + @Override + public String describeUndo() { + return "Reverting max damage of " + stack.getDisplayName() + " to " + oldDamage; + } + + private static void set(ItemStack stack, int damage) { + stack.getItem().setMaxDamage(damage); + } + + @Override + public Object getOverrideKey() { + return null; + } +} diff --git a/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/item/MCItemStack.java b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/item/MCItemStack.java index 86c6d84..bf9fed7 100644 --- a/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/item/MCItemStack.java +++ b/MineTweaker3-MC18-Main/src/main/java/minetweaker/mc18/item/MCItemStack.java @@ -29,6 +29,7 @@ import minetweaker.api.oredict.IOreDictEntry; import minetweaker.api.player.IPlayer; import minetweaker.mc18.actions.SetBlockHardnessAction; import minetweaker.mc18.actions.SetStackSizeAction; +import minetweaker.mc18.actions.SetStackmaxDamageAction; import minetweaker.mc18.actions.SetTranslationAction; import minetweaker.mc18.block.MCItemBlock; import minetweaker.mc18.brackets.ItemBracketHandler; @@ -36,7 +37,6 @@ import minetweaker.mc18.data.NBTConverter; import minetweaker.mc18.liquid.MCLiquidStack; import minetweaker.util.ArrayUtil; import net.minecraft.block.Block; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; @@ -104,6 +104,11 @@ public class MCItemStack implements IItemStack { public void setDisplayName(String name) { MineTweakerAPI.apply(new SetTranslationAction(getName() + ".name", name)); } + + @Override + public void setMaxDamage(int damage) { + MineTweakerAPI.apply(new SetStackmaxDamageAction(stack, damage)); + } @Override public int getMaxStackSize() {