* 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.Inventory;
using Content.Shared.Preferences; using Content.Shared.Preferences;
using Content.Shared.Roles; using Content.Shared.Roles;
using Content.Shared.Species;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Client.UserInterface; using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
@@ -24,17 +25,21 @@ namespace Content.Client.Lobby.UI
{ {
private readonly IEntityManager _entMan; private readonly IEntityManager _entMan;
private readonly IClientPreferencesManager _preferencesManager; private readonly IClientPreferencesManager _preferencesManager;
private EntityUid _previewDummy; private readonly IPrototypeManager _prototypeManager;
private EntityUid? _previewDummy;
private string? _previewDummySpecies;
private readonly Label _summaryLabel; private readonly Label _summaryLabel;
private readonly BoxContainer _loaded; private readonly BoxContainer _loaded;
private readonly BoxContainer _viewBox;
private readonly Label _unloaded; private readonly Label _unloaded;
public LobbyCharacterPreviewPanel(IEntityManager entityManager, public LobbyCharacterPreviewPanel(IEntityManager entityManager,
IClientPreferencesManager preferencesManager) IClientPreferencesManager preferencesManager,
IPrototypeManager prototypeManager)
{ {
_entMan = entityManager; _entMan = entityManager;
_preferencesManager = preferencesManager; _preferencesManager = preferencesManager;
_previewDummy = entityManager.SpawnEntity("MobHumanDummy", MapCoordinates.Nullspace); _prototypeManager = prototypeManager;
var header = new NanoHeading var header = new NanoHeading
{ {
@@ -49,11 +54,6 @@ namespace Content.Client.Lobby.UI
_summaryLabel = new Label(); _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 var vBox = new BoxContainer
{ {
Orientation = LayoutOrientation.Vertical Orientation = LayoutOrientation.Vertical
@@ -61,7 +61,7 @@ namespace Content.Client.Lobby.UI
vBox.AddChild(header); 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 _loaded = new BoxContainer
{ {
@@ -72,16 +72,12 @@ namespace Content.Client.Lobby.UI
_loaded.AddChild(CharacterSetupButton); _loaded.AddChild(CharacterSetupButton);
_loaded.AddChild(_summaryLabel); _loaded.AddChild(_summaryLabel);
var hBox = new BoxContainer _viewBox = new BoxContainer
{ {
Orientation = LayoutOrientation.Horizontal 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(_loaded);
vBox.AddChild(_unloaded); vBox.AddChild(_unloaded);
@@ -100,7 +96,7 @@ namespace Content.Client.Lobby.UI
_preferencesManager.OnServerDataLoaded -= UpdateUI; _preferencesManager.OnServerDataLoaded -= UpdateUI;
if (!disposing) return; if (!disposing) return;
_entMan.DeleteEntity(_previewDummy); if (_previewDummy != null) _entMan.DeleteEntity(_previewDummy.Value);
_previewDummy = default; _previewDummy = default;
} }
@@ -131,9 +127,19 @@ namespace Content.Client.Lobby.UI
} }
else 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; _summaryLabel.Text = selectedCharacter.Summary;
EntitySystem.Get<SharedHumanoidAppearanceSystem>().UpdateFromProfile(_previewDummy, selectedCharacter); EntitySystem.Get<SharedHumanoidAppearanceSystem>().UpdateFromProfile(_previewDummy.Value, selectedCharacter);
GiveDummyJobClothes(_previewDummy, selectedCharacter); GiveDummyJobClothes(_previewDummy.Value, selectedCharacter);
} }
} }
} }
@@ -156,7 +162,7 @@ namespace Content.Client.Lobby.UI
foreach (var slot in slots) foreach (var slot in slots)
{ {
var itemType = gear.GetGear(slot.Name, profile); 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); 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.Info;
using Content.Client.Preferences; using Content.Client.Preferences;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
@@ -7,7 +7,9 @@ using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.BoxContainer; using static Robust.Client.UserInterface.Controls.BoxContainer;
namespace Content.Client.Lobby.UI namespace Content.Client.Lobby.UI
@@ -27,7 +29,8 @@ namespace Content.Client.Lobby.UI
CharacterPreview = new LobbyCharacterPreviewPanel( CharacterPreview = new LobbyCharacterPreviewPanel(
entityManager, entityManager,
preferencesManager) preferencesManager,
IoCManager.Resolve<IPrototypeManager>())
{ {
HorizontalAlignment = HAlignment.Left HorizontalAlignment = HAlignment.Left
}; };
@@ -46,7 +49,7 @@ namespace Content.Client.Lobby.UI
{ {
var panel = new PanelContainer() var panel = new PanelContainer()
{ {
PanelOverride = new StyleBoxFlat {BackgroundColor = Color.FromHex("#202028")}, PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#202028") },
}; };
_vBox = new BoxContainer _vBox = new BoxContainer
{ {