mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-07-13 10:21:04 +00:00
33 lines
1 KiB
Haxe
33 lines
1 KiB
Haxe
package triggers;
|
|
|
|
import h3d.Vector;
|
|
import src.MarbleWorld;
|
|
import mis.MissionElement.MissionElementTrigger;
|
|
import src.ResourceLoader;
|
|
import mis.MisParser;
|
|
|
|
class CheckpointTrigger extends Trigger {
|
|
public var disableOOB = false;
|
|
public var add:Vector = null;
|
|
|
|
override public function new(element:MissionElementTrigger, level:MarbleWorld) {
|
|
super(element, level);
|
|
|
|
this.disableOOB = element.fields.exists('disableOob') ? MisParser.parseBoolean(element.fields['disableOob'][0]) : false;
|
|
this.add = element.fields.exists('add') ? MisParser.parseVector3(element.fields['add'][0]) : null;
|
|
}
|
|
|
|
public override function init(onFinish:() -> Void) {
|
|
super.init(() -> {
|
|
ResourceLoader.load("sound/checkpoint.wav").entry.load(onFinish);
|
|
});
|
|
}
|
|
|
|
public override function onMarbleEnter(marble:src.Marble, time:src.TimeState) {
|
|
super.onMarbleEnter(marble, time);
|
|
var shape = this.level.namedObjects.get(this.element.respawnpoint);
|
|
if (shape == null)
|
|
return;
|
|
this.level.saveCheckpointState(shape, this);
|
|
}
|
|
}
|