コード例 #1
0
        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;
        }
コード例 #2
0
        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) + "');");
        }