using Content.Shared.Tools;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared.Construction.Components
{
private void OnAnchoredExamine(EntityUid uid, AnchorableComponent component, ExaminedEvent args)
{
var isAnchored = Comp<TransformComponent>(uid).Anchored;
+
+ if (isAnchored && (component.Flags & AnchorableFlags.Unanchorable) == 0x0)
+ return;
+
+ if (!isAnchored && (component.Flags & AnchorableFlags.Anchorable) == 0x0)
+ return;
+
var messageId = isAnchored ? "examinable-anchored" : "examinable-unanchored";
args.PushMarkup(Loc.GetString(messageId, ("target", uid)));
}
- AiHolder
suffix: Empty
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: WarpPoint
blacklist:
tags:
- type: StationAiVision
- type: InteractionOutline
- type: Sprite
+ snapCardinals: true
sprite: Mobs/Silicon/station_ai.rsi
layers:
- state: base
name: sentry turret
description: A high-tech autonomous weapons system designed to keep unauthorized personnel out of sensitive areas.
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Fixtures
fixtures:
body:
name: airlock
description: It opens, it closes, and maybe crushes you.
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: StationAiWhitelist
- type: MeleeSound
soundGroups:
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: StationAiWhitelist
- type: InteractionOutline
- type: Sprite
+ snapCardinals: true
sprite: Structures/Doors/Airlocks/highsec/highsec.rsi
layers:
- state: closed
name: firelock
description: Apply crowbar.
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: AtmosAlarmable
syncWith:
- FireAlarm
abstract: true
description: A door, where will it lead?
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: InteractionOutline
- type: Sprite
sprite: Structures/Doors/MineralDoors/metal_door.rsi
abstract: true
description: Keeps the air in and the greytide out.
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Sprite
sprite: Structures/Doors/secret_door.rsi
layers:
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: StationAiWhitelist
- type: Sprite
sprite: Structures/Doors/Shutters/shutters.rsi
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: MeleeSound
soundGroups:
Brute:
snap:
- Wallmount
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Physics
canCollide: false
- type: Clickable
snap:
- Wall
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: RangedDamageSound
soundGroups:
Brute:
snap:
- Window
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: MeleeSound
soundGroups:
Brute:
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Clickable
- type: Sprite
sprite: Structures/catwalk.rsi
name: cryogenic sleep unit
description: A super-cooled container that keeps crewmates safe during space travel.
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Sprite
noRot: true
sprite: Structures/cryostorage.rsi
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Sprite
sprite: Structures/plastic_flaps.rsi
state: plasticflaps
placement:
mode: SnapgridCenter
components:
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Rotatable
- type: Clickable
- type: Sprite
sprite: Structures/stairs.rsi