Search in sources :

Example 1 with FoodTrait

use of net.dries007.tfc.api.capability.food.FoodTrait in project firmalife by eerussianguy.

the class BlockString method onBlockActivated.

@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
    if (!world.isRemote && hand == EnumHand.MAIN_HAND) {
        TEString te = Helpers.getTE(world, pos, TEString.class);
        if (te == null)
            return false;
        ItemStack held = player.getHeldItem(hand);
        if (held.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null))
            return false;
        IItemHandler inv = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
        if (inv == null)
            return false;
        ItemStack current = inv.getStackInSlot(0);
        if (!held.isEmpty() && current.isEmpty()) {
            IFood cap = held.getCapability(CapabilityFood.CAPABILITY, null);
            if (cap != null) {
                List<FoodTrait> traits = cap.getTraits();
                boolean isFoodValid = (traits.contains(FoodTrait.BRINED) && OreDictionaryHelper.doesStackMatchOre(held, "categoryMeat") && HeatRecipe.get(held) != null) || OreDictionaryHelper.doesStackMatchOre(held, "cheese");
                if (!traits.contains(FoodDataFL.SMOKED) && isFoodValid) {
                    ItemStack leftover = inv.insertItem(0, held.splitStack(1), false);
                    Helpers.spawnItemStack(world, pos.add(0.5D, 0.5D, 0.5D), leftover);
                    te.markForSync();
                    return true;
                }
            }
        } else if (held.isEmpty() && !current.isEmpty()) {
            Helpers.spawnItemStack(world, pos, inv.extractItem(0, 1, false));
            te.markForSync();
            return true;
        }
    }
    return false;
}
Also used : IFood(net.dries007.tfc.api.capability.food.IFood) IItemHandler(net.minecraftforge.items.IItemHandler) FoodTrait(net.dries007.tfc.api.capability.food.FoodTrait) TEString(com.eerussianguy.firmalife.te.TEString) ItemStack(net.minecraft.item.ItemStack)

Example 2 with FoodTrait

use of net.dries007.tfc.api.capability.food.FoodTrait in project firmalife by eerussianguy.

the class BlockCheesewheel method cutCheese.

private boolean cutCheese(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn) {
    int stateWedges = state.getValue(WEDGES);
    FoodTrait ageTrait = state.getValue(AGE).getTrait();
    if (stateWedges < 3) {
        worldIn.setBlockState(pos, state.withProperty(WEDGES, stateWedges + 1), 3);
    } else {
        worldIn.setBlockToAir(pos);
    }
    ItemStack output = new ItemStack(item.get());
    CapabilityFood.applyTrait(output, ageTrait);
    ItemHandlerHelper.giveItemToPlayer(playerIn, output);
    return true;
}
Also used : FoodTrait(net.dries007.tfc.api.capability.food.FoodTrait) ItemStack(net.minecraft.item.ItemStack)

Aggregations

FoodTrait (net.dries007.tfc.api.capability.food.FoodTrait)2 ItemStack (net.minecraft.item.ItemStack)2 TEString (com.eerussianguy.firmalife.te.TEString)1 IFood (net.dries007.tfc.api.capability.food.IFood)1 IItemHandler (net.minecraftforge.items.IItemHandler)1