Context

Контекст - альтернатива DI, простой механизм хранения и передачи пользовательских данных и сервисов в системы и другие методы

  • Представлен в виде статического класса Ecs<IWorldType>.Context<T>

Основные операции:

// Пользовательские классы и сервисы
public class UserService1 { }
public class UserService2 { }

// Добавление в контекст нужных обьектов, не обязательно добавлять в контекст обьекты до инициализации, в процессе работы систем также могут добавляться новые данные
// Важно помнить что если контекст используется в Init системах то данные туда должны быть переданы до Ecs.Initialize() или до вызова в цепочке вызовов конкретной Init системы 
// Важно! в контексте может храниться строго 1 обьект 1 типа - при установке чере метод Set повторно одного типа будет ошибка
MyEcs.Context<UserService1>.Set(new UserService1(), clearOnDestroy: true);
MyEcs.Context<UserService2>.Set(new UserService2());

// При вызове Replace указаный тип установится или заменится без ошибки 
MyEcs.Context<UserService2>.Replace(new UserService2());

// Проверить есть в контексте значение данного типа
bool has = MyEcs.Context<UserService2>.Has();

// Удалить значение из контекста
MyEcs.Context<UserService2>.Remove();

// Важно! контекст очистится при вызове MyEcs.Destroy(); если были указаны clearOnDestroy true при установке значения