Пример #1
0
        private void OnBlockAdded(IBlockModel block)
        {
            var levelPos = ComputeGhostPosition(block);
            var worldPos = _levelViewTransform.TransformPosition(levelPos);

            _rotationAnimator.StopAnimation(_ghostBlockView);
            _movementAnimator.StopAnimation(_ghostBlockView);
            _ghostBlockView?.Dispose();
            _ghostBlockView = _blockViewBuilder.BuildView(block);
            _ghostBlockView.SetMaterial(_ghostMaterial);
            _ghostBlockView.Position = worldPos;
            _ghostBlockView.Rotation = block.Rotation;

            block.OnPositionChanged += UpdateGhostPositionRotation;
            block.OnRotationChanged += UpdateGhostPositionRotation;
        }