mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-02 09:07:27 +00:00
* Reapply "Nubody Merge" (#5807) This reverts commitd62f7cef10. * Revert "Nubody Merge (#5670)" This reverts commitb465cfb3fd. * Revert "IPC fibers (#4968)" This reverts commitc2b42211f0. * Revert "IPC Polymorph fix (#4545)" This reverts commitfa03d8c655. * Revert "fix IPC not having humanoid emotes (#4445)" This reverts commit216fdf999f. * Revert "ipc heat/cold (#4306)" This reverts commitfafd5cf816. * Revert "ipc cables (#4283)" This reverts commit54958039a1. * Revert "feat: ipcs now have dynamic power draw based off movement speed (#3917)" This reverts commit71e8b7e64b. * Revert "fix ipcs not being able to disarm (#3374)" This reverts commit764c4dcf54. * Revert "make steel heal caustic for ipcs (#3206)" This reverts commit450ac82550. * Revert "add missing ipc survival boxes (#3065)" This reverts commit888c9cdb00. * Revert "make borgs use ipc repairing (#3064)" This reverts commitf77a49dd0b. * Revert "Update hud.yml to add ipcs to diagnostic hud (#3019)" This reverts commit7220643531. * Revert "Tweak IPCs (#2979)" This reverts commit98b47476de. * Revert "fix nukies ipc test fail (#2957)" This reverts commit4a1acbf863. * Revert "fix ipc nukies not getting comms (#2884)" This reverts commit8a2254770e. * Revert "fix ipc encryption key mispredict (#2879)" This reverts commitf08726efc1. * Revert "Merge pull request #2800 from Spielern/port-ipc" This reverts commit822fa4312c, reversing changes made tofe4c23c702. * Remove and Fix rest of IPC Hangons causing crashes * Integration test Errors * Expand migration file with removed IPC stuff * IPC Leg was found and migrated to naught * Revert "Merge pull request #2542 from deltanedas/shitmed-ops" This reverts commit83a8002922, reversing changes made tobaa89b0052. * Revert "Set up surgical augments infrastructure & add tool panel augments (#3059)" This reverts commita40f0be6fd. * Revert "Psionic Prosthetics (#4689)" This reverts commit2679bb238a. * Revert "Add surgical cleanliness and sanitation (#2847)" This reverts commit64565ba4f7. * Remove unremoved mentions * Revert "Add autoclave to easily sanitize large amounts of items and faster (#2933)" This reverts commitd0da90fa2e. * Shit Med Removed * Remove _ShitMed Folders and fix Errors in Console * Add OrganAnimalBrain into the mirgraiton file * Heads no Input Mover * Monke * Full migration file I guess * oops * shiv state fix * Restore accidental deleted recipe * Forgot one flt mention * Fix more issues * Comment out Damage Visual for motorkind for now * Motorkind... * Commenting stuff out for now * thought there'd be more of this to gut --------- Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
144 lines
5.6 KiB
C#
144 lines
5.6 KiB
C#
using Content.Shared.Body.Components;
|
|
using Content.Shared.Body.Part;
|
|
|
|
namespace Content.Shared.Humanoid
|
|
{
|
|
public static class HumanoidVisualLayersExtension
|
|
{
|
|
public static bool HasSexMorph(HumanoidVisualLayers layer)
|
|
{
|
|
return layer switch
|
|
{
|
|
HumanoidVisualLayers.Chest => true,
|
|
HumanoidVisualLayers.Head => true,
|
|
_ => false
|
|
};
|
|
}
|
|
|
|
public static string GetSexMorph(HumanoidVisualLayers layer, Sex sex, string id)
|
|
{
|
|
if (!HasSexMorph(layer) || sex == Sex.Unsexed)
|
|
return id;
|
|
|
|
return $"{id}{sex}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sublayers. Any other layers that may visually depend on this layer existing.
|
|
/// For example, the head has layers such as eyes, hair, etc. depending on it.
|
|
/// </summary>
|
|
/// <param name="layer"></param>
|
|
/// <returns>Enumerable of layers that depend on that given layer. Empty, otherwise.</returns>
|
|
/// <remarks>This could eventually be replaced by a body system implementation.</remarks>
|
|
public static IEnumerable<HumanoidVisualLayers> Sublayers(HumanoidVisualLayers layer)
|
|
{
|
|
switch (layer)
|
|
{
|
|
case HumanoidVisualLayers.Head:
|
|
yield return HumanoidVisualLayers.Head;
|
|
yield return HumanoidVisualLayers.Eyes;
|
|
yield return HumanoidVisualLayers.HeadSide;
|
|
yield return HumanoidVisualLayers.HeadTop;
|
|
yield return HumanoidVisualLayers.Hair;
|
|
yield return HumanoidVisualLayers.FacialHair;
|
|
yield return HumanoidVisualLayers.Snout;
|
|
yield return HumanoidVisualLayers.SnoutCover;
|
|
break;
|
|
case HumanoidVisualLayers.Snout:
|
|
yield return HumanoidVisualLayers.Snout;
|
|
yield return HumanoidVisualLayers.SnoutCover;
|
|
break;
|
|
case HumanoidVisualLayers.LArm:
|
|
yield return HumanoidVisualLayers.LArm;
|
|
yield return HumanoidVisualLayers.LHand;
|
|
break;
|
|
case HumanoidVisualLayers.RArm:
|
|
yield return HumanoidVisualLayers.RArm;
|
|
yield return HumanoidVisualLayers.RHand;
|
|
break;
|
|
case HumanoidVisualLayers.LLeg:
|
|
yield return HumanoidVisualLayers.LLeg;
|
|
yield return HumanoidVisualLayers.LFoot;
|
|
break;
|
|
case HumanoidVisualLayers.RLeg:
|
|
yield return HumanoidVisualLayers.RLeg;
|
|
yield return HumanoidVisualLayers.RFoot;
|
|
break;
|
|
case HumanoidVisualLayers.Chest:
|
|
yield return HumanoidVisualLayers.Chest;
|
|
yield return HumanoidVisualLayers.Tail;
|
|
break;
|
|
default:
|
|
yield break;
|
|
}
|
|
}
|
|
|
|
public static HumanoidVisualLayers? ToHumanoidLayers(this BodyPartComponent part)
|
|
{
|
|
switch (part.PartType)
|
|
{
|
|
case BodyPartType.Other:
|
|
break;
|
|
case BodyPartType.Torso:
|
|
return HumanoidVisualLayers.Chest;
|
|
case BodyPartType.Tail:
|
|
return HumanoidVisualLayers.Tail;
|
|
case BodyPartType.Head:
|
|
// use the Sublayers method to hide the rest of the parts,
|
|
// if that's what you're looking for
|
|
return HumanoidVisualLayers.Head;
|
|
case BodyPartType.Arm:
|
|
switch (part.Symmetry)
|
|
{
|
|
case BodyPartSymmetry.None:
|
|
break;
|
|
case BodyPartSymmetry.Left:
|
|
return HumanoidVisualLayers.LArm;
|
|
case BodyPartSymmetry.Right:
|
|
return HumanoidVisualLayers.RArm;
|
|
}
|
|
|
|
break;
|
|
case BodyPartType.Hand:
|
|
switch (part.Symmetry)
|
|
{
|
|
case BodyPartSymmetry.None:
|
|
break;
|
|
case BodyPartSymmetry.Left:
|
|
return HumanoidVisualLayers.LHand;
|
|
case BodyPartSymmetry.Right:
|
|
return HumanoidVisualLayers.RHand;
|
|
}
|
|
|
|
break;
|
|
case BodyPartType.Leg:
|
|
switch (part.Symmetry)
|
|
{
|
|
case BodyPartSymmetry.None:
|
|
break;
|
|
case BodyPartSymmetry.Left:
|
|
return HumanoidVisualLayers.LLeg;
|
|
case BodyPartSymmetry.Right:
|
|
return HumanoidVisualLayers.RLeg;
|
|
}
|
|
|
|
break;
|
|
case BodyPartType.Foot:
|
|
switch (part.Symmetry)
|
|
{
|
|
case BodyPartSymmetry.None:
|
|
break;
|
|
case BodyPartSymmetry.Left:
|
|
return HumanoidVisualLayers.LFoot;
|
|
case BodyPartSymmetry.Right:
|
|
return HumanoidVisualLayers.RFoot;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|