Search in sources :

Example 6 with IFood

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

the class HelpersFL method updateFoodFuzzed.

public static ItemStack updateFoodFuzzed(ItemStack oldStack, ItemStack newStack) {
    ItemStack output = CapabilityFood.updateFoodFromPrevious(oldStack, newStack);
    IFood cap = output.getCapability(CapabilityFood.CAPABILITY, null);
    if (cap != null && !cap.isRotten()) {
        cap.setCreationDate(cap.getCreationDate() - (cap.getCreationDate() % ICalendar.HOURS_IN_DAY));
    }
    return output;
}
Also used : IFood(net.dries007.tfc.api.capability.food.IFood) ItemStack(net.minecraft.item.ItemStack)

Example 7 with IFood

use of net.dries007.tfc.api.capability.food.IFood in project TerraFirmaCraft by TerraFirmaCraft.

the class FoodCombiningCraftingRecipe method assemble.

@Override
public ItemStack assemble(CraftingContainer inv) {
    ItemStack resultStack = ItemStack.EMPTY;
    int outputAmount = 0;
    long minCreationDate = -1;
    for (int i = 0; i < inv.getContainerSize(); i++) {
        ItemStack stack = inv.getItem(i);
        if (!stack.isEmpty()) {
            // Get the food capability
            IFood cap = stack.getCapability(FoodCapability.CAPABILITY).resolve().orElse(null);
            if (cap != null) {
                // Increment output amount
                outputAmount++;
                // Find the min creation date
                if (minCreationDate == -1 || minCreationDate > cap.getCreationDate()) {
                    minCreationDate = cap.getCreationDate();
                }
                // And save the stack
                if (resultStack.isEmpty()) {
                    resultStack = stack.copy();
                }
            }
        }
    }
    // Update the capability and count of the result
    resultStack.setCount(outputAmount);
    final long date = minCreationDate;
    resultStack.getCapability(FoodCapability.CAPABILITY).ifPresent(cap -> cap.setCreationDate(date));
    return resultStack;
}
Also used : IFood(net.dries007.tfc.common.capabilities.food.IFood) ItemStack(net.minecraft.world.item.ItemStack)

Aggregations

IFood (net.dries007.tfc.api.capability.food.IFood)6 ItemStack (net.minecraft.item.ItemStack)6 Nonnull (javax.annotation.Nonnull)3 ArrayList (java.util.ArrayList)2 FoodData (net.dries007.tfc.api.capability.food.FoodData)2 ItemPizza (com.eerussianguy.firmalife.items.ItemPizza)1 ItemTrailMix (com.eerussianguy.firmalife.items.ItemTrailMix)1 IPlayerDataFL (com.eerussianguy.firmalife.player.IPlayerDataFL)1 CrackingRecipe (com.eerussianguy.firmalife.recipe.CrackingRecipe)1 NutRecipe (com.eerussianguy.firmalife.recipe.NutRecipe)1 TEString (com.eerussianguy.firmalife.te.TEString)1 List (java.util.List)1 FoodTrait (net.dries007.tfc.api.capability.food.FoodTrait)1 IFood (net.dries007.tfc.common.capabilities.food.IFood)1 BlockPlacedItemFlat (net.dries007.tfc.objects.blocks.BlockPlacedItemFlat)1 TEPlacedItemFlat (net.dries007.tfc.objects.te.TEPlacedItemFlat)1 Month (net.dries007.tfc.util.calendar.Month)1 Block (net.minecraft.block.Block)1 IBlockState (net.minecraft.block.state.IBlockState)1 ItemBlock (net.minecraft.item.ItemBlock)1