#задачи/идеи
<br>
Хочу сделать так, чтобы у OrderComponent было поле-событие, которое на один фрейм было бы true, когда приказ выполнен.
<br>
<br>
Будет компонент PositionChangedSubscription
При каждой проверке данного компонента на событие - будет сбрасываться счетчик
Если счетчик давно не обновлялся, то по эвенту SubSystem не ведет проверку.
Если подписки нет, то подпишется.
<br>
<br>
OrderComponent и все производные компоненты создаются в момент приказа и остаются активными до тех пор, пока приказ в силе. Приказ отменяет тот, кто отдал приказ.
Компоненты создаются только при возникновении событии или при создании entity.
Если мы будем заранее создавать и добавлять компоненты к entity, то системы будут проводить лишние телодвижения. (Постоянно мониторить и тем самым поедать часть ресурсов системы)
<br>
<br>
У компонента все зависимые компоненты должны сохраняться в отдельном поле.
Чтобы ствол хаммера возвращался в исходное положение. Сделаем отдельную систему, которая если видит что нету задание на поворот ствола как на врага тоо ствол возвращаем в исходное положение
В той же системе можно обратно поворачивать в первоначальное положение
<br>
Если у request manager был вызов getallrequests, но не был вызов removeAllRequests, тогда выдает фатал
Нужно заложить в код, что приказы могут прерываться и приказываться заново через доли секунды. Можно ли не удаляя компонент с приказом, просто переписать его данные с обновленным приказом?
<br>
Приказ не удаляется до тех пор, пока задание не будет выполнено железно. В случае изменения данных в компоненте, сам компонент не пересоздается, а просто меняются данные.
Например:
- ствол поворачивается на врага. Все, дуло повернуто, задание для системы как бы выполнено, но дело в том, что в любой момент враг может пытаться уехать от нападения. Поэтому приказ не удаляется, а система мониторит данные - не начал ли вдруг враг двигаться, если начал, то направление ствола корректируется.
- система, которая «подвозит» юнита в радиус поражения врага. Тоже самое, подвез и как бы для системы задача выполнена. Однако, враг может в любой момент выехать с радиуса атаки. Поэтому приказ не удаляется, а система мониторит данные. Следит, не сменилась ли позиция врага.
Можно сделать так, чтобы целью атаки всегда была сущность, а если атака на пустоту, создаем сущность. Перед нанесением урона, проверяем, есть ли у сущности компонент здоровья, если нету, то не наносим урон
В компоненте храним все зависимые компоненты и сущности. При удалении компонента, все зависимые тоже удаляются.