From: Red <96445749+TheShuEd@users.noreply.github.com> Date: Tue, 17 Jun 2025 00:30:43 +0000 (+0300) Subject: Spider web visuals update (#38175) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=52cc834a0e185359e8ead7458b30a7e0e3d65094;p=space-station-14.git Spider web visuals update (#38175) * web update * Update Resources/Prototypes/Entities/Structures/spider_web.yml Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * Update Resources/Prototypes/Entities/Structures/spider_web.yml Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * review --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> --- diff --git a/Content.Shared/Spider/SharedSpiderSystem.cs b/Content.Shared/Spider/SharedSpiderSystem.cs index 33473303aa..47b0dff763 100644 --- a/Content.Shared/Spider/SharedSpiderSystem.cs +++ b/Content.Shared/Spider/SharedSpiderSystem.cs @@ -1,31 +1,20 @@ using Content.Shared.Actions; -using Robust.Shared.Network; -using Robust.Shared.Random; namespace Content.Shared.Spider; public abstract class SharedSpiderSystem : EntitySystem { [Dependency] private readonly SharedActionsSystem _action = default!; - [Dependency] private readonly IRobustRandom _robustRandom = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnWebStartup); } private void OnInit(EntityUid uid, SpiderComponent component, MapInitEvent args) { _action.AddAction(uid, ref component.Action, component.WebAction, uid); } - - private void OnWebStartup(EntityUid uid, SpiderWebObjectComponent component, ComponentStartup args) - { - // TODO dont use this. use some general random appearance system - _appearance.SetData(uid, SpiderWebVisuals.Variant, _robustRandom.Next(1, 3)); - } } diff --git a/Content.Shared/Spider/SpiderWebVisualsComponent.cs b/Content.Shared/Spider/SpiderWebVisualsComponent.cs deleted file mode 100644 index 2d6fb58815..0000000000 --- a/Content.Shared/Spider/SpiderWebVisualsComponent.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Spider; - -[Serializable, NetSerializable] -public enum SpiderWebVisuals -{ - Variant -} diff --git a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml deleted file mode 100644 index 8dbab8c45f..0000000000 --- a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml +++ /dev/null @@ -1,172 +0,0 @@ -- type: entity - id: SpiderWeb - name: spider web - description: It's stringy and sticky. - placement: - mode: SnapgridCenter - snap: - - Wall - components: - - type: MeleeSound - soundGroups: - Brute: - path: - "/Audio/Weapons/slash.ogg" - - type: Sprite - sprite: Objects/Misc/spiderweb.rsi - layers: - - state: spider_web_1 - map: ["spiderWebLayer"] - drawdepth: WallMountedItems - - type: Appearance - - type: GenericVisualizer - visuals: - enum.SpiderWebVisuals.Variant: - spiderWebLayer: - 1: {state: spider_web_1} - 2: {state: spider_web_2} - - type: Clickable - - type: Transform - anchored: true - - type: Physics - - type: Fixtures - fixtures: - fix1: - hard: false - density: 7 - shape: - !type:PhysShapeAabb - bounds: "-0.5,-0.5,0.5,0.5" - layer: - - MidImpassable - - type: Damageable - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: # Excess damage, don't spawn entities - !type:DamageTrigger - damage: 50 - behaviors: - - !type:DoActsBehavior - acts: ["Destruction"] - - trigger: - !type:DamageTrigger - damage: 10 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - !type:SpawnEntitiesBehavior - spawn: - MaterialWebSilk: - min: 0 - max: 1 - - type: Temperature - heatDamage: - types: - Heat: 5 - coldDamage: {} - coldDamageThreshold: 0 - - type: Flammable - fireSpread: true - damage: - types: - Heat: 5 - - type: Reactive - groups: - Flammable: [Touch] - Extinguish: [Touch] - - type: SpiderWebObject - - type: SpeedModifierContacts - walkSpeedModifier: 0.5 - sprintSpeedModifier: 0.5 - ignoreWhitelist: - components: - - IgnoreSpiderWeb - -- type: entity - id: SpiderWebClown - name: clown spider web - description: It's stringy and slippy. - placement: - mode: SnapgridCenter - snap: - - Wall - components: - - type: MeleeSound - soundGroups: - Brute: - path: - "/Audio/Weapons/slash.ogg" - - type: Sprite - sprite: Objects/Misc/spiderweb.rsi - layers: - - state: spider_web_clown_1 - map: ["spiderWebLayer"] - drawdepth: WallMountedItems - - type: Appearance - - type: GenericVisualizer - visuals: - enum.SpiderWebVisuals.Variant: - spiderWebLayer: - 1: {state: spider_web_clown_1} - 2: {state: spider_web_clown_2} - - type: Clickable - - type: Transform - anchored: true - - type: Slippery - - type: StepTrigger - intersectRatio: 0.2 - - type: Physics - - type: Fixtures - fixtures: - slips: - shape: - !type:PhysShapeAabb - bounds: "-0.4,-0.3,0.4,0.3" - hard: false - layer: - - SlipLayer - fix1: - shape: - !type:PhysShapeAabb - bounds: "-0.4,-0.3,0.4,0.3" - density: 1000 - mask: - - ItemMask - - type: Damageable - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 10 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Temperature - heatDamage: - types: - Heat: 5 - coldDamage: {} - coldDamageThreshold: 0 - - type: Flammable - fireSpread: true - damage: - types: - Heat: 5 - - type: Reactive - groups: - Flammable: [Touch] - Extinguish: [Touch] - - type: SpiderWebObject - - type: FlavorProfile - flavors: - - sweet - - type: Food - delay: 2 - - type: SolutionContainerManager - solutions: - food: - reagents: - - ReagentId: Sugar - Quantity: 2 diff --git a/Resources/Prototypes/Entities/Structures/spider_web.yml b/Resources/Prototypes/Entities/Structures/spider_web.yml new file mode 100644 index 0000000000..962b5adbbd --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/spider_web.yml @@ -0,0 +1,137 @@ +- type: entity + id: SpiderWebBase + abstract: true + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: PlacementReplacement + key: web + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Sprite + sprite: Structures/floor_web.rsi + drawdepth: WallMountedItems + - type: Appearance + - type: Clickable + - type: Transform + anchored: true + - type: Physics + - type: Damageable + damageModifierSet: Wood + - type: Temperature + heatDamage: + types: + Heat: 5 + coldDamage: {} + coldDamageThreshold: 0 + - type: Flammable + fireSpread: true + damage: + types: + Heat: 5 + - type: Reactive + groups: + Flammable: [Touch] + Extinguish: [Touch] + - type: SpiderWebObject + - type: IconSmooth + key: web + additionalKeys: + - walls + base: web_ + +- type: entity + id: SpiderWeb + parent: SpiderWebBase + name: spider web + description: It's stringy and sticky. + components: + - type: Sprite + color: "#ffffffdd" + - type: Fixtures + fixtures: + fix1: + hard: false + density: 7 + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + layer: + - MidImpassable + - type: Destructible + thresholds: + - trigger: # Excess damage, don't spawn entities + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSilk: + min: 0 + max: 1 + - type: SpeedModifierContacts + walkSpeedModifier: 0.5 + sprintSpeedModifier: 0.5 + ignoreWhitelist: + components: + - IgnoreSpiderWeb + +- type: entity + id: SpiderWebClown + parent: SpiderWebBase + name: clown spider web + description: It's stringy and slippy. + components: + - type: Sprite + color: "#ffa3fc" + - type: Slippery + - type: StepTrigger + intersectRatio: 0.2 + - type: Fixtures + fixtures: + slips: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.4" + hard: false + layer: + - SlipLayer + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.4" + density: 1000 + mask: + - ItemMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: FlavorProfile + flavors: + - sweet + - type: Food + delay: 2 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Sugar + Quantity: 2 diff --git a/Resources/Textures/Objects/Misc/spiderweb.rsi/meta.json b/Resources/Textures/Objects/Misc/spiderweb.rsi/meta.json deleted file mode 100644 index e89ad66d45..0000000000 --- a/Resources/Textures/Objects/Misc/spiderweb.rsi/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation/commit/788b2576cd9511ced86e74222b6395fd3ef9affe", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "spider_web_1" - }, - { - "name": "spider_web_clown_1" - }, - { - "name": "spider_web_clown_2" - }, - { - "name": "spider_web_2" - } - ] -} \ No newline at end of file diff --git a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_1.png b/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_1.png deleted file mode 100644 index e86c5ad4a1..0000000000 Binary files a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_1.png and /dev/null differ diff --git a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_2.png b/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_2.png deleted file mode 100644 index 949dc46083..0000000000 Binary files a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_2.png and /dev/null differ diff --git a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_1.png b/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_1.png deleted file mode 100644 index e96ed327c8..0000000000 Binary files a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_1.png and /dev/null differ diff --git a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_2.png b/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_2.png deleted file mode 100644 index 91931c7d8f..0000000000 Binary files a/Resources/Textures/Objects/Misc/spiderweb.rsi/spider_web_clown_2.png and /dev/null differ diff --git a/Resources/Textures/Structures/floor_web.rsi/full.png b/Resources/Textures/Structures/floor_web.rsi/full.png new file mode 100644 index 0000000000..db5ba2c374 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/full.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/meta.json b/Resources/Textures/Structures/floor_web.rsi/meta.json new file mode 100644 index 0000000000..09f3ae17aa --- /dev/null +++ b/Resources/Textures/Structures/floor_web.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by TheShuEd (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "web_0", + "directions": 4 + }, + { + "name": "web_1", + "directions": 4 + }, + { + "name": "web_2", + "directions": 4 + }, + { + "name": "web_3", + "directions": 4 + }, + { + "name": "web_4", + "directions": 4 + }, + { + "name": "web_5", + "directions": 4 + }, + { + "name": "web_6", + "directions": 4 + }, + { + "name": "web_7", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/floor_web.rsi/web_0.png b/Resources/Textures/Structures/floor_web.rsi/web_0.png new file mode 100644 index 0000000000..e381947fe8 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_0.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_1.png b/Resources/Textures/Structures/floor_web.rsi/web_1.png new file mode 100644 index 0000000000..45608590de Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_1.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_2.png b/Resources/Textures/Structures/floor_web.rsi/web_2.png new file mode 100644 index 0000000000..e381947fe8 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_2.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_3.png b/Resources/Textures/Structures/floor_web.rsi/web_3.png new file mode 100644 index 0000000000..4b0572a914 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_3.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_4.png b/Resources/Textures/Structures/floor_web.rsi/web_4.png new file mode 100644 index 0000000000..df4405eddc Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_4.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_5.png b/Resources/Textures/Structures/floor_web.rsi/web_5.png new file mode 100644 index 0000000000..fd7439262d Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_5.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_6.png b/Resources/Textures/Structures/floor_web.rsi/web_6.png new file mode 100644 index 0000000000..ec22584fb8 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_6.png differ diff --git a/Resources/Textures/Structures/floor_web.rsi/web_7.png b/Resources/Textures/Structures/floor_web.rsi/web_7.png new file mode 100644 index 0000000000..3979256d13 Binary files /dev/null and b/Resources/Textures/Structures/floor_web.rsi/web_7.png differ