Exemplo n.º 1
0
 public void Set(bool isPlayerMainCharacter, LocalCharacterDetails details, ICharacterAppearanceHandler appearanceHandler)
 {
     this.IsPlayerMainCharacter = isPlayerMainCharacter;
     _details           = details;
     _appearanceHandler = appearanceHandler;
     SetBilboardTextInformation();
     _appearanceHandler.SetHairstyle(_details.HairstyleId);
 }
Exemplo n.º 2
0
    public static void AddNewNonPlayerCharacterExternally(LocalCharacterDetails charDetails)
    {
        if (_instance == null || charDetails.CharId == _instance._gameStateDetails.CharId)
        {
            return;
        }

        _instance.AddNewNonPlayerCharacter(charDetails);
    }
        public void AddCommandElements()
        {
            if (_isListConfirmation)
            {
                _commandDetails.CommandElementList.Add("endlist");
            }
            else
            {
                string state;
                string actionString = "ndef";
                _actionDictionary.TryGetValue(_action, out actionString);

                switch (_charData.State)
                {
                case CharacterData.CharacterState.Moving:
                    state = "moving";
                    break;

                default:
                    state = "idle";
                    break;
                }

                LocalCharacterDetails detailsToSend = new LocalCharacterDetails()
                {
                    Name            = _charData.Name,
                    HairstyleId     = _charData.HairstyleId,
                    CharId          = _charData.CharId,
                    Action          = actionString,
                    State           = state,
                    Angle           = _charData.Angle,
                    Velocity        = _charData.Velocity,
                    MovingStartTime = _charData.MovingStartTime.ToString(GlobalData.MovementTimeExchangeFormat),
                    MovingEndTime   = _charData.MovingEndTime.ToString(GlobalData.MovementTimeExchangeFormat),
                    StartingLoc     = _charData.StartingLoc,
                    DestinationLoc  = _charData.DestinationLoc,
                    CurrentLoc      = _charData.CurrentLoc,
                    CurrentWorldLoc = _charData.CurrentWorldLoc,
                    ModelCode       = _charData.ModelCode
                };

                _commandDetails.CommandElementList.Add("position");
                _commandDetails.CommandElementList.Add(JsonConvert.SerializeObject(detailsToSend));
            }
        }
Exemplo n.º 4
0
    private void MoveNonPlayerCharacter(int charId, /*Vector3 oldPosition,*/ Vector3 newPosition, int timeArrivalMs)
    {
        GameObject            character   = null;
        LocalCharacterHandler charHandler = null;
        LocalCharacterDetails details     = null;

        foreach (GameObject item in _localCharacterObjectList)
        {
            charHandler = item.GetComponent <LocalCharacterHandler>();
            details     = charHandler.GetDetails();

            if (details.CharId == charId)
            {
                character = item;
                break;
            }
        }

        if (character == null)
        {
            Debug.Log($"Local place manager - MoveCharacterAsync() - cannot find character by char ID [{charId}]");
            return;
        }

        if (charHandler.IsPlayerMainCharacter)
        {
            Debug.Log($"Local place manager - MoveCharacterAsync() - cannot move player main character. Use MovePlayerCharacter() instead!");
            return;
        }

        Vector3 oldPosition = character.transform.position;
        float   angle       = Measure.CalculateMovingAngle(oldPosition, newPosition);

        charHandler.UpdateMovement
        (
            LocalCharacterHandler.MovementType.Moving,
            //oldPosition,
            newPosition,
            angle,
            timeArrivalMs,
            false
        );
    }
        public bool Execute()
        {
            bool executed = false;

            try
            {
                if (_cmdElements.Length < 2)
                {
                    throw new Exception("wrong count of elements");
                }

                if (_cmdElements[1].Equals("position", GlobalData.InputDataStringComparison))
                {
                    string jsonTxt = _rawText.Substring($"{_keyWord} position".Length);
                    LocalCharacterDetails details = JsonConvert.DeserializeObject <LocalCharacterDetails>(jsonTxt);
                    _gameStateDetails.AddOrUpdateLocalCharacterDetails(details);

                    if (details.Action.Equals("requestspawn"))
                    {
                        LocalPlaceSceneManagerHandler.AddNewNonPlayerCharacterExternally(details);
                    }
                }
                else
                if (_cmdElements[1].Equals("endlist", GlobalData.InputDataStringComparison))
                {
                    _gameStateDetails.LocalCharacterDetailsListConfirmed = true;
                }
                else
                {
                    throw new Exception($"wrong second keyword [{_cmdElements[1]}]");
                }

                executed = true;
            }
            catch (Exception exception)
            {
                _chat.UpdateLog($"Cannot execute local character details command: {exception.Message}");
            }

            return(executed);
        }
Exemplo n.º 6
0
        public void AddOrUpdateLocalCharacterDetails(LocalCharacterDetails details)
        {
            bool found = false;

            lock (_dataLock)
            {
                for (int i = 0; i < _localCharacterDetailsList.Count; i++)
                {
                    if (_localCharacterDetailsList[i].CharId == details.CharId)
                    {
                        _localCharacterDetailsList[i] = details;
                        found = true;
                        break;
                    }
                }

                if (!found)
                {
                    _localCharacterDetailsList.Add(details);
                }
            }
        }
Exemplo n.º 7
0
 public LocalCharacterBuilder(LocalCharacterDetails details, GameStateDetails gameStateDetails, Camera camera)
 {
     _details          = details;
     _gameStateDetails = gameStateDetails;
     _camera           = camera;
 }
 public StandardLocalCharacterBuilder(LocalCharacterDetails details, GameStateDetails gameStateDetails, Camera camera)
     : base(details, gameStateDetails, camera)
 {
 }
Exemplo n.º 9
0
    private void AddNewNonPlayerCharacter(LocalCharacterDetails details)
    {
        GameObject createdObject = LocalCharacterCreator.CreateLocalCharacter(this, new StandardLocalCharacterBuilder(details, _gameStateDetails, _mainCamera));

        _localCharacterObjectList.Add(createdObject);
    }