From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Mon, 15 May 2023 20:17:30 +0000 (-0400) Subject: RND Rework [Death to Techweb] (#16370) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=9efc727fe17ec4fd969e488cc1efabc013006d2d;p=space-station-14.git RND Rework [Death to Techweb] (#16370) * Techweb rework * more ui work * finishing ui * Finish all the C# logic * the techs + lathes * remove old-tech * mirror-review --- diff --git a/Content.Client/Research/UI/MiniTechnologyCardControl.xaml b/Content.Client/Research/UI/MiniTechnologyCardControl.xaml new file mode 100644 index 0000000000..2808995524 --- /dev/null +++ b/Content.Client/Research/UI/MiniTechnologyCardControl.xaml @@ -0,0 +1,29 @@ + + + + + + diff --git a/Content.Client/Research/UI/MiniTechnologyCardControl.xaml.cs b/Content.Client/Research/UI/MiniTechnologyCardControl.xaml.cs new file mode 100644 index 0000000000..8b1a583c24 --- /dev/null +++ b/Content.Client/Research/UI/MiniTechnologyCardControl.xaml.cs @@ -0,0 +1,24 @@ +using Content.Shared.Research.Prototypes; +using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Client.Research.UI; + +[GenerateTypedNameReferences] +public sealed partial class MiniTechnologyCardControl : Control +{ + public MiniTechnologyCardControl(TechnologyPrototype technology, IPrototypeManager prototypeManager, SpriteSystem spriteSys, FormattedMessage description) + { + RobustXamlLoader.Load(this); + + var discipline = prototypeManager.Index(technology.Discipline); + Background.ModulateSelfOverride = discipline.Color; + Texture.Texture = spriteSys.Frame0(technology.Icon); + NameLabel.SetMessage(Loc.GetString(technology.Name)); + Main.ToolTip = description.ToString(); + } +} diff --git a/Content.Client/Research/UI/ResearchConsoleBoundUserInterface.cs b/Content.Client/Research/UI/ResearchConsoleBoundUserInterface.cs index c9a3fb4379..97556c931d 100644 --- a/Content.Client/Research/UI/ResearchConsoleBoundUserInterface.cs +++ b/Content.Client/Research/UI/ResearchConsoleBoundUserInterface.cs @@ -4,91 +4,63 @@ using Content.Shared.Research.Systems; using JetBrains.Annotations; using Robust.Client.GameObjects; -namespace Content.Client.Research.UI -{ - [UsedImplicitly] - public sealed class ResearchConsoleBoundUserInterface : BoundUserInterface - { - public int Points { get; private set; } - public int PointsPerSecond { get; private set; } - private ResearchConsoleMenu? _consoleMenu; - private TechnologyDatabaseComponent? _technologyDatabase; - private readonly IEntityManager _entityManager; - private readonly SharedResearchSystem _research; - - public ResearchConsoleBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) - { - SendMessage(new ConsoleServerSyncMessage()); - _entityManager = IoCManager.Resolve(); - _research = _entityManager.System(); - } - - protected override void Open() - { - base.Open(); +namespace Content.Client.Research.UI; - if (!_entityManager.TryGetComponent(Owner.Owner, out _technologyDatabase)) - return; +[UsedImplicitly] +public sealed class ResearchConsoleBoundUserInterface : BoundUserInterface +{ - _consoleMenu = new ResearchConsoleMenu(this); + private ResearchConsoleMenu? _consoleMenu; - _consoleMenu.OnClose += Close; - _consoleMenu.ServerSyncButton.OnPressed += (_) => - { - SendMessage(new ConsoleServerSyncMessage()); - }; + public ResearchConsoleBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) + { + SendMessage(new ConsoleServerSyncMessage()); + } - _consoleMenu.ServerSelectionButton.OnPressed += (_) => - { - SendMessage(new ConsoleServerSelectionMessage()); - }; + protected override void Open() + { + base.Open(); - _consoleMenu.UnlockButton.OnPressed += (_) => - { - if (_consoleMenu.TechnologySelected != null) - { - SendMessage(new ConsoleUnlockTechnologyMessage(_consoleMenu.TechnologySelected.ID)); - } - }; + var owner = Owner.Owner; - _consoleMenu.OpenCentered(); - } + _consoleMenu = new ResearchConsoleMenu(owner); - public bool IsTechnologyUnlocked(TechnologyPrototype technology) + _consoleMenu.OnTechnologyCardPressed += id => { - if (_technologyDatabase == null) - return false; + SendMessage(new ConsoleUnlockTechnologyMessage(id)); + }; - return _research.IsTechnologyUnlocked(_technologyDatabase.Owner, technology, _technologyDatabase); - } + _consoleMenu.OnServerButtonPressed += () => + { + SendMessage(new ConsoleServerSelectionMessage()); + }; - public bool CanUnlockTechnology(TechnologyPrototype technology) + _consoleMenu.OnSyncButtonPressed += () => { - if (_technologyDatabase == null) - return false; + SendMessage(new ConsoleServerSyncMessage()); + }; - return _research.ArePrerequesitesUnlocked(_technologyDatabase.Owner, technology, _technologyDatabase); - } + _consoleMenu.OnClose += Close; - protected override void UpdateState(BoundUserInterfaceState state) - { - base.UpdateState(state); + _consoleMenu.OpenCentered(); + } - var castState = (ResearchConsoleBoundInterfaceState)state; - Points = castState.Points; - PointsPerSecond = castState.PointsPerSecond; - // We update the user interface here. - _consoleMenu?.PopulatePoints(); - _consoleMenu?.Populate(); - } + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - if (!disposing) - return; - _consoleMenu?.Dispose(); - } + if (state is not ResearchConsoleBoundInterfaceState castState) + return; + _consoleMenu?.UpdatePanels(castState); + _consoleMenu?.UpdateInformationPanel(castState); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!disposing) + return; + _consoleMenu?.Dispose(); } } diff --git a/Content.Client/Research/UI/ResearchConsoleMenu.xaml b/Content.Client/Research/UI/ResearchConsoleMenu.xaml index df892b8820..a332458de3 100644 --- a/Content.Client/Research/UI/ResearchConsoleMenu.xaml +++ b/Content.Client/Research/UI/ResearchConsoleMenu.xaml @@ -1,87 +1,101 @@ - + - - - -