MBHaxe/src/InteriorObject.hx
2024-07-19 18:32:52 +05:30

43 lines
1 KiB
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;
import src.Util;
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 (!Util.isIOSInstancingSupported()) {
this.useInstancing = false;
}
if (this.level != null)
this.collisionWorld = this.level.collisionWorld;
DifBuilder.loadDif(this.interiorFile, cast this, onFinish);
}
public override function setTransform(transform:Matrix) {
super.setTransform(transform);
collider.setTransform(transform);
this.level.collisionWorld.updateTransform(this.collider);
}
}