Move grenade components to shared (#22691)
* Moves FlashComponent.cs, FlashOnTriggerComponent.cs, and SmokeOnTriggerComponent.cs to Shared * Moves ExplodeOnTriggerComponent.cs, OnUseTimerTriggerComponent.cs, ActiveTimerTriggerComponent.cs, and SmokeOnTriggerComponent.cs to Shared * Delete .run/Content Server+Client.run.xml HOW DID THIS GET IN HERE ITS NOT AHHHH * Update Content.Client/Explosion/SmokeOnTriggerSystem.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update Content.Shared/Explosion/Components/ActiveTimerTriggerComponent.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update Content.Shared/Explosion/Components/OnUseTimerTriggerComponent.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update Content.Shared/Explosion/Components/OnUseTimerTriggerComponent.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update Content.Shared/Explosion/EntitySystems/SharedTriggerSystem.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update Content.Shared/Explosion/EntitySystems/SharedSmokeOnTriggerSystem.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * Update ExplodeOnTriggerComponent.cs * Revert "Delete .run/Content Server+Client.run.xml" This reverts commit 29ee05f57de60eab5c92158d8eba5e3acba483c2. * Fix? * cannot figure out how to get this to go back please forgive * Fixes a network issue * leftovers * Fixes --------- Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Content Server+Client" type="CompoundRunConfigurationType">
|
||||
<toRun name="Content.Client" type="DotNetProject" />
|
||||
<toRun name="Content.Server" type="DotNetProject" />
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Explosion;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Shared.Enums;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.ResourceManagement;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
7
Content.Client/Explosion/SmokeOnTriggerSystem.cs
Normal file
7
Content.Client/Explosion/SmokeOnTriggerSystem.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
using Content.Shared.Explosion.EntitySystems;
|
||||
|
||||
namespace Content.Client.Explosion;
|
||||
|
||||
public sealed class SmokeOnTriggerSystem : SharedSmokeOnTriggerSystem
|
||||
{
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
|
||||
namespace Content.Client.Explosion;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Content.IntegrationTests.Tests.Interaction;
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ using Content.Shared.Construction.Components;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Defusable;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Explosion.Components.OnTrigger;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Verbs;
|
||||
using Content.Shared.Wires;
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
using Robust.Shared.Audio;
|
||||
|
||||
namespace Content.Server.Explosion.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Component for tracking active trigger timers. A timers can activated by some other component, e.g. <see cref="OnUseTimerTriggerComponent"/>.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class ActiveTimerTriggerComponent : Component
|
||||
{
|
||||
[DataField("timeRemaining")]
|
||||
public float TimeRemaining;
|
||||
|
||||
[DataField("user")]
|
||||
public EntityUid? User;
|
||||
|
||||
[DataField("beepInterval")]
|
||||
public float BeepInterval;
|
||||
|
||||
[DataField("timeUntilBeep")]
|
||||
public float TimeUntilBeep;
|
||||
|
||||
[DataField("beepSound")]
|
||||
public SoundSpecifier? BeepSound;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using Content.Server.Explosion.EntitySystems;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Physics;
|
||||
using Robust.Shared.Physics.Collision.Shapes;
|
||||
using Robust.Shared.Physics.Components;
|
||||
|
||||
@@ -8,6 +8,8 @@ using Robust.Shared.Containers;
|
||||
using Robust.Shared.Random;
|
||||
using Content.Server.Weapons.Ranged.Systems;
|
||||
using System.Numerics;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Flash.Components;
|
||||
using Robust.Server.Containers;
|
||||
using Robust.Server.GameObjects;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Numerics;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Physics;
|
||||
using Content.Shared.Projectiles;
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Physics.Components;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Server.Fluids.EntitySystems;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Coordinates.Helpers;
|
||||
using Content.Shared.Explosion.Components.OnTrigger;
|
||||
using Content.Shared.Explosion.EntitySystems;
|
||||
using Content.Shared.Maps;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
@@ -10,7 +12,7 @@ namespace Content.Server.Explosion.EntitySystems;
|
||||
/// <summary>
|
||||
/// Handles creating smoke when <see cref="SmokeOnTriggerComponent"/> is triggered.
|
||||
/// </summary>
|
||||
public sealed class SmokeOnTriggerSystem : EntitySystem
|
||||
public sealed class SmokeOnTriggerSystem : SharedSmokeOnTriggerSystem
|
||||
{
|
||||
[Dependency] private readonly IMapManager _mapMan = default!;
|
||||
[Dependency] private readonly SmokeSystem _smoke = default!;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Implants;
|
||||
using Content.Shared.Interaction.Events;
|
||||
using Content.Shared.Mobs;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Server.Sticky.Events;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Interaction.Events;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Verbs;
|
||||
|
||||
@@ -3,11 +3,13 @@ using Content.Server.Body.Systems;
|
||||
using Content.Server.Chemistry.Containers.EntitySystems;
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Server.Flash;
|
||||
using Content.Server.Flash.Components;
|
||||
using Content.Shared.Flash.Components;
|
||||
using Content.Server.Radio.EntitySystems;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.Components.SolutionManager;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Explosion.Components.OnTrigger;
|
||||
using Content.Shared.Implants.Components;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Mobs;
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
namespace Content.Server.Flash.Components
|
||||
{
|
||||
/// <summary>
|
||||
/// Upon being triggered will flash in an area around it.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
internal sealed partial class FlashOnTriggerComponent : Component
|
||||
{
|
||||
[DataField("range")] internal float Range = 1.0f;
|
||||
[DataField("duration")] internal float Duration = 8.0f;
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ using Content.Shared.Charges.Components;
|
||||
using Content.Shared.Charges.Systems;
|
||||
using Content.Shared.Eye.Blinding.Components;
|
||||
using Content.Shared.Flash;
|
||||
using Content.Shared.Flash.Components;
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Interaction.Events;
|
||||
|
||||
@@ -5,6 +5,7 @@ using Content.Server.Fluids.EntitySystems;
|
||||
using Content.Server.Nutrition.Components;
|
||||
using Content.Server.Popups;
|
||||
using Content.Shared.Containers.ItemSlots;
|
||||
using Content.Shared.Explosion.Components;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Nutrition.Components;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
|
||||
@@ -2,6 +2,7 @@ using Content.Shared.Eui;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Map;
|
||||
using Content.Shared.Explosion;
|
||||
using Content.Shared.Explosion.Components;
|
||||
|
||||
namespace Content.Shared.Administration;
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Explosion.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Component for tracking active trigger timers. A timers can activated by some other component, e.g. <see cref="OnUseTimerTriggerComponent"/>.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class ActiveTimerTriggerComponent : Component
|
||||
{
|
||||
[DataField] public float TimeRemaining;
|
||||
|
||||
[DataField] public EntityUid? User;
|
||||
|
||||
[DataField] public float BeepInterval;
|
||||
|
||||
[DataField] public float TimeUntilBeep;
|
||||
|
||||
[DataField] public SoundSpecifier? BeepSound;
|
||||
}
|
||||
@@ -2,7 +2,7 @@ using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Explosion;
|
||||
namespace Content.Shared.Explosion.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Component that is used to send explosion overlay/visual data to an abstract explosion entity.
|
||||
@@ -1,9 +1,11 @@
|
||||
namespace Content.Server.Explosion.Components;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Explosion.Components.OnTrigger;
|
||||
|
||||
/// <summary>
|
||||
/// Explode using the entity's <see cref="ExplosiveComponent"/> if Triggered.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class ExplodeOnTriggerComponent : Component
|
||||
{
|
||||
}
|
||||
@@ -1,14 +1,15 @@
|
||||
using Content.Server.Explosion.EntitySystems;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Explosion.EntitySystems;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.Explosion.Components;
|
||||
namespace Content.Shared.Explosion.Components.OnTrigger;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a smoke cloud when triggered, with an optional solution to include in it.
|
||||
/// No sound is played incase a grenade is stealthy, use <see cref="SoundOnTriggerComponent"/> if you want a sound.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SmokeOnTriggerSystem))]
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(SharedSmokeOnTriggerSystem))]
|
||||
public sealed partial class SmokeOnTriggerComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
@@ -1,57 +1,49 @@
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Server.Explosion.Components
|
||||
namespace Content.Shared.Explosion.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class OnUseTimerTriggerComponent : Component
|
||||
{
|
||||
[DataField("delay")]
|
||||
public float Delay = 1f;
|
||||
[DataField] public float Delay = 1f;
|
||||
|
||||
/// <summary>
|
||||
/// If not null, a user can use verbs to configure the delay to one of these options.
|
||||
/// </summary>
|
||||
[DataField("delayOptions")]
|
||||
public List<float>? DelayOptions = null;
|
||||
[DataField] public List<float>? DelayOptions = null;
|
||||
|
||||
/// <summary>
|
||||
/// If not null, this timer will periodically play this sound while active.
|
||||
/// </summary>
|
||||
[DataField("beepSound")]
|
||||
public SoundSpecifier? BeepSound;
|
||||
[DataField] public SoundSpecifier? BeepSound;
|
||||
|
||||
/// <summary>
|
||||
/// Time before beeping starts. Defaults to a single beep interval. If set to zero, will emit a beep immediately after use.
|
||||
/// </summary>
|
||||
[DataField("initialBeepDelay")]
|
||||
public float? InitialBeepDelay;
|
||||
[DataField] public float? InitialBeepDelay;
|
||||
|
||||
[DataField("beepInterval")]
|
||||
public float BeepInterval = 1;
|
||||
[DataField] public float BeepInterval = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Whether the timer should instead be activated through a verb in the right-click menu
|
||||
/// </summary>
|
||||
[DataField("useVerbInstead")]
|
||||
public bool UseVerbInstead = false;
|
||||
[DataField] public bool UseVerbInstead = false;
|
||||
|
||||
/// <summary>
|
||||
/// Should timer be started when it was stuck to another entity.
|
||||
/// Used for C4 charges and similar behaviour.
|
||||
/// </summary>
|
||||
[DataField("startOnStick")]
|
||||
public bool StartOnStick;
|
||||
[DataField] public bool StartOnStick;
|
||||
|
||||
/// <summary>
|
||||
/// Allows changing the start-on-stick quality.
|
||||
/// </summary>
|
||||
[DataField("canToggleStartOnStick")]
|
||||
public bool AllowToggleStartOnStick;
|
||||
[DataField("canToggleStartOnStick")] public bool AllowToggleStartOnStick;
|
||||
|
||||
/// <summary>
|
||||
/// Whether you can examine the item to see its timer or not.
|
||||
/// </summary>
|
||||
[DataField("examinable")]
|
||||
public bool Examinable = true;
|
||||
[DataField] public bool Examinable = true;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Explosion
|
||||
namespace Content.Shared.Explosion.Components
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public enum ClusterGrenadeVisuals : byte
|
||||
@@ -1,6 +1,6 @@
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Explosion;
|
||||
namespace Content.Shared.Explosion.Components;
|
||||
|
||||
[NetworkedComponent]
|
||||
public abstract partial class SharedTriggerOnProximityComponent : Component
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Content.Shared.Explosion.EntitySystems;
|
||||
|
||||
public abstract class SharedSmokeOnTriggerSystem : EntitySystem
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Content.Shared.Explosion.EntitySystems;
|
||||
|
||||
public abstract class SharedTriggerSystem : EntitySystem
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
using Content.Shared.Flash;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Server.Flash.Components
|
||||
namespace Content.Shared.Flash.Components
|
||||
{
|
||||
[RegisterComponent, Access(typeof(FlashSystem))]
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(SharedFlashSystem))]
|
||||
public sealed partial class FlashComponent : Component
|
||||
{
|
||||
|
||||
13
Content.Shared/Flash/Components/FlashOnTriggerComponent.cs
Normal file
13
Content.Shared/Flash/Components/FlashOnTriggerComponent.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Flash.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Upon being triggered will flash in an area around it.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class FlashOnTriggerComponent : Component
|
||||
{
|
||||
[DataField] public float Range = 1.0f;
|
||||
[DataField] public float Duration = 8.0f;
|
||||
}
|
||||
@@ -24,9 +24,10 @@
|
||||
delay: 5
|
||||
delayOptions: [3, 5, 10, 15, 30]
|
||||
initialBeepDelay: 0
|
||||
beepSound: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
beepSound:
|
||||
path: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
- type: StaticPrice
|
||||
price: 40
|
||||
|
||||
|
||||
@@ -252,9 +252,10 @@
|
||||
- type: OnUseTimerTrigger
|
||||
delay: 7
|
||||
initialBeepDelay: 0
|
||||
beepSound: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
beepSound:
|
||||
path: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
- type: ExplodeOnTrigger
|
||||
- type: GibOnTrigger
|
||||
deleteItems: true
|
||||
|
||||
@@ -253,9 +253,10 @@
|
||||
- type: OnUseTimerTrigger
|
||||
useVerbInstead: true
|
||||
beepInterval: .25
|
||||
beepSound: /Audio/Items/Janitor/floor_sign_beep.ogg
|
||||
params:
|
||||
volume: 1
|
||||
beepSound:
|
||||
path: /Audio/Items/Janitor/floor_sign_beep.ogg
|
||||
params:
|
||||
volume: 1
|
||||
examinable: false
|
||||
- type: Tag
|
||||
tags: # ignore "WhitelistChameleon" tag
|
||||
|
||||
@@ -24,9 +24,10 @@
|
||||
Blunt: 5
|
||||
- type: OnUseTimerTrigger
|
||||
delay: 120
|
||||
beepSound: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
beepSound:
|
||||
path: /Audio/Machines/Nuke/general_beep.ogg
|
||||
params:
|
||||
volume: -2
|
||||
- type: ExplodeOnTrigger
|
||||
- type: Explosive
|
||||
explosionType: Default
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
initialBeepDelay: 0
|
||||
beepSound:
|
||||
path: /Audio/Weapons/Guns/MagOut/pistol_magout.ogg
|
||||
volume: 1
|
||||
params:
|
||||
volume: 1
|
||||
- type: RandomTimerTrigger
|
||||
min: 0
|
||||
max: 60
|
||||
|
||||
@@ -179,7 +179,6 @@
|
||||
sound:
|
||||
path: /Audio/Weapons/flash.ogg
|
||||
- type: FlashOnTrigger
|
||||
repeating: true
|
||||
range: 3
|
||||
- type: TriggerOnProximity
|
||||
enabled: true
|
||||
|
||||
Reference in New Issue
Block a user