67 lines
2.2 KiB
C++
67 lines
2.2 KiB
C++
#pragma once
|
|
#include "glm/glm.hpp"
|
|
#include <stdint.h>
|
|
#include <string>
|
|
|
|
class asIScriptGeneric;
|
|
class CScriptArray;
|
|
|
|
namespace Deer {
|
|
class Entity;
|
|
class EntityEnvironment;
|
|
|
|
struct EntityHandle {
|
|
uint32_t entityId;
|
|
EntityHandle(uint32_t _id = 0) : entityId(_id) {}
|
|
};
|
|
|
|
namespace Scripting {
|
|
// SPECIFIC ENTITY SECTION
|
|
Entity& getContextEntity(EntityHandle);
|
|
EntityEnvironment& getContextEntityEnvironment(EntityHandle);
|
|
|
|
template <typename T>
|
|
T& getContextEntityComponent(EntityHandle handle);
|
|
|
|
EntityHandle entity_getSelf(EntityHandle&);
|
|
std::string entity_getName(EntityHandle&);
|
|
int entity_getId(EntityHandle&);
|
|
void entity_setName(std::string&, EntityHandle&);
|
|
bool entity_exists(EntityHandle&);
|
|
bool entity_isRoot(EntityHandle&);
|
|
void entity_destroy(EntityHandle&);
|
|
CScriptArray* entity_getChildrens(EntityHandle&);
|
|
|
|
glm::mat4 entity_getWorldMatrix(EntityHandle&);
|
|
|
|
int entity_getNetworkBehaviour(EntityHandle&);
|
|
void entity_setNetworkBehaviour(int, EntityHandle&);
|
|
int entity_getForcedNetworkBehaviour(EntityHandle&);
|
|
bool entity_isValidNetworkBehaviour(EntityHandle&);
|
|
|
|
EntityHandle entity_createChild(std::string&, EntityHandle&);
|
|
void entity_setParent(EntityHandle, EntityHandle&);
|
|
EntityHandle entity_getParent(EntityHandle&);
|
|
|
|
bool entity_isDescendantOf(EntityHandle, EntityHandle&);
|
|
bool entity_opEquals(EntityHandle& other, EntityHandle&);
|
|
|
|
void entity_addGenericComponent(asIScriptGeneric* generic);
|
|
void entity_removeGenericComponent(asIScriptGeneric* generic);
|
|
void entity_getGenericComponent(asIScriptGeneric* generic);
|
|
void entity_hasGenericComponent(asIScriptGeneric* generic);
|
|
|
|
// SPECIFIC TRANSFORM SECTION
|
|
glm::vec3 transform_getPosition(EntityHandle&);
|
|
glm::vec3 transform_getScale(EntityHandle&);
|
|
glm::quat transform_getRotation(EntityHandle&);
|
|
glm::vec3 transform_getEuler(EntityHandle&);
|
|
void transform_setPosition(glm::vec3, EntityHandle&);
|
|
void transform_setScale(glm::vec3, EntityHandle&);
|
|
void transform_setRotation(glm::quat, EntityHandle&);
|
|
void transform_setEuler(glm::vec3, EntityHandle&);
|
|
|
|
void constructEntityStruct(void* memory);
|
|
void destructEntityStruct(void* memory);
|
|
} // namespace Scripting
|
|
} // namespace Deer
|