Skip to content

Commit

Permalink
Add a cancelable ModifyEvent that's called when a modifier is getting…
Browse files Browse the repository at this point in the history
… applied.
  • Loading branch information
bonii-xx committed Feb 21, 2015
1 parent 3bdb3a1 commit d1f86ad
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
7 changes: 7 additions & 0 deletions src/main/java/tconstruct/library/crafting/ModifyBuilder.java
Expand Up @@ -3,6 +3,8 @@
import java.util.*;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.MinecraftForge;
import tconstruct.library.event.ModifyEvent;
import tconstruct.library.modifier.*;

public class ModifyBuilder
Expand All @@ -22,6 +24,11 @@ public ItemStack modifyItem (ItemStack input, ItemStack[] modifiers)
{
if (mod.matches(modifiers, copy) && mod.validType(item))
{
ModifyEvent event = new ModifyEvent(mod, item, copy);
MinecraftForge.EVENT_BUS.post(event);
if(event.isCanceled())
continue;

built = true;
mod.addMatchingEffect(copy); //Order matters here
mod.modify(modifiers, copy);
Expand Down
19 changes: 18 additions & 1 deletion src/main/java/tconstruct/library/event/ModifyEvent.java
@@ -1,4 +1,21 @@
package tconstruct.library.event;

public class ModifyEvent {
import cpw.mods.fml.common.eventhandler.Cancelable;
import cpw.mods.fml.common.eventhandler.Event;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import tconstruct.library.modifier.IModifyable;
import tconstruct.library.modifier.ItemModifier;

@Cancelable
public class ModifyEvent extends Event {
public final ItemModifier modifier;
public final IModifyable item;
public final ItemStack itemStack;

public ModifyEvent(ItemModifier modifier, IModifyable item, ItemStack itemStack) {
this.modifier = modifier;
this.item = item;
this.itemStack = itemStack;
}
}

0 comments on commit d1f86ad

Please sign in to comment.