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); } }); }
/*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); }
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); }
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()); }