public MainWindow() { InitializeComponent(); StaticVars.browser = BrowserYo; //Set screen to fill MainWebWindow.WindowState = WindowState.Maximized; //Register the hotkeys var key = new HotKey( (ModifierKeys.None), Key.OemTilde, this, delegate { if (StaticVars.allowShowHideNow) { StaticVars.allowShowHideNow = false; if (isShown) { BeginHide(); } else { BeginShow(); } isShown = !isShown; } } ); //Load dinosaurs StaticVars.dinos = RpTools.DeserializeObject <ArkDino[]>(File.ReadAllText("dinodata.json")); //Init browser BrowserYo.Address = AppDomain.CurrentDomain.BaseDirectory + @"browser\index.html"; CefSharpSettings.LegacyJavascriptBindingEnabled = true; BrowserYo.RegisterAsyncJsObject("boundAsync", new NativeJs()); //Allow StaticVars.allowShowHideNow = true; }
public void requestUpdatedDinoTable(string search) { //Create the HTML table for the DINOSAURS var doc = new HtmlAgilityPack.HtmlDocument(); var node = HtmlNode.CreateNode("<html><head></head><body></body></html>"); doc.DocumentNode.AppendChild(node); HtmlNode table = doc.CreateElement("table"); table.Attributes.Add("class", "mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp dino_table_inner"); foreach (ArkDino dino in StaticVars.dinos) { if (search == "" || dino.name.ToLower().Contains(search.ToLower())) { HtmlNode entry = doc.CreateElement("tr"); entry.AddClass("dino_list_element"); var icon = doc.CreateElement("td"); icon.AddClass("mdl-data-table__cell--non-numeric"); var iconImg = doc.CreateElement("img"); iconImg.Attributes.Add("src", dino.img); icon.AppendChild(iconImg); entry.AppendChild(icon); //name var name = doc.CreateElement("td"); name.AddClass("mdl-data-table__cell--non-numeric"); name.InnerHtml = dino.name; entry.AppendChild(name); //Buttons var btns = doc.CreateElement("td"); btns.AddClass("mdl-data-table__cell--non-numeric"); btns.AddClass("dino_list_element_btns"); string dinoString = Convert.ToBase64String(Encoding.ASCII.GetBytes(RpTools.SerializeObject(dino))); btns.InnerHtml = "<button class=\"mdl-button mdl-js-button mdl-button--raised\" onclick=\"SpawnCharacter('" + dinoString + "');\"> Spawn </button>"; entry.AppendChild(btns); //Add this to the table. table.AppendChild(entry); } } //Convert this to the html. string html = table.WriteTo(); //Send this back in base64 because it's a lot of effort to escape it. var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(html); StaticVars.browser.ExecuteScriptAsync("FinishRefreshTable('" + System.Convert.ToBase64String(plainTextBytes) + "');"); }