Exemple #1
0
        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();
        }
Exemple #2
0
        protected override void Update()
        {
            base.Update();

            outline.Position = CatchHitObjectUtils.GetStartPosition(HitObjectContainer, HitObject);
            outline.UpdateFrom(HitObject);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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);
        }