using System;
using GlitchyEngine.Core;
using GlitchyEngine.Math;
namespace GlitchyEngine;
internal struct EntityHandle
{
public uint Version;
public uint Index;
}
public abstract class Entity : EngineObject
{
//private UUID _uuid;
//public UUID UUID => _uuid;
/////
///// Empty constructor not used. Do NOT USE!
/////
//protected Entity()
//{}
//internal Entity(UUID uuid)
//{
// _uuid = uuid;
//}
public T GetComponent() where T : Component
{
return null;
}
//public Transform Transform => new (){_uuid = _uuid};
public Vector3 Translation
{
get
{
ScriptGlue.Entity_GetTranslation(_uuid, out Vector3 translation);
return translation;
}
set => ScriptGlue.Entity_SetTranslation(_uuid, value);
}
// Will be executed once after the entity as be created.
// void OnCreate();
// Will be executed every frame.
// void OnUpdate(GameTime);
// Will be executed once when the entity is being destroyed.
// void OnDestroy();
}