/// <summary> /// Constructs a Vector3 from magnitude and direction in RDB action resource. /// </summary> private static void GetRotationActionVector(ref DaggerfallAction action, DFBlock.RdbActionAxes axis) { Vector3 vector = Vector3.zero; float magnitude = action.Magnitude; switch (axis) { case DFBlock.RdbActionAxes.NegativeX: vector.x = -magnitude; break; case DFBlock.RdbActionAxes.NegativeY: vector.y = -magnitude; break; case DFBlock.RdbActionAxes.NegativeZ: vector.z = -magnitude; break; case DFBlock.RdbActionAxes.PositiveX: vector.x = magnitude; break; case DFBlock.RdbActionAxes.PositiveY: vector.y = magnitude; break; case DFBlock.RdbActionAxes.PositiveZ: vector.z = magnitude; break; default: magnitude = 0f; break; } action.ActionRotation = vector / BlocksFile.RotationDivisor; }
/// <summary> /// Constructs a Vector3 from magnitude and direction in RDB action resource. /// </summary> private static void GetTranslationActionVector(ref DaggerfallAction action, DFBlock.RdbActionAxes axis) { Vector3 vector = Vector3.zero; float magnitude = action.Magnitude; switch (axis) { case DFBlock.RdbActionAxes.NegativeX: vector.x = magnitude; break; case DFBlock.RdbActionAxes.NegativeY: vector.y = -magnitude; break; case DFBlock.RdbActionAxes.NegativeZ: vector.z = magnitude; break; case DFBlock.RdbActionAxes.PositiveX: vector.x = -magnitude; break; case DFBlock.RdbActionAxes.PositiveY: vector.y = magnitude; break; case DFBlock.RdbActionAxes.PositiveZ: vector.z = -magnitude; break; default: magnitude = 0f; break; } action.ActionTranslation = vector * MeshReader.GlobalScale; }