public void Set(bool isPlayerMainCharacter, LocalCharacterDetails details, ICharacterAppearanceHandler appearanceHandler) { this.IsPlayerMainCharacter = isPlayerMainCharacter; _details = details; _appearanceHandler = appearanceHandler; SetBilboardTextInformation(); _appearanceHandler.SetHairstyle(_details.HairstyleId); }
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)); } }
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); }
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); } } }
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) { }
private void AddNewNonPlayerCharacter(LocalCharacterDetails details) { GameObject createdObject = LocalCharacterCreator.CreateLocalCharacter(this, new StandardLocalCharacterBuilder(details, _gameStateDetails, _mainCamera)); _localCharacterObjectList.Add(createdObject); }