下面列出了怎么用net.minecraft.util.FoodStats的API类实例代码及写法,或者点击链接到github查看源代码。
public static void addNutrition(FoodStats fs, ItemStack is)
{
IFoodStatsTFC stats = (IFoodStatsTFC)fs;
TFCFood food = FoodRegistry.getInstance().getFood(is.getItem(), is.getItemDamage());
if(food != null && is.getItem() instanceof ItemFood)
{
ItemFood item = (ItemFood)is.getItem();
Iterator iter = food.foodGroup.iterator();
while(iter.hasNext())
{
FoodGroupPair pair = (FoodGroupPair) iter.next();
float amount = pair.amount;
if(pair.foodGroup != EnumFoodGroup.None)
{
amount = Math.min(stats.getNutritionMap().get(pair.foodGroup) + (item.getHealAmount(is) * (pair.amount / 100f)*0.25f), 20);
stats.getNutritionMap().put(pair.foodGroup, amount);
}
}
}
}
@Override
public void onHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean isCritical) {
super.onHit(tool, player, target, damage, isCritical);
if (player instanceof EntityPlayer && player.world.rand.nextFloat() < 0.4F) {
FoodStats foodStats = ((EntityPlayer) player).getFoodStats();
foodStats.addStats(1, damage * 0.3F);
}
}
@Shadow
public abstract FoodStats getFoodStats();
@Shadow
public abstract FoodStats getFoodStats();