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;