move ITemplateNode to Coore

This commit is contained in:
Mikhail 2024-04-22 16:34:31 +08:00
parent 93f93a3ddb
commit 1a798dffbe

View File

@ -1,28 +1,12 @@
namespace DCFApixels.DragonECS namespace DCFApixels.DragonECS
{ {
public interface ITemplateNode
{
void Apply(int worldID, int entityID);
}
public interface ITemplate : ITemplateNode public interface ITemplate : ITemplateNode
{ {
//void Add(ITemplateNode template); //void Add(ITemplateNode template);
//void Remove(ITemplateNode template); //void Remove(ITemplateNode template);
} }
public static class ITemplateExtensions public static class ITemplateNodeExtensions
{ {
public static int NewEntity(this EcsWorld world, ITemplateNode template)
{
int e = world.NewEntity();
template.Apply(world.id, e);
return e;
}
public static entlong NewEntityLong(this EcsWorld world, ITemplateNode template)
{
entlong e = world.NewEntityLong();
template.Apply(world.id, e.ID);
return e;
}
public static entlong NewEntityWithGameObject(this EcsWorld world, ITemplateNode template, string name = "Entity", GameObjectIcon icon = GameObjectIcon.NONE) public static entlong NewEntityWithGameObject(this EcsWorld world, ITemplateNode template, string name = "Entity", GameObjectIcon icon = GameObjectIcon.NONE)
{ {
entlong e = world.NewEntityWithGameObject(name, icon); entlong e = world.NewEntityWithGameObject(name, icon);