forked from Kolyah35/minecraft-pe-0.6.1
96 lines
2.3 KiB
C++
Executable File
96 lines
2.3 KiB
C++
Executable File
#ifndef NET_MINECRAFT_WORLD_ITEM__FoodItem_H__
|
|
#define NET_MINECRAFT_WORLD_ITEM__FoodItem_H__
|
|
|
|
//package net.minecraft.world.item;
|
|
|
|
#include "Item.h"
|
|
#include "../level/Level.h"
|
|
#include "../entity/player/Player.h"
|
|
#include "../../SharedConstants.h"
|
|
#include "../../network/packet/SetHealthPacket.h"
|
|
//#include "../effect/MobEffectInstance.h"
|
|
//#include "../food/FoodConstants.h"
|
|
|
|
class FoodItem: public Item
|
|
{
|
|
typedef Item super;
|
|
static const int EAT_DURATION = (int) (20 * 1.6);
|
|
public:
|
|
FoodItem(int id, int nutrition, bool isMeat, float saturationMod = 0.6f)
|
|
: super(id),
|
|
nutrition(nutrition),
|
|
_isMeat(isMeat),
|
|
saturationModifier(saturationMod)
|
|
{
|
|
}
|
|
|
|
bool isFood() const {
|
|
return true;
|
|
}
|
|
|
|
ItemInstance useTimeDepleted(ItemInstance* instance, Level* level, Player* player) {
|
|
instance->count--;
|
|
player->foodData.eat(this);
|
|
level->playSound(player, "random.burp", 0.5f, level->random.nextFloat() * 0.1f + 0.9f);
|
|
return *instance;
|
|
}
|
|
|
|
int getUseDuration(ItemInstance* itemInstance) {
|
|
return EAT_DURATION;
|
|
}
|
|
|
|
UseAnim::UseAnimation getUseAnimation() {
|
|
return UseAnim::eat;
|
|
}
|
|
|
|
ItemInstance* use(ItemInstance* instance, Level* level, Player* player) {
|
|
if (!player->abilities.invulnerable && player->isHurt()) {
|
|
player->startUsingItem(*instance, getUseDuration(instance));
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
int getNutrition() {
|
|
return nutrition;
|
|
}
|
|
|
|
/*
|
|
float getSaturationModifier() {
|
|
return saturationModifier;
|
|
}
|
|
*/
|
|
|
|
bool isMeat() {
|
|
return _isMeat;
|
|
}
|
|
|
|
/*
|
|
FoodItem* setEatEffect(int id, int durationInSecods, int amplifier, float effectProbability) {
|
|
effectId = id;
|
|
effectDurationSeconds = durationInSecods;
|
|
effectAmplifier = amplifier;
|
|
this->effectProbability = effectProbability;
|
|
return this;
|
|
}
|
|
*/
|
|
|
|
FoodItem* setCanAlwaysEat() {
|
|
canAlwaysEat = true;
|
|
return this;
|
|
}
|
|
private:
|
|
const int nutrition;
|
|
const float saturationModifier;
|
|
const bool _isMeat;
|
|
bool canAlwaysEat;
|
|
/*
|
|
|
|
int effectId;
|
|
int effectDurationSeconds;
|
|
int effectAmplifier;
|
|
float effectProbability;
|
|
*/
|
|
};
|
|
|
|
#endif /*NET_MINECRAFT_WORLD_ITEM__FoodItem_H__*/
|