mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-06 11:43:38 +00:00
55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "Item.h"
|
|
|
|
class Player;
|
|
class Level;
|
|
|
|
class FoodItem : public Item {
|
|
public:
|
|
static const int EAT_DURATION = (int)(20 * 1.6);
|
|
|
|
private:
|
|
const int nutrition;
|
|
const float saturationModifier;
|
|
const bool m_isMeat;
|
|
bool canAlwaysEat;
|
|
|
|
int effectId;
|
|
int effectDurationSeconds;
|
|
int effectAmplifier;
|
|
float effectProbability;
|
|
|
|
void _init();
|
|
|
|
public:
|
|
FoodItem(int id, int nutrition, float saturationMod, bool isMeat);
|
|
FoodItem(int id, int nutrition, bool isMeat);
|
|
|
|
virtual std::shared_ptr<ItemInstance> useTimeDepleted(
|
|
std::shared_ptr<ItemInstance> instance, Level* level,
|
|
std::shared_ptr<Player> player);
|
|
|
|
protected:
|
|
virtual void addEatEffect(std::shared_ptr<ItemInstance> instance,
|
|
Level* level, std::shared_ptr<Player> player);
|
|
|
|
public:
|
|
virtual int getUseDuration(std::shared_ptr<ItemInstance> itemInstance);
|
|
virtual UseAnim getUseAnimation(std::shared_ptr<ItemInstance> itemInstance);
|
|
|
|
virtual std::shared_ptr<ItemInstance> use(
|
|
std::shared_ptr<ItemInstance> instance, Level* level,
|
|
std::shared_ptr<Player> player);
|
|
|
|
int getNutrition();
|
|
float getSaturationModifier();
|
|
bool isMeat();
|
|
|
|
FoodItem* setEatEffect(int id, int durationInSecods, int amplifier,
|
|
float effectProbability);
|
|
FoodItem* setCanAlwaysEat();
|
|
|
|
// 4J Added
|
|
bool canEat(std::shared_ptr<Player> player);
|
|
}; |