Имеется небольшая карта,
На ней можно строить здания, кликая мышкой по свободным ячейкам.
При инициализации карты от сервера приходит список уже построеных знадий:
"buildings": {
"1": {
"position": [2, 1],
"type": "barrack"
},
"2": {
"position": [2, 2],
"type": "hospital"
},
"3": {
"position": [0, 0],
"type": "school",
"size": 4
},
}
У некоторых построек есть свойство
size
, равное
4
- это значит, что здание занимает 4 клетки.
Нужно:
- строить здания, пришедшие при инициализации
- динамически добавлять и разрушать здания
- иметь доступ к зданию по его
id
Я выбрал шаблон фабрики (
Factory), но я его не очень хорошо понимаю - где хранить весь список зданий? В модуле фабрики? Или сделать фабрику частью модуля Здания?
Или мне нужен компоновщик (
Composite)?
У меня есть модули:
- Карта - отвечает за рендер карты, а также выдает ячейки по координатам
- Здание - собственно здание. У него есть свойства: координата, размер, если он отличен от 1, ссылка на картинку здания
- Фабрика Зданий - создает здания
Знаю, что это элементарные вещи для геймдева, но я пока с этим не особо знаком.