mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-06 05:01:53 +00:00
31 lines
655 B
Beef
31 lines
655 B
Beef
using System;
|
|
|
|
using internal GlitchyEngine.World;
|
|
|
|
namespace GlitchyEngine.World
|
|
{
|
|
public struct Entity : uint64
|
|
{
|
|
// Binary Format:
|
|
// Bits: [0 - 31] [32 - 64]
|
|
// Data: Version Index
|
|
|
|
[Inline]
|
|
internal uint32 Version => (uint32)this;
|
|
|
|
[Inline]
|
|
internal uint32 Index => (uint32)(this >> 32);
|
|
|
|
[Inline]
|
|
static internal Entity CreateEntityID(uint32 index, uint32 version)
|
|
{
|
|
return ((uint64)index << 32) | version;
|
|
}
|
|
|
|
[Inline]
|
|
internal bool IsValid => Index != InvalidEntity.Index;
|
|
|
|
public const Entity InvalidEntity = ((uint64)uint32.MaxValue << 32) | 0;//TODO: Report bug: CreateEntityID(uint32.MaxValue, 0);
|
|
}
|
|
}
|