Вот есть у меня такое устройство - "Креатор". Игрок разбирает в нем любой прописанный в конфиге игровой предмет и получает разные ресурсы. В него устанавливаются разные модули, каждый на определенную игровую категорию (инструменты, конструкции, оружие, патроны, броня, рюкзаки, и.т.п.) и в зависимости от установленного модуля и наличия нужных ресурсов игрок может произвести требуемый предмет. Создаваемое помещается в инвентарь креатора, по типу контейнера. Все прекрасно работает.
Но вот понадобилось мне сделать там создание транспорта. Что-то вроде виртуального гаража. Код ищет ближайший транспорт, проверяет нужные условия и игрок через гуи заносит выбранный транспорт в гараж. Сохраняется все в базе данных. И это все работает.
В гуи есть список транспорта в гараже и при нужном выборе я могу его оттуда изъять(сохраняется название класса транспорта).
А вот тут-то и встал вопрос - как создать транспорт обратно?
Есть простой вариант - сделать невидимую или даже видимую, вертолетную площадку и спавнить его там, но тут появляются свои трудности, да и способ мне не очень. Я хочу сделать так же как с прочими предметами: появился некий ящик, забираешь его из инвентаря и тащишь его куда хочешь, а потом через его экшен, или еще как, спавнишь выбранный транспорт. Но как прилепить к данному предмету (условно ящику) название выбранного класса транспорта? Ведь он пока не на земле, не является объектом. Можно ли к предмету в инвентаре прикреплять переменные?
Мне пока пришло в голову только сделать глобальную переменную для игрока куда заносить класс вызываемого транспорта и при активации ящика брать его для спавна оттуда. Однако это попахивает извращениями)) Да и если другой игрок завладеет ящиком, то он не сможет его активировать. Хотя это тоже все можно обыграть.
Может кто-нибудь сможет подсказать еще способы решения такой задачи?
Вот сам креатор, чтобы было понятнее, что за монстр.)