Skip to content

Commit

Permalink
Merge branch 'release/2023.1.22'
Browse files Browse the repository at this point in the history
  • Loading branch information
Leopotam committed Jan 22, 2023
2 parents 73efbfd + 524852f commit b2b2010
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 12 deletions.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2012 - 2022 [email protected]
Copyright (c) 2012 - 2023 [email protected]

Данное программное обеспечение и сопутствующая документация (далее - Продукт)
выпускается на условиях двойного лицензирования - под собственнической/коммерческой
Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,25 +84,29 @@ struct Component1 {
## Система
Является контейнером для основной логики для обработки отфильтрованных сущностей. Существует в виде пользовательского класса, реализующего как минимум один из `IEcsInitSystem`, `IEcsDestroySystem`, `IEcsRunSystem` (и прочих поддерживаемых) интерфейсов:
```c#
class UserSystem : IEcsPreInitSystem, IEcsInitSystem, IEcsRunSystem, IEcsDestroySystem, IEcsPostDestroySystem {
class UserSystem : IEcsPreInitSystem, IEcsInitSystem, IEcsRunSystem, IEcsPostRunSystem, IEcsDestroySystem, IEcsPostDestroySystem {
public void PreInit (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Init() и до срабатывания IEcsInitSystem.Init().
// Будет вызван один раз в момент работы IEcsSystems.Init() и до срабатывания IEcsInitSystem.Init() у всех систем.
}

public void Init (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Init() и после срабатывания IEcsPreInitSystem.PreInit().
// Будет вызван один раз в момент работы IEcsSystems.Init() и после срабатывания IEcsPreInitSystem.PreInit() у всех систем.
}

public void Run (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Run().
}

public void PostRun (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Run() после срабатывания IEcsRunSystem.Run() у всех систем.
}

public void Destroy (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Destroy() и до срабатывания IEcsPostDestroySystem.PostDestroy().
// Будет вызван один раз в момент работы IEcsSystems.Destroy() и до срабатывания IEcsPostDestroySystem.PostDestroy() у всех систем.
}

public void PostDestroy (IEcsSystems systems) {
// Будет вызван один раз в момент работы IEcsSystems.Destroy() и после срабатывания IEcsDestroySystem.Destroy().
// Будет вызван один раз в момент работы IEcsSystems.Destroy() и после срабатывания IEcsDestroySystem.Destroy() у всех систем.
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"displayName": "LeoECS Lite",
"description": "LeoECS Lite - легковесный ECS-фреймворк, основанный на структурах. Производительность, нулевые или минимальные аллокации, минимизация использования памяти, отсутствие зависимостей от любого игрового движка - это основные цели данного фреймворка.",
"unity": "2020.3",
"version": "2022.12.22",
"version": "2023.1.22",
"keywords": [
"leoecslite",
"leoecs",
Expand Down
2 changes: 1 addition & 1 deletion src/components.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ----------------------------------------------------------------------------
// The Proprietary or MIT-Red License
// Copyright (c) 2012-2022 Leopotam <[email protected]>
// Copyright (c) 2012-2023 Leopotam <[email protected]>
// ----------------------------------------------------------------------------

using System;
Expand Down
2 changes: 1 addition & 1 deletion src/entities.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ----------------------------------------------------------------------------
// The Proprietary or MIT-Red License
// Copyright (c) 2012-2022 Leopotam <[email protected]>
// Copyright (c) 2012-2023 Leopotam <[email protected]>
// ----------------------------------------------------------------------------

using System.Runtime.CompilerServices;
Expand Down
2 changes: 1 addition & 1 deletion src/filters.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ----------------------------------------------------------------------------
// The Proprietary or MIT-Red License
// Copyright (c) 2012-2022 Leopotam <[email protected]>
// Copyright (c) 2012-2023 Leopotam <[email protected]>
// ----------------------------------------------------------------------------

using System;
Expand Down
18 changes: 17 additions & 1 deletion src/systems.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ----------------------------------------------------------------------------
// The Proprietary or MIT-Red License
// Copyright (c) 2012-2022 Leopotam <[email protected]>
// Copyright (c) 2012-2023 Leopotam <[email protected]>
// ----------------------------------------------------------------------------

using System.Collections.Generic;
Expand All @@ -24,6 +24,10 @@ public interface IEcsRunSystem : IEcsSystem {
void Run (IEcsSystems systems);
}

public interface IEcsPostRunSystem : IEcsSystem {
void PostRun (IEcsSystems systems);
}

public interface IEcsDestroySystem : IEcsSystem {
void Destroy (IEcsSystems systems);
}
Expand Down Expand Up @@ -53,6 +57,7 @@ public class EcsSystems : IEcsSystems {
readonly Dictionary<string, EcsWorld> _worlds;
readonly List<IEcsSystem> _allSystems;
readonly List<IEcsRunSystem> _runSystems;
readonly List<IEcsPostRunSystem> _postRunSystems;
readonly object _shared;
#if DEBUG
bool _inited;
Expand All @@ -64,6 +69,7 @@ public EcsSystems (EcsWorld defaultWorld, object shared = null) {
_worlds = new Dictionary<string, EcsWorld> (8);
_allSystems = new List<IEcsSystem> (128);
_runSystems = new List<IEcsRunSystem> (128);
_postRunSystems = new List<IEcsPostRunSystem> (128);
}

public virtual T GetShared<T> () where T : class {
Expand Down Expand Up @@ -101,6 +107,9 @@ public virtual IEcsSystems Add (IEcsSystem system) {
if (system is IEcsRunSystem runSystem) {
_runSystems.Add (runSystem);
}
if (system is IEcsPostRunSystem postRunSystem) {
_postRunSystems.Add (postRunSystem);
}
return this;
}

Expand Down Expand Up @@ -144,6 +153,13 @@ public virtual void Run () {
#if DEBUG && !LEOECSLITE_NO_SANITIZE_CHECKS
var worldName = CheckForLeakedEntities (this);
if (worldName != null) { throw new System.Exception ($"Empty entity detected in world \"{worldName}\" after {_runSystems[i].GetType ().Name}.Run()."); }
#endif
}
for (int i = 0, iMax = _postRunSystems.Count; i < iMax; i++) {
_postRunSystems[i].PostRun (this);
#if DEBUG && !LEOECSLITE_NO_SANITIZE_CHECKS
var worldName = CheckForLeakedEntities (this);
if (worldName != null) { throw new System.Exception ($"Empty entity detected in world \"{worldName}\" after {_postRunSystems[i].GetType ().Name}.PostRun()."); }
#endif
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/worlds.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ----------------------------------------------------------------------------
// The Proprietary or MIT-Red License
// Copyright (c) 2012-2022 Leopotam <[email protected]>
// Copyright (c) 2012-2023 Leopotam <[email protected]>
// ----------------------------------------------------------------------------

using System;
Expand Down

0 comments on commit b2b2010

Please sign in to comment.