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