mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-02-11 08:45:53 +00:00
implement getmounttransform
This commit is contained in:
parent
6f21a90d62
commit
1dc1966d8f
2 changed files with 18 additions and 3 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue