Пример #1
0
        public static bool Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                if (reader.ReadBool())
                {
                    if (DefaultEntries != null)
                    {
                        DefaultEntries.Deserialize(reader);
                    }
                    else
                    {
                        DefaultEntries = new ToolbarState(reader);
                    }
                }

                reader.ReadBlockDictionary(
                    r =>
                    {
                        PlayerMobile k = r.ReadMobile <PlayerMobile>();
                        ToolbarState v = new ToolbarState(r);
                        return(new KeyValuePair <PlayerMobile, ToolbarState>(k, v));
                    },
                    Profiles);
            }
            break;
            }

            return(true);
        }
Пример #2
0
        public override bool ValidateState(ToolbarState state)
        {
            if (!base.ValidateState(state))
            {
                return(false);
            }

            PlayerMobile user = state.User;

            if (MinAccess != null && user.AccessLevel < MinAccess)
            {
                return(false);
            }

            if (String.IsNullOrEmpty(base.Value))
            {
                return(false);
            }

            CommandEntry cmd;

            if (!CommandSystem.Entries.TryGetValue(base.Value, out cmd))
            {
                return(false);
            }

            if (cmd == null || cmd.AccessLevel > (MinAccess ?? user.AccessLevel))
            {
                return(false);
            }

            return(true);
        }
Пример #3
0
        public override bool ValidateState(ToolbarState state)
        {
            if (!base.ValidateState(state))
            {
                return(false);
            }

            return(!String.IsNullOrWhiteSpace(base.Value));
        }
Пример #4
0
        public override void Invoke(ToolbarState state)
        {
            if (state == null || SpellID < 0 || SpellID >= SpellRegistry.Types.Length)
            {
                return;
            }

            var user = state.User;

            if (user != null && !user.Deleted && user.NetState != null)
            {
                EventSink.InvokeCastSpellRequest(new CastSpellRequestEventArgs(user, SpellID, null));
            }
        }
Пример #5
0
        public ToolbarGump(ToolbarState state, Color?headerColor = null, ToolbarTheme theme = ToolbarTheme.Default)
            : base(state.User, null, state.X, state.Y, null, null, DefaultToolbarTitle)
        {
            State       = state;
            HeaderColor = headerColor ?? Color.DarkBlue;
            GlobalEdit  = false;
            Theme       = ToolbarThemes.GetTheme(theme);

            CanSearch  = false;
            CanMove    = false;
            CanDispose = false;
            CanClose   = false;
            CanResize  = false;
        }
Пример #6
0
        static Toolbars()
        {
            EntryTypes = typeof(ToolbarEntry).GetConstructableChildren();

            CMOptions = new ToolbarsOptions();

            Profiles = new BinaryDataStore <PlayerMobile, ToolbarState>(VitaNexCore.SavesDirectory + "/Toolbars", "States")
            {
                Async         = true,
                OnSerialize   = Serialize,
                OnDeserialize = Deserialize
            };

            DefaultEntries = new ToolbarState(null, CMOptions.DefaultWidth, CMOptions.DefaultHeight);
        }
Пример #7
0
        public static ToolbarState EnsureState(PlayerMobile user)
        {
            if (user == null)
            {
                return(null);
            }

            ToolbarState state;

            if (!Profiles.TryGetValue(user, out state) || state == null)
            {
                Profiles[user] = state = new ToolbarState(user);
            }

            return(state);
        }
Пример #8
0
        public override void Invoke(ToolbarState state)
        {
            if (state == null || SpellID < 0 || SpellID >= SpellRegistry.Types.Length)
            {
                return;
            }

            PlayerMobile user = state.User;

            if (user == null || user.Deleted || user.NetState == null)
            {
                return;
            }

            EventSink.InvokeCastSpellRequest(new CastSpellRequestEventArgs(user, SpellID, null));
        }
Пример #9
0
        public override void Invoke(ToolbarState state)
        {
            if (state == null)
            {
                return;
            }

            var user = state.User;

            if (user == null || user.Deleted || user.NetState == null)
            {
                return;
            }

            VitaNexCore.TryCatch(
                () =>
            {
                if (!user.CanBeginAction(this))
                {
                    return;
                }

                switch (TextType)
                {
                case MessageType.Whisper:
                    user.DoSpeech(FullValue, new int[0], TextType, user.WhisperHue);
                    break;

                case MessageType.Yell:
                    user.DoSpeech(FullValue, new int[0], TextType, user.YellHue);
                    break;

                default:
                    user.DoSpeech(FullValue, new int[0], TextType, user.SpeechHue);
                    break;
                }

                user.BeginAction(this);
                Timer.DelayCall(SpamDelay, () => user.EndAction(this));
            },
                ex =>
            {
                Console.WriteLine("{0} => {1} => ({2}) => {3}", user, GetType().Name, FullValue, ex);
                Toolbars.CMOptions.ToConsole(ex);
            });
        }
Пример #10
0
        public static ToolbarState EnsureState(PlayerMobile user)
        {
            if (Profiles.ContainsKey(user))
            {
                if (Profiles[user] == null)
                {
                    Profiles[user] = new ToolbarState(user);
                    Profiles[user].SetDefaultEntries();
                }
            }
            else
            {
                var state = new ToolbarState(user);
                state.SetDefaultEntries();
                Profiles.Add(user, state);
            }

            return(Profiles[user]);
        }
Пример #11
0
        public override void Invoke(ToolbarState state)
        {
            if (state == null)
            {
                return;
            }

            var user = state.User;

            if (user == null || user.Deleted || user.NetState == null)
            {
                return;
            }

            VitaNexCore.TryCatch(
                () => user.LaunchBrowser(FullValue),
                ex =>
            {
                Console.WriteLine("{0} => {1} => ({2}) => {3}", user, GetType().Name, FullValue, ex);
                Toolbars.CMOptions.ToConsole(ex);
            });
        }
Пример #12
0
        public override void Invoke(ToolbarState state)
        {
            if (state == null)
            {
                return;
            }

            PlayerMobile user = state.User;

            if (user == null || user.Deleted || user.NetState == null)
            {
                return;
            }

            VitaNexCore.TryCatch(
                () => CommandSystem.Handle(user, FullValue),
                ex =>
            {
                Console.WriteLine("{0} => {1} => ({2}) => {3}", user, GetType().Name, FullValue, ex);
                Toolbars.CMOptions.ToConsole(ex);
            });
        }
Пример #13
0
 public abstract void Invoke(ToolbarState state);
Пример #14
0
 public virtual bool ValidateState(ToolbarState state)
 {
     return(state != null && state.User != null && !state.User.Deleted);
 }
Пример #15
0
 public override bool ValidateState(ToolbarState state)
 {
     return(base.ValidateState(state) && !String.IsNullOrWhiteSpace(Value));
 }
Пример #16
0
 private static void ClearDefaults()
 {
     DefaultEntries = new ToolbarState(null, CMOptions.DefaultWidth, CMOptions.DefaultHeight);
 }