Example #1
0
    void Update()
    {
        bool mousePressed = Input.GetMouseButtonDown(0);

        PlanPathToLocForAvatar(WorldManager.g.MouseLocOnPlaneXY(), _avatarXY, mousePressed);
        PlanPathToLocForAvatar(WorldManager.g.MouseLocOnPlaneZY(), _avatarZY, mousePressed);

        var avatar = _avatars[_selectedAvatarIndex];

        if (Input.GetKeyDown(KeyCode.Space))
        {
            avatar.Deactivate();
            _selectedAvatarIndex++;
            _selectedAvatarIndex %= _avatars.Length;
            avatar = _avatars[_selectedAvatarIndex];
            avatar.Activate();
        }
        else
        {
            bool        moveKeyPressed = false;
            IntVector2D delta          = new IntVector2D();
            if (Input.GetKey(KeyCode.RightArrow))
            {
                delta         += new IntVector2D(1, 0);
                moveKeyPressed = true;
            }
            if (Input.GetKey(KeyCode.LeftArrow))
            {
                delta         += new IntVector2D(-1, 0);
                moveKeyPressed = true;
            }
            if (avatar.Orientation == PlaneOrientation.XY)
            {
                delta *= -1;
            }
            if (!WorldManager.g.CanMoveByDelta(avatar.Entity, delta))
            {
                delta += new IntVector2D(0, 1);
            }
            if (moveKeyPressed)
            {
                List <IntVector2D> list = PlanPathToLocForAvatar(avatar.Location + delta, avatar, false);
                if (list != null && list.Count > 0 && list[0] != avatar.Location)
                {
                    avatar.DesiredPath = list;
                }
            }
        }



        Rotatable r = _avatar3d.ObjectToRotate;

        if (r != null)
        {
            r.AnimateAtAnchor(_avatar3d.Anchor);
            if (Input.GetKey(KeyCode.Z))
            {
                r.RotateCounterClockwise(_avatar3d.Anchor);
            }
            else if (Input.GetKey(KeyCode.X))
            {
                r.RotateClockwise(_avatar3d.Anchor);
            }
        }
    }