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 при установке значения