Example #1
0
        public void SetInfo(GuiInfo info, object value)
        {
            this.Dispatch(() => {
                Log($"Set {info} = {value}");
                try {
                    string txt = value?.ToString();
                    switch (info)
                    {
                    case GuiInfo.VISIBILITY:
                        RefreshInfo();
                        App.CheckStatusTask(false);
                        Show();
                        break;

                    case GuiInfo.APP_UPDATE:
                    case GuiInfo.MOD_LIST:
                        break;

                    default:
                        SharedGui.SetInfo(info, value);
                        break;
                    }
                } catch (Exception ex) { Log(ex); }
            });
        }
Example #2
0
        /*void OnPlayerSleepEnded(BasePlayer player)
         * {
         *  // Notify if still vanished
         *  if (IsInvisible(player)) Disappear(player);
         * }*/

        #endregion

        #region Reappearing Act

        void Reappear(BasePlayer player)
        {
            // Make player visible
            onlinePlayers[player].IsInvisible = false;
            player.SendNetworkUpdate();

            // Restore held item visibility
            player.GetActiveItem()?.GetHeldEntity()?.SendNetworkUpdate();

            // Destroy existing UI
            string guiInfo;

            if (GuiInfo.TryGetValue(player.userID, out guiInfo))
            {
                CuiHelper.DestroyUi(player, guiInfo);
            }

            PrintToChat(player, VanishDisabled);
        }
Example #3
0
        public GuiObject LoadGuiObject(string a_strName, string a_strPath)
        {
            GuiObject guiObject = FindGuiObject(a_strName);

            if (guiObject == null)
            {
                AssetObj assetObj = AssetManager.Get().CreateAsset(a_strPath);
                Assert.IsTrue(assetObj.LoadState != EAssetLoadState.Loading);

                GameObject objRoot = assetObj.gameObject;
                Assert.IsTrue(objRoot != null);

                guiObject = objRoot.GetComponent <GuiObject>();
                Assert.IsNotNull(guiObject);
                objRoot.transform.SetParent(GuiManager.Get().UIRoot.transform, false);
                guiObject.Initialize(a_strName);

                GuiInfo guiInfo = new GuiInfo();
                guiInfo.assetObj  = assetObj;
                guiInfo.guiObject = guiObject;
                m_listGuiInfos.Add(guiInfo);
            }
            return(guiObject);
        }
Example #4
0
        void webInventory(WebRequest request, WebResponse response)
        {
            // Compile all relevant info for the gui into a GuiInfo instance and send it to the GUI client.
            GuiInfo info = new GuiInfo();

            info.playerIsFrozen = player.IsFrozen;

            info.inventory = GuiInfo.GuiItem.FromItemCollection(player.Inventory.Items);

            foreach (var item in player.Inventory.QuickAccessItems)
            {
                if (item != null)
                {
                    info.quickAccess.Add(item.Identifier);
                }
                else
                {
                    info.quickAccess.Add("");
                }
            }

            info.selection = player.Inventory.SelectionIndex;

            /*
             * foreach (CraftingRule cr in player.Inventory.DiscoveredRules)
             * {
             *  if (info.inventory.ContainsKey(cr.Result.Identifier))
             *  {
             *      GuiInfo.GuiItem item = info.inventory[cr.Result.Identifier];
             *      item.hasDiscoveredCraftingRule = true;
             *      if (cr.CanBeDismantled)
             *          item.canBeDismantled = true;
             *      if (cr.IsCraftable(player.Inventory.Items.ItemFromIdentifier(item.identifier), player.Inventory.Items))
             *      {
             *          item.canBeCrafted = true;
             *      }
             *
             *      item.craftingIngredients = new List<GuiInfo.GuiItem>(GuiInfo.GuiItem.FromItemCollection(cr.Ingredients).Values);
             *  }
             *  else
             *  {
             *      GuiInfo.GuiItem virtualItem = new GuiInfo.GuiItem(cr.Result);
             *      virtualItem.quantity = 0;
             *      virtualItem.hasDiscoveredCraftingRule = true;
             *
             *      if (cr.IsCraftable(null, player.Inventory.Items))
             *      {
             *          virtualItem.canBeCrafted = true;
             *      }
             *
             *      virtualItem.craftingIngredients = new List<GuiInfo.GuiItem>(GuiInfo.GuiItem.FromItemCollection(cr.Ingredients).Values);
             *
             *      info.inventory.Add(cr.Result.Identifier, virtualItem);
             *  }
             * }
             */
            StringWriter   writer     = new StringWriter();
            JsonTextWriter jsonWriter = new JsonTextWriter(writer);

            json.Formatting = Formatting.Indented;
            json.Serialize(jsonWriter, info);
            response.AddHeader("Content-Type", "application/json");
            response.AppendBody(writer.GetStringBuilder().ToString());
        }