diff --git a/Content.Client/_Amour/Animation/SharebleAnimationSystem.cs b/Content.Client/_Amour/Animation/SharebleAnimationSystem.cs index 9430dfa85c..cd103da402 100644 --- a/Content.Client/_Amour/Animation/SharebleAnimationSystem.cs +++ b/Content.Client/_Amour/Animation/SharebleAnimationSystem.cs @@ -28,12 +28,14 @@ public sealed class SharebleAnimationSystem : SharedAnimationSystem private void OnProtoStart(AnimationProtoStartMessage ev) { - Play(GetEntity(ev.Owner),ev.ProtoId); + if(ev.Owner.Valid) + Play(GetEntity(ev.Owner),ev.ProtoId); } private void OnStart(AnimationStartMessage ev) { - Play(GetEntity(ev.Owner),ev.Data,ev.Id); + if(ev.Owner.Valid) + Play(GetEntity(ev.Owner),ev.Data,ev.Id); } public override void Play(EntityUid uid,ProtoId protoId) diff --git a/Content.Shared/_Amour/Hole/HoleComponent.cs b/Content.Shared/_Amour/Hole/HoleComponent.cs index 2577e41b87..234741202b 100644 --- a/Content.Shared/_Amour/Hole/HoleComponent.cs +++ b/Content.Shared/_Amour/Hole/HoleComponent.cs @@ -28,6 +28,7 @@ public sealed partial class HoleComponent : Component [ViewVariables(VVAccess.ReadWrite)] public bool IsExcited = false; [DataField] public bool IsMainHole = false; + [DataField] public bool IsVisibleInSkirt = true; } [Serializable, NetSerializable, DataDefinition] diff --git a/Content.Shared/_Amour/Hole/HoleSystem.Access.cs b/Content.Shared/_Amour/Hole/HoleSystem.Access.cs index 7c3b42b620..92a4902622 100644 --- a/Content.Shared/_Amour/Hole/HoleSystem.Access.cs +++ b/Content.Shared/_Amour/Hole/HoleSystem.Access.cs @@ -22,7 +22,7 @@ public partial class SharedHoleSystem foreach (var slot in hole.Comp.HoleNotVisibleIn) { - if (_inventory.TryGetSlotEntity(entity, slot, out _, entity)) + if (_inventory.TryGetSlotEntity(entity, slot, out var item, entity) && !(HasComp(item) && hole.Comp.IsVisibleInSkirt)) return false; } diff --git a/Content.Shared/_Amour/Hole/VisibleHoleComponent.cs b/Content.Shared/_Amour/Hole/VisibleHoleComponent.cs new file mode 100644 index 0000000000..e298fe208d --- /dev/null +++ b/Content.Shared/_Amour/Hole/VisibleHoleComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared._Amour.Hole; + +[RegisterComponent] +public sealed partial class VisibleHoleComponent : Component +{ + +} diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml index 777f1dc936..31a5e74691 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -72,3 +72,4 @@ - type: Clothing slots: [innerclothing] femaleMask: UniformTop + - type: VisibleHole # AMOUR EDIT diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/vending.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/vending.yml index d55a7916b4..f5a7e51388 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/vending.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/vending.yml @@ -31,4 +31,5 @@ - VendingMachineSoda - VendingMachineStarkist - VendingMachineSpaceUp + - VendingMachineKink # AMOUR chance: 1 diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index 4ff5633fd8..c9ad204155 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -68,14 +68,28 @@ proto: spider - type: Sprite # I'd prefer if these maps were better. Insert map pun here. layers: + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtBehind" ] + - map: [ "enum.GenitalVisualLayers.BreastBehind" ] + - map: [ "enum.GenitalVisualLayers.VaginaBehind" ] + - map: [ "enum.GenitalVisualLayers.TesticlesBehind" ] + - map: [ "enum.GenitalVisualLayers.DickBehind" ] + # END AMOUR EDIT - map: [ "enum.HumanoidVisualLayers.Chest" ] - map: [ "enum.HumanoidVisualLayers.Head" ] - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] - - map: [ "enum.HumanoidVisualLayers.RArm" ] - - map: [ "enum.HumanoidVisualLayers.LArm" ] - map: [ "enum.HumanoidVisualLayers.RLeg" ] - map: [ "enum.HumanoidVisualLayers.LLeg" ] + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtFront" ] + - map: [ "enum.GenitalVisualLayers.VaginaFront" ] + - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] + - map: [ "enum.GenitalVisualLayers.DickFront" ] + # END AMOUR EDIT + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.GenitalVisualLayers.BreastFront" ] #Amour - map: [ "underwearb" ] #White - map: [ "underweart" ] #White - shader: StencilClear diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 83d4831dbe..afcaeefc29 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -20,10 +20,17 @@ - map: [ "enum.HumanoidVisualLayers.Head" ] - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] - - map: [ "enum.HumanoidVisualLayers.RArm" ] - - map: [ "enum.HumanoidVisualLayers.LArm" ] - map: [ "enum.HumanoidVisualLayers.RLeg" ] - map: [ "enum.HumanoidVisualLayers.LLeg" ] + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtFront" ] + - map: [ "enum.GenitalVisualLayers.VaginaFront" ] + - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] + - map: [ "enum.GenitalVisualLayers.DickFront" ] + # END AMOUR EDIT + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.GenitalVisualLayers.BreastFront" ] #Amour - shader: StencilClear sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115 # its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear. @@ -51,13 +58,6 @@ - map: [ "id" ] - map: [ "neck" ] - map: [ "back" ] - # START AMOUR EDIT - - map: [ "enum.GenitalVisualLayers.ButtFront" ] - - map: [ "enum.GenitalVisualLayers.BreastFront" ] - - map: [ "enum.GenitalVisualLayers.VaginaFront" ] - - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] - - map: [ "enum.GenitalVisualLayers.DickFront" ] - # END AMOUR EDIT - map: [ "enum.HumanoidVisualLayers.FacialHair" ] - map: [ "enum.HumanoidVisualLayers.Hair" ] - map: [ "enum.HumanoidVisualLayers.HeadSide" ] @@ -383,10 +383,17 @@ - map: [ "enum.HumanoidVisualLayers.Head" ] - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] - - map: [ "enum.HumanoidVisualLayers.RArm" ] - - map: [ "enum.HumanoidVisualLayers.LArm" ] - map: [ "enum.HumanoidVisualLayers.RLeg" ] - map: [ "enum.HumanoidVisualLayers.LLeg" ] + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtFront" ] + - map: [ "enum.GenitalVisualLayers.VaginaFront" ] + - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] + - map: [ "enum.GenitalVisualLayers.DickFront" ] + # END AMOUR EDIT + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.GenitalVisualLayers.BreastFront" ] #Amour - shader: StencilClear sprite: Mobs/Species/Human/parts.rsi state: l_leg @@ -417,13 +424,6 @@ - map: [ "id" ] - map: [ "neck" ] - map: [ "back" ] - # START AMOUR EDIT - - map: [ "enum.GenitalVisualLayers.ButtFront" ] - - map: [ "enum.GenitalVisualLayers.BreastFront" ] - - map: [ "enum.GenitalVisualLayers.VaginaFront" ] - - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] - - map: [ "enum.GenitalVisualLayers.DickFront" ] - # END AMOUR EDIT - map: [ "enum.HumanoidVisualLayers.FacialHair" ] - map: [ "enum.HumanoidVisualLayers.Hair" ] - map: [ "enum.HumanoidVisualLayers.HeadSide" ] diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index d462c6e938..d1aa4c280a 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -77,10 +77,17 @@ - map: [ "enum.HumanoidVisualLayers.Head" ] - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] - - map: [ "enum.HumanoidVisualLayers.RArm" ] - - map: [ "enum.HumanoidVisualLayers.LArm" ] - map: [ "enum.HumanoidVisualLayers.RLeg" ] - map: [ "enum.HumanoidVisualLayers.LLeg" ] + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtFront" ] + - map: [ "enum.GenitalVisualLayers.VaginaFront" ] + - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] + - map: [ "enum.GenitalVisualLayers.DickFront" ] + # END AMOUR EDIT + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.GenitalVisualLayers.BreastFront" ] # AMOUR - map: [ "underwearb" ] #White - map: [ "underweart" ] #White - shader: StencilClear @@ -126,13 +133,6 @@ sprite: "Effects/creampie.rsi" state: "creampie_moth" visible: false - # START AMOUR EDIT - - map: [ "enum.GenitalVisualLayers.ButtFront" ] - - map: [ "enum.GenitalVisualLayers.BreastFront" ] - - map: [ "enum.GenitalVisualLayers.VaginaFront" ] - - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] - - map: [ "enum.GenitalVisualLayers.DickFront" ] - # END AMOUR EDIT - type: CustomHeight - type: entity diff --git a/Resources/Prototypes/White/Mobs/Species/felinid.yml b/Resources/Prototypes/White/Mobs/Species/felinid.yml index 9afd496b79..5a35df4cd8 100644 --- a/Resources/Prototypes/White/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/White/Mobs/Species/felinid.yml @@ -178,14 +178,6 @@ color: "#008800" sprite: Mobs/Customization/eyes.rsi state: eyes - - map: ["enum.HumanoidVisualLayers.RArm"] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: r_arm - - map: ["enum.HumanoidVisualLayers.LArm"] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: l_arm - map: ["enum.HumanoidVisualLayers.RLeg"] color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi @@ -194,6 +186,21 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: l_leg + # START AMOUR EDIT + - map: [ "enum.GenitalVisualLayers.ButtFront" ] + - map: [ "enum.GenitalVisualLayers.VaginaFront" ] + - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] + - map: [ "enum.GenitalVisualLayers.DickFront" ] + # END AMOUR EDIT + - map: [ "enum.HumanoidVisualLayers.RArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_arm + - map: [ "enum.HumanoidVisualLayers.LArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_arm + - map: [ "enum.GenitalVisualLayers.BreastFront" ] # AMOUR - shader: StencilClear - shader: StencilMask @@ -236,13 +243,6 @@ - map: ["belt"] - map: ["neck"] - map: ["back"] - # START AMOUR EDIT - - map: [ "enum.GenitalVisualLayers.ButtFront" ] - - map: [ "enum.GenitalVisualLayers.BreastFront" ] - - map: [ "enum.GenitalVisualLayers.VaginaFront" ] - - map: [ "enum.GenitalVisualLayers.TesticlesFront" ] - - map: [ "enum.GenitalVisualLayers.DickFront" ] - # END AMOUR EDIT - map: ["enum.HumanoidVisualLayers.FacialHair"] state: shaved sprite: Mobs/Customization/human_facial_hair.rsi diff --git a/Resources/Prototypes/_Amour/Entities/Holes/base.yml b/Resources/Prototypes/_Amour/Entities/Holes/base.yml index 6845307e4f..0e03f27e9b 100644 --- a/Resources/Prototypes/_Amour/Entities/Holes/base.yml +++ b/Resources/Prototypes/_Amour/Entities/Holes/base.yml @@ -87,6 +87,7 @@ - layer: "enum.GenitalVisualLayers.BreastFront" prefix: "_0_FRONT" excitedPrefix: "_1_FRONT" + isVisibleInSkirt: false - type: HoleSolution - type: HoleInventory