예제 #1
0
        /// <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;
        }
예제 #2
0
        /// <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;
        }