MBHaxe/src/InteriorObject.hx
2023-07-07 00:14:22 +05:30

38 lines
996 B
Haxe

package src;
import collision.CollisionWorld;
import src.MarbleWorld;
import src.DifBuilder;
import h3d.Matrix;
import collision.CollisionEntity;
import src.GameObject;
import h3d.scene.Object;
class InteriorObject extends GameObject {
public var collider:CollisionEntity;
public var interiorFile:String;
public var useInstancing = true;
public var level:MarbleWorld;
public var collisionWorld:CollisionWorld;
public function new() {
super();
this.isCollideable = true;
}
public function init(level:MarbleWorld, onFinish:Void->Void) {
this.identifier = this.interiorFile;
this.level = level;
if (this.level != null)
this.collisionWorld = this.level.collisionWorld;
DifBuilder.loadDif(this.interiorFile, cast this, onFinish, -1, this.isCollideable);
}
public override function setTransform(transform:Matrix) {
super.setTransform(transform);
if (this.isCollideable) {
collider.setTransform(transform);
collisionWorld.updateTransform(this.collider);
}
}
}