implement getmounttransform

This commit is contained in:
RandomityGuy 2021-06-03 23:12:07 +05:30
parent 6f21a90d62
commit 1dc1966d8f
2 changed files with 18 additions and 3 deletions

View file

@ -91,6 +91,8 @@ class DtsObject extends Object {
var rootObject:Object;
var colliders:Array<CollisionEntity>;
var mountPointNodes:Array<Int>;
public function new() {
super();
}
@ -104,6 +106,7 @@ class DtsObject extends Object {
var graphNodes = [];
var rootNodesIdx = [];
colliders = [];
this.mountPointNodes = [for (i in 0...32) -1];
for (i in 0...this.dts.nodes.length) {
graphNodes.push(new Object());
@ -127,6 +130,12 @@ class DtsObject extends Object {
var objects = dts.objects.filter(object -> object.node == i);
var sequenceAffected = ((1 << i) & affectedBySequences) != 0;
if (dts.names[dts.nodes[i].name].substr(0, 5) == "mount") {
var mountindex = dts.names[dts.nodes[i].name].substr(5);
var mountNode = Std.parseInt(mountindex);
mountPointNodes[mountNode] = i;
}
for (object in objects) {
var isCollisionObject = dts.names[object.name].substr(0, 3).toLowerCase() == "col";
@ -629,7 +638,13 @@ class DtsObject extends Object {
}
public function getMountTransform(mountPoint:Int) {
// TODO FIX WHEN DTS SUPPORT
return Matrix.I();
if (mountPoint < 32) {
var ni = mountPointNodes[mountPoint];
if (ni != -1) {
var mtransform = this.graphNodes[ni].getAbsPos().clone();
return mtransform;
}
}
return this.getTransform().clone();
}
}

View file

@ -26,7 +26,7 @@ class Main extends hxd.App {
super.init();
dtsObj = new DtsObject();
dtsObj.dtsPath = "data/shapes/images/helicopter.dts";
dtsObj.dtsPath = "data/shapes/hazards/ductfan.dts";
dtsObj.isCollideable = false;
dtsObj.isTSStatic = false;
// dtsObj.setRotation(Math.PI / 2, 0, 0);