整理EntityDatabase代码

master
sunqinzhe 2 days ago
parent 6d912005a5
commit 6c8108e3ea
  1. 3
      Assets/Scripts/EntityType.cs
  2. 3
      Assets/Scripts/Server/WorldManager.cs
  3. 3
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.cs.meta
  4. 3
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs.meta
  5. 14
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataSet.cs
  6. 2
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs
  7. 11
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.cs.meta
  8. 0
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs
  9. 11
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.Block.gen.cs.meta
  10. 10
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs
  11. 3
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDataStruct.cs.meta
  12. 35
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs
  13. 0
      LocalPackages/com.nimin.tinyecs/Runtime/EntityDatabase.cs.meta

@ -2,8 +2,7 @@ namespace ECSTest
{ {
public enum EntityType public enum EntityType
{ {
Unit, Cannon,
Monster,
Bullet, Bullet,
} }

@ -4,7 +4,6 @@ namespace ECSTest.Server
{ {
public struct WorldManager public struct WorldManager
{ {
public EntityCollection<EntityType> entities; public EntityDatabase<EntityType, EntityDataBlockChain> bulletDatabase;
public EntityDataBlockChain chain;
} }
} }

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 24392c1216204b6ea64acd57bb43441b
timeCreated: 1668251924

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: c9227b743e78463b8df770cefc98fb18
timeCreated: 1668274486

@ -1,14 +0,0 @@
using System;
using Unity.Collections;
using Unity.Mathematics;
namespace GameCore.TinyECS
{
public struct EntityDataSet : IDisposable
{
public void Dispose()
{
//TODO
}
}
}

@ -13,7 +13,7 @@ namespace GameCore.TinyECS
public int elementAlign; public int elementAlign;
} }
public unsafe struct EntityDataBlockChain : IDisposable public unsafe struct EntityDataBlockChain : IEntityDataStruct
{ {
public readonly EntityDataBlockMeta blockMeta; public readonly EntityDataBlockMeta blockMeta;
private FixedList512Bytes<IntPtr> blockPtrList; private FixedList512Bytes<IntPtr> blockPtrList;

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7b0b5bb1c56f2114ba60d9154d447872
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 747b2bec360ee8141b0b46886b09f92d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,10 @@
using System;
namespace GameCore.TinyECS
{
public interface IEntityDataStruct : IDisposable
{
void Add();
void Remove(int index);
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 933c4528e6cf415dbfb79a148896839d
timeCreated: 1765943532

@ -0,0 +1,35 @@
using System;
using Unity.Collections;
using Unity.Mathematics;
namespace GameCore.TinyECS
{
public struct EntityDatabase<TEnum, TData> : IDisposable where TEnum : unmanaged where TData : unmanaged, IEntityDataStruct
{
public TData dataStruct;
public EntityGenerator<TEnum> generator;
public EntityCollection<TEnum> collection;
public Entity<TEnum> AddEntity()
{
var entity = generator.Create();
collection.Add(entity);
dataStruct.Add();
return entity;
}
public void RemoveEntity(Entity<TEnum> entity)
{
generator.Delete(entity);
if (collection.Remove(entity, out var index, out var _))
dataStruct.Remove(index);
}
public void Dispose()
{
generator.Dispose();
collection.Dispose();
dataStruct.Dispose();
}
}
}
Loading…
Cancel
Save