TransporterFleet

Задает автопарк транспортеров, которые агенты (материальные объекты) могут захватить и освободить с помощью блоков SeizeTransporter и ReleaseTransporter.

Примером транспортера может служить автопогрузчик (AGV).

У транспортеров есть базовое местоположение, куда они могут при необходимости вернуться.

Транспортеры одного автопарка могут обладать разными свойствами, анимацией, хранить статистику своего использования и т.д.

Транспортеры движутся по путям сети. По умолчанию транспортеры выбирают самый короткий путь. При необходимости можно задать свой маршрут, выбрав опцию Нестандартная маршрутизация и введя в поле параметра Найти путь функцию, реализующую алгоритм создания нестандартного маршрута.

Параметры

Количество транспортеров
Количество транспортеров  в этом автопарке. Заданное количество не должно превышать количество аттракторов (если они есть) в базовом местоположении.
Синтаксис: int capacity
Установить новое значение во время выполнения: set_capacity(новое значение)
Базовое местоположение (узлы)
Местоположение, в котором базируются транспортеры, и в которое они могут возвращаться, когда освобождены. Базовое местоположение можно задавать с помощью Прямоугольного узла, Многоугольного узла или Точечного узла. Прямоугольные и многоугольные узлы могут содержать Аттракторы, определяющие точные места нахождения транспортеров. Количество аттракторов, помещенных в узлах, определяет максимальное количество транспортеров, которые они могут принять. Пустые прямоугольные и многоугольные узлы могут содержать неограниченное количество транспортеров. В Точечном узле может находиться только один транспортер.
Синтаксис: AreaNode[] homeNodes
Установить новое значение во время выполнения: set_homeNodes(новое значение)
Мин расстояние до препятствий
Здесь вы можете задать минимальное расстояние, на которое транспортеры этого автопарка могут подъезжать к другим транспортерам (как этого, так и другого автопарков).
Это ограничение учитывается только при соблюдении дистанции до транспортера, находящегося перед данным транспортером, по ходу его движения.
Синтаксис: double minDistanceToObstacle
Установить новое значение во время выполнения: set_minDistanceToObstacle(новое значение)
Значение по умолчанию: 1 метр
Транспортер
Новый транспортер [динамический]
Задайте тип транспортеров в этом автопарке.
Тип значения: Agent
Изменить размеры [динамический]
Если опция выбрана, позволяет задавать размеры транспортеров (длину, ширину, высоту) в этом автопарке.
Тип значения: boolean
Локальные переменная:  unit - транспортер
Длина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Длина транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Ширина [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Ширина транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Высота [динамический]
[Параметр виден, если выбрана опция Изменить размеры] Высота транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Максимальная скорость [динамический]
Максимальная скорость транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Ускорение [динамический]
Ускорение транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Замедление [динамический]
Замедление транспортера.
Тип значения: double
Локальные переменная:  unit - только что созданный транспортер
Специфические
Нестандартная маршрутизация
По умолчанию транспортеры выбирают самый короткий путь. Выберите опцию, чтобы задать нестандартный маршрут для транспортеров (ниже, в поле параметра Найти путь). 
Синтаксис: boolean customRouting
Установить новое значение во время выполнения: set_customRouting(новое значение)
Найти путь [динамический]
[Параметр виден, если выбрана опция Нестандартная маршрутизация] Здесь можно задать функцию, реализующую алгоритм создания нестандартного маршрута. Функция должна возвращать экземпляр List. Порядок путей в списке должен соответствовать пути следования: первый путь от текущего местоположения, второй путь, ... , последний путь к месту назначения.
Тип значения: List<Path>
Локальные переменные:  unit - транспортер
             Agent agent - агент (материальный объект)
                          ILocation source - текущее местоположение транспортера
                          ILocation target - место назначения, в которое транспортер должен прибыть
Добавить транспортеры в
Здесь вы можете указать, куда будут помещены транспортеры, созданные этим блоком, в популяцию по умолчанию или в другую популяцию, которую вы можете выбрать ниже.
Синтаксис:  boolean addToCustomPopulation
Значение по умолчанию: популяцию по умолчанию (false)
Популяция агентов [динамический]
[Параметр виден, если в Добавить транспортеры в: выбрана опция другую популяцию] Имя популяции агентов, куда будут помещены транспортеры, созданные этим блоком.
Тип значения:  AgentList
Локальная переменнаяT unit - транспортер
Действия
При создании транспортера [код]
Здесь вы можете задать код, который будет выполняться в момент создания нового транспортера (может использоваться для дополнительных настроек).
Локальная переменная:  unit - только что созданный транспортер
При захвате [код]
Здесь вы можете задать код, который будет выполняться при захвате транспортера.
Локальные переменные:  unit - захваченный транспортер
                          Agent agent - агент, захватывающий транспортер
При освобождении [код]
Здесь вы можете задать код, который будет выполняться при освобождении транспортера.
Локальные переменные:  unit - освобожденный транспортер
                          Agent agent - агент, освобождающий транспортер
При изменении состояния транспортера [код]
Здесь вы можете задать код, который будет выполняться при изменении состояния транспортера.
Локальные переменныеunit - транспортер, сменивший состояние
                         TransporterState state - одно из состояний транспортера:
           
TransporterState.DELIVERING, TransporterState.GOING_TO_AGENT, TransporterState.GOING_HOME, TransporterState.IDLE, TransporterState.PROCESSING.
При входе на путь [код]
Здесь вы можете задать код, который будет выполняться, когда транспортер попадает на путь.
Локальные переменные:  unit - транспортер, который начал движение по этому пути
                          Path path - путь, по которому движется транспортер
При выходе с пути [код]
Здесь вы можете задать код, который будет выполняться, когда транспортер покидает путь.
Локальные переменные:  unit - транспортер, покидающий путь
                          Path path - путь, который покидает транспортер
При входе в узел [код]
Здесь вы можете задать код, который будет выполняться, когда транспортер входит в узел.
Локальные переменные:  unit - транспортер, поступающий в узел
                          Node node - узел, в который входит транспортер
При выходе из узла [код]
Здесь вы можете задать код, который будет выполняться, когда транспортер покидает узел.
Локальные переменные:  unit - транспортер, покидающий узел
                          Node node - узел, который покидает транспортер

Функции

double utilization() - Возвращает среднее значение коэффициентов загрузки каждого транспортера этого блока (собранное за время, прошедшее с последнего вызова функции resetStats()). 

int numberOfIdle()- Возвращает количество свободных транспортеров.

int numberOfBusy() - Возвращает количество занятых транспортеров.

boolean containsUnit(Agent unit) - Проверяет, содержит ли автопарк указанный транспортер. Возвращает true, если содержит; иначе, false).

int size() - Возвращает общее количество транспортеров в этом автопарке, включая те, которые не входят в текущую рабочую смену.

void resetStats() - Удаляет собранную статистику использования автопарка.

Collection<ResourceRequest> getRequests() - Возвращает текущую очередь запросов к транспортерам этого автопарка. Запросы в очереди упорядочены по их приоритету. Этот список не редактируется.