Очень часто при скриптовании ПС бывает нужно описать свойства всего поезда, а не отдельно взятого вагона. Но вот незадача, в Траинзе не существует пользовательского объекта, который бы был наследником класса Train. Проще говоря, скриптовать мы можем только отдельные вагоны, а не поезда целиком. Ну ладно, раз так, то придётся всё то, что мы собирались реализовывать в MyTrain, реализовать в MyVehicle. Хорошо, допустим реализовали. Но какой из вагонов должен это считать? Ведь будет очень не хорошо если, например, два вагона будут дёргать контроллер каждый в свою сторону. Делать "самый умный" вагон, каждый из которых будет опрашивать всех подряд, тоже не хорошо. Надо бы сделать централизацию. Вот для этого я и задумал sme_library. Это будет либа (одна на всх), которая будт следить за составами и вагонами в них, реагировать на сцепку/расцепку и упростит передачу данных между вагонами, объединёнными в СМЕ.
Всё это здорово, осталось только реализовать)) И вот тут я задумался, а как же это сделать? Например объект "СМЕ" должен иметь список вагонов, чтобы знать кому рассылать сообщения, а объект "вагон" должен ссылаться на СМЕ. Получается, что один из классов должен содержать свойство тип которого описан позже. Большинство языков такого не переваривают, GameScript в их числе. Как быть?