diff --git a/Content.Client/Climbing/ClimbingSystem.cs b/Content.Client/Climbing/ClimbingSystem.cs new file mode 100644 index 0000000000..99f7a4b4f6 --- /dev/null +++ b/Content.Client/Climbing/ClimbingSystem.cs @@ -0,0 +1,9 @@ +using Content.Shared.Climbing; + +namespace Content.Client.Climbing +{ + public sealed class ClimbingSystem : SharedClimbSystem + { + + } +} diff --git a/Content.Server/Climbing/ClimbSystem.cs b/Content.Server/Climbing/ClimbSystem.cs index 3a4a0517bb..f10268b15c 100644 --- a/Content.Server/Climbing/ClimbSystem.cs +++ b/Content.Server/Climbing/ClimbSystem.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using Content.Server.Climbing.Components; +using Content.Shared.Climbing; using Content.Shared.GameTicking; using JetBrains.Annotations; using Robust.Shared.GameObjects; @@ -8,7 +9,7 @@ using Robust.Shared.GameObjects; namespace Content.Server.Climbing { [UsedImplicitly] - internal sealed class ClimbSystem : EntitySystem + internal sealed class ClimbSystem : SharedClimbSystem { private readonly HashSet _activeClimbers = new(); diff --git a/Content.Server/Climbing/Components/ClimbingComponent.cs b/Content.Server/Climbing/Components/ClimbingComponent.cs index 8d06859605..3b5f6b3c68 100644 --- a/Content.Server/Climbing/Components/ClimbingComponent.cs +++ b/Content.Server/Climbing/Components/ClimbingComponent.cs @@ -41,7 +41,7 @@ namespace Content.Server.Climbing.Components } } - protected override bool OwnerIsTransitioning + public override bool OwnerIsTransitioning { get => base.OwnerIsTransitioning; set diff --git a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs index 253475235b..0223ba54b8 100644 --- a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs +++ b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs @@ -25,16 +25,6 @@ namespace Content.Shared.ActionBlocker var ev = new MovementAttemptEvent(entity); RaiseLocalEvent(entity.Uid, ev); - - foreach (var blocker in entity.GetAllComponents()) - { - if (!blocker.CanMove()) - { - ev.Cancel(); - break; - } - } - return !ev.Cancelled; } diff --git a/Content.Shared/ActionBlocker/IActionBlocker.cs b/Content.Shared/ActionBlocker/IActionBlocker.cs index 2646a8ae4b..cdcae76223 100644 --- a/Content.Shared/ActionBlocker/IActionBlocker.cs +++ b/Content.Shared/ActionBlocker/IActionBlocker.cs @@ -10,9 +10,6 @@ namespace Content.Shared.ActionBlocker [Obsolete("Use events instead")] public interface IActionBlocker { - [Obsolete("Use MoveAttemptEvent instead")] - bool CanMove() => true; - [Obsolete("Use InteractAttemptEvent instead")] bool CanInteract() => true; diff --git a/Content.Shared/Buckle/Components/SharedBuckleComponent.cs b/Content.Shared/Buckle/Components/SharedBuckleComponent.cs index 73e5026e3e..db60285697 100644 --- a/Content.Shared/Buckle/Components/SharedBuckleComponent.cs +++ b/Content.Shared/Buckle/Components/SharedBuckleComponent.cs @@ -36,11 +36,6 @@ namespace Content.Shared.Buckle.Components public abstract bool TryBuckle(IEntity? user, IEntity to); - bool IActionBlocker.CanMove() - { - return !Buckled; - } - bool IActionBlocker.CanChangeDirection() { return !Buckled; diff --git a/Content.Shared/Buckle/SharedBuckleSystem.cs b/Content.Shared/Buckle/SharedBuckleSystem.cs index 2363b2b196..700deb5540 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Buckle.Components; +using Content.Shared.Movement; using Content.Shared.Standing; using Content.Shared.Throwing; using Robust.Shared.GameObjects; @@ -15,6 +16,13 @@ namespace Content.Shared.Buckle SubscribeLocalEvent(HandleDown); SubscribeLocalEvent(HandleStand); SubscribeLocalEvent(HandleThrowPushback); + SubscribeLocalEvent(HandleMove); + } + + private void HandleMove(EntityUid uid, SharedBuckleComponent component, MovementAttemptEvent args) + { + if (component.Buckled) + args.Cancel(); } private void HandleStand(EntityUid uid, SharedBuckleComponent component, StandAttemptEvent args) diff --git a/Content.Shared/Climbing/SharedClimbSystem.cs b/Content.Shared/Climbing/SharedClimbSystem.cs new file mode 100644 index 0000000000..15663b2b9a --- /dev/null +++ b/Content.Shared/Climbing/SharedClimbSystem.cs @@ -0,0 +1,20 @@ +using Content.Shared.Movement; +using Robust.Shared.GameObjects; + +namespace Content.Shared.Climbing +{ + public abstract class SharedClimbSystem : EntitySystem + { + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(HandleMoveAttempt); + } + + private void HandleMoveAttempt(EntityUid uid, SharedClimbingComponent component, MovementAttemptEvent args) + { + if (component.OwnerIsTransitioning) + args.Cancel(); + } + } +} diff --git a/Content.Shared/Climbing/SharedClimbingComponent.cs b/Content.Shared/Climbing/SharedClimbingComponent.cs index 3f8c99c64f..b139b0e3f1 100644 --- a/Content.Shared/Climbing/SharedClimbingComponent.cs +++ b/Content.Shared/Climbing/SharedClimbingComponent.cs @@ -29,10 +29,8 @@ namespace Content.Shared.Climbing } } - bool IActionBlocker.CanMove() => !OwnerIsTransitioning; - [ViewVariables] - protected virtual bool OwnerIsTransitioning + public virtual bool OwnerIsTransitioning { get => _ownerIsTransitioning; set diff --git a/Content.Shared/Cuffs/Components/SharedCuffableComponent.cs b/Content.Shared/Cuffs/Components/SharedCuffableComponent.cs index f3b6a7a59f..72c61a6cb3 100644 --- a/Content.Shared/Cuffs/Components/SharedCuffableComponent.cs +++ b/Content.Shared/Cuffs/Components/SharedCuffableComponent.cs @@ -14,8 +14,6 @@ namespace Content.Shared.Cuffs.Components { public override string Name => "Cuffable"; - [ComponentDependency] private readonly SharedPullableComponent? _pullable = default!; - [ViewVariables] public bool CanStillInteract { get; set; } = true; @@ -28,8 +26,6 @@ namespace Content.Shared.Cuffs.Components bool IActionBlocker.CanAttack() => CanStillInteract; bool IActionBlocker.CanEquip() => CanStillInteract; bool IActionBlocker.CanUnequip() => CanStillInteract; - bool IActionBlocker.CanMove() => _pullable == null || !_pullable.BeingPulled || CanStillInteract; - #endregion [Serializable, NetSerializable] diff --git a/Content.Shared/Cuffs/SharedCuffableSystem.cs b/Content.Shared/Cuffs/SharedCuffableSystem.cs index 9877c4659c..2891da884c 100644 --- a/Content.Shared/Cuffs/SharedCuffableSystem.cs +++ b/Content.Shared/Cuffs/SharedCuffableSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Cuffs.Components; +using Content.Shared.Movement; using Content.Shared.Pulling.Components; using Robust.Shared.GameObjects; @@ -10,6 +11,15 @@ namespace Content.Shared.Cuffs { base.Initialize(); SubscribeLocalEvent(HandleStopPull); + SubscribeLocalEvent(HandleMoveAttempt); + } + + private void HandleMoveAttempt(EntityUid uid, SharedCuffableComponent component, MovementAttemptEvent args) + { + if (component.CanStillInteract || !ComponentManager.TryGetComponent(uid, out SharedPullableComponent? pullable) || !pullable.BeingPulled) + return; + + args.Cancel(); } private void HandleStopPull(EntityUid uid, SharedCuffableComponent component, StopPullingEvent args) diff --git a/Content.Shared/MobState/Components/SharedMobStateComponent.cs b/Content.Shared/MobState/Components/SharedMobStateComponent.cs index 79dc0977d8..5ded3365f1 100644 --- a/Content.Shared/MobState/Components/SharedMobStateComponent.cs +++ b/Content.Shared/MobState/Components/SharedMobStateComponent.cs @@ -338,11 +338,6 @@ namespace Content.Shared.MobState.Components return CurrentState?.CanInteract() ?? true; } - bool IActionBlocker.CanMove() - { - return CurrentState?.CanMove() ?? true; - } - bool IActionBlocker.CanUse() { return CurrentState?.CanUse() ?? true; diff --git a/Content.Shared/MobState/EntitySystems/SharedMobStateSystem.cs b/Content.Shared/MobState/EntitySystems/SharedMobStateSystem.cs index 6db4899389..bc7a0e9f6f 100644 --- a/Content.Shared/MobState/EntitySystems/SharedMobStateSystem.cs +++ b/Content.Shared/MobState/EntitySystems/SharedMobStateSystem.cs @@ -1,4 +1,6 @@ using Content.Shared.MobState.Components; +using Content.Shared.MobState.State; +using Content.Shared.Movement; using Content.Shared.Pulling.Events; using Robust.Shared.GameObjects; @@ -11,6 +13,7 @@ namespace Content.Shared.MobState.EntitySystems base.Initialize(); SubscribeLocalEvent(OnStartPullAttempt); + SubscribeLocalEvent(OnMoveAttempt); } private void OnStartPullAttempt(EntityUid uid, SharedMobStateComponent component, StartPullAttemptEvent args) @@ -18,5 +21,18 @@ namespace Content.Shared.MobState.EntitySystems if(component.IsIncapacitated()) args.Cancel(); } + + private void OnMoveAttempt(EntityUid uid, SharedMobStateComponent component, MovementAttemptEvent args) + { + switch (component.CurrentState) + { + case SharedCriticalMobState: + case SharedDeadMobState: + args.Cancel(); + return; + default: + return; + } + } } } diff --git a/Content.Shared/MobState/State/BaseMobState.cs b/Content.Shared/MobState/State/BaseMobState.cs index 760c33e3eb..d82771b00f 100644 --- a/Content.Shared/MobState/State/BaseMobState.cs +++ b/Content.Shared/MobState/State/BaseMobState.cs @@ -39,11 +39,6 @@ namespace Content.Shared.MobState.State return true; } - public virtual bool CanMove() - { - return true; - } - public virtual bool CanUse() { return true; diff --git a/Content.Shared/MobState/State/SharedCriticalMobState.cs b/Content.Shared/MobState/State/SharedCriticalMobState.cs index 038b14e77b..35683f2bb2 100644 --- a/Content.Shared/MobState/State/SharedCriticalMobState.cs +++ b/Content.Shared/MobState/State/SharedCriticalMobState.cs @@ -41,11 +41,6 @@ namespace Content.Shared.MobState.State return false; } - public override bool CanMove() - { - return false; - } - public override bool CanUse() { return false; diff --git a/Content.Shared/MobState/State/SharedDeadMobState.cs b/Content.Shared/MobState/State/SharedDeadMobState.cs index a511b3463a..09804138ba 100644 --- a/Content.Shared/MobState/State/SharedDeadMobState.cs +++ b/Content.Shared/MobState/State/SharedDeadMobState.cs @@ -49,11 +49,6 @@ namespace Content.Shared.MobState.State return false; } - public override bool CanMove() - { - return false; - } - public override bool CanUse() { return false; diff --git a/Content.Shared/MobState/State/SharedNormalMobState.cs b/Content.Shared/MobState/State/SharedNormalMobState.cs index f6ec05ae90..0dddbbcf3c 100644 --- a/Content.Shared/MobState/State/SharedNormalMobState.cs +++ b/Content.Shared/MobState/State/SharedNormalMobState.cs @@ -27,11 +27,6 @@ namespace Content.Shared.MobState.State return true; } - public override bool CanMove() - { - return true; - } - public override bool CanUse() { return true; diff --git a/Content.Shared/Stunnable/SharedStunnableComponent.cs b/Content.Shared/Stunnable/SharedStunnableComponent.cs index 2ac8f3c1f5..0ca20b8b77 100644 --- a/Content.Shared/Stunnable/SharedStunnableComponent.cs +++ b/Content.Shared/Stunnable/SharedStunnableComponent.cs @@ -323,8 +323,6 @@ namespace Content.Shared.Stunnable } #region ActionBlockers - public bool CanMove() => (!Stunned); - public bool CanInteract() => (!Stunned); public bool CanUse() => (!Stunned); diff --git a/Content.Shared/Stunnable/StunSystem.cs b/Content.Shared/Stunnable/StunSystem.cs index 7f83eca61f..bd44708f96 100644 --- a/Content.Shared/Stunnable/StunSystem.cs +++ b/Content.Shared/Stunnable/StunSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Movement; using JetBrains.Annotations; using Robust.Shared.GameObjects; @@ -6,6 +7,18 @@ namespace Content.Shared.Stunnable [UsedImplicitly] internal sealed class StunSystem : EntitySystem { + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(HandleMoveAttempt); + } + + private void HandleMoveAttempt(EntityUid uid, SharedStunnableComponent component, MovementAttemptEvent args) + { + if (component.Stunned) + args.Cancel(); + } + public override void Update(float frameTime) { base.Update(frameTime); diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 38639aee97..4edf017dce 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1739,3 +1739,15 @@ Entries: - {message: Made the cloning pod and medical scanner constructible, type: Add} id: 310 time: '2021-08-08T20:21:19.0000000+00:00' +- author: TimrodDX + changes: + - {message: Fixed the light in the captain's bathroom and the inner windoor at the + science desk., type: Tweak} + id: 311 + time: '2021-08-10T00:28:11.0000000+00:00' +- author: Swept + changes: + - {message: Most belts now have restrictions for what can be inserted into them, + type: Add} + id: 312 + time: '2021-08-10T20:36:01.0000000+00:00' diff --git a/Resources/Maps/Test/empty.yml b/Resources/Maps/Test/empty.yml index cf293569fb..534b2c9cc2 100644 --- a/Resources/Maps/Test/empty.yml +++ b/Resources/Maps/Test/empty.yml @@ -11,40 +11,49 @@ tilemap: 4: floor_asteroid_coarse_sand_dug 5: floor_asteroid_sand 6: floor_asteroid_tile - 7: floor_dark - 8: floor_elevator_shaft - 9: floor_freezer - 10: floor_gold - 11: floor_green_circuit - 12: floor_hydro - 13: floor_lino - 14: floor_mono - 15: floor_reinforced - 16: floor_rock_vault - 17: floor_showroom - 18: floor_snow - 19: floor_steel - 20: floor_steel_dirty - 21: floor_techmaint - 22: floor_white - 23: floor_wood - 24: lattice - 25: plating - 26: underplating + 7: floor_blue + 8: floor_dark + 9: floor_elevator_shaft + 10: floor_freezer + 11: floor_glass + 12: floor_gold + 13: floor_green_circuit + 14: floor_hydro + 15: floor_lino + 16: floor_mono + 17: floor_reinforced + 18: floor_rglass + 19: floor_rock_vault + 20: floor_showroom + 21: floor_snow + 22: floor_steel + 23: floor_steel_dirty + 24: floor_techmaint + 25: floor_warning1 + 26: floor_warning2 + 27: floor_white + 28: floor_white_warning1 + 29: floor_white_warning2 + 30: floor_wood + 31: lattice + 32: plating + 33: underplating grids: - settings: chunksize: 16 tilesize: 1 - snapsize: 1 chunks: - ind: "-1,-1" - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAA== entities: - uid: 0 components: - parent: null - pos: 0,0 type: Transform - index: 0 type: MapGrid + - linearDamping: 0.05 + fixtures: [] + bodyType: Dynamic + type: Physics ... diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index d892095b3e..87db4ae268 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -1253,6 +1253,10 @@ entities: type: Transform - containers: CloningPod-bodyContainer: !type:ContainerSlot {} + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] type: ContainerContainer - uid: 152 type: CableHV @@ -12362,6 +12366,10 @@ entities: - -16,0 - -16,-16 id: grid_chunk--1--1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12370,6 +12378,10 @@ entities: - -16,16 - -16,0 id: grid_chunk--1-0 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12378,6 +12390,10 @@ entities: - 0,0 - 0,-16 id: grid_chunk-0--1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12386,6 +12402,10 @@ entities: - 0,16 - 0,0 id: grid_chunk-0-0 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12394,6 +12414,10 @@ entities: - 16,16 - 16,0 id: grid_chunk-1-0 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12402,6 +12426,10 @@ entities: - 0,32 - 0,16 id: grid_chunk-0-1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12410,6 +12438,10 @@ entities: - -32,16 - -32,0 id: grid_chunk--2-0 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12418,6 +12450,10 @@ entities: - 16,0 - 16,-16 id: grid_chunk-1--1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12426,6 +12462,10 @@ entities: - 0,-16 - 0,-32 id: grid_chunk-0--2 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12434,6 +12474,10 @@ entities: - 16,-16 - 16,-27 id: grid_chunk-1--2 + mask: + - MapGrid + layer: + - MapGrid mass: 143 - shape: !type:PolygonShape vertices: @@ -12442,6 +12486,10 @@ entities: - -16,32 - -16,16 id: grid_chunk--1-1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12450,6 +12498,10 @@ entities: - -3,34 - -3,32 id: grid_chunk--1-2 + mask: + - MapGrid + layer: + - MapGrid mass: 6 - shape: !type:PolygonShape vertices: @@ -12458,6 +12510,10 @@ entities: - 16,17 - 16,16 id: grid_chunk-1-1 + mask: + - MapGrid + layer: + - MapGrid mass: 2 - shape: !type:PolygonShape vertices: @@ -12466,6 +12522,10 @@ entities: - 0,34 - 0,32 id: grid_chunk-0-2 + mask: + - MapGrid + layer: + - MapGrid mass: 20 - shape: !type:PolygonShape vertices: @@ -12474,6 +12534,10 @@ entities: - 32,16 - 32,0 id: grid_chunk-2-0 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12482,6 +12546,10 @@ entities: - 48,15 - 48,0 id: grid_chunk-3-0 + mask: + - MapGrid + layer: + - MapGrid mass: 60 - shape: !type:PolygonShape vertices: @@ -12490,6 +12558,10 @@ entities: - 32,0 - 32,-16 id: grid_chunk-2--1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12498,6 +12570,10 @@ entities: - -16,-16 - -16,-31 id: grid_chunk--1--2 + mask: + - MapGrid + layer: + - MapGrid mass: 240 - shape: !type:PolygonShape vertices: @@ -12506,6 +12582,10 @@ entities: - -26,-16 - -26,-28 id: grid_chunk--2--2 + mask: + - MapGrid + layer: + - MapGrid mass: 120 - shape: !type:PolygonShape vertices: @@ -12514,6 +12594,10 @@ entities: - -32,0 - -32,-16 id: grid_chunk--2--1 + mask: + - MapGrid + layer: + - MapGrid mass: 256 - shape: !type:PolygonShape vertices: @@ -12522,6 +12606,10 @@ entities: - -42,16 - -42,0 id: grid_chunk--3-0 + mask: + - MapGrid + layer: + - MapGrid mass: 160 - shape: !type:PolygonShape vertices: @@ -12530,6 +12618,10 @@ entities: - -40,0 - -40,-13 id: grid_chunk--3--1 + mask: + - MapGrid + layer: + - MapGrid mass: 104 - shape: !type:PolygonShape vertices: @@ -12538,6 +12630,10 @@ entities: - 48,0 - 48,-16 id: grid_chunk-3--1 + mask: + - MapGrid + layer: + - MapGrid mass: 128 - shape: !type:PolygonShape vertices: @@ -12546,6 +12642,10 @@ entities: - 40,-16 - 40,-32 id: grid_chunk-2--2 + mask: + - MapGrid + layer: + - MapGrid mass: 128 - shape: !type:PolygonShape vertices: @@ -12554,6 +12654,10 @@ entities: - 48,-16 - 48,-32 id: grid_chunk-3--2 + mask: + - MapGrid + layer: + - MapGrid mass: 176 - shape: !type:PolygonShape vertices: @@ -12562,6 +12666,10 @@ entities: - 48,-32 - 48,-34 id: grid_chunk-3--3 + mask: + - MapGrid + layer: + - MapGrid mass: 22 - shape: !type:PolygonShape vertices: @@ -12570,6 +12678,10 @@ entities: - 40,-32 - 40,-34 id: grid_chunk-2--3 + mask: + - MapGrid + layer: + - MapGrid mass: 16 - shape: !type:PolygonShape vertices: @@ -12578,6 +12690,10 @@ entities: - -28,27 - -28,16 id: grid_chunk--2-1 + mask: + - MapGrid + layer: + - MapGrid mass: 132 bodyType: Dynamic type: Physics @@ -14097,10 +14213,9 @@ entities: parent: 853 type: Transform - uid: 1050 - type: ChairOfficeLight + type: Window components: - - rot: 1.5707963705062866 rad - pos: -0.5,-14.5 + - pos: 0.5,-14.5 parent: 853 type: Transform - uid: 1051 @@ -18437,6 +18552,10 @@ entities: type: Transform - containers: MedicalScanner-bodyContainer: !type:ContainerSlot {} + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] type: ContainerContainer - uid: 1545 type: CrateMaterialSteel @@ -41319,10 +41438,9 @@ entities: - airBlocked: False type: Airtight - uid: 4019 - type: WindoorMedicalLocked + type: Firelock components: - - rot: -1.5707963267948966 rad - pos: 0.5,-15.5 + - pos: 0.5,-15.5 parent: 853 type: Transform - uid: 4020 @@ -50170,9 +50288,10 @@ entities: - canCollide: False type: Physics - uid: 5083 - type: WallSolid + type: WindoorScienceLocked components: - - pos: 0.5,-14.5 + - rot: -1.5707963267948966 rad + pos: 0.5,-15.5 parent: 853 type: Transform - uid: 5084 @@ -50589,9 +50708,9 @@ entities: parent: 853 type: Transform - uid: 5135 - type: Firelock + type: LowWall components: - - pos: 0.5,-15.5 + - pos: 0.5,-14.5 parent: 853 type: Transform - uid: 5136 @@ -50690,4 +50809,23 @@ entities: - pos: -3.5,7.5 parent: 853 type: Transform +- uid: 5148 + type: ChairOfficeLight + components: + - rot: 1.5707963267948966 rad + pos: -0.5,-15.5 + parent: 853 + type: Transform +- uid: 5149 + type: CableApcExtension + components: + - anchored: True + rot: 1.5707963267948966 rad + pos: 10.5,26.5 + parent: 853 + type: Transform + - visible: False + type: Sprite + - canCollide: False + type: Physics ... diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 2d96685c81..478c7153f8 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -13,23 +13,25 @@ - type: Storage capacity: 40 # TODO: Fill this out more. - # whitelist: - # tags: - # - Wirecutter - # - Crowbar - # - CrowbarRed - # - Screwdriver - # - Flashlight - # - Welder - # - Wrench - # - Painter - # - GeigerCounter - # - Flare - # - Coilsofwire - # - - # - - # components: - # - SignalLinker + whitelist: + tags: + - Wirecutter + - Crowbar + - Screwdriver + - Flashlight + - Wrench +# - Painter +# - GeigerCounter + - Flare + - CableCoil + - CigPack + components: + - SignalLinker + - RCD + - RCDAmmo + - Welder + - Radio + - PowerCell - type: ItemCounter mapLayers: cutters_red: @@ -72,25 +74,31 @@ - type: Clothing sprite: Clothing/Belt/ce.rsi - type: Storage - # TODO: Fill this out more. - # whitelist: - # tags: - # - Wirecutter - # - Crowbar - # - CrowbarRed - # - Screwdriver - # - Flashlight - # - Welder - # - Wrench - # - Painter - # - GeigerCounter - # - Flare - # - Coilsofwire - # - - # - - # components: - # - SignalLinker capacity: 100 + # TODO: Fill this out more. + whitelist: + tags: + - Wirecutter + - Crowbar + - Screwdriver + - Flashlight + - Wrench +# - Painter +# - GeigerCounter + - Flare + - CableCoil + - Powerdrill + - JawsOfLife + - CigPack + components: + - SignalLinker + - RCD + - RCDAmmo + - Welder + - Flash + - Radio + - Handcuff + - PowerCell - type: ItemCounter mapLayers: drill: @@ -142,6 +150,17 @@ sprite: Clothing/Belt/assault.rsi - type: Storage capacity: 40 + whitelist: + tags: + - CigPack + - Taser + components: + - Stunbaton + - FlashOnTrigger + - Flash + - Handcuff + - RangedMagazine + - Ammo - type: ItemCounter mapLayers: flashbang: @@ -169,6 +188,14 @@ sprite: Clothing/Belt/janitor.rsi - type: Storage capacity: 40 + whitelist: + tags: + - Wrench + - Bottle + - Spray + - Soap + - Flashlight + - CigPack - type: ItemCounter mapLayers: bottle: @@ -179,6 +206,10 @@ whitelist: tags: - Spray + wrench: + whitelist: + tags: + - Wrench - type: Appearance visuals: - type: MappedItemVisualizer @@ -196,6 +227,20 @@ sprite: Clothing/Belt/medical.rsi - type: Storage capacity: 40 + whitelist: + tags: + - Wrench + - Bottle + - Spray + - Brutepack + - Gauze + - Ointment + - CigPack + components: + - Hypospray + - Pill + - SurgeryTool + - Radio - type: ItemCounter mapLayers: bottle: @@ -242,27 +287,29 @@ - type: Clothing sprite: Clothing/Belt/plant.rsi - type: Storage - # whitelist: - # tags: - # - BotanyHoe - # - PlantAnalyzer - # - BotanyHoe - # - BotanyShovel - # - PlantBGone - # - Bottle - # components: - # - Seed capacity: 40 + whitelist: + tags: + - BotanyHoe + # - PlantAnalyzer + - BotanyHoe + - BotanyShovel + - PlantBGone + - Bottle + - CigPack + components: + - Seed + - Smoking - type: ItemCounter mapLayers: hatchet: whitelist: tags: - BotanyHatchet - hydro: - whitelist: - tags: - - PlantAnalyzer # Dunno what to put here, should be aight. + # hydro: + # whitelist: + # tags: + # - PlantAnalyzer # Dunno what to put here, should be aight. hoe: whitelist: tags: @@ -296,6 +343,15 @@ sprite: Clothing/Belt/security.rsi - type: Storage capacity: 40 + whitelist: + tags: + - CigPack + - Taser + components: + - Stunbaton + - FlashOnTrigger + - Flash + - Handcuff - type: ItemCounter mapLayers: flashbang: @@ -324,11 +380,58 @@ sprite: Clothing/Belt/sheath.rsi - type: Storage capacity: 15 + whitelist: + tags: + - CaptainSabre + - Baguette + - Carrot + - Crowbar + - Katana + - Machete + - CombatKnife + - RodMetal1 + - Spear + components: + - Mop - type: StorageFill contents: - id: CaptainSabre - type: ItemCounter mapLayers: + sheath-bag: + whitelist: + tags: + - Baguette + sheath-carrot: + whitelist: + tags: + - Carrot + sheath-crowbar: + whitelist: + tags: + - Crowbar + sheath-crowbarr: + whitelist: + tags: + - CrowbarRed + sheath-katana: + whitelist: + tags: + - Katana + sheath-knife: + whitelist: + tags: + - Machete + - CombatKnife + sheath-mop: + whitelist: + components: + - Mop + sheath-rod: + whitelist: + tags: + - RodMetal1 + - Spear sheath-sabre: whitelist: tags: @@ -350,7 +453,10 @@ - type: Clothing sprite: Clothing/Belt/bandolier.rsi - type: Storage - capacity: 40 + capacity: 60 + whitelist: + tags: + - ShotgunShell - type: entity parent: ClothingBeltBase diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml index 5e08078666..ddac24a2f3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml @@ -317,6 +317,9 @@ id: FoodBreadBaguette description: Bon appétit! components: + - type: Tag + tags: + - Baguette - type: Sprite state: baguette # Tastes like France. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 9bb1b60596..12389559b3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -142,6 +142,9 @@ id: FoodCarrot description: It's good for the eyes! components: + - type: Tag + tags: + - Carrot - type: Food - type: SolutionContainer contents: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml index c448887047..9750b497f4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml @@ -4,87 +4,90 @@ name: cigarette pack abstract: true components: - - type: Storage - capacity: 6 - - type: Item - size: 6 - - type: StorageFill - contents: - - id: Cigarette - amount: 6 - - type: StorageCounter - countTag: Cigarette - - type: Appearance - visuals: - - type: BagOpenCloseVisualizer - openIcon: open - - type: StackVisualizer - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/visualizer.rsi - composite: true - stackLayers: - - cig1 - - cig2 - - cig3 - - cig4 - - cig5 - - cig6 + - type: Tag + tags: + - CigPack + - type: Storage + capacity: 6 + - type: Item + size: 6 + - type: StorageFill + contents: + - id: Cigarette + amount: 6 + - type: StorageCounter + countTag: Cigarette + - type: Appearance + visuals: + - type: BagOpenCloseVisualizer + openIcon: open + - type: StackVisualizer + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/visualizer.rsi + composite: true + stackLayers: + - cig1 + - cig2 + - cig3 + - cig4 + - cig5 + - cig6 - type: entity id: CigPackGreen parent: CigPackBase name: Spessman's Smokes packet - description: "A label on the packaging reads, 'Wouldn't a slow death make a change?'" + description: A label on the packaging reads, Wouldn't a slow death make a change? components: - - type: Sprite - netsync: false - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi - layers: - - state: closed - - type: Item - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi - size: 6 + - type: Sprite + netsync: false + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi + layers: + - state: closed + - type: Item + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/green.rsi + size: 6 - type: entity id: CigPackRed parent: CigPackBase name: DromedaryCo packet - description: "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." + description: The most popular brand of Space Cigarettes, sponsors of the Space Olympics. components: - - type: Sprite - netsync: false - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi - layers: - - state: closed - - type: Item - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi - size: 6 + - type: Sprite + netsync: false + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi + layers: + - state: closed + - type: Item + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/red.rsi + size: 6 - type: entity id: CigPackBlue parent: CigPackBase name: AcmeCo packet - description: "For those who somehow want to obtain the record for the most amount of cancerous tumors." + description: For those who somehow want to obtain the record for the most amount of cancerous tumors. components: - - type: Sprite - netsync: false - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi - layers: - - state: closed - - type: Item - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi - size: 6 + - type: Sprite + netsync: false + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi + layers: + - state: closed + - type: Item + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/blue.rsi + size: 6 - type: entity id: CigPackBlack parent: CigPackBase name: Nomads packet - description: "Nomads's extra strong, for when your life is more extra hard." + description: Nomads's extra strong, for when your life is more extra hard. components: - - type: Sprite - netsync: false - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi - layers: - - state: closed - - type: Item - sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi - size: 6 + - type: Sprite + netsync: false + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi + layers: + - state: closed + - type: Item + sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/black.rsi + size: 6 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml index 3c8cb802f9..b68e35f32c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/cigar.yml @@ -7,20 +7,20 @@ name: cigar description: "A brown roll of tobacco and... well, you're not quite sure." components: - - type: Smoking - duration: 70 - - type: Sprite - sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi - netsync: false - state: unlit-icon - - type: Tag - tags: - - Cigar - - type: Clothing - sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi - Slots: [ mask ] - HeldPrefix: unlit - size: 1 + - type: Smoking + duration: 70 + - type: Sprite + sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi + netsync: false + state: unlit-icon + - type: Tag + tags: + - Cigar + - type: Clothing + sprite: Objects/Consumable/Smokeables/Cigars/cigar.rsi + Slots: [ mask ] + HeldPrefix: unlit + size: 1 - type: entity id: CigarGold @@ -28,12 +28,12 @@ name: premium Havanian cigar description: "A cigar fit for only the best of the best." components: - - type: Sprite - sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi - netsync: false - state: unlit-icon - - type: Clothing - sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi - Slots: [ mask ] - HeldPrefix: unlit - size: 1 + - type: Sprite + sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi + netsync: false + state: unlit-icon + - type: Clothing + sprite: Objects/Consumable/Smokeables/Cigars/cigar-gold.rsi + Slots: [ mask ] + HeldPrefix: unlit + size: 1 diff --git a/Resources/Prototypes/Entities/Objects/Materials/parts.yml b/Resources/Prototypes/Entities/Objects/Materials/parts.yml index 9b735dc5c9..f8add04dce 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/parts.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/parts.yml @@ -46,6 +46,9 @@ name: metal rod suffix: Single components: + - type: Tag + tags: + - RodMetal1 - type: Sprite state: rods - type: Stack diff --git a/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml b/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml index d84ce1cb34..b35bf43dae 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml @@ -14,7 +14,6 @@ - type: Sprite sprite: Objects/Misc/handcuffs.rsi state: handcuff - - type: Clothing sprite: Objects/Misc/handcuffs.rsi Slots: [belt] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml index 3fd87810d5..bcf16b543d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml @@ -4,6 +4,9 @@ parent: BaseItem description: A cheap bar of soap. Doesn't smell. components: + - type: Tag + tags: + - Soap - type: Sprite sprite: Objects/Specific/Janitorial/soap.rsi state: soap diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index 5f0c26887b..80b822e0ba 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -1,9 +1,12 @@ - type: entity name: ointment - description: "Used to treat those nasty burns." + description: Used to treat those nasty burns. parent: BaseItem id: Ointment components: + - type: Tag + tags: + - Ointment - type: Sprite sprite: Objects/Specific/Medical/medical.rsi state: ointment @@ -17,24 +20,30 @@ - type: entity name: bruise pack - description: "A therapeutic gel pack and bandages designed to treat blunt-force trauma." + description: A therapeutic gel pack and bandages designed to treat blunt-force trauma. parent: Ointment id: Brutepack components: - - type: Sprite - state: brutepack - - type: Healing - heal: - Blunt: 10 - - type: Stack - stackType: Brutepack + - type: Tag + tags: + - Brutepack + - type: Sprite + state: brutepack + - type: Healing + heal: + Blunt: 10 + - type: Stack + stackType: Brutepack - type: entity name: roll of gauze - description: "Some sterile gauze to wrap around bloody stumps." + description: Some sterile gauze to wrap around bloody stumps. parent: Ointment id: Gauze components: + - type: Tag + tags: + - Gauze - type: Sprite state: gauze - type: Healing diff --git a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml index 6e57604d46..d7c9251777 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml @@ -9,16 +9,18 @@ name: cable stack suffix: Full components: - - type: Stack - stackType: Cable - - type: Sprite - sprite: Objects/Tools/cable-coils.rsi - netsync: false - - type: Item - sprite: Objects/Tools/cable-coils.rsi - - type: CablePlacer - - type: Clickable - + - type: Tag + tags: + - CableCoil + - type: Stack + stackType: Cable + - type: Sprite + sprite: Objects/Tools/cable-coils.rsi + netsync: false + - type: Item + sprite: Objects/Tools/cable-coils.rsi + - type: CablePlacer + - type: Clickable - type: entity id: CableHVStack @@ -26,35 +28,35 @@ name: HV cable coil suffix: Full components: - - type: Stack - stackType: CableHV - - type: Sprite - state: coilhv-30 - - type: Item - size: 10 - HeldPrefix: coilhv - - type: CablePlacer - cablePrototypeID: CableHV - blockingCableType: HighVoltage - - type: Appearance - visuals: - - type: StackVisualizer - stackLayers: - - coilhv-10 - - coilhv-20 - - coilhv-30 + - type: Stack + stackType: CableHV + - type: Sprite + state: coilhv-30 + - type: Item + size: 10 + HeldPrefix: coilhv + - type: CablePlacer + cablePrototypeID: CableHV + blockingCableType: HighVoltage + - type: Appearance + visuals: + - type: StackVisualizer + stackLayers: + - coilhv-10 + - coilhv-20 + - coilhv-30 - type: entity parent: CableHVStack id: CableHVStack1 suffix: 1 components: - - type: Sprite - state: coilhv-10 - - type: Item - size: 3 - - type: Stack - count: 1 + - type: Sprite + state: coilhv-10 + - type: Item + size: 3 + - type: Stack + count: 1 - type: entity parent: CableStack @@ -63,33 +65,33 @@ description: Low-Voltage stack of wires for connecting APCs to machines and other purposes. suffix: Full components: - - type: Sprite - state: coillv-30 - - type: Item - size: 10 - HeldPrefix: coillv - - type: CablePlacer - cablePrototypeID: CableApcExtension - blockingCableType: Apc - - type: Appearance - visuals: - - type: StackVisualizer - stackLayers: - - coillv-10 - - coillv-20 - - coillv-30 + - type: Sprite + state: coillv-30 + - type: Item + size: 10 + HeldPrefix: coillv + - type: CablePlacer + cablePrototypeID: CableApcExtension + blockingCableType: Apc + - type: Appearance + visuals: + - type: StackVisualizer + stackLayers: + - coillv-10 + - coillv-20 + - coillv-30 - type: entity parent: CableApcStack id: CableApcStack1 suffix: 1 components: - - type: Sprite - state: coillv-10 - - type: Item - size: 3 - - type: Stack - count: 1 + - type: Sprite + state: coillv-10 + - type: Item + size: 3 + - type: Stack + count: 1 - type: entity parent: CableStack @@ -97,32 +99,32 @@ name: MV cable coil suffix: Full components: - - type: Stack - stackType: CableMV - - type: Sprite - state: coilmv-30 - - type: Item - size: 10 - HeldPrefix: coilmv - - type: CablePlacer - cablePrototypeID: CableMV - blockingCableType: MediumVoltage - - type: Appearance - visuals: - - type: StackVisualizer - stackLayers: - - coilmv-10 - - coilmv-20 - - coilmv-30 + - type: Stack + stackType: CableMV + - type: Sprite + state: coilmv-30 + - type: Item + size: 10 + HeldPrefix: coilmv + - type: CablePlacer + cablePrototypeID: CableMV + blockingCableType: MediumVoltage + - type: Appearance + visuals: + - type: StackVisualizer + stackLayers: + - coilmv-10 + - coilmv-20 + - coilmv-30 - type: entity parent: CableMVStack id: CableMVStack1 suffix: 1 components: - - type: Sprite - state: coilmv-10 - - type: Item - size: 3 - - type: Stack - count: 1 + - type: Sprite + state: coilmv-10 + - type: Item + size: 3 + - type: Stack + count: 1 diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml index 984b99cabe..06d0a57b55 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flare.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -1,77 +1,80 @@ - type: entity name: emergency flare # todo: we need some sort of IgnitionSourceComponent we can add to this, so when it's lit it will cause fires when touching fuel parent: BaseItem - id: FlareBase + id: Flare description: A flare that produces a very bright light for a short while. Point the flame away from yourself. components: - - type: ExpendableLight - spentName: spent flare - spentDesc: It looks like this flare has burnt out. What a bummer. - glowDuration: 150 - fadeOutDuration: 4 - iconStateOn: flare_unlit - iconStateSpent: flare_spent - turnOnBehaviourID: turn_on - fadeOutBehaviourID: fade_out - litSound: - path: /Audio/Items/Flare/flare_on.ogg - loopedSound: /Audio/Items/Flare/flare_burn.ogg - - type: Sprite - sprite: Objects/Misc/flare.rsi - layers: - - state: flare_base - - state: flare_burn - color: "#FFFFFF" - visible: false - shader: unshaded - - state: flare_unlit - color: "#FF0000" - - type: Icon - sprite: Objects/Misc/flare.rsi - state: icon - - type: Item - sprite: Objects/Misc/flare.rsi - color: "#FF0000" - HeldPrefix: unlit - - type: Appearance - visuals: - - type: ExpendableLightVisualizer - - type: PointLight - enabled: false - color: "#FF8080" - radius: 1.0 - energy: 9.0 - - type: LightBehaviour - behaviours: - - !type:RandomizeBehaviour # immediately make it bright and flickery - id: turn_on - interpolate: Nearest - minDuration: 0.02 - maxDuration: 0.06 - startValue: 6.0 - endValue: 9.0 - property: Energy - isLooped: true - - !type:FadeBehaviour # have the radius start small and get larger as it starts to burn - id: turn_on - interpolate: Linear - maxDuration: 8.0 - startValue: 1.0 - endValue: 6.0 - property: Radius - - !type:RandomizeBehaviour # weaker flicker as it fades out - id: fade_out - interpolate: Nearest - minDuration: 0.02 - maxDuration: 0.06 - startValue: 4.0 - endValue: 8.0 - property: Energy - isLooped: true - - !type:FadeBehaviour # fade out radius as it burns out - id: fade_out - interpolate: Linear - maxDuration: 4.0 - startValue: 6.0 - endValue: 1.0 - property: Radius + - type: Tag + tags: + - Flare + - type: ExpendableLight + spentName: spent flare + spentDesc: It looks like this flare has burnt out. What a bummer. + glowDuration: 150 + fadeOutDuration: 4 + iconStateOn: flare_unlit + iconStateSpent: flare_spent + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: + path: /Audio/Items/Flare/flare_on.ogg + loopedSound: /Audio/Items/Flare/flare_burn.ogg + - type: Sprite + sprite: Objects/Misc/flare.rsi + layers: + - state: flare_base + - state: flare_burn + color: "#FFFFFF" + visible: false + shader: unshaded + - state: flare_unlit + color: "#FF0000" + - type: Icon + sprite: Objects/Misc/flare.rsi + state: icon + - type: Item + sprite: Objects/Misc/flare.rsi + color: "#FF0000" + HeldPrefix: unlit + - type: Appearance + visuals: + - type: ExpendableLightVisualizer + - type: PointLight + enabled: false + color: "#FF8080" + radius: 1.0 + energy: 9.0 + - type: LightBehaviour + behaviours: + - !type:RandomizeBehaviour # immediately make it bright and flickery + id: turn_on + interpolate: Nearest + minDuration: 0.02 + maxDuration: 0.06 + startValue: 6.0 + endValue: 9.0 + property: Energy + isLooped: true + - !type:FadeBehaviour # have the radius start small and get larger as it starts to burn + id: turn_on + interpolate: Linear + maxDuration: 8.0 + startValue: 1.0 + endValue: 6.0 + property: Radius + - !type:RandomizeBehaviour # weaker flicker as it fades out + id: fade_out + interpolate: Nearest + minDuration: 0.02 + maxDuration: 0.06 + startValue: 4.0 + endValue: 8.0 + property: Energy + isLooped: true + - !type:FadeBehaviour # fade out radius as it burns out + id: fade_out + interpolate: Linear + maxDuration: 4.0 + startValue: 6.0 + endValue: 1.0 + property: Radius diff --git a/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml b/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml index 80ffa05614..2e8d8954a9 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml @@ -4,25 +4,28 @@ id: FlashlightLantern description: It lights the way to freedom. components: - - type: HandheldLight - - type: ItemActions - actions: - - actionType: ToggleLight - - type: PowerCellSlot - startingCellType: PowerCellSmallHigh - - type: Sprite - sprite: Objects/Tools/flashlight.rsi - layers: - - state: lantern_off - - state: HandheldLightOnOverlay - shader: unshaded - visible: false - - type: Item - sprite: Objects/Tools/flashlight.rsi - HeldPrefix: off - - type: PointLight - enabled: false - radius: 3 - - type: Appearance - visuals: - - type: FlashLightVisualizer + - type: Tag + tags: + - Flashlight + - type: HandheldLight + - type: ItemActions + actions: + - actionType: ToggleLight + - type: PowerCellSlot + startingCellType: PowerCellSmallHigh + - type: Sprite + sprite: Objects/Tools/flashlight.rsi + layers: + - state: lantern_off + - state: HandheldLightOnOverlay + shader: unshaded + visible: false + - type: Item + sprite: Objects/Tools/flashlight.rsi + HeldPrefix: off + - type: PointLight + enabled: false + radius: 3 + - type: Appearance + visuals: + - type: FlashLightVisualizer diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index b2f2ff1f24..af8dfc7c1d 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -122,6 +122,7 @@ components: - type: Tag tags: + - Crowbar - CrowbarRed - type: Sprite sprite: Objects/Tools/crowbar_red.rsi diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml index 24790b676f..5d7e0cb237 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml @@ -4,6 +4,9 @@ parent: BaseItem abstract: true components: + - type: Tag + tags: + - ShotgunShell - type: Ammo caliber: Shotgun ammoSpread: 40 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 75d69d611e..a6269680b5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -126,6 +126,9 @@ id: TaserGun description: A low-capacity, energy-based stun gun used by security teams to subdue targets at range. components: + - type: Tag + tags: + - Taser - type: Sprite netsync: false sprite: Objects/Weapons/Guns/Battery/taser.rsi diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 05b7e46d44..ecfa266739 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -3,6 +3,9 @@ id: BaseKnife abstract: true components: + - type: Tag + tags: + - Knife - type: Utensil types: - Knife @@ -21,11 +24,13 @@ id: KitchenKnife description: A general purpose Chef's Knife made by Asters Merchant Guild. Guaranteed to stay sharp for years to come.. components: + - type: Tag + tags: + - Knife - type: Sprite sprite: Objects/Weapons/Melee/kitchen_knife.rsi size: 2 state: icon - - type: Item size: 10 sprite: Objects/Weapons/Melee/kitchen_knife.rsi @@ -38,11 +43,13 @@ id: ButchCleaver description: A huge blade used for chopping and chopping up meat. This includes clowns and clown-by-products. components: + - type: Tag + tags: + - Knife - type: Sprite sprite: Objects/Weapons/Melee/cleaver.rsi size: 4 state: butch - - type: MeleeWeapon damage: 15 - type: Item @@ -56,6 +63,10 @@ id: CombatKnife description: A deadly knife intended for melee confrontations. components: + - type: Tag + tags: + - CombatKnife + - Knife - type: Sprite sprite: Objects/Weapons/Melee/combat_knife.rsi size: 2 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml index 343ae38299..3e151f89e4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml @@ -4,6 +4,9 @@ id: Spear description: Definition of a Classic. Keeping murder affordable since 200,000 BCE. components: + - type: Tag + tags: + - Spear - type: Sprite sprite: Objects/Weapons/Melee/spear.rsi state: spear diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml index f244df99a5..c2e58883f2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml @@ -23,6 +23,9 @@ id: Katana description: Ancient craftwork made with not so ancient plasteel. components: + - type: Tag + tags: + - Katana - type: Sprite sprite: Objects/Weapons/Melee/katana.rsi state: icon @@ -39,6 +42,9 @@ id: Machete description: A large, vicious looking blade. components: + - type: Tag + tags: + - Machete - type: Sprite sprite: Objects/Weapons/Melee/machete.rsi state: icon diff --git a/Resources/Prototypes/Recipes/Lathes/misc.yml b/Resources/Prototypes/Recipes/Lathes/misc.yml index 81ba54ceb8..73e528f1f1 100644 --- a/Resources/Prototypes/Recipes/Lathes/misc.yml +++ b/Resources/Prototypes/Recipes/Lathes/misc.yml @@ -34,9 +34,9 @@ Plastic: 50 - type: latheRecipe - id: FlareBase + id: Flare icon: Objects/Misc/flare.rsi - result: FlareBase + result: Flare completetime: 500 materials: Plastic: 50 diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 3b4028d5e7..c66e905f1c 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1,3 +1,9 @@ +- type: Tag + id: Baguette + +- type: Tag + id: Brutepack + - type: Tag id: BotanyHatchet @@ -13,12 +19,21 @@ - type: Tag id: Bottle +- type: Tag + id: CableCoil + +- type: Tag + id: Carrot + - type: Tag id: CanPilot - type: Tag id: CaptainSabre +- type: Tag + id: CigPack + - type: Tag id: Crayon @@ -55,6 +70,9 @@ - type: Tag id: ConveyorAssembly +- type: Tag + id: CombatKnife + - type: Tag id: DoorElectronics @@ -73,9 +91,18 @@ - type: Tag id: FirelockElectronics +- type: Tag + id: Flare + +- type: Tag + id: Flashlight + - type: Tag id: FootstepSound +- type: Tag + id: Gauze + - type: Tag id: GlassBeaker @@ -91,12 +118,24 @@ - type: Tag id: JawsOfLife +- type: Tag + id: Katana + +- type: Tag + id: Knife + +- type: Tag + id: Machete + - type: Tag id: MonkeyCube - type: Tag id: NoSpinOnThrow +- type: Tag + id: Ointment + - type: Tag id: Ore @@ -115,6 +154,9 @@ - type: Tag id: Powerdrill +- type: Tag + id: RodMetal1 + - type: Tag id: RollingPaper @@ -124,12 +166,24 @@ - type: Tag id: Sheet +- type: Tag + id: ShotgunShell + - type: Tag id: Shovel +- type: Tag + id: Soap + - type: Tag id: Spray +- type: Tag + id: Spear + +- type: Tag + id: Taser + - type: Tag id: Wall diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/meta.json b/Resources/Textures/Clothing/Belt/sheath.rsi/meta.json index 13c88a8821..315422c42d 100644 --- a/Resources/Textures/Clothing/Belt/sheath.rsi/meta.json +++ b/Resources/Textures/Clothing/Belt/sheath.rsi/meta.json @@ -15,6 +15,30 @@ "name": "sheath-sabre-equipped-BELT", "directions": 4 }, + { + "name": "sheath-bag" + }, + { + "name": "sheath-carrot" + }, + { + "name": "sheath-crowbar" + }, + { + "name": "sheath-crowbarr" + }, + { + "name": "sheath-katana" + }, + { + "name": "sheath-knife" + }, + { + "name": "sheath-mop" + }, + { + "name": "sheath-rod" + }, { "name": "sheath-sabre" }, diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-bag.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-bag.png new file mode 100644 index 0000000000..81091d9a61 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-bag.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-carrot.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-carrot.png new file mode 100644 index 0000000000..f9c3f6d753 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-carrot.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbar.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbar.png new file mode 100644 index 0000000000..c7e735941f Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbar.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbarr.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbarr.png new file mode 100644 index 0000000000..c763911d14 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-crowbarr.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-katana.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-katana.png new file mode 100644 index 0000000000..ba44c6a143 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-katana.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-knife.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-knife.png new file mode 100644 index 0000000000..b85a4db7b2 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-knife.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-mop.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-mop.png new file mode 100644 index 0000000000..5f311b7cac Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-mop.png differ diff --git a/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-rod.png b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-rod.png new file mode 100644 index 0000000000..14e533d062 Binary files /dev/null and b/Resources/Textures/Clothing/Belt/sheath.rsi/sheath-rod.png differ diff --git a/RobustToolbox b/RobustToolbox index d58e380dd9..feba2a23ad 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit d58e380dd9dfbcc32316f0064193fdd9d61ef7a5 +Subproject commit feba2a23ad4a7d74ad4ec16a26ab2e758ed07512