public override void UpdateTimeAndPosition(SnapResult result) { switch (PlacementActive) { case PlacementState.Waiting: if (!(result.Time is double snappedTime)) { return; } HitObject.OriginalX = ToLocalSpace(result.ScreenSpacePosition).X; HitObject.StartTime = snappedTime; break; case PlacementState.Active: Vector2 unsnappedPosition = inputManager.CurrentState.Mouse.Position; editablePath.MoveLastVertex(unsnappedPosition); break; default: return; } // Make sure the up-to-date position is used for outlines. Vector2 startPosition = CatchHitObjectUtils.GetStartPosition(HitObjectContainer, HitObject); editablePath.Position = nestedOutlineContainer.Position = scrollingPath.Position = startPosition; updateHitObjectFromPath(); }
protected override void Update() { base.Update(); outline.Position = CatchHitObjectUtils.GetStartPosition(HitObjectContainer, HitObject); outline.UpdateFrom(HitObject); }
protected override void Update() { base.Update(); if (!IsSelected) { return; } if (editablePath.PathId != lastEditablePathId) { updateHitObjectFromPath(); } Vector2 startPosition = CatchHitObjectUtils.GetStartPosition(HitObjectContainer, HitObject); editablePath.Position = nestedOutlineContainer.Position = scrollingPath.Position = startPosition; editablePath.UpdateFrom(HitObjectContainer, HitObject); if (pathCache.IsValid) { return; } scrollingPath.UpdatePathFrom(HitObjectContainer, HitObject); nestedOutlineContainer.UpdateNestedObjectsFrom(HitObjectContainer, HitObject); pathCache.Validate(); }
protected override void Update() { base.Update(); if (!IsSelected) { return; } nestedOutlineContainer.Position = scrollingPath.Position = CatchHitObjectUtils.GetStartPosition(HitObjectContainer, HitObject); if (pathCache.IsValid) { return; } scrollingPath.UpdatePathFrom(HitObjectContainer, HitObject); nestedOutlineContainer.UpdateNestedObjectsFrom(HitObjectContainer, HitObject); pathCache.Validate(); }
protected override void Update() { base.Update(); distanceGrid.StartTime = 100; distanceGrid.StartX = 250; Vector2 screenSpacePosition = InputManager.CurrentState.Mouse.Position; var result = distanceGrid.GetSnappedPosition(screenSpacePosition); if (result != null) { fruit.OriginalX = hitObjectContainer.ToLocalSpace(result.ScreenSpacePosition).X; if (result.Time != null) { fruit.StartTime = result.Time.Value; } } fruitOutline.Position = CatchHitObjectUtils.GetStartPosition(hitObjectContainer, fruit); fruitOutline.UpdateFrom(fruit); }