Pre-rotate the anchor transform

This is the launch clamp side of the fix for the EL-ReStock launch clamp
compatibility issue. The issue was reported in the EL thread and started
out as issues with getting the build cost but after fixing that, had
issues with the clamps extending properly when built at a survey site.
The bulk of the fix for that is (or will be) in EL, but this change is
for handling rotated clamps: it points the tower in the correct (editor)
direction prior to the tower being extended.
pull/913/head
Bill Currie 4 years ago
parent a9bdd45a83
commit 7a29651f67

@ -22,6 +22,7 @@ namespace Restock
public LaunchClampGirderFactory girderFactory;
private int _girderSegments;
private Quaternion towerRot;
private Material _girderMaterial;
private Matrix4x4[] _girderMatrices;
@ -63,12 +64,28 @@ namespace Restock
girderFactory.Initialize(girderMesh, girderSegmentHeight, maxSegments);
}
}
if (node.HasValue ("towerRot"))
{
string rot = node.GetValue ("towerRot");
towerRot = KSPUtil.ParseQuaternion (rot);
}
_girderSegments = 1;
base.OnLoad(node);
}
public void RotateTower ()
{
// transforms found in OnLoad
float height = Vector3.Distance (towerAnchor.position, towerStretch.position);
//Debug.Log($"[ModuleRestockLaunchClamp] RotateTower: {height} {towerRot}");
towerPivot.localRotation = towerRot;
towerAnchor.localRotation = towerRot;
towerAnchor.position = towerStretch.position - towerStretch.up * height;
}
public override void OnStart(StartState state)
{
base.OnStart(state);
@ -144,4 +161,4 @@ namespace Restock
girderMeshFilter.mesh = girderFactory.makeGirder(girderSegments);
}
}
}
}

Loading…
Cancel
Save