diff --git a/Content.Server/Stray/AudioLoop/AudioLoopSystem.cs b/Content.Server/Stray/AudioLoop/AudioLoopSystem.cs new file mode 100644 index 00000000000..954b18425c6 --- /dev/null +++ b/Content.Server/Stray/AudioLoop/AudioLoopSystem.cs @@ -0,0 +1,55 @@ +//AudioParams auSt = new AudioParams(); +//auSt.Loop = true; +//AudioComponent audi = _audio.SetupAudio(uid, audiCom.fileName, auSt); +//audi.StartPlaying(); +using Robust.Shared.Audio.Systems; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Components; +using Content.Shared.Interaction; +using Robust.Shared.Audio.Effects; +using Content.Shared.Stray.AudioLoop; +using JetBrains.Annotations; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; + + + +namespace Content.Server.Stray.AudioLoop; + +[UsedImplicitly] +public sealed class DiceSystem : SharedAudioLoopSystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + + + public override void ActToggle(EntityUid uid, AudioLoopComponent audiCom, UseInHandEvent args){ + audiCom.act = !audiCom.act; + + if(audiCom.act==false){ + _audio.Stop(audiCom.ent, audiCom.auC); + }else{ + (EntityUid Entity, AudioComponent Component)? res = _audio.PlayPvs(audiCom.sound, uid, new AudioParams(0, 1, SharedAudioSystem.DefaultSoundRange, 3, 1, true, 0f)); + if(res!=null){ + audiCom.ent = res.Value.Entity; + audiCom.auC = res.Value.Component; + } + } + } + + //public override void OnSpawn(EntityUid uid, AudioLoopComponent audiCom, MapInitEvent args){ + // //AudioParams auSt = new(0, 1, SharedAudioSystem.DefaultSoundRange, 1, 1, true, 0f);//new AudioParams(); + // //auSt.Loop = true; + // //auSt.RolloffFactor = 1; + // ////source.RolloffFactor = audioParams.RolloffFactor; + // //auSt.MaxDistance = 15; + // //auSt.ReferenceDistance = 1; + // //AudioComponent audi = _audio.SetupAudio(uid, audiCom.fileName, auSt); + // //audi.StartPlaying(); + // (EntityUid Entity, AudioComponent Component)? res = _audio.PlayPvs(audiCom.sound, uid, new AudioParams(0, 1, SharedAudioSystem.DefaultSoundRange, 1, 1, true, 0f)); + // if(res!=null){ + // audiCom.ent = res.Value.Entity; + // audiCom.auC = res.Value.Component; + // } + //} + +} diff --git a/Content.Shared/Stray/AudioLoop/AudioLoopComponent.cs b/Content.Shared/Stray/AudioLoop/AudioLoopComponent.cs new file mode 100644 index 00000000000..1007eb58322 --- /dev/null +++ b/Content.Shared/Stray/AudioLoop/AudioLoopComponent.cs @@ -0,0 +1,32 @@ +//Audio/Items/drill_use.ogg +using System; +using System.Collections.Generic; +using System.Numerics; +using Robust.Shared.Audio.Effects; +using Robust.Shared.Audio.Sources; +using Robust.Shared.Audio.Systems; +using Robust.Shared.GameObjects; +using Content.Shared.Stray.AudioLoop; +using Robust.Shared.GameStates; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Components; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.Manager.Attributes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.ViewVariables; + +namespace Content.Shared.Stray.AudioLoop; + +/// +/// Stores the audio data for an audio entity. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true), Access(typeof(SharedAudioLoopSystem))] +public sealed partial class AudioLoopComponent : Component +{ + [DataField("sound",required: true)] + public SoundSpecifier sound { get; private set; } + public EntityUid ent; + public AudioComponent auC; + [AutoNetworkedField] + public bool act = false; +} diff --git a/Content.Shared/Stray/AudioLoop/SharedAudioLoopSystem.cs b/Content.Shared/Stray/AudioLoop/SharedAudioLoopSystem.cs new file mode 100644 index 00000000000..685466e70bf --- /dev/null +++ b/Content.Shared/Stray/AudioLoop/SharedAudioLoopSystem.cs @@ -0,0 +1,34 @@ +using Robust.Shared.Audio.Components; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Systems; +using Content.Shared.Interaction; +using Robust.Shared.Audio.Effects; +using Robust.Shared.GameObjects; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; + +namespace Content.Shared.Stray.AudioLoop; + +public abstract partial class SharedAudioLoopSystem : EntitySystem +{ + + public override void Initialize() + { + base.Initialize(); + //_audio. + //InitializeEffect(); + //ZOffset = CfgManager.GetCVar(CVars.AudioZOffset); + //Subs.CVar(CfgManager, CVars.AudioZOffset, SetZOffset); + //SubscribeLocalEvent(OnAudioGetStateAttempt); + //SubscribeLocalEvent(OnSpawn); + SubscribeLocalEvent(ActToggle); + } + //(EntityUid uid, string? fileName, AudioParams? audioParams, TimeSpan? length = null) + //public virtual void OnSpawn(EntityUid uid, AudioLoopComponent audiCom, MapInitEvent args){ +// + //} + + public virtual void ActToggle(EntityUid uid, AudioLoopComponent audiCom, UseInHandEvent args){ + + } +} diff --git a/Resources/Audio/Stray/Fun/maxwell-the-cat-theme.ogg b/Resources/Audio/Stray/Fun/maxwell-the-cat-theme.ogg new file mode 100644 index 00000000000..d9fd0051c76 Binary files /dev/null and b/Resources/Audio/Stray/Fun/maxwell-the-cat-theme.ogg differ diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index ea1e05359ac..ac15e5d9312 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -28,6 +28,7 @@ - id: PlushieMoth - id: PlushieMothRandom # Nyanotrasen - Random Moth Plushies amount: 2 + - id: ToyMaxwell - id: PlushieArachind - id: PlushiePenguin @@ -308,6 +309,7 @@ - id: ClothingHeadHatMagician - id: BeachBall - id: ClothingShoesSkates + - id: ToyMaxwell - type: entity id: CrateFunBikeHornImplants diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml index eba1e300edf..a70fe61b133 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml @@ -32,6 +32,7 @@ - PlushieSharkGrey - ToyAmongPequeno - ToyMouse + - ToyMaxwell # Stray Toy - PlushieDiona - PlushieMoth - PlushieMothRandom # Nyanotrasen Random Moth Plushies diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index 1156352e608..52105c75182 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -39,7 +39,7 @@ bodyType: Kinematic - type: CustomGhosts maxRandomIndex: 5 - ckeys: "" + ckeys: Kotovasu - type: Body prototype: Aghost - type: Access diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index aa9e70f3fa4..4ab3fc24ff1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -755,6 +755,8 @@ - id: GoldenBikeHorn prob: 0.1 orGroup: GiftPool + #- id: ToyMaxwell # Stray Toy + # onGroup: GiftPool - id: ToyRenault # DeltaV Toy, see Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml orGroup: GiftPool - id: ToySiobhan # DeltaV Toy, see Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml diff --git a/Resources/Prototypes/Entities/Objects/Decoration/present.yml b/Resources/Prototypes/Entities/Objects/Decoration/present.yml index 06836df342c..8327b6c0d41 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/present.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/present.yml @@ -104,6 +104,8 @@ orGroup: GiftPool - id: PlushieArachind orGroup: GiftPool + #- id: ToyMaxwell # Stray Toy + # onGroup: GiftPool - id: ClothingNeckCloakMoth orGroup: GiftPool - id: ToyMouse diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml index e8bfcfac804..998647307c3 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml @@ -126,6 +126,7 @@ - BeachBall - PlushieMoth - PlushieHampter + - ToyMaxwell # Stray Toy - ToyRenault # DeltaV Toy, see Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml - ToySiobhan # DeltaV Toy, see Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml - PlushiePenguin diff --git a/Resources/Prototypes/Stray/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Stray/Entities/Objects/Fun/toys.yml new file mode 100644 index 00000000000..ddec0a06cfe --- /dev/null +++ b/Resources/Prototypes/Stray/Entities/Objects/Fun/toys.yml @@ -0,0 +1,15 @@ +- type: entity + parent: BasePlushie + id: ToyMaxwell + name: Максвелл + description: "Игрушка Максвелла. По неизвестной причине постоянно крутится и издаёт музыку" + components: + - type: Sprite + sprite: Stray/Objects/Fun/toys.rsi + state: maxwell + - type: AudioLoop + sound: + path: /Audio/Stray/Fun/maxwell-the-cat-theme.ogg + #- type: EmitSoundOnSpawn + # sound: + # path: /Audio/Weapons/Guns/Gunshots/rocket_launcher.ogg diff --git a/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost.rsi/BioMass.png b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost.rsi/BioMass.png index c324b299d09..653f58b2ec1 100644 Binary files a/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost.rsi/BioMass.png and b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost.rsi/BioMass.png differ diff --git a/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/Kotovasu.png b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/Kotovasu.png new file mode 100644 index 00000000000..4d6a068f2c4 Binary files /dev/null and b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/Kotovasu.png differ diff --git a/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/meta.json b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/meta.json index dcb201e132f..006f830d72c 100644 --- a/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/meta.json +++ b/Resources/Textures/SimpleStation14/Mobs/Ghosts/ghost_admin.rsi/meta.json @@ -19,6 +19,7 @@ "name": "2", "directions": 4 }, + { "name": "3", "directions": 4 @@ -47,6 +48,9 @@ 0.1 ] ] + }, + { + "name": "Kotovasu" } ] } diff --git a/Resources/Textures/Stray/Objects/Fun/toys.rsi/maxwell.png b/Resources/Textures/Stray/Objects/Fun/toys.rsi/maxwell.png new file mode 100644 index 00000000000..cf022acbefa Binary files /dev/null and b/Resources/Textures/Stray/Objects/Fun/toys.rsi/maxwell.png differ diff --git a/Resources/Textures/Stray/Objects/Fun/toys.rsi/meta.json b/Resources/Textures/Stray/Objects/Fun/toys.rsi/meta.json new file mode 100644 index 00000000000..d74ac9e894b --- /dev/null +++ b/Resources/Textures/Stray/Objects/Fun/toys.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made for DeltaV-Stray by boctonskuitea", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "maxwell", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +}