Update README-RU.md

This commit is contained in:
Mikhail 2024-03-07 09:08:51 +08:00
parent cfa7bbe3c2
commit c701c917b4

View File

@ -24,6 +24,7 @@
- [Интеграция](#интеграция) - [Интеграция](#интеграция)
- [Инъекция зависимостей](#инъекция-зависимостей) - [Инъекция зависимостей](#инъекция-зависимостей)
- [Auto Builder аспектов](#auto-builder-аспектов) - [Auto Builder аспектов](#auto-builder-аспектов)
- [Auto Runner-ы](#auto-runner-ы)
- [Пример кода](#пример-кода) - [Пример кода](#пример-кода)
- [Не null инъекции](#не-null-инъекции) - [Не null инъекции](#не-null-инъекции)
@ -84,9 +85,32 @@ EcsDefaultWorld _world;
* `[IncImplicit(type)]` - добавит в включающее ограничение указанный в конструкторе тип `type`, аналог метода `Include`; * `[IncImplicit(type)]` - добавит в включающее ограничение указанный в конструкторе тип `type`, аналог метода `Include`;
* `[ExcImplicit(type)]` - добавит в исключающее ограничение указанный в конструкторе тип `type`, аналог метода `Exclude`; * `[ExcImplicit(type)]` - добавит в исключающее ограничение указанный в конструкторе тип `type`, аналог метода `Exclude`;
# Auto Runner-ы
Для получения раннеров без добавления, есть атрибут `[BindWithRunner(type)]` и метод `GetRunnerAuto<T>()`.
``` c#
[BindWithRunner(typeof(DoSomethingProcessRunner))]
interface IDoSomethingProcess : IEcsProcess
{
void Do();
}
//Реализация раннера. Пример реализации можно так же посмотреть в встроенных процессах
sealed class DoSomethingProcessRunner : EcsRunner<IDoSomethingProcess>, IDoSomethingProcess
{
public void Do()
{
foreach (var item in Process) item.Do();
}
}
//...
// Если в пайплайн небыл добавлен раннер, то GetRunnerAuto автоматически добавит экземпляр DoSomethingProcessRunner.
_pipeline.GetRunnerAuto<IDoSomethingProcess>().Do();
```
# Пример кода # Пример кода
```csharp ```csharp
class VelocitySystemDI : IEcsRunProcess class VelocitySystemDI : IEcsRun
{ {
class Aspect : EcsAspectAuto class Aspect : EcsAspectAuto
{ {
@ -111,7 +135,7 @@ class VelocitySystemDI : IEcsRunProcess
<summary>Тот же код но без AutoInjections</summary> <summary>Тот же код но без AutoInjections</summary>
```csharp ```csharp
class VelocitySystem : IEcsRunProcess, IEcsInject<EcsDefaultWorld>, IEcsInject<TimeService> class VelocitySystem : IEcsRun, IEcsInject<EcsDefaultWorld>, IEcsInject<TimeService>
{ {
class Aspect : EcsAspect class Aspect : EcsAspect
{ {