示例#1
0
        public static void OnPlayerEditedNetworkInputfield(InputfieldEditCallbackData data)
        {
            Dictionary <ushort, int> warning = Warning.warnings.GetValueOrDefault(data.Player.ID, new Dictionary <ushort, int>());

            if (data.InputfieldIdentifier.StartsWith("Khanx.Warning."))
            {
                IEnumerable <ItemTypes.ItemType> itemsInCategory = ItemTypes.NotableTypes.Where(type => type.HasCategory(Warning.PreferredCategories[data.Storage.GetAs <int>("Khanx.Warning.categoryDropDown")]));

                foreach (ItemTypes.ItemType item in itemsInCategory)
                {
                    data.Storage.TryGetAsOrDefault <int>("Khanx.Warning." + item.Name + "Field", out int amount, 0);
                    int warningAmount = warning.GetValueOrDefault(item.ItemIndex, 0);

                    if (amount != warningAmount)
                    {
                        if (warning.ContainsKey(item.ItemIndex))
                        {
                            warning.Remove(item.ItemIndex);
                        }

                        warning.Add(item.ItemIndex, amount);
                    }
                }

                if (Warning.warnings.ContainsKey(data.Player.ID))
                {
                    Warning.warnings.Remove(data.Player.ID);
                }

                Warning.warnings.Add(data.Player.ID, warning);
            }
        }
示例#2
0
文件: SignManager.cs 项目: Khanx/Sign
        public static void OnPlayerEditedNetworkInputfield(InputfieldEditCallbackData data)
        {
            if (data.InputfieldIdentifier.StartsWith("Khanx.Sign."))
            {
                data.Storage.TryGetAsOrDefault <string>(data.InputfieldIdentifier, out string text, "-");

                string[]   sPosition = data.InputfieldIdentifier.Substring(11).Split('.'); // 11 = Khanx.Sign.
                Vector3Int position  = new Vector3Int(int.Parse(sPosition[0]), int.Parse(sPosition[1]), int.Parse(sPosition[2]));

                Sign sign = signs.GetValueOrDefault(position, new Sign(data.Player.ID, text));

                sign.text = text;

                if (signs.ContainsKey(position))
                {
                    signs.Remove(position);
                }

                signs.Add(position, sign);
            }
        }