#ifndef DYNAMICOBJECT_HPP_INCLUDED
#define DYNAMICOBJECT_HPP_INCLUDED

#include "Renderable.hpp"
#include "../JavaClass/Class.hpp"
#include "Animation.hpp"
#include <cstdint>

namespace Internal
{
    class DynamicObject : public Renderable
    {
        public:
            DynamicObject(const void* Obj);

            DynamicObject() = default;
            DynamicObject(DynamicObject&& Obj) = default;
            DynamicObject(const DynamicObject& Obj) = default;
            DynamicObject& operator=(DynamicObject&& Obj) = default;
            DynamicObject& operator=(const DynamicObject& Obj) = default;

            static Class GetClass();

            Animation GetAnimation() const;
            std::int32_t GetAnimationFrame() const;
            std::int32_t GetID() const;
            std::int32_t GetOrientation() const;
            std::int32_t GetPlane() const;
            std::int32_t GetType() const;
            std::int32_t GetX() const;
            std::int32_t GetY() const;

    };
}

#endif // DYNAMICOBJECT_HPP_INCLUDED
