* Fix #6154

This is a web edit

* This is not a web edit

(It's still broken)

* Fix more missing files from the patch
This commit is contained in:
ZeroDayDaemon
2022-01-14 13:19:07 -05:00
committed by GitHub
parent 2947b33481
commit 3e2ba2a91d
2 changed files with 31 additions and 22 deletions

View File

@@ -7,6 +7,7 @@ using Content.Shared.GameTicking;
using Content.Shared.Inventory;
using Content.Shared.Preferences;
using Content.Shared.Roles;
using Content.Shared.Species;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
@@ -24,17 +25,21 @@ namespace Content.Client.Lobby.UI
{
private readonly IEntityManager _entMan;
private readonly IClientPreferencesManager _preferencesManager;
private EntityUid _previewDummy;
private readonly IPrototypeManager _prototypeManager;
private EntityUid? _previewDummy;
private string? _previewDummySpecies;
private readonly Label _summaryLabel;
private readonly BoxContainer _loaded;
private readonly BoxContainer _viewBox;
private readonly Label _unloaded;
public LobbyCharacterPreviewPanel(IEntityManager entityManager,
IClientPreferencesManager preferencesManager)
IClientPreferencesManager preferencesManager,
IPrototypeManager prototypeManager)
{
_entMan = entityManager;
_preferencesManager = preferencesManager;
_previewDummy = entityManager.SpawnEntity("MobHumanDummy", MapCoordinates.Nullspace);
_prototypeManager = prototypeManager;
var header = new NanoHeading
{
@@ -49,11 +54,6 @@ namespace Content.Client.Lobby.UI
_summaryLabel = new Label();
var viewSouth = MakeSpriteView(_previewDummy, Direction.South);
var viewNorth = MakeSpriteView(_previewDummy, Direction.North);
var viewWest = MakeSpriteView(_previewDummy, Direction.West);
var viewEast = MakeSpriteView(_previewDummy, Direction.East);
var vBox = new BoxContainer
{
Orientation = LayoutOrientation.Vertical
@@ -61,7 +61,7 @@ namespace Content.Client.Lobby.UI
vBox.AddChild(header);
_unloaded = new Label {Text = Loc.GetString("lobby-character-preview-panel-unloaded-preferences-label")};
_unloaded = new Label { Text = Loc.GetString("lobby-character-preview-panel-unloaded-preferences-label") };
_loaded = new BoxContainer
{
@@ -72,16 +72,12 @@ namespace Content.Client.Lobby.UI
_loaded.AddChild(CharacterSetupButton);
_loaded.AddChild(_summaryLabel);
var hBox = new BoxContainer
_viewBox = new BoxContainer
{
Orientation = LayoutOrientation.Horizontal
};
hBox.AddChild(viewSouth);
hBox.AddChild(viewNorth);
hBox.AddChild(viewWest);
hBox.AddChild(viewEast);
_loaded.AddChild(hBox);
_loaded.AddChild(_viewBox);
vBox.AddChild(_loaded);
vBox.AddChild(_unloaded);
@@ -100,7 +96,7 @@ namespace Content.Client.Lobby.UI
_preferencesManager.OnServerDataLoaded -= UpdateUI;
if (!disposing) return;
_entMan.DeleteEntity(_previewDummy);
if (_previewDummy != null) _entMan.DeleteEntity(_previewDummy.Value);
_previewDummy = default;
}
@@ -131,9 +127,19 @@ namespace Content.Client.Lobby.UI
}
else
{
_previewDummy = _entMan.SpawnEntity(_prototypeManager.Index<SpeciesPrototype>(selectedCharacter.Species).DollPrototype, MapCoordinates.Nullspace);
var viewSouth = MakeSpriteView(_previewDummy.Value, Direction.South);
var viewNorth = MakeSpriteView(_previewDummy.Value, Direction.North);
var viewWest = MakeSpriteView(_previewDummy.Value, Direction.West);
var viewEast = MakeSpriteView(_previewDummy.Value, Direction.East);
_viewBox.DisposeAllChildren();
_viewBox.AddChild(viewSouth);
_viewBox.AddChild(viewNorth);
_viewBox.AddChild(viewWest);
_viewBox.AddChild(viewEast);
_summaryLabel.Text = selectedCharacter.Summary;
EntitySystem.Get<SharedHumanoidAppearanceSystem>().UpdateFromProfile(_previewDummy, selectedCharacter);
GiveDummyJobClothes(_previewDummy, selectedCharacter);
EntitySystem.Get<SharedHumanoidAppearanceSystem>().UpdateFromProfile(_previewDummy.Value, selectedCharacter);
GiveDummyJobClothes(_previewDummy.Value, selectedCharacter);
}
}
}
@@ -156,7 +162,7 @@ namespace Content.Client.Lobby.UI
foreach (var slot in slots)
{
var itemType = gear.GetGear(slot.Name, profile);
if(invSystem.TryUnequip(dummy, slot.Name, out var unequippedItem, true, true))
if (invSystem.TryUnequip(dummy, slot.Name, out var unequippedItem, true, true))
{
entMan.DeleteEntity(unequippedItem.Value);
}

View File

@@ -1,4 +1,4 @@
using Content.Client.Chat.UI;
using Content.Client.Chat.UI;
using Content.Client.Info;
using Content.Client.Preferences;
using Robust.Client.AutoGenerated;
@@ -7,7 +7,9 @@ using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.BoxContainer;
namespace Content.Client.Lobby.UI
@@ -27,7 +29,8 @@ namespace Content.Client.Lobby.UI
CharacterPreview = new LobbyCharacterPreviewPanel(
entityManager,
preferencesManager)
preferencesManager,
IoCManager.Resolve<IPrototypeManager>())
{
HorizontalAlignment = HAlignment.Left
};
@@ -46,7 +49,7 @@ namespace Content.Client.Lobby.UI
{
var panel = new PanelContainer()
{
PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#202028")},
PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#202028") },
};
_vBox = new BoxContainer
{