Tweak: В волшебном зеркале теперь можно менять черты внешности (#457)

This commit is contained in:
Spatison
2024-07-17 16:42:53 +03:00
committed by GitHub
parent 626d721d73
commit 8456fda1b0
3 changed files with 44 additions and 1 deletions

View File

@@ -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();
}
}

View File

@@ -80,6 +80,12 @@
<humanoid:SingleMarkingPicker Name="CFacialHairPicker" Category="FacialHair" />
</BoxContainer>
</prefUi:HighlightedContainer>
<!-- Markings -->
<prefUi:HighlightedContainer>
<BoxContainer Name="CMarkingsTab" Orientation="Vertical" Margin="10">
<humanoid:MarkingPicker Name="CMarkings" IgnoreCategories="Hair,FacialHair" />
</BoxContainer>
</prefUi:HighlightedContainer>
</BoxContainer>
</ScrollContainer>
</DefaultWindow>

View File

@@ -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;