Example #1
0
        /// <summary>
        ///     Remove a DoAfter without showing a cancellation graphic.
        /// </summary>
        /// <param name="clientDoAfter"></param>
        public void Remove(DoAfterComponent component, ClientDoAfter clientDoAfter)
        {
            component.DoAfters.Remove(clientDoAfter.ID);

            var found = false;

            for (var i = component.CancelledDoAfters.Count - 1; i >= 0; i--)
            {
                var cancelled = component.CancelledDoAfters[i];

                if (cancelled.Message == clientDoAfter)
                {
                    component.CancelledDoAfters.RemoveAt(i);
                    found = true;
                    break;
                }
            }

            if (!found)
            {
                component.DoAfters.Remove(clientDoAfter.ID);
            }

            component.Gui?.RemoveDoAfter(clientDoAfter.ID);
        }
Example #2
0
        public void AddDoAfter(ClientDoAfter message)
        {
            if (_doAfterControls.ContainsKey(message.ID))
            {
                return;
            }

            var doAfterBar = new DoAfterBar
            {
                SizeFlagsVertical = SizeFlags.ShrinkCenter
            };

            _doAfterBars[message.ID] = doAfterBar;

            var control = new PanelContainer
            {
                Children =
                {
                    new TextureRect
                    {
                        Texture           = StaticIoC.ResC.GetTexture("/Textures/Interface/Misc/progress_bar.rsi/icon.png"),
                        TextureScale      = Vector2.One * DoAfterBar.DoAfterBarScale,
                        SizeFlagsVertical = SizeFlags.ShrinkCenter,
                    },

                    doAfterBar
                }
            };

            AddChild(control);
            _doAfterControls.Add(message.ID, control);
        }
Example #3
0
        public override ComponentState GetComponentState()
        {
            var toAdd = new List <ClientDoAfter>();

            foreach (var doAfter in DoAfters)
            {
                // THE ALMIGHTY PYRAMID
                var clientDoAfter = new ClientDoAfter(
                    _doAfters[doAfter],
                    doAfter.UserGrid,
                    doAfter.TargetGrid,
                    doAfter.StartTime,
                    doAfter.EventArgs.Delay,
                    doAfter.EventArgs.BreakOnUserMove,
                    doAfter.EventArgs.BreakOnTargetMove,
                    doAfter.EventArgs.Target?.Uid ?? EntityUid.Invalid);

                toAdd.Add(clientDoAfter);
            }

            return(new DoAfterComponentState(toAdd));
        }