public void SetThrustersEnabled(VRageMath.Vector3 dir, bool value) { if (!thrusterBlocks.ContainsKey(dir)) { throw new Exception("Warning! No thruster in direction " + dir + "."); } var list = thrusterBlocks[dir]; for (int i = 0; i < list.Count; ++i) { IMyThrust block = list[i]; if (block.Enabled ^ value) { block.GetActionWithName("OnOff").Apply(block); } } }
public void ApplyAction(VRageMath.Vector3 dir, string name) { if (!XUtils.Directions.Contains(dir)) { throw new Exception("Invalid direction vector used: " + dir); } VRageMath.Matrix local = new VRageMath.Matrix(); referenceBlock.Orientation.GetMatrix(out local); dir = VRageMath.Vector3.Transform(dir, local); var list = thrusterBlocks[dir]; for (int i = 0; i < list.Count; ++i) { IMyThrust thruster = list[i]; thruster.GetActionWithName(name).Apply(thruster); } }