Можно ли модифицировать артефакт, созданный процессором ресурсов, после установки, не создавая заново пакет развертывания? - PullRequest
0 голосов
/ 28 января 2020

Я работаю над процессором ресурсов (OSGi Compendium, 6.0.0, 114.10), который анализирует файлы YAML и создает Предметы через службу Item Admin для игры. Я хочу развернуть как Deployment Packages (cmpn, 114.2):

  • Framework: все сервисы / процессоры, необходимые для запуска игры (включая элемент, область, модель, спрайт, пользовательский интерфейс и т. Д. c служба). Все сервисы / процессоры доступны в виде пакетов независимо от пакета Framework. Framework представляет собой особую комбинацию служб / процессоров для создания игры определенного типа (платформер, RPG, FPS, песочница и т. Д. c)
  • Игра: содержит ресурсы, которые обрабатываются платформой.

Платформа содержит службу администратора элементов и процессор ресурсов элементов. Игра содержит ресурсы YAML, которые содержат определения Предметов, включая Меч.

id: sword

Игра также содержит Ресурсные процессоры и Сервисы для связанных свойств Предметов, например, какой урон он наносит, когда что-то поражает, через сервис администратора урона предметов:

item:
  id: sword
damage: 10

Игрок играет в Игру и наслаждается ею. Единственная жалоба, которую они имели, заключалась в том, что они sh Меч нанесли больше урона. Они хотели бы узнать, будет ли веселее, если Меч нанесет больше урона, чем указано Разработчиком. Они также хотят испытать множество других значений (3, 40, 100, 500, 99999), и это не является бременем для повторения.

Администратор урона предмета предоставляет способ установить урон, наносимый предмету, setDamage(item: Item, damage: Int). Этот метод используется Процессором Ресурса Повреждения Предмета для установки урона Предмета при установке Игры.

Вопрос

Может ли Игрок постоянно изменять урон Меча, без необходимости повторного создания пакета игрового развертывания при использовании процессоров ресурсов?

ресурс - файл в пакете развертывания, который обрабатывается для создания артефактов в Framework. Например, комплекты, конфигурации и разрешения - это разные ресурсы. - (cmpn, 114.1.2)

Артефакт - Конструкция, созданная из ресурса в пакете развертывания. Ресурс может иметь ноль или более артефактов, связанных с ним. Артефакты не имеют общего интерфейса, поскольку их природа различна и их существование абстрагируется службами Resource Processor. Артефакты должны быть удалены при удалении связанных с ними ресурсов. Примером артефакта является объект конфигурации, который создается из файла конфигурации в пакете развертывания. - (cmpn, 114.1.2)

Пакет развертывания - это набор связанных ресурсов , которые должны управляться как единица , а не как отдельные части. Например, пакет развертывания может содержать как пакет, так и данные его конфигурации. Ресурсы пакета развертывания тесно связаны с пакетом развертывания и не могут использоваться совместно с другими пакетами развертывания. - (cmpn, 114.2)

Пакет развертывания будет владеть его ресурсами. Если пакет развертывания удален, все его ресурсы и, следовательно, артефакты также должны быть удалены. Модель владения следует принципу no-shared : равные ресурсы не распределяются между пакетами развертывания. - (cmpn, 114.2.2)

Поскольку Ресурсы (файл YAML, содержащий Повреждение Предмета) создают 0..n Артефактов (объекты / ассоциации Повреждения Предмета), и Ресурсы не должны быть общими для Пакетов Развертывания, Означает ли это, что артефакты также не должны быть общими для пакетов развертывания? Или я могу изменить Артефакт в какой-то момент после установки Игры, не обновляя Пакет Развертывания, если Артефакт все еще удаляется при удалении ресурса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...