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); }