123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #pragma once
- #include <Vec3.h>
- #include "Item.h"
- #include "ItemSkill.h"
- class FluidContainerItemType;
- class FluidContainerItem : public Item
- {
- private:
- int fluidTypeId;
- int fluidAmount;
- public:
- FluidContainerItem(int itemTypeId, const char* name);
- virtual const BlockType* zPlacedBlockType() const override;
- virtual bool canBeStackedWith(const Item* zItem) const override;
- virtual bool canBePlacedAt(
- int dimensionId, Framework::Vec3<int> worldPos) const override;
- virtual void onPlaced();
- virtual Framework::Text getTooltipUIML() const override;
- virtual bool applyFoodEffects(Entity* zTarget) override;
- virtual bool canApplyFoodEffectsFully(Entity* zTarget) const override;
- int getAmount() const;
- void setAmount(int amount);
- int getFluidTypeId() const;
- void setFluidTypeId(int fluidTypeId);
- friend FluidContainerItemType;
- };
- class FluidContainerItemSkillLevelUpRule;
- class FluidContainerItemSkill : public ItemSkill
- {
- int level;
- float xp;
- float maxXP;
- public:
- FluidContainerItemSkill(int itemTypeId);
- virtual bool use(Entity* zActor, Item* zUsedItem, Block* zTarget) override;
- virtual bool use(Entity* zActor, Item* zUsedItem, Entity* zTarget) override;
- friend FluidContainerItemType;
- friend FluidContainerItemSkillLevelUpRule;
- };
- class FluidContainerItemSkillLevelUpRule : public ItemSkillLevelUpRule
- {
- public:
- FluidContainerItemSkillLevelUpRule();
- void applyOn(ItemSkill* zSkill) override;
- };
- class FluidContainerItemType : public ItemType
- {
- private:
- int maxFluidAmount;
- protected:
- virtual void loadSuperItem(
- Item* zItem, Framework::StreamReader* zReader) const override;
- virtual void saveSuperItem(
- const Item* zItem, Framework::StreamWriter* zWriter) const override;
- virtual void loadSuperItemSkill(
- ItemSkill* zSkill, Framework::StreamReader* zReader) const override;
- virtual void saveSuperItemSkill(const ItemSkill* zSkill,
- Framework::StreamWriter* zWriter) const override;
- public:
- FluidContainerItemType(int typeId, const char* name, ModelInfo model);
- virtual Item* createItem() const override;
- virtual ItemSkill* createDefaultItemSkill() const override;
- virtual void setItemAttribute(Item* zItem,
- Framework::Text name,
- Framework::JSON::JSONValue* zValue) const override;
- virtual void addItemAttributes(
- Item* zItem, Framework::JSON::JSONObject* zItemObjet) const override;
- int getMaxFluidAmount() const;
- FluidContainerItemType* setMaxFluidAmount(int maxFluidAmount);
- };
|