| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include "AnimalAI.h"
- #include "Entity.h"
- #include "EntityType.h"
- class Animal : public Entity
- {
- private:
- AnimalAI* ai;
- public:
- Animal(int typeId,
- Framework::Vec3<float> location,
- int dimensionId,
- int entityId);
- ~Animal();
- void setAI(AnimalAI* ai);
- bool interact(Item* zItem, Entity* zActor) override;
- void takeDamage(Entity* zSource, float damage) override;
- void tick(const Dimension* zDimension) override;
- };
- class AnimalEntityTypeFactory;
- class AnimalEntityType : public EntityType
- {
- private:
- Framework::JSON::JSONObject* ai;
- protected:
- virtual void loadSuperEntity(
- Entity* zEntity, Framework::StreamReader* zReader) const;
- virtual void saveSuperEntity(
- Entity* zEntity, Framework::StreamWriter* zWriter) const;
- public:
- AnimalEntityType();
- ~AnimalEntityType();
- Entity* createEntity(Framework::Vec3<float> position,
- int dimensionId,
- int entityId) const override;
- friend AnimalEntityTypeFactory;
- };
- class AnimalEntityTypeFactory : public EntityTypeFactoryBase<AnimalEntityType>
- {
- public:
- AnimalEntityTypeFactory();
- virtual AnimalEntityType* createValue(
- Framework::JSON::JSONObject* zJson) const override;
- virtual void addToJson(Framework::JSON::JSONObject* zJson,
- AnimalEntityType* zObject) const override;
- JSONObjectValidationBuilder* addToValidator(
- JSONObjectValidationBuilder* builder) const override;
- const char* getTypeToken() const override;
- };
|