diff --git a/Content.Shared/Physics/CollisionGroup.cs b/Content.Shared/Physics/CollisionGroup.cs index 03be6c1fe9..b609b86c5c 100644 --- a/Content.Shared/Physics/CollisionGroup.cs +++ b/Content.Shared/Physics/CollisionGroup.cs @@ -21,10 +21,9 @@ namespace Content.Shared.Physics MobImpassable = 1 << 2, // 4 Mobs, players, crabs, etc VaultImpassable = 1 << 3, // 8 Things that cannot be jumped over, not half walls or tables SmallImpassable = 1 << 4, // 16 Things a smaller object - a cat, a crab - can't go through - a wall, but not a computer terminal or a table - Clickable = 1 << 5, // 32 Temporary "dummy" layer to ensure that objects can still be clicked even if they don't collide with anything (you can't interact with objects that have no layer, including items) - GhostImpassable = 1 << 6, // 64 Things impassible by ghosts/observers, ie blessed tiles or forcefields - Underplating = 1 << 7, // 128 Things that are under plating - Passable = 1 << 8, // 256 Things that are passable + GhostImpassable = 1 << 5, // 32 Things impassible by ghosts/observers, ie blessed tiles or forcefields + Underplating = 1 << 6, // 64 Things that are under plating + Passable = 1 << 7, // 128 Things that are passable MapGrid = MapGridHelpers.CollisionGroup, // Map grids, like shuttles. This is the actual grid itself, not the walls or other entities connected to the grid. MobMask = Impassable | MobImpassable | VaultImpassable | SmallImpassable, diff --git a/Resources/Prototypes/Entities/Constructible/Power/chargers.yml b/Resources/Prototypes/Entities/Constructible/Power/chargers.yml new file mode 100644 index 0000000000..17cb057c14 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/chargers.yml @@ -0,0 +1,61 @@ +- type: entity + name: cell recharger + id: PowerCellRecharger + components: + - type: Sprite + netsync: false + sprite: Constructible/Power/cell_recharger.rsi + drawdepth: Items + - type: Icon + sprite: Constructible/Power/cell_recharger.rsi + state: empty + - type: PowerCellCharger + transfer_efficiency: 0.85 + - type: PowerReceiver + - type: Appearance + visuals: + - type: PowerChargerVisualizer + - type: Anchorable + - type: Clickable + - type: InteractionOutline + +- type: entity + name: recharger + id: WeaponCapacitorRecharger + components: + - type: Sprite + netsync: false + sprite: Constructible/Power/recharger.rsi + drawdepth: Items + - type: Icon + sprite: Constructible/Power/recharger.rsi + state: empty + - type: WeaponCapacitorCharger + transfer_efficiency: 0.85 + - type: PowerReceiver + - type: Appearance + visuals: + - type: PowerChargerVisualizer + - type: Anchorable + - type: Clickable + - type: InteractionOutline + +- type: entity + name: wall recharger + id: WallWeaponCapacitorRecharger + components: + - type: Sprite + netsync: false + sprite: Constructible/Power/wall_recharger.rsi + drawdepth: Items + - type: Icon + sprite: Constructible/Power/wall_recharger.rsi + state: empty + - type: WeaponCapacitorCharger + transfer_efficiency: 0.95 + - type: PowerReceiver + - type: Appearance + visuals: + - type: PowerChargerVisualizer + - type: Clickable + - type: InteractionOutline diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/particles.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/particles.yml index 01e11baf02..4fbf9d8cde 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/particles.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/particles.yml @@ -23,5 +23,4 @@ layer: [None] mask: - MobMask - - Clickable - type: ParticleProjectile diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Constructible/Specific/Medical/morgue.yml new file mode 100644 index 0000000000..941ac6d1a6 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Specific/Medical/morgue.yml @@ -0,0 +1,128 @@ +- type: entity + id: Morgue + name: morgue + description: Used to keep bodies in until someone fetches them. Includes a high-tech alert system for false-positives! + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Medical/Morgue/morgue.rsi + layers: + - state: morgue_closed + map: ["enum.MorgueVisualLayers.Base"] + - state: morgue_nomob_light + visible: false + map: ["enum.MorgueVisualLayers.Light"] + shader: unshaded + - type: Clickable + - type: InteractionOutline + - type: Physics + bodyType: Static + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + mass: 25 + mask: + - Impassable + - MobImpassable + - VaultImpassable + - SmallImpassable + layer: + - Opaque + - MobImpassable + - VaultImpassable + - SmallImpassable + - type: MorgueEntityStorage + CanWeldShut: false + IsCollidableWhenOpen: true + Capacity: 1 + closeSound: /Audio/Items/deconstruct.ogg + openSound: /Audio/Items/deconstruct.ogg + trayPrototype: MorgueTray + - type: Appearance + visuals: + - type: MorgueVisualizer + state_open: morgue_open + state_closed: morgue_closed + light_contents: morgue_nomob_light + light_mob: morgue_nosoul_light + light_soul: morgue_soul_light + - type: SnapGrid + offset: Center + +- type: entity + id: MorgueTray + name: morgue tray + description: If you lay down to have a rest on this, you'll soon have a problem. + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Medical/Morgue/morgue.rsi + state: morgue_tray + - type: Clickable + - type: InteractionOutline + - type: MorgueTray + + +- type: entity + id: Crematorium + name: crematorium + description: A human incinerator. Works well on barbecue nights. + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Medical/Morgue/morgue.rsi + layers: + - state: crema_closed + map: ["enum.CrematoriumVisualLayers.Base"] + - state: crema_contents_light + visible: false + map: ["enum.CrematoriumVisualLayers.Light"] + shader: unshaded + - type: Clickable + - type: InteractionOutline + - type: Physics + bodyType: Static + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + mass: 25 + mask: + - Impassable + - MobImpassable + - VaultImpassable + - SmallImpassable + layer: + - Opaque + - MobImpassable + - VaultImpassable + - SmallImpassable + - type: CrematoriumEntityStorage + CanWeldShut: false + IsCollidableWhenOpen: true + Capacity: 1 + closeSound: /Audio/Items/deconstruct.ogg + openSound: /Audio/Items/deconstruct.ogg + trayPrototype: CrematoriumTray + doSoulBeep: false + - type: LoopingSound + - type: Appearance + visuals: + - type: CrematoriumVisualizer + state_open: crema_open + state_closed: crema_closed + light_contents: crema_contents_light + light_burning: crema_active_light + - type: SnapGrid + offset: Center + +- type: entity + id: CrematoriumTray + name: crematorium tray + parent: MorgueTray + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Medical/Morgue/morgue.rsi + state: crema_tray diff --git a/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml b/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml index 55ee3a46fd..003f29a4b0 100644 --- a/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml +++ b/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml @@ -18,10 +18,12 @@ - shape: !type:PhysShapeAabb bounds: "-0.25,-0.25,0.25,0.25" - mass: 1 + mass: 25 + mask: + - SmallImpassable layer: - - Clickable + - Opaque + - MobImpassable - type: TraitorDeathMatchRedemption placement: mode: AlignTileAny - diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml index 87b5146fe4..afa3e19298 100644 --- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml +++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml @@ -12,8 +12,6 @@ - shape: !type:PhysShapeAabb bounds: "-0.15,-0.3,0.2,0.3" # TODO: these are placeholder values - layer: - - Clickable - type: PowerCell - type: Sprite netsync: false @@ -300,89 +298,3 @@ visuals: - type: PowerCellVisualizer prefix: l_hy - -- type: entity - name: cell recharger - id: PowerCellRecharger - components: - - type: Sprite - netsync: false - sprite: Constructible/Power/cell_recharger.rsi - drawdepth: Items - - type: Icon - sprite: Constructible/Power/cell_recharger.rsi - state: empty - - type: PowerCellCharger - transfer_efficiency: 0.85 - - type: PowerReceiver - - type: Appearance - visuals: - - type: PowerChargerVisualizer - - type: Anchorable - - type: Clickable - - type: InteractionOutline - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.25,-0.25,0.25,0.25" - mass: 5 - mask: [Impassable] - layer: [Clickable] - -- type: entity - name: recharger - id: WeaponCapacitorRecharger - components: - - type: Sprite - netsync: false - sprite: Constructible/Power/recharger.rsi - drawdepth: Items - - type: Icon - sprite: Constructible/Power/recharger.rsi - state: empty - - type: WeaponCapacitorCharger - transfer_efficiency: 0.85 - - type: PowerReceiver - - type: Appearance - visuals: - - type: PowerChargerVisualizer - - type: Anchorable - - type: Clickable - - type: InteractionOutline - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.25,-0.25,0.25,0.25" - mass: 5 - mask: [Impassable] - layer: [Clickable] - -- type: entity - name: wall recharger - id: WallWeaponCapacitorRecharger - components: - - type: Sprite - netsync: false - sprite: Constructible/Power/wall_recharger.rsi - drawdepth: Items - - type: Icon - sprite: Constructible/Power/wall_recharger.rsi - state: empty - - type: WeaponCapacitorCharger - transfer_efficiency: 0.95 - - type: PowerReceiver - - type: Appearance - visuals: - - type: PowerChargerVisualizer - - type: Clickable - - type: InteractionOutline - - type: Physics - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.25,-0.25,0.25,0.25" - mass: 5 - mask: [Impassable] - layer: [Clickable] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml index a250f175cc..026ed9cded 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml @@ -25,8 +25,6 @@ !type:PhysShapeAabb bounds: "-0.45,-0.5,0.1,0.5" mass: 5 - layer: - - Clickable - type: BodyBagEntityStorage CanWeldShut: false Capacity: 1 @@ -55,144 +53,6 @@ # prototype: someId # snap: Center -- type: entity - id: Morgue - name: morgue - description: Used to keep bodies in until someone fetches them. Includes a high-tech alert system for false-positives! - components: - - type: Sprite - netsync: false - sprite: Objects/Specific/Medical/Morgue/morgue.rsi - layers: - - state: morgue_closed - map: ["enum.MorgueVisualLayers.Base"] - - state: morgue_nomob_light - visible: false - map: ["enum.MorgueVisualLayers.Light"] - shader: unshaded - - type: Clickable - - type: InteractionOutline - - type: Physics - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - mass: 25 - mask: - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - layer: - - Opaque - - MobImpassable - - VaultImpassable - - SmallImpassable - - type: MorgueEntityStorage - CanWeldShut: false - IsCollidableWhenOpen: true - Capacity: 1 - closeSound: /Audio/Items/deconstruct.ogg - openSound: /Audio/Items/deconstruct.ogg - trayPrototype: MorgueTray - - type: Appearance - visuals: - - type: MorgueVisualizer - state_open: morgue_open - state_closed: morgue_closed - light_contents: morgue_nomob_light - light_mob: morgue_nosoul_light - light_soul: morgue_soul_light - - type: SnapGrid - offset: Center - -- type: entity - id: MorgueTray - name: morgue tray - description: If you lay down to have a rest on this, you'll soon have a problem. - components: - - type: Sprite - netsync: false - sprite: Objects/Specific/Medical/Morgue/morgue.rsi - state: morgue_tray - - type: Clickable - - type: InteractionOutline - - type: Physics - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - mass: 15 - layer: - - Clickable - - type: MorgueTray - - -- type: entity - id: Crematorium - name: crematorium - description: A human incinerator. Works well on barbecue nights. - components: - - type: Sprite - netsync: false - sprite: Objects/Specific/Medical/Morgue/morgue.rsi - layers: - - state: crema_closed - map: ["enum.CrematoriumVisualLayers.Base"] - - state: crema_contents_light - visible: false - map: ["enum.CrematoriumVisualLayers.Light"] - shader: unshaded - - type: Clickable - - type: InteractionOutline - - type: Physics - bodyType: Static - fixtures: - - shape: - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - mass: 25 - mask: - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - layer: - - Opaque - - MobImpassable - - VaultImpassable - - SmallImpassable - - type: CrematoriumEntityStorage - CanWeldShut: false - IsCollidableWhenOpen: true - Capacity: 1 - closeSound: /Audio/Items/deconstruct.ogg - openSound: /Audio/Items/deconstruct.ogg - trayPrototype: CrematoriumTray - doSoulBeep: false - - type: LoopingSound - - type: Appearance - visuals: - - type: CrematoriumVisualizer - state_open: crema_open - state_closed: crema_closed - light_contents: crema_contents_light - light_burning: crema_active_light - - type: SnapGrid - offset: Center - -- type: entity - id: CrematoriumTray - name: crematorium tray - parent: MorgueTray - components: - - type: Sprite - netsync: false - sprite: Objects/Specific/Medical/Morgue/morgue.rsi - state: crema_tray - - type: entity id: Ash name: ash diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 8ec6edb46f..4656b25e95 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -18,7 +18,6 @@ !type:PhysShapeAabb bounds: "-0.1,-0.1,0.1,0.1" hard: false - layer: [Clickable] mask: - Impassable - MobImpassable diff --git a/Resources/Prototypes/Entities/Objects/base.yml b/Resources/Prototypes/Entities/Objects/base.yml index b3791997fd..75fa25abf3 100644 --- a/Resources/Prototypes/Entities/Objects/base.yml +++ b/Resources/Prototypes/Entities/Objects/base.yml @@ -20,8 +20,6 @@ !type:PhysShapeAabb bounds: "-0.25,-0.25,0.25,0.25" mass: 5 - layer: - - Clickable mask: - Impassable - VaultImpassable