Add a ToolBuildEvent that is called at the start of the tool building process. Allows to replace parts used for building with other parts.

This commit is contained in:
Bernhard Bonigl committed 2014-08-15 13:03:20 +02:00
1 parent f9a4fd2377
commit e786518807
2 files changed
+38

No files matched your search

@@ -11,6 +11,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.MinecraftForge;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.event.ToolBuildEvent;
import tconstruct.library.event.ToolCraftEvent;
import tconstruct.library.modifier.ItemModifier;
import tconstruct.library.tools.ToolCore;
@@ -132,6 +133,19 @@ public class ToolBuilder
if (headStack == null || handleStack == null) //Nothing to build without these. All tools need at least two parts!
return null;
if(name == null)
name = "";
// fire the ToolBuild event to get the correct items
ToolBuildEvent buildEvent = new ToolBuildEvent(headStack, handleStack, accessoryStack, extraStack, name);
MinecraftForge.EVENT_BUS.post(buildEvent);
// copy back the items
headStack = buildEvent.headStack;
handleStack = buildEvent.handleStack;
accessoryStack = buildEvent.accessoryStack;
extraStack = buildEvent.extraStack;
name = buildEvent.name;
ToolCore item;
boolean validMaterials = true;
@@ -0,0 +1,24 @@
package tconstruct.library.event;
import cpw.mods.fml.common.eventhandler.Event;
import net.minecraft.item.ItemStack;
/**
* Called when the ToolBuilder tries to piece together the Parts of a tool.
*
*/
public class ToolBuildEvent extends Event {
public ItemStack headStack;
public ItemStack handleStack;
public ItemStack accessoryStack;
public ItemStack extraStack;
public String name; // to allow shenanigans
public ToolBuildEvent(ItemStack headStack, ItemStack handleStack, ItemStack accessoryStack, ItemStack extraStack, String name) {
this.headStack = headStack;
this.handleStack = handleStack;
this.accessoryStack = accessoryStack;
this.extraStack = extraStack;
this.name = name;
}
}