Revert "Add undergarments & "Censor Nudity" toggle to options (#33185)"
This reverts commit 27cfc093
|
|
@ -1,12 +1,11 @@
|
|||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Preferences;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
|
|
@ -16,15 +15,12 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly MarkingManager _markingManager = default!;
|
||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<HumanoidAppearanceComponent, AfterAutoHandleStateEvent>(OnHandleState);
|
||||
Subs.CVar(_configurationManager, CCVars.AccessibilityClientCensorNudity, OnCvarChanged, true);
|
||||
Subs.CVar(_configurationManager, CCVars.AccessibilityServerCensorNudity, OnCvarChanged, true);
|
||||
}
|
||||
|
||||
private void OnHandleState(EntityUid uid, HumanoidAppearanceComponent component, ref AfterAutoHandleStateEvent args)
|
||||
|
|
@ -32,15 +28,6 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
UpdateSprite(component, Comp<SpriteComponent>(uid));
|
||||
}
|
||||
|
||||
private void OnCvarChanged(bool value)
|
||||
{
|
||||
var humanoidQuery = EntityManager.AllEntityQueryEnumerator<HumanoidAppearanceComponent, SpriteComponent>();
|
||||
while (humanoidQuery.MoveNext(out var _, out var humanoidComp, out var spriteComp))
|
||||
{
|
||||
UpdateSprite(humanoidComp, spriteComp);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateSprite(HumanoidAppearanceComponent component, SpriteComponent sprite)
|
||||
{
|
||||
UpdateLayers(component, sprite);
|
||||
|
|
@ -223,30 +210,16 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
// Really, markings should probably be a separate component altogether.
|
||||
ClearAllMarkings(humanoid, sprite);
|
||||
|
||||
var censorNudity = _configurationManager.GetCVar(CCVars.AccessibilityClientCensorNudity) ||
|
||||
_configurationManager.GetCVar(CCVars.AccessibilityServerCensorNudity);
|
||||
// The reason we're splitting this up is in case the character already has undergarment equipped in that slot.
|
||||
var applyUndergarmentTop = censorNudity;
|
||||
var applyUndergarmentBottom = censorNudity;
|
||||
|
||||
foreach (var markingList in humanoid.MarkingSet.Markings.Values)
|
||||
{
|
||||
foreach (var marking in markingList)
|
||||
{
|
||||
if (_markingManager.TryGetMarking(marking, out var markingPrototype))
|
||||
{
|
||||
ApplyMarking(markingPrototype, marking.MarkingColors, marking.Visible, humanoid, sprite);
|
||||
if (markingPrototype.BodyPart == HumanoidVisualLayers.UndergarmentTop)
|
||||
applyUndergarmentTop = false;
|
||||
else if (markingPrototype.BodyPart == HumanoidVisualLayers.UndergarmentBottom)
|
||||
applyUndergarmentBottom = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
humanoid.ClientOldMarkings = new MarkingSet(humanoid.MarkingSet);
|
||||
|
||||
AddUndergarments(humanoid, sprite, applyUndergarmentTop, applyUndergarmentBottom);
|
||||
}
|
||||
|
||||
private void ClearAllMarkings(HumanoidAppearanceComponent humanoid, SpriteComponent sprite)
|
||||
|
|
@ -295,29 +268,6 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
}
|
||||
}
|
||||
|
||||
private void AddUndergarments(HumanoidAppearanceComponent humanoid, SpriteComponent sprite, bool undergarmentTop, bool undergarmentBottom)
|
||||
{
|
||||
if (undergarmentTop && humanoid.UndergarmentTop != null)
|
||||
{
|
||||
var marking = new Marking(humanoid.UndergarmentTop, new List<Color> { new Color() });
|
||||
if (_markingManager.TryGetMarking(marking, out var prototype))
|
||||
{
|
||||
// Markings are added to ClientOldMarkings because otherwise it causes issues when toggling the feature on/off.
|
||||
humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentTop, new List<Marking>{ marking });
|
||||
ApplyMarking(prototype, null, true, humanoid, sprite);
|
||||
}
|
||||
}
|
||||
|
||||
if (undergarmentBottom && humanoid.UndergarmentBottom != null)
|
||||
{
|
||||
var marking = new Marking(humanoid.UndergarmentBottom, new List<Color> { new Color() });
|
||||
if (_markingManager.TryGetMarking(marking, out var prototype))
|
||||
{
|
||||
humanoid.ClientOldMarkings.Markings.Add(MarkingCategories.UndergarmentBottom, new List<Marking>{ marking });
|
||||
ApplyMarking(prototype, null, true, humanoid, sprite);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Sunrsie-Edit
|
||||
public void ApplyMarking(MarkingPrototype markingPrototype,
|
||||
IReadOnlyList<Color>? colors,
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
<BoxContainer Orientation="Vertical">
|
||||
<ScrollContainer VerticalExpand="True" HScrollEnabled="False">
|
||||
<BoxContainer Orientation="Vertical" Margin="8">
|
||||
<Label Text="{Loc 'ui-options-accessability-header-visuals'}"
|
||||
StyleClasses="LabelKeyText"/>
|
||||
<CheckBox Name="ReducedMotionCheckBox" Text="{Loc 'ui-options-reduced-motion'}" />
|
||||
<CheckBox Name="EnableColorNameCheckBox" Text="{Loc 'ui-options-enable-color-name'}" />
|
||||
<CheckBox Name="ColorblindFriendlyCheckBox" Text="{Loc 'ui-options-colorblind-friendly'}" />
|
||||
|
|
@ -14,9 +12,6 @@
|
|||
<ui:OptionSlider Name="SpeechBubbleTextOpacitySlider" Title="{Loc 'ui-options-speech-bubble-text-opacity'}" />
|
||||
<ui:OptionSlider Name="SpeechBubbleSpeakerOpacitySlider" Title="{Loc 'ui-options-speech-bubble-speaker-opacity'}" />
|
||||
<ui:OptionSlider Name="SpeechBubbleBackgroundOpacitySlider" Title="{Loc 'ui-options-speech-bubble-background-opacity'}" />
|
||||
<Label Text="{Loc 'ui-options-accessability-header-content'}"
|
||||
StyleClasses="LabelKeyText"/>
|
||||
<CheckBox Name="CensorNudityCheckBox" Text="{Loc 'ui-options-censor-nudity'}" />
|
||||
</BoxContainer>
|
||||
</ScrollContainer>
|
||||
<ui:OptionsTabControlRow Name="Control" Access="Public" />
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ public sealed partial class AccessibilityTab : Control
|
|||
Control.AddOptionPercentSlider(CCVars.SpeechBubbleSpeakerOpacity, SpeechBubbleSpeakerOpacitySlider);
|
||||
Control.AddOptionPercentSlider(CCVars.SpeechBubbleBackgroundOpacity, SpeechBubbleBackgroundOpacitySlider);
|
||||
|
||||
Control.AddOptionCheckBox(CCVars.AccessibilityClientCensorNudity, CensorNudityCheckBox);
|
||||
|
||||
Control.Initialize();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,17 +60,5 @@ public sealed partial class CCVars
|
|||
public static readonly CVarDef<float> SpeechBubbleBackgroundOpacity =
|
||||
CVarDef.Create("accessibility.speech_bubble_background_opacity", 0.75f, CVar.CLIENTONLY | CVar.ARCHIVE);
|
||||
|
||||
/// <summary>
|
||||
/// If enabled, censors character nudity by forcing clothes markings on characters, selected by the client.
|
||||
/// Both this and AccessibilityServerCensorNudity must be false to display nudity on the client.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> AccessibilityClientCensorNudity =
|
||||
CVarDef.Create("accessibility.censor_nudity", false, CVar.CLIENTONLY | CVar.ARCHIVE);
|
||||
|
||||
/// <summary>
|
||||
/// If enabled, censors character nudity by forcing clothes markings on characters, selected by the server.
|
||||
/// Both this and AccessibilityClientCensorNudity must be false to display nudity on the client.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<bool> AccessibilityServerCensorNudity =
|
||||
CVarDef.Create("accessibility.server_censor_nudity", false, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,15 +93,6 @@ public sealed partial class HumanoidAppearanceComponent : Component
|
|||
[DataField]
|
||||
public HashSet<HumanoidVisualLayers> HideLayersOnEquip = [HumanoidVisualLayers.Hair];
|
||||
|
||||
/// <summary>
|
||||
/// Which markings the humanoid defaults to when nudity is toggled off.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public ProtoId<MarkingPrototype>? UndergarmentTop = new ProtoId<MarkingPrototype>("UndergarmentTopTanktop");
|
||||
|
||||
[DataField]
|
||||
public ProtoId<MarkingPrototype>? UndergarmentBottom = new ProtoId<MarkingPrototype>("UndergarmentBottomBoxers");
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
[DataField("voice")]
|
||||
public ProtoId<TTSVoicePrototype> Voice { get; set; } = SharedHumanoidAppearanceSystem.DefaultVoice;
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ namespace Content.Shared.Humanoid
|
|||
Tail,
|
||||
Hair,
|
||||
FacialHair,
|
||||
UndergarmentTop,
|
||||
UndergarmentBottom,
|
||||
Chest,
|
||||
Head,
|
||||
Snout,
|
||||
|
|
@ -21,6 +19,7 @@ namespace Content.Shared.Humanoid
|
|||
RArm,
|
||||
LArm,
|
||||
RHand,
|
||||
|
||||
LHand,
|
||||
RLeg,
|
||||
LLeg,
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ namespace Content.Shared.Humanoid.Markings
|
|||
HeadSide,
|
||||
Snout,
|
||||
Chest,
|
||||
UndergarmentTop,
|
||||
UndergarmentBottom,
|
||||
Arms,
|
||||
Legs,
|
||||
Tail,
|
||||
|
|
@ -35,8 +33,6 @@ namespace Content.Shared.Humanoid.Markings
|
|||
HumanoidVisualLayers.HeadSide => MarkingCategories.HeadSide,
|
||||
HumanoidVisualLayers.Snout => MarkingCategories.Snout,
|
||||
HumanoidVisualLayers.Chest => MarkingCategories.Chest,
|
||||
HumanoidVisualLayers.UndergarmentTop => MarkingCategories.UndergarmentTop,
|
||||
HumanoidVisualLayers.UndergarmentBottom => MarkingCategories.UndergarmentBottom,
|
||||
HumanoidVisualLayers.RArm => MarkingCategories.Arms,
|
||||
HumanoidVisualLayers.LArm => MarkingCategories.Arms,
|
||||
HumanoidVisualLayers.RHand => MarkingCategories.Arms,
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public static class MarkingColoring
|
|||
public sealed partial class LayerColoringDefinition
|
||||
{
|
||||
[DataField("type")]
|
||||
public LayerColoringType? Type = new SkinColoring();
|
||||
public LayerColoringType Type = new SkinColoring();
|
||||
|
||||
/// <summary>
|
||||
/// Coloring types that will be used if main coloring type will return nil
|
||||
|
|
@ -105,9 +105,7 @@ public sealed partial class LayerColoringDefinition
|
|||
|
||||
public Color GetColor(Color? skin, Color? eyes, MarkingSet markingSet)
|
||||
{
|
||||
Color? color = null;
|
||||
if (Type != null)
|
||||
color = Type.GetColor(skin, eyes, markingSet);
|
||||
var color = Type.GetColor(skin, eyes, markingSet);
|
||||
if (color == null)
|
||||
{
|
||||
foreach (var type in FallbackTypes)
|
||||
|
|
|
|||
|
|
@ -320,21 +320,15 @@ cmd-options-help = Usage: options [tab]
|
|||
|
||||
## Accessibility menu
|
||||
|
||||
ui-options-accessability-header-visuals = Visuals
|
||||
ui-options-accessability-header-content = Content
|
||||
|
||||
ui-options-enable-color-name = Add colors to character names
|
||||
ui-options-colorblind-friendly = Colorblind friendly mode
|
||||
ui-options-reduced-motion = Reduce motion of visual effects
|
||||
ui-options-screen-shake-intensity = Screen shake intensity
|
||||
|
||||
ui-options-chat-window-opacity = Chat window opacity
|
||||
ui-options-speech-bubble-text-opacity = Speech bubble text opacity
|
||||
ui-options-speech-bubble-speaker-opacity = Speech bubble speaker opacity
|
||||
ui-options-speech-bubble-background-opacity = Speech bubble background opacity
|
||||
|
||||
ui-options-censor-nudity = Censor character nudity
|
||||
|
||||
## Admin menu
|
||||
|
||||
ui-options-admin-player-panel = Admin Menu Players List
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ markings-category-Head = Head
|
|||
markings-category-HeadTop = Head (Top)
|
||||
markings-category-HeadSide = Head (Side)
|
||||
markings-category-Snout = Snout
|
||||
markings-category-UndergarmentTop = Undergarment (Top)
|
||||
markings-category-UndergarmentBottom = Undergarment (Bottom)
|
||||
markings-category-Chest = Chest
|
||||
markings-category-Arms = Arms
|
||||
markings-category-Legs = Legs
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
marking-UndergarmentTopTanktop = Tanktop
|
||||
marking-UndergarmentTopBinder = Binder
|
||||
marking-UndergarmentTopBra = Classic Bra
|
||||
marking-UndergarmentTopSportsbra = Sports Bra
|
||||
|
||||
marking-UndergarmentBottomBoxers = Boxers
|
||||
marking-UndergarmentBottomBriefs = Briefs
|
||||
marking-UndergarmentBottomSatin = Satin
|
||||
|
||||
marking-UndergarmentTopTanktopVox = Tanktop
|
||||
marking-UndergarmentTopBinderVox = Binder
|
||||
marking-UndergarmentTopBraVox = Classic Bra
|
||||
marking-UndergarmentTopSportsbraVox = Sports Bra
|
||||
|
||||
marking-UndergarmentBottomBoxersVox = Boxers
|
||||
marking-UndergarmentBottomBriefsVox = Briefs
|
||||
marking-UndergarmentBottomSatinVox = Satin
|
||||
|
||||
marking-UndergarmentBottomBoxersReptilian = Boxers
|
||||
marking-UndergarmentBottomBriefsReptilian = Briefs
|
||||
marking-UndergarmentBottomSatinReptilian = Satin
|
||||
|
|
@ -1,223 +0,0 @@
|
|||
# These options are kept very sparse to not put emphasis on nudity, and to provide a base for players to feel comfortable with.
|
||||
# It's unlikely more will be added to upstream for cosmetic reasons.
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBoxers
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: boxers
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBriefs
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: briefs
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomSatin
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: satin
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopBra
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, Reptilian, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: classic
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopSportsbra
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, Reptilian, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: sports
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopBinder
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, Reptilian, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: binder
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopTanktop
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Arachnid, Diona, Human, Dwarf, Moth, Reptilian, SlimePerson]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: tanktop
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBoxersVox # Voxers.
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: boxers_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBriefsVox
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: briefs_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomSatinVox
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: satin_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopBraVox
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: classic_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopSportsbraVox
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: sports_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopBinderVox
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: binder_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentTopTanktopVox
|
||||
bodyPart: UndergarmentTop
|
||||
markingCategory: UndergarmentTop
|
||||
speciesRestriction: [Vox]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: tanktop_vox
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBoxersReptilian
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Reptilian]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: boxers_reptilian
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomBriefsReptilian
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Reptilian]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: briefs_reptilian
|
||||
|
||||
- type: marking
|
||||
id: UndergarmentBottomSatinReptilian
|
||||
bodyPart: UndergarmentBottom
|
||||
markingCategory: UndergarmentBottom
|
||||
speciesRestriction: [Reptilian]
|
||||
coloring:
|
||||
default:
|
||||
type: null
|
||||
fallbackColor: '#FFFFFF'
|
||||
sprites:
|
||||
- sprite: Mobs/Customization/undergarments.rsi
|
||||
state: satin_reptilian
|
||||
|
|
@ -89,8 +89,6 @@
|
|||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
# Sunrise-start
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
# Sunrise-start
|
||||
|
|
@ -360,8 +358,6 @@
|
|||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
# Sunrise-start
|
||||
|
|
|
|||
|
|
@ -88,8 +88,6 @@
|
|||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LHand" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RHand" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
- Snout
|
||||
- HeadTop
|
||||
- HeadSide
|
||||
undergarmentBottom: UndergarmentBottomBoxersReptilian
|
||||
- type: Hunger
|
||||
- type: Puller
|
||||
needsHands: false
|
||||
|
|
@ -110,7 +109,6 @@
|
|||
- Snout
|
||||
- HeadTop
|
||||
- HeadSide
|
||||
undergarmentBottom: UndergarmentBottomBoxersReptilian
|
||||
- type: Inventory
|
||||
speciesId: reptilian
|
||||
femaleDisplacements:
|
||||
|
|
|
|||
|
|
@ -16,10 +16,8 @@
|
|||
- type: Body
|
||||
prototype: Vox
|
||||
requiredLegs: 2
|
||||
- type: HumanoidAppearance
|
||||
- type: HumanoidAppearance
|
||||
species: Vox
|
||||
undergarmentTop: UndergarmentTopTanktopVox
|
||||
undergarmentBottom: UndergarmentBottomBoxersVox
|
||||
#- type: VoxAccent # Not yet coded
|
||||
- type: Speech
|
||||
speechVerb: Vox
|
||||
|
|
@ -78,8 +76,6 @@
|
|||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LHand" ]
|
||||
|
|
@ -183,8 +179,6 @@
|
|||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: Vox
|
||||
undergarmentTop: UndergarmentTopTanktopVox
|
||||
undergarmentBottom: UndergarmentBottomBoxersVox
|
||||
- type: Body
|
||||
prototype: Vox
|
||||
- type: Inventory
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
sprites:
|
||||
Head: MobArachnidHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobArachnidTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@
|
|||
Head: MobDionaHead
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobDionaTorso
|
||||
Eyes: MobDionaEyes
|
||||
LArm: MobDionaLArm
|
||||
|
|
@ -48,12 +46,6 @@
|
|||
HeadSide:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentTop:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentBottom:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@
|
|||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
Snout: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobHumanTorso
|
||||
Eyes: MobHumanoidEyes
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
|
|
@ -83,12 +81,6 @@
|
|||
HeadTop:
|
||||
points: 1 # Sunrise-Sponsors
|
||||
required: false
|
||||
UndergarmentTop:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentBottom:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
sprites:
|
||||
Head: MobMothHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobMothTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
|
|
@ -98,12 +96,6 @@
|
|||
Head:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentTop:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentBottom:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
sprites:
|
||||
Head: MobReptilianHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobReptilianTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
|
|
@ -82,12 +80,6 @@
|
|||
HeadSide:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentTop:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentBottom:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 3
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@
|
|||
Head: MobSlimeHead
|
||||
Hair: MobSlimeMarkingFollowSkin
|
||||
FacialHair: MobSlimeMarkingFollowSkin
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobSlimeTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@
|
|||
Snout: MobHumanoidAnyMarking
|
||||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
UndergarmentTop: MobHumanoidAnyMarking
|
||||
UndergarmentBottom: MobHumanoidAnyMarking
|
||||
Chest: MobVoxTorso
|
||||
Eyes: MobVoxEyes
|
||||
LArm: MobVoxLArm
|
||||
|
|
@ -62,12 +60,6 @@
|
|||
points: 4
|
||||
required: true
|
||||
defaultMarkings: [ VoxLLegScales, VoxRLegScales, VoxRFootScales, VoxLFootScales ]
|
||||
UndergarmentTop:
|
||||
points: 1
|
||||
required: false
|
||||
UndergarmentBottom:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
required: false
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "sprites taken from https://github.com/cmss13-devs/cmss13/blob/884ab172389b6fc54ef063f5fbea5e8b0a0a2235/icons/mob/humans/underwear.dmi and https://github.com/cmss13-devs/cmss13/blob/884ab172389b6fc54ef063f5fbea5e8b0a0a2235/icons/mob/humans/undershirt.dmi, edited by SlamBamActionman",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "briefs",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "satin",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "boxers",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "classic",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "sports",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "binder",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "tanktop",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "briefs_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "satin_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "boxers_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "classic_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "sports_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "binder_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "tanktop_vox",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "briefs_reptilian",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "satin_reptilian",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "boxers_reptilian",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |