Example #1
0
        public static float3 GetPosition(int lineIndex, int lineLayer, float3 lineOffset)
        {
            float3 position = new float3();

            if (lineIndex >= 1000 || lineIndex <= -1000)
            {
                if (lineIndex <= -1000)
                {
                    lineIndex += 1000;
                }
                else
                {
                    lineIndex -= 1000;
                }

                position.x = lineIndex / 1000f;
            }
            else
            {
                position.x = lineIndex;
            }

            if (lineLayer >= 1000 || lineLayer <= -1000)
            {
                if (lineLayer <= -1000)
                {
                    lineLayer += 1000;
                }
                else
                {
                    lineLayer -= 1000;
                }

                position.y = lineLayer / 1000f;
            }
            else
            {
                position.y = lineLayer;
            }

            return(PlacementHelper.GetVanillaPosition(position.x, position.y, lineOffset));
        }
        public static TransformData ConvertTransform(TransformData transformData, CustomSpawnedObjectData customData, float jumpSpeed, float secondEquivalentOfBeat, float3 lineOffset)
        {
            if (customData.NoteJumpSpeed == null)
            {
                transformData.Speed = jumpSpeed;
            }
            else
            {
                transformData.Speed = (float)customData.NoteJumpSpeed;
            }

            if (customData.Scale.w != 0)
            {
                transformData.Scale = new float4x4
                {
                    c0 = new float4(customData.Scale.x * lineOffset.x, 0, 0, 0),
                    c1 = new float4(0, customData.Scale.y * lineOffset.y, 0, 0),
                    c2 = new float4(0, 0, PlacementHelper.ConvertDurationToZScale(customData.Scale.z, jumpSpeed, secondEquivalentOfBeat), 0),
                    c3 = new float4(0, 0, 0, 1)
                };
            }
            if (customData.LocalRotation.w != 0)
            {
                transformData.LocalRotation = Quaternion.Euler(customData.LocalRotation.xyz);
            }
            if (customData.WorldRotation != 0)
            {
                transformData.WorldRotation = customData.WorldRotation;
            }
            if (customData.Position.w != 0)
            {
                transformData.Position = PlacementHelper.GetVanillaPosition(customData.Position.x, customData.Position.y, lineOffset);
            }

            return(transformData);
        }