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;
}
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;
}
Aggregations