Перейти к основному содержанию
Картриджные загрузчики — это такие вещи, как PDA и ПК. Картриджи будут взаимозаменяемо называться программой или картриджем в зависимости от того, установлены ли они на загрузчик или просто вставлены в него.

Концепции

Вставка

CartridgeLoaderSystem отправит событие CartridgeAddedEvent сущности картриджа, когда тот будет вставлен или установлен на загрузчик.

Установка

Прототипы картриджей могут быть указаны в CartridgeLoaderComponent, которые должны быть установлены при инициализации карты, а вставленные картриджи могут быть установлены на загрузчик игроками. Загрузчики картриджей имеют максимальное количество программ, которые можно установить. Лимит установки игнорируется при установке картриджей, указанных в прототипе загрузчика.

Активация

Картридж/программа будет сохранён как активный в компоненте загрузчика картриджа, и CartridgeActivatedEvent будет вызван при нём, когда игрок откроет программу через UI.

Деактивация

Когда игрок выходит из программы или переключается на другую программу, CartridgeDeactivatedEvent будет вызван на текущей активной программе, а сохранённая активная программа будет изменена/очищена. Это не происходит, когда игрок закрывает UI загрузчика. Повторное открытие UI просто отобразит UI текущей активной программы.

Релей событий

CartridgeLoaderSystem будет передавать определённые события текущей активной программе и всем программам, работающим в фоне. Это включает события сетевого взаимодействия устройств.

Текущие ретранслируемые события:

  • DeviceNetworkPacketEvent через CartridgeDeviceNetPacketEvent
  • AfterInteractEvent через CartridgeAfterInteractEvent
  • Любой подкласс CartridgeMessageEvent, который оборачивается через CartridgeUiMessage, подкласс BoundUserInterfaceMessage для отправки сообщений из UI картриджа
Все ретранслируемые события содержат uid сущности загрузчика картриджа в качестве свойства: LoaderUid.

Фоновые программы

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

Фрагменты UI программы

UI картриджей являются подклассами абстрактного класса CartridgeUi, который определяет методы для получения корневого элемента управления этого фрагмента UI и методы для его настройки и обновления. Возвращаемый корневой элемент управления прикрепляется к элементу управления в UI загрузчика картриджа с помощью метода AddChild этого элемента управления. Эти фрагменты UI называются UI fagments. Прототипы картриджей определяют фрагмент UI для использования в поле Ui компонента CartridgeUiComponent. Пример:
  - type: CartridgeUi
    ui: !type:NotekeeperUi

Элементы домашнего экрана

Элементы домашнего экрана ещё не реализованы
Картриджи могут добавлять что-то на домашний экран CartridgeLoader. Конкретный вариант загрузчика картриджа не обязан их показывать. (PDA будут, а ПК, возможно, нет). Элементы домашнего экрана — это просто текст, который будет отображаться на домашнем экране, например:
- Alerts: 0
- New Messages: 14
- Latest news:
    John Genero caused an uproar when he slipped the clown that
    was leaving banana peels everywhere
Элементы сортируются по свойству приоритета, и есть ограниченное количество элементов, которые могут быть отображены. Если элемент добавляется, когда элементы уже заполнены, удаляется элемент с самым низким приоритетом.
Последнее изменение 21 июня 2026 г.