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