Files
tbd-station-14/Content.Server/Traitor/Uplink/UplinkListingSytem.cs
Alex Evgrashin 4002aa5852 Uplink UI icons and withdraw button (#4929)
* Uplink menu has icons now

* Add item icons

* Add few descriptions

* Better withdraw window

* Finished with withdraw window

* Refactored withdraw ui and fix some bugs

* Basic withdraw

* Quick fixes

* Removed uplink listing for TCs

* Move slider to separate control

* Final touches

* A bit more

* Not again...

* Fixed names

* Address review

* Fixed robust

* Non necessary check
2021-10-29 11:40:47 +02:00

57 lines
1.7 KiB
C#

using Content.Shared.PDA;
using Content.Shared.Traitor.Uplink;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Prototypes;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
namespace Content.Server.Traitor.Uplink
{
/// <summary>
/// Contains and controls all items in traitors uplink shop
/// </summary>
public class UplinkListingSytem : EntitySystem
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
private readonly Dictionary<string, UplinkListingData> _listings = new();
public override void Initialize()
{
base.Initialize();
foreach (var item in _prototypeManager.EnumeratePrototypes<UplinkStoreListingPrototype>())
{
var newListing = new UplinkListingData(item.ListingName, item.ItemId,
item.Price, item.Category, item.Description, item.Icon);
RegisterUplinkListing(newListing);
}
}
private void RegisterUplinkListing(UplinkListingData listing)
{
if (!ContainsListing(listing))
{
_listings.Add(listing.ItemId, listing);
}
}
public bool ContainsListing(UplinkListingData listing)
{
return _listings.ContainsKey(listing.ItemId);
}
public bool TryGetListing(string itemID, [NotNullWhen(true)] out UplinkListingData? data)
{
return _listings.TryGetValue(itemID, out data);
}
public IReadOnlyDictionary<string, UplinkListingData> GetListings()
{
return _listings;
}
}
}