DragonECS/test/TransformTable.cs

64 lines
2.0 KiB
C#
Raw Normal View History

2023-02-05 19:59:45 +08:00
using System;
using System.Collections.Generic;
2023-02-08 17:07:39 +08:00
using DCFApixels;
using UnityEngine;
2023-02-05 19:59:45 +08:00
namespace DCFApixels.DragonECS
{
2023-02-08 17:07:39 +08:00
public class TransformTable : EcsTable
2023-02-05 19:59:45 +08:00
{
2023-02-08 17:07:39 +08:00
public readonly EcsPool<Vector3> position;
public readonly EcsPool<Quaternion> rotation;
public readonly EcsPool<Vector3> scale;
public TransformTable(ref TableBuilder tableBuilder) : base(ref tableBuilder)
{
position = tableBuilder.Inc(Mems.position);
rotation = tableBuilder.Inc(Mems.rotation);
scale = tableBuilder.Inc(Mems.scale);
}
}
public class PositionTable : EcsTable
{
public readonly EcsPool<Vector3> position;
public readonly EcsPool<Quaternion> rotation;
public readonly EcsPool<Vector3> scale;
public PositionTable(ref TableBuilder tableBuilder) : base(ref tableBuilder)
{
position = tableBuilder.Inc(Mems.position);
rotation = tableBuilder.Cache(Mems.rotation);
scale = tableBuilder.Cache(Mems.scale);
}
}
public class RotationTable : EcsTable
{
public readonly EcsPool<Vector3> position;
public readonly EcsPool<Quaternion> rotation;
public readonly EcsPool<Vector3> scale;
public RotationTable(ref TableBuilder tableBuilder) : base(ref tableBuilder)
{
position = tableBuilder.Cache(Mems.position);
rotation = tableBuilder.Inc(Mems.rotation);
scale = tableBuilder.Cache(Mems.scale);
}
}
public class ScaleTable : EcsTable
{
public readonly EcsPool<Vector3> position;
public readonly EcsPool<Quaternion> rotation;
public readonly EcsPool<Vector3> scale;
public ScaleTable(ref TableBuilder tableBuilder) : base(ref tableBuilder)
{
position = tableBuilder.Cache(Mems.position);
rotation = tableBuilder.Cache(Mems.rotation);
scale = tableBuilder.Inc(Mems.scale);
}
2023-02-05 19:59:45 +08:00
}
}