Fix clientside storage Whitelists (#24063)

* Fix outdated component name in assaultbelt whitelist

RangedMagazine was replaced with BallisticAmmoProvider in the Gun
refactor (#8301)

* Move FlashOnTrigger, SmokeOnTrigger, Flash components to Shared

* Move LightReplacerComponent to Shared

* Move Utensil, Mousetrap components to Shared

* Move SprayPainterComponent to Shared

The PaintableAirlock tag has also been removed, as it was unused &
unnecessary, likely a vestige of spray painter development when the
PaintableAirlock component wasn't in Content.Shared.

* Add trivial Produce and Seed components to Client

This allows the plant bag and botanical belt whitelists to correctly
match produce and seeds on the client, fixing the extraneous "Can't
insert" message that previously appeared.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Magnus Larsen
2024-02-01 13:33:57 +00:00
committed by GitHub
parent 467e983ba9
commit 9cd6e4dccd
30 changed files with 83 additions and 34 deletions

View File

@@ -0,0 +1,8 @@
using Content.Shared.Botany.Components;
namespace Content.Client.Botany.Components;
[RegisterComponent]
public sealed partial class ProduceComponent : SharedProduceComponent
{
}

View File

@@ -0,0 +1,8 @@
using Content.Shared.Botany.Components;
namespace Content.Client.Botany.Components;
[RegisterComponent]
public sealed partial class SeedComponent : SharedSeedComponent
{
}

View File

@@ -1,11 +1,12 @@
using Content.Server.Botany.Systems; using Content.Server.Botany.Systems;
using Content.Shared.Botany.Components;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Botany.Components; namespace Content.Server.Botany.Components;
[RegisterComponent] [RegisterComponent]
[Access(typeof(BotanySystem))] [Access(typeof(BotanySystem))]
public sealed partial class ProduceComponent : Component public sealed partial class ProduceComponent : SharedProduceComponent
{ {
[DataField("targetSolution")] public string SolutionName { get; set; } = "food"; [DataField("targetSolution")] public string SolutionName { get; set; } = "food";

View File

@@ -1,10 +1,11 @@
using Content.Server.Botany.Systems; using Content.Server.Botany.Systems;
using Content.Shared.Botany.Components;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Botany.Components namespace Content.Server.Botany.Components
{ {
[RegisterComponent, Access(typeof(BotanySystem))] [RegisterComponent, Access(typeof(BotanySystem))]
public sealed partial class SeedComponent : Component public sealed partial class SeedComponent : SharedSeedComponent
{ {
/// <summary> /// <summary>
/// Seed data containing information about the plant type & properties that this seed can grow seed. If /// Seed data containing information about the plant type & properties that this seed can grow seed. If

View File

@@ -1,5 +1,5 @@
using Content.Server.Explosion.Components; using Content.Server.Explosion.Components;
using Content.Server.Flash.Components; using Content.Shared.Flash.Components;
using Content.Shared.Explosion; using Content.Shared.Explosion;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Content.Shared.Interaction.Events; using Content.Shared.Interaction.Events;

View File

@@ -1,4 +1,5 @@
using Content.Shared.Explosion.Components; using Content.Shared.Explosion.Components;
using Content.Shared.Explosion.EntitySystems;
using Content.Server.Fluids.EntitySystems; using Content.Server.Fluids.EntitySystems;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Coordinates.Helpers; using Content.Shared.Coordinates.Helpers;

View File

@@ -1,5 +1,6 @@
using System.Linq; using System.Linq;
using Content.Server.Flash.Components; using Content.Server.Flash.Components;
using Content.Shared.Flash.Components;
using Content.Server.Light.EntitySystems; using Content.Server.Light.EntitySystems;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Server.Stunnable; using Content.Server.Stunnable;

View File

@@ -2,6 +2,7 @@ using System.Linq;
using Content.Server.Light.Components; using Content.Server.Light.Components;
using Content.Shared.Examine; using Content.Shared.Examine;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Content.Shared.Light.EntitySystems;
using Content.Shared.Light.Components; using Content.Shared.Light.Components;
using Content.Shared.Popups; using Content.Shared.Popups;
using Content.Shared.Storage; using Content.Shared.Storage;
@@ -13,7 +14,7 @@ using Robust.Shared.Containers;
namespace Content.Server.Light.EntitySystems; namespace Content.Server.Light.EntitySystems;
[UsedImplicitly] [UsedImplicitly]
public sealed class LightReplacerSystem : EntitySystem public sealed class LightReplacerSystem : SharedLightReplacerSystem
{ {
[Dependency] private readonly PoweredLightSystem _poweredLight = default!; [Dependency] private readonly PoweredLightSystem _poweredLight = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedAudioSystem _audio = default!;

View File

@@ -1,4 +1,5 @@
using Content.Server.Body.Components; using Content.Server.Body.Components;
using Content.Shared.Nutrition.Components;
using Content.Server.Nutrition.EntitySystems; using Content.Server.Nutrition.EntitySystems;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using Robust.Shared.Audio; using Robust.Shared.Audio;

View File

@@ -3,6 +3,7 @@ using Content.Server.Body.Systems;
using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Inventory; using Content.Server.Inventory;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Content.Shared.Nutrition.Components;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Server.Stack; using Content.Server.Stack;
using Content.Shared.Administration.Logs; using Content.Shared.Administration.Logs;

View File

@@ -1,5 +1,6 @@
using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Content.Shared.Nutrition.Components;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Examine; using Content.Shared.Examine;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;

View File

@@ -1,4 +1,6 @@
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Content.Shared.Nutrition.Components;
using Content.Shared.Nutrition.EntitySystems;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Robust.Shared.Audio; using Robust.Shared.Audio;
@@ -11,7 +13,7 @@ namespace Content.Server.Nutrition.EntitySystems
/// <summary> /// <summary>
/// Handles usage of the utensils on the food items /// Handles usage of the utensils on the food items
/// </summary> /// </summary>
internal sealed class UtensilSystem : EntitySystem internal sealed class UtensilSystem : SharedUtensilSystem
{ {
[Dependency] private readonly IRobustRandom _robustRandom = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!;
[Dependency] private readonly FoodSystem _foodSystem = default!; [Dependency] private readonly FoodSystem _foodSystem = default!;

View File

@@ -6,8 +6,9 @@ using Content.Server.Popups;
using Content.Shared.Database; using Content.Shared.Database;
using Content.Shared.DoAfter; using Content.Shared.DoAfter;
using Content.Shared.Doors.Components; using Content.Shared.Doors.Components;
using Content.Shared.SprayPainter.Prototypes;
using Content.Shared.SprayPainter; using Content.Shared.SprayPainter;
using Content.Shared.SprayPainter.Components;
using Content.Shared.SprayPainter.Prototypes;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;

View File

@@ -0,0 +1,8 @@
using Robust.Shared.GameStates;
namespace Content.Shared.Botany.Components;
[NetworkedComponent]
public abstract partial class SharedProduceComponent : Component
{
}

View File

@@ -0,0 +1,8 @@
using Robust.Shared.GameStates;
namespace Content.Shared.Botany.Components;
[NetworkedComponent]
public abstract partial class SharedSeedComponent : Component
{
}

View File

@@ -1,9 +1,11 @@
using Content.Shared.Explosion.EntitySystems;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Explosion.EntitySystems; using Content.Shared.Explosion.EntitySystems;
using Robust.Shared.GameStates; using Robust.Shared.GameStates;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.GameStates;
namespace Content.Shared.Explosion.Components.OnTrigger; namespace Content.Shared.Explosion.Components;
/// <summary> /// <summary>
/// Creates a smoke cloud when triggered, with an optional solution to include in it. /// Creates a smoke cloud when triggered, with an optional solution to include in it.

View File

@@ -1,6 +1,5 @@
namespace Content.Shared.Explosion.EntitySystems; namespace Content.Shared.Explosion.EntitySystems;
public abstract class SharedSmokeOnTriggerSystem : EntitySystem public abstract class SharedSmokeOnTriggerSystem : EntitySystem
{ {
} }

View File

@@ -1,5 +1,4 @@
using Robust.Shared.GameStates; using Robust.Shared.GameStates;
namespace Content.Shared.Flash.Components; namespace Content.Shared.Flash.Components;
/// <summary> /// <summary>

View File

@@ -1,7 +1,8 @@
using Content.Server.Light.EntitySystems; using Content.Shared.Light.EntitySystems;
using Content.Shared.Storage; using Content.Shared.Storage;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Containers; using Robust.Shared.Containers;
using Robust.Shared.GameStates;
namespace Content.Server.Light.Components; namespace Content.Server.Light.Components;
@@ -9,7 +10,7 @@ namespace Content.Server.Light.Components;
/// Device that allows user to quikly change bulbs in <see cref="PoweredLightComponent"/> /// Device that allows user to quikly change bulbs in <see cref="PoweredLightComponent"/>
/// Can be reloaded by new light tubes or light bulbs /// Can be reloaded by new light tubes or light bulbs
/// </summary> /// </summary>
[RegisterComponent, Access(typeof(LightReplacerSystem))] [RegisterComponent, NetworkedComponent, Access(typeof(SharedLightReplacerSystem))]
public sealed partial class LightReplacerComponent : Component public sealed partial class LightReplacerComponent : Component
{ {
[DataField("sound")] [DataField("sound")]

View File

@@ -0,0 +1,5 @@
namespace Content.Shared.Light.EntitySystems;
public abstract class SharedLightReplacerSystem : EntitySystem
{
}

View File

@@ -1,6 +1,8 @@
namespace Content.Server.Mousetrap; using Robust.Shared.GameStates;
[RegisterComponent] namespace Content.Shared.Mousetrap;
[RegisterComponent, NetworkedComponent]
public sealed partial class MousetrapComponent : Component public sealed partial class MousetrapComponent : Component
{ {
[ViewVariables] [ViewVariables]

View File

@@ -1,9 +1,10 @@
using Content.Server.Nutrition.EntitySystems; using Content.Shared.Nutrition.EntitySystems;
using Robust.Shared.Audio; 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 public sealed partial class UtensilComponent : Component
{ {
[DataField("types")] [DataField("types")]

View File

@@ -0,0 +1,5 @@
namespace Content.Shared.Nutrition.EntitySystems;
public abstract class SharedUtensilSystem : EntitySystem
{
}

View File

@@ -1,8 +1,9 @@
using Robust.Shared.Audio; 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 public sealed partial class SprayPainterComponent : Component
{ {
[DataField("spraySound")] [DataField("spraySound")]

View File

@@ -179,7 +179,7 @@
- SmokeOnTrigger - SmokeOnTrigger
- Flash - Flash
- Handcuff - Handcuff
- RangedMagazine - BallisticAmmoProvider
- Ammo - Ammo
- type: ItemMapper - type: ItemMapper
mapLayers: mapLayers:
@@ -221,7 +221,7 @@
- WetFloorSign - WetFloorSign
- HolosignProjector - HolosignProjector
- Plunger - Plunger
- LightReplacer - JanicartKeys
components: components:
- LightReplacer - LightReplacer
- type: ItemMapper - type: ItemMapper

View File

@@ -329,7 +329,7 @@
lightreplacer_slot: lightreplacer_slot:
name: janitorial-trolley-slot-component-slot-name-lightreplacer name: janitorial-trolley-slot-component-slot-name-lightreplacer
whitelist: whitelist:
tags: components:
- LightReplacer - LightReplacer
priority: 6 priority: 6
spraybottle_slot: spraybottle_slot:

View File

@@ -17,7 +17,6 @@
amount: 5 amount: 5
- type: Tag - type: Tag
tags: tags:
- LightReplacer
- DroneUsable - DroneUsable
- type: StaticPrice - type: StaticPrice
price: 100 price: 100

View File

@@ -14,9 +14,6 @@
- key: enum.SprayPainterUiKey.Key - key: enum.SprayPainterUiKey.Key
type: SprayPainterBoundUserInterface type: SprayPainterBoundUserInterface
- type: SprayPainter - type: SprayPainter
whitelist:
tags:
- PaintableAirlock
colorPalette: colorPalette:
red: '#FF1212FF' red: '#FF1212FF'
yellow: '#B3A234FF' yellow: '#B3A234FF'

View File

@@ -186,6 +186,7 @@
shape: shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 2 radius: 2
repeating: true
- type: Anchorable - type: Anchorable
- type: Sprite - type: Sprite
sprite: Objects/Weapons/pflash.rsi sprite: Objects/Weapons/pflash.rsi

View File

@@ -713,9 +713,6 @@
- type: Tag - type: Tag
id: Lemon id: Lemon
- type: Tag
id: LightReplacer
- type: Tag - type: Tag
id: Lime id: Lime
@@ -856,9 +853,6 @@
- type: Tag - type: Tag
id: Payload # for grenade/bomb crafting id: Payload # for grenade/bomb crafting
- type: Tag
id: PaintableAirlock
- type: Tag - type: Tag
id: Pancake id: Pancake