public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (objectType.Equals(typeof(ChatComponent))) { var obj = JObject.Load(reader); return(ChatComponent.FromJson(obj)); } else if (objectType.Equals(typeof(ChatComponent[]))) { var objArr = JArray.Load(reader); var chatComponents = new ChatComponent[objArr.Count]; for (int i = 0; i < chatComponents.Length; i++) { if (objArr[i].Type == JTokenType.Object) // object type can be any component { chatComponents[i] = ChatComponent.FromJson((JObject)objArr[i]); } else if (objArr[i].Type == JTokenType.String) // string components can be single json primitives { chatComponents[i] = new StringComponent() { text = (string)objArr[i] } } ; } return(chatComponents); } throw new JsonReaderException($"ChatComponentJsonConverter cannot deserialize to {objectType.ToString()}"); }
public PlayingState(Alex alex, GraphicsDevice graphics, WorldProvider worldProvider, INetworkProvider networkProvider) : base(alex) { NetworkProvider = networkProvider; World = new World(alex, graphics, Options, new FirstPersonCamera(Options.VideoOptions.RenderDistance, Vector3.Zero, Vector3.Zero), networkProvider); SkyRenderer = new SkyBox(alex, graphics, World); WorldProvider = worldProvider; if (worldProvider is SPWorldProvider) { World.FreezeWorldTime = true; } var chat = new ChatComponent(World); var title = new TitleComponent(); WorldProvider = worldProvider; WorldProvider.Init(World, chat, out var info, out var chatProvider); World.WorldInfo = info; chat.ChatProvider = chatProvider; WorldProvider.TitleComponent = title; _playingHud = new PlayingHud(Alex, World.Player, chat, title); _debugInfo = new GuiDebugInfo(); InitDebugInfo(); }
/// <summary> /// This method sets which type of screen is visible, login, join or main. /// </summary> public void SetupScreen(ScreenTypeEnum screenType) { // Set the new ScreenType ScreenType = screenType; // Update the UI Refresh(); // if the MainComponent exists if (screenType == ScreenTypeEnum.Main) { // if the value for HasChatComponent is true if ((HasChatComponent) && (HasLoggedInUser)) { // Create a message Message message = new Message(); // Set the Text message.Text = "Logged In User Is Set"; // Send the message to the Chat component ChatComponent.ReceiveData(message); } } }
public ChatMessage(ChatMessagePacket pkt) { var chatComponent = ChatComponent.FromJson(pkt.Json); // use .ToString() for plaintext and components will output text with no formatting PlaintextMessage = chatComponent.ToString(); HtmlFormattedMessage = ChatComponent.GetFormattedString(chatComponent, null); }
private void InitComponents() { User = new UserComponent(this); Chat = new ChatComponent(this); Broadcast = new BroadcastComponent(this); Search = new SearchComponent(this); Songs = new SongsComponent(this); Queue = new QueueComponent(this); Remora = new RemoraComponent(this); }
public PlayingHud(Alex game, Player player, TitleComponent titleComponent) : base() { Title = titleComponent; Alex = game; Player = player; Player.OnInventoryChanged += OnInventoryChanged; Anchor = Alignment.Fill; Padding = Thickness.One; _playerController = player.Controller; InputManager.AddListener(new MouseInputListener(InputManager.PlayerIndex)); _healthAndHotbar = new GuiStackContainer() { Orientation = Orientation.Vertical, ChildAnchor = Alignment.Fill }; _bottomContainer = new GuiMultiStackContainer(); _bottomContainer.ChildAnchor = Alignment.BottomFill; _bottomContainer.Anchor = Alignment.BottomCenter; _bottomContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink; _bottomContainer.Orientation = Orientation.Vertical; //BottomContainer. _hotbar = new GuiItemHotbar(player.Inventory); _hotbar.Anchor = Alignment.BottomCenter; _hotbar.Padding = Thickness.Zero; Chat = new ChatComponent(); Chat.Enabled = false; Chat.Anchor = Alignment.BottomLeft; _healthContainer = new GuiContainer(); _healthContainer.Anchor = Alignment.Fill; _healthContainer.Margin = new Thickness(0, 0, 0, 1); _healthComponent = new HealthComponent(player); _healthComponent.Anchor = Alignment.TopLeft; _hungerComponent = new HungerComponent(player); _hungerComponent.Anchor = Alignment.TopRight; _tipPopupComponent = new TipPopupComponent(); _tipPopupComponent.Anchor = Alignment.BottomCenter; _tipPopupComponent.AutoSizeMode = AutoSizeMode.GrowAndShrink; Scoreboard = new ScoreboardView(); Scoreboard.Anchor = Alignment.MiddleRight; }
public SyncManager(IVisualDynamicEntityManager dynamicEntityManager, ServerComponent server, IWorldChunks chunks, ChatComponent chat) { _dynamicEntityManager = dynamicEntityManager; _server = server; _chunks = chunks; _chat = chat; _server.MessageError += _server_MessageError; _server.MessageEntityData += server_MessageEntityData; }
public void UpdateEntry(Player player) { // set display name if (player.DisplayName != null) { DisplayName.text = ChatComponent.GetFormattedString(player.DisplayName, null); } else { DisplayName.text = player.Name; } DisplayName.text += $" {player.Ping.ToString()}ms"; }
public PlayerEntityManager(CameraManager <ICameraFocused> cameraManager, InputsManager inputsManager, SingleArrayChunkContainer cubesHolder, ServerComponent server, VoxelModelManager voxelModelManager, VisualWorldParameters visualWorldParameters, EntityFactory factory, LandscapeBufferManager bufferManager, ILandscapeManager landscapeManager, ChatComponent chatComponent, PostEffectComponent postEffectComponent, GuiManager guiManager, ISoundEngine soundEngine, TimerManager timerManager ) { _cameraManager = cameraManager; _inputsManager = inputsManager; _soundEngine = soundEngine; _cubesHolder = cubesHolder; _visualWorldParameters = visualWorldParameters; _factory = factory; _bufferManager = bufferManager; _landscapeManager = landscapeManager; _chatComponent = chatComponent; _postEffectComponent = postEffectComponent; OnLanding += PlayerEntityManager_OnLanding; _guiManager = guiManager; PlayerCharacter = (PlayerCharacter)server.Player; ShowDebugInfo = true; // Create a visualVoxelEntity (== Assign a voxel body to the PlayerCharacter) VisualVoxelEntity = new VisualVoxelEntity(PlayerCharacter, voxelModelManager); //Add a new Timer trigger _energyUpdateTimer = timerManager.AddTimer(1000); //A timer that will be raised every second _energyUpdateTimer.OnTimerRaised += energyUpdateTimer_OnTimerRaised; HasMouseFocus = Updatable; UpdateOrder = 0; // create "real" random var entropySource = RNGCryptoServiceProvider.Create(); var bytes = new byte[4]; entropySource.GetBytes(bytes); random = new Random(BitConverter.ToInt32(bytes, 0)); }
public AdminConsole(ChatComponent chatComp, IWorldChunks worldChunk, D3DEngine engine, Game mainGameLoop, ServerComponent server, IClock gameClock) { _chatComp = chatComp; _chatComp.Console = this; _worldChunk = worldChunk; _engine = engine; _mainGameLoop = mainGameLoop; _server = server; _gameClock = gameClock; _chatComp.MessageOut += _chatComp_MessageOut; }
public PlayingHud(Alex game, Player player, ChatComponent chat, TitleComponent titleComponent) : base() { Title = titleComponent; Alex = game; Player = player; _playerController = player.Controller; InputManager.AddListener(new MouseInputListener(InputManager.PlayerIndex)); _hotbar = new GuiItemHotbar(player.Inventory); _hotbar.Anchor = Alignment.BottomCenter; _hotbar.Padding = Thickness.Zero; Chat = chat; Chat.Enabled = false; Chat.Anchor = Alignment.BottomLeft; }
/// <summary> /// This method Sign Out Button _ Click /// </summary> public async void SignOutButton_Click() { // Log Out The User LoggedInUser = null; // if the Chat component exists if (HasChatComponent) { // Sign out of the Chat component ChatComponent.SignOut(); } // Remove the items in Local Storage await RemovedLocalStoreItems(); // Reset back to main which it was probably already on ScreenType = ScreenTypeEnum.Main; // update the UI Refresh(); }
/// <summary> /// 表情 /// </summary> private void Onphiz() { ChatComponent.ShowHideEmoji(true); }
/// <summary> /// Gets an HTML-formatted TextMeshPro string for a <see cref="ChatComponent"/> /// </summary> /// <param name="component">The chat component to convert into a formatted string</param> /// <param name="parent">The parent chat Component of <paramref name="component"/>, used for inheriting styles</param> /// <returns></returns> public static string GetFormattedString(ChatComponent component, ChatComponent parent) { var formattedString = new StringBuilder(); var closeTags = new Stack <string>(); // write formatting before the text. // if the style is not present in this component, check the parent's formatting if (component.Bold || (parent?.Bold ?? false)) { writeTag("b"); } if (component.Italic || (parent?.Italic ?? false)) { writeTag("i"); } if (component.Underlined || (parent?.Underlined ?? false)) { writeTag("u"); } if (component.Strikethrough || (parent?.Strikethrough ?? false)) { writeTag("s"); } if (component.Obfuscated || (parent?.Obfuscated ?? false)) { writeTag("s"); // strikethrough placeholder for magic text todo: magic text? } if (!string.IsNullOrEmpty(component.Color) || !string.IsNullOrEmpty(parent?.Color)) { writeColor(component.Color ?? parent.Color); } void writeTag(string tag) { formattedString.Append($"<{tag}>"); closeTags.Push($"</{tag}>"); } void writeColor(string color) { switch (color) { case "l": // bold writeTag("b"); break; case "o": // italic writeTag("i"); break; case "n": // underlined writeTag("u"); break; case "m": // strikethrough writeTag("s"); break; case "r": // reset - don't write any color at all return; case "k": // obfuscated or magic writeTag("s"); // placeholder for obfuscated text break; default: // "color" isn't a formatting code so it must be an actual color string htmlColorCode = ColorUtility.ToHtmlStringRGB(GetChatForegroundColor(color)); formattedString.Append($"<color=#{htmlColorCode}>"); closeTags.Push("</color>"); break; } } // write the text content of the component switch (component) { case StringComponent stringComponent: formattedString.Append(stringComponent.text); break; case TranslateComponent translateComponent: var formattedWith = translateComponent.with.Select(w => GetFormattedString(w, component)); // get formatted translation inserts formattedString.Append(ChatTranslation.TranslateString(translateComponent.translate, formattedWith.ToArray())); // translate string and append break; default: throw new NotImplementedException($"{component.GetType().ToString()} is not supported yet"); } // append the close tags formattedString.Append(string.Join(string.Empty, closeTags)); // add extra ChatComponents if (component.Extra != null) { foreach (var extraComp in component.Extra) { formattedString.Append(GetFormattedString(extraComp, component)); } } return(formattedString.ToString()); }
//internal IDKinWrapPanel2 wrapPanel; ////private bool _contentLoaded; public FacePanel(ChatComponent chatComp) { this.InitializeComponent(); this.chatComp = chatComp; }
private void OnKeyboard() { ChatComponent.ShowHideChatFont(true); }
public DisconnectPacket(Client client, ChatComponent reason) : base(client) { _Reason = reason; }
private void Setup() { if (this.Dispatcher.CheckAccess()) { myBoard = new GameBoard(); myBoard.SetBinding(WidthProperty, "myGrid.Height"); myBoard.SetBinding(HeightProperty, "myGrid.Height"); myBoard.Background = ThemeParser.GetColor(ThemeParser.Colors.Board); Grid.SetRowSpan(myBoard, 3); Grid.SetColumn(myBoard, 0); myChat = new ChatComponent(); myChat.NewOutgoingMessage += new EventHandler<NewOutgoingMessageEventArgs>(Chat_NewOutgoingMessage); Grid.SetColumn(myChat, 1); Grid.SetRow(myChat, 2); myChat.Margin = new Thickness(5, 0, 0, 0); myMenu = new MenuFader(myCanvas); myMenu.Margin = new Thickness(25,0,25,0); myMenu.HostGameClicked += new EventHandler<HostGameClickEventArgs>(myMenu_HostGameClicked); myMenu.JoinGameClicked += new EventHandler<JoinGameClickEventArgs>(myMenu_JoinGameClicked); myMenu.CloseGameClicked += new EventHandler<CloseGameClickEventArgs>(myMenu_CloseGameClicked); myMenu.StartGameClicked += new EventHandler<StartGameClickEventArgs>(myMenu_StartGameClicked); myGrid.Children.Add(myBoard); myGrid.Children.Add(myChat); myCanvas.Children.Add(myMenu); myBoard.GameBuilt += new EventHandler<GameBoardBuiltEventArgs>(myBoard_GameBuilt); myBoard.Dice.RollEnded += new EventHandler<RollEndedEventArgs>(Dice_RollEnded); myBoard.Dice.RollStarted += new EventHandler<RollStartedEventArgs>(Dice_RollStarted); myBoard.Dice.EndTurn += new EventHandler<EndTurnEventArgs>(Dice_EndTurn); ToggleTurnItems(false); } else this.Dispatcher.BeginInvoke(new Action(Setup), null); }