Демонстрациооный триггер и файлы для своих разработок можно скачать здесь: http://trainz.kemal.tu2.ru/file.php?id=5
Рассмотрим подробнее его использование.
- TargetTriggerDemo.cdp - триггер, который просто сообщает, что на него наехали. Можно использовать как пример.
- TargetTrigger.gs - собственно, класс, реализующий технологию. Для создания своего триггера этот файл надо положить в папку дополнения и наследовать свой скрипт от него:
- Код: Выделить всё
include "TargetTrigger.gs"
class MyTrigger isclass TargetTrigger{
public void Init(void){
inherited();
ttSetType("type");
}
};
- ttVehicle.gse - класс, осуществляющий поддержку со стороны вагонов (так же нужно класть и к тригграм для возможности кастования). Зашифрован специально от шаловливых ручек, т.к. малейшие изменения могут помешать работе. Вот объявление этого класса:
- Код: Выделить всё
class ttVehicle{
public float[] ttGetPoints(string type);
void ttAddPoints(string type, float[] value);
void ttRemovePoints(string type);
string[] ttGetTypes();
public void Init(void);
};
Для инициализации нужно назначить точки, например так:- Код: Выделить всё
include "Vehicle.gs"
include "ttVehicle.gs"
class MyVehicle isclass Vehicle, ttVehicle{
public void Init(void){
inherited();
float[] f=new float[0];
f[0]=3.675;
ttAddPoints("pant", f);
}
};
upd: обновил интерфейс. Теперь обработчику сообщается ещё и направление вагона относительно триггера.
Скоро опубликую дополнение, в котором это используется.