From 29d02a374067c86af3a64b51acbd783486d53a5e Mon Sep 17 00:00:00 2001 From: Swept Date: Fri, 26 Mar 2021 01:51:26 +0000 Subject: [PATCH] Attempts to fix all physics bugs at once (#3610) * Fixed Rack/Shelf * Fixes bookshelf, bed * Placeable for beds for bedsheets * Bunch of Physics changes, ask metalgearsloth about em' * More modifications * More * Other stuff * Organizes entities yaml a little bit * Something new * Fixed, happy with the state of this rn * A * A * Ye * E * Done for now... * Applied Reviws * Changes * Fix the robust commit * Fixes tests? * E Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Metal Gear Sloth --- .../Components/Movement/ClimbUnitTest.cs | 1 + .../Components/RandomSpriteStateComponent.cs | 2 +- .../Buckle/SharedBuckleComponent.cs | 2 +- .../Movement/SharedClimbingComponent.cs | 12 +- .../Movement/SharedPlayerMobMoverComponent.cs | 13 +- Resources/Maps/saltern.yml | 10 +- .../Constructible/Doors/airlock_base.yml | 6 +- .../Entities/Constructible/Doors/firelock.yml | 6 +- .../Constructible/Doors/firelock_frame.yml | 60 ++- .../Entities/Constructible/Furniture/beds.yml | 19 +- .../Constructible/Furniture/bookshelf.yml | 73 +--- .../Constructible/Furniture/carpets.yml | 14 +- .../Constructible/Furniture/instruments.yml | 38 +- .../Constructible/Furniture/pilot_chair.yml | 17 +- .../Constructible/Furniture/potted_plants.yml | 28 +- .../Constructible/Furniture/seats.yml | 6 +- .../Constructible/Furniture/storage.yml | 56 +-- .../Constructible/Furniture/tables.yml | 36 +- .../Entities/Constructible/Ground/kitchen.yml | 18 +- .../Specific/Cooking/microwave.yml | 5 +- .../Specific/Cooking/reagent_grinder.yml | 5 +- .../Constructible/Specific/barricades.yml | 13 +- .../Constructible/Specific/cargo_telepad.yml | 12 +- .../Constructible/Storage/Closets/closet.yml | 9 +- .../Storage/Crates/crate_base.yml | 5 +- .../Storage/StorageTanks/base_tank.yml | 9 +- .../Storage/StorageTanks/fuel_tank.yml | 18 +- .../Storage/StorageTanks/water_tank.yml | 4 +- .../Entities/Constructible/Walls/asteroid.yml | 14 +- .../Constructible/Walls/atmos_plaque.yml | 7 - .../Entities/Constructible/Walls/bar_sign.yml | 14 +- .../Entities/Constructible/Walls/girder.yml | 25 +- .../Entities/Constructible/Walls/low_wall.yml | 15 +- .../Entities/Constructible/Walls/mirror.yml | 11 +- .../Entities/Constructible/Walls/signs.yml | 360 +++++------------ .../Entities/Constructible/Walls/walls.yml | 42 +- .../Entities/Constructible/Walls/windows.yml | 6 +- .../Constructible/Watercloset/toilet.yml | 2 + .../Entities/Constructible/base.yml | 46 +++ .../Prototypes/Entities/Mobs/NPCs/carp.yml | 1 - .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 1 - .../Entities/Mobs/Species/human.yml | 2 +- .../Entities/Mobs/Species/slime.yml | 1 - .../Entities/Objects/Fun/instruments.yml | 12 + .../Entities/Objects/{ => Misc}/tiles.yml | 0 .../Entities/Objects/{ => Tools}/radio.yml | 0 .../Objects/{base_item.yml => base.yml} | 4 +- .../Constructible/Misc/bookshelf.rsi/base.png | Bin 0 -> 154 bytes .../Misc/bookshelf.rsi/book-0.png | Bin 154 -> 94 bytes .../Misc/bookshelf.rsi/book-1.png | Bin 257 -> 269 bytes .../Misc/bookshelf.rsi/book-2.png | Bin 320 -> 355 bytes .../Misc/bookshelf.rsi/book-3.png | Bin 369 -> 466 bytes .../Misc/bookshelf.rsi/book-4.png | Bin 384 -> 506 bytes .../Misc/bookshelf.rsi/book-5.png | Bin 441 -> 617 bytes .../Misc/bookshelf.rsi/meta.json | 51 +-- .../Misc/furniture.rsi/meta.json | 380 ++---------------- .../Misc/furniture.rsi/onestar_chair_grey.png | Bin 591 -> 0 bytes .../Misc/furniture.rsi/onestar_chair_red.png | Bin 591 -> 0 bytes 58 files changed, 383 insertions(+), 1108 deletions(-) create mode 100644 Resources/Prototypes/Entities/Constructible/base.yml rename Resources/Prototypes/Entities/Objects/{ => Misc}/tiles.yml (100%) rename Resources/Prototypes/Entities/Objects/{ => Tools}/radio.yml (100%) rename Resources/Prototypes/Entities/Objects/{base_item.yml => base.yml} (85%) create mode 100644 Resources/Textures/Constructible/Misc/bookshelf.rsi/base.png delete mode 100644 Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_grey.png delete mode 100644 Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_red.png diff --git a/Content.IntegrationTests/Tests/GameObjects/Components/Movement/ClimbUnitTest.cs b/Content.IntegrationTests/Tests/GameObjects/Components/Movement/ClimbUnitTest.cs index 3dfe930761..25a664674f 100644 --- a/Content.IntegrationTests/Tests/GameObjects/Components/Movement/ClimbUnitTest.cs +++ b/Content.IntegrationTests/Tests/GameObjects/Components/Movement/ClimbUnitTest.cs @@ -29,6 +29,7 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.Movement id: TableDummy components: - type: Climbable + - type: Physics "; [Test] diff --git a/Content.Server/GameObjects/Components/RandomSpriteStateComponent.cs b/Content.Server/GameObjects/Components/RandomSpriteStateComponent.cs index ce8a1b488f..fefef935a8 100644 --- a/Content.Server/GameObjects/Components/RandomSpriteStateComponent.cs +++ b/Content.Server/GameObjects/Components/RandomSpriteStateComponent.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.IoC; diff --git a/Content.Shared/GameObjects/Components/Buckle/SharedBuckleComponent.cs b/Content.Shared/GameObjects/Components/Buckle/SharedBuckleComponent.cs index 9821a8784c..7afcd41e82 100644 --- a/Content.Shared/GameObjects/Components/Buckle/SharedBuckleComponent.cs +++ b/Content.Shared/GameObjects/Components/Buckle/SharedBuckleComponent.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System; using Content.Shared.GameObjects.Components.Strap; using Content.Shared.GameObjects.EntitySystems; diff --git a/Content.Shared/GameObjects/Components/Movement/SharedClimbingComponent.cs b/Content.Shared/GameObjects/Components/Movement/SharedClimbingComponent.cs index 7cb29e495d..bcd645bf12 100644 --- a/Content.Shared/GameObjects/Components/Movement/SharedClimbingComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/SharedClimbingComponent.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System; using Content.Shared.GameObjects.EntitySystems.ActionBlocker; using Content.Shared.Physics; @@ -22,7 +22,7 @@ namespace Content.Shared.GameObjects.Components.Movement foreach (var entity in Body.GetBodiesIntersecting()) { - if ((entity.CollisionLayer & (int) CollisionGroup.VaultImpassable) != 0) return true; + if ((entity.CollisionLayer & (int) CollisionGroup.SmallImpassable) != 0) return true; } return false; @@ -70,14 +70,14 @@ namespace Content.Shared.GameObjects.Components.Movement if (_isClimbing == value) return; _isClimbing = value; - ToggleVaultPassable(value); + ToggleSmallPassable(value); } } protected bool _isClimbing; // TODO: Layers need a re-work - private void ToggleVaultPassable(bool value) + private void ToggleSmallPassable(bool value) { // Hope the mob has one fixture if (Body == null || Body.Deleted) return; @@ -86,11 +86,11 @@ namespace Content.Shared.GameObjects.Components.Movement { if (value) { - fixture.CollisionMask &= ~(int) CollisionGroup.VaultImpassable; + fixture.CollisionMask &= ~(int) CollisionGroup.SmallImpassable; } else { - fixture.CollisionMask |= (int) CollisionGroup.VaultImpassable; + fixture.CollisionMask |= (int) CollisionGroup.SmallImpassable; } } } diff --git a/Content.Shared/GameObjects/Components/Movement/SharedPlayerMobMoverComponent.cs b/Content.Shared/GameObjects/Components/Movement/SharedPlayerMobMoverComponent.cs index e541f038f8..ebb762020f 100644 --- a/Content.Shared/GameObjects/Components/Movement/SharedPlayerMobMoverComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/SharedPlayerMobMoverComponent.cs @@ -18,7 +18,7 @@ namespace Content.Shared.GameObjects.Components.Movement /// [RegisterComponent] [ComponentReference(typeof(IMobMoverComponent))] - public class SharedPlayerMobMoverComponent : Component, IMobMoverComponent, ICollideSpecial + public class SharedPlayerMobMoverComponent : Component, IMobMoverComponent { public override string Name => "PlayerMobMover"; public override uint? NetID => ContentNetIDs.PLAYER_MOB_MOVER; @@ -112,17 +112,6 @@ namespace Content.Shared.GameObjects.Components.Movement PushStrength = playerMoverState.PushStrength; } - bool ICollideSpecial.PreventCollide(IPhysBody collidedWith) - { - // Don't collide with other mobs - // unless they have combat mode on - return false; //collidedWith.Entity.HasComponent(); - /* && - (!Owner.TryGetComponent(out SharedCombatModeComponent? ownerCombat) || !ownerCombat.IsInCombatMode) && - (!collidedWith.Entity.TryGetComponent(out SharedCombatModeComponent? otherCombat) || !otherCombat.IsInCombatMode); - */ - } - [Serializable, NetSerializable] private sealed class PlayerMobMoverComponentState : ComponentState { diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index c342d44050..0376904232 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -887,7 +887,7 @@ entities: ents: [] type: ContainerContainer - uid: 106 - type: WeldingFuelTank + type: WeldingFuelTankFull components: - rot: 1.5707963705062866 rad pos: -1.5,-11.5 @@ -18076,7 +18076,7 @@ entities: parent: 853 type: Transform - uid: 1543 - type: WeldingFuelTank + type: WeldingFuelTankFull components: - pos: 33.5,12.5 parent: 853 @@ -24482,21 +24482,21 @@ entities: parent: 853 type: Transform - uid: 2439 - type: WeldingFuelTank + type: WeldingFuelTankFull components: - rot: 4.371139006309477E-08 rad pos: -26.5,11.5 parent: 853 type: Transform - uid: 2440 - type: WeldingFuelTank + type: WeldingFuelTankFull components: - rot: 4.371139006309477E-08 rad pos: 35.5,-4.5 parent: 853 type: Transform - uid: 2441 - type: WeldingFuelTank + type: WeldingFuelTankFull components: - rot: 4.371139006309477E-08 rad pos: -15.5,-9.5 diff --git a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml index ec54f10959..efa1485fc5 100644 --- a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml +++ b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml @@ -1,9 +1,9 @@ - type: entity id: Airlock + parent: BaseConstructible name: airlock description: It opens, it closes, and maybe crushes you. components: - - type: Clickable - type: RCDDeconstructWhitelist - type: InteractionOutline - type: Sprite @@ -58,8 +58,6 @@ - type: Airtight fixVacuum: true - type: Occluder - - type: SnapGrid - offset: Center - type: Damageable resistances: metallicResistances - type: Destructible @@ -123,5 +121,3 @@ node: assembly placement: mode: SnapgridCenter - - diff --git a/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml b/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml index 120b64fbe0..805021f7e5 100644 --- a/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml +++ b/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml @@ -1,9 +1,9 @@ - type: entity id: Firelock + parent: BaseConstructible name: firelock description: Apply crowbar. components: - - type: Clickable - type: InteractionOutline - type: Damageable resistances: metallicResistances @@ -74,13 +74,9 @@ fixVacuum: true - type: Occluder enabled: false - - type: SnapGrid - offset: Center - type: Construction graph: Firelock node: Firelock - placement: - mode: SnapgridCenter - type: entity id: FirelockGlass diff --git a/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml b/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml index 8b07e959c9..fd2672d6fa 100644 --- a/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml +++ b/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml @@ -1,36 +1,34 @@ - type: entity id: FirelockFrame + parent: BaseConstructibleDynamic name: Firelock Frame description: That is a firelock frame. components: - - type: Sprite - sprite: Constructible/Structures/Doors/Standard/firelock.rsi - state: frame1 - - type: Construction - graph: Firelock - node: frame1 - - type: Clickable - - type: InteractionOutline - - type: Damageable - resistances: metallicResistances - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 500 - behaviors: - - !type:DoActsBehavior - acts: ["Destruction"] - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.49,-0.49,0.49,0.49" - mask: - - Impassable - layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable + - type: Sprite + sprite: Constructible/Structures/Doors/Standard/firelock.rsi + state: frame1 + - type: Construction + graph: Firelock + node: frame1 + - type: InteractionOutline + - type: Damageable + resistances: metallicResistances + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 500 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Physics + bodyType: Dynamic + mass: 50 + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,0.49" + layer: + - SmallImpassable + mask: + - VaultImpassable diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml b/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml index 80d537afc3..1a32638bf4 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml @@ -1,10 +1,13 @@ - type: entity name: bed id: Bed + parent: BaseConstructible description: This is used to lie in, sleep in or strap on. components: - - type: Clickable - - type: InteractionOutline + # So that you can put bedsheets on beds again. Would be cool to have a tag + # for this so that only bedsheets can be placed. + - type: PlaceableSurface + placeCentered: true - type: Physics mass: 25 bodyType: Static @@ -13,8 +16,6 @@ !type:PhysShapeAabb bounds: "-0.45, -0.45, 0.05, 0.45" mask: - - Impassable - - VaultImpassable - SmallImpassable - type: Sprite sprite: Constructible/Misc/furniture.rsi @@ -32,5 +33,11 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] - placement: - mode: SnapgridCenter + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + MaterialCloth1: + min: 1 + max: 1 diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/bookshelf.yml b/Resources/Prototypes/Entities/Constructible/Furniture/bookshelf.yml index 15e8f09ebc..728aa67d1d 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/bookshelf.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/bookshelf.yml @@ -1,25 +1,23 @@ - type: entity - id: BookshelfBase + id: Bookshelf + parent: BaseConstructible name: "bookshelf" description: Mostly filled with erotica. - abstract: true - placement: - mode: SnapgridCenter components: - - type: Clickable - - type: InteractionOutline - type: Sprite sprite: Constructible/Misc/bookshelf.rsi - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable + layers: + - state: base + - state: book-0 + - type: RandomSpriteState + spriteLayer: 1 + spriteStates: + - book-0 + - book-1 + - book-2 + - book-3 + - book-4 + - book-5 - type: Damageable resistances: metallicResistances - type: Destructible @@ -37,46 +35,3 @@ max: 1 - !type:DoActsBehavior acts: ["Destruction"] - - type: Occluder - -- type: entity - id: Bookshelf0 - parent: BookshelfBase - components: - - type: Sprite - state: book-0 - -- type: entity - id: Bookshelf1 - parent: BookshelfBase - components: - - type: Sprite - state: book-1 - -- type: entity - id: Bookshelf2 - parent: BookshelfBase - components: - - type: Sprite - state: book-2 - -- type: entity - id: Bookshelf3 - parent: BookshelfBase - components: - - type: Sprite - state: book-3 - -- type: entity - id: Bookshelf4 - parent: BookshelfBase - components: - - type: Sprite - state: book-4 - -- type: entity - id: Bookshelf5 - parent: BookshelfBase - components: - - type: Sprite - state: book-5 diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/carpets.yml b/Resources/Prototypes/Entities/Constructible/Furniture/carpets.yml index aee0e16b69..117a2a12e7 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/carpets.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/carpets.yml @@ -1,27 +1,23 @@ - type: entity id: CarpetBase + parent: BaseConstructible description: "Fancy walking surface." abstract: true - placement: - mode: SnapgridCenter components: - - type: Clickable - type: Sprite drawdepth: BelowFloor - type: Icon state: full - - type: SnapGrid - offset: Center - type: IconSmooth key: full base: carpet_ - type: Physics canCollide: false fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - layer: [ Passable ] + - shape: + !type:PhysShapeAabb {} + layer: + - Passable - type: Damageable - type: Destructible thresholds: diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/instruments.yml b/Resources/Prototypes/Entities/Constructible/Furniture/instruments.yml index 596fce5fdd..d4ecbf7ba4 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/instruments.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/instruments.yml @@ -1,26 +1,16 @@ - type: entity name: baseinstrument id: BasePlaceableInstrument + parent: BaseConstructibleDynamic abstract: true - placement: - mode: SnapgridCenter components: - type: Instrument handheld: false - - type: Clickable - type: InteractionOutline - - type: Anchorable - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: [MobMask] - mask: - - Impassable - - MobImpassable - - VaultImpassable - - type: SnapGrid - offset: Center + - type: Rotatable + rotateWhileAnchored: true + - type: Sprite + sprite: Objects/Fun/Instruments/otherinstruments.rsi - type: Damageable resistances: metallicResistances - type: Destructible @@ -45,19 +35,18 @@ - type: Instrument program: 1 - type: Sprite - sprite: Objects/Fun/Instruments/otherinstruments.rsi state: piano + - type: Climbable - type: entity name: minimoog parent: BasePlaceableInstrument id: MinimoogInstrument - description: 'This is a minimoog, like a space piano, but more spacey!' + description: This is a minimoog, like a space piano, but more spacey! components: - type: Instrument program: 81 - type: Sprite - sprite: Objects/Fun/Instruments/otherinstruments.rsi state: minimoog - type: entity @@ -69,17 +58,4 @@ - type: Instrument program: 20 - type: Sprite - sprite: Objects/Fun/Instruments/otherinstruments.rsi state: church_organ - -- type: entity - name: xylophone - parent: BasePlaceableInstrument - id: XylophoneInstrument - description: Rainbow colored glockenspiel. - components: - - type: Instrument - program: 13 - - type: Sprite - sprite: Objects/Fun/Instruments/otherinstruments.rsi - state: xylophone diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/pilot_chair.yml b/Resources/Prototypes/Entities/Constructible/Furniture/pilot_chair.yml index e60e0cf9f1..448f0889cf 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/pilot_chair.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/pilot_chair.yml @@ -1,15 +1,22 @@ - type: entity - name: pilot chair - description: The driver seat of a prestigious battle cruiser. id: PilotSeatChair - placement: - mode: SnapgridCenter + parent: BaseConstructible + name: pilot seat + description: The pilot seat of a prestigious battle cruiser. components: - type: Sprite sprite: Constructible/Misc/furniture.rsi state: shuttle_chair - type: Physics - - type: Clickable + bodyType: Static + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.25,0.5,0.25" + mask: + - Impassable + - VaultImpassable + - SmallImpassable - type: InteractionOutline - type: Damageable resistances: metallicResistances diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml b/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml index bf11e317eb..f2f0936690 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml @@ -1,32 +1,25 @@ - type: entity id: PottedPlantBase + parent: BaseConstructibleDynamic abstract: true components: - - type: Clickable - type: InteractionOutline - type: Physics mass: 25 - bodyType: Static + bodyType: Dynamic fixtures: - shape: !type:PhysShapeAabb bounds: "-0.5, -0.2, 0.5, 0.2" + layer: + - SmallImpassable mask: - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - layer: - - Opaque - - MobImpassable - - VaultImpassable - - SmallImpassable - type: Sprite sprite: Constructible/Misc/potted_plants.rsi - type: PottedPlantHide - type: SecretStash secretPartName: the plant - - type: Anchorable - type: Pullable - type: entity @@ -59,11 +52,16 @@ - type: Sprite state: plant-25 - type: Physics + mass: 25 + bodyType: Dynamic fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.47,-0.25,0.05,0.25" - layer: [ Passable ] + - shape: + !type:PhysShapeAabb + bounds: "-0.47,-0.25,0.05,0.25" + layer: + - SmallImpassable + mask: + - Impassable - type: entity id: PottedPlantBioluminscent diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml b/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml index 5b4485148b..681078a56b 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml @@ -6,10 +6,12 @@ placement: mode: SnapgridCenter components: + - type: Anchorable + snap: true - type: Clickable - type: InteractionOutline - type: Physics - bodyType: Static + bodyType: Dynamic fixtures: - shape: !type:PhysShapeAabb @@ -22,7 +24,6 @@ sprite: Constructible/Misc/furniture.rsi - type: Strap position: Stand - - type: Anchorable - type: Pullable - type: Damageable resistances: metallicResistances @@ -86,7 +87,6 @@ components: - type: Sprite state: bar_stool - color: "white" - type: Physics fixtures: - shape: diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml b/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml index abb550c5e3..22b33f09ab 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml @@ -1,28 +1,30 @@ - type: entity id: Rack name: rack - description: "A rack for storing things on." + description: A rack for storing things on. placement: mode: SnapgridCenter components: - type: Clickable - type: InteractionOutline + - type: PlaceableSurface - type: Sprite sprite: Constructible/Misc/furniture.rsi state: rack - type: Physics - mass: 25 + mass: 50 bodyType: Static fixtures: - shape: !type:PhysShapeAabb - bounds: "-0.4,-0.4,0.4,0.4" + bounds: "-0.3,-0.3,0.3,0.3" layer: - - VaultImpassable + - MobImpassable mask: - - Impassable + - VaultImpassable - type: Pullable - type: Anchorable + snap: true - type: Damageable resistances: metallicResistances - type: Destructible @@ -43,49 +45,9 @@ - type: entity id: Shelf + parent: Rack name: shelf - description: "A shelf for storing things on." - placement: - mode: SnapgridCenter + description: A shelf for storing things on. components: - - type: Clickable - - type: InteractionOutline - type: Sprite - sprite: Constructible/Misc/furniture.rsi state: shelf - - type: Physics - mass: 25 - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.4,-0.4,0.4,0.4" - layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - mask: - - Impassable - - MobImpassable - - VaultImpassable - - type: Pullable - - type: Anchorable - - type: Damageable - resistances: metallicResistances - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 30 - behaviors: - - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg - - !type:SpawnEntitiesBehavior - spawn: - SheetSteel1: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/tables.yml b/Resources/Prototypes/Entities/Constructible/Furniture/tables.yml index 7546e88217..b399dbc3b1 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/tables.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/tables.yml @@ -1,12 +1,12 @@ - type: entity id: TableBase - name: "table" + parent: BaseConstructible + name: table description: A square piece of metal standing on four metal legs. abstract: true - placement: - mode: SnapgridCenter components: - - type: Clickable + - type: Damageable + resistances: metallicResistances - type: PlaceableSurface - type: Sprite netsync: false @@ -16,16 +16,6 @@ - type: IconSmooth key: state base: state_ - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: - - VaultImpassable - mask: - - Impassable - - type: SnapGrid - offset: Center - type: Climbable - type: entity @@ -100,8 +90,6 @@ sprite: Constructible/Structures/Tables/bar.rsi - type: Icon sprite: Constructible/Structures/Tables/bar.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -134,8 +122,6 @@ sprite: Constructible/Structures/Tables/metal.rsi - type: Icon sprite: Constructible/Structures/Tables/metal.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -162,8 +148,6 @@ sprite: Constructible/Structures/Tables/reinforced.rsi - type: Icon sprite: Constructible/Structures/Tables/reinforced.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -193,8 +177,6 @@ sprite: Constructible/Structures/Tables/glass.rsi - type: Icon sprite: Constructible/Structures/Tables/glass.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -224,8 +206,6 @@ sprite: Constructible/Structures/Tables/r_glass.rsi - type: Icon sprite: Constructible/Structures/Tables/r_glass.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -258,8 +238,6 @@ sprite: Constructible/Structures/Tables/wood.rsi - type: Icon sprite: Constructible/Structures/Tables/wood.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -289,8 +267,6 @@ sprite: Constructible/Structures/Tables/carpet.rsi - type: Icon sprite: Constructible/Structures/Tables/carpet.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -323,8 +299,6 @@ sprite: Constructible/Structures/Tables/stone.rsi - type: Icon sprite: Constructible/Structures/Tables/stone.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -346,8 +320,6 @@ sprite: Constructible/Structures/Tables/debug.rsi - type: Icon sprite: Constructible/Structures/Tables/debug.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Constructible/Ground/kitchen.yml b/Resources/Prototypes/Entities/Constructible/Ground/kitchen.yml index 9f26f057b3..625e670d42 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/kitchen.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/kitchen.yml @@ -1,26 +1,15 @@ - type: entity id: KitchenSpike + parent: BaseConstructible name: meat spike description: A spike for collecting meat from animals. - placement: - mode: SnapgridCenter components: - - type: Clickable - type: InteractionOutline - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - mask: - - Impassable - layer: - - MobImpassable - type: Sprite + netsync: false # temp to make clickmask work sprite: Constructible/Misc/kitchen.rsi state: spike - - type: Anchorable - - type: Pullable - type: Damageable - type: Destructible thresholds: @@ -31,3 +20,6 @@ - !type:DoActsBehavior acts: ["Destruction"] - type: KitchenSpike + - type: Anchorable + snap: true + - type: Pullable diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Cooking/microwave.yml b/Resources/Prototypes/Entities/Constructible/Specific/Cooking/microwave.yml index 9feef45338..66d1630218 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/Cooking/microwave.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/Cooking/microwave.yml @@ -27,9 +27,8 @@ !type:PhysShapeAabb bounds: "-0.16,-0.3,0.16,0.3" layer: - - Opaque - - Impassable - - MobImpassable + - SmallImpassable + mask: - VaultImpassable - type: Sprite netsync: false diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Cooking/reagent_grinder.yml b/Resources/Prototypes/Entities/Constructible/Specific/Cooking/reagent_grinder.yml index 26c18fe7be..6ddb1f1e19 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/Cooking/reagent_grinder.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/Cooking/reagent_grinder.yml @@ -26,9 +26,8 @@ !type:PhysShapeAabb bounds: "-0.35,-0.08,0.25,0.15" layer: - - Opaque - - Impassable - - MobImpassable + - SmallImpassable + mask: - VaultImpassable - type: Sprite netsync: false diff --git a/Resources/Prototypes/Entities/Constructible/Specific/barricades.yml b/Resources/Prototypes/Entities/Constructible/Specific/barricades.yml index a2fe7fa1a0..10de58542d 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/barricades.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/barricades.yml @@ -1,7 +1,8 @@ - type: entity id: Barricade + parent: BaseConstructible + name: barricade components: - - type: Clickable - type: InteractionOutline - type: Construction graph: barricade @@ -10,12 +11,9 @@ sprite: Constructible/Structures/barricades.rsi state: barricadewooden - type: Physics - mass: 75 - bodyType: Static fixtures: - shape: - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" + !type:PhysShapeAabb {} layer: - Opaque - Impassable @@ -50,8 +48,3 @@ normalState: 1 Sprite: drawdepth: Overlays - - type: SnapGrid - offset: Edge - placement: - snap: - - Wall diff --git a/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml b/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml index 6d0b4cdfe0..0d05f88aea 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml @@ -1,11 +1,9 @@ - type: entity - name: cargo telepad id: cargoTelepad + parent: BaseConstructibleDynamic + name: cargo telepad description: "Temporary cargo delivery for developing Nanotrasen stations! Warning: destroying this while goods are in transit will lose them forever!" - placement: - mode: SnapgridCenter components: - - type: Clickable - type: InteractionOutline - type: Physics mass: 25 @@ -14,7 +12,8 @@ - shape: !type:PhysShapeAabb bounds: "-0.45, -0.45, 0.00, 0.45" - layer: [ Passable ] + layer: + - Passable - type: Sprite sprite: Constructible/Specific/Cargo/teleporter.rsi state: offline @@ -34,8 +33,5 @@ max: 1 - !type:DoActsBehavior acts: ["Destruction"] - - type: Anchorable - snap: true - - type: Pullable - type: PowerReceiver - type: CargoTelepad diff --git a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml index 017559d927..83e8a98836 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml @@ -1,9 +1,8 @@ - type: entity id: LockerGeneric + parent: BaseConstructibleDynamic name: closet description: A standard-issue Nanotrasen storage unit. - placement: - mode: SnapgridCenter components: - type: Sprite netsync: false @@ -15,14 +14,12 @@ - state: welded visible: false map: ["enum.StorageVisualLayers.Welded"] - - type: Clickable - type: MovedByPressure - type: DamageOnHighSpeedImpact soundHit: /Audio/Effects/bang.ogg - type: InteractionOutline - type: Physics - mass: 50 - bodyType: Dynamic + mass: 25 fixtures: - shape: !type:PhysShapeAabb @@ -54,5 +51,3 @@ state_open: generic_open state_closed: generic_door - type: LoopingSound - - type: Anchorable - - type: Pullable diff --git a/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml b/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml index ea29ed655e..a954ba182f 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml @@ -1,5 +1,6 @@ - type: entity id: CrateGeneric + parent: BaseConstructibleDynamic abstract: true name: crate description: A large container for items. @@ -14,11 +15,9 @@ - state: welded visible: false map: ["enum.StorageVisualLayers.Welded"] - - type: Clickable - type: InteractionOutline - type: Physics mass: 25 - bodyType: Dynamic fixtures: - shape: !type:PhysShapeAabb @@ -51,5 +50,3 @@ state_open: crate_open state_closed: crate_door - type: LoopingSound - - type: Anchorable - - type: Pullable diff --git a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml index 104a6b720c..58bdad382d 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml @@ -1,18 +1,17 @@ - type: entity id: StorageTank + parent: BaseConstructibleDynamic name: storage tank description: "A liquids storage tank." abstract: true components: - - type: Clickable - type: InteractionOutline - type: Physics mass: 100 - bodyType: Dynamic fixtures: - shape: !type:PhysShapeAabb - bounds: "-0.5,-0.5,0.5,0.5" + bounds: "-0.4,-0.4,0.4,0.4" mask: - Impassable - MobImpassable @@ -38,7 +37,3 @@ maxVol: 1500 caps: Drainable - type: ReagentTank - - placement: - snap: - - Wall diff --git a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/fuel_tank.yml b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/fuel_tank.yml index f66808039f..da1237f07a 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/fuel_tank.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/fuel_tank.yml @@ -1,12 +1,22 @@ - type: entity - parent: StorageTank id: WeldingFuelTank + parent: StorageTank name: fuel tank - description: A storage tank containing welding fuel. + suffix: Empty + description: A fuel tank. It is used to store high amounts of fuel. components: - type: Sprite sprite: Constructible/Misc/tanks.rsi state: fueltank + - type: ReagentTank + tankType: Fuel + +- type: entity + id: WeldingFuelTankFull + parent: WeldingFuelTank + name: fuel tank + description: A storage tank containing welding fuel. + components: - type: Explosive devastationRange: 0 heavyImpactRange: 2 @@ -17,7 +27,3 @@ reagents: - ReagentId: chem.WeldingFuel Quantity: 1500 - - type: Anchorable - - type: Pullable - - type: ReagentTank - tankType: Fuel diff --git a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/water_tank.yml b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/water_tank.yml index 0ee94cbd70..ff66db9e41 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/water_tank.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/water_tank.yml @@ -1,6 +1,6 @@ - type: entity - parent: StorageTank id: WaterTank + parent: StorageTank name: water tank suffix: Empty description: "A water tank. It is used to store high amounts of water." @@ -8,8 +8,6 @@ - type: Sprite sprite: Constructible/Misc/tanks.rsi state: watertank - - type: Anchorable - - type: Pullable - type: entity parent: WaterTank diff --git a/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml b/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml index c2a204db4d..f22280f170 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml @@ -1,20 +1,14 @@ - type: entity id: AsteroidRock + parent: BaseConstructible name: asteroid rock description: That's an asteroid components: - type: AsteroidRock - - type: Clickable - type: InteractionOutline - type: Sprite sprite: Constructible/Structures/Walls/asteroid_rock.rsi state: 0 - - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: [MobMask] - type: Damageable resistances: metallicResistances - type: Destructible @@ -28,9 +22,3 @@ - type: Occluder sizeX: 32 sizeY: 32 - - type: SnapGrid - offset: Center - placement: - mode: SnapgridCenter - snap: - - Wall diff --git a/Resources/Prototypes/Entities/Constructible/Walls/atmos_plaque.yml b/Resources/Prototypes/Entities/Constructible/Walls/atmos_plaque.yml index 0b14d5319a..8378218b53 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/atmos_plaque.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/atmos_plaque.yml @@ -9,14 +9,7 @@ !type:PhysShapeAabb bounds: "-0.3,-0.3,0.3,0.3" layer: - - Opaque - - Impassable - MobImpassable - - VaultImpassable - - SmallImpassable - - Clickable - - - type: Sprite state: atmosplaque - type: AtmosPlaque diff --git a/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml b/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml index ff9466f2c5..be8f01c2dc 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml @@ -1,21 +1,29 @@ - type: entity id: BarSign + parent: BaseConstructible name: bar sign components: - - type: Clickable - - type: InteractionOutline - type: Physics fixtures: - shape: !type:PhysShapeAabb bounds: "-0.45, -0.95, 0.45, 1" - layer: [ Passable ] + layer: + - Passable - type: Sprite drawdepth: WallTops sprite: Constructible/Misc/barsign.rsi state: empty - type: PowerReceiver - type: BarSign + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] - type: entity id: LargeBarSign diff --git a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml index d74de07c29..7316bec85e 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml @@ -1,34 +1,22 @@ - type: entity id: Girder + parent: BaseConstructibleDynamic name: girder description: A large structural assembly made out of metal; It requires a layer of metal before it can be considered a wall. + placement: + snap: + - Wall components: - - type: Clickable - type: InteractionOutline - - type: Anchorable - snap: true - type: Construction graph: girder node: girder - type: Sprite sprite: Constructible/Structures/Walls/solid.rsi state: wall_girder - - type: Physics - mass: 25 - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - type: Tag tags: - ExplosivePassable - - type: Pullable - type: Damageable resistances: metallicResistances - type: Destructible @@ -44,8 +32,3 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] - - type: SnapGrid - offset: Edge - placement: - snap: - - Wall diff --git a/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml b/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml index d429038da5..9b34b8159e 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml @@ -1,13 +1,9 @@ - type: entity id: LowWall + parent: BaseConstructible name: low wall description: Goes up to about your waist. - placement: - mode: SnapgridCenter - snap: - - Wall components: - - type: Clickable - type: RCDDeconstructWhitelist - type: CanBuildWindowOnTop - type: InteractionOutline @@ -19,13 +15,6 @@ - type: Icon sprite: Constructible/Structures/Walls/low_wall.rsi state: metal - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: - - VaultImpassable - - SmallImpassable - type: Damageable resistances: metallicResistances - type: Destructible @@ -38,8 +27,6 @@ node: start - !type:DoActsBehavior acts: ["Destruction"] - - type: SnapGrid - offset: Center - type: Climbable - type: LowWall key: walls diff --git a/Resources/Prototypes/Entities/Constructible/Walls/mirror.yml b/Resources/Prototypes/Entities/Constructible/Walls/mirror.yml index acb8b2972e..6730a0c73d 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/mirror.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/mirror.yml @@ -1,22 +1,13 @@ - type: entity id: Mirror + parent: BaseConstructible name: mirror description: 'Mirror mirror on the wall , who''s the most robust of them all?' components: - type: Sprite sprite: Constructible/Misc/mirror.rsi state: mirror - - type: Physics - mass: 25 - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb {} - layer: [Clickable] - - type: Clickable - type: InteractionOutline - - type: SnapGrid - offset: Center - type: MagicMirror - type: UserInterface interfaces: diff --git a/Resources/Prototypes/Entities/Constructible/Walls/signs.yml b/Resources/Prototypes/Entities/Constructible/Walls/signs.yml index 35e6bdee0a..1b2960f6a2 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/signs.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/signs.yml @@ -6,6 +6,7 @@ - type: Clickable - type: InteractionOutline - type: Physics + bodyType: Static canCollide: false fixtures: - shape: @@ -41,12 +42,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: monkey_painting @@ -65,12 +63,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_sec @@ -87,12 +82,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_evac @@ -110,12 +102,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_bridge @@ -133,12 +122,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_med @@ -156,12 +142,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_eng @@ -178,12 +161,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_sci @@ -200,12 +180,9 @@ !type:PhysShapeAabb bounds: "-0.1,-0.4,0.1,0.4" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: direction_supply @@ -223,12 +200,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: armory @@ -244,12 +218,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: ass @@ -265,12 +236,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: anomaly @@ -286,12 +254,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos @@ -307,12 +272,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: bar @@ -328,12 +290,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: biblio @@ -349,12 +308,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: chapel @@ -370,12 +326,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: commander @@ -391,12 +344,9 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: conference_room @@ -412,16 +362,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: drones - - type: entity parent: BaseSign id: SignEngine @@ -433,16 +379,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: engine - - type: entity parent: BaseSign id: SignCloning @@ -454,16 +396,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: cloning - - type: entity parent: BaseSign id: SignInterrogation @@ -475,16 +413,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: interrogation - - type: entity parent: BaseSign id: SignSurgery @@ -496,16 +430,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: surgery - - type: entity parent: BaseSign id: SignTelecomms @@ -517,16 +447,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: telecoms - - type: entity parent: BaseSign id: SignCargo @@ -538,16 +464,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: cargo - - type: entity parent: BaseSign id: SignCargoDock @@ -559,16 +481,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: cargo_dock - - type: entity parent: BaseSign id: SignChem @@ -580,16 +498,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: chem - - type: entity parent: BaseSign id: SignShipDock @@ -601,16 +515,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: dock - - type: entity parent: BaseSign id: SignEngineering @@ -622,16 +532,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: eng - - type: entity parent: BaseSign id: SignEVA @@ -643,16 +549,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: eva - - type: entity parent: BaseSign id: SignGravity @@ -664,16 +566,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: gravi - - type: entity parent: BaseSign id: SignMedical @@ -685,16 +583,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: medbay - - type: entity parent: BaseSign id: SignMorgue @@ -706,16 +600,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: morgue - - type: entity parent: BaseSign id: SignPrison @@ -727,16 +617,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: prison - - type: entity parent: BaseSign id: SignRND @@ -748,16 +634,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: rnd - - type: entity parent: BaseSign id: SignScience @@ -769,16 +651,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: sci - - type: entity parent: BaseSign id: SignToxins @@ -790,16 +668,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: toxins - - type: entity parent: BaseSign id: SignBridge @@ -811,16 +685,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: bridge - # Atmos Warnings - type: entity @@ -835,16 +705,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_air - - type: entity parent: BaseSign id: WarningCO2 @@ -857,16 +723,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_co2 - - type: entity parent: BaseSign id: WarningN2 @@ -879,16 +741,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_n2 - - type: entity parent: BaseSign id: WarningN2O @@ -901,16 +759,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_n2o - - type: entity parent: BaseSign id: WarningO2 @@ -923,16 +777,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_o2 - - type: entity parent: BaseSign id: WarningPlasma @@ -945,16 +795,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_plasma - - type: entity parent: BaseSign id: WarningWaste @@ -967,16 +813,12 @@ !type:PhysShapeAabb bounds: "-0.2,-0.3,0.2,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: atmos_waste - - type: entity parent: BaseSign id: SignSmoking @@ -989,16 +831,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: nosmoking2 - - type: entity parent: BaseSign id: SignSomethingOld @@ -1011,16 +849,12 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: something-old1 - - type: entity parent: BaseSign id: SignSomethingOld2 @@ -1033,12 +867,8 @@ !type:PhysShapeAabb bounds: "-0.4,-0.3,0.4,0.3" layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - SmallImpassable - - Clickable + mask: + - VaultImpassable - type: Sprite state: something-old2 - diff --git a/Resources/Prototypes/Entities/Constructible/Walls/walls.yml b/Resources/Prototypes/Entities/Constructible/Walls/walls.yml index 2def6a2cc3..c4b3958c6c 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/walls.yml @@ -1,5 +1,6 @@ - type: entity id: base_wall + parent: BaseConstructible name: basewall description: Keeps the air in and the greytide out. abstract: true @@ -12,13 +13,14 @@ - type: Tag tags: - Wall - - type: Clickable - type: InteractionOutline - type: Sprite netsync: false drawdepth: Walls - type: Icon state: full + - type: Damageable + resistances: metallicResistances - type: Physics bodyType: Static fixtures: @@ -34,8 +36,6 @@ - type: Occluder sizeX: 32 sizeY: 32 - - type: SnapGrid - offset: Center - type: Airtight - type: IconSmooth key: walls @@ -50,8 +50,6 @@ sprite: Constructible/Structures/Walls/brick.rsi - type: Icon sprite: Constructible/Structures/Walls/brick.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -78,8 +76,6 @@ sprite: Constructible/Structures/Walls/clock.rsi - type: Icon sprite: Constructible/Structures/Walls/clock.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -106,8 +102,6 @@ sprite: Constructible/Structures/Walls/clown.rsi - type: Icon sprite: Constructible/Structures/Walls/clown.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -135,8 +129,6 @@ sprite: Constructible/Structures/Walls/cult.rsi - type: Icon sprite: Constructible/Structures/Walls/cult.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -163,8 +155,6 @@ sprite: Constructible/Structures/Walls/debug.rsi - type: Icon sprite: Constructible/Structures/Walls/debug.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -191,8 +181,6 @@ sprite: Constructible/Structures/Walls/diamond.rsi - type: Icon sprite: Constructible/Structures/Walls/diamond.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -220,8 +208,6 @@ sprite: Constructible/Structures/Walls/gold.rsi - type: Icon sprite: Constructible/Structures/Walls/gold.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -248,8 +234,6 @@ sprite: Constructible/Structures/Walls/ice.rsi - type: Icon sprite: Constructible/Structures/Walls/ice.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -276,8 +260,6 @@ sprite: Constructible/Structures/Walls/metal.rsi - type: Icon sprite: Constructible/Structures/Walls/metal.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -304,8 +286,6 @@ sprite: Constructible/Structures/Walls/plasma.rsi - type: Icon sprite: Constructible/Structures/Walls/plasma.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -332,8 +312,6 @@ sprite: Constructible/Structures/Walls/plastic.rsi - type: Icon sprite: Constructible/Structures/Walls/plastic.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -365,8 +343,6 @@ - type: Construction graph: girder node: reinforcedWall - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -395,8 +371,6 @@ sprite: Constructible/Structures/Walls/riveted.rsi - type: Icon sprite: Constructible/Structures/Walls/riveted.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -423,8 +397,6 @@ sprite: Constructible/Structures/Walls/sandstone.rsi - type: Icon sprite: Constructible/Structures/Walls/sandstone.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -451,8 +423,6 @@ sprite: Constructible/Structures/Walls/silver.rsi - type: Icon sprite: Constructible/Structures/Walls/silver.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -483,8 +453,6 @@ node: wall - type: Icon sprite: Constructible/Structures/Walls/solid.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -511,8 +479,6 @@ sprite: Constructible/Structures/Walls/uranium.rsi - type: Icon sprite: Constructible/Structures/Walls/uranium.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: @@ -539,8 +505,6 @@ sprite: Constructible/Structures/Walls/wood.rsi - type: Icon sprite: Constructible/Structures/Walls/wood.rsi - - type: Damageable - resistances: metallicResistances - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Constructible/Walls/windows.yml b/Resources/Prototypes/Entities/Constructible/Walls/windows.yml index cd7a56bfd0..93eb27f30a 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/windows.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/windows.yml @@ -1,5 +1,6 @@ - type: entity id: Window + parent: BaseConstructible name: window description: Don't smudge up the glass down there. placement: @@ -7,7 +8,6 @@ snap: - Window components: - - type: Clickable - type: RCDDeconstructWhitelist - type: InteractionOutline - type: Sprite @@ -28,6 +28,8 @@ - MobImpassable - VaultImpassable - SmallImpassable + mask: + - VaultImpassable - type: Damageable resistances: metallicResistances - type: Repairable @@ -46,8 +48,6 @@ max: 2 - !type:DoActsBehavior acts: [ "Destruction" ] - - type: SnapGrid - offset: Center - type: Airtight - type: Window base: window diff --git a/Resources/Prototypes/Entities/Constructible/Watercloset/toilet.yml b/Resources/Prototypes/Entities/Constructible/Watercloset/toilet.yml index 61012aaf3b..7592b64ccd 100644 --- a/Resources/Prototypes/Entities/Constructible/Watercloset/toilet.yml +++ b/Resources/Prototypes/Entities/Constructible/Watercloset/toilet.yml @@ -5,6 +5,8 @@ parent: SeatBase description: The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean. components: + - type: Anchorable + snap: true - type: Sprite sprite: Constructible/Watercloset/toilet.rsi state: closed_toilet_seat_up diff --git a/Resources/Prototypes/Entities/Constructible/base.yml b/Resources/Prototypes/Entities/Constructible/base.yml new file mode 100644 index 0000000000..e3c5f120a6 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/base.yml @@ -0,0 +1,46 @@ +- type: entity + id: BaseConstructible + abstract: true + placement: + mode: SnapgridCenter + components: + - type: SnapGrid + offset: Center + - type: Clickable + - type: Physics + bodyType: Static + mass: 50 + fixtures: + - shape: + !type:PhysShapeAabb {} + layer: + - SmallImpassable + mask: + - Impassable + - type: Pullable + +- type: entity + # This means that it's not anchored on spawn. + id: BaseConstructibleDynamic + parent: BaseConstructible + abstract: true + components: +# These might/might not be a good idea +# - type: MovedByPressure +# - type: DamageOnHighSpeedImpact +# - type: TileFrictionModifier +# modifier: 0.5 + - type: Clickable + - type: Physics + bodyType: Dynamic + mass: 50 + fixtures: + - shape: + !type:PhysShapeAabb {} + layer: + - SmallImpassable + mask: + - VaultImpassable + - type: Anchorable + snap: true + - type: Pullable diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index a590dcb578..bf294ee319 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -31,7 +31,6 @@ - SmallImpassable layer: - Opaque - - MobImpassable - type: MobState thresholds: 0: !type:NormalMobState {} diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 0580157e8a..9f6aa0c647 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -33,7 +33,6 @@ - SmallImpassable layer: - Opaque - - MobImpassable - type: MobState thresholds: 0: !type:NormalMobState {} diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index dc5db2b3af..c07a31912e 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -127,9 +127,9 @@ - Impassable - MobImpassable - VaultImpassable + - SmallImpassable layer: - Opaque - - MobImpassable - type: AtmosExposed - type: Flammable fireSpread: true diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index c7bfa01566..6d525f5f10 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -126,7 +126,6 @@ - VaultImpassable layer: - Opaque - - MobImpassable - type: PlayerInputMover - type: AtmosExposed - type: Flammable diff --git a/Resources/Prototypes/Entities/Objects/Fun/instruments.yml b/Resources/Prototypes/Entities/Objects/Fun/instruments.yml index cde4c3474d..ea4da695a2 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/instruments.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/instruments.yml @@ -228,3 +228,15 @@ - type: Item size: 24 sprite: Objects/Fun/Instruments/h_synthesizer.rsi + +- type: entity + name: xylophone + parent: BaseHandheldInstrument + id: XylophoneInstrument + description: Rainbow colored glockenspiel. + components: + - type: Instrument + program: 13 + - type: Sprite + sprite: Objects/Fun/Instruments/otherinstruments.rsi + state: xylophone diff --git a/Resources/Prototypes/Entities/Objects/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml similarity index 100% rename from Resources/Prototypes/Entities/Objects/tiles.yml rename to Resources/Prototypes/Entities/Objects/Misc/tiles.yml diff --git a/Resources/Prototypes/Entities/Objects/radio.yml b/Resources/Prototypes/Entities/Objects/Tools/radio.yml similarity index 100% rename from Resources/Prototypes/Entities/Objects/radio.yml rename to Resources/Prototypes/Entities/Objects/Tools/radio.yml diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base.yml similarity index 85% rename from Resources/Prototypes/Entities/Objects/base_item.yml rename to Resources/Prototypes/Entities/Objects/base.yml index e10b26c023..48e1f96bc7 100644 --- a/Resources/Prototypes/Entities/Objects/base_item.yml +++ b/Resources/Prototypes/Entities/Objects/base.yml @@ -23,8 +23,8 @@ - Clickable mask: - Impassable - - SmallImpassable - restitution: 0.3 # We want them items B O U N C Y # No we don't + - VaultImpassable + restitution: 0.3 # fite me friction: 0.2 - type: Sprite drawdepth: Items diff --git a/Resources/Textures/Constructible/Misc/bookshelf.rsi/base.png b/Resources/Textures/Constructible/Misc/bookshelf.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..25c64415d8cca61a6a15f0ca94f19d0b05476f57 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$DvS9=MbY$MS*G1mQYuKPRE z)Ok5XIXO&Jm7mJy+XB_tdb&73d8(J)ofK|zGmpo!(u z1cr%BPdylRGi=)Jz_j?CLn%8mS3)X>D>K9Dy){!8zu(aVG>E~|)z4*}Q$iB}LgOd~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-0.png b/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-0.png index 25c64415d8cca61a6a15f0ca94f19d0b05476f57..1e189caf153fe06a62d5109823cf9049d20cf0cf 100644 GIT binary patch delta 76 zcmbQm7&k$}jf0JWfuXpn>I;xk^>lFziD-R$!H|)`fP;C%JRgRCOApy|s|X1-#P65V eWMC+8pTv6c0;5{C$-V}l1_n=8KbLh*2~7Z2(H8aq delta 137 zcma!>#W+Eto`so#fuS)Z{Wy@42=EDUwU^+@HWHl^W8EL;y1ye$otHzDlfy(+`KfHa zEl`cEr;B5V#>C`=5GO_^o+|`yD+%gBUzr{an^DJ0&y$0KJSS3;+NC diff --git a/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-1.png b/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-1.png index 547f0a33efcfe22f018f7f4ce53989136648d161..9711a18844e991111141bc5a38923565481ee500 100644 GIT binary patch delta 252 zcmVt%$+rfVf*eIIMw0LnvuOpG2097gbwGi_8-_Ub z&op%a&L{wZ2@gaV7#@IFUuot5oGIl0|NqpnfIuP~+-ZOw0CjH~AO(23YWz=5%LA7g zUq#&*JbnBbwr|>Z4f{I6J!#rH-l& z2$6k7vL32BVA?eaI2#)OqhJ(_f>AIE20370U;qGlK{$S5j*D#o00002C*Ha6%xSEFvo%b00006a>Z~HZg(Af=lAn>vs$rU+rcP`~DBi#;0!a!x>=u z`s=R@OLtrai$D7Kk*LVU=>T$pQS?)=&NCgv8GzRT1qyE%Sbs!V8QKUK5+eJGVFHxB zZ?+Ja{{8O_m$)d8ULfK)(L z2SCaL(!gjo985Y6u#3w3-@a_`e-J$&4tVkGDZ}2qd%*O7H~<7hl=P@-Imr&71t7@* l&#oRHX!ni+Dgy=v1_0gFf@kLqIJ^J=002ovPDHLkV1fX>mN)A>08Gi!+002a!ipBr{08~&+R7F1+3~MqKoLoDPUPZr%W+x2@6$uDP zL??%obgQbBQ40#?a#DIA9x^W#IDRiqi!F*OCtMK^yoC%_4Gc6TBciAmwY(ZVS#5@; zyd^(ULt=PWgr3`FS0 zMDL1(vzZToT^ccfzX08}Q3t?*HS*sc0IviI^u4$Zq7R8d$Z=HRO#tc%4}cTOd0yIJ zUGF(C2Db;A5N;@ylHpB()(Pkjpf*ziU)h1?m#|M;oJsSCx|cfvdk##NU&4c8hYV6a>Z~HoAIjfCZNWUcG+Du<_My2C?t|z-)Z#7C)Q; zrmw&L%CL0DRj~M@j~|JOT$~Od7Z^o91?xQ1L7V|h_$0HmUVkv88@?rINQmq!ID6l0 zAu#^^?;lYPz#9V7u1P>y&+r-oQHNg*F2IOO0#~A;1TZpUT8B3Z=mCb013XRPn*aa+$w@>(RDU>)&C=Zxf*=qD;5AcH zS^UG$uD<5!-_0HtAUQ>n0Q?0=&yl1686=U=GXcl~ffeLAyA&+9 zVFfFzirf1Jps3LStg&pGHV(S3_kol+Tv6KKfFEdKD-Z`DRMQH+(!(~?gc{X! zoALmlLG`Tfk6L>SEIyE4s0jyT2nf{52S4k9hBup_#!+#%5IaD_n@!NOIol(!XtN1= zq4U}A_QAve`e+N>fA4{EK&dzIp@(R)Ui^rP zl>A@4YU+OwyT(Q8|K~jsU<_h|)WFoi)Kn?R{eM~%1jZmXObrZU11z{=;MMDQ3>#nV zW)S=S56r&& z-Hhq;B0aM;qH0VD?kAbH#48)O->gG|73t@j^djb@S^fLu0+ zFfgE$4KO*FI#}63Oq+nDD8N@XfaH+nWy7UIhZuhU`$t^|;LF?O hlpCX9-~j^z0{~RrD_LBY0nPvb002ovPDHLkV1gAL>VN)&63*|f*=q@$4pH{ zQ1Mns_WxhmjEbQty|h}L7iJdwv0SFEP1_;CG5=Tjz zCOE|r%Q6;HEP#ug7iC%Clyg~CwHs)fb`5kLzurcGCN3G19mNKOFo4(rjx-tI8y-}z zmhxl*_XMT90BL>KOL;1adx4!TV9-nX5g67$M}X-@CMLl0pp^{>j{6Gug@-X%UZM=u zlN7djZpth}-|4LPfJufP@O-qJ|3H~#jKEZR3rsS!Qg6Tq56%RK4ose-(jE00&#njn O0000~ur diff --git a/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-5.png b/Resources/Textures/Constructible/Misc/bookshelf.rsi/book-5.png index 3607c11a0d43323596f8f0b8d152aa28c647b5aa..b1751cc0d284b9480514a0346d0dfdb6af07ef97 100644 GIT binary patch delta 603 zcmV-h0;K)91L*{i8Gi-<0047(dh`GQ0x(HLK~z|UV;BXaU=)l3Y~cU@{|p{3>i^rP zl>A@4YU+OwyT(Q8|K~jsU<_h|)WFoi)Kn?R{eM~%1jZmXvK&Y)Ho$@_241~>$FT9$ zZU(XM|G@0aU*0m@I=2-pclrKT6m^Rq&H&TbUw>s-y5lNX{D0BMj|{I~e}~KA0yrIj z4e*L-LPgKuRAUtV6r!SoI5U~>NoHxiU`RK73+I1+bsdb+L5S=txX8ZQLSX#+-#;)P zSq>Y(8v@g=NkCc8@EQV9hg}UmIS^pPCWtG+Pzo3sF|ETJ1@r&|?f|T5z%DB9zo(Bs z!}cv38ElVlWPivGG69QEU3Z3|_5MR}I0os|{?CXC1dGpDww~d;9>EqmZ7}Dj-j*T5J)LT9AI_8i)T+6_U_#Srmw$#gOayl;Krjf414$Tfq5V{ zCkvuH`1~88|MHU;;PL~x>_7%Mqd-JS56%YVZ4mzT=YKDX8VM0eFeaoQQGQ?oq6#8V zz6OEc|K6a8zj*T;g%8T}6R_yVR(8Mu&JcKZ^*AwZLjj0#gLwU;<-p)92VkJqRr)_H z4<8f_hUaaOO>-Hhqfy#!%mi}Nl5I`_*Dl($6~7*NUv zSh>LfEmT8bWd}&^^Zn1{l>;z3dacZ6WAIulyWQ?E-hrm+ zf&KoF1I+696@M>;m$Fh?4CWNjdH{3>=oA>!GyuQh!JS+vPjtRq&QO58hLjiJuRfF~ zy4~+LG{kNoB>`F=$^&>jBG7u%Bmf5h-I(KrV+7DS0bB}bg*^lQ!UGX%qr8O-cM4Ku z?tuvZ)XVVKFn75J0FCKo_!jed$UQKJ3!RJzNSk};fFn+ZckT`N!NX+AQ3pf50Zr#1 U<^bQ5r~m)}07*qoM6N<$g3?~FmH+?% diff --git a/Resources/Textures/Constructible/Misc/bookshelf.rsi/meta.json b/Resources/Textures/Constructible/Misc/bookshelf.rsi/meta.json index 948cf6fa3c..f4ce0ae183 100644 --- a/Resources/Textures/Constructible/Misc/bookshelf.rsi/meta.json +++ b/Resources/Textures/Constructible/Misc/bookshelf.rsi/meta.json @@ -1,59 +1,32 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/f777c8ddf7a529b002df17909566d5d93b8ad201", "size": { "x": 32, - "y": 32, - "license":"CC-BY-SA-3.0", - "copyright":"Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/f777c8ddf7a529b002df17909566d5d93b8ad201", + "y": 32 }, "states": [ { - "name": "book-0", - "delays": [ - [ - 1.0 - ] - ] + "name": "base" }, { - "name": "book-1", - "delays": [ - [ - 1.0 - ] - ] + "name": "book-0" }, { - "name": "book-2", - "delays": [ - [ - 1.0 - ] - ] + "name": "book-1" }, { - "name": "book-3", - "delays": [ - [ - 1.0 - ] - ] + "name": "book-2" }, { - "name": "book-4", - "delays": [ - [ - 1.0 - ] - ] + "name": "book-3" }, { - "name": "book-5", - "delays": [ - [ - 1.0 - ] - ] + "name": "book-4" + }, + { + "name": "book-5" } ] } diff --git a/Resources/Textures/Constructible/Misc/furniture.rsi/meta.json b/Resources/Textures/Constructible/Misc/furniture.rsi/meta.json index dfe717092d..d5f8e597ab 100644 --- a/Resources/Textures/Constructible/Misc/furniture.rsi/meta.json +++ b/Resources/Textures/Constructible/Misc/furniture.rsi/meta.json @@ -1,5 +1,7 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/59fe5dd2841f47a8abce60eecb9fafad34282bd0", "size": { "x": 32, "y": 32 @@ -7,425 +9,101 @@ "states": [ { "name": "armchair_preview", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "bar_chair", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "bar_chair_over", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { - "name": "bar_stool", - "delays": [ - [ - 1 - ] - ] + "name": "bar_stool" }, { - "name": "bed", - "delays": [ - [ - 1 - ] - ] + "name": "bed" }, { "name": "chair", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "chair_armrest", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "chair_padding", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "chair_padding_over", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "chair_preview", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "comfychair_preview", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "officechair_dark", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "officechair_white", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { - "name": "onestar_chair_grey", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "name": "psychbed" }, { - "name": "onestar_chair_red", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] - }, - { - "name": "psychbed", - "delays": [ - [ - 1 - ] - ] - }, - { - "name": "psychbed_padding", - "delays": [ - [ - 1 - ] - ] + "name": "psychbed_padding" }, { "name": "shuttle_chair", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { - "name": "stool_base", - "delays": [ - [ - 1 - ] - ] + "name": "stool_base" }, { - "name": "stool_padded_preview", - "delays": [ - [ - 1 - ] - ] + "name": "stool_padded_preview" }, { - "name": "stool_padding", - "delays": [ - [ - 1 - ] - ] + "name": "stool_padding" }, { - "name": "stool_preview", - "delays": [ - [ - 1 - ] - ] + "name": "stool_preview" }, { "name": "w_overlay", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "wheelchair", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "wheelchair_folded", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "wooden_chair", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { "name": "wooden_chair_wings", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 }, { - "name": "shelf", - "delays": [ - [ - 1 - ] - ] + "name": "shelf" }, { - "name": "rack", - "delays": [ - [ - 1 - ] - ] + "name": "rack" } ] } diff --git a/Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_grey.png b/Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_grey.png deleted file mode 100644 index 271fd1fcaf48adc52c521cf6ebc1c81d505d1b9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0a=P;*{RP=$$+SaC2Sqg=K z0ztwv5yJ;6dc%~!A4y6xQwUJtYZ^x*a%)pXQc_?xR>ADGlp~HY0}~lAeIo!U5Ww8+ zg})C-89d-TXaLM50E%P4Ux~$!G_2%0atDu&@jN=@HB+eCB0ecy^u7`a?L3nO)~IZ)jQ8{R9;< zU_yWn02WDM`xE3(#0J{JV zRlxFkpcO_OjK0*qBA1NhF(uOt3nM*A1Pm4E6?8dCBC-+SX__49u%;<50aC@uHv;cr z98ra3HE<~YbD|o+O9@^Da0*mik^S4z zqmi>hz;hr#hS%7`Xg+)((0_pd*$>8A15`l+WIq@yy+A0?DeVhp%r!7)<$ch-1#r#> dT@d+x_yOTi@~Lt9>3RSF002ovPDHLkV1k|J@E8C9 diff --git a/Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_red.png b/Resources/Textures/Constructible/Misc/furniture.rsi/onestar_chair_red.png deleted file mode 100644 index 28534c51c1b08c5dc01f03e28ad7277274b6a303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0ayC^AM+b8I#~g^84_W?!$n#@mr=S?)ik00002bW%=J06+jwjHmzr z0oX}IK~zY`<&?o{!axv)7h;eerG0`vL2NV)o-8V+o`kwAp+{f9gJD^6)Pu(!Dk0=p zU!era%XK!v%tT_U*LDs|X7c5qozWS_{*kpMSQDUPuvLRVl7U4H0;x`MTwP45@)QaI z1%iZUB8CrCG{=;{CnTkrD+DO;IgO(+xwWYxDJd|Us9^S5$q~nxfr%WL&Itet1TfbJ zu{Z>z3?6VEGytX#fZ`ZfY{c7^Wbi{sktlKrx9>hz09|(jphEpyU?cGTMj)gova z!u57Lk4W&MlVyPSY}@Yj5wL|;c(Y3X=@HB>edgw0xYi|~4MuPnGwYJi+)<~~x%W^Z z2Rs6F0qBqv7M{5|IpCCm;>o!ICVUg+cr9RD0<03) z*8%?ZKr4(m7=5XIMJ^f1BqP%e3nM#91Pm4E6?8sHBC-(RS(fhUux1&r08+*2Hv;cr z98m?o9@v-vIZ+Sbr39}7I0fo1NrCz@F