--- /dev/null
+using Content.Shared.Botany.Components;
+
+namespace Content.Client.Botany.Components;
+
+[RegisterComponent]
+public sealed partial class ProduceComponent : SharedProduceComponent
+{
+}
--- /dev/null
+using Content.Shared.Botany.Components;
+
+namespace Content.Client.Botany.Components;
+
+[RegisterComponent]
+public sealed partial class SeedComponent : SharedSeedComponent
+{
+}
using Content.Server.Botany.Systems;
+using Content.Shared.Botany.Components;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Botany.Components;
[RegisterComponent]
[Access(typeof(BotanySystem))]
-public sealed partial class ProduceComponent : Component
+public sealed partial class ProduceComponent : SharedProduceComponent
{
[DataField("targetSolution")] public string SolutionName { get; set; } = "food";
using Content.Server.Botany.Systems;
+using Content.Shared.Botany.Components;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Botany.Components
{
[RegisterComponent, Access(typeof(BotanySystem))]
- public sealed partial class SeedComponent : Component
+ public sealed partial class SeedComponent : SharedSeedComponent
{
/// <summary>
/// Seed data containing information about the plant type & properties that this seed can grow seed. If
using Content.Server.Explosion.Components;
-using Content.Server.Flash.Components;
+using Content.Shared.Flash.Components;
using Content.Shared.Explosion;
using Content.Shared.Interaction;
using Content.Shared.Interaction.Events;
using Content.Shared.Explosion.Components;
+using Content.Shared.Explosion.EntitySystems;
using Content.Server.Fluids.EntitySystems;
using Content.Shared.Chemistry.Components;
using Content.Shared.Coordinates.Helpers;
using System.Linq;
using Content.Server.Flash.Components;
+using Content.Shared.Flash.Components;
using Content.Server.Light.EntitySystems;
using Content.Server.Popups;
using Content.Server.Stunnable;
using Content.Server.Light.Components;
using Content.Shared.Examine;
using Content.Shared.Interaction;
+using Content.Shared.Light.EntitySystems;
using Content.Shared.Light.Components;
using Content.Shared.Popups;
using Content.Shared.Storage;
namespace Content.Server.Light.EntitySystems;
[UsedImplicitly]
-public sealed class LightReplacerSystem : EntitySystem
+public sealed class LightReplacerSystem : SharedLightReplacerSystem
{
[Dependency] private readonly PoweredLightSystem _poweredLight = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
using Content.Server.Body.Components;
+using Content.Shared.Nutrition.Components;
using Content.Server.Nutrition.EntitySystems;
using Content.Shared.FixedPoint;
using Robust.Shared.Audio;
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Inventory;
using Content.Server.Nutrition.Components;
+using Content.Shared.Nutrition.Components;
using Content.Server.Popups;
using Content.Server.Stack;
using Content.Shared.Administration.Logs;
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Nutrition.Components;
+using Content.Shared.Nutrition.Components;
using Content.Shared.Chemistry.Components;
using Content.Shared.Examine;
using Content.Shared.FixedPoint;
using Content.Server.Nutrition.Components;
+using Content.Shared.Nutrition.Components;
+using Content.Shared.Nutrition.EntitySystems;
using Content.Server.Popups;
using Content.Shared.Interaction;
using Robust.Shared.Audio;
/// <summary>
/// Handles usage of the utensils on the food items
/// </summary>
- internal sealed class UtensilSystem : EntitySystem
+ internal sealed class UtensilSystem : SharedUtensilSystem
{
[Dependency] private readonly IRobustRandom _robustRandom = default!;
[Dependency] private readonly FoodSystem _foodSystem = default!;
using Content.Shared.Database;
using Content.Shared.DoAfter;
using Content.Shared.Doors.Components;
-using Content.Shared.SprayPainter.Prototypes;
using Content.Shared.SprayPainter;
+using Content.Shared.SprayPainter.Components;
+using Content.Shared.SprayPainter.Prototypes;
using Content.Shared.Interaction;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
--- /dev/null
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Botany.Components;
+
+[NetworkedComponent]
+public abstract partial class SharedProduceComponent : Component
+{
+}
--- /dev/null
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Botany.Components;
+
+[NetworkedComponent]
+public abstract partial class SharedSeedComponent : Component
+{
+}
+using Content.Shared.Explosion.EntitySystems;
using Content.Shared.Chemistry.Components;
using Content.Shared.Explosion.EntitySystems;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
+using Robust.Shared.GameStates;
-namespace Content.Shared.Explosion.Components.OnTrigger;
+namespace Content.Shared.Explosion.Components;
/// <summary>
/// Creates a smoke cloud when triggered, with an optional solution to include in it.
-namespace Content.Shared.Explosion.EntitySystems;
+namespace Content.Shared.Explosion.EntitySystems;
public abstract class SharedSmokeOnTriggerSystem : EntitySystem
{
-
-}
\ No newline at end of file
+}
using Robust.Shared.GameStates;
-
namespace Content.Shared.Flash.Components;
/// <summary>
-using Content.Server.Light.EntitySystems;
+using Content.Shared.Light.EntitySystems;
using Content.Shared.Storage;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
+using Robust.Shared.GameStates;
namespace Content.Server.Light.Components;
/// Device that allows user to quikly change bulbs in <see cref="PoweredLightComponent"/>
/// Can be reloaded by new light tubes or light bulbs
/// </summary>
-[RegisterComponent, Access(typeof(LightReplacerSystem))]
+[RegisterComponent, NetworkedComponent, Access(typeof(SharedLightReplacerSystem))]
public sealed partial class LightReplacerComponent : Component
{
[DataField("sound")]
--- /dev/null
+namespace Content.Shared.Light.EntitySystems;
+
+public abstract class SharedLightReplacerSystem : EntitySystem
+{
+}
-namespace Content.Server.Mousetrap;
+using Robust.Shared.GameStates;
-[RegisterComponent]
+namespace Content.Shared.Mousetrap;
+
+[RegisterComponent, NetworkedComponent]
public sealed partial class MousetrapComponent : Component
{
[ViewVariables]
- [DataField("isActive")]
+ [DataField("isActive")]
public bool IsActive = false;
/// <summary>
-using Content.Server.Nutrition.EntitySystems;
+using Content.Shared.Nutrition.EntitySystems;
using Robust.Shared.Audio;
+using Robust.Shared.GameStates;
-namespace Content.Server.Nutrition.Components
+namespace Content.Shared.Nutrition.Components
{
- [RegisterComponent, Access(typeof(UtensilSystem))]
+ [RegisterComponent, NetworkedComponent, Access(typeof(SharedUtensilSystem))]
public sealed partial class UtensilComponent : Component
{
[DataField("types")]
--- /dev/null
+namespace Content.Shared.Nutrition.EntitySystems;
+
+public abstract class SharedUtensilSystem : EntitySystem
+{
+}
using Robust.Shared.Audio;
+using Robust.Shared.GameStates;
-namespace Content.Server.SprayPainter;
+namespace Content.Shared.SprayPainter.Components;
-[RegisterComponent]
+[RegisterComponent, NetworkedComponent]
public sealed partial class SprayPainterComponent : Component
{
[DataField("spraySound")]
- SmokeOnTrigger
- Flash
- Handcuff
- - RangedMagazine
+ - BallisticAmmoProvider
- Ammo
- type: ItemMapper
mapLayers:
- WetFloorSign
- HolosignProjector
- Plunger
- - LightReplacer
+ - JanicartKeys
components:
- LightReplacer
- type: ItemMapper
lightreplacer_slot:
name: janitorial-trolley-slot-component-slot-name-lightreplacer
whitelist:
- tags:
+ components:
- LightReplacer
priority: 6
spraybottle_slot:
amount: 5
- type: Tag
tags:
- - LightReplacer
- DroneUsable
- type: StaticPrice
price: 100
- key: enum.SprayPainterUiKey.Key
type: SprayPainterBoundUserInterface
- type: SprayPainter
- whitelist:
- tags:
- - PaintableAirlock
colorPalette:
red: '#FF1212FF'
yellow: '#B3A234FF'
shape:
!type:PhysShapeCircle
radius: 2
+ repeating: true
- type: Anchorable
- type: Sprite
sprite: Objects/Weapons/pflash.rsi
- type: Tag
id: Lemon
-- type: Tag
- id: LightReplacer
-
- type: Tag
id: Lime
- type: Tag
id: Payload # for grenade/bomb crafting
-- type: Tag
- id: PaintableAirlock
-
- type: Tag
id: Pancake