コード例 #1
0
ファイル: AGSSayComponent.cs プロジェクト: brianjlacy/MonoAGS
 private async Task setAnimation(IDirectionalAnimation animation)
 {
     if (animation != null)
     {
         _faceDirection.CurrentDirectionalAnimation = animation;
         await _faceDirection.FaceDirectionAsync(_faceDirection.Direction);
     }
 }
コード例 #2
0
        public async Task <bool> ApproachAsync(string verb, IObject obj)
        {
            ApproachHotspots approachStyle = getApproachStyle(verb);
            var faceDirection = _faceDirection;
            var walk          = _walk;
            var hotspot       = obj.GetComponent <IHotspotComponent>();
            var walkPt        = hotspot?.WalkPoint;

            switch (approachStyle)
            {
            case ApproachHotspots.NeverWalk:
                break;

            case ApproachHotspots.FaceOnly:
                if (faceDirection != null)
                {
                    await faceDirection.FaceDirectionAsync(obj);
                }
                break;

            case ApproachHotspots.WalkIfHaveWalkPoint:
                if (walkPt == null && faceDirection != null)
                {
                    await faceDirection.FaceDirectionAsync(obj);
                }
                else
                {
                    if (walk != null && !await walk.WalkAsync(new Position(walkPt.Value)))
                    {
                        return(false);
                    }
                    if (faceDirection != null)
                    {
                        await faceDirection.FaceDirectionAsync(obj);
                    }
                }
                break;

            case ApproachHotspots.AlwaysWalk:
                PointF?walkPoint = walkPt ?? obj.CenterPoint ?? obj.Position.XY;
                if (walk != null && !await walk.WalkAsync(new Position(walkPoint.Value)))
                {
                    return(false);
                }
                if (faceDirection != null)
                {
                    await _faceDirection.FaceDirectionAsync(obj);
                }
                break;

            default:
                throw new NotSupportedException("Approach style is not supported: " + approachStyle.ToString());
            }
            return(true);
        }
コード例 #3
0
 public Task FaceDirectionAsync(Direction direction)
 {
     return(_faceDirectionComponent.FaceDirectionAsync(direction));
 }