public EntityData(string name, int id, EntityBlock entityBlock) { this.name = name; this.id = id; this.entityBlock = entityBlock; this.localId = id & (DataBlockInfo.BlockSize - 1); }
internal void Execute(EntityBlock entityBlock) { for (int i = 0; i < actionCount; i++) { groupActions[i].Update(entityBlock); } }
public static int AddBlock(EntityType entityType) { int id = entities.AddId(); EntityBlock entityBlock = new EntityBlock(id, entityType); entities[id] = entityBlock; return(id); }
public void Update(EntityBlock entityBlock) { if (nowCycle == cycle) { Execute(entityBlock); nowCycle = 0; } else { nowCycle++; } }
public override void Execute(EntityBlock entityBlock) { int bid = entityBlock.BlockId << DataBlockInfo.BlockSizePow; int[] mark = entityBlock.DataBlockInfo.Marks; for (int i = 0; i < DataBlockInfo.BlockSize; i++) { if (mark[i] == -1) { actions?.Invoke(bid + i); } } }
public abstract void Execute(EntityBlock entityBlock);
internal Entity(int id, EntityBlock entityBlock) { entityData = entityBlock.GetData <EntityData>(id & (DataBlockInfo.BlockSize - 1)); }