From 8456fda1b0b9a0adcd45b6084a029712cb67da43 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:42:53 +0300 Subject: [PATCH] =?UTF-8?q?Tweak:=20=D0=92=20=D0=B2=D0=BE=D0=BB=D1=88?= =?UTF-8?q?=D0=B5=D0=B1=D0=BD=D0=BE=D0=BC=20=D0=B7=D0=B5=D1=80=D0=BA=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BC=D0=B5=D0=BD=D1=8F=D1=82=D1=8C?= =?UTF-8?q?=20=D1=87=D0=B5=D1=80=D1=82=D1=8B=20=D0=B2=D0=BD=D0=B5=D1=88?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20(#457)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Wizard/Mirror/WizardMirrorWindow.cs | 31 +++++++++++++++++++ .../Wizard/Mirror/WizardMirrorWindow.xaml | 6 ++++ .../Wizard/Mirror/WizardMirrorSystem.cs | 8 ++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.cs b/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.cs index 5053205b2b..443698c01a 100644 --- a/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.cs +++ b/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.cs @@ -291,6 +291,15 @@ public sealed partial class WizardMirrorWindow : DefaultWindow }; #endregion Eyes + + #region Markings + + CMarkings.OnMarkingAdded += OnMarkingChange; + CMarkings.OnMarkingRemoved += OnMarkingChange; + CMarkings.OnMarkingColorChange += OnMarkingChange; + CMarkings.OnMarkingRankChange += OnMarkingChange; + + #endregion Markings } #region Set @@ -354,6 +363,15 @@ public sealed partial class WizardMirrorWindow : DefaultWindow IsDirty = true; } + private void OnMarkingChange(MarkingSet markings) + { + if (Profile is null) + return; + + Profile = Profile.WithCharacterAppearance(Profile.Appearance.WithMarkings(markings.GetForwardEnumerator().ToList())); + IsDirty = true; + } + #endregion #region Update @@ -602,6 +620,18 @@ public sealed partial class WizardMirrorWindow : DefaultWindow EyesPicker.SetData(Profile.Appearance.EyeColor); } + private void UpdateMarkings() + { + if (Profile == null) + { + return; + } + + CMarkings.SetData(Profile.Appearance.Markings, Profile.Species, + Profile.Sex, Profile.BodyType, Profile.Appearance.SkinColor, Profile.Appearance.EyeColor + ); + } + #endregion private void OnSkinColorOnValueChanged() @@ -688,5 +718,6 @@ public sealed partial class WizardMirrorWindow : DefaultWindow UpdateCMarkingsFacialHair(); UpdateTtsVoicesControls(); UpdateBodyTypes(); + UpdateMarkings(); } } diff --git a/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.xaml b/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.xaml index 64258d2f19..a135b17803 100644 --- a/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.xaml +++ b/Content.Client/_White/Wizard/Mirror/WizardMirrorWindow.xaml @@ -80,6 +80,12 @@ + + + + + + diff --git a/Content.Server/_White/Wizard/Mirror/WizardMirrorSystem.cs b/Content.Server/_White/Wizard/Mirror/WizardMirrorSystem.cs index 64e643dec1..33ff8e10ab 100644 --- a/Content.Server/_White/Wizard/Mirror/WizardMirrorSystem.cs +++ b/Content.Server/_White/Wizard/Mirror/WizardMirrorSystem.cs @@ -1,4 +1,6 @@ -using Content.Server.Humanoid; +using System.Collections.Generic; +using System.Linq; +using Content.Server.Humanoid; using Content.Server.IdentityManagement; using Content.Shared._White.Wizard.Mirror; using Content.Shared.Humanoid; @@ -7,7 +9,9 @@ using Content.Shared.Interaction; using Content.Shared.Physics; using Content.Shared.Preferences; using Content.Shared.UserInterface; +using FastAccessors; using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; using Robust.Shared.Player; namespace Content.Server._White.Wizard.Mirror; @@ -129,6 +133,8 @@ public sealed class WizardMirrorSystem : EntitySystem .Appearance.WithFacialHairColor(facialHair.MarkingColors[0])); } + profile = profile.WithCharacterAppearance(profile.Appearance.WithMarkings(humanoid.MarkingSet.GetForwardEnumerator().ToList())); + var state = new WizardMirrorUiState(profile); component.Target = targetUid;