diff --git a/Content.Client/ADT/Changeling/ChangelingPanelSystem.cs b/Content.Client/ADT/Changeling/ChangelingPanelSystem.cs index 60b9414c775..e0e8bd60e19 100644 --- a/Content.Client/ADT/Changeling/ChangelingPanelSystem.cs +++ b/Content.Client/ADT/Changeling/ChangelingPanelSystem.cs @@ -5,7 +5,6 @@ using Content.Client.UserInterface.Systems.Radial.Controls; using Content.Shared.Changeling; using Content.Shared.Humanoid.Prototypes; -using FastAccessors; using Robust.Client.GameObjects; using Robust.Client.Player; using Robust.Client.UserInterface; @@ -36,6 +35,8 @@ public sealed class ChangelingPanelSystem : EntitySystem private const string DefaultIcon = "/Textures/Interface/AdminActions/play.png"; + private const string EmptyIcon = "/Textures/Interface/AdminActions/emptyIcon.png"; + public override void Initialize() { base.Initialize(); @@ -70,7 +71,7 @@ private void HandleChangelingFormsMenuEvent(RequestChangelingFormsMenuEvent args face.SetEntity(dummy); var actionName = humanoid.Name; - var texturePath = _spriteSystem.Frame0(new SpriteSpecifier.Texture(new ResPath(DefaultIcon))); + var texturePath = _spriteSystem.Frame0(new SpriteSpecifier.Texture(new ResPath(EmptyIcon))); var emoteButton = _openedMenu.AddButton(actionName, texturePath, face); emoteButton.Opacity = 210; diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs index afe098959d3..208c3c642a3 100644 --- a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs @@ -42,6 +42,10 @@ using Content.Shared.Preferences; using Content.Server.Database; using Content.Server.Humanoid; +using FastAccessors; +using Content.Shared.Humanoid.Prototypes; +using Robust.Shared.Utility; +using Content.Shared.Humanoid.Markings; namespace Content.Server.Changeling.EntitySystems; @@ -338,15 +342,28 @@ public void OnCycleDNA(EntityUid uid, ChangelingComponent component, ChangelingC HumanoidCharacterAppearance hca = new(); if (item.HumanoidAppearanceComponent == null) continue; - hca.WithEyeColor(item.HumanoidAppearanceComponent.EyeColor) - .WithSkinColor(item.HumanoidAppearanceComponent.SkinColor) - .WithHairColor(item.HumanoidAppearanceComponent.CachedHairColor != null ? item.HumanoidAppearanceComponent.CachedHairColor.Value : Color.Black); - foreach (var layer in item.HumanoidAppearanceComponent.BaseLayers) - { + // if (item.HumanoidAppearanceComponent.CustomBaseLayers.TryGetValue(HumanoidVisualLayers.FacialHair, out var facialHair)) + // if (facialHair.Id != null) + // hca = hca.WithFacialHairStyleName(facialHair.Id.Value.Id); + + // if (item.HumanoidAppearanceComponent.BaseLayers.TryGetValue(HumanoidVisualLayers.FacialHair, out var facialHair)) + // hca = hca.WithFacialHairStyleName(facialHair.ID); + + if (item.HumanoidAppearanceComponent.MarkingSet.Markings.TryGetValue(Shared.Humanoid.Markings.MarkingCategories.FacialHair, out var facialHair)) + if (facialHair.TryGetValue(0, out var marking)) + { + hca = hca.WithFacialHairStyleName(marking.MarkingId); + hca = hca.WithFacialHairColor(marking.MarkingColors.First()); + } + if (item.HumanoidAppearanceComponent.MarkingSet.Markings.TryGetValue(Shared.Humanoid.Markings.MarkingCategories.Hair, out var hair)) + if (hair.TryGetValue(0, out var marking)) + { + hca = hca.WithHairStyleName(marking.MarkingId); + hca = hca.WithHairColor(marking.MarkingColors.First()); + } + + hca = hca.WithSkinColor(item.HumanoidAppearanceComponent.SkinColor); - } - // WithHairColor(item.HumanoidAppearanceComponent.BaseLayers.) - // WithFacialHairColor(item.HumanoidAppearanceComponent.CachedFacialHairColor) ev.HumanoidData.Add(new() { NetEntity = netEntity.Value, diff --git a/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs b/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs index 30098ed512e..eb9f5733509 100644 --- a/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs +++ b/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs @@ -447,8 +447,8 @@ public sealed partial class ChangelingComponent : Component [DataField] public int BiodegradeDuration = 3; - - [DataField] + + [DataField] public string HiveMind = "ChangelingCollectiveMind"; [DataField] diff --git a/Resources/Textures/Interface/AdminActions/emptyIcon.png b/Resources/Textures/Interface/AdminActions/emptyIcon.png new file mode 100644 index 00000000000..98d35d502ef Binary files /dev/null and b/Resources/Textures/Interface/AdminActions/emptyIcon.png differ