Tweak: В волшебном зеркале теперь можно менять черты внешности (#457)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user