- add: More controls

This commit is contained in:
2024-02-17 19:03:07 +03:00
parent c3e8e64fb8
commit 6019195779
20 changed files with 808 additions and 4525 deletions

View File

@@ -46,9 +46,9 @@ public sealed class HoleSystem : SharedHoleSystem
}
}
private void UpdateVisual(Entity<SpriteComponent?,HumanoidAppearanceComponent?> owner, Entity<HoleComponent?> entity, bool clear = false)
private void UpdateVisual(Entity<SpriteComponent?,HumanoidAppearanceComponent?,HoleContainerComponent?> owner, Entity<HoleComponent?> entity, bool clear = false)
{
if(!Resolve(owner.Owner,ref owner.Comp1) || !Resolve(entity.Owner,ref entity.Comp))
if(!Resolve(owner.Owner,ref owner.Comp1, ref owner.Comp3) || !Resolve(entity.Owner,ref entity.Comp))
return;
var spriteComp = owner.Comp1;
@@ -59,8 +59,11 @@ public sealed class HoleSystem : SharedHoleSystem
if (string.IsNullOrEmpty(layer.RsiPath))
layer.RsiPath = holeComp.RsiPath;
if(Resolve(owner.Owner,ref owner.Comp2))
if (Resolve(owner.Owner, ref owner.Comp2))
{
layer.Color ??= owner.Comp2.SkinColor;
layer.Color.Value.WithAlpha(owner.Comp2.SkinColor.A);
}
var state = layer.State;
@@ -84,20 +87,35 @@ public sealed class HoleSystem : SharedHoleSystem
continue;
}
layer.State = state + prefix.Prefix;
if (clear)
{
spriteComp.LayerSetVisible(@enum,false);
}
else
{
Log.Debug(@enum.ToString());
var s = "";
if (prefix.HasForHuman && owner.Comp3.UseHumanGenitalLayers)
s = "_s";
var mainPrefix = prefix.Prefix;
if (holeComp.IsExcited && !string.IsNullOrEmpty(prefix.ExcitedPrefix))
mainPrefix = prefix.ExcitedPrefix;
layer.State = state + s + mainPrefix;
spriteComp.LayerSetData(@enum, layer);
spriteComp.LayerSetVisible(@enum,true);
layer.State = state;
}
layer.State = state;
}
}
}
public override void Exide(Entity<HoleComponent?> entity, bool value = true)
{
base.Exide(entity, value);
var netEntity = entity.Comp!.Parent;
if (netEntity != null)
UpdateVisual(GetEntity(netEntity.Value), entity);
}
}

View File

@@ -2,7 +2,10 @@
xmlns="https://spacestation14.io"
xmlns:humanoidProfileEditorExt="clr-namespace:Content.Client._Amour.HumanoidProfileEditorExt">
<BoxContainer Orientation="Vertical">
<Label Text="{Loc 'genitals-group'}"/>
<BoxContainer>
<Label Text="{Loc 'genitals-group'}"/>
<CheckBox Text="{Loc 'genitals-exide'}" Name="Exide"/>
</BoxContainer>
<BoxContainer Name="Container" Orientation="Vertical"></BoxContainer>
</BoxContainer>
</humanoidProfileEditorExt:GenitalBoxView>

View File

@@ -1,5 +1,6 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client._Amour.HumanoidProfileEditorExt;
@@ -10,6 +11,7 @@ public sealed partial class GenitalBoxView : Control
public GenitalBoxView()
{
RobustXamlLoader.Load(this);
}
public void AddChild(Control control)
@@ -21,5 +23,10 @@ public sealed partial class GenitalBoxView : Control
{
Container.RemoveAllChildren();
}
public void OnExide(Action<BaseButton.ButtonEventArgs> action)
{
Exide.OnPressed += action;
}
}

View File

@@ -1,16 +1,31 @@
using System.Linq;
using Content.Client._Amour.Hole;
using Content.Client._Amour.HumanoidProfileEditorExt;
using Content.Shared._Amour.Hole;
using Robust.Client.UserInterface.Controls;
namespace Content.Client.Preferences.UI;
public sealed partial class HumanoidProfileEditor
{
private Dictionary<string, Genital> _genitals = new();
private HoleSystem _holeSystem = default!;
private void InitializeGenitals()
{
_holeSystem = _entMan.System<HoleSystem>();
GenitalBoxView.OnExide(OnExide);
}
private void OnExide(BaseButton.ButtonEventArgs obj)
{
if (_entMan.TryGetComponent<HoleContainerComponent>(_previewDummy, out var component))
{
foreach (var entity in component.Slot.ContainedEntities)
{
_holeSystem.Exide(entity);
}
}
}
private void UpdateGenitalsControls()

View File

@@ -216,7 +216,6 @@ namespace Content.Server.Database
}
}
Console.WriteLine(profile.Genitals.Count + "<><>");
var genitals = profile.Genitals.Select(genital =>
new Shared._Amour.Hole.Genital(genital.GenitalPrototype,
string.IsNullOrEmpty(genital.Color) ? null : Color.FromHex(genital.Color)));
@@ -312,9 +311,6 @@ namespace Content.Server.Database
Color = t.Color?.ToHex() ?? ""
}));
Console.WriteLine(profile.Genitals);
Console.WriteLine(profile.Antags);
return profile;
}
#endregion

View File

@@ -2,13 +2,14 @@
using Content.Shared.Chemistry.Reagent;
using Content.Shared.Item;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared._Amour.Hole;
[RegisterComponent]
[RegisterComponent, NetworkedComponent]
public sealed partial class HoleComponent : Component
{
[ViewVariables] public NetEntity? Parent;
@@ -24,6 +25,9 @@ public sealed partial class HoleComponent : Component
// this shit just for sprite prefix like state: dildo_FRONT
[DataField] public List<HolePrefix> Prefixes = new();
[ViewVariables] public bool IsExcited = false;
[DataField] public bool IsMainOrgan = false;
}
[Serializable, NetSerializable, DataDefinition]
@@ -33,6 +37,10 @@ public sealed partial class HolePrefix
public string Layer;
[DataField]
public string Prefix;
[DataField]
public string ExcitedPrefix;
[DataField]
public bool HasForHuman;
}
public enum HoleType : byte

View File

@@ -10,4 +10,5 @@ public sealed partial class HoleContainerComponent : Component
public const string SlotName = "Funny";
[ViewVariables] public Container Slot = default!;
[DataField] public List<EntProtoId> HolePrototypes = new();
[DataField] public bool UseHumanGenitalLayers = false;
}

View File

@@ -20,4 +20,10 @@ public abstract partial class SharedHoleSystem : EntitySystem
{
component.Parent = GetNetEntity(args.Container.Owner);
}
public virtual void Exide(Entity<HoleComponent?> entity, bool value = true)
{
if(!Resolve(entity.Owner,ref entity.Comp)) return;
entity.Comp.IsExcited = value;
}
}

View File

@@ -42,13 +42,6 @@
- map: ["jumpsuit"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
# 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: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
@@ -76,6 +69,13 @@
sprite: "Effects/creampie.rsi"
state: "creampie_human"
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: DamageVisuals
thresholds: [ 20, 40, 100 ]
targetLayers:
@@ -263,6 +263,7 @@
- type: CharacterInformation
- type: Penetrated
- type: Mood
- type: HoleContainer
- type: entity
save: false
@@ -392,13 +393,6 @@
- map: ["jumpsuit"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
# 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.Handcuffs"]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
@@ -422,6 +416,13 @@
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
# 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: Appearance
- type: HumanoidAppearance
species: Human
@@ -432,3 +433,4 @@
interfaces:
- key: enum.HumanoidMarkingModifierKey.Key # sure, this can go here too
type: HumanoidMarkingModifierBoundUserInterface
- type: HoleContainer

View File

@@ -15,8 +15,13 @@
spawned:
- id: FoodMeatHuman
amount: 5
- type: HoleContainer
useHumanGenitalLayers: true
- type: entity
parent: BaseSpeciesDummy
id: MobHumanDummy
noSpawn: true
components:
- type: HoleContainer
useHumanGenitalLayers: true

View File

@@ -14,9 +14,11 @@
sprite: _Amour/Genitals/penis.rsi
prefixes:
- layer: "enum.GenitalVisualLayers.DickBehind"
prefix: "_BEHIND"
prefix: "_0_BEHIND"
excitedPrefix: "_1_BEHIND"
- layer: "enum.GenitalVisualLayers.DickFront"
prefix: "_FRONT"
prefix: "_0_FRONT"
excitedPrefix: "_1_FRONT"
- type: HoleSolution
- type: HoleInventory
size: Tiny
@@ -38,7 +40,8 @@
sprite: _Amour/Genitals/vagina.rsi
prefixes:
- layer: "enum.GenitalVisualLayers.DickFront" #Hmm
prefix: "_FRONT"
prefix: "_0_FRONT"
excitedPrefix: "_1_FRONT"
- type: HoleSolution
- type: HoleInventory
@@ -58,7 +61,8 @@
sprite: _Amour/Genitals/butt.rsi
prefixes:
- layer: "enum.GenitalVisualLayers.ButtFront"
prefix: "_FRONT"
prefix: "_0_FRONT"
excitedPrefix: "_1_FRONT"
- type: HoleInventory
- type: entity
@@ -76,9 +80,11 @@
sprite: _Amour/Genitals/breasts.rsi
prefixes:
- layer: "enum.GenitalVisualLayers.BreastBehind"
prefix: "_BEHIND"
prefix: "_0_BEHIND"
excitedPrefix: "_1_BEHIND"
- layer: "enum.GenitalVisualLayers.BreastFront"
prefix: "_FRONT"
prefix: "_0_FRONT"
excitedPrefix: "_1_FRONT"
- type: HoleSolution
- type: HoleInventory
@@ -96,6 +102,8 @@
sprite: _Amour/Genitals/testicles.rsi
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesBehind"
prefix: "_BEHIND"
prefix: "_0_BEHIND"
excitedPrefix: "_1_BEHIND"
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
prefix: "_0_FRONT"
excitedPrefix: "_1_FRONT"

File diff suppressed because it is too large Load Diff

View File

@@ -1,96 +0,0 @@
- type: entity
parent: BaseButt
id: ButtPair00
components:
- type: Hole
layers:
- state: butt_pair_0_0
- type: entity
parent: BaseButt
id: ButtPair0S0
components:
- type: Hole
layers:
- state: butt_pair_0_s_0
- type: entity
parent: BaseButt
id: ButtPair10
components:
- type: Hole
layers:
- state: butt_pair_1_0
- type: entity
parent: BaseButt
id: ButtPair1S0
components:
- type: Hole
layers:
- state: butt_pair_1_s_0
- type: entity
parent: BaseButt
id: ButtPair20
components:
- type: Hole
layers:
- state: butt_pair_2_0
- type: entity
parent: BaseButt
id: ButtPair2S0
components:
- type: Hole
layers:
- state: butt_pair_2_s_0
- type: entity
parent: BaseButt
id: ButtPair30
components:
- type: Hole
layers:
- state: butt_pair_3_0
- type: entity
parent: BaseButt
id: ButtPair3S0
components:
- type: Hole
layers:
- state: butt_pair_3_s_0
- type: entity
parent: BaseButt
id: ButtPair40
components:
- type: Hole
layers:
- state: butt_pair_4_0
- type: entity
parent: BaseButt
id: ButtPair4S0
components:
- type: Hole
layers:
- state: butt_pair_4_s_0
- type: entity
parent: BaseButt
id: ButtPair50
components:
- type: Hole
layers:
- state: butt_pair_5_0
- type: entity
parent: BaseButt
id: ButtPair5S0
components:
- type: Hole
layers:
- state: butt_pair_5_s_0

View File

@@ -1,42 +0,0 @@
- type: entity
parent: BaseDick
id: Dick
components:
- type: Hole
layers:
- state: penis_thick_4_1
- type: entity
parent: BaseButt
id: Butt
components:
- type: Hole
layers:
- state: butt_pair_3_s_0
- type: entity
parent: BaseBreast
id: Breast
components:
- type: Hole
layers:
- state: breasts_pair_huge_s_0
- type: entity
parent: BaseTesticles
id: Testicles
components:
- type: Hole
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
layers:
- state: testicles_sheath_5_s_0
- type: entity
parent: BaseVagina
id: Vagina
components:
- type: Hole
layers:
- state: vagina_human_1_s_1

File diff suppressed because it is too large Load Diff

View File

@@ -1,380 +0,0 @@
- type: entity
parent: BaseTesticles
id: TesticlesSheath10
components:
- type: Hole
layers:
- state: testicles_sheath_1_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath11
components:
- type: Hole
layers:
- state: testicles_sheath_1_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath1S0
components:
- type: Hole
layers:
- state: testicles_sheath_1_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath1S1
components:
- type: Hole
layers:
- state: testicles_sheath_1_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath20
components:
- type: Hole
layers:
- state: testicles_sheath_2_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath21
components:
- type: Hole
layers:
- state: testicles_sheath_2_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath2S0
components:
- type: Hole
layers:
- state: testicles_sheath_2_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath2S1
components:
- type: Hole
layers:
- state: testicles_sheath_2_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath30
components:
- type: Hole
layers:
- state: testicles_sheath_3_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath31
components:
- type: Hole
layers:
- state: testicles_sheath_3_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath3S0
components:
- type: Hole
layers:
- state: testicles_sheath_3_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath3S1
components:
- type: Hole
layers:
- state: testicles_sheath_3_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath40
components:
- type: Hole
layers:
- state: testicles_sheath_4_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath41
components:
- type: Hole
layers:
- state: testicles_sheath_4_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath4S0
components:
- type: Hole
layers:
- state: testicles_sheath_4_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath4S1
components:
- type: Hole
layers:
- state: testicles_sheath_4_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath50
components:
- type: Hole
layers:
- state: testicles_sheath_5_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath51
components:
- type: Hole
layers:
- state: testicles_sheath_5_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath5S0
components:
- type: Hole
layers:
- state: testicles_sheath_5_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSheath5S1
components:
- type: Hole
layers:
- state: testicles_sheath_5_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle10
components:
- type: Hole
layers:
- state: testicles_single_1_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle11
components:
- type: Hole
layers:
- state: testicles_single_1_1
- type: entity
parent: BaseTesticles
id: TesticlesSingle1S0
components:
- type: Hole
layers:
- state: testicles_single_1_s_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle20
components:
- type: Hole
layers:
- state: testicles_single_2_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle21
components:
- type: Hole
layers:
- state: testicles_single_2_1
- type: entity
parent: BaseTesticles
id: TesticlesSingle2S0
components:
- type: Hole
layers:
- state: testicles_single_2_s_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle30
components:
- type: Hole
layers:
- state: testicles_single_3_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle31
components:
- type: Hole
layers:
- state: testicles_single_3_1
- type: entity
parent: BaseTesticles
id: TesticlesSingle3S0
components:
- type: Hole
layers:
- state: testicles_single_3_s_0
- type: entity
parent: BaseTesticles
id: TesticlesSingle40
components:
- type: Hole
layers:
- state: testicles_single_4_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle41
components:
- type: Hole
layers:
- state: testicles_single_4_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle4S0
components:
- type: Hole
layers:
- state: testicles_single_4_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle4S1
components:
- type: Hole
layers:
- state: testicles_single_4_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle50
components:
- type: Hole
layers:
- state: testicles_single_5_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle51
components:
- type: Hole
layers:
- state: testicles_single_5_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle5S0
components:
- type: Hole
layers:
- state: testicles_single_5_s_0
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"
- type: entity
parent: BaseTesticles
id: TesticlesSingle5S1
components:
- type: Hole
layers:
- state: testicles_single_5_s_1
prefixes:
- layer: "enum.GenitalVisualLayers.TesticlesFront"
prefix: "_FRONT"

View File

@@ -1,192 +0,0 @@
- type: entity
parent: BaseVagina
id: VaginaCloaca10
components:
- type: Hole
layers:
- state: vagina_cloaca_1_0
- type: entity
parent: BaseVagina
id: VaginaCloaca11
components:
- type: Hole
layers:
- state: vagina_cloaca_1_1
- type: entity
parent: BaseVagina
id: VaginaDentata10
components:
- type: Hole
layers:
- state: vagina_dentata_1_0
- type: entity
parent: BaseVagina
id: VaginaDentata11
components:
- type: Hole
layers:
- state: vagina_dentata_1_1
- type: entity
parent: BaseVagina
id: VaginaDentata1S0
components:
- type: Hole
layers:
- state: vagina_dentata_1_s_0
- type: entity
parent: BaseVagina
id: VaginaDentata1S1
components:
- type: Hole
layers:
- state: vagina_dentata_1_s_1
- type: entity
parent: BaseVagina
id: VaginaFurred10
components:
- type: Hole
layers:
- state: vagina_furred_1_0
- type: entity
parent: BaseVagina
id: VaginaFurred1S0
components:
- type: Hole
layers:
- state: vagina_furred_1_s_0
- type: entity
parent: BaseVagina
id: VaginaGaping10
components:
- type: Hole
layers:
- state: vagina_gaping_1_0
- type: entity
parent: BaseVagina
id: VaginaGaping11
components:
- type: Hole
layers:
- state: vagina_gaping_1_1
- type: entity
parent: BaseVagina
id: VaginaGaping1S0
components:
- type: Hole
layers:
- state: vagina_gaping_1_s_0
- type: entity
parent: BaseVagina
id: VaginaGaping1S1
components:
- type: Hole
layers:
- state: vagina_gaping_1_s_1
- type: entity
parent: BaseVagina
id: VaginaHairy10
components:
- type: Hole
layers:
- state: vagina_hairy_1_0
- type: entity
parent: BaseVagina
id: VaginaHairy1S0
components:
- type: Hole
layers:
- state: vagina_hairy_1_s_0
- type: entity
parent: BaseVagina
id: VaginaHuman10
components:
- type: Hole
layers:
- state: vagina_human_1_0
- type: entity
parent: BaseVagina
id: VaginaHuman11
components:
- type: Hole
layers:
- state: vagina_human_1_1
- type: entity
parent: BaseVagina
id: VaginaHuman1S0
components:
- type: Hole
layers:
- state: vagina_human_1_s_0
- type: entity
parent: BaseVagina
id: VaginaHuman1S1
components:
- type: Hole
layers:
- state: vagina_human_1_s_1
- type: entity
parent: BaseVagina
id: VaginaSpade10
components:
- type: Hole
layers:
- state: vagina_spade_1_0
- type: entity
parent: BaseVagina
id: VaginaSpade1S0
components:
- type: Hole
layers:
- state: vagina_spade_1_s_0
- type: entity
parent: BaseVagina
id: VaginaTentacle10
components:
- type: Hole
layers:
- state: vagina_tentacle_1_0
- type: entity
parent: BaseVagina
id: VaginaTentacle11
components:
- type: Hole
layers:
- state: vagina_tentacle_1_1
- type: entity
parent: BaseVagina
id: VaginaTentacle1S0
components:
- type: Hole
layers:
- state: vagina_tentacle_1_s_0
- type: entity
parent: BaseVagina
id: VaginaTentacle1S1
components:
- type: Hole
layers:
- state: vagina_tentacle_1_s_1

View File

@@ -1,456 +1,46 @@
- type: genitalsGroup
id: Penis
prototypes:
- Amputated
- PenisBarbknot10
- PenisBarbknot11
- PenisBarbknot1S0
- PenisBarbknot1S1
- PenisBarbknot20
- PenisBarbknot21
- PenisBarbknot2S0
- PenisBarbknot2S1
- PenisBarbknot30
- PenisBarbknot31
- PenisBarbknot3S0
- PenisBarbknot3S1
- PenisBarbknot40
- PenisBarbknot41
- PenisBarbknot4S0
- PenisBarbknot4S1
- PenisBarbknot50
- PenisBarbknot51
- PenisFlared10
- PenisFlared11
- PenisFlared1S0
- PenisFlared1S1
- PenisFlared20
- PenisFlared21
- PenisFlared2S0
- PenisFlared2S1
- PenisFlared30
- PenisFlared31
- PenisFlared3S0
- PenisFlared3S1
- PenisFlared40
- PenisFlared41
- PenisFlared4S0
- PenisFlared4S1
- PenisFlared50
- PenisFlared51
- PenisHemiknot10
- PenisHemiknot11
- PenisHemiknot1S0
- PenisHemiknot1S1
- PenisHemiknot20
- PenisHemiknot21
- PenisHemiknot2S0
- PenisHemiknot2S1
- PenisHemiknot30
- PenisHemiknot31
- PenisHemiknot3S0
- PenisHemiknot3S1
- PenisHemiknot40
- PenisHemiknot41
- PenisHemiknot4S0
- PenisHemiknot4S1
- PenisHemiknot50
- PenisHemiknot51
- PenisHemi10
- PenisHemi11
- PenisHemi1S0
- PenisHemi1S1
- PenisHemi20
- PenisHemi21
- PenisHemi2S0
- PenisHemi2S1
- PenisHemi30
- PenisHemi31
- PenisHemi3S0
- PenisHemi3S1
- PenisHemi40
- PenisHemi41
- PenisHemi4S0
- PenisHemi4S1
- PenisHuman10
- PenisHuman11
- PenisHuman1S0
- PenisHuman1S1
- PenisHuman20
- PenisHuman21
- PenisHuman2S0
- PenisHuman2S1
- PenisHuman30
- PenisHuman31
- PenisHuman3S0
- PenisHuman3S1
- PenisHuman40
- PenisHuman41
- PenisHuman4S0
- PenisHuman4S1
- PenisHuman50
- PenisHuman51
- PenisKnotted10
- PenisKnotted11
- PenisKnotted1S0
- PenisKnotted1S1
- PenisKnotted20
- PenisKnotted21
- PenisKnotted2S0
- PenisKnotted2S1
- PenisKnotted30
- PenisKnotted31
- PenisKnotted3S0
- PenisKnotted3S1
- PenisKnotted40
- PenisKnotted41
- PenisKnotted4S0
- PenisKnotted4S1
- PenisKnotted50
- PenisKnotted51
- PenisTapered10
- PenisTapered11
- PenisTapered1S0
- PenisTapered1S1
- PenisTapered20
- PenisTapered21
- PenisTapered2S0
- PenisTapered2S1
- PenisTapered30
- PenisTapered31
- PenisTapered3S0
- PenisTapered3S1
- PenisTapered40
- PenisTapered41
- PenisTapered4S0
- PenisTapered4S1
- PenisTentacle10
- PenisTentacle11
- PenisTentacle1S0
- PenisTentacle20
- PenisTentacle21
- PenisTentacle2S0
- PenisTentacle30
- PenisTentacle31
- PenisTentacle3S0
- PenisTentacle40
- PenisTentacle41
- PenisTentacle4S0
- PenisTentacle4S1
- PenisThick10
- PenisThick11
- PenisThick20
- PenisThick21
- PenisThick30
- PenisThick31
- PenisThick40
- PenisThick41
- PenisThick50
- PenisThick51
- VaginaCloaca10
- VaginaCloaca11
- VaginaDentata10
- VaginaDentata11
- VaginaDentata1S0
- VaginaDentata1S1
- VaginaFurred10
- VaginaFurred1S0
- VaginaGaping10
- VaginaGaping11
- VaginaGaping1S0
- VaginaGaping1S1
- VaginaHairy10
- VaginaHairy1S0
- VaginaHuman10
- VaginaHuman11
- VaginaHuman1S0
- VaginaHuman1S1
- VaginaSpade10
- VaginaSpade1S0
- VaginaTentacle10
- VaginaTentacle11
- VaginaTentacle1S0
- VaginaTentacle1S1
- type: genitalsGroup
id: Butt
prototypes:
- ButtPair00
- ButtPair0S0
- ButtPair10
- ButtPair1S0
- ButtPair20
- ButtPair2S0
- ButtPair30
- ButtPair3S0
- ButtPair40
- ButtPair4S0
- ButtPair50
- ButtPair5S0
- type: genitalsGroup
id: Breast
prototypes:
- BreastsPairA0
- BreastsPairA1
- BreastsPairAS0
- BreastsPairAS1
- BreastsPairB0
- BreastsPairB1
- BreastsPairBS0
- BreastsPairBS1
- BreastsPairC0
- BreastsPairC1
- BreastsPairCS0
- BreastsPairCS1
- BreastsPairD0
- BreastsPairD1
- BreastsPairDS0
- BreastsPairDS1
- BreastsPairE0
- BreastsPairE1
- BreastsPairES0
- BreastsPairES1
- BreastsPairF0
- BreastsPairF1
- BreastsPairFS0
- BreastsPairFS1
- BreastsPairGiga0
- BreastsPairGiga1
- BreastsPairGigaS0
- BreastsPairGigaS1
- BreastsPairG0
- BreastsPairG1
- BreastsPairGS0
- BreastsPairGS1
- BreastsPairHuge0
- BreastsPairHuge1
- BreastsPairHugeS0
- BreastsPairHugeS1
- BreastsPairH0
- BreastsPairH1
- BreastsPairHS0
- BreastsPairHS1
- BreastsPairImpossible0
- BreastsPairImpossible1
- BreastsPairImpossibleS0
- BreastsPairImpossibleS1
- BreastsPairI0
- BreastsPairI1
- BreastsPairIS0
- BreastsPairIS1
- BreastsPairJ0
- BreastsPairJ1
- BreastsPairJS0
- BreastsPairJS1
- BreastsPairK0
- BreastsPairK1
- BreastsPairKS0
- BreastsPairKS1
- BreastsPairL0
- BreastsPairL1
- BreastsPairLS0
- BreastsPairLS1
- BreastsPairMassive0
- BreastsPairMassive1
- BreastsPairMassiveS0
- BreastsPairMassiveS1
- BreastsPairM0
- BreastsPairM1
- BreastsPairMS0
- BreastsPairMS1
- BreastsPairN0
- BreastsPairN1
- BreastsPairNS0
- BreastsPairNS1
- BreastsPairO0
- BreastsPairO1
- BreastsPairOS0
- BreastsPairOS1
- BreastsQuadA0
- BreastsQuadA1
- BreastsQuadAS0
- BreastsQuadAS1
- BreastsQuadB0
- BreastsQuadB1
- BreastsQuadBS0
- BreastsQuadBS1
- BreastsQuadC0
- BreastsQuadC1
- BreastsQuadCS0
- BreastsQuadCS1
- BreastsQuadD0
- BreastsQuadD1
- BreastsQuadDS0
- BreastsQuadDS1
- BreastsQuadE0
- BreastsQuadE1
- BreastsQuadES0
- BreastsQuadES1
- BreastsQuadF0
- BreastsQuadF1
- BreastsQuadFS0
- BreastsQuadFS1
- BreastsQuadGiga0
- BreastsQuadGiga1
- BreastsQuadGigaS0
- BreastsQuadGigaS1
- BreastsQuadG0
- BreastsQuadG1
- BreastsQuadGS0
- BreastsQuadGS1
- BreastsQuadHuge0
- BreastsQuadHuge1
- BreastsQuadHugeS0
- BreastsQuadHugeS1
- BreastsQuadH0
- BreastsQuadH1
- BreastsQuadHS0
- BreastsQuadHS1
- BreastsQuadImpossible0
- BreastsQuadImpossible1
- BreastsQuadImpossibleS0
- BreastsQuadImpossibleS1
- BreastsQuadI0
- BreastsQuadI1
- BreastsQuadIS0
- BreastsQuadIS1
- BreastsQuadJ0
- BreastsQuadJ1
- BreastsQuadJS0
- BreastsQuadJS1
- BreastsQuadK0
- BreastsQuadK1
- BreastsQuadKS0
- BreastsQuadKS1
- BreastsQuadL0
- BreastsQuadL1
- BreastsQuadLS0
- BreastsQuadLS1
- BreastsQuadMassive0
- BreastsQuadMassive1
- BreastsQuadMassiveS0
- BreastsQuadMassiveS1
- BreastsQuadM0
- BreastsQuadM1
- BreastsQuadMS0
- BreastsQuadMS1
- BreastsQuadN0
- BreastsQuadN1
- BreastsQuadNS0
- BreastsQuadNS1
- BreastsQuadO0
- BreastsQuadO1
- BreastsQuadOS0
- BreastsQuadOS1
- BreastsSextupleA0
- BreastsSextupleA1
- BreastsSextupleAS0
- BreastsSextupleAS1
- BreastsSextupleB0
- BreastsSextupleB1
- BreastsSextupleBS0
- BreastsSextupleBS1
- BreastsSextupleC0
- BreastsSextupleC1
- BreastsSextupleCS0
- BreastsSextupleCS1
- BreastsSextupleD0
- BreastsSextupleD1
- BreastsSextupleDS0
- BreastsSextupleDS1
- BreastsSextupleE0
- BreastsSextupleE1
- BreastsSextupleES0
- BreastsSextupleES1
- BreastsSextupleF0
- BreastsSextupleFS0
- BreastsSextupleFS1
- BreastsSextupleGiga0
- BreastsSextupleGiga1
- BreastsSextupleGigaS0
- BreastsSextupleGigaS1
- BreastsSextupleG0
- BreastsSextupleGS0
- BreastsSextupleGS1
- BreastsSextupleHuge0
- BreastsSextupleHuge1
- BreastsSextupleHugeS0
- BreastsSextupleHugeS1
- BreastsSextupleH0
- BreastsSextupleHS0
- BreastsSextupleHS1
- BreastsSextupleImpossible0
- BreastsSextupleImpossible1
- BreastsSextupleImpossibleS0
- BreastsSextupleImpossibleS1
- BreastsSextupleI0
- BreastsSextupleIS0
- BreastsSextupleIS1
- BreastsSextupleJ0
- BreastsSextupleJS0
- BreastsSextupleJS1
- BreastsSextupleK0
- BreastsSextupleKS0
- BreastsSextupleKS1
- BreastsSextupleL0
- BreastsSextupleLS0
- BreastsSextupleLS1
- BreastsSextupleMassive0
- BreastsSextupleMassive1
- BreastsSextupleMassiveS0
- BreastsSextupleMassiveS1
- BreastsSextupleM0
- BreastsSextupleMS0
- BreastsSextupleMS1
- BreastsSextupleN0
- BreastsSextupleNS0
- BreastsSextupleNS1
- BreastsSextupleO0
- BreastsSextupleOS0
- BreastsSextupleOS1
- type: genitalsGroup
id: Testicles
prototypes:
- TesticlesSheath10
- TesticlesSheath11
- TesticlesSheath1S0
- TesticlesSheath1S1
- TesticlesSheath20
- TesticlesSheath21
- TesticlesSheath2S0
- TesticlesSheath2S1
- TesticlesSheath30
- TesticlesSheath31
- TesticlesSheath3S0
- TesticlesSheath3S1
- TesticlesSheath40
- TesticlesSheath41
- TesticlesSheath4S0
- TesticlesSheath4S1
- TesticlesSheath50
- TesticlesSheath51
- TesticlesSheath5S0
- TesticlesSheath5S1
- TesticlesSingle10
- TesticlesSingle11
- TesticlesSingle1S0
- TesticlesSingle20
- TesticlesSingle21
- TesticlesSingle2S0
- TesticlesSingle30
- TesticlesSingle31
- TesticlesSingle3S0
- TesticlesSingle40
- TesticlesSingle41
- TesticlesSingle4S0
- TesticlesSingle4S1
- TesticlesSingle50
- TesticlesSingle51
- TesticlesSingle5S0
- TesticlesSingle5S1
- PenisAmputated0
- PenisBarbknot1
- PenisBarbknot2
- PenisBarbknot3
- PenisBarbknot4
- PenisBarbknot5
- PenisFlared1
- PenisFlared2
- PenisFlared3
- PenisFlared4
- PenisFlared5
- PenisHemiknot1
- PenisHemiknot2
- PenisHemiknot3
- PenisHemiknot4
- PenisHemiknot5
- PenisHemi1
- PenisHemi2
- PenisHemi3
- PenisHemi4
- PenisHuman1
- PenisHuman2
- PenisHuman3
- PenisHuman4
- PenisHuman5
- PenisKnotted1
- PenisKnotted2
- PenisKnotted3
- PenisKnotted4
- PenisKnotted5
- PenisTapered1
- PenisTapered2
- PenisTapered3
- PenisTapered4
- PenisTentacle1
- PenisTentacle2
- PenisTentacle3
- PenisTentacle4
- PenisThick1
- PenisThick2
- PenisThick3
- PenisThick4
- PenisThick5

View File

@@ -384,7 +384,7 @@
]
},
{
"name": "amputated_FRONT",
"name": "penis_amputated_0_0_FRONT",
"directions": 4
},
{
@@ -1466,4 +1466,4 @@
"directions": 4
}
]
}
}