- add: change genitals on appearance
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Content.Client._Amour.Hole;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
@@ -12,6 +13,7 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly MarkingManager _markingManager = default!;
|
||||
[Dependency] private readonly HoleSystem _holeSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -195,6 +197,13 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
||||
humanoid.SkinColor = profile.Appearance.SkinColor;
|
||||
humanoid.EyeColor = profile.Appearance.EyeColor;
|
||||
|
||||
//AMOUR
|
||||
foreach (var genitals in profile.Appearance.Genitals)
|
||||
{
|
||||
Log.Debug("CHLEN! " + genitals.GenitalId);
|
||||
_holeSystem.AddHole(uid,genitals.GenitalId,genitals.Color);
|
||||
}
|
||||
|
||||
UpdateSprite(humanoid, Comp<SpriteComponent>(uid));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:prefUi="clr-namespace:Content.Client.Preferences.UI"
|
||||
xmlns:humanoid="clr-namespace:Content.Client.Humanoid"
|
||||
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls">
|
||||
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
|
||||
xmlns:humanoidProfileEditorExt="clr-namespace:Content.Client._Amour.HumanoidProfileEditorExt">
|
||||
<BoxContainer Orientation="Horizontal">
|
||||
<!-- Left side -->
|
||||
<BoxContainer Orientation="Vertical" Margin="10 10 10 10">
|
||||
@@ -141,6 +142,8 @@
|
||||
<Label Text="{Loc 'humanoid-profile-editor-eyes-label'}" />
|
||||
<humanoid:EyeColorPicker Name="CEyeColorPicker" />
|
||||
</BoxContainer>
|
||||
<!-- AMOUR -->
|
||||
<humanoidProfileEditorExt:GenitalBoxView Name="GenitalBoxView"/>
|
||||
</BoxContainer>
|
||||
</ScrollContainer>
|
||||
</BoxContainer>
|
||||
|
||||
@@ -211,6 +211,12 @@ namespace Content.Client.Preferences.UI
|
||||
#endregion
|
||||
//TTS-End
|
||||
|
||||
//AMOUR START
|
||||
#region Genitals
|
||||
InitializeGenitals();
|
||||
#endregion
|
||||
//AMOUR END
|
||||
|
||||
#region Species
|
||||
|
||||
//WD EDIT
|
||||
@@ -1239,6 +1245,10 @@ namespace Content.Client.Preferences.UI
|
||||
UpdateTTSVoicesControls();
|
||||
//WD-EDIT
|
||||
|
||||
//Amour edit
|
||||
UpdateGenitalsControls();
|
||||
//Amour edit
|
||||
|
||||
_preferenceUnavailableButton.SelectId((int) Profile.PreferenceUnavailable);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ using Content.Shared.Humanoid;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.Reflection;
|
||||
using Robust.Shared.Serialization.Manager;
|
||||
|
||||
namespace Content.Client._Amour.Hole;
|
||||
|
||||
@@ -35,10 +34,6 @@ public sealed class HoleSystem : SharedHoleSystem
|
||||
return;
|
||||
|
||||
UpdateVisuals(uid);
|
||||
if(args.Container != component.Slot)
|
||||
return;
|
||||
|
||||
//UpdateVisual(uid,args.Entity);
|
||||
}
|
||||
|
||||
private void UpdateVisuals(Entity<HoleContainerComponent?> entity)
|
||||
@@ -78,8 +73,6 @@ public sealed class HoleSystem : SharedHoleSystem
|
||||
spriteComp.LayerSetData(GenitalVisualLayers.DickFront, layer);
|
||||
spriteComp.LayerSetVisible(GenitalVisualLayers.DickFront,true);
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<humanoidProfileEditorExt:GenitalBoxView
|
||||
xmlns="https://spacestation14.io"
|
||||
xmlns:humanoidProfileEditorExt="clr-namespace:Content.Client._Amour.HumanoidProfileEditorExt">
|
||||
<BoxContainer Orientation="Vertical">
|
||||
<Label Text="{Loc 'genitals-group'}"/>
|
||||
<BoxContainer Name="Container" Orientation="Vertical"></BoxContainer>
|
||||
</BoxContainer>
|
||||
</humanoidProfileEditorExt:GenitalBoxView>
|
||||
@@ -0,0 +1,25 @@
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
|
||||
namespace Content.Client._Amour.HumanoidProfileEditorExt;
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class GenitalBoxView : Control
|
||||
{
|
||||
public GenitalBoxView()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
}
|
||||
|
||||
public void AddChild(Control control)
|
||||
{
|
||||
Container.AddChild(control);
|
||||
}
|
||||
|
||||
public void ClearChilds()
|
||||
{
|
||||
Container.RemoveAllChildren();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<controls:GenitalController
|
||||
xmlns="https://spacestation14.io"
|
||||
xmlns:controls="clr-namespace:Content.Client._Amour.HumanoidProfileEditorExt">
|
||||
<BoxContainer Orientation="Vertical" Margin="15 15 15 15">
|
||||
<Label Text="Meow" Name="Label"/>
|
||||
<BoxContainer Margin="15 15 15 15">
|
||||
<Button Text="Назад" Name="BackButton"/>
|
||||
<LineEdit Name="Input" MinWidth="45" SetWidth="45"/>
|
||||
<Label Text="/"/>
|
||||
<Label Text="0" Name="Count"/>
|
||||
<Button Text="Вперед" Name="GoButton"/>
|
||||
<Label Name="GenitalName"/>
|
||||
</BoxContainer>
|
||||
<CheckBox Text="{Loc 'genitals-same-color'}" Name="CheckBox"/>
|
||||
<ColorSelectorSliders Name="Color"/>
|
||||
</BoxContainer>
|
||||
|
||||
</controls:GenitalController>
|
||||
@@ -0,0 +1,153 @@
|
||||
using System.Linq;
|
||||
using Content.Shared._Amour.Hole;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Client._Amour.HumanoidProfileEditorExt;
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class GenitalController : Control
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IComponentFactory _componentFactory = default!;
|
||||
|
||||
public List<GenitalOption> GenitalOptions = new List<GenitalOption>();
|
||||
|
||||
private int _selectedId = 0;
|
||||
|
||||
public int SelectedId
|
||||
{
|
||||
get => _selectedId;
|
||||
set
|
||||
{
|
||||
if(value < 0 || value > GenitalOptions.Count)
|
||||
return;
|
||||
_selectedId = value;
|
||||
Input.Text = _selectedId.ToString();
|
||||
|
||||
RequireChange();
|
||||
}
|
||||
}
|
||||
|
||||
private GenitalsGroupPrototype? _genitalsCollectionPrototype;
|
||||
public GenitalsGroupPrototype? GenitalsCollectionPrototype
|
||||
{
|
||||
get => _genitalsCollectionPrototype;
|
||||
set
|
||||
{
|
||||
_genitalsCollectionPrototype = value;
|
||||
Update();
|
||||
}
|
||||
}
|
||||
|
||||
public event Action<GenitalChangedEventArgs>? InChange;
|
||||
|
||||
public GenitalController()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
CheckBox.OnPressed += CheckBoxOnOnPressed;
|
||||
Color.OnColorChanged += OnColorChanged;
|
||||
|
||||
BackButton.OnPressed += _ => SelectedId -= 1;
|
||||
GoButton.OnPressed += _ => SelectedId += 1;
|
||||
Input.OnTextChanged += args =>
|
||||
{
|
||||
if (int.TryParse(args.Text, out var i))
|
||||
SelectedId = i;
|
||||
};
|
||||
}
|
||||
|
||||
private void OnColorChanged(Color obj)
|
||||
{
|
||||
if(!CheckBox.Pressed)
|
||||
RequireChange();
|
||||
}
|
||||
|
||||
private void CheckBoxOnOnPressed(BaseButton.ButtonEventArgs obj)
|
||||
{
|
||||
RequireChange();
|
||||
}
|
||||
|
||||
|
||||
private void RequireChange()
|
||||
{
|
||||
if(_genitalsCollectionPrototype is null)
|
||||
return;
|
||||
|
||||
string? selectedGenital = null;
|
||||
if (SelectedId != 0)
|
||||
{
|
||||
selectedGenital = GenitalOptions[SelectedId - 1].Genital;
|
||||
GenitalName.Text = selectedGenital;
|
||||
}
|
||||
else
|
||||
{
|
||||
GenitalName.Text = Loc.GetString("genitals-none");
|
||||
}
|
||||
|
||||
Color? color = null;
|
||||
if (!CheckBox.Pressed)
|
||||
color = Color.Color;
|
||||
|
||||
InChange?.Invoke(new GenitalChangedEventArgs(selectedGenital,color,_genitalsCollectionPrototype.ID));
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
GenitalOptions.Clear();
|
||||
SelectedId = 0;
|
||||
|
||||
if(_genitalsCollectionPrototype is null)
|
||||
return;
|
||||
|
||||
Label.Text = Loc.GetString("genitals-group-" + _genitalsCollectionPrototype.ID.ToLower());
|
||||
|
||||
Count.Text = _genitalsCollectionPrototype.Prototypes.Count.ToString();
|
||||
|
||||
foreach (var entityProtoId in _genitalsCollectionPrototype.Prototypes)
|
||||
{
|
||||
|
||||
if (!_prototypeManager.TryIndex(entityProtoId, out var entityPrototype))
|
||||
{
|
||||
Logger.Error("PIZDA NOT FOUND " + entityProtoId);
|
||||
continue;
|
||||
}
|
||||
|
||||
GenitalOptions.Add(new GenitalOption(entityPrototype.ID,null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class GenitalChangedEventArgs
|
||||
{
|
||||
public string? GenitalId;
|
||||
public Color? Color;
|
||||
public string Group;
|
||||
|
||||
public GenitalChangedEventArgs(string? genitalId, Color? color, string group)
|
||||
{
|
||||
GenitalId = genitalId;
|
||||
Color = color;
|
||||
Group = group;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class GenitalOption
|
||||
{
|
||||
public string Genital;
|
||||
public Texture? Texture;
|
||||
|
||||
public GenitalOption(string genital, Texture? texture)
|
||||
{
|
||||
Genital = genital;
|
||||
Texture = texture;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using System.Linq;
|
||||
using Content.Client._Amour.HumanoidProfileEditorExt;
|
||||
using Content.Shared._Amour.Hole;
|
||||
|
||||
namespace Content.Client.Preferences.UI;
|
||||
|
||||
public sealed partial class HumanoidProfileEditor
|
||||
{
|
||||
private Dictionary<string, Genital> _genitals = new();
|
||||
|
||||
private void InitializeGenitals()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void UpdateGenitalsControls()
|
||||
{
|
||||
if (Profile is null)
|
||||
return;
|
||||
|
||||
_genitals.Clear();
|
||||
GenitalBoxView.ClearChilds();
|
||||
|
||||
Logger.Debug(Profile.Appearance.Genitals.Count + "<<");
|
||||
|
||||
foreach (var prototype in _prototypeManager.EnumeratePrototypes<GenitalsGroupPrototype>())
|
||||
{
|
||||
var selected = 0;
|
||||
foreach (var genital in Profile.Appearance.Genitals.Where(genital => prototype.Prototypes.Contains(genital.GenitalId)))
|
||||
{
|
||||
selected = prototype.Prototypes.IndexOf(genital.GenitalId);
|
||||
}
|
||||
|
||||
var controller = new GenitalController();
|
||||
controller.GenitalsCollectionPrototype = prototype;
|
||||
controller.InChange += ControllerOnInChange;
|
||||
controller.SelectedId = selected;
|
||||
|
||||
GenitalBoxView.AddChild(controller);
|
||||
}
|
||||
}
|
||||
|
||||
private void ControllerOnInChange(GenitalChangedEventArgs obj)
|
||||
{
|
||||
SelectGenital(obj.GenitalId,obj.Group,obj.Color);
|
||||
}
|
||||
|
||||
private void SelectGenital(string? id, string group,Color? color)
|
||||
{
|
||||
if(Profile is null)
|
||||
return;
|
||||
|
||||
if (id is null)
|
||||
{
|
||||
_genitals.Remove(group);
|
||||
}
|
||||
else
|
||||
{
|
||||
_genitals[group] = new Genital(id, color);
|
||||
}
|
||||
|
||||
Profile = Profile.WithCharacterAppearance(Profile.Appearance.WithGenitals(_genitals.Values.ToList()));
|
||||
ShowClothes.Pressed = false;
|
||||
IsDirty = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace Content.IntegrationTests.Tests.Preferences
|
||||
Color.Aquamarine,
|
||||
Color.Azure,
|
||||
Color.Beige,
|
||||
new ()
|
||||
new (), new() //AMOUR
|
||||
),
|
||||
ClothingPreference.Jumpskirt,
|
||||
BackpackPreference.Backpack,
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Administration.Managers;
|
||||
using Content.Shared._Amour.Hole;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Humanoid;
|
||||
@@ -232,7 +233,7 @@ namespace Content.Server.Database
|
||||
Color.FromHex(profile.FacialHairColor),
|
||||
Color.FromHex(profile.EyeColor),
|
||||
Color.FromHex(profile.SkinColor),
|
||||
markings
|
||||
markings, new List<Genital>() //TEMP
|
||||
),
|
||||
clothing,
|
||||
backpack,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.Server._Amour.Hole;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
@@ -15,6 +16,7 @@ public sealed partial class HumanoidAppearanceSystem : SharedHumanoidAppearanceS
|
||||
{
|
||||
[Dependency] private readonly MarkingManager _markingManager = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly HoleSystem _holeSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -116,6 +118,13 @@ public sealed partial class HumanoidAppearanceSystem : SharedHumanoidAppearanceS
|
||||
|
||||
humanoid.Age = profile.Age;
|
||||
|
||||
//AMOUR
|
||||
foreach (var genitals in profile.Appearance.Genitals)
|
||||
{
|
||||
Log.Debug("CHLEN! " + genitals.GenitalId);
|
||||
_holeSystem.AddHole(uid,genitals.GenitalId,genitals.Color);
|
||||
}
|
||||
|
||||
Dirty(humanoid);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.Shared._Amour.Hole;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Robust.Shared.Prototypes;
|
||||
@@ -17,7 +18,7 @@ namespace Content.Shared.Humanoid
|
||||
Color facialHairColor,
|
||||
Color eyeColor,
|
||||
Color skinColor,
|
||||
List<Marking> markings)
|
||||
List<Marking> markings, List<Genital> genitals)
|
||||
{
|
||||
HairStyleId = hairStyleId;
|
||||
HairColor = ClampColor(hairColor);
|
||||
@@ -26,6 +27,7 @@ namespace Content.Shared.Humanoid
|
||||
EyeColor = ClampColor(eyeColor);
|
||||
SkinColor = ClampColor(skinColor);
|
||||
Markings = markings;
|
||||
Genitals = genitals;
|
||||
}
|
||||
|
||||
[DataField("hair")]
|
||||
@@ -49,50 +51,58 @@ namespace Content.Shared.Humanoid
|
||||
[DataField("markings")]
|
||||
public List<Marking> Markings { get; private set; }
|
||||
|
||||
[DataField("genitals")]
|
||||
public List<Genital> Genitals { get; private set; }//AMOUR
|
||||
|
||||
public HumanoidCharacterAppearance WithHairStyleName(string newName)
|
||||
{
|
||||
return new(newName, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings);
|
||||
return new(newName, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings, Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithHairColor(Color newColor)
|
||||
{
|
||||
return new(HairStyleId, newColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings);
|
||||
return new(HairStyleId, newColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithFacialHairStyleName(string newName)
|
||||
{
|
||||
return new(HairStyleId, HairColor, newName, FacialHairColor, EyeColor, SkinColor, Markings);
|
||||
return new(HairStyleId, HairColor, newName, FacialHairColor, EyeColor, SkinColor, Markings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithFacialHairColor(Color newColor)
|
||||
{
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, newColor, EyeColor, SkinColor, Markings);
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, newColor, EyeColor, SkinColor, Markings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithEyeColor(Color newColor)
|
||||
{
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, newColor, SkinColor, Markings);
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, newColor, SkinColor, Markings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithSkinColor(Color newColor)
|
||||
{
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, newColor, Markings);
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, newColor, Markings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance WithMarkings(List<Marking> newMarkings)
|
||||
{
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, newMarkings);
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, newMarkings , Genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance() : this(
|
||||
public HumanoidCharacterAppearance WithGenitals(List<Genital> genitals)
|
||||
{
|
||||
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, Markings,
|
||||
genitals);
|
||||
}
|
||||
|
||||
public HumanoidCharacterAppearance(List<Genital> genitals) : this(
|
||||
HairStyles.DefaultHairStyle,
|
||||
Color.Black,
|
||||
HairStyles.DefaultFacialHairStyle,
|
||||
Color.Black,
|
||||
Color.Black,
|
||||
Humanoid.SkinColor.ValidHumanSkinTone,
|
||||
new ()
|
||||
)
|
||||
new (), genitals)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -114,7 +124,7 @@ namespace Content.Shared.Humanoid
|
||||
Color.Black,
|
||||
Color.Black,
|
||||
skinColor,
|
||||
new ()
|
||||
new (), new()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -175,7 +185,7 @@ namespace Content.Shared.Humanoid
|
||||
newSkinColor = Humanoid.SkinColor.ValidTintedHuesSkinTone(newSkinColor);
|
||||
}
|
||||
|
||||
return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, newEyeColor, newSkinColor, new ());
|
||||
return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, newEyeColor, newSkinColor, new (), new());
|
||||
|
||||
float RandomizeColor(float channel)
|
||||
{
|
||||
@@ -228,6 +238,15 @@ namespace Content.Shared.Humanoid
|
||||
}
|
||||
// WD-EDIT
|
||||
|
||||
// AMOUR EDIT
|
||||
var genitals = new List<Genital>();
|
||||
foreach (var genital in appearance.Genitals)
|
||||
{
|
||||
if(proto.TryIndex(genital.GenitalId,out _))
|
||||
genitals.Add(genital);
|
||||
}
|
||||
// END AMOUR EDIT
|
||||
|
||||
var markingSet = new MarkingSet();
|
||||
var skinColor = appearance.SkinColor;
|
||||
if (!proto.TryIndex(species, out SpeciesPrototype? speciesProto))
|
||||
@@ -239,7 +258,7 @@ namespace Content.Shared.Humanoid
|
||||
facialHairColor,
|
||||
eyeColor,
|
||||
skinColor,
|
||||
markingSet.GetForwardEnumerator().ToList());
|
||||
markingSet.GetForwardEnumerator().ToList(),genitals);
|
||||
}
|
||||
|
||||
markingSet = new MarkingSet(appearance.Markings, speciesProto.MarkingPoints, markingManager, proto);
|
||||
@@ -263,7 +282,7 @@ namespace Content.Shared.Humanoid
|
||||
facialHairColor,
|
||||
eyeColor,
|
||||
skinColor,
|
||||
markingSet.GetForwardEnumerator().ToList());
|
||||
markingSet.GetForwardEnumerator().ToList(), genitals);
|
||||
}
|
||||
|
||||
public bool MemberwiseEquals(ICharacterAppearance maybeOther)
|
||||
|
||||
19
Content.Shared/_Amour/Hole/Genital.cs
Normal file
19
Content.Shared/_Amour/Hole/Genital.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._Amour.Hole;
|
||||
|
||||
[Serializable, NetSerializable, DataDefinition]
|
||||
public sealed partial class Genital
|
||||
{
|
||||
public Genital(EntProtoId genitalId, Color? color)
|
||||
{
|
||||
GenitalId = genitalId;
|
||||
Color = color;
|
||||
}
|
||||
|
||||
[DataField]
|
||||
public EntProtoId GenitalId { get; private set; }
|
||||
[DataField]
|
||||
public Color? Color { get; private set; }
|
||||
}
|
||||
10
Content.Shared/_Amour/Hole/GenitalsGroupPrototype.cs
Normal file
10
Content.Shared/_Amour/Hole/GenitalsGroupPrototype.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._Amour.Hole;
|
||||
|
||||
[Prototype("genitalsGroup")]
|
||||
public sealed class GenitalsGroupPrototype : IPrototype
|
||||
{
|
||||
[IdDataField] public string ID { get; private set; } = default!;
|
||||
[DataField(required:true)] public List<EntProtoId> Prototypes = default!;
|
||||
}
|
||||
@@ -6,6 +6,7 @@ namespace Content.Shared._Amour.Hole;
|
||||
public abstract partial class SharedHoleSystem
|
||||
{
|
||||
[Dependency] private readonly SharedContainerSystem _containerSystem = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
public void InitializeContainer()
|
||||
{
|
||||
SubscribeLocalEvent<HoleContainerComponent,ComponentInit>(OnContainerInit);
|
||||
@@ -20,13 +21,26 @@ public abstract partial class SharedHoleSystem
|
||||
}
|
||||
}
|
||||
|
||||
public void AddHole(Entity<HoleContainerComponent?> entity, EntProtoId protoId)
|
||||
public void AddHole(Entity<HoleContainerComponent?> entity, EntProtoId protoId, Color? color = null)
|
||||
{
|
||||
if (!Resolve(entity.Owner, ref entity.Comp))
|
||||
if (!_prototypeManager.TryIndex<EntityPrototype>(protoId, out _))
|
||||
{
|
||||
Log.Error(protoId + " NOT EXIST YOU BASTARD!");
|
||||
return;
|
||||
//entity.Comp = EnsureComp<HoleContainerComponent>(entity.Owner);
|
||||
}
|
||||
if (!Resolve(entity.Owner, ref entity.Comp,logMissing:false))
|
||||
entity.Comp = EnsureComp<HoleContainerComponent>(entity.Owner);
|
||||
|
||||
var spawned = Spawn(protoId);
|
||||
if (!TryComp<HoleComponent>(spawned, out var component))
|
||||
{
|
||||
QueueDel(spawned);
|
||||
return;
|
||||
}
|
||||
|
||||
Log.Debug("ADDED " + protoId);
|
||||
_containerSystem.Insert(Spawn(protoId), entity.Comp.Slot);
|
||||
component.Layers[0].Color = color;
|
||||
|
||||
_containerSystem.Insert(spawned, entity.Comp.Slot);
|
||||
}
|
||||
}
|
||||
|
||||
9
Resources/Locale/ru-RU/_amour/genitals/menu.ftl
Normal file
9
Resources/Locale/ru-RU/_amour/genitals/menu.ftl
Normal file
@@ -0,0 +1,9 @@
|
||||
genitals-same-color = Принять цвет кожи
|
||||
genitals-none = отсутствует
|
||||
|
||||
genitals-group = Настройка приколов
|
||||
genitals-group-penis = Промежности
|
||||
genitals-group-testicles = Яйца
|
||||
genitals-group-butt = Попа
|
||||
genitals-group-breast = Сисечки
|
||||
|
||||
@@ -361,6 +361,13 @@
|
||||
noRot: true
|
||||
# TODO BODY Turn these into individual body parts?
|
||||
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" ]
|
||||
@@ -385,6 +392,13 @@
|
||||
- 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
|
||||
|
||||
101
Resources/Prototypes/_Amour/Entities/Holes/base.yml
Normal file
101
Resources/Prototypes/_Amour/Entities/Holes/base.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
- type: entity
|
||||
id: BaseDick
|
||||
abstract: true
|
||||
name: Член
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Father
|
||||
holeName: Dick
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/penis.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.DickBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.DickFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleSolution
|
||||
- type: HoleInventory
|
||||
size: Tiny
|
||||
maxSize: Small
|
||||
|
||||
- type: entity
|
||||
id: BaseVagina
|
||||
abstract: true
|
||||
name: Пизда
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Mother
|
||||
holeName: Vagina
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/vagina.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.DickFront" #Hmm
|
||||
prefix: "_FRONT"
|
||||
- type: HoleSolution
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseButt
|
||||
abstract: true
|
||||
name: Попа
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Mother
|
||||
holeName: Anus
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/butt.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.ButtFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseBreast
|
||||
abstract: true
|
||||
name: Сиськи
|
||||
components:
|
||||
- type: Hole
|
||||
holeName: Breast
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underweart
|
||||
sprite: _Amour/Genitals/breasts.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.BreastBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.BreastFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleSolution
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseTesticles
|
||||
name: Яички
|
||||
components:
|
||||
- type: Hole
|
||||
holeName: Dick
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/testicles.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.TesticlesBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.TesticlesFront"
|
||||
prefix: "_FRONT"
|
||||
2116
Resources/Prototypes/_Amour/Entities/Holes/breasts.yml
Normal file
2116
Resources/Prototypes/_Amour/Entities/Holes/breasts.yml
Normal file
File diff suppressed because it is too large
Load Diff
96
Resources/Prototypes/_Amour/Entities/Holes/butt.yml
Normal file
96
Resources/Prototypes/_Amour/Entities/Holes/butt.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
- 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
|
||||
|
||||
@@ -1,108 +1,4 @@
|
||||
- type: entity
|
||||
id: BaseDick
|
||||
abstract: true
|
||||
name: Чилен
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Father
|
||||
holeName: Dick
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/penis.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.DickBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.DickFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleSolution
|
||||
- type: HoleInventory
|
||||
size: Tiny
|
||||
maxSize: Small
|
||||
|
||||
- type: entity
|
||||
id: BaseVagina
|
||||
abstract: true
|
||||
name: Пизда
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Mother
|
||||
holeName: Vagina
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/butt.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.VaginaBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.VaginaFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleSolution
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseButt
|
||||
abstract: true
|
||||
name: Очко
|
||||
components:
|
||||
- type: Hole
|
||||
holeType: Mother
|
||||
holeName: Anus
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/butt.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.ButtFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseBreast
|
||||
abstract: true
|
||||
name: Сиськи
|
||||
components:
|
||||
- type: Hole
|
||||
holeName: Breast
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underweart
|
||||
sprite: _Amour/Genitals/breasts.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.BreastBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.BreastFront"
|
||||
prefix: "_FRONT"
|
||||
- type: HoleInventory
|
||||
|
||||
- type: entity
|
||||
id: BaseTesticles
|
||||
name: Яички
|
||||
components:
|
||||
- type: Hole
|
||||
holeName: Dick
|
||||
holeNotVisibleIn:
|
||||
- suitstorage
|
||||
- outerClothing
|
||||
- jumpsuit
|
||||
- underwearb
|
||||
sprite: _Amour/Genitals/testicles.rsi
|
||||
prefixes:
|
||||
- layer: "enum.GenitalVisualLayers.TesticlesBehind"
|
||||
prefix: "_BEHIND"
|
||||
- layer: "enum.GenitalVisualLayers.TesticlesFront"
|
||||
prefix: "_FRONT"
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: BaseDick
|
||||
id: Dick
|
||||
components:
|
||||
@@ -136,3 +32,11 @@
|
||||
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
|
||||
|
||||
1300
Resources/Prototypes/_Amour/Entities/Holes/penis.yml
Normal file
1300
Resources/Prototypes/_Amour/Entities/Holes/penis.yml
Normal file
File diff suppressed because it is too large
Load Diff
380
Resources/Prototypes/_Amour/Entities/Holes/testicles.yml
Normal file
380
Resources/Prototypes/_Amour/Entities/Holes/testicles.yml
Normal file
@@ -0,0 +1,380 @@
|
||||
- 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"
|
||||
|
||||
192
Resources/Prototypes/_Amour/Entities/Holes/vagina.yml
Normal file
192
Resources/Prototypes/_Amour/Entities/Holes/vagina.yml
Normal file
@@ -0,0 +1,192 @@
|
||||
- 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
|
||||
|
||||
456
Resources/Prototypes/_Amour/genitalsGroup.yml
Normal file
456
Resources/Prototypes/_Amour/genitalsGroup.yml
Normal file
@@ -0,0 +1,456 @@
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user