public override void SortObjects() { float[] bpmChangeTimes = new float[ShaderArrayMaxSize]; float[] bpmChangeBPMS = new float[ShaderArrayMaxSize]; bpmChangeTimes[0] = 0; bpmChangeBPMS[0] = BeatSaberSongContainer.Instance.song.beatsPerMinute; LoadedContainers = LoadedContainers.OrderBy(x => x.objectData._time).ToList(); for (int i = 0; i < LoadedContainers.Count; i++) { if (i >= ShaderArrayMaxSize - 1) { Debug.LogError($":hyperPepega: :mega: THE CAP FOR BPM CHANGES IS {ShaderArrayMaxSize - 1}, WHY TF DO YOU HAVE THIS MANY BPM CHANGES!?!?"); break; } BeatmapBPMChangeContainer con = LoadedContainers[i] as BeatmapBPMChangeContainer; con.UpdateGridPosition(); BeatmapBPMChange bpmChange = con.objectData as BeatmapBPMChange; bpmChangeTimes[i + 1] = bpmChange._time; bpmChangeBPMS[i + 1] = bpmChange._BPM; } foreach (Renderer renderer in allGridRenderers) { renderer.material.SetFloatArray(Times, bpmChangeTimes); renderer.material.SetFloatArray(BPMs, bpmChangeBPMS); renderer.material.SetInt(BPMCount, LoadedContainers.Count + 1); } measureLinesController.RefreshMeasureLines(); }
public override BeatmapObjectContainer SpawnObject(BeatmapObject obj) { BeatmapBPMChangeContainer beatmapBPMChange = BeatmapBPMChangeContainer.SpawnBPMChange(obj as BeatmapBPMChange, ref bpmPrefab); beatmapBPMChange.transform.SetParent(GridTransform); beatmapBPMChange.UpdateGridPosition(); LoadedContainers.Add(beatmapBPMChange); return(beatmapBPMChange); }
public override BeatmapObjectContainer SpawnObject(BeatmapObject obj, out BeatmapObjectContainer conflicting, bool removeConflicting = true) { conflicting = null; BeatmapBPMChangeContainer beatmapBPMChange = BeatmapBPMChangeContainer.SpawnBPMChange(obj as BeatmapBPMChange, ref bpmPrefab); beatmapBPMChange.transform.SetParent(GridTransform); beatmapBPMChange.UpdateGridPosition(); LoadedContainers.Add(beatmapBPMChange); SelectionController.RefreshMap(); return(beatmapBPMChange); }
public override BeatmapObjectContainer SpawnObject(BeatmapObject obj, out BeatmapObjectContainer conflicting, bool removeConflicting = true, bool refreshMap = true) { if (LoadedContainers.Count >= ShaderArrayMaxSize) { Debug.LogError("Something's wrong, I can feel it!\nMore BPM Changes are present then what Unity shaders allow!"); } conflicting = null; BeatmapBPMChangeContainer beatmapBPMChange = BeatmapBPMChangeContainer.SpawnBPMChange(obj as BeatmapBPMChange, ref bpmPrefab); beatmapBPMChange.transform.SetParent(GridTransform); beatmapBPMChange.UpdateGridPosition(); LoadedContainers.Add(beatmapBPMChange); if (refreshMap) { SelectionController.RefreshMap(); } return(beatmapBPMChange); }