- add: genitals

This commit is contained in:
2024-02-14 12:49:00 +03:00
parent 7f54d0ddea
commit 40d813de44
678 changed files with 3782 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
using Content.Shared._Amour.Hole;
using Content.Shared.Humanoid;
using Robust.Client.GameObjects;
using Robust.Shared.Containers;
namespace Content.Client._Amour.Hole;
public sealed class HoleSystem : SharedHoleSystem
{
public override void Initialize()
{
SubscribeLocalEvent<HoleContainerComponent,EntInsertedIntoContainerMessage>(OnInsert);
SubscribeLocalEvent<HoleContainerComponent,EntRemovedFromContainerMessage>(OnRemoved);
}
private void OnRemoved(EntityUid uid, HoleContainerComponent component, EntRemovedFromContainerMessage args)
{
Log.Debug("A VSE");
}
private void OnInsert(EntityUid uid, HoleContainerComponent component, EntInsertedIntoContainerMessage args)
{
if(!TryComp<SpriteComponent>(uid, out var sprite) || !TryComp<HoleComponent>(args.Entity,out var hole))
return;
Log.Debug("DRAW PISYA");
DrawShit(uid,args.Entity);
}
private void DrawShit(Entity<SpriteComponent?,HumanoidAppearanceComponent?> owner, Entity<HoleComponent?> entity)
{
if(!Resolve(owner.Owner,ref owner.Comp1, ref owner.Comp2) || !Resolve(entity.Owner,ref entity.Comp))
return;
var spriteComp = owner.Comp1;
var holeComp = entity.Comp;
foreach (var layer in holeComp.BehindLayer)
{
var l = spriteComp.AddLayer(layer, 0);
spriteComp[l].Color = layer.Color ?? owner.Comp2.SkinColor;
}
foreach (var layer in holeComp.FrontLayer)
{
var l = spriteComp.AddLayer(layer);
spriteComp[l].Color = layer.Color ?? owner.Comp2.SkinColor;
}
}
}

View File

@@ -0,0 +1,24 @@
using Content.Shared._Amour.Hole;
using Robust.Server.Containers;
using Robust.Shared.Containers;
namespace Content.Server._Amour.Hole;
public sealed partial class HoleSystem
{
[Dependency] private readonly ContainerSystem _containerSystem = default!;
private void InitializeContainer()
{
SubscribeLocalEvent<HoleContainerComponent,ComponentInit>(OnContainerInit);
}
private void OnContainerInit(EntityUid uid, HoleContainerComponent component, ComponentInit args)
{
component.Slot = _containerSystem.EnsureContainer<Container>(uid, HoleContainerComponent.SlotName);
foreach (var holePrototype in component.HolePrototypes)
{
Log.Debug("ADDED " + holePrototype);
_containerSystem.Insert(Spawn(holePrototype), component.Slot);
}
}
}

View File

@@ -0,0 +1,19 @@
using Content.Shared._Amour.Hole;
using Robust.Server.Containers;
using Robust.Shared.Containers;
namespace Content.Server._Amour.Hole;
public sealed partial class HoleSystem
{
[Dependency] private readonly ContainerSystem _container = default!;
public void InitializeInventory()
{
SubscribeLocalEvent<HoleInventoryComponent,ComponentInit>(OnInventoryInit);
}
private void OnInventoryInit(EntityUid uid, HoleInventoryComponent component, ComponentInit args)
{
component.Slot = _container.EnsureContainer<ContainerSlot>(uid,HoleInventoryComponent.SlotName);
}
}

View File

@@ -0,0 +1,45 @@
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Shared._Amour.Hole;
namespace Content.Server._Amour.Hole;
public sealed partial class HoleSystem
{
[Dependency] private readonly SolutionContainerSystem _solutionContainer = default!;
public void InitializeSolution()
{
SubscribeLocalEvent<HoleSolutionComponent,ComponentInit>(OnSolutionInit);
SubscribeLocalEvent<HoleSolutionComponent,EntityUnpausedEvent>(OnUnpaused);
}
private void OnSolutionInit(EntityUid uid, HoleSolutionComponent component, ComponentInit args)
{
component.NextGenerationTime = _gameTiming.CurTime;
component.Solution = _solutionContainer.EnsureSolution(uid, HoleSolutionComponent.SlotName);
component.Solution.MaxVolume = component.SubstanceHoldCount;
}
private void OnUnpaused(EntityUid uid, HoleSolutionComponent component, EntityUnpausedEvent args)
{
component.NextGenerationTime += args.PausedTime;
}
private void UpdateSolution(float frameTime)
{
return;
var query = EntityQueryEnumerator<HoleSolutionComponent>();
while (query.MoveNext(out var uid, out var component))
{
if(_gameTiming.CurTime < component.NextGenerationTime)
continue;
component.NextGenerationTime = _gameTiming.CurTime;
if(component.Solution.Volume >= component.SubstanceHoldCount)
continue;
component.Solution.AddReagent(component.SubstanceName,component.SubstanceGenerationCount);
}
}
}

View File

@@ -0,0 +1,29 @@
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Shared._Amour.Hole;
using Robust.Server.Containers;
using Robust.Shared.Containers;
using Robust.Shared.Timing;
namespace Content.Server._Amour.Hole;
public sealed partial class HoleSystem : SharedHoleSystem
{
[Dependency] private readonly IGameTiming _gameTiming = default!;
public override void Initialize()
{
InitializeContainer();
InitializeInventory();
SubscribeLocalEvent<HoleComponent,EntGotInsertedIntoContainerMessage>(OnInsert);
}
private void OnInsert(EntityUid uid, HoleComponent component, EntGotInsertedIntoContainerMessage args)
{
component.Parent = GetNetEntity(args.Container.Owner);
}
public override void Update(float frameTime)
{
UpdateSolution(frameTime);
}
}

View File

@@ -0,0 +1,29 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.Item;
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared._Amour.Hole;
[RegisterComponent]
public sealed partial class HoleComponent : Component
{
[ViewVariables] public NetEntity Parent;
// Father can be in mother, its like in audiofil shit
[DataField] public HoleType HoleType = HoleType.Flat;
[DataField("sprite")] public string? RsiPath;
[DataField] public List<PrototypeLayerData> FrontLayer = new();
[DataField] public List<PrototypeLayerData> BehindLayer = new();
}
public enum HoleType : byte
{
Father,
Flat,
Mother
}

View File

@@ -0,0 +1,12 @@
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
namespace Content.Shared._Amour.Hole;
[RegisterComponent]
public sealed partial class HoleContainerComponent : Component
{
public const string SlotName = "Funny";
[ViewVariables] public Container Slot = default!;
[DataField] public List<EntProtoId> HolePrototypes = new();
}

View File

@@ -0,0 +1,17 @@
using Content.Shared.Item;
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
namespace Content.Shared._Amour.Hole;
[RegisterComponent]
public sealed partial class HoleInventoryComponent : Component
{
public const string SlotName = "Funny";
// Funny slot
[DataField] public ProtoId<ItemSizePrototype> Size = "Small";
[DataField] public ProtoId<ItemSizePrototype> MaxSize = "Normal";
[ViewVariables] public ContainerSlot Slot = default!;
}

View File

@@ -0,0 +1,27 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Robust.Shared.Prototypes;
namespace Content.Shared._Amour.Hole;
[RegisterComponent]
public sealed partial class HoleSolutionComponent : Component
{
// Funny cunt
[DataField] public ProtoId<ReagentPrototype> SubstanceName = "JuiceOrange";
[ViewVariables] public Solution Solution = default!;
[ViewVariables]
public TimeSpan NextGenerationTime = TimeSpan.Zero;
[DataField]
public TimeSpan Duration = TimeSpan.FromSeconds(1);
[DataField]
public float SubstanceHoldCount = 5;
[DataField]
public float SubstanceGenerationCount = 0.25f;
public static string SlotName = "Funny";
}

View File

@@ -0,0 +1,9 @@
using Robust.Shared.Containers;
using Robust.Shared.Timing;
namespace Content.Shared._Amour.Hole;
public abstract class SharedHoleSystem : EntitySystem
{
}

View File

@@ -43,6 +43,11 @@
- type: MovementSpeedModifier
- type: Polymorphable
- type: StatusIcon
- type: HoleContainer
holePrototypes:
- BaseDick
- BaseBreast
- BaseButt
# Used for mobs that have health and can take damage.
- type: entity

View File

@@ -0,0 +1,58 @@
- type: entity
id: BaseDick
name: Чилен
components:
- type: Hole
holeType: Father
frontLayer:
- state: penis_thick_4_1_FRONT
sprite: _Amour/Genitals/penis.rsi
behindLayer:
- state: penis_thick_4_1_BEHIND
sprite: _Amour/Genitals/penis.rsi
- type: HoleSolution
- type: HoleInventory
size: Tiny
maxSize: Small
- type: entity
id: BaseVagina
name: Пизда
components:
- type: Hole
holeType: Mother
- type: HoleSolution
- type: HoleInventory
- type: entity
id: BaseButt
name: Очко
components:
- type: Hole
holeType: Mother
frontLayer:
- state: butt_pair_3_s_0_FRONT
sprite: _Amour/Genitals/butt.rsi
- type: HoleInventory
- type: entity
id: BaseBreast
name: Сиськи
components:
- type: Hole
frontLayer:
- state: breasts_pair_i_s_0_FRONT
sprite: _Amour/Genitals/breasts.rsi
behindLayer:
- state: breasts_pair_i_s_0_BEHIND
sprite: _Amour/Genitals/breasts.rsi
- type: HoleInventory
- type: entity
id: BaseTesticles
name: Яички
components:
- type: Hole
frontLayer:
- state: testicles_single_5_s_1_FRONT
sprite: _Amour/Genitals/testicles.rsi

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

View File

@@ -0,0 +1,47 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "fuck",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "arousal0"
},
{
"name": "arousal10"
},
{
"name": "arousal20"
},
{
"name": "arousal30"
},
{
"name": "arousal40"
},
{
"name": "arousal50"
},
{
"name": "arousal60"
},
{
"name": "arousal70"
},
{
"name": "arousal80"
},
{
"name": "arousal90"
},
{
"name": "arousal100"
},
{
"name": "arousal"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Some files were not shown because too many files have changed in this diff Show More