More demon village tweaks, adding more event functionality

This commit is contained in:
WayofTime 2014-11-30 17:56:10 -05:00
parent 1115eaf9a7
commit d439ac92fc
14 changed files with 83 additions and 31 deletions

View file

@ -0,0 +1,15 @@
package WayofTime.alchemicalWizardry.api.event;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.eventhandler.Cancelable;
@Cancelable
public class ItemDrainInContainerEvent extends SoulNetworkEvent
{
public ItemStack stack;
public ItemDrainInContainerEvent(ItemStack stack, String ownerNetwork, int drainAmount)
{
super(ownerNetwork, drainAmount);
this.stack = stack;
}
}

View file

@ -17,12 +17,12 @@ import cpw.mods.fml.common.eventhandler.Event;
public class Rituals
{
private int crystalLevel;
private int actCost;
private RitualEffect effect;
private String name;
public final int crystalLevel;
public final int actCost;
public final RitualEffect effect;
public final String name;
private MRSRenderer customRenderer;
public final MRSRenderer customRenderer;
public static Map<String, Rituals> ritualMap = new HashMap();
public static List<String> keyList = new LinkedList();

View file

@ -13,11 +13,13 @@ import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import WayofTime.alchemicalWizardry.api.event.AddToNetworkEvent;
import WayofTime.alchemicalWizardry.api.event.ItemBindEvent;
import WayofTime.alchemicalWizardry.api.event.ItemDrainInContainerEvent;
import WayofTime.alchemicalWizardry.api.event.ItemDrainNetworkEvent;
import com.mojang.authlib.GameProfile;
import cpw.mods.fml.common.eventhandler.Event;
import cpw.mods.fml.common.eventhandler.Event.Result;
public class SoulNetworkHandler
{
@ -33,6 +35,24 @@ public class SoulNetworkHandler
gameProfile = server.func_152358_ax().func_152652_a(uuid);
return null;
}
public static boolean syphonFromNetworkWhileInContainer(ItemStack ist, int damageToBeDone)
{
String ownerName = "";
if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals("")))
{
ownerName = ist.getTagCompound().getString("ownerName");
}
ItemDrainInContainerEvent event = new ItemDrainInContainerEvent(ist, ownerName, damageToBeDone);
if(MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Result.DENY)
{
return false;
}
return syphonFromNetwork(event.ownerNetwork, event.drainAmount) >= damageToBeDone;
}
public static int syphonFromNetwork(ItemStack ist, int damageToBeDone)
{