From d52cbdc18e1b4404e6a9096a5e32d7c2d7292b13 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 2 Dec 2022 03:51:53 -0500 Subject: [PATCH 01/19] Rephrase panic bunker denial messages (#12827) * Rephrase panic bunker denial messages * ike and his infinite wisdom --- Resources/Locale/en-US/connection-messages.ftl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Locale/en-US/connection-messages.ftl b/Resources/Locale/en-US/connection-messages.ftl index 2c66ce358b..b62dec9d68 100644 --- a/Resources/Locale/en-US/connection-messages.ftl +++ b/Resources/Locale/en-US/connection-messages.ftl @@ -22,7 +22,7 @@ ban-banned-1 = You, or another user of this computer or connection, are banned f ban-banned-2 = The ban reason is: "{$reason}" soft-player-cap-full = The server is full! -panic-bunker-account-denied = This server is in Panic mode and you were rejected. Contact the server administrator for help. -panic-bunker-account-denied-reason = This server is in Panic mode and you were rejected. Reason: "{$reason}" -panic-bunker-account-reason-account = Age of account must be more that {$minutes} minutes -panic-bunker-account-reason-overall = Minimum required overall playing time {$hours} hours +panic-bunker-account-denied = This server is in panic bunker mode. New connections are not being accepted at this time. Try again later +panic-bunker-account-denied-reason = This server is in panic bunker mode and you were rejected. Reason: "{$reason}" +panic-bunker-account-reason-account = The account's age must be older than {$minutes} minutes +panic-bunker-account-reason-overall = The account's overall playtime must be greater than {$hours} hours From 64f57aceb2f0be7e62c94f55b3a3e50138bc3ff8 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 2 Dec 2022 17:46:58 -0500 Subject: [PATCH 02/19] genericize ui fragments (#12810) --- .../CartridgeLoaderBoundUserInterface.cs | 9 +++++---- .../CartridgeLoader/CartridgeUiComponent.cs | 14 -------------- .../CartridgeLoader/Cartridges/NetProbeUi.cs | 5 +++-- .../CartridgeLoader/Cartridges/NotekeeperUi.cs | 6 +++--- .../Fragments/UIFragment.cs} | 6 +++--- .../Fragments/UiFragmentComponent.cs | 15 +++++++++++++++ Content.Server/Entry/IgnoredComponents.cs | 2 +- .../Entities/Objects/Devices/cartridges.yml | 4 ++-- 8 files changed, 32 insertions(+), 29 deletions(-) delete mode 100644 Content.Client/CartridgeLoader/CartridgeUiComponent.cs rename Content.Client/{CartridgeLoader/CartridgeUI.cs => UserInterface/Fragments/UIFragment.cs} (68%) create mode 100644 Content.Client/UserInterface/Fragments/UiFragmentComponent.cs diff --git a/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs b/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs index c07f14c6e9..aaa17b7976 100644 --- a/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs +++ b/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs @@ -1,4 +1,5 @@ -using Content.Shared.CartridgeLoader; +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader; using Robust.Client.GameObjects; using Robust.Client.UserInterface; @@ -10,7 +11,7 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface [Dependency] private readonly IEntityManager? _entityManager = default!; private EntityUid? _activeProgram; - private CartridgeUI? _activeCartridgeUI; + private UIFragment? _activeCartridgeUI; private Control? _activeUiFragment; protected CartridgeLoaderBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) @@ -127,9 +128,9 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface SendMessage(message); } - private CartridgeUI? RetrieveCartridgeUI(EntityUid? cartridgeUid) + private UIFragment? RetrieveCartridgeUI(EntityUid? cartridgeUid) { - var component = _entityManager?.GetComponentOrNull(cartridgeUid); + var component = _entityManager?.GetComponentOrNull(cartridgeUid); component?.Ui?.Setup(this); return component?.Ui; } diff --git a/Content.Client/CartridgeLoader/CartridgeUiComponent.cs b/Content.Client/CartridgeLoader/CartridgeUiComponent.cs deleted file mode 100644 index c0e62cdaae..0000000000 --- a/Content.Client/CartridgeLoader/CartridgeUiComponent.cs +++ /dev/null @@ -1,14 +0,0 @@ - -namespace Content.Client.CartridgeLoader; - -/// -/// The component used for defining which ui fragment to use for a cartridge -/// -/// -/// -[RegisterComponent] -public sealed class CartridgeUiComponent : Component -{ - [DataField("ui", true)] - public CartridgeUI? Ui = default; -} diff --git a/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs b/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs index 0dfb9cd2f7..7846b120f9 100644 --- a/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs +++ b/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs @@ -1,10 +1,11 @@ -using Content.Shared.CartridgeLoader.Cartridges; +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader.Cartridges; using Robust.Client.GameObjects; using Robust.Client.UserInterface; namespace Content.Client.CartridgeLoader.Cartridges; -public sealed class NetProbeUi : CartridgeUI +public sealed class NetProbeUi : UIFragment { private NetProbeUiFragment? _fragment; diff --git a/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs b/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs index df4667ed2a..74ec1032b1 100644 --- a/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs +++ b/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs @@ -1,15 +1,15 @@ -using Content.Shared.CartridgeLoader; +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader; using Content.Shared.CartridgeLoader.Cartridges; using Robust.Client.GameObjects; using Robust.Client.UserInterface; namespace Content.Client.CartridgeLoader.Cartridges; -public sealed class NotekeeperUi : CartridgeUI +public sealed class NotekeeperUi : UIFragment { private NotekeeperUiFragment? _fragment; - public override Control GetUIFragmentRoot() { return _fragment!; diff --git a/Content.Client/CartridgeLoader/CartridgeUI.cs b/Content.Client/UserInterface/Fragments/UIFragment.cs similarity index 68% rename from Content.Client/CartridgeLoader/CartridgeUI.cs rename to Content.Client/UserInterface/Fragments/UIFragment.cs index 7cbeb499ca..5d09754826 100644 --- a/Content.Client/CartridgeLoader/CartridgeUI.cs +++ b/Content.Client/UserInterface/Fragments/UIFragment.cs @@ -1,10 +1,10 @@ using Robust.Client.GameObjects; using Robust.Client.UserInterface; -namespace Content.Client.CartridgeLoader; +namespace Content.Client.UserInterface.Fragments; /// -/// Cartridge ui fragments need to inherit this class. The subclass is then used in yaml to tell the cartridge loader ui to use it as the cartridges ui fragment. +/// Specific ui fragments need to inherit this class. The subclass is then used in yaml to tell a main ui to use it as a ui fragment. /// /// /// This is an example from the yaml definition from the notekeeper ui @@ -14,7 +14,7 @@ namespace Content.Client.CartridgeLoader; /// /// [ImplicitDataDefinitionForInheritors] -public abstract class CartridgeUI +public abstract class UIFragment { public abstract Control GetUIFragmentRoot(); diff --git a/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs b/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs new file mode 100644 index 0000000000..4b7f5fcebd --- /dev/null +++ b/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs @@ -0,0 +1,15 @@ +namespace Content.Client.UserInterface.Fragments; + +/// +/// The component used for defining a ui fragment to attach to an entity +/// +/// +/// This is used primarily for PDA cartridges. +/// +/// +[RegisterComponent] +public sealed class UIFragmentComponent : Component +{ + [DataField("ui", true)] + public UIFragment? Ui; +} diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs index c92523e27f..559bc3b8a1 100644 --- a/Content.Server/Entry/IgnoredComponents.cs +++ b/Content.Server/Entry/IgnoredComponents.cs @@ -15,7 +15,7 @@ namespace Content.Server.Entry "ClientEntitySpawner", "HandheldGPS", "CableVisualizer", - "CartridgeUi", + "UIFragment", "PDABorderColor", }; } diff --git a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml index 1266002640..7b102b27bc 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml @@ -11,7 +11,7 @@ - type: Icon sprite: Objects/Devices/cartridge.rsi state: cart-y - - type: CartridgeUi + - type: UIFragment ui: !type:NotekeeperUi - type: Cartridge programName: notekeeper-program-name @@ -33,7 +33,7 @@ - type: Icon sprite: Objects/Devices/cartridge.rsi state: cart-y - - type: CartridgeUi + - type: UIFragment ui: !type:NetProbeUi - type: Cartridge programName: net-probe-program-name From af51e67e1c606cd2c5c610c915db6948fc08063d Mon Sep 17 00:00:00 2001 From: eoineoineoin Date: Sat, 3 Dec 2022 01:13:09 +0000 Subject: [PATCH 03/19] Add a label to make lathe UI clearer (#12805) Co-authored-by: Eoin Mcloughlin --- Content.Client/Lathe/UI/LatheMenu.xaml | 18 ++++++++++++------ Resources/Locale/en-US/lathe/ui/lathe-menu.ftl | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Content.Client/Lathe/UI/LatheMenu.xaml b/Content.Client/Lathe/UI/LatheMenu.xaml index b65cbf2766..fef6d9a171 100644 --- a/Content.Client/Lathe/UI/LatheMenu.xaml +++ b/Content.Client/Lathe/UI/LatheMenu.xaml @@ -65,12 +65,18 @@ VerticalExpand="True"> - - + + Date: Fri, 2 Dec 2022 19:13:27 -0600 Subject: [PATCH 04/19] Fix addhand command (#12836) --- Content.Server/Body/Commands/AddHandCommand.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Content.Server/Body/Commands/AddHandCommand.cs b/Content.Server/Body/Commands/AddHandCommand.cs index 11fcedcdb2..c056553207 100644 --- a/Content.Server/Body/Commands/AddHandCommand.cs +++ b/Content.Server/Body/Commands/AddHandCommand.cs @@ -23,11 +23,6 @@ namespace Content.Server.Body.Commands public void Execute(IConsoleShell shell, string argStr, string[] args) { var player = shell.Player as IPlayerSession; - if (args.Length > 1) - { - shell.WriteLine(Help); - return; - } var entityManager = IoCManager.Resolve(); var prototypeManager = IoCManager.Resolve(); From 5fedbf329f6f1822204d62175a883d6e60f61e5d Mon Sep 17 00:00:00 2001 From: jicksaw Date: Sat, 3 Dec 2022 03:15:59 +0200 Subject: [PATCH 05/19] Clear chat input when focus is released with Esc (#12823) --- .../UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs index 663cb3dd0a..1f00af0fe1 100644 --- a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs +++ b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs @@ -168,6 +168,7 @@ public partial class ChatBox : UIWidget if (args.Function == EngineKeyFunctions.TextReleaseFocus) { ChatInput.Input.ReleaseKeyboardFocus(); + ChatInput.Input.Clear(); args.Handle(); return; } From 9bac570fb0e1a0694a1a355e44508505446b35be Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 2 Dec 2022 20:17:02 -0500 Subject: [PATCH 06/19] Automatic changelog update --- Resources/Changelog/Changelog.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 06daa18fd3..903e3cc04c 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,9 +1,4 @@ Entries: -- author: JustinTrotter - changes: - - {message: Increased stripping menu height and reordered inventory, type: Tweak} - id: 2213 - time: '2022-09-01T02:21:02.0000000+00:00' - author: 20kdc changes: - {message: 'Salvages now spawn somewhere near the salvage magnet, rather than directly @@ -2949,3 +2944,8 @@ Entries: - {message: Kick AFK players, type: Add} id: 2712 time: '2022-12-01T16:38:20.0000000+00:00' +- author: jick + changes: + - {message: Escape key clears chat input, type: Tweak} + id: 2713 + time: '2022-12-03T01:15:59.0000000+00:00' From fcf5eeb6350dd4b075b44ccc02047ea769da9092 Mon Sep 17 00:00:00 2001 From: Easypoller <117361103+Easypoller@users.noreply.github.com> Date: Sat, 3 Dec 2022 02:18:51 +0100 Subject: [PATCH 07/19] Added orderable crates for medical emergencies (#12815) --- .../catalog/cargo/cargo-medical.ftl | 18 ++++++ .../catalog/fills/crates/medical-crates.ftl | 18 ++++++ .../Catalog/Cargo/cargo_medical.yml | 60 +++++++++++++++++++ .../Catalog/Fills/Crates/medical.yml | 54 +++++++++++++++++ 4 files changed, 150 insertions(+) diff --git a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-medical.ftl b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-medical.ftl index f5ca9f6447..9189ef9869 100644 --- a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-medical.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-medical.ftl @@ -3,3 +3,21 @@ ent-MedicalSupplies = { ent-CrateMedicalSupplies } ent-MedicalChemistrySupplies = { ent-CrateChemistrySupplies } .desc = { ent-CrateChemistrySupplies.desc } + +ent-EmergencyBurnKit = { ent-CrateEmergencyBurnKit } + .desc = { ent-CrateEmergencyBurnKit.desc } + +ent-EmergencyToxinKit = { ent-CrateEmergencyToxinKit } + .desc = { ent-CrateEmergencyToxinKit.desc } + +ent-EmergencyO2Kit = { ent-CrateEmergencyO2Kit } + .desc = { ent-CrateEmergencyO2Kit.desc } + +ent-EmergencyBruteKit = { ent-CrateEmergencyBruteKit } + .desc = { ent-CrateEmergencyBruteKit.desc } + +ent-EmergencyAdvancedKit = { ent-CrateEmergencyAdvancedKit } + .desc = { ent-CrateEmergencyAdvancedKit.desc } + +ent-EmergencyRadiationKit = { ent-CrateEmergencyRadiationKit } + .desc = { ent-CrateEmergencyRadiationKit.desc } \ No newline at end of file diff --git a/Resources/Locale/en-US/prototypes/catalog/fills/crates/medical-crates.ftl b/Resources/Locale/en-US/prototypes/catalog/fills/crates/medical-crates.ftl index 8f1583e6e1..506e718823 100644 --- a/Resources/Locale/en-US/prototypes/catalog/fills/crates/medical-crates.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/fills/crates/medical-crates.ftl @@ -11,3 +11,21 @@ ent-CrateMedicalSurgery = Surgical supplies crate ent-CrateMedicalScrubs = Medical scrubs crate .desc = Medical clothings. + +ent-CrateEmergencyBurnKit = Emergency burn kit + .desc = Crate filled with four burn treatment kits + +ent-CrateEmergencyToxinKit = Emergency toxin kit + .desc = Crate filled with four toxin treatment kits + +ent-CrateEmergencyO2Kit = Emergency O2 kit + .desc = Crate filled with four O2 treatment kits + +ent-CrateEmergencyBruteKit = Emergency brute kit + .desc = Crate filled with four brute treatment kits + +ent-CrateEmergencyAdvancedKit = Emergency advanced kit + .desc = Crate filled with four advanced treatment kits + +ent-CrateEmergencyRadiationKit = Emergency radiation kit + .desc = Crate filled with four radiation treatment kits \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml index 40b0708f45..ae1e6d2b0b 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml @@ -17,3 +17,63 @@ cost: 750 category: Medical group: market + +- type: cargoProduct + id: EmergencyBurnKit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: burnkit + product: CrateEmergencyBurnKit + cost: 2100 + category: Medical + group: market + +- type: cargoProduct + id: EmergencyToxinKit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: toxinkit + product: CrateEmergencyToxinKit + cost: 700 + category: Medical + group: market + +- type: cargoProduct + id: EmergencyO2Kit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: o2kit + product: CrateEmergencyO2Kit + cost: 1100 + category: Medical + group: market + +- type: cargoProduct + id: EmergencyBruteKit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: brutekit + product: CrateEmergencyBruteKit + cost: 3600 + category: Medical + group: market + +- type: cargoProduct + id: EmergencyAdvancedKit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: advkit + product: CrateEmergencyAdvancedKit + cost: 3700 + category: Medical + group: market + +- type: cargoProduct + id: EmergencyRadiationKit + icon: + sprite: Objects/Specific/Medical/firstaidkits.rsi + state: radkit + product: CrateEmergencyRadiationKit + cost: 2500 + category: Medical + group: market \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml index b96b0a5394..faeb7ac7a3 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml @@ -82,3 +82,57 @@ amount: 1 - id: ClothingMaskSterile amount: 3 + +- type: entity + id: CrateEmergencyBurnKit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitBurnFilled + amount: 4 + +- type: entity + id: CrateEmergencyToxinKit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitToxinFilled + amount: 4 + +- type: entity + id: CrateEmergencyO2Kit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitOxygenFilled + amount: 4 + +- type: entity + id: CrateEmergencyBruteKit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitBruteFilled + amount: 4 + +- type: entity + id: CrateEmergencyAdvancedKit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitAdvancedFilled + amount: 4 + +- type: entity + id: CrateEmergencyRadiationKit + parent: CrateMedical + components: + - type: StorageFill + contents: + - id: MedkitRadiationFilled + amount: 4 \ No newline at end of file From 9da3be09e096bf27b61e4e37cc73fbd11f13397e Mon Sep 17 00:00:00 2001 From: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com> Date: Fri, 2 Dec 2022 19:19:44 -0600 Subject: [PATCH 08/19] Improve ingestion logging (#12839) --- Content.Server/Nutrition/EntitySystems/DrinkSystem.cs | 11 +++++++++++ Content.Server/Nutrition/EntitySystems/FoodSystem.cs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs index 37dae47d85..7e726aceeb 100644 --- a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs @@ -261,6 +261,11 @@ namespace Content.Server.Nutrition.EntitySystems // logging _adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(user):user} is forcing {ToPrettyString(target):target} to drink {ToPrettyString(drink.Owner):drink} {SolutionContainerSystem.ToPrettyString(drinkSolution)}"); } + else + { + // log voluntary drinking + _adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(target):target} is drinking {ToPrettyString(drink.Owner):drink} {SolutionContainerSystem.ToPrettyString(drinkSolution)}"); + } drink.CancelToken = new CancellationTokenSource(); var moveBreak = user != target; @@ -351,6 +356,9 @@ namespace Content.Server.Nutrition.EntitySystems _popupSystem.PopupEntity( Loc.GetString("drink-component-force-feed-success-user", ("target", targetName)), args.User, Filter.Entities(args.User)); + + // log successful forced drinking + _adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(uid):user} forced {ToPrettyString(args.User):target} to drink {ToPrettyString(args.Drink.Owner):drink}"); } else { @@ -359,6 +367,9 @@ namespace Content.Server.Nutrition.EntitySystems Filter.Entities(args.User)); _popupSystem.PopupEntity( Loc.GetString("drink-component-try-use-drink-success-slurp"), args.User, Filter.PvsExcept(args.User)); + + // log successful voluntary drinking + _adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(args.User):target} drank {ToPrettyString(args.Drink.Owner):drink}"); } SoundSystem.Play(args.Drink.UseSound.GetSound(), Filter.Pvs(uid), uid, AudioParams.Default.WithVolume(-2f)); diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 8c9033e1c3..c00313432e 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -125,6 +125,11 @@ namespace Content.Server.Nutrition.EntitySystems // logging _adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(user):user} is forcing {ToPrettyString(target):target} to eat {ToPrettyString(food.Owner):food} {SolutionContainerSystem.ToPrettyString(foodSolution)}"); } + else + { + // log voluntary eating + _adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(target):target} is eating {ToPrettyString(food.Owner):food} {SolutionContainerSystem.ToPrettyString(foodSolution)}"); + } var moveBreak = user != target; @@ -193,10 +198,16 @@ namespace Content.Server.Nutrition.EntitySystems _popupSystem.PopupEntity(Loc.GetString("food-system-force-feed-success-user", ("target", targetName)), args.User, Filter.Entities(args.User)); + + // log successful force feed + _adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(uid):user} forced {ToPrettyString(args.User):target} to eat {ToPrettyString(args.Food.Owner):food}"); } else { _popupSystem.PopupEntity(Loc.GetString(args.Food.EatMessage, ("food", args.Food.Owner), ("flavors", flavors)), args.User, Filter.Entities(args.User)); + + // log successful voluntary eating + _adminLogger.Add(LogType.Ingestion, LogImpact.Low, $"{ToPrettyString(args.User):target} ate {ToPrettyString(args.Food.Owner):food}"); } SoundSystem.Play(args.Food.UseSound.GetSound(), Filter.Pvs(uid), uid, AudioParams.Default.WithVolume(-1f)); From 6f651aba135b938f2fa1c395ce60db1d0268bbb5 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Sat, 3 Dec 2022 01:20:38 +0000 Subject: [PATCH 09/19] welding modular mines/grenades to salvage them (#12701) --- .../Construction/Graphs/weapons/modular_grenade.yml | 11 ++++++++++- .../Construction/Graphs/weapons/modular_mine.yml | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_grenade.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_grenade.yml index f2240fe18e..7f93512811 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_grenade.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_grenade.yml @@ -21,6 +21,15 @@ steps: - material: Cable doAfter: 0.5 + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 5 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 2 - node: wiredCase entity: ModularGrenade @@ -80,4 +89,4 @@ doAfter: 0.5 completed: - !type:EmptyContainer - container: payload \ No newline at end of file + container: payload diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml index 637bbf0161..820676d173 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/modular_mine.yml @@ -23,6 +23,15 @@ sprite: Objects/Misc/proximity_sensor.rsi state: icon name: proximity sensor + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 5 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 2 - node: wiredCase entity: LandMineModular From 083ef009d649cd713f289c9f084f636b8882c334 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 2 Dec 2022 20:21:41 -0500 Subject: [PATCH 10/19] Automatic changelog update --- Resources/Changelog/Changelog.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 903e3cc04c..032c28d7ab 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: 20kdc - changes: - - {message: 'Salvages now spawn somewhere near the salvage magnet, rather than directly - in front of it.', type: Tweak} - id: 2214 - time: '2022-09-01T02:25:05.0000000+00:00' - author: JustinTrotter changes: - {message: Bots can now be stuffed into closets, type: Tweak} @@ -2949,3 +2943,8 @@ Entries: - {message: Escape key clears chat input, type: Tweak} id: 2713 time: '2022-12-03T01:15:59.0000000+00:00' +- author: deltanedas + changes: + - {message: Weld modular mines and grenades to salvage them, type: Tweak} + id: 2714 + time: '2022-12-03T01:20:38.0000000+00:00' From a6045e4538bbcbacc5616f6dd487645605bef490 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sat, 3 Dec 2022 02:23:43 +0100 Subject: [PATCH 11/19] Launcher info links. (#12781) --- Content.Client/Credits/CreditsWindow.xaml.cs | 13 ++++-- Content.Client/Info/DevInfoBanner.cs | 14 ++++-- Content.Client/Info/LinkBanner.cs | 31 ++++++++----- Content.Client/Info/ServerInfo.cs | 1 - Content.Client/Links/UILinks.cs | 13 ------ .../Systems/EscapeMenu/EscapeUIController.cs | 9 +++- Content.Server/Entry/EntryPoint.cs | 2 + Content.Server/IoC/ServerContentIoC.cs | 2 + .../ServerInfo/ServerInfoManager.cs | 44 ++++++++++++++++++ Content.Shared/CCVar/CCVars.cs | 46 +++++++++++++++++++ Resources/Locale/en-US/info/server-info.ftl | 1 + .../Locale/en-US/server-info/info-links.ftl | 7 +++ 12 files changed, 147 insertions(+), 36 deletions(-) delete mode 100644 Content.Client/Links/UILinks.cs create mode 100644 Content.Server/ServerInfo/ServerInfoManager.cs create mode 100644 Resources/Locale/en-US/server-info/info-links.ftl diff --git a/Content.Client/Credits/CreditsWindow.xaml.cs b/Content.Client/Credits/CreditsWindow.xaml.cs index 224a1007e1..a2145b479d 100644 --- a/Content.Client/Credits/CreditsWindow.xaml.cs +++ b/Content.Client/Credits/CreditsWindow.xaml.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Linq; -using Content.Client.Links; using Content.Client.Stylesheets; using Content.Shared.CCVar; using Robust.Client.AutoGenerated; @@ -68,7 +67,8 @@ namespace Content.Client.Credits // Do not show "become a patron" button on Steam builds // since Patreon violates Valve's rules about alternative storefronts. - if (!_cfg.GetCVar(CCVars.BrandingSteam)) + var linkPatreon = _cfg.GetCVar(CCVars.InfoLinksPatreon); + if (!_cfg.GetCVar(CCVars.BrandingSteam) && linkPatreon != "") { Button patronButton; patronsContainer.AddChild(patronButton = new Button @@ -78,7 +78,7 @@ namespace Content.Client.Credits }); patronButton.OnPressed += - _ => IoCManager.Resolve().OpenUri(UILinks.Patreon); + _ => IoCManager.Resolve().OpenUri(linkPatreon); } var first = true; @@ -158,8 +158,13 @@ namespace Content.Client.Credits AddSection(Loc.GetString("credits-window-original-remake-team-section-title"), "OriginalRemake.txt"); AddSection(Loc.GetString("credits-window-special-thanks-section-title"), "SpecialThanks.txt", true); + var linkGithub = _cfg.GetCVar(CCVars.InfoLinksGithub); + contributeButton.OnPressed += _ => - IoCManager.Resolve().OpenUri(UILinks.GitHub); + IoCManager.Resolve().OpenUri(linkGithub); + + if (linkGithub == "") + contributeButton.Visible = false; } private sealed class PatronEntry diff --git a/Content.Client/Info/DevInfoBanner.cs b/Content.Client/Info/DevInfoBanner.cs index 9898b60f83..0599b355f5 100644 --- a/Content.Client/Info/DevInfoBanner.cs +++ b/Content.Client/Info/DevInfoBanner.cs @@ -1,8 +1,9 @@ using Content.Client.Changelog; using Content.Client.Credits; -using Content.Client.Links; +using Content.Shared.CCVar; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; +using Robust.Shared.Configuration; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Utility; @@ -19,13 +20,18 @@ namespace Content.Client.Info AddChild(buttons); var uriOpener = IoCManager.Resolve(); + var cfg = IoCManager.Resolve(); - var reportButton = new Button {Text = Loc.GetString("server-info-report-button")}; - reportButton.OnPressed += args => uriOpener.OpenUri(UILinks.BugReport); + var bugReport = cfg.GetCVar(CCVars.InfoLinksBugReport); + if (bugReport != "") + { + var reportButton = new Button {Text = Loc.GetString("server-info-report-button")}; + reportButton.OnPressed += args => uriOpener.OpenUri(bugReport); + buttons.AddChild(reportButton); + } var creditsButton = new Button {Text = Loc.GetString("server-info-credits-button")}; creditsButton.OnPressed += args => new CreditsWindow().Open(); - buttons.AddChild(reportButton); buttons.AddChild(creditsButton); } } diff --git a/Content.Client/Info/LinkBanner.cs b/Content.Client/Info/LinkBanner.cs index 6e87dc5c40..569cbc9095 100644 --- a/Content.Client/Info/LinkBanner.cs +++ b/Content.Client/Info/LinkBanner.cs @@ -1,9 +1,10 @@ using Content.Client.Changelog; using Content.Client.Credits; -using Content.Client.Links; using Content.Client.UserInterface.Systems.EscapeMenu; +using Content.Shared.CCVar; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; +using Robust.Shared.Configuration; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Utility; @@ -21,25 +22,31 @@ namespace Content.Client.Info AddChild(buttons); var uriOpener = IoCManager.Resolve(); + var cfg = IoCManager.Resolve(); var rulesButton = new Button() {Text = Loc.GetString("server-info-rules-button")}; rulesButton.OnPressed += args => new RulesAndInfoWindow().Open(); + buttons.AddChild(rulesButton); - var discordButton = new Button {Text = Loc.GetString("server-info-discord-button")}; - discordButton.OnPressed += args => uriOpener.OpenUri(UILinks.Discord); + AddInfoButton("server-info-discord-button", CCVars.InfoLinksDiscord); + AddInfoButton("server-info-website-button", CCVars.InfoLinksWebsite); + AddInfoButton("server-info-wiki-button", CCVars.InfoLinksWiki); + AddInfoButton("server-info-forum-button", CCVars.InfoLinksForum); - var websiteButton = new Button {Text = Loc.GetString("server-info-website-button")}; - websiteButton.OnPressed += args => uriOpener.OpenUri(UILinks.Website); - - var wikiButton = new Button {Text = Loc.GetString("server-info-wiki-button")}; - wikiButton.OnPressed += args => uriOpener.OpenUri(UILinks.Wiki); var changelogButton = new ChangelogButton(); changelogButton.OnPressed += args => UserInterfaceManager.GetUIController().ToggleWindow(); buttons.AddChild(changelogButton); - buttons.AddChild(rulesButton); - buttons.AddChild(discordButton); - buttons.AddChild(websiteButton); - buttons.AddChild(wikiButton); + + void AddInfoButton(string loc, CVarDef cVar) + { + var link = cfg.GetCVar(cVar); + if (link == "") + return; + + var button = new Button { Text = Loc.GetString(loc) }; + button.OnPressed += _ => uriOpener.OpenUri(link); + buttons.AddChild(button); + } } } } diff --git a/Content.Client/Info/ServerInfo.cs b/Content.Client/Info/ServerInfo.cs index f072c50397..23be750626 100644 --- a/Content.Client/Info/ServerInfo.cs +++ b/Content.Client/Info/ServerInfo.cs @@ -1,6 +1,5 @@ using Content.Client.Changelog; using Content.Client.Credits; -using Content.Client.Links; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Shared.IoC; diff --git a/Content.Client/Links/UILinks.cs b/Content.Client/Links/UILinks.cs deleted file mode 100644 index 7481e80cd0..0000000000 --- a/Content.Client/Links/UILinks.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Content.Client.Links -{ - public static class UILinks - { - public const string GitHub = "https://github.com/space-wizards/space-station-14/"; - public const string Patreon = "https://www.patreon.com/spacestation14"; - - public const string Discord = "https://discord.ss14.io/"; - public const string BugReport = "https://github.com/space-wizards/space-station-14/issues/new/choose"; - public const string Website = "https://spacestation14.io"; - public const string Wiki = "https://wiki.spacestation14.io"; - } -} diff --git a/Content.Client/UserInterface/Systems/EscapeMenu/EscapeUIController.cs b/Content.Client/UserInterface/Systems/EscapeMenu/EscapeUIController.cs index 4af5c04216..68cc5392e5 100644 --- a/Content.Client/UserInterface/Systems/EscapeMenu/EscapeUIController.cs +++ b/Content.Client/UserInterface/Systems/EscapeMenu/EscapeUIController.cs @@ -1,13 +1,14 @@ using Content.Client.Gameplay; using Content.Client.Info; -using Content.Client.Links; using Content.Client.UserInterface.Controls; using Content.Client.UserInterface.Systems.Info; +using Content.Shared.CCVar; using JetBrains.Annotations; using Robust.Client.Console; using Robust.Client.Input; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controllers; +using Robust.Shared.Configuration; using Robust.Shared.Input; using Robust.Shared.Input.Binding; using Robust.Shared.Utility; @@ -20,6 +21,7 @@ public sealed class EscapeUIController : UIController, IOnStateEntered { - _uri.OpenUri(UILinks.Wiki); + _uri.OpenUri(_cfg.GetCVar(CCVars.InfoLinksWiki)); }; + // Hide wiki button if we don't have a link for it. + _escapeWindow.WikiButton.Visible = _cfg.GetCVar(CCVars.InfoLinksWiki) != ""; + CommandBinds.Builder .Bind(EngineKeyFunctions.EscapeMenu, InputCmdHandler.FromDelegate(_ => ToggleWindow())) diff --git a/Content.Server/Entry/EntryPoint.cs b/Content.Server/Entry/EntryPoint.cs index ae17684f99..92e7b8d832 100644 --- a/Content.Server/Entry/EntryPoint.cs +++ b/Content.Server/Entry/EntryPoint.cs @@ -16,6 +16,7 @@ using Content.Server.Maps; using Content.Server.NodeContainer.NodeGroups; using Content.Server.Players.PlayTimeTracking; using Content.Server.Preferences.Managers; +using Content.Server.ServerInfo; using Content.Server.ServerUpdates; using Content.Server.Voting.Managers; using Content.Shared.Administration; @@ -96,6 +97,7 @@ namespace Content.Server.Entry IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); + IoCManager.Resolve().Initialize(); _voteManager.Initialize(); _updateManager.Initialize(); diff --git a/Content.Server/IoC/ServerContentIoC.cs b/Content.Server/IoC/ServerContentIoC.cs index 8e48a9562a..3ab0052b89 100644 --- a/Content.Server/IoC/ServerContentIoC.cs +++ b/Content.Server/IoC/ServerContentIoC.cs @@ -16,6 +16,7 @@ using Content.Server.Objectives; using Content.Server.Objectives.Interfaces; using Content.Server.Players.PlayTimeTracking; using Content.Server.Preferences.Managers; +using Content.Server.ServerInfo; using Content.Server.ServerUpdates; using Content.Server.Voting.Managers; using Content.Shared.Administration; @@ -55,6 +56,7 @@ namespace Content.Server.IoC IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); + IoCManager.Register(); } } } diff --git a/Content.Server/ServerInfo/ServerInfoManager.cs b/Content.Server/ServerInfo/ServerInfoManager.cs new file mode 100644 index 0000000000..d2e35e9663 --- /dev/null +++ b/Content.Server/ServerInfo/ServerInfoManager.cs @@ -0,0 +1,44 @@ +using System.Text.Json.Nodes; +using Content.Shared.CCVar; +using Robust.Server.ServerStatus; +using Robust.Shared.Configuration; + +namespace Content.Server.ServerInfo; + +/// +/// Adds additional data like info links to the server info endpoint +/// +public sealed class ServerInfoManager +{ + private static readonly (CVarDef cVar, string icon, string name)[] Vars = + { + // @formatter:off + (CCVars.InfoLinksDiscord, "discord", "info-link-discord"), + (CCVars.InfoLinksForum, "forum", "info-link-forum"), + (CCVars.InfoLinksGithub, "github", "info-link-github"), + (CCVars.InfoLinksWebsite, "web", "info-link-website"), + (CCVars.InfoLinksWiki, "wiki", "info-link-wiki") + // @formatter:on + }; + + [Dependency] private readonly IStatusHost _statusHost = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly ILocalizationManager _loc = default!; + + public void Initialize() + { + _statusHost.OnInfoRequest += OnInfoRequest; + } + + private void OnInfoRequest(JsonNode json) + { + foreach (var (cVar, icon, name) in Vars) + { + var url = _cfg.GetCVar(cVar); + if (string.IsNullOrEmpty(url)) + continue; + + StatusHostHelpers.AddLink(json, _loc.GetString(name), url, icon); + } + } +} diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 4f68a22be8..c721685e11 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1348,5 +1348,51 @@ namespace Content.Shared.CCVar /// public static readonly CVarDef PlayTimeSaveInterval = CVarDef.Create("playtime.save_interval", 900f, CVar.SERVERONLY); + + /* + * INFOLINKS + */ + + /// + /// Link to Discord server to show in the launcher. + /// + public static readonly CVarDef InfoLinksDiscord = + CVarDef.Create("infolinks.discord", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to website to show in the launcher. + /// + public static readonly CVarDef InfoLinksForum = + CVarDef.Create("infolinks.forum", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to GitHub page to show in the launcher. + /// + public static readonly CVarDef InfoLinksGithub = + CVarDef.Create("infolinks.github", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to website to show in the launcher. + /// + public static readonly CVarDef InfoLinksWebsite = + CVarDef.Create("infolinks.website", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to wiki to show in the launcher. + /// + public static readonly CVarDef InfoLinksWiki = + CVarDef.Create("infolinks.wiki", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to Patreon. Not shown in the launcher currently. + /// + public static readonly CVarDef InfoLinksPatreon = + CVarDef.Create("infolinks.patreon", "", CVar.SERVER | CVar.REPLICATED); + + /// + /// Link to the bug report form. + /// + public static readonly CVarDef InfoLinksBugReport = + CVarDef.Create("infolinks.bug_report", "", CVar.SERVER | CVar.REPLICATED); } } diff --git a/Resources/Locale/en-US/info/server-info.ftl b/Resources/Locale/en-US/info/server-info.ftl index e406a704b5..0686b78c3b 100644 --- a/Resources/Locale/en-US/info/server-info.ftl +++ b/Resources/Locale/en-US/info/server-info.ftl @@ -2,5 +2,6 @@ server-info-rules-button = Rules server-info-discord-button = Discord server-info-website-button = Website server-info-wiki-button = Wiki +server-info-forum-button = Forum server-info-report-button = Report Bugs server-info-credits-button = Credits diff --git a/Resources/Locale/en-US/server-info/info-links.ftl b/Resources/Locale/en-US/server-info/info-links.ftl new file mode 100644 index 0000000000..0f8f9eb7d9 --- /dev/null +++ b/Resources/Locale/en-US/server-info/info-links.ftl @@ -0,0 +1,7 @@ +### Strings for link buttons shown in the launcher's server description. + +info-link-discord = Discord +info-link-forum = Forum +info-link-github = GitHub +info-link-website = Website +info-link-wiki = Wiki From c5024dcfdfd73a5a0a18fb454289d099a701db07 Mon Sep 17 00:00:00 2001 From: Flareguy <78941145+Flareguy@users.noreply.github.com> Date: Fri, 2 Dec 2022 19:41:06 -0600 Subject: [PATCH 12/19] Reshades all Engineer jumpsuits and updates hardhat sprites (#12777) --- .../VendingMachines/Inventories/engidrobe.yml | 1 + .../Clothing/Head/Hardhats/blue.rsi/icon.png | Bin 247 -> 242 bytes .../Hardhats/blue.rsi/off-equipped-HELMET.png | Bin 640 -> 387 bytes .../Hardhats/blue.rsi/off-inhand-left.png | Bin 548 -> 363 bytes .../Hardhats/blue.rsi/off-inhand-right.png | Bin 555 -> 363 bytes .../Hardhats/blue.rsi/on-equipped-HELMET.png | Bin 485 -> 849 bytes .../Head/Hardhats/blue.rsi/on-inhand-left.png | Bin 691 -> 795 bytes .../Hardhats/blue.rsi/on-inhand-right.png | Bin 719 -> 805 bytes .../Head/Hardhats/orange.rsi/icon.png | Bin 257 -> 242 bytes .../Head/Hardhats/orange.rsi/light-icon.png | Bin 256 -> 243 bytes .../orange.rsi/off-equipped-HELMET.png | Bin 645 -> 387 bytes .../Hardhats/orange.rsi/off-inhand-left.png | Bin 558 -> 364 bytes .../Hardhats/orange.rsi/off-inhand-right.png | Bin 551 -> 362 bytes .../orange.rsi/on-equipped-HELMET.png | Bin 560 -> 824 bytes .../Hardhats/orange.rsi/on-inhand-left.png | Bin 702 -> 780 bytes .../Hardhats/orange.rsi/on-inhand-right.png | Bin 728 -> 787 bytes .../Clothing/Head/Hardhats/red.rsi/icon.png | Bin 244 -> 242 bytes .../Hardhats/red.rsi/off-equipped-HELMET.png | Bin 493 -> 387 bytes .../Head/Hardhats/red.rsi/off-inhand-left.png | Bin 543 -> 363 bytes .../Hardhats/red.rsi/off-inhand-right.png | Bin 542 -> 363 bytes .../Hardhats/red.rsi/on-equipped-HELMET.png | Bin 490 -> 835 bytes .../Head/Hardhats/red.rsi/on-inhand-left.png | Bin 703 -> 769 bytes .../Head/Hardhats/red.rsi/on-inhand-right.png | Bin 728 -> 785 bytes .../Clothing/Head/Hardhats/white.rsi/icon.png | Bin 257 -> 242 bytes .../Head/Hardhats/white.rsi/light-icon.png | Bin 256 -> 243 bytes .../white.rsi/off-equipped-HELMET.png | Bin 642 -> 387 bytes .../Hardhats/white.rsi/off-inhand-left.png | Bin 544 -> 363 bytes .../Hardhats/white.rsi/off-inhand-right.png | Bin 548 -> 363 bytes .../Hardhats/white.rsi/on-equipped-HELMET.png | Bin 499 -> 861 bytes .../Hardhats/white.rsi/on-inhand-left.png | Bin 701 -> 796 bytes .../Hardhats/white.rsi/on-inhand-right.png | Bin 713 -> 814 bytes .../Head/Hardhats/yellow.rsi/icon.png | Bin 246 -> 242 bytes .../yellow.rsi/off-equipped-HELMET.png | Bin 649 -> 387 bytes .../Hardhats/yellow.rsi/off-inhand-left.png | Bin 549 -> 363 bytes .../Hardhats/yellow.rsi/off-inhand-right.png | Bin 550 -> 363 bytes .../yellow.rsi/on-equipped-HELMET.png | Bin 520 -> 844 bytes .../Hardhats/yellow.rsi/on-inhand-left.png | Bin 715 -> 777 bytes .../Hardhats/yellow.rsi/on-inhand-right.png | Bin 725 -> 791 bytes .../Suits/fire.rsi/equipped-OUTERCLOTHING.png | Bin 2156 -> 854 bytes .../atmos.rsi/equipped-INNERCLOTHING.png | Bin 1632 -> 737 bytes .../ce.rsi/equipped-INNERCLOTHING.png | Bin 1827 -> 1416 bytes .../equipped-INNERCLOTHING.png | Bin 893 -> 739 bytes .../equipped-INNERCLOTHING.png | Bin 867 -> 778 bytes 43 files changed, 1 insertion(+) diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engidrobe.yml index 0a73287c60..bb12c8797e 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engidrobe.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engidrobe.yml @@ -11,5 +11,6 @@ ClothingOuterVestHazard: 3 ClothingShoesBootsWork: 3 ClothingHeadHatHardhatYellow: 3 + ClothingHeadHatHardhatOrange: 3 ClothingHeadsetEngineering: 3 ClothingOuterWinterEngi: 2 diff --git a/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/icon.png index 1a3c96beaec44aea4c5b4553b214df556ab333b7..fee14e7a8cd54b8eb6f24241f36bc1f00dad78cf 100644 GIT binary patch delta 225 zcmey)_=$0XWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKQ04 zf>@QZ2!pX4Lr#>Jm*bg)gioeg>w%KDM3Ulx6h}#rU+{kjV7S-3HxekuS>O>_%)r2R z7=#&*=dVZs3i^AxIEGmGzwJ2~#dkn~!#P{@=YM-KHSvIElIckgmNz2>TB;Y4`gjU&MiC OGkCiCxvXcg zWJRw~(*qFhP|Y3C6*U|I(*)TgaDXOVQHMb+f{NOXpn@6sHaqiWvSv-&wyas3Ri`UJ z0SZun0u-PC1tosk;~7(}^-`h?T1r3_3{!L7Jp@u*B|(0{|6zb((;1!fKvB*D zkH}&M2EM}}%y>M1MG8>xhG)HtV@QPi+i3^+4l8gtXllLs|Nle7hLiyBZLbf#cGUdv zqW93ZBNj!ce~TA9oT|xJDbAGSTw~_&dhvFH%YKY*&pB&tBpYr&{pkEwWJU9ZlaDy~ zAAB=-pv*9d>)hp^!VMm*Pd+`rWz1o6Ou?ahYCOvtfj4=7)GPv;gg8_+8Uvc@b3{J; z@|ya64}ary`Ln4PdrdpblQT93U;JtvK3j}EE!z0@x%Xe^);5Y+G>dzopr07d4Tm;e9( literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~>0#aSW-L^LCbDhH#)v`~E2p zmUurjVsSL`aLZI|%;PUCo}%N}lCtqZM1euE>>buvEtW#T<&V^!Zga5eD9Ms-3h0}} zuJ=mmk>wIk;hsy?FQ2kM{qNXzr}fYN8q0g1;uQOmoeI~@KK8NM>4Uh=3D-0FEi47= zW=~rz+h(^&q*Ca9+Dt{gqJLf|J}B+xsXdam`Pc<_k()<%=1D0DSlNG6|MRHf$b20W z`{0I)6Zl?VRrZ?r{OIgjuZihwMz6&*-;xeBs~TV8+ndek7l9?u7MR zi|T)T-T!`b!8_B0ZF%jt&Pt1f?VI>--?4ws^$&b|k|+22;F~|oi|szDWYk?ys+f6V z4@aDtPD7MKFKYnzij53ejHY4^x(kjmtzf+p!LYSKihF@rKr-VMrYuZFY8m+g2e$T| z-?oaa+WW3t`{lKpPQ5+(`^VL<3w}B>#=N#j-C$Un+MjlKsk8h?#k$$q9oFk6PE+FF zGPA5;ZJd;l;_sggm*wNvuj|tbsp{d^&N0h2k=EO;`w6Jyu`%b<40bKshKZ*WlE1CA zQJ-n%ew_JL_`6I0f7U&V`}wNS%G}H0G|+7 z1+gk+5e8#9hMXv`goICCj%Q4@)@vy-NQnYfFevMZ=Kv|Lk|4j}|1iL?>5R^KpeSd7 zM`SSr1K%MKW)#)%Y5)oz@T_-n42f`mJMExYivou$=hRRC>nr43)r&Lwe0NLcal1ab z#JAE;g+(#I>BHrwe}6VjoWG!Rx!L98yzdMR)t@Q5YEGY{S9SB2lj`DRz3RSzb@T6^ zxh8gUNygwH8zopr01cyxr~m)} delta 534 zcmV+x0_pwh0;B|x8Gi-<0063Kaozv`0qaRbK~#90?b<(R6JZ#~@o!2-U4+X}1j!&7 z#X<|+9>mo#ONK(b=w5Iza~<3TT`C;XMVx}G+!jbDak36YkfZbk7jY5sbvRQSZQA7i zm9Uw`PsprgMpMNA9xvw!xy_w}59)P7n z)l-(4roP=Cwu#}BF9SS0O((M6Q}Fp%gJlj`aGIt4+t=Nw+(CokUB`+Hqf7= z{?obd%T(GVIDh%=^jW=rjmFYv{P)Z3zyAR2oT~YAVw1Ko5fKp)5fPC^E4(sPwcl5s%wkXb*01x=t`^!q zP|4zG6>eMCw;~5@!QuMJaoZgFi$XY0E&dYgb2 zwFqGEMba4WHApW#&knYSjK03gLV(;M)Z!`eLmh($07*qoM6N<$g3qS`%m4rY diff --git a/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/off-inhand-right.png index dbba1db1adb165ecf35f719a43f2f51c29458de4..1d83642a0506138fe38e67b6ca075ac559c9efee 100644 GIT binary patch delta 347 zcmZ3@@|tOaWIZzj1H;_yjcNS%G}H0G|+7 z1+gk+5e8#9hMXv`goICCj%Q4@)=P;pXej|zFig#P_Yg>Nl?3?(|AzsFO=on@14TIt zJR*x382Ao>Fr%o3R|8P+fM>mnV@QPi+o_IxM-(_*>jN|P{%>X1nYksetIT-j2dT9Z z6+4*Us%m;PPHfsQbf#d&8Gi-<0063Kaozv`0rE*iK~#90?b#DswqWLG>d#Qx8M&gKE2F+ zpEbA%-ft&l>woz(O64oko2RsY`~=<)wq|cEMY##y&;Mb>C*NiExyzsX6qrU)3Ygc( zr@$&v0j>kMrUG0Ca7_ic4&a&!a2-HIL_|bHL`3AV<&K@hg|e+udI8Y2J;Gnx+(Nf zdf!}EK>xC@`BmcUBiOiIpFH`@I@=r^wmFWXrMLnX`U%9>N4)S}0dNw(1t96oE0|_} zP7%yp!0;@KlTNGmDx~ID+5h;h@F$%$a{=SO)nC13xvc!SfC_LOz%>=%I)G~`z;yuE fRDkOMt`_|T3TU#>cycL300000NkvXXu0mjfgIoo+ diff --git a/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-equipped-HELMET.png index e20f2aeda3a65d78382c4314fe440df3d70271e7..54e729e107a90a542a5b6ce125dc592e1ba01802 100644 GIT binary patch delta 827 zcmaFLe35N}ay@ickE6B`2MK&g{E9uC#vT8|~xK@4p_Kb-c^sePvw1S(eIqn(X{G zK5uUAimCX!FZbyEHi^}OGm|gZEj5bB%k#W+=TF?&8CGgDWF>~YN(Q(L?J>ih!=dk?2G>t6|2{d4zo&GOdha31%DRYzG5 ztP&GvSREC^uqLaJ5hhTNF7n#m_3&D)%ViFK@T2v+fC$BBlDS*2}h2dw9>pp>rWhN7tjAq{SNZ&UtX5D#y|Asxn1v>ZD zuNZIJ70%!!@nYtu)CUHJk+y+Nx1Km_vKR(St=zrsf11F5uJ7IxLUr{R!nW>Uh`9QQ oDIv6*yCGE91VaQ_fa@Z^&AEW0Eny$e12Y4Ir>mdKI;Vst0Qt;xg#Z8m delta 460 zcmV;-0W<#52IT{gBYy#`NklYU6bA6GQk-;9$dW}fl*}EP2MD;tO}Ema z+^yKHo1Nx-~+_LxkxQ8MJQN`x=8UjwB`@CVp5VKd_Tx=lbd@^Zf>%i z3oJy*V)rjaFhM>DP;rW~J$h=_=Yh=_=Y zh=_>(x8x-x!+#A*RlQqeUyf1&!w#CgN`~2?*s7ej%xv zKD=L&HeCPVN25`ylMs%fYmiyF#2qu&kYbo>qTUe$KWzJna%{v+kMf5Wp2Xj zY-IWqw9KJQHb%7O^xz%=A|fIpA|fIpA|fIp3i|>$*U$U?okv3e0000GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$PkQ#WAEJ?(Ho5 z4B`AC%Pl1r^hyOB1&;a_6ivKwl<(qE$AukDQb!zR zN{RzoxL+jw<@RjTI2sm`Q+iS%aN_0ryYElU=FL36=Wtxze*P)%_m+P@wfDTN{_(%( zHsnfM2ro?O=2!s5^)Ln!z3n?=TjGi>I^Li5H3{LXou5v-rs8vcjb_ff6F;o9W#r$> zXs_u_W4!#n!ahU1LA_tS&bnNp?%xic?|JpU4BIx&=Ud4wXKwU`D@a+iBe!~)(CyQ* z@5R?Leefz(=W{qek1OT8UE{%b!Ulyed$W@N2Zal%XTG!M4W55&<#EQ_H{@Gb)-v6? z{uBlB@= zv(l|(=@sA4FR|YrE_{6JlS97QjeC{}H9TnfWp*fD{c88bw>pUAFeAV3)PR)%aUiuisAF zU-$5e{KlNNug7#@_M1E0F=f2{K5g^9 z=Zk$E007;_YIq?&osB${tg#5)C&kPPRS93;zT`$2j;~;)eNpDzg`AR(hQ!i KelF{r5}E)<3SZU$ delta 649 zcmbQuwwZN;%0x$zdIp7Lk04(LhALGChK6PahM)g|^h*YYQUeBtR|yOZRx=nF#PcV` zA9Z73V6yadaSW-r_2$;bY~e(S;~(E24USsVtst`6gY9fav}r)biPisI1Gye4C~;(V zH6Pp{Dq?6FR4?5YbB6kDANSB8qXIx9|Sa&5izrIe$-H?wnF`XbL+_nFQ2 z?5w`G`+ITu`@J?tHeS1Q?&0FI&J0Wf4Gb&_42&EO5axxxhu2mw_EFosRF<#z#~tRq zN55`$jZag1xATPnU+;7e1`&adomMs5$ReAkSURDFO#MntT^%Iva{;VU+pZ|DL%J$|PXU;#J z9{JpK=buf>|Fkhp(KB+ZPv|_^+5P8--MKGUVt+AvJLDX940(2V`=@QU|FoTBoI0^q zSXJ8cXzvLd0j5O`XPoOE_P?!a3tqoy#p9TjFEozroUC3@v-(D_^O?PWIeO}+eqVO^ zu;16+`z1eWrSAwe-G9w_G?$ZU#8!cH=iXx&NkP(eul*Asy$o3&uwGKkVSIb cg`|(g3@)-~d-HkNJQ;w%)78&qol`;+0L(uo4*&oF diff --git a/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/blue.rsi/on-inhand-right.png index 42d3d419f5188687c81fc94f4b69405bcc1921e6..7bb842914680c018c10619764cb40cb3ece2465f 100644 GIT binary patch delta 762 zcmX@lx|D5#iWFmUkh>GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$P?a#WAEJ?(Izb z4B-vE|Ysr!_flTq+&n8@Q-2FnKNh#2p(@#%m*9}Fh6$=7f9CaTl z=-rhm*|}iumRpK?fn94?+;}m`agkE^zU$wu_0%$RMXF9#%UkUGxp%kB{_lI^^~&Ez zu6sQxMQKe^AalggMQj_oTzTsgM7yO9Xo;CNgz985td6+C5Vo=6E5qqc6&_D4`j-Fw zeg9~k$nN5c)0S5&`7X{E*q(d)c6uM9+O{y3=Rzq9-dA4lJ9~fg=J`>7e@Y8=ved8I z#5Bo${*I%M64tHUIsMtQ>*?FKFMqWvtLf))v)(jwm&+`%dH+(`9-RL1=y2!bFR$yL z`_8H{@RLwJ*WMy^rnsV@?N>YZm5ra5E|&-8Yjr`AGBeR^FJ{`j`cOrt`~avKGGiUo83~^r4U1rRDrZ6&mzPWwssj!z{Y$BiCXfu0| zAMw%BK?oLrD;U=#eVotSWZLL<{0Yw&b+qsWNyB2Ge(AF74-+(Rm83At;ur33`y;%z z^yD6?gV!I5@9#?E}&gzn0UIia?fy z_Ug^z7iGRI>)_a$p%Eck#cBH`!BazH%?+ivOHv$Jysb{Q9bEN_FDo+4^O82rTjKfc zcS3^EZt1jnb0gJ^rJb{VCmdFJpvb_afQ}q_PM=LNnz@R(tmMp=Z{MbSA6+vu(#Ism zB*5!!7W1W-C3lOgt;(+7xNN`h^v%yRj~?;4YIytGdqywSuO}a_f0{o#+#>b)wkclQ zuB@u>4D!5td9O+0#6`=0e>L9!YxY;YZ61dIPc2+r+;LLfe1peDEsngu+|sY7{BTH2 zzPtTj+S{W7=>~gFU3tP<_qXQ2m&?^WZQ+d-mz67C^V@5kT>md@uYOV3u|l{0!rT(h z4yMNrds5pPHg9_Q`=)f;ZjCI7={8n{eloT_iFNMzZ|k4GJ??)X_k6Q@n#pbF4Zq&0 zy_!?Gchcow8$X8ge=y_P_eLfE$gE%M!mry$Kku1whMC2I0gj}6T6+(e-1_a;!o$cY zz<`c85+eRvExh<|w{%v@+w=Xe|2UoHJNqtw?%(Tj3*4@m{7ls1oKas}7$`44<7(NL ze}}ipG37m0et4nG@xC-)sc+%uYdo@ZIlZ15(9XMEi{-H-T(~gHC&m~@1F(24eEZVS;4CfZ<;A-bkPrXMsm#F#`kN zVGw3Kp1&dmDCqC$;uvD#|F-8~6kme^kMrr4cmMz2m{_=h>tlvb#q_18vmff`DBg7X z)c8T;1@qBUz7sh%A70ZpC5F}H7}M-&$KHl4a-J!ms3yVeop_3$<-0ILjI`e~nWyDI Pvl%>H{an^LB{Ts51dvl& delta 240 zcmVVQ!Pj5=V{0SpWbEaYm83U&A|z{|k!;WGonvegF|$u);`wFmzOr=LnJ<&}mWS@V`@3fPsO5f#Is3 zI>Xf~7Z|SksWUJzFfeqA3XtUpveH2Kg$oddive5=<}jK&p#1d*hS_SI4Da5v!^MOI qe=?-r`aqTg7)N_XqYfDH4gdf>f-@>R%`S!j0000VQ!Pj5=Vz9YB7Q?4L2v@m!2R#ywns1SJo6awVn-@l&!`1R}m|KGot-p3|SEG9by7#X|znHXn( xWnx@61u8@q7;To1I$+cu0izBWU6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx-l>?w0XKXhE&{ob8RDMg98ui1(k@MZFAQ~TXZeHaigPmE0EQ`bg#k**=M^CbH;tP zU*c2oM~lm$=$J||he87b6PVb<-1Wpa-)BjPVEIPg{pKDI?uGXIt6#V_UyEUaiJ?q6 zheOZlc~#5~Rm`jYCRoKUd;Mc6!_#O#21b@AYu5?0{SbPgg&e IbxsLQ00!+)1poj5 diff --git a/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-equipped-HELMET.png index 2f0577bb2d84c6b9db35d168b62116d5f8319995..ff4a3732bb03ba508e5c4b39362a48fea8bd1a58 100644 GIT binary patch delta 371 zcmZo=ZDyVzS8qcyu;7#5iHH&~IAr4iI#(<{!9FY&d zyrzEN!{0bv{%q>SUenI<mdK II;Vst0NY=gO8@`> literal 645 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVDj;FaSW-L^LCcKhjgOEvH7Q$ zDzrRk%;t(cqN(s`!CbxTR#&VzBR6pro}RX*@6oKhxjqZ4FRfhK>}IqzTF|Jod%@}g zMUJL>wS3Rh{d^Aoe)N>FvVOwDyc557KmWaX&-$yczb1HXf47o9zE9_|{fr6ISLDxR zxv;i+RjJ^ilg$4FZs?^LoK=Y1RCjDiMY@3K_poaZpERCRaM}J&Q<(AcueU*BzfVVQ z@xIylO8pk&-CfJ2T%|3gE53hzmdJX}?A`+{hFO0VuFe%$UoYBo?{)g*Uy;HS?>=U@ z-TM2iv9zsu*S3@Kl7jz#6rT62_{P_fztQdDF(0>s+jLmG9$Ia=@TOnq(hb&+zve%i zKkv@{tb_P$nLvdAEmwacfuW!6MlwOrEmJ5 z2?udLs8`mgN_u?$+QAV0gWvC8pE8e2@_4bh<1^+POgSnH+Zd!d8*~r2F(q(sn8-l1 c&^w0Rcdl>v!u!G&n7kM~UHx3vIVCg!06v5y5C8xG diff --git a/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/off-inhand-left.png index 42647c87af717ae6df940eac88ff7c138dcbd223..1d3e030449a2a37c30d41ed8335e54ca875d542e 100644 GIT binary patch delta 348 zcmZ3-@`h=GWIZzj1H;_yjcNS%G}H0G|-o zCQSxq5e8#9hMXv`nHCIZGZ_y0GH59=NQnYfFqll>O8`<_B|(0{|6zb((;1!fKvB*D zkH}&M2EM}}%y>M1MG8>xpl7{{V@QPi+i3^IS`;{3IWK41-W8+bEHbe{XTB#H&&{wa`I5bWM!=1% j$J-XDvna0EdQDvRdC#iu=#4*t-eK@`^>bP0l+XkKQ%;0q delta 544 zcmV+*0^j}Y0 zhja*u2;ktbq1CTW;k*Dx)BcYBts~HU63Be)y7wAFU(N@_&9+Rjno9vW;N-#ICf_Rf z<83~5f9@bm;ugV~{RPoJEfOZ`36ez2fS}8@a}5CIV!B@<)_{Iu0IC~MjRB}`Ks5%S ix&hS~fEnrrRC@=DskICH|NlM!0000NS%G}H0G|-o zCQSxq5e8#9hMXv`nHCIZGZ_y0GDwLsXej|zFf?8I{uW4al?3?(|AzsFO=on@14TIt zJR*x382Ao@Fyrz36)8Z${hswMjv*25Z>Jp;YE|HH&F`4;|NmkBp3GCeH*TBGSti8J z_eSKef6xRbW!CvZYr4+;Np9@jCVEu0{*OaQM@5c{!^)uU@7uyxNv(ECZXUENd1qLAJ;bZVR{`N9+@h@o?no5m|B|*yEr% zYgK`+=kt^o8;|FH*Epae!JdEH`}2>PyASZc`!4M8<&l9N_r8y3bP`^O$hGd^-f|~A jaT<48(1fOY)&Cj)PwZJ4_?YK5&@&94u6{1-oD!M<4d#lk delta 537 zcmV+!0_Oed0;dF!8Gi-<0063Kaozv`0q#jeK~#90?bQgIT;x)v%TxFpx1CWbyz+o=DPo*x7n z$_*zcy)E=!fQX2Qh=_=Yrj1sw*9X3Ny1suou<$p+{Nt)jrG_d;O!16fJR{ku5F~gglPW7j20eo`TI_RgNBE4?yH-*&bezFf1Cany?gQJ zQQ?n$rkblt?3{8Wl6h3?nmB;U^MCVglz67KBH|Be0HZGt2@O3nQ?61I2q@{py z^;R`ySb%f@X)HiGfHW2$9Y7ijkPbjZL_|bHL`3x8hAw#zTY1S;*25*KTGQ`YhL&DA z8Ya;{LYd0CTCg+(2LNoB9JROWqX-nw-lb*oqIiBF~fZY$0zlP*in*b3f#98mMjlTmWNu?N3H3joYS#2r>A~1MWF8n zi8$RiR%>=1v}+s48o=$&)kHk`z{mv*+HCZYJd22_Ul(8j(gCEg0OjO{+UQ zfBWt?XMXRm?0=jV?cupHWYtTDx=pXWm!>b;`?#un-PR8h*B5K7x_epS{bi#a53jAd zIL~S4hm0@oe*}uwXywUuJ@QJu?2;XAzjw|no&GgTX5^c)9(f-XqY?kph2`(;A6d)- zGL7fw-gCacukYg1&Fb|W$uZB}Lo!yg72f-jw~X7mqi_APSxGWd@mpCRd^witGS|DK zEKViLp#8<&=PI53>pSv%gk&pMRjZ$f+Bf6Lv{msPtuo7AZ+(@`cHC>#k5ya|CjZkH z)N*%jJL@Zw9CQ4yoAP8|Wwn+GH+9$8sr~q6J29lO;Xy?0&h=}XbVM7j){8e^|Ef02 z?D4y17s2>o*8MgTRg=uR4_7ai2xV6e3(@wk_+~cK;@qO-^pfZVH%W$qjBmPs|6bW| z?y9T!^SlM~E8h$68*aMrtW_C9j@XY}b6vf3H`fqjg5+ zgy0U&Rk{k3r}yRTvflkw=;DWhdDF_}b60qwA`Zp2t&gH zp#rO3EB=354sB96!D@1Z;b)KQK7om4CKFif-ekQ~w0K`5vRvHZ981sB-z_@Dr(+lm z5^HRa8Wpl!4DnZX%=@%Zq{pH{y*lszS(SgH|GXy<;dfZzNCQL1P4O4s{RVl_N_N)y Qz%FVdQ&MBb@00VAv5dZ)H delta 536 zcmV+z0_Xj>2CxK>BYy$+Nkl)6QBAi`{2ZtbnP_#}uDME*f z;?TjNlZUqmojNL+N>?YLlepQ*f?{(bt-wh>gig((iCLsKO zkRcD!|Ld3cvV0Hdftk{!m*;!+7Wum0;6xnqb8H5QI3(;sIDh#&k9PR^W=faQA;`+o ztVrWVR+eUEbSS(@IQgfGk=E5qe#C3|>X;5wQ~11p4B#7ftH-#VkHQiG04e;iH9r&S zHb0+KFqJ~XYLC~Zqt3nOd|z9jP_wW+sAJ&b1j~au3N`EXhu%=bdimaquB+u-P z2VI~v4VDOg*?$_=FWa*SVimaazYITrZ->`*p!q~ZL_|bHL_|bHL`3x7`EDVdFGO0c zs_LB`dOONY=`#1J-6EUZd-9d5jgR3=A9lx&I`xPE-`HXIkj#;uum9_jZQLNnpA~gzPc3grR zH{BFvl@=|m6-Y|l&}qh{wOZ`)zs=8Q72eG_Hg|&L`JV|t-{09;KI8NGz0-FWALDLf zn3X9U+AXQDO3c_HL^rKrMSav6hQO^e7#C$3GP_(&V(VC?I`KQ>yyu>r8dJR%^6~pU z+ZR@?ZngW}y8LW?yY#*9e?PQ*bnEP~6BquLF5Y|8>*LKA=l`AUh?{(*H$Benz}~}k z0c-PSX1td;Fni^@Qzy4}l!m{VA04{p&M%&T$KU#$AF+LSR{1zw|Lwu=`Hy#0rq=V= zr0q5NshsnDUB33Z_bh(-4l8WtW&huyV#WGn374(I_pF5Lya_jz9vq%tB{2UU(^Jm} zKfGIdXY*#V?ObcN=;pNR8CR^g>M1{7I`e0ka%gbE(@Qg@?`~(hv2VvZn>5?=|9Qo8 zMA8q{Oqju#H_s@dkIByS`(wk`Cv!f}^qxgg#&5~Xz&&X3(@!{yP zf4;E?FCRaC=)p|WTX(|!cW<4gb^3_Nj)H%0Cik6Vd}F^sT0PEt>481T+G;6>8e;zS zlz+S<@X6M_p!)dwn@Q864Hbpi40gQS$ZoM^&%D&KnQ51@ZrOb8PDpktIcaL2aN*C5 zrX8jSYik6}ZRVYk6lm=X{Jxj5*WyP3Bku{VSLRN@gn^tcrZW9u;Bw+-&Cz)B8JLC{ NJYD@<);T3K0RTnSRe}Hj delta 661 zcmeBS+s8UVWul`N>_7Cr~H$|>s?{9t>c*I$6SE#yl=3==c`x7+&G0ziv z?wWXpQ&{AgqwP*3ttPJ3;-ZdcawI}l1S!pHd*t}VB4Uc8t;+d&=h*AlUd}RI_x9Ic z#|8RdzQ1@sdHVF@*)3Cq_R1K3sSs#jU{PRTdF6ujInzdQ0}ck<(Nm(DESU#maW>+06S@ACgl7fhJlCL{avS$x%B zw#>i5KpxL*dy9Zs^(QJB+1R=G4?o*3dccf#=4YloF*=Lv?Rwrcp9V_J(oM3hS6rKv z=W*02ig)V$FoxSEOO|RDe6>q?H}~lIPqJsy-yOR8J0bJbG}kN7>Vu7@2TN*V0yjKQ-_3ahuuWg z^K`q;uKV}v`DONhGBfn;*k(W5ZpG=wcHxJ}jg>D>EN2jRf(OI`X{Ak57YHm;=6d8c zVLM9bfCDPwbb$3=_Gh1e?%I|s_36yN-q&H<;yPpPnZ8`S{k*;Z$&=~lm$5W7|91J> zQGb5kl-+Ue?NL{ry1T40 zbkP>2i9i0X|6L|{C68gpER)H-&(~#4t@76P@~$oavn=DWN`+0e*Seo8s_!o_Tjsql ogPY+xBi!i?46$PS*%+dVu1(S^m=nps&A`Cm>FVdQ&MBb@04x_LX#fBK diff --git a/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/orange.rsi/on-inhand-right.png index decf2c9141d97b970dbc0d7e6158c8129cec3847..877bafcc6a5f86cdbe0261729bbf9b3f256c710c 100644 GIT binary patch delta 744 zcmcb?I+<;PiWFmUkh>GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$PnR#WAEJ?(Hnw z3=v0>t0;KB+qS`|wb#)x;D{Tmwl}|`&>JNU8AWza7o8(+ zE?YL<6b@e1@ti%7ySX>YQ)y1rn&0=UH@~Yr^7)*@vv+&tW&Y3JzWex@`uk_}KA-zo zJ74AUF)cCEhESa>hSd>Q80y0|u3%h~6v!NLbP?NzE?3?JQSUAC4=nsv%zNHyW%kML z<6?siS8jgID37lGCHiRH>$c-(EDszp>#B%IZ4zUC z%WrhO;b8qgw}(+?wU>(@`8Q58Vpw4Bd|P|-mzPGC&+be!dl0|kr0ZOE-;7(o-Sze4TJWoW(wvW8bs39avt5nY{+A)R_pW_} zj_bh=@$-7WoPY27vvK0}>Ypa7GjA~P$hls&m@MDnH`mThcJ5&ld-LCO4u@Tyz?k-7 z8Bea)rSJVLGcT0S6Wg?S%8UKiM5=TCo3cJKEuV7!qvdAH2yUZp(bSCSmDPer7N!03 zOgeS$K+2I*7oRytu_!aYQmj7k@$3Qpy+4D?^wi^8w@z*2$xuDApJOF*(%8Z1vY+wD X76xPGYt@{gTe~DWM4fr=C_M delta 687 zcmbQtc7t_-%0x$zdIp7Lk04(LhALGChK6PahM)g|^h*YYQUeBtR|yOZRx=nF#PcV` zA9Z73V2bl}aSW-r_2%~Z?8^xf>>u9GHlN)Xx9xULk?f@l4kNAU(n5BI&= zm>6f%W4MvMHE+Qq$8L>7%eL(1b$pp486pv7RCe*@$(Ml}*b}?zPrhEb%zL}u;pR2D z`}kQVE%TiJee!qS{Cno2UYaeICM`A`4h&2J4Gb&_42)1_BG27u&FQCotN_{C zbXnNBjHge}tZQcbSWy$t9iTNesxI%?n%k3|za9B^>b`xWU2N%*KB))#SF*b0y|(@g{r>#_Yxz&)QN9r%3KD-mjf?Ag;Cl#IHB6+uw8T)YrS0{_H~a1B*KA&*2O) zZ@n1S-*Q(8_`A(?&lZD4$+foq&FyxJ_y50Z{Gj0bHHHOoKZI+)W`3TXT|fKZ)5!eq z5m{+(oUSwG)Spf&TpU-RttB|oA@xtFd+$1~f7z-%vWoEN6}a@nm?7!@`K1jUIae5f Nz|+;wWt~$(69C~yIC}s9 diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/icon.png index bf4b26e4b7875c6a714050ffb71a7000724c7d0b..011962037d6b4ab8f8612210bb9a50553287e788 100644 GIT binary patch delta 225 zcmeyu_=$0XWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKP~P z0)wQo2!pX4Lr#>}Vg}J;47~q=QVa|q{VZF66h}#rU+{kjV7S-3HxekuS>O>_%)r2R z7=#&*=dVZs3i^AxIEGmGzwJ2~#n+&~<9xd1-T(hLCKhhs`k3KUF@5Rj?1%a}iZ`7; zHGa@|!F=?T??jHxhu8E?iD5N4#x#4{v9}?MoM#Fss!1?=C!XSG`7X>5BklK0=4m<5 OYz9wPKbLh*2~7atn^7|W delta 227 zcmV<90384F0rUZo8Gi-<0047(dh`GQ0J}*VQ!Pj5=V{0SpWbEaYm83U&A|_?Cg;y)XmAvegF|$u)cd%2!HBB z@*F`{8t{~7U|@L1z`&qs01=RfIDi~LvIDZ^85jyA85vYhAUu29f{`JcfxKkEINCEB db-;*s001jHG6#O`dJX^p002ovPDHLkV1n(t<8 diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-equipped-HELMET.png index 1d81ff8edce2dec891e110d7025e5139f6ab5969..8a4c54435237df88ab64881f132bfd93c3d9f428 100644 GIT binary patch delta 371 zcmaFM+{`>dvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$h8fKP~P z0)wQo2!pX4Lr#>}e+GtQ47`gOM5RO-w3L7<7*-#SwEM1MG8>xhG)HtV@QPi+i3^+4l8gtXllLs|Nle7hLiyBZLbf#cGUdv zqW93ZBNj!ce~TA9oT|xJDbAGSTw~_&dhvFH%YKY*&pB&tBpYr&{pkEwWJU9ZlaDy~ zAAB=-pv*9d>)hp^!VMm*Pd+`rWz1o6Ou?ahYCOvtfj4=7)GPv;gg8_+8Uvc@b3{J; z@|ya64}ary`Ln4PdrdpblQT93U;JtvK3j}EE!z0@x%Xe^);5Y+G>dzopr0O`h=b^rhX delta 478 zcmV<40U`c_1MLHl8Gi-<0063Kaozv`0kla(K~#90?b<&}BS9R-@vjjU40sY`ns8yk z)95%j$K+sYl#BRwQmxBZr;#dq9XYmj2 z#@$1BJ`j?b-OV%1&TjJ?m_swf&U5{|{#$-C#MTXVz2d&h9)HMN<}c(49}L{@&3226 zlOF&y8t}89{r~djAADMx^?kdXl#|~KvDaWnQTh&yBG+H^O7QcqdHBqeU&%9&-CwX# zb$5NE>e^+ByDzu1c=eL;XZNTNYrx+Kmb-8R?1vBM7O@ol{GFAhN5@b9ObX2x5fKp) z5fKp)5fKrQ_kS*T38`a(S*hx*nv`CSYKGYDaWHG|#YuVj9TTLgvwpq4=xl#afIkNR zhGdbsI@~dV-HH=T`GFY7T6*2+O?Y=nbyCwLcTkcD66k+3TdS8N1djv#8L_|bHL_|bHL_{R*9{(h+ UcWri(!2kdN07*qoM6N<$g66yD4*&oF diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/off-inhand-left.png index d8a465ba1f788e2c219ddc2755ca513f04a6dd08..6d4ac2367841c89353df99417fb40ee034845264 100644 GIT binary patch delta 347 zcmbQw@|tOaWIZzj1H;_yjcNS%G}H0G|-o z1O`cE5e8#9hMXv`{|pSr7<*3G|v z=9<{aB`F&voTkVh5$eW7EEQ4Q_Txwg1J}`SvdK;SAuS3l zUK~yfS|0poktoXlp3m{j)j;ugQ{ll$&yLQ#xc%RO*`FRaeLdSye(X9^!@C(@_*u9_ lw%y*L`-0PvBWvwfRvERPo-#+zr9j^>c)I$ztaD0e0suiViT(fp delta 529 zcmV+s0`C3m0-pqs8Gi-<0063Kaozv`0p>|WK~#90?b@+Q!%!3k;J+$`3L>Rs5DbEo zf(Z2qt_~es9Hd2D@&GQnb#ZXZ=F|sps0!lX;?TuBfdv0ogXt%>nDPK$sxH)W;2ADpqv>+Y-`sRr8yB+sL*7*H!z&)SoP5aJZJi$wDSn zeON=C0NWC>(g2J+u+r>b!KX!_RR<2122X;&zE$t<_qK!TCvE}&pwv-gYntk{)CpJb zKlz~TVH(;5_zB8{`iXo9j?+Zm0!hLE zbT^~t5NS%G}H0G|-o z1O`cE5e8#9hMXv`{|pSr7j~Xv_Sg`(s#*x?sPwTjh jV+|%XiAdA delta 528 zcmV+r0`L9n0-gkr8Gi-<0063Kaozv`0p&?VK~#90?b<&}0%05n@UIer2N5C;4u{Yj zhVS5PaBz(iaq$JTG`2Ljxi#GjXefecxTV3N+}aXc+yc2aQHdZy5F4KEJW|j9J!gJD zaOk5x$M=5To#5{Qh=_=Yh=_=2*95B7>eM&OMQwO-T@85cK!4M;HAh;^s`>Y(O{{+b zkv34!wP8{LX6?vN7Reu+G}*Gm~jwvJ?FVQzvr*OJp59CWlg*Ub_ok0 zJAiB~fb0OWu>i6I$i@Q54nRaiL_|bHMD*8Yw!CL`UK)DFX-Sz%f2<8HyK^+l#PtF5 zYUr6^rqy@GW(c@I9bh)P_(-W3w$D zjixvwUaz*}o3|}ofN6`3te- S6B_^k00{s|MNUMnLSTYlocE>x diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-equipped-HELMET.png index a1cbbd79a77f8a17483c9e37b63fff2f8a0f0148..bfb5f6e1fc0370eb78dcb453c29c61199d1b9a28 100644 GIT binary patch literal 835 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1dv1Jeyp7srr_xVN*;XA3)u9N*8|xNK4rJ2Trt zab39_M_mz>WqKO_c>gU6{jkWKUoJ|+w&IJ*QjG{_(J#;B6%KKE`D-PK=!6<5ST13A zoVcQO>iciLH(wo`dve>YeLo$3q@_=2}yp&ZVUbHCeO4H=P-L*N2_icOndy{HKo_hG@ za`fEaU%cqwuJxQ*>L1tgCKRyM1z7jaw@>@<;hsswnX;WnxNe6Ywm2HhzF`N;os2KX zP9p_a-$U+iZy2`aGuzcW-|4LU@<^;}#ln|!!s?rw_cW);bl3ifJsxl@ zqvF2SzN=goT~Dt%TwQ9!CarxcdE4hdRmp6#kIZ=Bl*Q~buW&;Q>m1I{4-IcmzMjgP zKA&yByJOU~LuK=}`?i{%KKj*jS73~#xJyi_%!|A&OG{Hf^iS-c?|S{Y(`u0$A#4J6 zChfmI9M`eWUvPTq|Jmmn))ZFp-|%{3@mebV-h(OT(VX*{7G-^8>sWPET49w~e#45W zJ&d>ne)V}xAwd(30e%c2@GS4p%oxbA6#Blv%ix)QA25$XSwm)W?n6-0Bx%C62v$J6nILWpPFRu>_rCK8Ngf&PbTb zl=fkn&0L+(_gajTCyTz3-LY-m$`9-8lj^g X)#g2#_oxn-@EJT^{an^LB{Ts5JHB~K delta 465 zcmV;?0WSW-2I>QlBYy$0Nkl>1YXDx#zfli&SU*dVQ^8r(UA2Rc!Is1cb*B zejusxZ{9CSH*_ty`N3e2>Li3S3c8p5bu4kO8SAz21NN6)oIYxiV@GhYwPEA9?Zm62iDffQX2Qh=_=Yh=_=Yh@w6KJUY%w2(9GK00000NkvXX Hu0mjf+Ii%5 diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-left.png index 3fdba97d514f923df91d6a20cbb83ef150f8162b..f8b08eeda033639937e8987a70d35a920abb22bd 100644 GIT binary patch delta 726 zcmdnb+Q>FRMT)UF$lZxy-8q?;3=9k`>5jgR3=A9lx&I`xPE-`HXPV~e;uum9_jZkbvH7}<%O*9kvlhQR%ElEHz|ESOEGA;#{6AB4&kA*Zxi{e-6oQU4kP(4S%%CmSCiN}RvqOLs1NOyR9Gcu>=2@x*03Tf>9^d2%D5FvgEX)FxsvrRJGn;H z_DjWohpcy|uWRq~zu###*TU#;$^D;KYEldTUUK_?w&4HE4k>^CG>41!k|t8e!-AS8 zSHzzUNt@7XqV?_k+nKBPNUdy?+FCD?WZuyH{D8ce|Ks1=Z&#Gm%js;6n^jWZ^44fM zUs5UWj!;>?sZZB_>-SpY-QfR9$?ma%U1Ev&hGO;)AGr@HOf&3ZO$l&0`}=Z9+63qWnHRW|j1R00W;-2u zK>cN%&gOkvW36j`nY_@w6!cjesA|XbdZ!%k1u=T3ukJ7YI!C_Xn!$y=86LUDKh!;1 zt55b;FO8V)5HINT4r~xx6Ne?e0lnNgGwSK1i=9~?Z$rgKlyKL6_h}s zc!mKZoFS_A{g=BikEc-6=4X;9xFFHs8CnHM6HT?qK`;kK31> zuDsjJ*=f*lP&dA={qfglk<8Px)bGxd_PC=K@!@ZSpX&)80Yqvz#mi8~pb#nQyW+lm3ozj_c)I$ztaD0e0swiI BN%H^z delta 662 zcmZo<+s`^dWul`}_+?E9XzIwg3IjT3=s#O3;d@9Se>%Gq5NyFmgCBFbOn3m;v2_ysMROZ|nZ# zQeFS#lVy7Gvt;ih^Q1XzUQEb%Uw`554ikgfnQu2fcboTr)!ZqYH2ACbee_Rj$n>~+ z?Ne^?smk`gBg^M6Q>+iY@T+atQpW47Qm^j$v8>hC1}b^F%i+~oC6m39C)2+_+;#7_ zR!h#{=u*PPG4ZO#ZJ%665_7p!v+6U$)PAja-jZ{fh^@c!l8 zZOtdQ+<1Tc{=WTXLH95J|MKeBzOPI5niev?spI;ye#MF94CYSoFjyd^v}NuBfkjGe zN9HQjGr`57VdK!itQ_@H-e9hu_|s*ISFi4Q_WXJLk|PV}Gj?uk-#+{C z-?i7**6+Btl+X6S_pQ~QzVfc;*T(5QZwxszn{lIsm)i=ihUDY-_1CT2bLh-zPo9I) zHCoFO|Ez9{xRd>PJIBQ=h8;!U&Z*j4zS`?E$BKzTqI~P5U+aE2U%cD>;HcfoBEOIS tdAX9mZ5B#pd|(H28ZZVIoJz`OIMjDBuk7l^Lp%&X;OXk;vd$@?2>{MgDun<5 diff --git a/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/red.rsi/on-inhand-right.png index 8c21e807494b6eefbaea341936c7e9d90ba401aa..b1f55babdd79cf6ff1678da18d7a7433a53ba50a 100644 GIT binary patch delta 742 zcmcb?I+1OHiWFmUkh>GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$P_b#WAEJ?(Iy+ zY~etW*7H*wf-}p+&MccPrI{t}s?o7lGT;wysN*fIyem_=&Hr+XxpZmVU=uBQ&M%PY z6un!E>zMD#CdQLWM|<@aiMgG7vhU$hwY9xYYCGRIKYVhxlJooAJu`jYeLZB*lJ?8x z>LVV3&~9Ug5Z!YOfm{%w^2iaZ*16qhZ=Sp=T)gt=rAy~}E$W@^=1&jTEps@yU*cNUbMxT8!ari)bcpL_MWrhk0>oOw^pHjX~Y`stdTZIyg+Qpc~E73`nW zIpy)RpSM*Ft-i8Jx*eK$n8Tm<`qboOy_4_wJ$qqNrg!H2lUqKO^FHrLD>ix4P<-QH zX3b%pO*3wtOIi~X-Y5C|=aS8RK2uin9`7+%Hak$WJLXMk&2b~Gj|UAOf7`R_7ZlYD4(lx!vindp3MO#&_m=Yx0cU+Zvpir5|f& zAHT19vE_dd|AR+2jkoMH4mtYfYUY>a>KnfNco@y8K5H9~LAQBq#N~;9gIL}A?;ZNI z*z<|o`%>4=m-F+Q%1+O`n=B{3Dss*JKU-FF&knh@i+zS{!mf2k-gG1hnA8L~UV6{S zZq~qE)wS?~&YlLZJEgg9*CiH+epk_0C6?Z>B5DrfqO3x;j#aKZ84u*EtZ{IYx%%xO QFd;K|y85}Sb4q9e00=2&n*aa+ delta 687 zcmbQpc7t_-%0x$zdIp7Lk04(LhALGChK6PahM)g|^h*YYQUeBtR|yOZRx=nF#PcV` zA9Z73V2bl}aSW-r_2#x?#^nGRwh!-Hg-$r6BqS!UNPgifVf)5lqe_*ANdKmXA117R z;ChVD`GbMP<_8BG+hRrDIxaiRX}#m1gU5{<0UKIl*{s@3tE7bMU2YUe%x}M-6Pvw? zJ#tq~J;zz^xKq{p_kEwV?>d*J>LeL1AvqQW21X7C1}1?91_-l3#ckED#}rMRK4)pCy`PjsTj2`P4Y|7?7TQ|ZnBNbUio9WC|3t^vX0_$=*B5mcBuIU7 z`Y)cp><^px*WP&6`pX$BBPTayo>? zI|{4*FS@u$_mLS#oBdtw<6C#tY`$OC{I|6~=nA9E9_~N6N51L_i2A-~su56vhlXdz z1J3}Ci8H*~>xB>MA%_qousjl$%u3DJ_Gy#d1nzw?=eNGSsxzCheSguH_~-+_9Q>Yb z`&J)tm*K(F9?joIn}g2Zn{Ra~c0tt7l4Jh*%R<+@WqADfa==#WA1|M-m+#aQxccU@ zYDD>`mx?n)s90D9;+?K-ZL^RpMPt{Z P0}yz+`njxgN@xNAS6MK2 diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/icon.png index e355d03c189410e878e5c98e656b7635f1d04fc9..2a5093d619ea4aa930175f15f39eb8e2cdea69f4 100644 GIT binary patch delta 225 zcmZo<`ouUvvYwfNfx%@-*D)Z)SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv=#@z$e7D zC?!)_guz&jAt%af*OslHK7E?p-2;@=yEUs9NO6<|`33)n0ETanMprF5}i(`m||J$B}QG5p!IGnRZfBv@@Qxh*a-FI5({?f)hV!sXvs=3do zQOIfiUTXWVQ!Pj5=Vz9YB7Q?4L2v@m!2R#ywns1SJo6awVn-@l&!`1R}m|KGot-p3|SEG9by7#X|znHXn( xWnx@61u8@q7;To1I$+cu0izBWU6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx-l>?w0XKXhE&{ob8RDMg98ui1(k@MZFAQ~TXZeHaigPmE0EQ`bg#k**=M^CbH;tP zU*c2oM~lm$=$J||he87b6PVb<-1Wpa-)BjPVEIPg{pKDI?uGXIt6#V_UyEUaiJ?q6 zheOZlc~#5~Rm`jYCRoKUd;Mc6!_#O#21b@AYu5?0{SbPgg&e IbxsLQ00!+)1poj5 diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-equipped-HELMET.png index 2d3fbd53b445b7f57b9a285912879af0f458a254..7adb94de92e9749dc5e3308c4706f6800f9238fb 100644 GIT binary patch delta 371 zcmZo-ZDyVzST z7rlqR9kD1n{ad`?;Z#k&N^zzn=NdDI*Ne9sT=rvhd(K&FBiV5K=||_cA}g9NoP5N= z|KOX!17(IuT<0$T6mIZfee&t~En^OoV+s!4Q{!3I2)xPrqh=A%B*dYr(HPKFpCj_& zm)F$qd-xlt%b!iX*lXHZo}95U_~KXV@Y!PQY0<{F&%OUTx3*EtqFMaI`{sX2H@X{^ z?NAY%AQDmH!ggVC!|k`z4sq?~jNh6vWdVy5ropQ@Xz7!$!GW6_gmjQymzZb-@{W2?60)DvztEWj5`^9<^O{y3od3` zKevuU4*b8I|IQLP^GiOqtADbf)LOH$ZQB{P82Y&}Y?ydA;Z=EcVWGd~)0q8X&qO7@ zwEuFEJ^b0m#J=8X@zrBVW=H>gx$Au8`sp?dTGkGHnK5TH?MBF#B}EH?86sr&KFh}$A00SQ4lK7+Ia8gJ&^C- zo;Ces!@j{vu6$~MSA*t*O1VoWx=cq-+KO$~d?z>W!rP-$zp|H97ruS>khA-yNMR9w z!d8aNSz_ElVNNSACsu#@S;NQh-*nbn-0>GPnSKX{&>z+#>t7a$CKcZTrY#0fS3j3^P6NS%G}H0G|-o zqLfT!5e8#9hMXv`PoF;R+OlJp;Yf<2E<(&HIe|?3Vt9o%ppYLwTJZ{$~ zm-trNsjw&pIDNR>^zYB6iSrk9E;qY;ocEofq53mrSIy~j^r~*&a#CHKtXJI^ux|eS zGuOmUE=k!a;WS15knlOh&aemjay*41S(83WUcYrvWvPhbwjW127`TpplTB{o4{1?g z@#1h=(DL9vi$qcW_k50Lt_F&~n+gw3dUkZ?#qIwN%>MMa>Fe2s@?+PT8s5$L!q37b lvhDT`-4~pW99e6>vdXCS^prVzE(Q9A!PC{xWt~$(699vFj>7-| delta 530 zcmV+t0`2|l0-ywt8Gi-<0063Kaozv`0q03XK~#90?b^R;!cY_j@Xu1{sNg1bP@ka$ zDTOR;7j<)}(6#LYRD=2i{qq(DJGdozfPgwk-=I*7SlkN9*y(nVgkWQua zoaE%>CV|`o5D^g(5fKs5f0GEi1Iw}&{%7c>C|62rA7hz#Rex32-8}$cCsgzThHi>l zRTcd~54EZ)4BZslj9V>C15p-3*KmI|DZQ z7TAVg`4)&17C?3avatZN6OfGskez^REP(6;h=_=Yh=_=Ywk`72)~L;|JQ=zvF0U@U z@pL*3)jtrMFG8B8iCR?^0FX>3y;@lczn2r<2V3j%jRK= z5Q_qIx>n-pPh{>)ooQ&<4m3CP9*$WA~u7C?3avatZN6Oio_1zWq4 U0_gLW01E&B07*qoM6N<$g1n{i?*IS* diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/off-inhand-right.png index 186f0703034810f0b7c6d643932bf1a9862354be..b9118b37405e8a1e8f0e10b18f865bfa8022e54a 100644 GIT binary patch delta 347 zcmZ3&@|tOaWIZzj1H;_yjcNS%G}H0G|-o zqLfT!5e8#9hMXv`PoF;R+OlE+Ljv#ePX(-51PQF%&KV+67*p* z(_HJ|ONNqGTT|?9xC}Uc-MQ1hsrt{E*ayYse_0de{;s|D`>63^hXw0DXdH=M@U)K0 kIM!fNlZb>q>)Kj|omD;ElF?NzK;JNUy85}Sb4q9e0CLNS9{>OV delta 534 zcmV+x0_pwh0;B|x8Gi-<0063Kaozv`0qaRbK~#90?b^#q0#O_W@XrWZI?!&YMFqV< zxQJjLK;5}W=q=KNwk}9}fNC4q!kxOQHiH+WClFdBQV%dLTTP3Y;gpV(m->(R{lLXs z9KQLS3wRDdL_|bHL_|cZCT81q;Kq8b;il5b*rWqkmbKtW(|?&a|60%&vl+{6cUs71 zEVo{3xbwyQU(@7YANS>Ur-kj^1P=B#0VL4wv;ZKq%_#8lSE{zZPALTh96MVZ01|k6eMbNN1CHaMbXksc33`6Vas2hoW-~DV$Q1wp#ljhmPfouU4v$bQ zoFT7rf0um0^na5dx2*FYg8F@uS2-Al@$CSm%d)?$w-}X&pq@XKPLAwXuQi};_w!GD z3;ae@3YgW{x4k1+(pZ3W0BI~hIsg$75fKp)5z&7O9q0@jc`;4XACkJc zzQxbMN9mEHFmwGQWSXWMkH_JC03e&OT&2{~%qN(+0Dte~y+PFBaESZ6D}P==He)SC z31f%H!+4jyVHg+;2L5`x^8)K|A3y??svX&R1iG1?0s4L4@Am-!j}K2H`=!#!Sk#{Z zQ(pl=^KHC21>J6UDSmm+)CB}hk?Hk%^QRH8^5X(5Kstal79br!8VisPAdLk`2axs& YmwmZ$y$^yL6#xJL07*qoM6N<$g4xsfLjV8( diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-equipped-HELMET.png index e7000cc2c90d0a7663db556d46f1c2c2ac070967..daa76611f2373d57c839e694ae0e8d4009aef94a 100644 GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1dv1Jfr@7srr_xVN*;XA3)u9FKQisN0e5D6nKo z#99SS5k<9U3XdGK^1Hf}x}=s)m-=|YX?C;N)^7{0L<9!DboB4i=#cBN=W3dz)O#%? zJM&<@0(w*S3_+kxMteSl*VubnD}- zrTw#=uExHY)Ok<3OSEi#K3;Xtc<{&ls$2ciawfH#m+NOmmCHSy zH-ABI-E4s#rU=P(%fEh<_*yb&L2j<+tsRytMRLD9u3B38^UcmrpPJ2n<#N<;B$XN- zJb9=kD)+xa!oLsiYDF2=eUCpWA-m3z&tT0uzKZt?o4x)f-jUd|M&#ex-P_r}{eSCr zdveJ>i*4!;6R#_F6eKHu7ZN>o?8=csvAMfvnsU`UvN9B8n5|!6fA6dL<&ae4f2`sT zJ2(E4-!OwC@v7>&J;z?{jr7?O-Vmyz#}Kx02SdcsM@$K#-Q2hYBG?;(uD)1({Z)GO z%(>i8KW*n?Xj^e?kz2cvs8?uy@!YuLCFi7&F1u;WbpZMo9i{}!3YOerVH~o zzR-6mv6Onj_@roO*SbGBN)tPt$1~KbEm*tXpTlVT0c!@u7>nD_Uv?folJY%7sK>W{ zUbDij{^d;lZ}-nUvj5Ou!6ZC>#}+!RPG6X16H@qsQ|EpMW(fvQS3j3^P6I2-t(lLv)gTkGTQ$pew&8>-p{~z4p-X!;&97vXP zfhl;dFVj3ft>1`0YZ}j(;Pac1`5Td6Bp;Rg*5;#0KismP$#}n^s5`S%d_0#pM z%j-P@i@~W#ADbN|2ED#YtjBYzR;v@|U{nAA7*h-e0D!yO`%m{})t>(9U$eYY z2LMzmm1r%K0(|$Q3(pD^3WZ#I@>*;8crGE1X9S3dh=_=Yh=_=Yh=?fZ9Z3WoKr6NE QJpcdz07*qoM6N<$f+nZnr2qf` diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-left.png index 2b88d428ae8668274a0f902c3b26228d8447225f..4328ca313abbc0d4d0fd7aa11c00cd4bf0c92f59 100644 GIT binary patch delta 753 zcmdnXI)`n7iWFmUkh>GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$Q9g#WAEJ?(MA8 z*}{P$?dPXBMStKIU~x3r^0jqIK#N&_YX^7c?#(MS9vM%~yVb$HdxdoOBGy)^=$gx| z>qG(tVrTqdFpp}@@ZIXg{f{})V@>zO`)4IRvpuZSn&!^=?D+HSUgPa&{-*7aeAbhC z+st!WTdow>nVOV^qh?^e27uJP>E8Uwox zMGAAPCMhhr{W0%D41=GXdfoG9a=%QcFQ~46tlVPu>*s_?4|eR7H#Yfb>g_yTex^(H z%Exyftz?KLMuQ;(>yx1SF>{_gRe$?Umb!kwCy zGhH)Tw{-180p4$Omz-NC;kxa(&!XPCH}O5!&&SV5=600+JN3Y3*A4#*`g=L+PW#MW z9c#fk=g;H%-~7D{Z{FY7t-U`X+*$R~dVUZJd8-mGFaUsXt{N zsE05tkAPvDdif9gFFt3OzJkGTBLdeWbNn{y{Ql0!-L2TFx+N)fn}^DwXz#<~x0=S4Q_cq1e_53DhMV#F`d+^)SGQkkY`$w!qIYg@Wk83ndy_s3%PhSp z^JBMGX2$B*&N_EadwTM28P0tI4JT9Y={AXC(jt delta 660 zcmbQkwwHB+%0x$zdIp7Lk04(LhALGChK6PahM)g|^h*YYQUeBtR|yOZRx=nF#PcV` zA9Z73U~=|!aSW-r_2%~Z?8^xf>>u*I?z$>k_WAv9n78L7m-I`Kuba+Z<`cacXj^e> zR$FfSqk{*pJv`cMaJ)b|$NA%>kPqAbM5tSQ;1>||+W35#b711W`g=}BtFmKC-hQfG z(7ybw@Ff3xHkFmLy_`6XSPFGi3N$dVC@?T`I503lnU5q+t}si93{wbiUoOO2`=p@o zVeX-#XU_UoD-H)Q-BV_|KjhZw$a8?ZdvEoYR z-)G*JtNpKk?R)LNm0jX#m&OaJoZH7veaijw9-r%3Uu!k@Tio1h z<-Wpm=FW6pYuAzVQJ8PvokMTV#H{$0w)y9An^O}OMTwmC&%W2jwTsQQK9Grh!;XMY zpURwX)|VYW=6<`kZ`)V(+@^_)GJCoItbcK8H-owpJPa0yD{Y#&K*ck*&|wbeCn40J z0fmx`^vS&Yj+afCcLuKOsQ&)Gs&etg3Fk~07*;s@tL?Abz2n=fR^A6vDUsjmb^Mwx z2-i<{c%4wScKv(7qH?)}>}1Y$ubCJ`TpM*xdn^rls>3ZX5CwVp}zZq@brdt*Vi+YGE9FMGM$mZJTI=_U6`fmJadYXWZ{=e=6d^pP}30m o2|v~w`nAAg(81^Nbq3{a_cw~OuhL~;;9_9#boFyt=akR{0I3TjEdT%j diff --git a/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/white.rsi/on-inhand-right.png index 17f4d27bb1ea85cb73a7308ee14af6febb08f7b9..f5bc8e9427cba4339ef7f1171e9ce26cad78f5a6 100644 GIT binary patch delta 771 zcmV+e1N{8S1+E5=BpLy8Qb$4nuFf3k00004XF*Lt006O%3;baPks%j<0>eo}K~#8N z?U_w$6Hyd~&(vaD?GF$Hp=jubA0R>zY?CZRTu9rUMMY4%Fp8U6aMMNISSlJ&s8R6? z=|Wc(Q4n32SPO2Nb`hzmR%yXMkcGqwM&H|Whe^}48ih`B&I7}ndu9^udFSS4a*mVB z04PX_E8o(+RHGowtY5=QP)Bskon0kQYI6NeZ$KyuZ_k9X{ z&+eS5t$Vejs=EI@;^A=EoU_*e8(S;9bMX>vd%L~w^w-pto15MFTSB1_zbdi3PstM*F*wmj&yo?carTG^afH&ifj~*O7n^^c0dVSI*CBeH%Fv~Y;}mQ;L&MiUnla*jUkONZAUZ@H zN6vC&5sVRE&V)Pz8XC9K-e5Zo^j@IOt_Xz=M2upLIL`Z>cW=hbT)kk7_;R=g*t?5l zakt@^Jb0iBKxa_S%Xz;7?ffIY1I>0IOKk09LW60jy$i zp98!#fl9~b4D>6&Di$?>RV-=%t60h87~3DA2(2j=IxQ99WZr44lxyT`^`ru=Baf2ju`dGrju z3|{V|6Q{bVrnZ&t-Mux*VP8{{0XBKtg|!{o53?C++IEia-)^Ho)3vfFG5ymf=xsTp zdyJ#IGeYTJsa*wKSie%z9$;61?YaWHB9h5u-Un6O9)N_f>%VyN%p@PZ6LYZhudm>u)-?jCh6mXZ9&cyu*0tGCtpY+K&B(__C{&2GzW zf0VjmYt=`Cxk}E7_97y;<=vROZ!MN z!X#QxU4NyvZT_E=JieEIO^biC&tmyX10Lq@=IbB)-p*^Yqnx`fQDON?iElm})9fdD z{D_YDS#8$%bg5{>{Buh4|99xe>nBxarY^BEyS>f1zge+j@}irsSFN91e>ucs(v^>l zud`YITg>n}e2J57|J{n82lYbYjZu;SAsm4n-IE&7`0y1Sb2-%m(-WKy@Kd_B_+vuU*r)4u^_ zH|bdPecrwEiv5C{cMe~?Slsbw_uh@?7#KF_aIX#HX87>w=<0@-*$nFXOO1Eflrj9B zC-iZiW`>EBvgvNE5An$|9D>lebZF=}wqA^pVTaelzLQm1z%<9e;OXk;vd$@?2>`Hu BDqH{n diff --git a/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/icon.png b/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/icon.png index 615768866cf18224c4d9647a3ae2f2963e56c064..1a3f49cc1b30f6b656b560d44aefbb4d3ecb4300 100644 GIT binary patch delta 225 zcmeyy_=$0XWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKP~P znhS%n2!pX4Lr#>}kbvW8+T)QXC~ge!>4CfZ<;A-bkPrXMsm#F#`kN zVGw3Kp1&dmDCqC$;uvD#|F-8~6kme^kMrr4cmMz2m{_=h>tlvb#q_18vmff`DBg7X z)c8T;1@qBUz7sh%A70ZpC5F}H7}M-&$KHl4a-J!ms3yVeop_3$<-0ILjI`e~nWyDI Pvl%>H{an^LB{Ts5oIp}m delta 229 zcmVK~#90V?1!+0K-56rUA8m)B&Ro7VQ!Pj5=V{0SpWbEaYm83U&A|z{|k!;WGonvegF|$u);5cbnO5)4tX{`(lg;5L)nu-Xq>-Qnzo_L_ESTD0-)bML>-t!)&uXcqtQzWJZhjqZkJ zJ5&TGh(wgQuw7W(aQp4FLtMK#7@Xqs^9-*YMR;IsImI;3!pCo;fPg@2iyjkuau6`Z586IZ zZEfQpe?Etw-&#IDre`zrz3Wxi_2y`Lsb_F9G;Doi!;tXx_0!3}AN`X1GMnk=#+?id zKkBMQ=XARs*zXqbr?dC-{rks$3D(%{UH50@ggTyG97gg7_zt+SY+&9X$oPgK$A!U~ fL0XV#p=bL2EY~;rRBFirlNf`itDnm{r-UW|bSf91 diff --git a/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-left.png b/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-left.png index d065fc1995157419933b6966f704ab7f0bb35578..200cced5f80bfc040521d26f24a759c899564d35 100644 GIT binary patch delta 347 zcmZ3=@|tOaWIZzj1H;_yjcNS%G}H0G|-o zG#3VC5e8#9hMXv`e^(_AEMSlBSEK+14|vwQIEF;HznykatVMytm2>K+|MeAeuIj}ZeZIRT^SE7~ zT;f}4r^2Eb;Pl~g)4xBPCeB~bx!mmXao%@^hU(9hT{WlA(W|<7%Sm-{vR-vxz`FVO z&s-Bbxg=$ygwquHL&E12JHsCA%kdP7WKH@gdHvQwm8Bwz+kPDBVBk9XO*XlSKcq#0 z#f!sfLCb^xED}Ze-}5=1xf&?`ZYn%D>Dkel7q|aAF#FTvrmtrk%8y-VYIrx}3qK2& l$hO-%bYE~fa%8Rj$||GQ(^KZ?xfJLd22WQ%mvv4FO#pP+jvxR4 delta 535 zcmV+y0_gqg0;L3y8Gi-<0063Kaozv`0qjXcK~#90?bL?U!$=JoEYr&zd5S#=-w?2oEHfU^3()KlY zzAY&?xjDVbkUW5hh=_=Yh=~51sjvqyP4m~^3|+|63p4OJ{(n+0ga~?g03!;((1olw zfVo-V?HyQ31Ac<=Qy(^fSg2|bhAw2&vYXFlHZV5}G%b6-pZa1xj+4DOiut&&dcTG` z0fsK*WdTSgG%T!I-GA`qQA4Y3;qbiwB)IEaZL7QA+4icRxCsD&^&<;QX&|N9qRAT_D8z3SgA|fIpA{w{QUxr5Q`Gm=4_8m>nMo>8ur4%XGT?%ayDg6hc3dcqO*GEq|o5)}Y=1$~C*~WJ1GQrh`T$ z8+h$NBm%g;HK(ez2fV!lXL-BjaxI3d(kqe)4FCd%5Q$sB(1lEC_IiW6iaq`}`^x}; ztI|`bV@K{GxH7*Zoz)^<{H`F0TmXIz3Lp~CfKg%qsvA&^0jO?3H3p!%0o53Q>IPK% Z0&vr>FA%C|c}@TT002ovPDHLkV1ivd^^O1l diff --git a/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/off-inhand-right.png index 553cb45028300193b802b382f9c37ce833590ba5..1d47eeb0c8ae5dbda6dfad298c3b8974f8712610 100644 GIT binary patch delta 347 zcmZ3+@|tOaWIZzj1H;_yjcNS%G}H0G|-o zG#3VC5e8#9hMXv`e^(_AEMSE+Ljv#ePX(-51PQF%&KV+67*p* z(_HJ|ONNqGTT|?9xC}Uc-MQ1hsrt{E*ayYse_0de{;s|D`>63^hXw0DXdH=M@U)K0 kIM!fNlZb>q>)Kj|omD;ElF?NzK;JNUy85}Sb4q9e06q$aUjP6A delta 536 zcmaFOw2WnfWIY=L1H-D!!g~x1jBh<%978JRyuG#Gn<-I({lof8NeUKnKax3OVxwgE zxs{HeXqqK_TWaw%sjh!bY@Kaw9H)*cym)l0Wn0)nN8Y|^O$*F&E#6gqygoDR{LK63 zpUnL(cfY#kJzq^+Lk9#L^F3g4c3r$&&dalBYmG0wX4zH0?tj6O_mXD+UA8y!iz*1Q zg%wp9Pi5KT_eA~vN%=P>JF;#z8^6?1N?ee2^LM@duMcznShot8g*o5QY^i!SKSMU= z4%;I`-iwjk+n;Lh*~jQ_E|pcv{nKvQ6cy9@wRt;#Ul-f`JbyMLgTekh#i=YpQWLyx z-Cpdn_lMtYt?!B}{OTt@G86FkVeBneu;`5XD)@8nddDo$zn=s`KI@-pxz)GZ#O}`d ztbg3#b?)LY$G#*a=Up6t6`G39YvzQv2WsD5#PCHt33mLuC2`gH>abCg# zCX35o^bquNrsGyb08m*@lC_tOvD_|6)^@RH#Y8ezwn$-iCD-Kp(p0Wb|P Nc)I$ztaD0e0swQ9_{;zR diff --git a/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-equipped-HELMET.png index 2694053934274fd4911f4dbb432ffda94f2d1b6f..bea2ece2a37cf30d0c6932fd601d2af7c2ef5605 100644 GIT binary patch delta 822 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 BCD8x? diff --git a/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-inhand-right.png b/Resources/Textures/Clothing/Head/Hardhats/yellow.rsi/on-inhand-right.png index 77db56b89df5fd16564cf3e765c2510ba520c233..6ad388244c84a40045ca6d4febe20abc655a4441 100644 GIT binary patch delta 748 zcmcc0I-PBTiWFmUkh>GZx^prw85kH?(j9#r85lP9bN@+Xov0{Y&$PzV#WAEJ?(NL; z*}{PW$J3oRuC176%h@zBidXAkQ^aJ}?v9Et3ZX5lJOsPg*YDJD^%q?wl6_FV!y~UM z$dP|`mS5_|3mp@xHdYAyVPE7Fwr_Uj>t&u%(ye($pBtafHs8&ezwdqO=9wF7?yH|v zi8#85Z9|tUZ-QvI)B!Cq)B1)`oh*jc5my+(Hm+b?lf?Ooaa!uf2`5VLI`qr^obxBp zbL#J3_uqJbd19yZ&cd(YTnw{M&gPDDs$OY7{@(j2yz|nV*Cz}9wdI(dULW8aqW6{|R(&EHb2y55H+Hv1nh+k>+e$^Sk^{`&e^&bHplxn4r~ z-1H+-XNpgMo4h4vL*^?s)~>?UKd(zNEO$FEsJmy=%V%GeQrXsDI5YQYLQln=a;8ah z=5BlW<>Pdjm5qjv&ibq{R@kcUIMdmzH~z2NaXx{i<-rRil>0sxrq?YryRIRje6Pnq zdGjt0vDLiC&j58?eEoFlktzPuup7&)xgtGG*oqH4^n_cRpm#EjzhK^y2=*ucbDG-Mwp~ z%vhEG;y_5b+%oRzd6%!%y??O#(Ssxz-yiy48C3e`B~FR{snr{6yYydm5EMY)>!PWZ0 ZTztK{;iEU}O@PUn!PC{xWt~$(696WNWX}Kq delta 684 zcmbQvc9nI4%0x$zdIp7Lk04(LhALGChK6PahM)g|^h*YYQUeBtR|yOZRx=nF#PcV` zA9Z73V2bv1aSW-r_2%~Z?8^xf>>u7spW1S-jJss2=0Eo24J%a(<+fCOUT}i%-jaJM zZwzLgX6a?^*K&F$(Y3+y`r9YR*e15DdeJ7_5*zk$f+mapy*W*}^)^$EeQ94Qm-6yc zt-^%({L1_O_rLr8QW2f^T=ATu;xk7ECV>V976k@I4hIOcBU$B@_O@JenE<2YOO{V# zpU$+^xvBcM-;+5s^!paZX{lT9u1`6Zmu@`!vG&r()89<8yI$ZEc&OSzaeb9~yM6ex z>GvN@`LrgdQOo~6-b~QdL{6=Bp*5|KZSXy+n_kS+9bL(GT z=AOq)lXt4D>s2$H>D_iMK1(kr>zteR77wuMdF>e%13%;7dII zvqRgwUVPRCUBRuM20z};v!9z|nSb%l*X!YNRf|{`{M7oeUGVB^hlr9rTp!#z;K6Z3 z@sG8mqDzjHY>j%8Gioq_LQLSWM~T(K%af;XvV8P^hu*BKZO79N+_Sg*wcd6?PG3cO z+o~1y`V1Q^>TgQRXjFMUJNLKNmgQBi|M!y&4Og!V-J9Mh{Y$5c@6Ms~US`|%+Z-ac z1Enf9d^lRZXWrxud-pc{Q|7CxzHi6a=PI`#*>A&L83CE^;=#-e4cz@^QRij@{d3e( zVTSOZ=W-YROmh|7+9n;f*8N8O^IclIwSKHOyvHG^1ao!6jAQE=8Lk|AD8ze=_cH?! Nc)I$ztaD0e0s!?1Gm8KK diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING.png index 5b26aeee3088a32b29fc22400e90e0181b8be163..28f0ec6bd1cf60317b53115187591331641eb609 100644 GIT binary patch delta 842 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 diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/ce.rsi/equipped-INNERCLOTHING.png index 0c7e8142bfdc2ee03784b946146f9cf16a627a52..e9165f29cc2ac8c9c65f7918040793474789664d 100644 GIT binary patch delta 1398 zcmV-+1&R8j4u}hoBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D1szF5K~#8N?V8_fTtyVe&)TQ-MJoBxKybUHNJDI@t%S59T@(>y zQ?-hv4_X(*gjE!pBI{pZ5K>6d?M5n_(1+3o6-*FBlohcJ*?)?f8rFw~Z6uK9hxJ90 zr*eD0voo8U%VzhU*}d1cJ0BR%%-p;CJ#*&V*&j0@iyE7Uq-|JC0HkeLOaP>9SWEz< zZCFeIq-|JO0XUZ=>x;3AWxqU5oKIW0E}On^VTdf~3=JeK`p4Fi1#R@>y1dmho&$iv zE&Q7()kQ_3+JCt2R}k>N`TvUg#}23H(-A5av;nSj^*sduZ~Fd+#rlDR`{=;F%|XMW z-Tl-daUJ(@ov4OWA38^m5xsYYX#ZnHi?*(Q)c}OXc3L02wnMgxKu`q%7HucEAFq?m znkc7V4UT@*UxVU}-dU&dbed*=pQWBBdV~e-dn2@Tqkkaksvq{P!9k+Wcak-*9ugO8 zppw25UHysyP^mZcQSsRWC*O|C8qx6ZFeQ^o*&@1hAtP%_3R%s7? zSbwy2vp_ol4+?b)KuAvcsW)DIq*%K@U#qjuWAOM3 zu`RcM{oPdP6<6O^cAu=)o#zfevqkI2t3QXHb@lyV_sOa!SOIttF^izI27|$1Fc=I5 zgP}U72NKr!`Sd;WI|{zQC)s4d{w*+?B!4TsD3+WkQfaaB8WUSN^~^ZYHoY;OxP1qC#0AJt}e1nf1*cpK1FsDuoibV%t7O+3>Oh>VLHPsU zyc~*f!U{n2$thXe1j0Bbqs|Ki0e`fh32i56m-Dd_tpCsxiG(#bHz!-0w6wHPZ*MR4 z_xDp*SC?=50wAByTa%NMG&3_ptE;QBca!e!Zc3%RZ;`W{#U=>SYO)Nd0PYha zK~fLxngamTnh+%Q($reG+-CxG7N2@>ulQjw+_wMG_%}-DAwm%n%(N&CJXUZub~xn?6#cAGum*i!+xNXP|WsV^Rt^IXU$9_L82S zj?HExJv|+O)YMd(o10hso>ErQKlB5?eoRaZckkXMCMJfYq^*keh34qd!dy8j5+n(B zTb{>ev$1E-9zN}CB_aYA7U6flKNtGEUq#@QrV#1?~MeuA|X_%VihVUv&gL zj4>&Nq$J}b_T84}0g2I3w}?Aoj7cdZ8vXixeSH8(l0U1N9v%+c2w18gA0Lmy;UGCVnaRmX#ri@AS65fd z4u6OJOZ$_P%~V%chphlst5x2&Z(p$8*Vo6cUAuzqD_5>?`t<4WO#y(PRuu(5H~*!X zoELL~?Q?&+Bg1jbr$R zQWuIilx;z$(*e+Wu|or()9E;rZBgV;aRL5UShoUb!glEkFG2+vA0MZ)ql2lbsb%)5 zsVUmqZH$kPuV-v4(%x@_+HVX-!ReY}iLdAo+@XeK7g=-u#4DOEzMNkDwx7 zzy1$MEamu#X$ zV-rMp1T_0L=nM|anAE3DOEvBbN0PyrD z(CphR>`!TRtt}SrO5-BpH0JH zFo?PdnLXb=gvaAqW_#wjcj0!8kRPF&hWz||+3kMxA&7*81Tr!*IDdTjFgthd4C~F% z;NYNq{``5myStf~n0Tb$Xf)E;*!b8n2#t$|kZpD~H2zh&a>2!F~tcP~U1#piJA7KIA_o4i%OEV*Ul1-XQSX$_~We00000NkvXXu0mjf DXik&g diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering.rsi/equipped-INNERCLOTHING.png index 51b8458cf2a9f8d1e129400e20866cc346515bbc..f3b13e1ec25763d62c65b37f687de8792c9def91 100644 GIT binary patch delta 715 zcmV;+0yO>o2IB>gB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP0000;P)t-sjy3?o zpa8(20FihA{P6<8O#uJy0RMjgi;Ig>Q&VbcYH(BlIyyRlfPlcjz-DGFF>Hq)$32;bRa{vGi!vFvd!vV){sAK>D0su)wK~z{r?Uw6u!XOZZ$u5@)_NLXm z|C{zKqG5^PjO|SOBgbI?4}4(>%9{Cy+5j6s^s4|f<%)Vx!)&c(R({oCM=TXNsn&u| z%uL!}0PKSYfqx10J%ae&6N>V00OMo;VLocNj^g5bvW>q00)}}1g5uCF-!3Y?tU&qK z7JFk1%pHof+90mJ0F-|NAbjIOh#_Eo($mU5Ne}^Vsq(LYlo9|A00)5dv@Sm8O9ZuF z2WyCY^fcAq)e;{;=yTElC{EJ|kktk3ck%V@HSYGM-+yZV{vn@F<*OCooQb+C!0NbN zp#mVn38fFfFTvUoAU|OM$O{|-@LL!F>_L3{p8?nc4CtSOLk0}?Ku#!17jQftXOu4B zDQ$oaAld*ez_`*FsJVDm4}bi)``cTs5=It=s zWG{He0DoXsORSYclu@NGs@up;@&()n7LVpdI=WjE-K$J}qPt^bb002ovPDHLkV1i10K6L;9 delta 870 zcmV-s1DX8e1^ot)B!9F}OjJex005Ia0K%XEk$VCB@dA-}0LoAR$)*6vr~={B0{`v+ z|9=3{y8_+K0>n)Ki;Ig>Q&Y>d0_4^Lz@PxZO#o_YYO$38?cV}>UZREo;K~A{i+=&Pn*ySU0eEErdtd;R zbpZb40K=I8ZB_u}bqDCs06aWAR8&-JYioglfp{?j)~_1DofvXi0C`^kL^_fl00001 zbW%=J06^y0W&i*HYkE{zbVOxyV{&P5bZKvH004NLQ&wGC) zttc@!6~s2=QdV&Fa{-$R09UXYgnP0)SpWb607*naR9J=Wm0MHWFc5{cl5D`DG!Q!p z)D6&))XZO>ty?>qvF=)_x6Un$qLcUU3Yo(B1 zlm|uF4$1=fhet}OqeJ9ZrjmsyB=4yR_WAr{UTL37PGo|tcrX90GWeYQDFPC{AVVir zRek1l!q-Xv4UqJUiikLQ#4B9=U1ao6&lqran({?4E(F!aG{)2v?-KsR=&3f7lrLtp znV|EU0e|&5#k+)GYX;~#kN~l)9XMl_VJO^zAWS&8oP+kzQTrLGK2!9wfXwZKXmHT5-f2@CGoikQA9N>gC z&RLw_bzP1S@;L+&N@KhwXL|(btt0D=L5*6r9C?o`@SYqWgDSATv&1Fh3fLsuc?fXa zfiVUH*yJAIGq6GTxWdrmeGCG=vk$C%3n9XyhvXija)4a~0`!kTPtPw1@bdf=L(mDm z^yC0KI9hM=fX#XjV6%PA w0baM8eHCnTEsB1-rvf~tZ{mRLQ~rqh4cg>8^`3h`oB#j-07*qoM6N<$g8w3mEC2ui diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering_hazard.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/engineering_hazard.rsi/equipped-INNERCLOTHING.png index 4fbcd00264170efeaa5188b559b35451b17de735..1f0689cf058663006f111930480a33d12aa0e7d9 100644 GIT binary patch delta 698 zcmV;r0!97f28srdL0(Z%OjJdVHUP>{0Io#UopPydKs=d^}iK>Tlpn?NXvNC~1-KC@7Lv2AN=14ttQ zG0KCe0!|5{Z> g_X9top9U<;2e*H3EWfPU&j0`b07*qoM6N<$f)18B5&!@I delta 788 zcmV+v1MB>X2IB^hL2Y1AOjJdoKmfr_0Io#<%1{8TsUp{J2F+;zzq$Y@C@42KH`C1k zIyySiX#h@6PK%3+M@L7yrvOt^Q)+5zJUl#rfPlcjz-DGD0$@o*K~z{r?Uw73qaYB4k=vlaI>y=Ekh%E&Z#kzGBb|t|wL4Y&Cnp6$H+<2y z1;q4^dH@~((zgP{(rIc?Ath=lnZM`=rKu;hY8Jzdq|!!8X|y8Fstq8leZqgAi{{DN zJ%WVaS~J%L;Rk9M|h z0F7xb#yFrjpmesc(w+Ct``E_$y7^atL}Z+g@f4$XbB{|HJ-IOg5Jxv@bG`GmA@B}` zZ0yN4cufd)wyz=!;zL11qzixll>~_}143ylB~&oR1jYOu5W)$i4p>wL_~G>O^W`*b zA?EVGdiwoles%}VqUs&s0TfF04v>o$ak5navIt}NBXR)#y=e{r3NK650WKniUAvQp ziyWl@l7acZ6`;Gbp7i-HjaTjZO8}mqKIi&dpcI*_LJU9|ic$sa`D=fJ|5y*e13-EJ zZUI8&#)0^%&H*wd?A$5$c9gKmr^I%x5+DUGM&>{kV=3^m&<2D+OdzXZ|}K(r}wwl z*pIEN#sH6yzKQ{jsR2OvIGVo@KI*9q0z!B&e Date: Fri, 2 Dec 2022 20:42:09 -0500 Subject: [PATCH 13/19] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 032c28d7ab..49d36be7a8 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,9 +1,4 @@ Entries: -- author: JustinTrotter - changes: - - {message: Bots can now be stuffed into closets, type: Tweak} - id: 2215 - time: '2022-09-01T02:40:16.0000000+00:00' - author: EmoGarbage404 changes: - {message: Added a poster celebrating the current state of our forthcoming server., @@ -2948,3 +2943,11 @@ Entries: - {message: Weld modular mines and grenades to salvage them, type: Tweak} id: 2714 time: '2022-12-03T01:20:38.0000000+00:00' +- author: Flareguy + changes: + - {message: Updated all Engineering jumpsuit sprites, type: Tweak} + - {message: Updated the Emergency Firesuit's sprite, type: Tweak} + - {message: Partially resprited most hardhats, type: Tweak} + - {message: Added the orange hardhat to the engidrobe vendor, type: Tweak} + id: 2715 + time: '2022-12-03T01:41:06.0000000+00:00' From c9ff567c78aa52df81db4ef256788e6960fa5b44 Mon Sep 17 00:00:00 2001 From: Alex Evgrashin Date: Sat, 3 Dec 2022 02:44:10 +0100 Subject: [PATCH 14/19] Fix honkbot slipping (#12791) --- Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index aefdf6334a..98229a10dd 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -110,17 +110,23 @@ launchForwardsMultiplier: 6.0 - type: StepTrigger intersectRatio: 0.2 + - type: Physics + bodyType: Dynamic - type: Fixtures fixtures: + - shape: + !type:PhysShapeCircle + radius: 0.35 + id: "slips" + hard: false + layer: + - SlipLayer - shape: !type:PhysShapeCircle radius: 0.35 density: 20 mask: - MobMask - layer: - - MobLayer - - SlipLayer - type: Construction graph: HonkBot node: bot From b971f2425e298e21701060960140070f1874d652 Mon Sep 17 00:00:00 2001 From: Emisse <99158783+Emisse@users.noreply.github.com> Date: Fri, 2 Dec 2022 18:45:41 -0700 Subject: [PATCH 15/19] Bagel Update 15.6 real (#12796) --- Resources/Maps/bagel.yml | 70 +++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml index 1eb134fd22..2f9716d7e5 100644 --- a/Resources/Maps/bagel.yml +++ b/Resources/Maps/bagel.yml @@ -486,7 +486,7 @@ entities: components: - type: MetaData - pos: 0.4558292,0.42837813 - parent: null + parent: 943 type: Transform - chunks: 0,-1: @@ -557,7 +557,7 @@ entities: tiles: SwAAA0sAAABLAAADSwAAAksAAAJYAAAAAAAAAAAAAABYAAAASAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAEsAAAJLAAABSwAAA0sAAANLAAAAWAAAAAAAAAAAAAAAWAAAAEgAAABYAAAAWAAAAFUAAAJYAAAAWAAAAFcAAABQAAAAUAAAAEsAAANLAAACSwAAAlgAAAAAAAAAAAAAAFgAAABIAAAAWAAAAFgAAABYAAAAVQAAA1gAAABXAAAAUAAAAFAAAAJLAAACSwAAAksAAAJYAAAAVwAAAAAAAABYAAAASAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAFAAAABQAAAASwAAAUsAAANLAAADWAAAAAAAAAAAAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABLAAAASwAAAUsAAAFLAAADSwAAAFgAAAAAAAAAAAAAAFgAAABIAAAAWAAAAFgAAABVAAADWAAAAFgAAABXAAAASwAAAUsAAAJLAAAASwAAAksAAANYAAAAVwAAAFcAAABYAAAASAAAAFgAAABYAAAAVQAAAlUAAAJYAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABLAAACSwAAAEsAAAFLAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAWAAAAAAAAABXAAAASwAAAksAAAFLAAAASwAAAFgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAFgAAAAAAAAAVwAAAEsAAABLAAABSwAAAksAAAJYAAAASAAAAFgAAABIAAAASAAAAEgAAABIAAAAWAAAAFcAAABYAAAAAAAAAFcAAABLAAABSwAAA0sAAANLAAABWAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABXAAAAWAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAAWAAAAFgAAABIAAAAWAAAAFgAAABYAAAAVwAAAFgAAAAAAAAAVwAAAEsAAABLAAAAWAAAAAAAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAFcAAABLAAABSwAAAlgAAAAAAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAABXAAAASwAAAUsAAANYAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAAAAAAAAAVwAAAA== 2,-1: ind: 2,-1 - tiles: WAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABLAAACSwAAAUsAAANLAAACWAAAAEsAAAFLAAAASwAAAUsAAANLAAAAWAAAADYAAAA2AAAANgAAADYAAABYAAAASwAAAksAAAFLAAABWAAAABUAAAFLAAABSwAAAUsAAAJLAAABSwAAAVgAAAA2AAAANgAAADYAAAA2AAAANgAAAEsAAANQAAAASwAAABUAAAEVAAAASwAAAksAAAJLAAACSwAAAEsAAAFYAAAANgAAADYAAAA2AAAANgAAAFgAAABLAAAASwAAAksAAANYAAAAFQAAAFgAAAAVAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAASwAAAksAAAJLAAABWAAAAFgAAAAVAAADFQAAABUAAAJYAAAAFQAAAxUAAAIVAAABFQAAAxUAAAMVAAABWAAAAEsAAAJLAAADSwAAAlgAAABLAAAAFQAAAxUAAAAVAAADWAAAABUAAAAVAAADFQAAAxUAAAEVAAABFQAAAhUAAANLAAACUAAAA0sAAANLAAABSwAAAFgAAABYAAAAWAAAAFgAAAAVAAABFQAAABUAAAMVAAADFQAAABUAAABYAAAASwAAA0sAAABLAAADWAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAFQAAAxUAAAIVAAABFQAAABUAAAEVAAACWAAAAFgAAABLAAABWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAFQAAARUAAAAVAAADFQAAARUAAAIVAAADFQAAAlgAAABYAAAAWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAAAVAAACFQAAABUAAAAVAAAAFQAAARUAAABYAAAAWAAAAEgAAABIAAAASAAAAEgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAASAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAABUAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAPgAAAD4AAAM+AAACPgAAAz4AAAM+AAAAFQAAAD4AAAEVAAADPgAAAT4AAAI+AAACWAAAAFgAAABYAAAAWAAAAD4AAAI+AAADPgAAAD4AAAA+AAAAPgAAAhUAAAA+AAADFQAAAD4AAAE+AAABPgAAAQ== + tiles: WAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABLAAACSwAAAUsAAANLAAACWAAAAEsAAAFLAAAASwAAAUsAAANLAAAAWAAAADYAAAA2AAAANgAAADYAAABYAAAASwAAAksAAAFLAAABWAAAABUAAAFLAAABSwAAAUsAAAJLAAABSwAAAVgAAAA2AAAANgAAADYAAAA2AAAANgAAAEsAAANLAAAASwAAABUAAAEVAAAASwAAAksAAAJLAAACSwAAAEsAAAFYAAAANgAAADYAAAA2AAAANgAAAFgAAABLAAAASwAAAksAAANYAAAAFQAAAFgAAAAVAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAASwAAAksAAAJLAAABWAAAAFgAAAAVAAADFQAAABUAAAJYAAAAFQAAAxUAAAIVAAABFQAAAxUAAAMVAAABWAAAAEsAAAJLAAADSwAAAlgAAABLAAAAFQAAAxUAAAAVAAADWAAAABUAAAAVAAADFQAAAxUAAAEVAAABFQAAAhUAAANLAAACSwAAAEsAAANLAAABSwAAAFgAAABYAAAAWAAAAFgAAAAVAAABFQAAABUAAAMVAAADFQAAABUAAABYAAAASwAAA0sAAABLAAADWAAAAEsAAAFYAAAAWAAAAFgAAABYAAAAFQAAAxUAAAIVAAABFQAAABUAAAEVAAACWAAAAFgAAABLAAABWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAFQAAARUAAAAVAAADFQAAARUAAAIVAAADFQAAAlgAAABYAAAAWAAAAFgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAAAVAAACFQAAABUAAAAVAAAAFQAAARUAAABYAAAAWAAAAEgAAABIAAAASAAAAEgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABIAAAASAAAAEgAAABYAAAAWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAABUAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAPgAAAD4AAAM+AAACPgAAAz4AAAM+AAAAFQAAAD4AAAEVAAADPgAAAT4AAAI+AAACWAAAAFgAAABYAAAAWAAAAD4AAAI+AAADPgAAAD4AAAA+AAAAPgAAAhUAAAA+AAADFQAAAD4AAAE+AAABPgAAAQ== 3,-1: ind: 3,-1 tiles: WAAAAFgAAABLAAADAAAAAFcAAABYAAAAWAAAAEEAAABBAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAABUAAAIVAAAAWAAAAAAAAABXAAAAWAAAAFgAAABYAAAAQQAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAAAVAAABFQAAAFgAAAAAAAAAVwAAAFgAAABYAAAAQQAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAFQAAARUAAABYAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABLAAADSwAAAEsAAAJYAAAASAAAAFgAAABYAAAAWAAAAEEAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAASwAAAUsAAAJLAAADWAAAAEgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAVwAAAEsAAANLAAAASwAAAlgAAABIAAAAWAAAAFgAAABBAAAAQQAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAASAAAAFgAAABYAAAAQQAAAEEAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABBAAAAWAAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFgAAABIAAAAWAAAAFgAAABYAAAAWAAAAFgAAABBAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAFcAAABYAAAAWAAAAFgAAABYAAAASAAAAEgAAABYAAAAWAAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAABXAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAADPgAAAD4AAAE+AAABWAAAAFgAAABYAAAAWAAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAz4AAAI+AAABPgAAAlgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== @@ -32352,6 +32352,15 @@ entities: type: Transform - color: '#0335FCFF' type: AtmosPipeColor +- uid: 943 + components: + - type: MetaData + - type: Transform + - index: 4 + type: Map + - type: PhysicsMap + - type: Broadphase + - type: OccluderTree - uid: 944 type: ScalpelLaser components: @@ -34382,9 +34391,9 @@ entities: parent: 60 type: Transform - uid: 1201 - type: TableReinforced + type: TransmitterSubspaceStockPart components: - - pos: -67.5,9.5 + - pos: -63.585518,9.577888 parent: 60 type: Transform - uid: 1202 @@ -52221,6 +52230,9 @@ entities: - pos: 48.5,-39.5 parent: 60 type: Transform + - SecondsUntilStateChange: -37666.23 + state: Opening + type: Door - uid: 3729 type: PoweredSmallLight components: @@ -55988,7 +56000,7 @@ entities: - uid: 4259 type: Paper components: - - desc: '' + - desc: "" type: MetaData - pos: -48.414677,-15.437268 parent: 60 @@ -85547,9 +85559,9 @@ entities: parent: 60 type: Transform - uid: 8563 - type: SuperCapacitorStockPart + type: TableReinforced components: - - pos: -63.726524,9.579115 + - pos: -67.5,9.5 parent: 60 type: Transform - uid: 8564 @@ -113526,9 +113538,9 @@ entities: - canCollide: False type: Physics - uid: 13012 - type: QuadraticCapacitorStockPart + type: DrinkGoldschlagerBottleFull components: - - pos: -63.445274,9.579115 + - pos: 6.371938,-6.0707817 parent: 60 type: Transform - uid: 13013 @@ -113538,15 +113550,15 @@ entities: parent: 60 type: Transform - uid: 13014 - type: SuperMatterBinStockPart + type: MicroManipulatorStockPart components: - - pos: -67.67991,9.5806675 + - pos: -66.58286,9.687263 parent: 60 type: Transform - uid: 13015 - type: SuperMatterBinStockPart + type: ScanningModuleStockPart components: - - pos: -67.08533,9.845674 + - pos: -67.444885,9.609138 parent: 60 type: Transform - uid: 13016 @@ -113556,9 +113568,9 @@ entities: parent: 60 type: Transform - uid: 13017 - type: UltraHighPowerMicroLaserStockPart + type: ScanningModuleStockPart components: - - pos: -66.61741,9.6119175 + - pos: -67.61676,9.687263 parent: 60 type: Transform - uid: 13018 @@ -113670,23 +113682,20 @@ entities: parent: 60 type: Transform - uid: 13036 - type: HighPowerMicroLaserStockPart + type: Poweredlight components: - - pos: -66.27366,9.6119175 + - rot: 3.141592653589793 rad + pos: -51.5,11.5 parent: 60 type: Transform + - powerLoad: 0 + type: ApcPowerReceiver - uid: 13037 type: WallSolid components: - pos: -63.5,42.5 parent: 60 type: Transform -- uid: 13038 - type: FemtoManipulatorStockPart - components: - - pos: -64.40966,9.65759 - parent: 60 - type: Transform - uid: 13039 type: AirlockQuartermasterLocked components: @@ -123899,6 +123908,9 @@ entities: - pos: 31.5,-19.5 parent: 60 type: Transform + - SecondsUntilStateChange: -31179.133 + state: Closing + type: Door - uid: 14524 type: ReinforcedWindow components: @@ -170573,7 +170585,7 @@ entities: - 21492 - 21491 - 18608 - - null + - invalid - 18272 - 18270 - 18368 @@ -171347,7 +171359,7 @@ entities: - 18915 - 18906 - 18910 - - null + - invalid - 18892 - 18893 type: DeviceList @@ -171611,7 +171623,7 @@ entities: - 21568 - 2370 - 2360 - - null + - invalid type: DeviceList - uid: 21568 type: AirSensor @@ -172380,7 +172392,7 @@ entities: - devices: - 21631 - 7146 - - null + - invalid - 6015 - 5990 - 21632 @@ -172603,7 +172615,7 @@ entities: - 21648 - 16559 - 16560 - - null + - invalid type: DeviceList - uid: 21648 type: AirSensor @@ -172634,7 +172646,7 @@ entities: - 21648 - 16559 - 16560 - - null + - invalid - 21655 - 21656 type: DeviceList From c324640eaface003dd34164d83281f254ed4910a Mon Sep 17 00:00:00 2001 From: eoineoineoin Date: Sat, 3 Dec 2022 01:47:24 +0000 Subject: [PATCH 16/19] Avoid a display bug when showing a network using multitool (#12793) Co-authored-by: Eoin Mcloughlin --- .../NetworkConfiguratorLinkOverlay.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs b/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs index 3cd0df7218..23404b884b 100644 --- a/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs +++ b/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs @@ -2,7 +2,7 @@ using Content.Shared.DeviceNetwork; using Robust.Client.Graphics; using Robust.Shared.Enums; using Robust.Shared.Random; -using Robust.Shared.Utility; +using Robust.Shared.Map; namespace Content.Client.NetworkConfigurator; @@ -48,6 +48,12 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay } var sourceTransform = _entityManager.GetComponent(tracker.Owner); + if (sourceTransform.MapID == MapId.Nullspace) + { + // Can happen if the item is outside the client's view. In that case, + // we don't have a sensible transform to draw, so we need to skip it. + continue; + } foreach (var device in _deviceListSystem.GetAllDevices(tracker.Owner, deviceList)) { @@ -57,6 +63,10 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay } var linkTransform = _entityManager.GetComponent(device); + if (linkTransform.MapID == MapId.Nullspace) + { + continue; + } args.WorldHandle.DrawLine(sourceTransform.WorldPosition, linkTransform.WorldPosition, _colors[tracker.Owner]); } From bdd12bd55a380eb54a1703b2bc5f577a71cd98b1 Mon Sep 17 00:00:00 2001 From: GoodWheatley <109803540+GoodWheatley@users.noreply.github.com> Date: Fri, 2 Dec 2022 20:48:25 -0500 Subject: [PATCH 17/19] TC price changes (#12630) --- .../Prototypes/Catalog/uplink_catalog.yml | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index b67cd00ffb..53751f811d 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -38,7 +38,7 @@ description: A bolt action service rifle that has seen many wars. Not modern by any standard, hand loaded, and terrible recoil, but it is cheap. productEntity: WeaponSniperMosin cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkWeapons @@ -94,7 +94,7 @@ id: UplinkSyndieMiniBomb productEntity: SyndieMiniBomb cost: - Telecrystal: 7 + Telecrystal: 6 categories: - UplinkExplosives @@ -194,7 +194,7 @@ description: A deep shoulder holster capable of holding many types of ballistics. productEntity: ClothingBeltSyndieHolster cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkUtility @@ -224,7 +224,7 @@ description: A black jetpack. It allows you to fly around in space. Additional fuel not included. productEntity: JetpackBlack cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkUtility @@ -235,7 +235,7 @@ productEntity: ReinforcementTeleporterSyndicate icon: Objects/Devices/communication.rsi/old-radio.png cost: - Telecrystal: 25 + Telecrystal: 20 categories: - UplinkUtility @@ -266,7 +266,7 @@ description: A chemical hypospray disguised as a pen, capable of instantly injecting up to 15u of reagents. Starts empty. productEntity: Hypopen cost: - Telecrystal: 4 + Telecrystal: 6 categories: - UplinkUtility @@ -276,7 +276,7 @@ description: A gas mask that lets you adjust your voice to whoever you can think of. productEntity: ClothingMaskGasVoiceMasker cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkUtility @@ -458,7 +458,7 @@ id: UplinkPowerSink productEntity: PowerSink cost: - Telecrystal: 5 + Telecrystal: 8 categories: - UplinkTools @@ -466,7 +466,7 @@ id: UplinkCarpDehydrated productEntity: DehydratedSpaceCarp cost: - Telecrystal: 3 + Telecrystal: 2 categories: - UplinkTools @@ -477,7 +477,7 @@ description: And who says guns don't grow on trees? productEntity: GatfruitSeeds cost: - Telecrystal: 4 + Telecrystal: 6 categories: - UplinkJob conditions: @@ -490,7 +490,7 @@ description: An unholy book capable of summoning a demonic familiar. productEntity: BibleNecronomicon cost: - Telecrystal: 6 + Telecrystal: 4 categories: - UplinkJob conditions: @@ -511,7 +511,7 @@ productEntity: ClothingBackpackChameleonFill icon: /Textures/Clothing/Uniforms/Jumpsuit/rainbow.rsi/icon.png cost: - Telecrystal: 4 + Telecrystal: 6 categories: - UplinkArmor @@ -539,7 +539,7 @@ id: UplinkClothingOuterVestWeb productEntity: ClothingOuterVestWeb cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkArmor @@ -566,7 +566,7 @@ description: A simple EVA suit that offers no protection other than what's needed to survive in space. productEntity: ClothingBackpackDuffelSyndicateEVABundle cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkArmor @@ -586,7 +586,7 @@ description: Cybersun's legal department pen. Smells vaguely of hard-light and war profiteering. productEntity: CyberPen cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkMisc @@ -624,14 +624,6 @@ categories: - UplinkMisc -#- type: listing -# id: UplinkCostumeCentcom -# productEntity: ClothingBackpackDuffelSyndicateCostumeCentcom -# cost: -# Telecrystal: 4 -# categories: -# - UplinkMisc - # - type: listing # id: UplinkGigacancerScanner # name: Ultragigacancer Health Analyzer From 9fd1158cf12ef41acbd818c7585747e2b156bddf Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 2 Dec 2022 20:49:28 -0500 Subject: [PATCH 18/19] Automatic changelog update --- Resources/Changelog/Changelog.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 49d36be7a8..8d5db7a8d0 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - {message: Added a poster celebrating the current state of our forthcoming server., - type: Add} - id: 2216 - time: '2022-09-01T02:56:27.0000000+00:00' - author: Peptide90 changes: - {message: Mini Jetpack now fits in your suit storage slot., type: Tweak} @@ -2951,3 +2945,9 @@ Entries: - {message: Added the orange hardhat to the engidrobe vendor, type: Tweak} id: 2715 time: '2022-12-03T01:41:06.0000000+00:00' +- author: GoodWheatley + changes: + - {message: The Syndicate has adjusted the price of several uplink items to encourage + traitors to use more diverse strategies., type: Add} + id: 2716 + time: '2022-12-03T01:48:25.0000000+00:00' From afbb3f28f0c26e29a6e6e63ad4f4cdc6d4e8e696 Mon Sep 17 00:00:00 2001 From: Easypoller <117361103+Easypoller@users.noreply.github.com> Date: Sat, 3 Dec 2022 03:04:34 +0100 Subject: [PATCH 19/19] Added airlock kit orderable from cargo (#12722) --- .../prototypes/catalog/cargo/cargo-engineering.ftl | 5 ++++- .../catalog/fills/crates/engineering-crates.ftl | 5 ++++- .../Prototypes/Catalog/Cargo/cargo_engineering.yml | 10 ++++++++++ .../Prototypes/Catalog/Fills/Crates/engineering.yml | 13 +++++++++++++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-engineering.ftl b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-engineering.ftl index c6e0ce5493..e21a111d99 100644 --- a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-engineering.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-engineering.ftl @@ -17,4 +17,7 @@ ent-EngineeringJetpack = { ent-CrateEngineeringJetpack } .desc = { ent-CrateEngineeringJetpack.desc } ent-EngineeringMiniJetpack = { ent-CrateEngineeringMiniJetpack } - .desc = { ent-CrateEngineeringMiniJetpack.desc } \ No newline at end of file + .desc = { ent-CrateEngineeringMiniJetpack.desc } + +ent-AirlockKit = { ent-CrateAirlockKit } + .desc = { ent-CrateAirlockKit.desc } \ No newline at end of file diff --git a/Resources/Locale/en-US/prototypes/catalog/fills/crates/engineering-crates.ftl b/Resources/Locale/en-US/prototypes/catalog/fills/crates/engineering-crates.ftl index 79bd852472..f0e97ef92f 100644 --- a/Resources/Locale/en-US/prototypes/catalog/fills/crates/engineering-crates.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/fills/crates/engineering-crates.ftl @@ -26,4 +26,7 @@ ent-CrateEngineeringJetpack = Jetpack crate .desc = Two jetpacks for those who don't know how to use fire extinguishers. ent-CrateEngineeringMiniJetpack = Mini jetpack crate - .desc = Two mini jetpacks for those who want an extra challenge. \ No newline at end of file + .desc = Two mini jetpacks for those who want an extra challenge. + +ent-CrateAirlockKit = Airlock kit + .desc = A kit for building 6 airlocks, doesn't include tools. diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml index 31200f6905..614127563f 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml @@ -67,3 +67,13 @@ cost: 750 category: Engineering group: market + +- type: cargoProduct + id: AirlockKit + icon: + sprite: Objects/Tools/Toolboxes/toolbox_yellow.rsi + state: icon + product: CrateAirlockKit + cost: 1100 + category: Engineering + group: market diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml index 303a3ec1f4..a3c6a31ddb 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml @@ -105,3 +105,16 @@ contents: - id: JetpackMini amount: 2 + +- type: entity + id: CrateAirlockKit + parent: CrateGenericSteel + components: + - type: StorageFill + contents: + - id: SheetSteel + amount: 1 + - id: CableApcStack + amount: 1 + - id: DoorElectronics + amount: 6