From ef3a02397a77274c9a2f512d0048dbf7c5e82a77 Mon Sep 17 00:00:00 2001 From: EmoGarbage404 <98561806+EmoGarbage404@users.noreply.github.com> Date: Tue, 28 Jun 2022 06:49:26 -0400 Subject: [PATCH] Potted Plants Cleanup (#9196) * pray for me * yippee * collision fix --- .../Components/RandomPottedPlantComponent.cs | 17 -- .../Plants/Systems/RandomPottedPlantSystem.cs | 35 --- .../Markers/Spawners/Random/pottedplants.yml | 55 +++++ .../Structures/Furniture/potted_plants.yml | 219 ++++++++++++++++-- 4 files changed, 254 insertions(+), 72 deletions(-) delete mode 100644 Content.Server/Plants/Components/RandomPottedPlantComponent.cs delete mode 100644 Content.Server/Plants/Systems/RandomPottedPlantSystem.cs create mode 100644 Resources/Prototypes/Entities/Markers/Spawners/Random/pottedplants.yml diff --git a/Content.Server/Plants/Components/RandomPottedPlantComponent.cs b/Content.Server/Plants/Components/RandomPottedPlantComponent.cs deleted file mode 100644 index 6e753414a0..0000000000 --- a/Content.Server/Plants/Components/RandomPottedPlantComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Content.Server.Plants.Systems; - -namespace Content.Server.Plants.Components -{ - [RegisterComponent] - [Access(typeof(RandomPottedPlantSystem))] - public sealed class RandomPottedPlantComponent : Component - { - [ViewVariables(VVAccess.ReadOnly)] - [DataField("selected")] - public string? State; - - [ViewVariables(VVAccess.ReadOnly)] - [DataField("plastic")] - public bool Plastic; - } -} diff --git a/Content.Server/Plants/Systems/RandomPottedPlantSystem.cs b/Content.Server/Plants/Systems/RandomPottedPlantSystem.cs deleted file mode 100644 index 81ed21c922..0000000000 --- a/Content.Server/Plants/Systems/RandomPottedPlantSystem.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Content.Server.Plants.Components; -using Robust.Server.GameObjects; -using Robust.Shared.Random; - -namespace Content.Server.Plants.Systems -{ - public sealed class RandomPottedPlantSystem : EntitySystem - { - [Dependency] private readonly IRobustRandom _random = default!; - - private static readonly string[] RegularPlantStates = - { - "plant-01", "plant-02", "plant-03", "plant-04", "plant-05", - "plant-06", "plant-07", "plant-08", "plant-09", "plant-10", - "plant-11", "plant-12", "plant-13", "plant-14", "plant-15", - "plant-16", "plant-17", "plant-18", "plant-19", "plant-20", - "plant-21", "plant-22", "plant-23", "plant-24", "applebush" - }; - private static readonly string[] PlasticPlantStates = - { - "plant-26", "plant-27", "plant-28", "plant-29" - }; - - public override void Initialize() - { - SubscribeLocalEvent(OnMapInit); - } - - private void OnMapInit(EntityUid uid, RandomPottedPlantComponent component, MapInitEvent args) - { - component.State ??= _random.Pick(component.Plastic ? PlasticPlantStates : RegularPlantStates); - Comp(uid).LayerSetState(0, component.State); - } - } -} diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/pottedplants.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/pottedplants.yml new file mode 100644 index 0000000000..2bfef0a09a --- /dev/null +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/pottedplants.yml @@ -0,0 +1,55 @@ +- type: entity + parent: MarkerBase + id: PottedPlantRandom + name: random potted plant spawner + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Furniture/potted_plants.rsi/random.png + - type: RandomSpawner + offset: 0 + prototypes: + - PottedPlant0 + - PottedPlant1 + - PottedPlant2 + - PottedPlant3 + - PottedPlant4 + - PottedPlant5 + - PottedPlant6 + - PottedPlant7 + - PottedPlant8 + - PottedPlant10 + - PottedPlant11 + - PottedPlant12 + - PottedPlant13 + - PottedPlant14 + - PottedPlant15 + - PottedPlant16 + - PottedPlant17 + - PottedPlant18 + - PottedPlant19 + - PottedPlant20 + - PottedPlant21 + - PottedPlant22 + - PottedPlant23 + - PottedPlant24 + chance: 1 + +- type: entity + parent: MarkerBase + id: PottedPlantRandomPlastic + name: random plastic potted plant spawner + components: + - type: Sprite + layers: + - state: red + - texture: Structures/Furniture/potted_plants.rsi/plant-26.png + - type: RandomSpawner + offset: 0 + prototypes: + - PottedPlant26 + - PottedPlant27 + - PottedPlant28 + - PottedPlant29 + chance: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml b/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml index 7d15dcd024..2f30188dad 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml @@ -1,6 +1,8 @@ - type: entity id: PottedPlantBase parent: BaseStructureDynamic + name: potted plant + description: A little bit of nature contained in a pot. abstract: true components: - type: Transform @@ -12,13 +14,10 @@ fixtures: - shape: !type:PhysShapeCircle - radius: 0.2 + radius: 0.1 mass: 25 mask: - Impassable - layer: - - Opaque - - BulletImpassable - type: Sprite drawdepth: Overdoors offset: "0.0,0.3" @@ -42,37 +41,70 @@ path: /Audio/Effects/plant_rustle.ogg - type: entity - id: PottedPlantRandom + id: PottedPlant0 parent: PottedPlantBase - name: potted plant - description: A little bit of nature contained in a pot. components: - type: Sprite - state: random - - type: RandomPottedPlant + state: applebush #whoever named this texture in the rsi sucks - type: entity - id: PottedPlantRandomPlastic + id: PottedPlant1 parent: PottedPlantBase - name: plastic potted plant - description: A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch. components: - type: Sprite - state: plant-26 - - type: RandomPottedPlant - plastic: true + state: plant-01 - type: entity - id: PottedPlantRD + id: PottedPlant2 parent: PottedPlantBase - name: "RD's potted plant" - description: "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." components: - type: Sprite - state: plant-25 + state: plant-02 - type: entity - id: PottedPlantBioluminscent + id: PottedPlant3 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-03 + +- type: entity + id: PottedPlant4 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-04 + +- type: entity + id: PottedPlant5 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-05 + +- type: entity + id: PottedPlant6 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-06 + +- type: entity + id: PottedPlant7 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-07 + +- type: entity + id: PottedPlant8 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-08 + +- type: entity + id: PottedPlantBioluminscent #PottedPlant9 but i didn't want map conflicts parent: PottedPlantBase name: "bioluminescent potted plant" description: "It produces light!" @@ -82,3 +114,150 @@ - type: PointLight radius: 2 color: "#2cb2e8" + +- type: entity + id: PottedPlant10 + parent: PottedPlantBase + description: A pretty piece of nature contained in a pot. + components: + - type: Sprite + state: plant-10 + +- type: entity + id: PottedPlant11 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-11 + +- type: entity + id: PottedPlant12 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-12 + +- type: entity + id: PottedPlant13 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-13 + +- type: entity + id: PottedPlant14 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-14 + +- type: entity + id: PottedPlant15 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-15 + +- type: entity + id: PottedPlant16 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-16 + +- type: entity + id: PottedPlant17 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-17 + +- type: entity + id: PottedPlant18 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-18 + +- type: entity + id: PottedPlant19 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-19 + +- type: entity + id: PottedPlant20 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-20 + +- type: entity + id: PottedPlant21 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-21 + +- type: entity + id: PottedPlant22 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-22 + +- type: entity + id: PottedPlant23 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-23 + +- type: entity + id: PottedPlant24 + parent: PottedPlantBase + components: + - type: Sprite + state: plant-24 + +- type: entity + id: PottedPlantRD #PottedPlant25 + parent: PottedPlantBase + name: "RD's potted plant" + description: "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." + components: + - type: Sprite + state: plant-25 + +#these are all the plastic plants. They inherit from the first one because they don't have +#enough differences to warrant getting a unique abstract prototype. It's just the name and description. +- type: entity + id: PottedPlant26 + parent: PottedPlantBase + name: plastic potted plant + description: A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch. + components: + - type: Sprite + state: plant-26 + +- type: entity + id: PottedPlant27 + parent: PottedPlant26 + components: + - type: Sprite + state: plant-27 + +- type: entity + id: PottedPlant28 + parent: PottedPlant26 + components: + - type: Sprite + state: plant-28 + +- type: entity + id: PottedPlant29 + parent: PottedPlant26 + components: + - type: Sprite + state: plant-29 \ No newline at end of file