public void Init(TargetData targetData) { data = targetData; data.HandTypeChangeEvent += OnHandTypeChanged; data.BehaviourChangeEvent += OnBehaviorChanged; data.BeatLengthChangeEvent += OnSustainLengthChanged; }
private void OnBehaviorChanged(TargetBehavior oldBehavior, TargetBehavior newBehavior) { if (data.supportsBeatLength) { if (!TargetData.BehaviorSupportsBeatLength(oldBehavior)) { var gridHoldTargetManager = gridTargetIcon.GetComponentInChildren <HoldTargetManager>(); if (gridHoldTargetManager != null) { gridHoldTargetManager.sustainLength = data.beatLength; gridHoldTargetManager.LoadSustainController(); gridHoldTargetManager.OnTryChangeSustainEvent += MakeTimelineUpdateSustainLength; } } gridTargetIcon.UpdatePath(); } else { DisableSustainButtons(); if (TargetData.BehaviorSupportsBeatLength(oldBehavior)) { var gridHoldTargetManager = gridTargetIcon.GetComponentInChildren <HoldTargetManager>(true); if (gridHoldTargetManager != null) { gridHoldTargetManager.UnloadSustainController(); gridHoldTargetManager.OnTryChangeSustainEvent -= MakeTimelineUpdateSustainLength; } } } if (data.behavior == TargetBehavior.NR_Pathbuilder) { data.pathBuilderData.InitialAngleChangedEvent += UpdatePathInitialAngle; data.pathBuilderData.RecalculateEvent += RecalculatePathbuilderData; data.pathBuilderData.RecalculateFinishedEvent += UpdatePath; } if (oldBehavior == TargetBehavior.NR_Pathbuilder) { data.pathBuilderData.InitialAngleChangedEvent -= UpdatePathInitialAngle; data.pathBuilderData.RecalculateEvent -= RecalculatePathbuilderData; data.pathBuilderData.RecalculateFinishedEvent -= UpdatePath; } if (data.behavior != TargetBehavior.NR_Pathbuilder && oldBehavior == TargetBehavior.NR_Pathbuilder) { data.pathBuilderData.parentNotes.Remove(data); } else if (data.behavior == TargetBehavior.NR_Pathbuilder) { data.pathBuilderData.parentNotes.Add(data); } }
public void Copy(TargetData data) { x = data.x; y = data.y; time = data.time; beatLength = data.beatLength; velocity = data.velocity; handType = data.handType; behavior = data.behavior; }
public void ReplaceData(TargetData newData) { data.HandTypeChangeEvent -= OnHandTypeChanged; data.BehaviourChangeEvent -= OnBehaviorChanged; data.BeatLengthChangeEvent -= OnSustainLengthChanged; data = newData; newData.HandTypeChangeEvent += OnHandTypeChanged; newData.BehaviourChangeEvent += OnBehaviorChanged; newData.BeatLengthChangeEvent += OnSustainLengthChanged; }
public TargetData(TargetData other, QNT_Timestamp?timeOverride = null) { ID = TargetDataInternal.GetNextId(); data = other.data; if (!timeOverride.HasValue) { time = other.time; } else { time = timeOverride.Value; } }
public void ReplaceData(TargetData newData) { data.PositionChangeEvent -= OnGridPositionChanged; data.HandTypeChangeEvent -= OnHandTypeChanged; data.TickChangeEvent -= OnTickChanged; data.BeatLengthChangeEvent -= OnBeatLengthChanged; data = newData; gridTargetIcon.ReplaceData(newData); timelineTargetIcon.ReplaceData(newData); newData.PositionChangeEvent += OnGridPositionChanged; newData.HandTypeChangeEvent += OnHandTypeChanged; newData.TickChangeEvent += OnTickChanged; newData.BeatLengthChangeEvent += OnBeatLengthChanged; }
public Target(TargetData targetData, TargetIcon timelineIcon, TargetIcon gridIcon) { timelineTargetIcon = timelineIcon; gridTargetIcon = gridIcon; data = new TargetData(); data.PositionChangeEvent += OnGridPositionChanged; data.HandTypeChangeEvent += OnHandTypeChanged; data.BeatTimeChangeEvent += OnBeatTimeChanged; data.BeatLengthChangeEvent += OnBeatLengthChanged; timelineTargetIcon.Init(data); gridTargetIcon.Init(data); data.Copy(targetData); UpdateTimelineSustainLength(); }
public void Init(Target target, TargetData targetData) { data = targetData; data.HandTypeChangeEvent += OnHandTypeChanged; data.BehaviourChangeEvent += OnBehaviorChanged; data.BeatLengthChangeEvent += OnSustainLengthChanged; data.TickChangeEvent += OnTickChanged; this.target = target; foreach (Renderer r in gameObject.GetComponentsInChildren <Renderer>(true)) { r.material.SetFloat("_FadeThreshold", 1.7f); r.material.SetFloat("_OpaqueDuration", 0f); r.material.SetFloat("_FadeOutThreshold", 0.5f); } SetupFade(); }
public void UpdateOverlay() { if (canvasGroup.alpha == 0f) { return; } rectTransform.pivot = new Vector2(0f, 1f); rectTransform.rotation = Quaternion.Euler(Vector3.zero); float minX = 999f, minY = 999f, maxX = -999f, maxY = -999f; float totalX = 0f, totalY = 0f; foreach (var selectedTarget in timeline.selectedNotes) { NotReaper.Targets.TargetData current = selectedTarget.data; if (current.x > maxX) { maxX = current.x; } if (current.y > maxY) { maxY = current.y; } if (current.x < minX) { minX = current.x; } if (current.y < minY) { minY = current.y; } totalX += current.x; totalY += current.y; } float centerX = totalX / timeline.selectedNotes.Count; float centerY = totalY / timeline.selectedNotes.Count; countLabel.text = lastSelectedTargetCount.ToString(); transform.position = new Vector3(minX, maxY); rectTransform.sizeDelta = new Vector2(Mathf.Abs(maxX - minX), Mathf.Abs(maxY - minY)) * (1 / canvas.transform.localScale.x); centerPoint.localPosition = new Vector2((float)(rectTransform.sizeDelta.x * 0.5), (float)-(rectTransform.sizeDelta.y * 0.5)); selectionMesh.GenerateMeshForTimeline(); }
public TargetSetHitsoundIntent(TargetSetHitsoundIntent other) { target = new TargetData(other.target); startingVelocity = other.startingVelocity; newVelocity = other.newVelocity; }
public Target(TargetData targetData, TargetIcon timelineIcon, TargetIcon gridIcon, bool transient) { timelineTargetIcon = timelineIcon; gridTargetIcon = gridIcon; data = targetData; data.PositionChangeEvent += OnGridPositionChanged; data.HandTypeChangeEvent += OnHandTypeChanged; data.TickChangeEvent += OnTickChanged; data.BeatLengthChangeEvent += OnBeatLengthChanged; timelineTargetIcon.Init(this, data); gridTargetIcon.Init(this, data); //Must be after the two init's, unfortunate timing restiction, but the new objects must be active to find the hold target managers data.BehaviourChangeEvent += OnBehaviorChanged; UpdateTimelineSustainLength(); gridTargetIcon.OnTryRemoveEvent += DeleteNote; timelineTargetIcon.OnTryRemoveEvent += DeleteNote; gridTargetIcon.IconEnterLoadedNotesEvent += TargetEnterLoadedNotes; gridTargetIcon.IconExitLoadedNotesEvent += TargetExitLoadedNotes; timelineTargetIcon.TrySelectEvent += MakeTimelineSelectTarget; gridTargetIcon.TrySelectEvent += MakeTimelineSelectTarget; timelineTargetIcon.TryDeselectEvent += MakeTimelineDeselectTarget; gridTargetIcon.TryDeselectEvent += MakeTimelineDeselectTarget; SetOutlineColor(NRSettings.config.selectedHighlightColor); this.transient = transient; if (transient) { foreach (Renderer r in gridTargetIcon.GetComponentsInChildren <Renderer>(true)) { if (r.name == "WhiteRing") { var color = r.material.GetColor("_Tint"); color.r = 0.1f; color.g = 0.1f; color.b = 0.1f; r.material.SetColor("_Tint", color); } } foreach (Renderer r in timelineTargetIcon.GetComponentsInChildren <SpriteRenderer>(true)) { var color = r.material.color; color.r = 0.5f; color.g = 0.5f; color.b = 0.5f; r.material.color = color; } } if (data.behavior == TargetBehavior.NR_Pathbuilder) { data.pathBuilderData.InitialAngleChangedEvent += UpdatePathInitialAngle; data.pathBuilderData.RecalculateEvent += RecalculatePathbuilderData; data.pathBuilderData.RecalculateFinishedEvent += UpdatePath; UpdatePathInitialAngle(); } }
public TargetData(TargetData data) { ID = GetNextId(); Copy(data); }
public TargetData(TargetData data) { Copy(data); }
public TargetGridMoveIntent(TargetGridMoveIntent other) { target = new TargetData(other.target); startingPosition = other.startingPosition; intendedPosition = other.intendedPosition; }
public TargetTimelineMoveIntent(TargetTimelineMoveIntent other) { target = new TargetData(other.target); startTime = other.startTime; intendedTime = other.intendedTime; }