package joshie.progression.helpers;
import joshie.progression.api.event.ActionEvent;
import joshie.progression.crafting.ActionType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge;
public class CraftingHelper {
public static boolean canPerformAction(ActionType action, EntityPlayer player, ItemStack stack) {
return !MinecraftForge.EVENT_BUS.post(new ActionEvent(action, player, stack));
}
public static boolean canPerformAction(ActionType action, TileEntity tile, ItemStack stack) {
return !MinecraftForge.EVENT_BUS.post(new ActionEvent(action, tile, stack));
}
public static boolean canPerformActionAbstract(ActionType crafting, Object object, ItemStack stack) {
if (stack == null) return false;
EntityPlayer player = object instanceof EntityPlayer ? (EntityPlayer) object: null;
if (player != null) {
return canPerformAction(crafting, player, stack);
}
TileEntity tile = object instanceof TileEntity? (TileEntity) object: null;
if (tile != null) {
return canPerformAction(crafting, tile, stack);
}
return false;
}
public static ItemStack getCraftingResult(ActionType crafting, EntityPlayer player, ItemStack result) {
if (result == null) return null;
if (!CraftingHelper.canPerformAction(ActionType.CRAFTING, player, result)) return null;
return result;
}
}