mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-16 21:17:39 +03:00
# Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Ports https://github.com/space-wizards/space-station-14/pull/32294 Ports https://github.com/ss14-harmony/ss14-harmony/pull/310 (and everything needed for it to function) Early-merges https://github.com/space-wizards/space-station-14/pull/34302 Adds the ability for multiple central command maps that get randomly selected. Tested and works. --- # Changelog <!-- You can add an author after the `🆑` to change the name that appears in the changelog (ex: `🆑 Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> 🆑 Several contributors - add: Added a new central command map that is randomly picked alongside the old one (thank you to Spanky from Harmony) - add: Added Advanced SMES for mappers. - add: Added the atmospheric network monitor for seeing what the temperature, moles, and pressure is on every pipe everywhere through a computer. - add: Nukie med bundle now contains a compact defibrillator. - add: Ported a better mapping editor. - add: Added the throngler plushie. - remove: Removed the Throngler as a possible loot spawn for gamble crates. --------- Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> (cherry picked from commit 9272f65b64392f66a7cd4fd7c84bb152dc93b65a)
90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
using System.Numerics;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.XAML;
|
|
|
|
namespace Content.Client.Mapping;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class MappingSpawnButton : Control
|
|
{
|
|
private MappingPrototype? _prototype;
|
|
|
|
public MappingPrototype? Prototype
|
|
{
|
|
get => _prototype;
|
|
set
|
|
{
|
|
_prototype = value;
|
|
if (_prototype != null)
|
|
ToggleFavorite(_prototype.Favorite);
|
|
}
|
|
}
|
|
|
|
public MappingSpawnButton()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
|
|
CollapseTexture.TexturePath = "/Textures/Interface/VerbIcons/chevron-right-solid.svg.192dpi.png";
|
|
FavoriteTexture.TexturePath = "/Textures/Interface/VerbIcons/star-regular.svg.192dpi.png";
|
|
OnResized += OnResizedGallery;
|
|
FavoriteButton.OnPressed += args => ToggleFavorite(args.Button.Pressed);
|
|
}
|
|
|
|
private void OnResizedGallery()
|
|
{
|
|
if (Parent != null)
|
|
ChildrenPrototypesGallery.MaxGridWidth = Math.Max(1, Parent.Width - ChildrenPrototypesGallery.Margin.Left );
|
|
}
|
|
|
|
public void Gallery()
|
|
{
|
|
Label.Visible = false;
|
|
Button.AddStyleClass("ButtonSquare");
|
|
SetWidth = 48;
|
|
SetHeight = 48;
|
|
// TODO: I don't know how to successfully add a favorite button to the gallery layout
|
|
FavoriteButton.Visible = false;
|
|
}
|
|
|
|
public void SetTextures(List<Texture> textures)
|
|
{
|
|
Button.RemoveStyleClass("OpenBoth");
|
|
Button.AddStyleClass("OpenLeft");
|
|
CollapseButton.RemoveStyleClass("OpenRight");
|
|
CollapseButton.AddStyleClass("ButtonSquare");
|
|
Texture.Visible = true;
|
|
Texture.Textures.AddRange(textures);
|
|
|
|
foreach (var texture in textures)
|
|
{
|
|
Texture.TextureScale = new Vector2(Texture.SetSize.X / texture.Height, Texture.SetSize.X / texture.Height);
|
|
}
|
|
|
|
Texture.InvalidateMeasure();
|
|
}
|
|
|
|
public void Collapse()
|
|
{
|
|
CollapseButton.Pressed = false;
|
|
ChildrenPrototypes.DisposeAllChildren();
|
|
ChildrenPrototypesGallery.DisposeAllChildren();
|
|
CollapseTexture.TexturePath = "/Textures/Interface/VerbIcons/chevron-right-solid.svg.192dpi.png";
|
|
}
|
|
|
|
public void UnCollapse()
|
|
{
|
|
CollapseButton.Pressed = true;
|
|
CollapseTexture.TexturePath = "/Textures/Interface/VerbIcons/chevron-down-solid.svg.192dpi.png";
|
|
}
|
|
|
|
public void ToggleFavorite(bool enabled)
|
|
{
|
|
FavoriteButton.Pressed = enabled;
|
|
FavoriteTexture.TexturePath = FavoriteButton.Pressed
|
|
? "/Textures/Interface/VerbIcons/star-solid-yellow.svg.192dpi.png"
|
|
: "/Textures/Interface/VerbIcons/star-regular.svg.192dpi.png";
|
|
}
|
|
}
|