From 98cfc27f051d74d1b82c63f4da7654950462423e Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 29 May 2024 11:57:02 -0400 Subject: [PATCH] Merge upstream 5 29 2024 (#10) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial Port * Should fix test fail * Edge with Experimental Supermatter Engine * Update edge.yml * New edge by Colintel * Update edge.yml * Update edge.yml * Physics based air throws * Update base_structureclosets.yml * Updates for review * Hello, this is an asymptote. Divide by zero must be an exit condition. * Adding the clamp back in * better sound looping * I found another small optimization * Another one * guh * Psionic Refactor pt 1 * Last bit * Last one missed * I accidentally sent the DeltaV legacy version of these * Update edge.yml * New Cvar * Update comments for documentation * Apply suggestions from code review Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> * Update supermatter * Finishing Mind Swap rework * Noospheric Zap updating * Almost done * guh * More migrations * Final migrations * Last set of migrations * Update PsionicsSystem.cs * Almost got it, one last bug to squash * slightly more acccurate but still not quite right * Update PyrokinesisPowerSystem.cs * removing some errant instances of potentialpsionic * Revert "removing some errant instances of potentialpsionic" This reverts commit 0597405a48a588c9127e1bdbdca1b3d8aae81732. * Final power update * Update psionicPowers.yml * Update psionic.ftl * some more small tweaks * Update PotentialPsionicComponent.cs * Update Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> * Update PsionicAbilitiesSystem.cs * remove downstream comments * Giving pyrokinesis back to ifrit, and setting up base caster stat bonuses to roundstart casters * Update familiars.yml * MORE * Update AtmosphereSystem.HighPressureDelta.cs * guh, last push * Fix for objects getting stuck on walls, new CVar for more expensive airflow option. * Update animals.yml * Fix tiny mobs boiling themselves to death * 1984'ing GlobalRollforward (#423) GIVE ME BACK THE TESTS. * Listening Post Earlier Start (#409) # Description This was something that always annoyed me back when I made this for DeltaV. One key feature of the Listening Post was that it would have acted to encourage traitors to actually buy the encryption key bundle, since it had the possibility of letting them get radio support from a listening post. At the time Debug insisted it should only ever spawn extremely late in the around, giving it a sufficiently low weight that it would only appear usually an hour into the round. By this point all of the traitors had either been caught or had already done their thing, thus defeating the entire point of it. It also had an absurdly high minimum player count relative to the actual threat the outpost serves, ensuring that it would never appear on lowpop servers. Seriously not even stationwide lethal threats such as Xenos Ventcritters had as high of a minimum player count. # Changelog :cl: - tweak: Syndicate Listening Posts can now appear any time in a round, and can appear on low-pop servers. * Automatic Changelog Update (#409) * Mirror: Add Prometheus stats for admin count (#323) ## Mirror of PR #26284: [Add Prometheus stats for admin count](https://github.com/space-wizards/space-station-14/pull/26284) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `a1817a12dbb385275f4273c1abf48fac0a989ddd` PR opened by PJB3005 at 2024-03-20 10:12:29 UTC --- PR changed 2 files with 106 additions and 1 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> Fixes #20828 > > Reports time series for admin count. Counts are separated by state (active, AFK, or deadminned) and admin rank. > > Requires engine master
Co-authored-by: SimpleStation14 * Walls/Windows Resprites! (#402) # Walls/Windows Resprites! Import the changes that i provided to frontier in PR: https://github.com/new-frontiers-14/frontier-station-14/pull/418 to EE, including part of this PR: https://github.com/new-frontiers-14/frontier-station-14/pull/757 Those Walls/Windows LOOK EXTREMLY MORE BETTER then the old TG walls/windows, Common its 2024! We need DRIP IN ALL WALLS! .yml changes are needed for connection to walls/window and prevent connected from doors, shutters, ect... --- # TODO - [x] Import Sprites. - [x] yml changes ---

Media

![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/28221333-4c14-44d4-8557-697462d676f2)

--- # Changelog :cl: - tweak: Better wall sprites. - tweak: Better window sprites. * Radio Resprites! (#404) # Radio Resprites! Radio Respsrites madness changes all the Headset sprites, Radio, Talkwalkies, Beacon and signaller. This also removed the "radio" sprite... well its replace it with the "old-radio". --- # TODO - [x] Sprite Import ---

Media

![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/b90d8de8-4ac8-403d-bee4-348175544f59)

--- # Changelog :cl: - tweak: Radio Resprites, Talkwalkies, Beacon, Headset... - tweak: Radio and uplink radio looks the same, make sure to check what freq the radio is on! * Automatic Changelog Update (#402) * Automatic Changelog Update (#404) * Mirror: Change Syndie Monkey Price 8-6 TC (#243) ## Mirror of PR #26214: [Change Syndie Monkey Price 8-6 TC](https://github.com/space-wizards/space-station-14/pull/26214) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `6095383ce491e9cb4836662f3bc56ee26eee29f6` PR opened by FungiFellow at 2024-03-17 17:55:32 UTC --- PR changed 1 files with 2 additions and 2 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > I decreased the Price of Monkey reinforcements from 8 to 6, > ## Why / Balance > > Monkies are awful in combat and anyone can take them out with 1-3 shoves and aren't worth 8TC 90% of the time unless the consience piloting it is robust. > ## Technical details > > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > > :cl: > - tweak: Changed Monkey Reinf Price to 6TC
Co-authored-by: SimpleStation14 * Mirror: Updated the TEG page (#260) ## Mirror of PR #26170: [Updated the TEG page](https://github.com/space-wizards/space-station-14/pull/26170) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `353784bfaed731b8a803a3191e51c9afaf6e5bb4` PR opened by Terraspark4941 at 2024-03-16 05:21:22 UTC --- PR changed 1 files with 166 additions and 13 deletions. The PR had the following labels: - No C# - Status: Needs Review ---

Original Body

> > > > ## About the PR > > Updated the TEG page to have actual information/meta about setting up the TEG > Ported from guidebook-cleanup branch on my fork > [ This information has been certified by a TEG-setup expert ] > > ## Why / Balance > > It made me angry reading the old page and not getting the information that I needed > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > **Changelog** > > > :cl: > - tweak: The TEG page in the guidebook has been updated with proper information! > >
Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Red Neck Gaiter (#214) ## Mirror of PR #25891: [Red Neck Gaiter](https://github.com/space-wizards/space-station-14/pull/25891) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `1938768ea69ad2f69758036816142a205552eb63` PR opened by Nairodian at 2024-03-06 22:32:25 UTC --- PR changed 8 files with 41 additions and 0 deletions. The PR had the following labels: - No C# - Changes: Sprites ---

Original Body

> ## About the PR > Real simple. Adds a (shameless) recolor of the existing neck gaiter in a red variant and adds two of it to the AutoDrobe > > ## Why / Balance > I felt like a proper red face mask style was missing to go with the new cowboy stuff. > > ## Media > ![image](https://github.com/space-wizards/space-station-14/assets/110078045/bae039ea-7b0c-4d14-8351-c58ea164ad5d) > - [X] I have added screenshots/videos to this PR showcasing its changes ingame. > > **Changelog** > :cl: > - add: Added a new red neck gaiter to the AutoDrobe. >
--------- Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Add PVS command permissions (#207) ## Mirror of PR #26124: [Add PVS command permissions](https://github.com/space-wizards/space-station-14/pull/26124) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `361092a40b110049b85187e935f4eb531f36a99f` PR opened by ElectroJr at 2024-03-15 03:05:58 UTC --- PR changed 1 files with 1 additions and 0 deletions. The PR had the following labels: - No C# - Status: Needs Review ---

Original Body

> Requires https://github.com/space-wizards/RobustToolbox/pull/4958
Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: fix admin verb to set unspawned ballisic ammo count (#375) ## Mirror of PR #26411: [fix admin verb to set unspawned ballisic ammo count](https://github.com/space-wizards/space-station-14/pull/26411) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `451890b85b49e17a0019d107db4a31a48cdd3518` PR opened by IProduceWidgets at 2024-03-24 21:06:57 UTC --- PR changed 2 files with 15 additions and 3 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > Fixed #26362 > > ## Why / Balance > > > ## Technical details > > I made the UpdateBallisticAppearance function public, I can't think of any reason that's a bad idea. > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > > :ADMIN: > - fix: setting ballistic ammo counts for a magazine should no longer be able to crash your game.
Co-authored-by: SimpleStation14 * Glorious Tools! (#407) # Glorious Tools! Add//Change a bunch of tools sprites that was in the tool category to make them fit better in general, Old TG... please update.exe Anywho here they are! --- # TODO - [x] Import Sprites ---

Media

![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/233559ef-0367-4836-a258-d41e481cba4e)

--- # Changelog :cl: - tweak: New Tools Sprites! * Mirror: new book - Tales of a Tired Janitor (#278) ## Mirror of PR #24441: [new book - Tales of a Tired Janitor](https://github.com/space-wizards/space-station-14/pull/24441) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `0a6921d5ef90ebaaf1e054178f2889889eea661c` PR opened by Boaz1111 at 2024-01-23 09:28:08 UTC --- PR changed 2 files with 22 additions and 0 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > I added a new book, as requested by someone in the discord. This book is about the life of a janitor working aboard a (presumably NT) space station "14". They describe the things they have to deal with, the disrespect from others, the lack of good equipment. > ## Why / Balance > > More variety in books, especially books indirectly talking about life on a space station, and the jobs on said station. > ## Technical details > > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > > no cl
Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Automatic Changelog Update (#407) * Add More Suggested VSCode Extensions (#414) Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> * Mirror: Obsolete `Logger` cleanup for `EntitySystem`s part 2 (#237) ## Mirror of PR #26159: [Obsolete `Logger` cleanup for `EntitySystem`s part 2](https://github.com/space-wizards/space-station-14/pull/26159) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `7d275a4b5e4188db424cc417c609dced3f9aca89` PR opened by LordCarve at 2024-03-15 20:15:41 UTC --- PR changed 14 files with 36 additions and 25 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > Part 2 of 2, continuation of #25941 > Gets rid of the remaining obsolete `Logger` method calls from all `EntitySystem`s and uses the expected `Log` to get at the proper sawmill. > > In particular: > 1. Make the `ExamineSystemShared`'s `InRangeUnObstructed` non-`static` (so finally able to use instance-based `Log` rather than `Logger`) and inject dependency to all systems that were using it as `static`. > 2. Adjust 4 more `EntitySystem`s to use `Log` rather than `Logger` that were missed in the previous PR. > > Tested that the game runs and the affected systems direct logs to the correct sawmill. > > ## Why / Balance > > Using Logger directly for logging is marked obsolete. Brings some order to logs (i.e. all `EntitySystem` logs start with a preceding `system.`). > > ## Technical details > > I'm pretty sure `ExamineSystemShared`'s `InRangeUnObstructed` not being `static` is the intended way since it being `static` dodges the IoC entirely. It even has dirty hacks such as getting the occluder system inside to make it happen. I didn't fix any of that as it's beyond the scope of this PR, but it's another thing that needs improving. > > These are the changes to the log sawmills: > `ExamineSystemShared.cs`: BEFORE: `root` -> NEW: `system.examine` > `AtmosphereSystem.Monstermos.cs`: BEFORE: `root` -> NEW: `system.atmosphere` > `TypingIndicatorSystem.cs`: BEFORE: `root` -> NEW: `system.typing_indicator` > `PiratesRuleSystem.cs` BEFORE: `pirates` -> NEW: `system.pirates_rule` > `TabletopSystem.Session.cs` BEFORE: `root` -> NEW: `system.tabletop` > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > Some logs now fall under a different sawmill (more precise). Any software that analyzes logs and makes assumptions on which sawmill do these logs fall to will need to be adjusted.
--------- Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: CargoConsoleMenu localization (#127) ## Mirror of PR #25931: [CargoConsoleMenu localization](https://github.com/space-wizards/space-station-14/pull/25931) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `6e38b992cfc607e09178efc178b86f35152f0cde` PR opened by modern-nm at 2024-03-08 14:46:29 UTC PR merged by web-flow at 2024-03-09 06:56:40 UTC --- PR changed 20 files with 211 additions and 195 deletions. The PR had the following labels: - Changes: UI ---

Original Body

> > > > ## About the PR > > This PR adds localization capability for CargoConsoleMenu (name of entity: ComputerCargoOrders) > > ## Why / Balance > > > Please let me tell you a story of my vision. First i decided to make these changes on one of russian community servers. But taking into account future changes of .yml files by space-wizards community (they are regularly added to our space-station build), we will have to constantly edit xml files to remove duplicate categories — imagine someone added cargoproduct with category "Fun", when we have tons of items with category "Развлечения". > > To summarize: my PR makes possible to localize categories of "cargoproduct" and makes communities do less work when upstream comes > > ## Technical details > > > New code considers strings comparisons of prototype.Category (Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs) using Loc.GetString(...). And that's all. > > ## Media > > Off course there are no visible changes on eng-localization > > ![Снимок_ножницы](https://github.com/space-wizards/space-station-14/assets/87994977/5cdbf5df-c4cc-42e6-861b-aa35a009e957) > > That's how these changes look like on our community build, using other .ftl file > > ![Снимок_ножницы2](https://github.com/space-wizards/space-station-14/assets/87994977/20023fc8-5cdf-4069-981b-edbfa98fa31d) > > > - [x] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > > .yml > - every category of type "cargoProduct" was edited to "cargoproduct-category-name-{categoryName}" > > .ftl > - file "cargoproduct-categories.ftl" was added to english localization to localize categories of cargoProduct > > .cs > - CargoConsoleMenu.xaml.cs got tweaks which prevent issues with strings comparisons > > **Changelog** > >
--------- Signed-off-by: VMSolidus Co-authored-by: MODERN <87994977+modern-nm@users.noreply.github.com> Co-authored-by: VMSolidus * Updates spawners with new content (#86) ## Mirror of PR #1032: [Updates spawners with new content](https://github.com/DeltaV-Station/Delta-v/pull/1032) from DeltaV-Station [DeltaV-Station](https://github.com/DeltaV-Station)/[Delta-v](https://github.com/DeltaV-Station/Delta-v) `5e397c6e7b2d2513f49948fbba1eb1d658fe4a9e` --- PR changed 0 files with 0 additions and 0 deletions. The PR had the following labels: - Changes: YML ---

Original Body

> ## About the PR > Title. Updates box, device, hat, machinepart, and seed spawners. > Will do Items later. > > ## Why / Balance > Just catching up
--------- Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: VMSolidus Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> * Update PsionicRegenerationPowerSystem.cs * Revert "Merge branch 'VMSolidus-Psionic-Power-Refactor'" This reverts commit 15fc457e8f1ffa3a05966566dff93dbe6994310a, reversing changes made to c62f777aee0c5e28df70953f77de950009e42c13. * Update PsionicRegenerationPowerSystem.cs * aaaaaaaaa * Update PsionicRegenerationPowerSystem.cs * fun pvs fixes * Mirror: Fixes store purchase events and adds support to raise a directed event (#364) ## Mirror of PR #26389: [Fixes store purchase events and adds support to raise a directed event](https://github.com/space-wizards/space-station-14/pull/26389) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `4dced51f0d8d008714a14675b48c8fa2b7fa0ace` PR opened by keronshb at 2024-03-24 14:16:44 UTC --- PR changed 2 files with 8 additions and 3 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > > When testing around some things with the magic PR I found that the purchase event wasn't being compared correctly. Also I added support to raise the purchase event directed at the buyer instead of just a broadcast event. > > ## Technical details > > The equals method will now check for purchase event type instead of comparing the references. To make this stronger we should talk about creating a base store purchase event class. > > For directing the event I added a bool to raise on user and we check if that's true. > > ## Media > > > - [x] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase
Co-authored-by: SimpleStation14 * Mirror: Adds logging for refunds (#275) ## Mirror of PR #26274: [Adds logging for refunds](https://github.com/space-wizards/space-station-14/pull/26274) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `85f4b43db1c0256e6d4c48a01558e8cc0a883ada` PR opened by keronshb at 2024-03-19 23:42:22 UTC --- PR changed 2 files with 4 additions and 0 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > > Refunds now have logging > > ## Why / Balance > > > Good for admins to keep track of. > > ## Technical details > > A Store Refund entry was added into the logging enum and a log entry is made when a refund is successful.
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Fix artifact report guidebook info (#268) ## Mirror of PR #26252: [Fix artifact report guidebook info](https://github.com/space-wizards/space-station-14/pull/26252) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `e70928fad8c849ac0fd48da1415b6b134f9336a8` PR opened by Vermidia at 2024-03-19 03:17:41 UTC --- PR changed 1 files with 1 additions and 1 deletions. The PR had the following labels: - No C# - Status: Needs Review ---

Original Body

> Fix conflicting info > > > > > ## About the PR > > > The line about current value still treated extracting points from artifacts as destroying them, so I've changed it to clarify how it works better. > > ## Why / Balance > > > Really confusing when part of the guide tells you to always extract and the other says to be careful since it'll get destroyed. > > ## Technical details > > > ## Media > > > - [ ] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > :cl: > - tweak: Made the Artifact Reports page up to date with current Xenoarchaeology > >
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: More good looking inventory part 2.2 (instruments version) (#189) ## Mirror of PR #26090: [More good looking inventory part 2.2 (instruments version)](https://github.com/space-wizards/space-station-14/pull/26090) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `91aa6445714d6b833474fcb911c4c8555a54f799` PR opened by lzk228 at 2024-03-13 18:52:29 UTC --- PR changed 4 files with 12 additions and 4 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > - media > - fix tophat name > > ## Why / Balance > > > ## Technical details > > > ## Media > > ![Screenshot_20240313_194028](https://github.com/space-wizards/space-station-14/assets/124214523/51640a13-f4b7-490d-8982-6d2e07dcc009) > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > no cl no fun > >
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Syringes that spawn with content start in inject mode (#129) ## Mirror of PR #25881: [Syringes that spawn with content start in inject mode](https://github.com/space-wizards/space-station-14/pull/25881) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `5cb48c922fa7236d07b463f0c38ada2d5805e54b` PR opened by Plykiya at 2024-03-06 13:43:59 UTC PR merged by web-flow at 2024-03-09 10:19:03 UTC --- PR changed 3 files with 25 additions and 23 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > Made it so that syringes that spawn with content start out in inject mode rather than draw mode. Also got rid of unnecessary DataField names if they matched. > > ## Why / Balance > > Grab bic syringe from medkit, use it on patient, it's in draw mode by default, cry. > > ## Technical details > > I added a new yml entity for prefilled syringes that starts in inject mode. > > I attempted to do it the "smart way" by changing the ComponentInit code to check for the solution amount and toggle based on that, but for some reason the solution was returning false on the server-side but not on the client-side so there was a desync in the Inject state. Couldn't really figure out how to fix it, so I just went with the dumb simple method instead. > > ## Media > > > - [ X ] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > None > > **Changelog** > > > > :cl: > - tweak: Pre-filled syringes start in inject mode now.
Signed-off-by: VMSolidus Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: VMSolidus * Mirror: Fix vox custom sprites (#186) ## Mirror of PR #25989: [Fix vox custom sprites](https://github.com/space-wizards/space-station-14/pull/25989) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `8a77722f91a94846f0027f56b8d8f2ec76254d81` PR opened by Errant-4 at 2024-03-11 09:29:16 UTC --- PR changed 1 files with 2 additions and 0 deletions. The PR had the following labels: - No C# - Status: Needs Review ---

Original Body

> ## About the PR > Clothing with custom sprites for vox have been displaying the default sprites due to a component accident. > > ## Media > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > **Changelog** > :cl: Errant > - fix: Clothes with alternate sprites for vox once again show the alternate sprites, instead of the defaults. >
Co-authored-by: SimpleStation14 * Mirror: Code cleanup: Purge calls to obsolete EntityCoordinates methods (#289) ## Mirror of PR #26292: [Code cleanup: Purge calls to obsolete EntityCoordinates methods](https://github.com/space-wizards/space-station-14/pull/26292) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `f4cb02fb0ca385c858569c07c51afb0d24ade949` PR opened by Tayrtahn at 2024-03-20 16:04:43 UTC --- PR changed 34 files with 70 additions and 56 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > Cleaned up some outdated code. > > ## Why / Balance > > Clean code is happy code. > > ## Technical details > > Updated all calls to obsolete EntityCoordinates methods (ToMap, ToMapPos, FromMap, ToVector2i, InRange) to non-obsolete ones (by passing in SharedTransformSystem as an arg). > > ## Media > > Code > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > >
--------- Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Snore is a trait now (#299) ## Mirror of PR #26322: [Snore is a trait now](https://github.com/space-wizards/space-station-14/pull/26322) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `3b3b874dd9222770da616ba07277842d6b7a09be` PR opened by lzk228 at 2024-03-21 23:18:00 UTC --- PR changed 4 files with 24 additions and 1 deletions. The PR had the following labels: ---

Original Body

> > > > ## About the PR > > Title. > Snore sound is emitting with trait. Without trait not. > > ## Why / Balance > > Someone told me that snoring is a disease, and not every should have it so i decided to do this pr. > > ## Technical details > > > ## Media > > > - [ ] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > > Make sure to take this Changelog template out of the comment block in order for it to show up. > :cl: > - tweak: Snoring is now a trait in character preference menu. > >
Co-authored-by: SimpleStation14 * Mirror: Sanitize "ig" (#298) ## Mirror of PR #26328: [Sanitize "ig"](https://github.com/space-wizards/space-station-14/pull/26328) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `4f816b4b2f74db8da32cd157110df538e50eed1a` PR opened by Doctor-Cpu at 2024-03-22 05:20:30 UTC --- PR changed 2 files with 7 additions and 3 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > "ig" gets replaced with "i guess" > > ## Why / Balance > > Common slang online which I've seen being attempted to be used before. > > ## Technical details > > N/A > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > N/A > > **Changelog** > > > > Don't feel like one is needed.
Co-authored-by: SimpleStation14 * Mirror: Fix placement mode on chairs (#183) ## Mirror of PR #26041: [Fix placement mode on chairs](https://github.com/space-wizards/space-station-14/pull/26041) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `bcc147634af1fea7b5f53f18d136f44ed46cb053` PR opened by IamVelcroboy at 2024-03-12 14:45:33 UTC --- PR changed 1 files with 8 additions and 7 deletions. The PR had the following labels: - No C# ---

Original Body

> ## About the PR > Placement mode on chairs was donked up a little bit recently. This returns the ability to free place certain(unanchored) chairs while mapping. > > ## Why / Balance > More dynamic mapping > > ## Technical details > n/a > > ## Media > - [x] I have added screenshots/videos to this PR showcasing its changes in-game, **or** this PR does not require an in-game showcase > > ## Breaking changes > n/a > > **Changelog** > n/a
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Fix mice steering (#134) ## Mirror of PR #25965: [Fix mice steering](https://github.com/space-wizards/space-station-14/pull/25965) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `819ec6361d0d2792b43357a6c45f8c95cb08d9ed` PR opened by metalgearsloth at 2024-03-10 14:57:30 UTC PR merged by web-flow at 2024-03-10 15:41:42 UTC --- PR changed 1 files with 24 additions and 1 deletions. The PR had the following labels: ---

Original Body

> Thinks there's obstacles when there isn't. Blending exposed it but it was an issue before. > > > :cl: > - fix: Fix NPC mouse movement. >
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: VMSolidus * Mirror: Create DeviceNetworkJammerComponent & System as a general way for entities to act as jammers (#382) ## Mirror of PR #26342: [Create DeviceNetworkJammerComponent & System as a general way for entities to act as jammers](https://github.com/space-wizards/space-station-14/pull/26342) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `266cc85f57c883b3a604a66da91d94bb1e18ec5d` PR opened by nikthechampiongr at 2024-03-22 19:17:23 UTC --- PR changed 7 files with 91 additions and 25 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > This PR creates the DeviceNetworkJammerComponent & System as a general way for entities to act as jammers for the DeviceNetwork. > > Additionally it adjusts the JammerSystem for the radio jammer to use this, and rips out the previous special code for jamming suit sensors. > > As a result of this, the radio jammer can now additionally jam the suit sensor server itself from receiving DeviceNetwork packets. > > ## Why / Balance > > This pr was requested by a maintainer. > > Additionally a general jamming system can have some utility in the future. E.g. an artifact effect. > ## Technical details > > > Whenever a device attempts to send a packet, the > DeviceNetworkJammerSystem listens for the BeforePacketSentEvent. > From there if any entity with the jammer component is within range of > either the sender or receiver of the packet the event will be cancelled. > Additionally jammers can only block packets in certain networks. If a > packet is not being transmitted in one of the networks it can block then > even if the jammer is in range the event will not be cancelled. > > The range is stored in the jammer component along with the networks it > can jam. > > Jammable network ids are stored as strings which seems to be how custom > networks are stored (E.g. network ids for suit sensors). > > To allow for all of this, the BeforePacketSentEvent was modified to > provide the NetworkId. > > The JammerSystem now needs to get the networkid for suit sensors for use in the DeviceNetwork. The previous event subscription for jamming suit sensors have been removed along with the event. > > I wish I could use this to jam radios as well but radios are magic and do not use device networks. > > ## Media > > > - [x] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > **Changelog** > > > > no cl no fun
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Irish Coffee Recipe Tweak (#302) ## Mirror of PR #26327: [Irish Coffee Recipe Tweak](https://github.com/space-wizards/space-station-14/pull/26327) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `e93af9bee6143f95bd01a595a34590b61e1b92cb` PR opened by BlitzTheSquishy at 2024-03-22 04:05:06 UTC --- PR changed 1 files with 3 additions and 3 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > Changed the reaction for Irish Coffee to be more logical > > ## Why / Balance > > This would simply make it easier for bartenders to mix Irish Coffee to a number that's a multiple of 2, rather than 4 (such as a metamorphic glass) > > ## Technical details > > > ## Media > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > > :cl: > > - tweak: Irish Coffee recipe adjusted to be more logical > >
Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Adds craftable ducky slippers (#261) ## Mirror of PR #26138: [Adds craftable ducky slippers](https://github.com/space-wizards/space-station-14/pull/26138) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `6694f92171ad8d6465b8c8403bf863ba66a75b74` PR opened by Plykiya at 2024-03-15 11:38:14 UTC --- PR changed 5 files with 43 additions and 1 deletions. The PR had the following labels: - No C# ---

Original Body

> > > > ## About the PR > > Allows you to craft ducky slippers out of two rubber duckies. > > ## Why / Balance > > Quack > > ## Technical details > > All yml requirements to add a construction graph, tags for it, and the end result. > > ## Media > > > - [ X ] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > ![image](https://github.com/space-wizards/space-station-14/assets/58439124/42a7e44c-3be1-42a4-9e0a-c9735380c63a) > > **Changelog** > > > > :cl: > - add: You can now craft ducky slippers.
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Fix anomaly decay logs (#227) ## Mirror of PR #26180: [Fix anomaly decay logs](https://github.com/space-wizards/space-station-14/pull/26180) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `d8a7b33b43cd9b0e241dc189653cbd4cf4c49086` PR opened by LordCarve at 2024-03-16 17:05:24 UTC --- PR changed 1 files with 3 additions and 2 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > > - Decayed Anomalies leave log with `LogImpact.Low` (down from `LogImpact.Extreme` and being misreported as having gone supercritical) > Reason: Admin Logs severity usually means how much of admin attention this requires. A decayed anomaly does not require any Admin attention and is essentially just a convenience note. > > - Swapped `LogImpact`s of supercritical event starting and finishing. > Reason: When an anomaly starts going supercritical it leaves a log with `LogImpact.High`, but when it finishes the animation it leaves a log with `LogImpact.Extreme`. This seems inconsistent to me, because the moment anomaly starts going supercritical seems to demand more Admin attention than an "it had already happened"-style report. After this change, a supercritical anomaly will still always leave at least one `LogImpact.Extreme` admin log, so from reporting perspective it should be conveying the same message;, but from "immediate responder" perspective Admins get the more-important `Extreme` log sooner (as the supercritical event starts happening, rather than after it had already finished). > > Resolves #26122 > > ## Why / Balance > > Bugfix. > > ## Technical details > > Anomalies ending still leave multiple logs. This is beyond the scope of this PR. > But at least now it won't spam the `LogImpact.Extreme` category. > > ## Media > > ![image](https://github.com/space-wizards/space-station-14/assets/27449516/09ddfd79-a872-4be2-8ba7-16619b63835b) > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > **Changelog** > > > :cl: > ADMIN > - fix: Decayed anomalies no longer show as having gone supercritical in logs.
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Use entity queries in ambient sound & power receiver systems (#376) ## Mirror of PR #26410: [Use entity queries in ambient sound & power receiver systems](https://github.com/space-wizards/space-station-14/pull/26410) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `31d70db547f855d2a3d4075e4fcf54d1c87c0f06` PR opened by ElectroJr at 2024-03-24 20:29:56 UTC --- PR changed 2 files with 18 additions and 10 deletions. The PR had the following labels: ---

Original Body

>
Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Fix wire layout inheritance. (#284) ## Mirror of PR #26289: [Fix wire layout inheritance.](https://github.com/space-wizards/space-station-14/pull/26289) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `a4692004de978cda6761d4090e13ed4d8bc1fa11` PR opened by PJB3005 at 2024-03-20 14:42:55 UTC --- PR changed 2 files with 105 additions and 0 deletions. The PR had the following labels: ---

Original Body

> Wire layouts manually navigate the inheritance hierarchy, but the data fields on the prototypes were also automatically inherited already. This meant that inheriting a wire layout prototype and changing nothing would cause the wires to be duplicated unless they were manually modified on top. > > Fix is easy: just disable inheritance on the data fields. > > Also, integration test for it. >
Co-authored-by: SimpleStation14 Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> * Mirror: Per-department wire layouts (#285) ## Mirror of PR #26247: [Per-department wire layouts](https://github.com/space-wizards/space-station-14/pull/26247) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `670a9826fec9627ffdbee69742a881dab3606fa1` PR opened by Killerqu00 at 2024-03-18 21:09:54 UTC --- PR changed 2 files with 208 additions and 0 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> > > > ## About the PR > Wire layouts for airlocks are now only same inside a single department. Wire layouts for different department airlocks are different. > ~~Also, airlocks now generally have more wires.~~ > > ## Why / Balance > > See Discord discussions and feedback regarding MRP hacking clarifications: > https://ptb.discord.com/channels/310555209753690112/1217557314328854628/1217779616828231691 > > ## Technical details > > Made some WiresSystem.cs changes, fixing code that broke inheritance. > > ## Media > > ![image](https://github.com/space-wizards/space-station-14/assets/47712032/476f5ff2-725b-481b-9805-421078905590) > ![image](https://github.com/space-wizards/space-station-14/assets/47712032/0ba49109-86f8-4bcf-8e59-d87b2989fc12) > > > - [X] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase > > ## Breaking changes > > > **Changelog** > > > :cl: > - tweak: Airlock wires are now different between departments. >
--------- Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Mirror: Run `fixgridatmos` for cargo & emergency shuttle (#361) ## Mirror of PR #26382: [Run `fixgridatmos` for cargo & emergency shuttle](https://github.com/space-wizards/space-station-14/pull/26382) from space-wizards [space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14) ###### `ec761114eacdeed6e68f9c94dddfdbec8a6e26be` PR opened by ElectroJr at 2024-03-24 07:27:14 UTC --- PR changed 6 files with 60 additions and 575 deletions. The PR had the following labels: - Status: Needs Review ---

Original Body

> This PR also changes fixgridatmos so that it trimms empty/invalid tiles. > > :cl: > - fix: Fixed the cargo & emergency shuttle not being airtight. >
Signed-off-by: VMSolidus Co-authored-by: SimpleStation14 Co-authored-by: VMSolidus * Update Submodule * changing IDs is bad but eh * Psychic refactor * Update research_director.yml * Update DispelPowerSystem.cs * Update familiars.yml --------- Signed-off-by: VMSolidus Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> Co-authored-by: SimpleStation Changelogs Co-authored-by: SimpleStation14 <130339894+SimpleStation14@users.noreply.github.com> Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com> Co-authored-by: MODERN <87994977+modern-nm@users.noreply.github.com> Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- .github/workflows/build-docfx.yml | 2 +- .vscode/extensions.json | 8 +- .../Atmos/Overlays/AtmosDebugOverlay.cs | 2 + .../CardboardBox/CardboardBoxSystem.cs | 5 +- .../Cargo/UI/CargoConsoleMenu.xaml.cs | 4 +- .../Construction/ConstructionSystem.cs | 3 +- .../ContextMenu/UI/EntityMenuUIController.cs | 2 +- Content.Client/Gameplay/GameplayStateBase.cs | 2 +- Content.Client/NPC/PathfindingSystem.cs | 10 +- Content.Client/Popups/PopupOverlay.cs | 11 +- Content.Client/Popups/PopupSystem.cs | 5 + .../Glimmer/GlimmerReactiveVisuals.cs | 0 .../GlimmerMonitor}/GlimmerMonitorUi.cs | 3 +- .../GlimmerMonitorUiFragment.xaml | 2 +- .../GlimmerMonitorUiFragment.xaml.cs | 4 +- .../Telepathy}/PsionicChatUpdateSystem.cs | 4 +- .../UserInterface}/AcceptPsionicsEUI.cs | 0 .../UserInterface}/AcceptPsionicsWindow.cs | 0 .../UserInterface/GlimmerGraph.cs | 2 +- .../Overlays/RadiationPulseOverlay.cs | 5 +- Content.Client/Sandbox/SandboxSystem.cs | 3 +- .../Systems/Chat/ChatUIController.cs | 11 +- Content.Client/Verbs/VerbSystem.cs | 8 +- .../Tests/Wires/WireLayoutTest.cs | 103 + .../Abilities/Mime/MimePowersSystem.cs | 2 +- .../Managers/AdminManager.Metrics.cs | 98 + .../Administration/Managers/AdminManager.cs | 9 +- .../Systems/AdminVerbSystem.Tools.cs | 16 +- .../Administration/Systems/AdminVerbSystem.cs | 3 +- .../Anomaly/AnomalySystem.Psionics.cs | 4 +- .../Components/IgniteOnCollideComponent.cs | 4 +- .../EntitySystems/AtmosDebugOverlaySystem.cs | 3 +- .../EntitySystems/AtmosphereSystem.CVars.cs | 6 + .../AtmosphereSystem.Commands.cs | 6 + .../AtmosphereSystem.HighPressureDelta.cs | 59 +- .../AtmosphereSystem.Monstermos.cs | 4 +- .../Bed/Components/SnoringComponent.cs | 10 + Content.Server/Bed/Sleep/SleepingSystem.cs | 5 +- Content.Server/Chat/Systems/ChatSystem.cs | 2 +- .../TypingIndicator/TypingIndicatorSystem.cs | 2 +- .../Chemistry/EntitySystems/VaporSystem.cs | 4 +- .../Conditions/ComponentInTile.cs | 3 +- .../ConstructionSystem.Initial.cs | 7 +- .../Events/GlimmerMobSpawnRule.cs | 2 +- .../Systems/DeviceNetworkJammerSystem.cs | 38 + .../Systems/DeviceNetworkSystem.cs | 11 +- .../Systems/SingletonDeviceNetServerSystem.cs | 5 +- Content.Server/Dragon/DragonSystem.cs | 3 +- .../EntitySystems/ExplosionSystem.cs | 2 +- .../GameTicking/GameTicker.Spawning.cs | 2 +- .../GameTicking/Rules/PiratesRuleSystem.cs | 4 +- Content.Server/Guardian/GuardianSystem.cs | 3 +- Content.Server/Hands/Systems/HandsSystem.cs | 3 +- .../Implants/SubdermalImplantSystem.cs | 2 +- Content.Server/Magic/MagicSystem.cs | 2 +- .../CoordinatesInRangePrecondition.cs | 2 +- .../CoordinatesNotInRangePrecondition.cs | 2 +- .../TargetInRangePrecondition.cs | 2 +- .../NPC/Pathfinding/PathfindingSystem.cs | 2 +- .../NPC/Systems/NPCSteeringSystem.Context.cs | 25 +- .../NPC/Systems/NPCUtilitySystem.cs | 5 +- .../Abilities/MetapsionicPowerSystem.cs | 74 - .../PsionicRegenerationPowerSystem.cs | 128 - .../Abilities/PyrokinesisPowerSystem.cs | 66 - .../Abilities/TelegnosisPowerSystem.cs | 67 - .../Chemistry/Effects/ChemRemovePsionic.cs | 2 +- .../BecomePsionicConditionComponent.cs | 11 - .../Systems/BecomePsionicConditionSystem.cs | 32 - .../Psionics/PotentialPsionicComponent.cs | 14 - .../Research/Oracle/OracleSystem.cs | 2 +- .../SophicScribe/SophicScribeSystem.cs | 2 +- .../Events/GlimmerWispSpawnRule.cs | 2 +- .../StationEvents/Events/MassMindSwapRule.cs | 5 +- .../StationEvents/Events/NoosphericFryRule.cs | 2 +- .../Events/NoosphericStormRule.cs | 4 +- .../StationEvents/Events/NoosphericZapRule.cs | 2 +- .../Events/PsionicCatGotYourTongueRule.cs | 2 +- .../Pointing/EntitySystems/PointingSystem.cs | 10 +- .../EntitySystems/PowerReceiverSystem.cs | 17 +- .../Psionics/Abilities/DispelPowerSystem.cs | 31 +- .../Abilities/MetapsionicPowerSystem.cs | 183 + .../Psionics/Abilities/MindSwapPowerSystem.cs | 62 +- .../Abilities/MindSwappedComponent.cs | 5 +- .../Abilities/NoosphericZapPowerSystem.cs | 44 +- .../Abilities}/PsionicAbilitiesSystem.cs | 84 +- .../PsionicInvisibilityPowerSystem.cs | 94 +- .../PsionicRegenerationPowerSystem.cs | 179 + .../Abilities/PyrokinesisPowerSystem.cs | 93 + .../RegenerativeStasisPowerSystem.cs | 76 + .../Abilities/TelegnosisPowerSystem.cs | 106 + .../Psionics/AcceptPsionicsEui.cs | 2 +- .../Psionics/AntiPsychicWeaponComponent.cs | 0 .../Audio/GlimmerSoundComponent.cs | 6 +- .../Psionics/Dreams/DreamSystem.cs | 3 - .../Psionics/Glimmer/GlimmerCommands.cs | 0 .../Psionics/Glimmer/GlimmerReactiveSystem.cs | 5 +- .../Glimmer/PassiveGlimmerReductionSystem.cs | 2 - .../Structures/GlimmerSourceComponent.cs | 0 .../Structures/GlimmerStructuresSystem.cs | 0 .../Invisibility/PsionicInvisibilitySystem.cs | 25 +- .../PsionicInvisibleContactsComponent.cs | 1 - .../PsionicInvisibleContactsSystem.cs | 2 - .../PsionicallyInvisibleComponent.cs | 0 .../Psionics/PotentialPsionicComponent.cs | 21 + .../PsionicAwaitingPlayerComponent.cs | 0 .../Psionics/PsionicBonusChanceComponent.cs | 0 .../Psionics/PsionicsCommands.cs | 6 +- .../Psionics/PsionicsSystem.cs | 23 +- .../Telepathy}/TSayCommand.cs | 3 +- .../Telepathy}/TelepathicRepeaterComponent.cs | 2 +- .../Telepathy/TelepathyChatSystem.cs} | 18 +- .../Radio/EntitySystems/JammerSystem.cs | 17 + Content.Server/Remotes/DoorRemoteSystem.cs | 3 +- .../Respawn/SpecialRespawnSystem.cs | 5 +- .../EntitySystems/EventHorizonSystem.cs | 4 +- .../EntitySystems/GravityWellSystem.cs | 8 +- .../SingularityAttractorSystem.cs | 11 +- .../EntitySystems/BluespaceLockerSystem.cs | 3 +- .../Store/Systems/StoreSystem.Ui.cs | 9 +- .../Tabletop/TabletopSystem.Session.cs | 2 +- .../Temperature/Systems/TemperatureSystem.cs | 5 +- Content.Server/Wires/WireLayout.cs | 2 + .../Systems/Carvers/NoiseRangeCarverSystem.cs | 3 +- .../Zombies/ZombieSystem.Transform.cs | 4 +- Content.Shared.Database/LogType.cs | 1 + Content.Shared/Anomaly/SharedAnomalySystem.cs | 2 +- .../SharedAtmosDebugOverlaySystem.cs | 3 +- .../Audio/SharedAmbientSoundSystem.cs | 11 +- Content.Shared/CCVar/CCVars.cs | 28 +- .../Chemistry/Components/InjectorComponent.cs | 14 +- .../Conditions/WallmountCondition.cs | 3 +- .../DeviceNetworkJammerComponent.cs | 24 + Content.Shared/Examine/ExamineSystemShared.cs | 12 +- .../EntitySystems/SharedHandsSystem.Pickup.cs | 2 +- .../Interaction/SharedInteractionSystem.cs | 6 +- .../MassSleep/MassSleepPowerComponent.cs | 18 - .../MassSleep/MassSleepPowerSystem.cs | 59 - .../Metapsionics/MetapsionicPowerComponent.cs | 21 - .../TelegnosticProjectionComponent.cs | 6 - .../Events/MassSleepPowerActionEvent.cs | 2 - .../Events/MetapsionicPowerActionEvent.cs | 3 +- .../Events/PyrokinesisPowerActionEvent.cs | 4 +- .../RegenerativeStasisPowerActionEvent.cs | 2 + Content.Shared/Nyanotrasen/Psionics/Events.cs | 28 - .../Abilities/AcceptPsionicsEuiMessage.cs | 0 .../Dispel/DamageOnDispelComponent.cs | 4 +- .../Abilities/Dispel/DispelPowerComponent.cs | 8 +- .../Abilities/Dispel/DispellableComponent.cs | 2 +- .../Metapsionics/MetapsionicPowerComponent.cs | 38 + .../MindSwap/MindSwapPowerComponent.cs | 5 +- .../NoosphericZapPowerComponent.cs | 5 +- .../PsionicInvisibilityPowerComponent.cs | 8 +- .../PsionicInvisibilityUsedComponent.cs | 3 +- .../PsionicRegenerationPowerComponent.cs | 10 +- .../Pyrokinesis/PyrokinesisPowerComponent.cs | 5 +- .../RegenerativeStasisPowerComponent.cs | 20 + .../Telegnosis/TelegnosisPowerComponent.cs | 10 +- .../TelegnosticProjectionComponent.cs | 8 + Content.Shared/Psionics/Events.cs | 64 + .../Psionics/Glimmer/GlimmerSystem.cs | 2 +- .../Glimmer/SharedGlimmerReactiveComponent.cs | 0 .../Glimmer/SharedGlimmerReactiveVisuals.cs | 0 .../ClothingGrantPsionicPowerComponent.cs | 2 +- .../Psionics/Items/HeadCageComponent.cs | 2 +- .../Psionics/Items/HeadCagedComponent.cs | 2 +- .../Psionics/Items/PsionicItemsSystem.cs | 2 +- .../Psionics/Items/TinfoilHatComponent.cs | 2 +- .../Psionics/PsionicComponent.cs | 16 +- .../Psionics/PsionicInsulationComponent.cs | 2 +- .../Psionics/PsionicsDisabledComponent.cs | 2 +- .../Psionics/SharedPsionicAbilitiesSystem.cs | 4 +- .../Psionics/SharedPsionicSystem.Insulated.cs | 4 + .../Spawning/EntitySystemExtensions.cs | 2 +- Content.Shared/Store/ListingPrototype.cs | 5 +- .../Components/SupermatterComponent.cs | 10 +- .../Systems/SharedGunSystem.Ballistic.cs | 2 +- .../Audio/Nyanotrasen/heartbeat_fast.ogg | Bin 0 -> 39983 bytes Resources/Changelog/Changelog.yml | 32 + .../en-US/nyanotrasen/abilities/psionic.ftl | 18 +- .../nyanotrasen/psionics/psychic-feedback.ftl | 21 + .../Locale/en-US/paper/book-authorbooks.ftl | 8 + .../catalog/cargo/cargoproduct-categories.ftl | 16 + .../Locale/en-US/speech/speech-chatsan.ftl | 3 + Resources/Locale/en-US/traits/traits.ftl | 3 + Resources/Maps/Dungeon/haunted.yml | 6502 ++++++++--------- Resources/Maps/edge.yml | 907 ++- .../Prototypes/Accents/word_replacements.yml | 17 +- Resources/Prototypes/Actions/types.yml | 2 +- .../Prototypes/Catalog/Cargo/cargo_armory.yml | 12 +- .../Catalog/Cargo/cargo_atmospherics.yml | 22 +- .../Prototypes/Catalog/Cargo/cargo_botany.yml | 10 +- .../Prototypes/Catalog/Cargo/cargo_cargo.yml | 4 +- .../Catalog/Cargo/cargo_circuitboards.yml | 2 +- .../Catalog/Cargo/cargo_emergency.yml | 16 +- .../Catalog/Cargo/cargo_engineering.yml | 28 +- .../Catalog/Cargo/cargo_engines.yml | 36 +- .../Prototypes/Catalog/Cargo/cargo_food.yml | 16 +- .../Prototypes/Catalog/Cargo/cargo_fun.yml | 58 +- .../Catalog/Cargo/cargo_livestock.yml | 46 +- .../Catalog/Cargo/cargo_materials.yml | 22 +- .../Catalog/Cargo/cargo_medical.yml | 30 +- .../Catalog/Cargo/cargo_science.yml | 6 +- .../Catalog/Cargo/cargo_security.yml | 18 +- .../Catalog/Cargo/cargo_service.yml | 38 +- .../Catalog/Cargo/cargo_shuttle.yml | 6 +- .../Catalog/Cargo/cargo_vending.yml | 50 +- .../VendingMachines/Inventories/theater.yml | 1 + .../Prototypes/Catalog/uplink_catalog.yml | 12 +- .../DeltaV/Entities/Mobs/NPCs/familiars.yml | 7 +- .../DeltaV/Entities/Mobs/Player/harpy.yml | 1 - .../DeltaV/Entities/Mobs/Player/vulpkanin.yml | 1 - .../Prototypes/DeltaV/GameRules/events.yml | 5 +- Resources/Prototypes/DeltaV/Species/harpy.yml | 2 +- .../Prototypes/DeltaV/Species/vulpkanin.yml | 2 +- .../Entities/Clothing/Head/hats.yml | 5 +- .../Entities/Clothing/Masks/masks.yml | 10 + .../Entities/Clothing/Shoes/misc.yml | 3 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 46 +- .../Entities/Mobs/Player/arachnid.yml | 1 - .../Prototypes/Entities/Mobs/Player/diona.yml | 1 - .../Prototypes/Entities/Mobs/Player/dwarf.yml | 2 - .../Prototypes/Entities/Mobs/Player/human.yml | 2 - .../Prototypes/Entities/Mobs/Player/moth.yml | 2 - .../Entities/Mobs/Player/reptilian.yml | 2 - .../Prototypes/Entities/Mobs/Player/slime.yml | 2 - .../Prototypes/Entities/Mobs/Species/vox.yml | 2 + .../reinforcement_teleporter.yml | 2 +- .../Fun/Instruments/instruments_misc.yml | 3 + .../Instruments/instruments_percussion.yml | 2 + .../Fun/Instruments/instruments_wind.yml | 5 +- .../Prototypes/Entities/Objects/Fun/toys.yml | 3 + .../Entities/Objects/Misc/authorbooks.yml | 14 + .../Objects/Specific/Medical/healing.yml | 28 +- .../Entities/Objects/Specific/chemistry.yml | 7 + .../Entities/Objects/Specific/syndicate.yml | 4 +- .../Structures/Doors/Airlocks/access.yml | 189 +- .../Doors/Airlocks/base_structureairlocks.yml | 3 - .../Doors/MaterialDoors/material_doors.yml | 3 - .../Structures/Doors/Shutter/shutters.yml | 3 - .../Entities/Structures/Furniture/chairs.yml | 14 +- .../Entities/Structures/Windows/window.yml | 4 +- .../Prototypes/Loadouts/Jobs/science.yml | 6 +- .../Prototypes/Nyanotrasen/Actions/types.yml | 34 +- .../Markers/Spawners/Random/books.yml | 1 + .../Markers/Spawners/Random/boxes.yml | 8 + .../Markers/Spawners/Random/devices.yml | 34 +- .../Entities/Markers/Spawners/Random/hats.yml | 20 + .../Markers/Spawners/Random/machineparts.yml | 2 +- .../Markers/Spawners/Random/seeds.yml | 3 + .../Nyanotrasen/Entities/Mobs/Player/Oni.yml | 1 - .../Entities/Mobs/Player/felinid.yml | 2 - .../Machines/metempsychoticMachine.yml | 3 + .../Entities/Structures/Research/oracle.yml | 3 + .../Structures/Research/sophicscribe.yml | 2 + .../Nyanotrasen/Objectives/traitor.yml | 23 - .../Roles/Jobs/Epistemics/forensicmantis.yml | 14 +- .../Nyanotrasen/Traits/psionics.yml | 6 + .../Prototypes/Nyanotrasen/psionicPowers.yml | 6 +- .../Prototypes/Objectives/objectiveGroups.yml | 1 - .../Graphs/clothing/ducky_slippers.yml | 22 + .../Recipes/Construction/clothing.yml | 11 + .../Prototypes/Recipes/Reactions/drinks.yml | 6 +- .../Prototypes/Roles/Jobs/Command/captain.yml | 19 - .../Roles/Jobs/Command/head_of_personnel.yml | 12 - .../Roles/Jobs/Science/research_director.yml | 24 +- .../Roles/Jobs/Science/scientist.yml | 4 - .../Roles/Jobs/Science/senior_researcher.yml | 4 - .../Roles/Jobs/Security/head_of_security.yml | 10 - .../Prototypes/Roles/Jobs/Security/warden.yml | 7 - Resources/Prototypes/Traits/disabilities.yml | 7 + Resources/Prototypes/Wires/layouts.yml | 20 + Resources/Prototypes/tags.yml | 3 + .../ServerInfo/Guidebook/Engineering/TEG.xml | 179 +- .../Guidebook/Science/ArtifactReports.xml | 2 +- .../Clothing/Ears/Headsets/base.rsi/icon.png | Bin 309 -> 387 bytes .../Clothing/Ears/Headsets/base.rsi/meta.json | 2 +- .../Ears/Headsets/base_syndicate.rsi/icon.png | Bin 288 -> 332 bytes .../Headsets/base_syndicate.rsi/meta.json | 2 +- .../Clothing/Ears/Headsets/cargo.rsi/icon.png | Bin 326 -> 402 bytes .../Ears/Headsets/cargo.rsi/icon_alt.png | Bin 516 -> 366 bytes .../Ears/Headsets/cargo.rsi/meta.json | 2 +- .../Ears/Headsets/centcom.rsi/icon.png | Bin 315 -> 307 bytes .../Ears/Headsets/centcom.rsi/icon_alt.png | Bin 469 -> 371 bytes .../Ears/Headsets/centcom.rsi/meta.json | 2 +- .../Ears/Headsets/command.rsi/icon.png | Bin 325 -> 396 bytes .../Ears/Headsets/command.rsi/icon_alt.png | Bin 504 -> 576 bytes .../Ears/Headsets/command.rsi/meta.json | 2 +- .../Ears/Headsets/engineering.rsi/icon.png | Bin 282 -> 405 bytes .../Headsets/engineering.rsi/icon_alt.png | Bin 490 -> 366 bytes .../Ears/Headsets/engineering.rsi/meta.json | 2 +- .../Ears/Headsets/freelance.rsi/icon.png | Bin 799 -> 402 bytes .../Ears/Headsets/freelance.rsi/icon_alt.png | Bin 991 -> 366 bytes .../Ears/Headsets/freelance.rsi/meta.json | 2 +- .../Ears/Headsets/medical.rsi/icon.png | Bin 287 -> 392 bytes .../Ears/Headsets/medical.rsi/icon_alt.png | Bin 469 -> 453 bytes .../Ears/Headsets/medical.rsi/meta.json | 2 +- .../Ears/Headsets/medicalscience.rsi/icon.png | Bin 316 -> 418 bytes .../Headsets/medicalscience.rsi/meta.json | 2 +- .../Ears/Headsets/mining.rsi/icon.png | Bin 396 -> 469 bytes .../Ears/Headsets/mining.rsi/meta.json | 2 +- .../Ears/Headsets/robotics.rsi/icon.png | Bin 296 -> 324 bytes .../Ears/Headsets/robotics.rsi/meta.json | 2 +- .../Ears/Headsets/science.rsi/icon.png | Bin 311 -> 396 bytes .../Ears/Headsets/science.rsi/icon_alt.png | Bin 498 -> 361 bytes .../Ears/Headsets/science.rsi/meta.json | 2 +- .../Ears/Headsets/security.rsi/icon.png | Bin 283 -> 408 bytes .../Ears/Headsets/security.rsi/icon_alt.png | Bin 455 -> 570 bytes .../Ears/Headsets/security.rsi/meta.json | 2 +- .../Ears/Headsets/service.rsi/icon.png | Bin 311 -> 418 bytes .../Ears/Headsets/service.rsi/meta.json | 2 +- .../Headsets/servicesecurity.rsi/icon.png | Bin 294 -> 418 bytes .../Headsets/servicesecurity.rsi/meta.json | 2 +- .../Ears/Headsets/syndicate.rsi/icon_alt.png | Bin 485 -> 515 bytes .../Ears/Headsets/syndicate.rsi/meta.json | 2 +- .../equipped-MASK-reptilian.png | Bin 0 -> 442 bytes .../Mask/neckgaiterred.rsi/equipped-MASK.png | Bin 0 -> 409 bytes .../Clothing/Mask/neckgaiterred.rsi/icon.png | Bin 0 -> 307 bytes .../Mask/neckgaiterred.rsi/inhand-left.png | Bin 0 -> 332 bytes .../Mask/neckgaiterred.rsi/inhand-right.png | Bin 0 -> 349 bytes .../Clothing/Mask/neckgaiterred.rsi/meta.json | 30 + .../Ears/Headsets/prisoner.rsi/icon.png | Bin 390 -> 317 bytes .../Ears/Headsets/prisoner.rsi/meta.json | 2 +- .../Headsets/securitymedical.rsi/icon.png | Bin 371 -> 408 bytes .../Headsets/securitymedical.rsi/meta.json | 2 +- .../Ears/Headsets/service.rsi/icon_alt.png | Bin 915 -> 576 bytes .../Ears/Headsets/service.rsi/meta.json | 2 +- .../syndicate_listening.rsi/icon_alt.png | Bin 531 -> 515 bytes .../syndicate_listening.rsi/meta.json | 2 +- .../Devices/communication.rsi/beacon.png | Bin 317 -> 447 bytes .../Devices/communication.rsi/beacon_dead.png | Bin 253 -> 274 bytes .../Devices/communication.rsi/meta.json | 36 +- .../old-radio-inhand-left.png | Bin 215 -> 0 bytes .../old-radio-inhand-right.png | Bin 243 -> 0 bytes .../Devices/communication.rsi/old-radio.png | Bin 401 -> 0 bytes .../communication.rsi/radio-inhand-left.png | Bin 311 -> 215 bytes .../communication.rsi/radio-inhand-right.png | Bin 263 -> 243 bytes .../Devices/communication.rsi/radio.png | Bin 536 -> 1365 bytes .../Devices/communication.rsi/signaller.png | Bin 369 -> 456 bytes .../communication.rsi/walkietalkie-off.png | Bin 290 -> 348 bytes .../communication.rsi/walkietalkie-on.png | Bin 116 -> 207 bytes .../communication.rsi/walkietalkie.png | Bin 299 -> 509 bytes .../Objects/Devices/jammer.rsi/jammer-on.png | Bin 0 -> 537 bytes .../Objects/Devices/jammer.rsi/jammer.png | Bin 495 -> 329 bytes .../Objects/Devices/jammer.rsi/meta.json | 16 +- .../Objects/Devices/signaller.rsi/meta.json | 4 +- .../Devices/signaller.rsi/signaller.png | Bin 280 -> 456 bytes .../Devices/station_beacon.rsi/blink.png | Bin 373 -> 447 bytes .../Devices/station_beacon.rsi/icon.png | Bin 302 -> 274 bytes .../Devices/station_beacon.rsi/meta.json | 2 +- .../Objects/Tools/crowbar.rsi/icon.png | Bin 174 -> 371 bytes .../Objects/Tools/crowbar.rsi/meta.json | 2 +- .../Objects/Tools/crowbar.rsi/red-icon.png | Bin 200 -> 446 bytes .../Objects/Tools/drill.rsi/drill_bolt.png | Bin 886 -> 702 bytes .../Objects/Tools/drill.rsi/drill_screw.png | Bin 887 -> 691 bytes .../Objects/Tools/drill.rsi/meta.json | 2 +- .../Objects/Tools/geiger.rsi/geiger_base.png | Bin 427 -> 467 bytes .../Tools/geiger.rsi/geiger_on_ext.png | Bin 228 -> 260 bytes .../Tools/geiger.rsi/geiger_on_high.png | Bin 176 -> 218 bytes .../Tools/geiger.rsi/geiger_on_idle.png | Bin 173 -> 218 bytes .../Tools/geiger.rsi/geiger_on_low.png | Bin 176 -> 218 bytes .../Tools/geiger.rsi/geiger_on_med.png | Bin 176 -> 218 bytes .../Objects/Tools/geiger.rsi/meta.json | 2 +- .../Tools/hand_labeler.rsi/hand_labeler.png | Bin 273 -> 479 bytes .../Objects/Tools/hand_labeler.rsi/meta.json | 2 +- .../Tools/multitool.rsi/green-unlit.png | Bin 123 -> 176 bytes .../Objects/Tools/multitool.rsi/icon.png | Bin 359 -> 540 bytes .../Objects/Tools/multitool.rsi/meta.json | 2 +- .../Objects/Tools/multitool.rsi/red-unlit.png | Bin 117 -> 175 bytes .../Tools/multitool.rsi/yellow-unlit.png | Bin 121 -> 174 bytes .../Textures/Objects/Tools/rcd.rsi/icon.png | Bin 638 -> 857 bytes .../Objects/Tools/screwdriver.rsi/meta.json | 2 +- .../Tools/screwdriver.rsi/screwdriver-map.png | Bin 262 -> 310 bytes .../screwdriver-screwybits.png | Bin 152 -> 225 bytes .../Tools/screwdriver.rsi/screwdriver.png | Bin 227 -> 223 bytes .../Objects/Tools/seclite.rsi/meta.json | 2 +- .../Objects/Tools/seclite.rsi/seclite-on.png | Bin 287 -> 260 bytes .../Tools/seclite.rsi/seclite-overlay.png | Bin 121 -> 279 bytes .../Objects/Tools/seclite.rsi/seclite.png | Bin 286 -> 321 bytes .../Objects/Tools/spray_painter.rsi/meta.json | 2 +- .../Tools/spray_painter.rsi/spray_painter.png | Bin 518 -> 772 bytes .../Objects/Tools/welder.rsi/icon.png | Bin 290 -> 568 bytes .../Objects/Tools/welder.rsi/meta.json | 2 +- .../Objects/Tools/welder.rsi/welder_flame.png | Bin 181 -> 255 bytes .../Tools/welder_experimental.rsi/icon.png | Bin 564 -> 907 bytes .../Tools/welder_experimental.rsi/meta.json | 2 +- .../welder_experimental.rsi/welder_flame.png | Bin 295 -> 247 bytes .../Tools/welder_industrial.rsi/icon.png | Bin 345 -> 462 bytes .../Tools/welder_industrial.rsi/meta.json | 2 +- .../welder_industrial.rsi/welder_flame.png | Bin 296 -> 247 bytes .../Tools/welder_industrialadv.rsi/icon.png | Bin 396 -> 548 bytes .../Tools/welder_industrialadv.rsi/meta.json | 2 +- .../welder_industrialadv.rsi/welder_flame.png | Bin 297 -> 247 bytes .../wirecutters.rsi/cutters-cutty-thingy.png | Bin 217 -> 239 bytes .../Tools/wirecutters.rsi/cutters-map.png | Bin 331 -> 411 bytes .../Objects/Tools/wirecutters.rsi/cutters.png | Bin 228 -> 231 bytes .../Objects/Tools/wirecutters.rsi/meta.json | 2 +- .../Objects/Tools/wrench.rsi/icon.png | Bin 230 -> 484 bytes .../Objects/Tools/wrench.rsi/meta.json | 2 +- .../Doors/secret_door.rsi/assembly.png | Bin 305 -> 178 bytes .../Doors/secret_door.rsi/closed.png | Bin 171 -> 117 bytes .../Doors/secret_door.rsi/closing.png | Bin 516 -> 563 bytes .../Doors/secret_door.rsi/meta.json | 24 +- .../Structures/Doors/secret_door.rsi/open.png | Bin 219 -> 170 bytes .../Doors/secret_door.rsi/opening.png | Bin 530 -> 582 bytes .../Walls/reinforced_diagonal.rsi/meta.json | 2 +- .../Walls/reinforced_diagonal.rsi/state0.png | Bin 666 -> 5943 bytes .../Walls/reinforced_diagonal.rsi/state1.png | Bin 639 -> 5829 bytes .../Structures/Walls/shuttle.rsi/meta.json | 20 +- .../Walls/shuttle.rsi/shuttle_construct-0.png | Bin 0 -> 632 bytes .../Walls/shuttle.rsi/shuttle_construct-1.png | Bin 0 -> 652 bytes .../Walls/shuttle.rsi/shuttle_construct-2.png | Bin 0 -> 689 bytes .../Walls/shuttle.rsi/shuttle_construct-3.png | Bin 0 -> 690 bytes .../Walls/shuttle.rsi/shuttle_construct-4.png | Bin 0 -> 675 bytes .../Walls/shuttle.rsi/shuttle_construct-5.png | Bin 0 -> 671 bytes .../Structures/Walls/solid.rsi/full.png | Bin 547 -> 168 bytes .../Structures/Walls/solid.rsi/meta.json | 2 +- .../Walls/solid.rsi/reinf_construct-0.png | Bin 891 -> 225 bytes .../Walls/solid.rsi/reinf_construct-1.png | Bin 863 -> 266 bytes .../Walls/solid.rsi/reinf_construct-2.png | Bin 956 -> 264 bytes .../Walls/solid.rsi/reinf_construct-3.png | Bin 956 -> 262 bytes .../Walls/solid.rsi/reinf_construct-4.png | Bin 963 -> 265 bytes .../Walls/solid.rsi/reinf_construct-5.png | Bin 1016 -> 258 bytes .../Walls/solid.rsi/reinf_over0.png | Bin 1128 -> 481 bytes .../Walls/solid.rsi/reinf_over1.png | Bin 994 -> 395 bytes .../Walls/solid.rsi/reinf_over2.png | Bin 1128 -> 481 bytes .../Walls/solid.rsi/reinf_over3.png | Bin 994 -> 395 bytes .../Walls/solid.rsi/reinf_over4.png | Bin 991 -> 393 bytes .../Walls/solid.rsi/reinf_over5.png | Bin 880 -> 352 bytes .../Walls/solid.rsi/reinf_over6.png | Bin 991 -> 393 bytes .../Walls/solid.rsi/reinf_over7.png | Bin 763 -> 204 bytes .../Structures/Walls/solid.rsi/rgeneric.png | Bin 864 -> 225 bytes .../Structures/Walls/solid.rsi/solid0.png | Bin 782 -> 391 bytes .../Structures/Walls/solid.rsi/solid1.png | Bin 415 -> 274 bytes .../Structures/Walls/solid.rsi/solid2.png | Bin 782 -> 391 bytes .../Structures/Walls/solid.rsi/solid3.png | Bin 415 -> 274 bytes .../Structures/Walls/solid.rsi/solid4.png | Bin 423 -> 280 bytes .../Structures/Walls/solid.rsi/solid5.png | Bin 448 -> 352 bytes .../Structures/Walls/solid.rsi/solid6.png | Bin 423 -> 280 bytes .../Structures/Walls/solid.rsi/solid7.png | Bin 261 -> 204 bytes .../Walls/solid_diagonal.rsi/state0.png | Bin 316 -> 316 bytes .../Walls/solid_diagonal.rsi/state1.png | Bin 297 -> 292 bytes .../Windows/plasma_diagonal.rsi/state0.png | Bin 15748 -> 729 bytes .../Windows/plasma_diagonal.rsi/state1.png | Bin 15665 -> 704 bytes .../Windows/plasma_window.rsi/full.png | Bin 1597 -> 430 bytes .../Windows/plasma_window.rsi/meta.json | 2 +- .../Windows/plasma_window.rsi/pwindow0.png | Bin 2063 -> 762 bytes .../Windows/plasma_window.rsi/pwindow1.png | Bin 1099 -> 735 bytes .../Windows/plasma_window.rsi/pwindow2.png | Bin 2063 -> 762 bytes .../Windows/plasma_window.rsi/pwindow3.png | Bin 1099 -> 735 bytes .../Windows/plasma_window.rsi/pwindow4.png | Bin 1161 -> 734 bytes .../Windows/plasma_window.rsi/pwindow5.png | Bin 1064 -> 680 bytes .../Windows/plasma_window.rsi/pwindow6.png | Bin 1161 -> 734 bytes .../Windows/plasma_window.rsi/pwindow7.png | Bin 247 -> 270 bytes .../reinforced_plasma_diagonal.rsi/state0.png | Bin 15911 -> 764 bytes .../reinforced_plasma_diagonal.rsi/state1.png | Bin 15885 -> 737 bytes .../reinforced_plasma_window.rsi/full.png | Bin 2495 -> 443 bytes .../reinforced_plasma_window.rsi/meta.json | 2 +- .../rpwindow0.png | Bin 2930 -> 776 bytes .../rpwindow1.png | Bin 1696 -> 877 bytes .../rpwindow2.png | Bin 2930 -> 776 bytes .../rpwindow3.png | Bin 1696 -> 877 bytes .../rpwindow4.png | Bin 1745 -> 874 bytes .../rpwindow5.png | Bin 1695 -> 721 bytes .../rpwindow6.png | Bin 1745 -> 874 bytes .../rpwindow7.png | Bin 910 -> 270 bytes .../state0.png | Bin 15734 -> 765 bytes .../state1.png | Bin 15695 -> 739 bytes .../reinforced_uranium_window.rsi/full.png | Bin 2067 -> 452 bytes .../reinforced_uranium_window.rsi/meta.json | 90 +- .../ruwindow0.png | Bin 2366 -> 750 bytes .../ruwindow1.png | Bin 1169 -> 872 bytes .../ruwindow2.png | Bin 2342 -> 750 bytes .../ruwindow3.png | Bin 1138 -> 872 bytes .../ruwindow4.png | Bin 1133 -> 874 bytes .../ruwindow5.png | Bin 1088 -> 704 bytes .../ruwindow6.png | Bin 1129 -> 874 bytes .../ruwindow7.png | Bin 267 -> 270 bytes .../Windows/reinforced_window.rsi/full.png | Bin 2063 -> 437 bytes .../Windows/reinforced_window.rsi/meta.json | 2 +- .../reinforced_window.rsi/rwindow0.png | Bin 2229 -> 758 bytes .../reinforced_window.rsi/rwindow1.png | Bin 1148 -> 620 bytes .../reinforced_window.rsi/rwindow2.png | Bin 2229 -> 758 bytes .../reinforced_window.rsi/rwindow3.png | Bin 1148 -> 620 bytes .../reinforced_window.rsi/rwindow4.png | Bin 1130 -> 615 bytes .../reinforced_window.rsi/rwindow5.png | Bin 1025 -> 706 bytes .../reinforced_window.rsi/rwindow6.png | Bin 1130 -> 615 bytes .../reinforced_window.rsi/rwindow7.png | Bin 272 -> 268 bytes .../reinforced_window_diagonal.rsi/state0.png | Bin 16179 -> 768 bytes .../reinforced_window_diagonal.rsi/state1.png | Bin 16152 -> 741 bytes .../Windows/tinted_window.rsi/full.png | Bin 9436 -> 387 bytes .../Windows/tinted_window.rsi/meta.json | 2 +- .../Windows/tinted_window.rsi/twindow0.png | Bin 10814 -> 2397 bytes .../Windows/tinted_window.rsi/twindow1.png | Bin 8214 -> 2230 bytes .../Windows/tinted_window.rsi/twindow2.png | Bin 10815 -> 2397 bytes .../Windows/tinted_window.rsi/twindow3.png | Bin 8477 -> 2230 bytes .../Windows/tinted_window.rsi/twindow4.png | Bin 8217 -> 2236 bytes .../Windows/tinted_window.rsi/twindow5.png | Bin 6896 -> 2336 bytes .../Windows/tinted_window.rsi/twindow6.png | Bin 8464 -> 2236 bytes .../Windows/tinted_window.rsi/twindow7.png | Bin 4882 -> 1915 bytes .../Windows/uranium_window.rsi/full.png | Bin 1321 -> 432 bytes .../Windows/uranium_window.rsi/meta.json | 90 +- .../Windows/uranium_window.rsi/uwindow0.png | Bin 1688 -> 773 bytes .../Windows/uranium_window.rsi/uwindow1.png | Bin 1225 -> 739 bytes .../Windows/uranium_window.rsi/uwindow2.png | Bin 1688 -> 773 bytes .../Windows/uranium_window.rsi/uwindow3.png | Bin 1225 -> 739 bytes .../Windows/uranium_window.rsi/uwindow4.png | Bin 1216 -> 739 bytes .../Windows/uranium_window.rsi/uwindow5.png | Bin 795 -> 664 bytes .../Windows/uranium_window.rsi/uwindow6.png | Bin 1229 -> 739 bytes .../Windows/uranium_window.rsi/uwindow7.png | Bin 297 -> 270 bytes .../uranium_window_diagonal.rsi/state0.png | Bin 15629 -> 729 bytes .../uranium_window_diagonal.rsi/state1.png | Bin 15604 -> 703 bytes .../Structures/Windows/window.rsi/full.png | Bin 1224 -> 427 bytes .../Structures/Windows/window.rsi/meta.json | 2 +- .../Structures/Windows/window.rsi/window0.png | Bin 1632 -> 714 bytes .../Structures/Windows/window.rsi/window1.png | Bin 1183 -> 518 bytes .../Structures/Windows/window.rsi/window2.png | Bin 1632 -> 714 bytes .../Structures/Windows/window.rsi/window3.png | Bin 1183 -> 518 bytes .../Structures/Windows/window.rsi/window4.png | Bin 1187 -> 523 bytes .../Structures/Windows/window.rsi/window5.png | Bin 800 -> 666 bytes .../Structures/Windows/window.rsi/window6.png | Bin 1187 -> 523 bytes .../Structures/Windows/window.rsi/window7.png | Bin 301 -> 268 bytes .../Windows/window_diagonal.rsi/state0.png | Bin 15988 -> 735 bytes .../Windows/window_diagonal.rsi/state1.png | Bin 15966 -> 702 bytes Resources/engineCommandPerms.yml | 1 + Scripts/bat/!README.txt | 0 Scripts/bat/buildAllDebug.bat | 0 Scripts/bat/buildAllRelease.bat | 0 Scripts/bat/buildAllTools.bat | 0 Scripts/bat/runQuickAll.bat | 0 Scripts/bat/runQuickClient.bat | 0 Scripts/bat/runQuickServer.bat | 0 Scripts/bat/runTests.bat | 0 Scripts/bat/runTestsIntegration.bat | 0 Scripts/bat/runTestsYAML.bat | 0 Scripts/sh/!README.txt | 0 Scripts/sh/buildAllDebug.sh | 0 Scripts/sh/buildAllRelease.sh | 0 Scripts/sh/buildAllTools.sh | 0 Scripts/sh/runQuickAll.sh | 0 Scripts/sh/runQuickClient.sh | 0 Scripts/sh/runQuickServer.sh | 0 Scripts/sh/runTests.sh | 0 Scripts/sh/runTestsIntegration.sh | 0 Scripts/sh/runTestsYAML.sh | 0 global.json | 2 +- 545 files changed, 6840 insertions(+), 5051 deletions(-) rename Content.Client/{Nyanotrasen => }/Psionics/Glimmer/GlimmerReactiveVisuals.cs (100%) rename Content.Client/{Nyanotrasen/CartridgeLoader/Cartridges => Psionics/GlimmerMonitor}/GlimmerMonitorUi.cs (92%) rename Content.Client/{Nyanotrasen/CartridgeLoader/Cartridges => Psionics/GlimmerMonitor}/GlimmerMonitorUiFragment.xaml (93%) rename Content.Client/{Nyanotrasen/CartridgeLoader/Cartridges => Psionics/GlimmerMonitor}/GlimmerMonitorUiFragment.xaml.cs (96%) rename Content.Client/{Nyanotrasen/Chat => Psionics/Telepathy}/PsionicChatUpdateSystem.cs (92%) rename Content.Client/{Nyanotrasen/Psionics/UI => Psionics/UserInterface}/AcceptPsionicsEUI.cs (100%) rename Content.Client/{Nyanotrasen/Psionics/UI => Psionics/UserInterface}/AcceptPsionicsWindow.cs (100%) rename Content.Client/{Nyanotrasen => Psionics}/UserInterface/GlimmerGraph.cs (97%) create mode 100644 Content.IntegrationTests/Tests/Wires/WireLayoutTest.cs create mode 100644 Content.Server/Administration/Managers/AdminManager.Metrics.cs create mode 100644 Content.Server/Bed/Components/SnoringComponent.cs create mode 100644 Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MetapsionicPowerSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegenerationPowerSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PyrokinesisPowerSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/TelegnosisPowerSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs delete mode 100644 Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs delete mode 100644 Content.Server/Nyanotrasen/Psionics/PotentialPsionicComponent.cs rename Content.Server/{Nyanotrasen/Abilities => }/Psionics/Abilities/DispelPowerSystem.cs (83%) create mode 100644 Content.Server/Psionics/Abilities/MetapsionicPowerSystem.cs rename Content.Server/{Nyanotrasen/Abilities => }/Psionics/Abilities/MindSwapPowerSystem.cs (78%) rename Content.Server/{Nyanotrasen/Abilities => }/Psionics/Abilities/MindSwappedComponent.cs (79%) rename Content.Server/{Nyanotrasen/Abilities => }/Psionics/Abilities/NoosphericZapPowerSystem.cs (54%) rename Content.Server/{Nyanotrasen/Abilities/Psionics => Psionics/Abilities}/PsionicAbilitiesSystem.cs (54%) rename Content.Server/{Nyanotrasen/Abilities => }/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs (57%) create mode 100644 Content.Server/Psionics/Abilities/PsionicRegenerationPowerSystem.cs create mode 100644 Content.Server/Psionics/Abilities/PyrokinesisPowerSystem.cs create mode 100644 Content.Server/Psionics/Abilities/RegenerativeStasisPowerSystem.cs create mode 100644 Content.Server/Psionics/Abilities/TelegnosisPowerSystem.cs rename Content.Server/{Nyanotrasen => }/Psionics/AcceptPsionicsEui.cs (95%) rename Content.Server/{Nyanotrasen => }/Psionics/AntiPsychicWeaponComponent.cs (100%) rename Content.Server/{Nyanotrasen => Psionics}/Audio/GlimmerSoundComponent.cs (80%) rename Content.Server/{Nyanotrasen => }/Psionics/Dreams/DreamSystem.cs (93%) rename Content.Server/{Nyanotrasen => }/Psionics/Glimmer/GlimmerCommands.cs (100%) rename Content.Server/{Nyanotrasen => }/Psionics/Glimmer/GlimmerReactiveSystem.cs (99%) rename Content.Server/{Nyanotrasen => }/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs (94%) rename Content.Server/{Nyanotrasen => }/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs (100%) rename Content.Server/{Nyanotrasen => }/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs (100%) rename Content.Server/{Nyanotrasen => }/Psionics/Invisibility/PsionicInvisibilitySystem.cs (88%) rename Content.Server/{Nyanotrasen => }/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs (95%) rename Content.Server/{Nyanotrasen => }/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs (95%) rename Content.Server/{Nyanotrasen => }/Psionics/Invisibility/PsionicallyInvisibleComponent.cs (100%) create mode 100644 Content.Server/Psionics/PotentialPsionicComponent.cs rename Content.Server/{Nyanotrasen => }/Psionics/PsionicAwaitingPlayerComponent.cs (100%) rename Content.Server/{Nyanotrasen => }/Psionics/PsionicBonusChanceComponent.cs (100%) rename Content.Server/{Nyanotrasen => }/Psionics/PsionicsCommands.cs (84%) rename Content.Server/{Nyanotrasen => }/Psionics/PsionicsSystem.cs (91%) rename Content.Server/{Nyanotrasen/Chat => Psionics/Telepathy}/TSayCommand.cs (95%) rename Content.Server/{Nyanotrasen/Chat => Psionics/Telepathy}/TelepathicRepeaterComponent.cs (82%) rename Content.Server/{Nyanotrasen/Chat/NyanoChatSystem.cs => Psionics/Telepathy/TelepathyChatSystem.cs} (85%) create mode 100644 Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs delete mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerComponent.cs delete mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerSystem.cs delete mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs delete mode 100644 Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs delete mode 100644 Content.Shared/Nyanotrasen/Actions/Events/MassSleepPowerActionEvent.cs create mode 100644 Content.Shared/Nyanotrasen/Actions/Events/RegenerativeStasisPowerActionEvent.cs delete mode 100644 Content.Shared/Nyanotrasen/Psionics/Events.cs rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/AcceptPsionicsEuiMessage.cs (100%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs (77%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/Dispel/DispelPowerComponent.cs (79%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/Dispel/DispellableComponent.cs (69%) create mode 100644 Content.Shared/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs (76%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs (77%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs (71%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs (94%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs (76%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs (79%) create mode 100644 Content.Shared/Psionics/Abilities/RegenerativeStasis/RegenerativeStasisPowerComponent.cs rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs (73%) create mode 100644 Content.Shared/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs create mode 100644 Content.Shared/Psionics/Events.cs rename Content.Shared/{Nyanotrasen => }/Psionics/Glimmer/GlimmerSystem.cs (98%) rename Content.Shared/{Nyanotrasen => }/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs (100%) rename Content.Shared/{Nyanotrasen => }/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs (100%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Items/ClothingGrantPsionicPowerComponent.cs (84%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Items/HeadCageComponent.cs (96%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Items/HeadCagedComponent.cs (81%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Items/PsionicItemsSystem.cs (98%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/Items/TinfoilHatComponent.cs (90%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/PsionicComponent.cs (51%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/PsionicInsulationComponent.cs (82%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/PsionicsDisabledComponent.cs (84%) rename Content.Shared/{Nyanotrasen/Abilities => }/Psionics/SharedPsionicAbilitiesSystem.cs (97%) create mode 100644 Content.Shared/Psionics/SharedPsionicSystem.Insulated.cs create mode 100644 Resources/Audio/Nyanotrasen/heartbeat_fast.ogg create mode 100644 Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl create mode 100644 Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl create mode 100644 Resources/Prototypes/Nyanotrasen/Traits/psionics.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/clothing/ducky_slippers.yml create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/equipped-MASK-reptilian.png create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/equipped-MASK.png create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Mask/neckgaiterred.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Devices/communication.rsi/old-radio-inhand-left.png delete mode 100644 Resources/Textures/Objects/Devices/communication.rsi/old-radio-inhand-right.png delete mode 100644 Resources/Textures/Objects/Devices/communication.rsi/old-radio.png create mode 100644 Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-1.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-2.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-4.png create mode 100644 Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-5.png mode change 100755 => 100644 Scripts/bat/!README.txt mode change 100755 => 100644 Scripts/bat/buildAllDebug.bat mode change 100755 => 100644 Scripts/bat/buildAllRelease.bat mode change 100755 => 100644 Scripts/bat/buildAllTools.bat mode change 100755 => 100644 Scripts/bat/runQuickAll.bat mode change 100755 => 100644 Scripts/bat/runQuickClient.bat mode change 100755 => 100644 Scripts/bat/runQuickServer.bat mode change 100755 => 100644 Scripts/bat/runTests.bat mode change 100755 => 100644 Scripts/bat/runTestsIntegration.bat mode change 100755 => 100644 Scripts/bat/runTestsYAML.bat mode change 100755 => 100644 Scripts/sh/!README.txt mode change 100755 => 100644 Scripts/sh/buildAllDebug.sh mode change 100755 => 100644 Scripts/sh/buildAllRelease.sh mode change 100755 => 100644 Scripts/sh/buildAllTools.sh mode change 100755 => 100644 Scripts/sh/runQuickAll.sh mode change 100755 => 100644 Scripts/sh/runQuickClient.sh mode change 100755 => 100644 Scripts/sh/runQuickServer.sh mode change 100755 => 100644 Scripts/sh/runTests.sh mode change 100755 => 100644 Scripts/sh/runTestsIntegration.sh mode change 100755 => 100644 Scripts/sh/runTestsYAML.sh diff --git a/.github/workflows/build-docfx.yml b/.github/workflows/build-docfx.yml index ca1a6f0af12..d37e37026d7 100644 --- a/.github/workflows/build-docfx.yml +++ b/.github/workflows/build-docfx.yml @@ -21,7 +21,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v3.2.0 with: - dotnet-version: 8.0.x + dotnet-version: 8.0.100 - name: Install dependencies run: dotnet restore diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 83bca6f97bc..737b90563e8 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,12 @@ { "recommendations": [ "ms-dotnettools.csharp", - "editorconfig.editorconfig" + "editorconfig.editorconfig", + "aaron-bond.better-comments", + "tamasfe.even-better-toml", + "slava0135.robust-yaml", + "slevesque.shader", + "macabeus.vscode-fluent", + "redhat.vscode-yaml" ] } diff --git a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs index fcf3b04e530..6dfbc326ecb 100644 --- a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs +++ b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs @@ -256,6 +256,8 @@ private void DrawTooltip(DrawingHandleScreen handle, Vector2 pos, AtmosDebugOver handle.DrawString(_font, pos, $"Map: {data.MapAtmosphere}"); pos += offset; handle.DrawString(_font, pos, $"NoGrid: {data.NoGrid}"); + pos += offset; + handle.DrawString(_font, pos, $"Immutable: {data.Immutable}"); } private void GetGrids(MapId mapId, Box2Rotated box) diff --git a/Content.Client/CardboardBox/CardboardBoxSystem.cs b/Content.Client/CardboardBox/CardboardBoxSystem.cs index 50f9de239d5..90a21d8e41b 100644 --- a/Content.Client/CardboardBox/CardboardBoxSystem.cs +++ b/Content.Client/CardboardBox/CardboardBoxSystem.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using Content.Shared.CardboardBox; using Content.Shared.CardboardBox.Components; using Content.Shared.Examine; @@ -11,6 +11,7 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem { [Dependency] private readonly EntityLookupSystem _entityLookup = default!; [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; public override void Initialize() { @@ -55,7 +56,7 @@ private void OnBoxEffect(PlayBoxEffectMessage msg) foreach (var mob in mobMoverEntities) { var mapPos = _transform.GetMapCoordinates(mob); - if (!ExamineSystemShared.InRangeUnOccluded(sourcePos, mapPos, box.Distance, null)) + if (!_examine.InRangeUnOccluded(sourcePos, mapPos, box.Distance, null)) continue; var ent = Spawn(box.Effect, mapPos); diff --git a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs index baf0d31f1f1..e60335bc45c 100644 --- a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs +++ b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs @@ -93,7 +93,7 @@ public void PopulateProducts() if (search.Length == 0 && _category == null || search.Length != 0 && prototype.Name.ToLowerInvariant().Contains(search) || search.Length != 0 && prototype.Description.ToLowerInvariant().Contains(search) || - search.Length == 0 && _category != null && prototype.Category.Equals(_category)) + search.Length == 0 && _category != null && Loc.GetString(prototype.Category).Equals(_category)) { var button = new CargoProductRow { @@ -122,7 +122,7 @@ public void PopulateCategories() foreach (var prototype in ProductPrototypes) { - if (!_categoryStrings.Contains(prototype.Category)) + if (!_categoryStrings.Contains(Loc.GetString(prototype.Category))) { _categoryStrings.Add(Loc.GetString(prototype.Category)); } diff --git a/Content.Client/Construction/ConstructionSystem.cs b/Content.Client/Construction/ConstructionSystem.cs index ae1724c3bf6..66000a8457d 100644 --- a/Content.Client/Construction/ConstructionSystem.cs +++ b/Content.Client/Construction/ConstructionSystem.cs @@ -27,6 +27,7 @@ public sealed class ConstructionSystem : SharedConstructionSystem [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; private readonly Dictionary _ghosts = new(); @@ -195,7 +196,7 @@ public bool TrySpawnGhost( return false; // This InRangeUnobstructed should probably be replaced with "is there something blocking us in that tile?" - var predicate = GetPredicate(prototype.CanBuildInImpassable, loc.ToMap(EntityManager)); + var predicate = GetPredicate(prototype.CanBuildInImpassable, loc.ToMap(EntityManager, _transformSystem)); if (!_interactionSystem.InRangeUnobstructed(user, loc, 20f, predicate: predicate)) return false; diff --git a/Content.Client/ContextMenu/UI/EntityMenuUIController.cs b/Content.Client/ContextMenu/UI/EntityMenuUIController.cs index ae1b3ec3bf0..a60619baa35 100644 --- a/Content.Client/ContextMenu/UI/EntityMenuUIController.cs +++ b/Content.Client/ContextMenu/UI/EntityMenuUIController.cs @@ -170,7 +170,7 @@ private bool HandleOpenEntityMenu(in PointerInputCmdHandler.PointerInputCmdArgs if (_combatMode.IsInCombatMode(args.Session?.AttachedEntity)) return false; - var coords = args.Coordinates.ToMap(_entityManager); + var coords = args.Coordinates.ToMap(_entityManager, _xform); if (_verbSystem.TryGetEntityMenuEntities(coords, out var entities)) OpenRootMenu(entities); diff --git a/Content.Client/Gameplay/GameplayStateBase.cs b/Content.Client/Gameplay/GameplayStateBase.cs index bdbd69d1086..6236cd8e958 100644 --- a/Content.Client/Gameplay/GameplayStateBase.cs +++ b/Content.Client/Gameplay/GameplayStateBase.cs @@ -104,7 +104,7 @@ private bool HandleInspect(ICommonSession? session, EntityCoordinates coords, En public IEnumerable GetClickableEntities(EntityCoordinates coordinates) { - return GetClickableEntities(coordinates.ToMap(_entityManager)); + return GetClickableEntities(coordinates.ToMap(_entityManager, _entitySystemManager.GetEntitySystem())); } public IEnumerable GetClickableEntities(MapCoordinates coordinates) diff --git a/Content.Client/NPC/PathfindingSystem.cs b/Content.Client/NPC/PathfindingSystem.cs index 548edd601ce..7bf3df1f0b9 100644 --- a/Content.Client/NPC/PathfindingSystem.cs +++ b/Content.Client/NPC/PathfindingSystem.cs @@ -23,6 +23,7 @@ public sealed class PathfindingSystem : SharedPathfindingSystem [Dependency] private readonly IResourceCache _cache = default!; [Dependency] private readonly NPCSteeringSystem _steering = default!; [Dependency] private readonly MapSystem _mapSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; public PathfindingDebugMode Modes { @@ -39,7 +40,7 @@ public PathfindingDebugMode Modes } else if (!overlayManager.HasOverlay()) { - overlayManager.AddOverlay(new PathfindingOverlay(EntityManager, _eyeManager, _inputManager, _mapManager, _cache, this, _mapSystem)); + overlayManager.AddOverlay(new PathfindingOverlay(EntityManager, _eyeManager, _inputManager, _mapManager, _cache, this, _mapSystem, _transformSystem)); } if ((value & PathfindingDebugMode.Steering) != 0x0) @@ -140,6 +141,7 @@ public sealed class PathfindingOverlay : Overlay private readonly IMapManager _mapManager; private readonly PathfindingSystem _system; private readonly MapSystem _mapSystem; + private readonly SharedTransformSystem _transformSystem; public override OverlaySpace Space => OverlaySpace.ScreenSpace | OverlaySpace.WorldSpace; @@ -153,7 +155,8 @@ public PathfindingOverlay( IMapManager mapManager, IResourceCache cache, PathfindingSystem system, - MapSystem mapSystem) + MapSystem mapSystem, + SharedTransformSystem transformSystem) { _entManager = entManager; _eyeManager = eyeManager; @@ -161,6 +164,7 @@ public PathfindingOverlay( _mapManager = mapManager; _system = system; _mapSystem = mapSystem; + _transformSystem = transformSystem; _font = new VectorFont(cache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10); } @@ -480,7 +484,7 @@ private void DrawWorld(OverlayDrawArgs args, DrawingHandleWorld worldHandle) if (neighborPoly.NetEntity != poly.GraphUid) { color = Color.Green; - var neighborMap = _entManager.GetCoordinates(neighborPoly).ToMap(_entManager); + var neighborMap = _entManager.GetCoordinates(neighborPoly).ToMap(_entManager, _transformSystem); if (neighborMap.MapId != args.MapId) continue; diff --git a/Content.Client/Popups/PopupOverlay.cs b/Content.Client/Popups/PopupOverlay.cs index 1305d8bb947..fb6bb3bf565 100644 --- a/Content.Client/Popups/PopupOverlay.cs +++ b/Content.Client/Popups/PopupOverlay.cs @@ -21,7 +21,8 @@ public sealed class PopupOverlay : Overlay private readonly IUserInterfaceManager _uiManager; private readonly PopupSystem _popup; private readonly PopupUIController _controller; - + private readonly ExamineSystemShared _examine; + private readonly SharedTransformSystem _transform; private readonly ShaderInstance _shader; public override OverlaySpace Space => OverlaySpace.ScreenSpace; @@ -33,12 +34,16 @@ public PopupOverlay( IPrototypeManager protoManager, IUserInterfaceManager uiManager, PopupUIController controller, + ExamineSystemShared examine, + SharedTransformSystem transform, PopupSystem popup) { _configManager = configManager; _entManager = entManager; _playerMgr = playerMgr; _uiManager = uiManager; + _examine = examine; + _transform = transform; _popup = popup; _controller = controller; @@ -73,7 +78,7 @@ private void DrawWorld(DrawingHandleScreen worldHandle, OverlayDrawArgs args, fl foreach (var popup in _popup.WorldLabels) { - var mapPos = popup.InitialPos.ToMap(_entManager); + var mapPos = popup.InitialPos.ToMap(_entManager, _transform); if (mapPos.MapId != args.MapId) continue; @@ -81,7 +86,7 @@ private void DrawWorld(DrawingHandleScreen worldHandle, OverlayDrawArgs args, fl var distance = (mapPos.Position - args.WorldBounds.Center).Length(); // Should handle fade here too wyci. - if (!args.WorldBounds.Contains(mapPos.Position) || !ExamineSystemShared.InRangeUnOccluded(viewPos, mapPos, distance, + if (!args.WorldBounds.Contains(mapPos.Position) || !_examine.InRangeUnOccluded(viewPos, mapPos, distance, e => e == popup.InitialPos.EntityId || e == ourEntity, entMan: _entManager)) continue; diff --git a/Content.Client/Popups/PopupSystem.cs b/Content.Client/Popups/PopupSystem.cs index cf96c41241a..479fb02906c 100644 --- a/Content.Client/Popups/PopupSystem.cs +++ b/Content.Client/Popups/PopupSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared.Examine; using Content.Shared.GameTicking; using Content.Shared.Popups; using Robust.Client.Graphics; @@ -26,6 +27,8 @@ public sealed class PopupSystem : SharedPopupSystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IUserInterfaceManager _uiManager = default!; [Dependency] private readonly IReplayRecordingManager _replayRecording = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; public IReadOnlyList WorldLabels => _aliveWorldLabels; public IReadOnlyList CursorLabels => _aliveCursorLabels; @@ -51,6 +54,8 @@ public override void Initialize() _prototype, _uiManager, _uiManager.GetUIController(), + _examine, + _transform, this)); } diff --git a/Content.Client/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveVisuals.cs b/Content.Client/Psionics/Glimmer/GlimmerReactiveVisuals.cs similarity index 100% rename from Content.Client/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveVisuals.cs rename to Content.Client/Psionics/Glimmer/GlimmerReactiveVisuals.cs diff --git a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUi.cs similarity index 92% rename from Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs rename to Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUi.cs index 0b5fc7ad38c..0d8accb9f86 100644 --- a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUi.cs +++ b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUi.cs @@ -1,10 +1,11 @@ using Robust.Client.GameObjects; using Robust.Client.UserInterface; +using Content.Client.Psionics.UI; using Content.Client.UserInterface.Fragments; using Content.Shared.CartridgeLoader.Cartridges; using Content.Shared.CartridgeLoader; -namespace Content.Client.Nyanotrasen.CartridgeLoader.Cartridges; +namespace Content.Client.Psionics.GlimmerMonitor; public sealed partial class GlimmerMonitorUi : UIFragment { diff --git a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml similarity index 93% rename from Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml rename to Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml index 119a1831e6e..3044680e27b 100644 --- a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml +++ b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml @@ -1,4 +1,4 @@ - diff --git a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml.cs b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml.cs similarity index 96% rename from Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml.cs rename to Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml.cs index 43d9202aa45..58bbee38a2f 100644 --- a/Content.Client/Nyanotrasen/CartridgeLoader/Cartridges/GlimmerMonitorUiFragment.xaml.cs +++ b/Content.Client/Psionics/GlimmerMonitor/GlimmerMonitorUiFragment.xaml.cs @@ -1,12 +1,12 @@ using System.Linq; using System.Numerics; -using Content.Client.Nyanotrasen.UserInterface; +using Content.Client.Psionics.UI; using Robust.Client.AutoGenerated; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; -namespace Content.Client.Nyanotrasen.CartridgeLoader.Cartridges; +namespace Content.Client.Psionics.GlimmerMonitor; [GenerateTypedNameReferences] public sealed partial class GlimmerMonitorUiFragment : BoxContainer diff --git a/Content.Client/Nyanotrasen/Chat/PsionicChatUpdateSystem.cs b/Content.Client/Psionics/Telepathy/PsionicChatUpdateSystem.cs similarity index 92% rename from Content.Client/Nyanotrasen/Chat/PsionicChatUpdateSystem.cs rename to Content.Client/Psionics/Telepathy/PsionicChatUpdateSystem.cs index 84602052fe7..7bb88764a1f 100644 --- a/Content.Client/Nyanotrasen/Chat/PsionicChatUpdateSystem.cs +++ b/Content.Client/Psionics/Telepathy/PsionicChatUpdateSystem.cs @@ -1,8 +1,8 @@ -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Client.Chat.Managers; using Robust.Client.Player; -namespace Content.Client.Nyanotrasen.Chat +namespace Content.Client.Psionics.Chat { public sealed class PsionicChatUpdateSystem : EntitySystem { diff --git a/Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsEUI.cs b/Content.Client/Psionics/UserInterface/AcceptPsionicsEUI.cs similarity index 100% rename from Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsEUI.cs rename to Content.Client/Psionics/UserInterface/AcceptPsionicsEUI.cs diff --git a/Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsWindow.cs b/Content.Client/Psionics/UserInterface/AcceptPsionicsWindow.cs similarity index 100% rename from Content.Client/Nyanotrasen/Psionics/UI/AcceptPsionicsWindow.cs rename to Content.Client/Psionics/UserInterface/AcceptPsionicsWindow.cs diff --git a/Content.Client/Nyanotrasen/UserInterface/GlimmerGraph.cs b/Content.Client/Psionics/UserInterface/GlimmerGraph.cs similarity index 97% rename from Content.Client/Nyanotrasen/UserInterface/GlimmerGraph.cs rename to Content.Client/Psionics/UserInterface/GlimmerGraph.cs index c4a9109dcd8..111c810acb1 100644 --- a/Content.Client/Nyanotrasen/UserInterface/GlimmerGraph.cs +++ b/Content.Client/Psionics/UserInterface/GlimmerGraph.cs @@ -4,7 +4,7 @@ using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; -namespace Content.Client.Nyanotrasen.UserInterface; +namespace Content.Client.Psionics.UI; public sealed class GlimmerGraph : Control { diff --git a/Content.Client/Radiation/Overlays/RadiationPulseOverlay.cs b/Content.Client/Radiation/Overlays/RadiationPulseOverlay.cs index adc535b2684..9012767ef3f 100644 --- a/Content.Client/Radiation/Overlays/RadiationPulseOverlay.cs +++ b/Content.Client/Radiation/Overlays/RadiationPulseOverlay.cs @@ -121,7 +121,10 @@ private void RadiationQuery(IEye? currentEye) private bool PulseQualifies(EntityUid pulseEntity, MapCoordinates currentEyeLoc) { - return _entityManager.GetComponent(pulseEntity).MapID == currentEyeLoc.MapId && _entityManager.GetComponent(pulseEntity).Coordinates.InRange(_entityManager, EntityCoordinates.FromMap(_entityManager, _entityManager.GetComponent(pulseEntity).ParentUid, currentEyeLoc), MaxDist); + var transformComponent = _entityManager.GetComponent(pulseEntity); + var transformSystem = _entityManager.System(); + return transformComponent.MapID == currentEyeLoc.MapId + && transformComponent.Coordinates.InRange(_entityManager, transformSystem, EntityCoordinates.FromMap(transformComponent.ParentUid, currentEyeLoc, transformSystem, _entityManager), MaxDist); } private sealed record RadiationShaderInstance(MapCoordinates CurrentMapCoords, float Range, TimeSpan Start, float Duration) diff --git a/Content.Client/Sandbox/SandboxSystem.cs b/Content.Client/Sandbox/SandboxSystem.cs index d16751e3715..6a1129bb75d 100644 --- a/Content.Client/Sandbox/SandboxSystem.cs +++ b/Content.Client/Sandbox/SandboxSystem.cs @@ -16,6 +16,7 @@ public sealed class SandboxSystem : SharedSandboxSystem [Dependency] private readonly IMapManager _map = default!; [Dependency] private readonly IPlacementManager _placement = default!; [Dependency] private readonly ContentEyeSystem _contentEye = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; private bool _sandboxEnabled; public bool SandboxAllowed { get; private set; } @@ -108,7 +109,7 @@ public bool Copy(ICommonSession? session, EntityCoordinates coords, EntityUid ui } // Try copy tile. - if (!_map.TryFindGridAt(coords.ToMap(EntityManager), out _, out var grid) || !grid.TryGetTileRef(coords, out var tileRef)) + if (!_map.TryFindGridAt(coords.ToMap(EntityManager, _transform), out _, out var grid) || !grid.TryGetTileRef(coords, out var tileRef)) return false; if (_placement.Eraser) diff --git a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs index ff4972d9d08..57b22e3f333 100644 --- a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs +++ b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs @@ -20,7 +20,6 @@ using Content.Shared.Examine; using Content.Shared.Input; using Content.Shared.Radio; -using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Client.Player; @@ -37,7 +36,7 @@ using Robust.Shared.Replays; using Robust.Shared.Timing; using Robust.Shared.Utility; -using Content.Client.Nyanotrasen.Chat; //Nyano - Summary: chat namespace. +using Content.Client.Psionics.Chat; namespace Content.Client.UserInterface.Systems.Chat; @@ -61,7 +60,7 @@ public sealed class ChatUIController : UIController [UISystemDependency] private readonly GhostSystem? _ghost = default; [UISystemDependency] private readonly TypingIndicatorSystem? _typingIndicator = default; [UISystemDependency] private readonly ChatSystem? _chatSys = default; - [UISystemDependency] private readonly PsionicChatUpdateSystem? _psionic = default!; //Nyano - Summary: makes the psionic chat available. + [UISystemDependency] private readonly PsionicChatUpdateSystem? _psionic = default!; //EE - Summary: makes the psionic chat available. [ValidatePrototypeId] private const string ChatNamePalette = "ChatNames"; @@ -82,7 +81,7 @@ public sealed class ChatUIController : UIController {SharedChatSystem.AdminPrefix, ChatSelectChannel.Admin}, {SharedChatSystem.RadioCommonPrefix, ChatSelectChannel.Radio}, {SharedChatSystem.DeadPrefix, ChatSelectChannel.Dead}, - {SharedChatSystem.TelepathicPrefix, ChatSelectChannel.Telepathic} //Nyano - Summary: adds the telepathic prefix =. + {SharedChatSystem.TelepathicPrefix, ChatSelectChannel.Telepathic} //EE - Summary: adds the telepathic prefix =. }; public static readonly Dictionary ChannelPrefixes = new() @@ -96,7 +95,7 @@ public sealed class ChatUIController : UIController {ChatSelectChannel.Admin, SharedChatSystem.AdminPrefix}, {ChatSelectChannel.Radio, SharedChatSystem.RadioCommonPrefix}, {ChatSelectChannel.Dead, SharedChatSystem.DeadPrefix}, - {ChatSelectChannel.Telepathic, SharedChatSystem.TelepathicPrefix } //Nyano - Summary: associates telepathic with =. + {ChatSelectChannel.Telepathic, SharedChatSystem.TelepathicPrefix } //EE - Summary: associates telepathic with =. }; /// @@ -627,7 +626,7 @@ private void UpdateQueuedSpeechBubbles(FrameEventArgs delta) var otherPos = EntityManager.GetComponent(ent).MapPosition; - if (occluded && !ExamineSystemShared.InRangeUnOccluded( + if (occluded && !_examine.InRangeUnOccluded( playerPos, otherPos, 0f, (ent, player), predicate)) diff --git a/Content.Client/Verbs/VerbSystem.cs b/Content.Client/Verbs/VerbSystem.cs index 329a8977a68..77f46a3fc97 100644 --- a/Content.Client/Verbs/VerbSystem.cs +++ b/Content.Client/Verbs/VerbSystem.cs @@ -20,7 +20,7 @@ namespace Content.Client.Verbs public sealed class VerbSystem : SharedVerbSystem { [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly ExamineSystem _examineSystem = default!; + [Dependency] private readonly ExamineSystem _examine = default!; [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly IStateManager _stateManager = default!; [Dependency] private readonly EntityLookupSystem _entityLookup = default!; @@ -77,7 +77,7 @@ public bool TryGetEntityMenuEntities(MapCoordinates targetPos, [NotNullWhen(true bool Predicate(EntityUid e) => e == player || entitiesUnderMouse.Contains(e); // first check the general location. - if (!_examineSystem.CanExamine(player.Value, targetPos, Predicate)) + if (!_examine.CanExamine(player.Value, targetPos, Predicate)) return false; TryComp(player.Value, out ExaminerComponent? examiner); @@ -86,7 +86,7 @@ public bool TryGetEntityMenuEntities(MapCoordinates targetPos, [NotNullWhen(true entities = new(); foreach (var ent in _entityLookup.GetEntitiesInRange(targetPos, EntityMenuLookupSize)) { - if (_examineSystem.CanExamine(player.Value, targetPos, Predicate, ent, examiner)) + if (_examine.CanExamine(player.Value, targetPos, Predicate, ent, examiner)) entities.Add(ent); } } @@ -147,7 +147,7 @@ public bool TryGetEntityMenuEntities(MapCoordinates targetPos, [NotNullWhen(true { var entity = entities[i]; - if (!ExamineSystemShared.InRangeUnOccluded( + if (!_examine.InRangeUnOccluded( playerPos, xformQuery.GetComponent(entity).MapPosition, ExamineSystemShared.ExamineRange, diff --git a/Content.IntegrationTests/Tests/Wires/WireLayoutTest.cs b/Content.IntegrationTests/Tests/Wires/WireLayoutTest.cs new file mode 100644 index 00000000000..920dc088186 --- /dev/null +++ b/Content.IntegrationTests/Tests/Wires/WireLayoutTest.cs @@ -0,0 +1,103 @@ +using Content.Server.Doors; +using Content.Server.Power; +using Content.Server.Wires; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Map; + +namespace Content.IntegrationTests.Tests.Wires; + +[TestFixture] +[Parallelizable(ParallelScope.All)] +[TestOf(typeof(WiresSystem))] +public sealed class WireLayoutTest +{ + [TestPrototypes] + public const string Prototypes = """ + - type: wireLayout + id: WireLayoutTest + dummyWires: 2 + wires: + - !type:PowerWireAction + - !type:DoorBoltWireAction + + - type: wireLayout + id: WireLayoutTest2 + parent: WireLayoutTest + wires: + - !type:PowerWireAction + + - type: wireLayout + id: WireLayoutTest3 + parent: WireLayoutTest + + - type: entity + id: WireLayoutTest + components: + - type: Wires + layoutId: WireLayoutTest + + - type: entity + id: WireLayoutTest2 + components: + - type: Wires + layoutId: WireLayoutTest2 + + - type: entity + id: WireLayoutTest3 + components: + - type: Wires + layoutId: WireLayoutTest3 + """; + + [Test] + public async Task TestLayoutInheritance() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + var testMap = await pair.CreateTestMap(); + + await server.WaitAssertion(() => + { + var wires = IoCManager.Resolve().GetEntitySystem(); + + // Need to spawn these entities to make sure the wire layouts are initialized. + var ent1 = SpawnWithComp(server.EntMan, "WireLayoutTest", testMap.MapCoords); + var ent2 = SpawnWithComp(server.EntMan, "WireLayoutTest2", testMap.MapCoords); + var ent3 = SpawnWithComp(server.EntMan, "WireLayoutTest3", testMap.MapCoords); + + // Assert.That(wires.TryGetLayout("WireLayoutTest", out var layout1)); + // Assert.That(wires.TryGetLayout("WireLayoutTest2", out var layout2)); + // Assert.That(wires.TryGetLayout("WireLayoutTest3", out var layout3)); + + Assert.Multiple(() => + { + // Entity 1. + Assert.That(ent1.Comp.WiresList, Has.Count.EqualTo(4)); + Assert.That(ent1.Comp.WiresList, Has.Exactly(2).With.Property("Action").Null, "2 dummy wires"); + Assert.That(ent1.Comp.WiresList, Has.One.With.Property("Action").InstanceOf(), "1 power wire"); + Assert.That(ent1.Comp.WiresList, Has.One.With.Property("Action").InstanceOf(), "1 door bolt wire"); + + Assert.That(ent2.Comp.WiresList, Has.Count.EqualTo(5)); + Assert.That(ent2.Comp.WiresList, Has.Exactly(2).With.Property("Action").Null, "2 dummy wires"); + Assert.That(ent2.Comp.WiresList, Has.Exactly(2).With.Property("Action").InstanceOf(), "2 power wire"); + Assert.That(ent2.Comp.WiresList, Has.One.With.Property("Action").InstanceOf(), "1 door bolt wire"); + + Assert.That(ent3.Comp.WiresList, Has.Count.EqualTo(4)); + Assert.That(ent3.Comp.WiresList, Has.Exactly(2).With.Property("Action").Null, "2 dummy wires"); + Assert.That(ent3.Comp.WiresList, Has.One.With.Property("Action").InstanceOf(), "1 power wire"); + Assert.That(ent3.Comp.WiresList, Has.One.With.Property("Action").InstanceOf(), "1 door bolt wire"); + }); + }); + + await pair.CleanReturnAsync(); + } + + private static Entity SpawnWithComp(IEntityManager entityManager, string prototype, MapCoordinates coords) + where T : IComponent, new() + { + var ent = entityManager.Spawn(prototype, coords); + var comp = entityManager.EnsureComponent(ent); + return new Entity(ent, comp); + } +} diff --git a/Content.Server/Abilities/Mime/MimePowersSystem.cs b/Content.Server/Abilities/Mime/MimePowersSystem.cs index c1d2643d6fa..b3bd3392434 100644 --- a/Content.Server/Abilities/Mime/MimePowersSystem.cs +++ b/Content.Server/Abilities/Mime/MimePowersSystem.cs @@ -10,7 +10,7 @@ using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Timing; -using Content.Shared.Abilities.Psionics; //Nyano - Summary: Makes Mime psionic. +using Content.Shared.Psionics.Abilities; using Content.Shared.Speech.Muting; namespace Content.Server.Abilities.Mime diff --git a/Content.Server/Administration/Managers/AdminManager.Metrics.cs b/Content.Server/Administration/Managers/AdminManager.Metrics.cs new file mode 100644 index 00000000000..2fea931f1b9 --- /dev/null +++ b/Content.Server/Administration/Managers/AdminManager.Metrics.cs @@ -0,0 +1,98 @@ +using System.Diagnostics.Metrics; +using System.Runtime.InteropServices; +using Content.Server.Afk; +using Robust.Server.DataMetrics; + +namespace Content.Server.Administration.Managers; + +// Handles metrics reporting for active admin count and such. + +public sealed partial class AdminManager +{ + private Dictionary? _adminOnlineCounts; + + private const int SentinelRankId = -1; + + [Dependency] private readonly IMetricsManager _metrics = default!; + [Dependency] private readonly IAfkManager _afkManager = default!; + [Dependency] private readonly IMeterFactory _meterFactory = default!; + + private void InitializeMetrics() + { + _metrics.UpdateMetrics += MetricsOnUpdateMetrics; + + var meter = _meterFactory.Create("SS14.AdminManager"); + + meter.CreateObservableGauge( + "admins_online_count", + MeasureAdminCount, + null, + "The count of online admins"); + } + + private void MetricsOnUpdateMetrics() + { + _sawmill.Verbose("Updating metrics"); + + var dict = new Dictionary(); + + foreach (var (session, reg) in _admins) + { + var rankId = reg.RankId ?? SentinelRankId; + + ref var counts = ref CollectionsMarshal.GetValueRefOrAddDefault(dict, rankId, out _); + + if (reg.Data.Active) + { + if (_afkManager.IsAfk(session)) + counts.afk += 1; + else + counts.active += 1; + } + else + { + counts.deadminned += 1; + } + } + + // Neither prometheus-net nor dotnet-counters seem to handle stuff well if we STOP returning measurements. + // i.e. if the last admin with a rank disconnects. + // So if we have EVER reported a rank, always keep reporting it. + if (_adminOnlineCounts != null) + { + foreach (var rank in _adminOnlineCounts.Keys) + { + CollectionsMarshal.GetValueRefOrAddDefault(dict, rank, out _); + } + } + + // Make sure "no rank" is always available. Avoid "no data". + CollectionsMarshal.GetValueRefOrAddDefault(dict, SentinelRankId, out _); + + _adminOnlineCounts = dict; + } + + private IEnumerable> MeasureAdminCount() + { + if (_adminOnlineCounts == null) + yield break; + + foreach (var (rank, (active, afk, deadminned)) in _adminOnlineCounts) + { + yield return new Measurement( + active, + new KeyValuePair("state", "active"), + new KeyValuePair("rank", rank == SentinelRankId ? "none" : rank.ToString())); + + yield return new Measurement( + afk, + new KeyValuePair("state", "afk"), + new KeyValuePair("rank", rank == SentinelRankId ? "none" : rank.ToString())); + + yield return new Measurement( + deadminned, + new KeyValuePair("state", "deadminned"), + new KeyValuePair("rank", rank == SentinelRankId ? "none" : rank.ToString())); + } + } +} diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index 4eaa08fe9dd..b1cca46e63f 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -23,7 +23,7 @@ namespace Content.Server.Administration.Managers { - public sealed class AdminManager : IAdminManager, IPostInjectInit, IConGroupControllerImplementation + public sealed partial class AdminManager : IAdminManager, IPostInjectInit, IConGroupControllerImplementation { [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IServerDbManager _dbManager = default!; @@ -34,6 +34,7 @@ public sealed class AdminManager : IAdminManager, IPostInjectInit, IConGroupCont [Dependency] private readonly IServerConsoleHost _consoleHost = default!; [Dependency] private readonly IChatManager _chat = default!; [Dependency] private readonly ToolshedManager _toolshed = default!; + [Dependency] private readonly ILogManager _logManager = default!; private readonly Dictionary _admins = new(); private readonly HashSet _promotedPlayers = new(); @@ -49,6 +50,8 @@ public sealed class AdminManager : IAdminManager, IPostInjectInit, IConGroupCont private readonly AdminCommandPermissions _commandPermissions = new(); private readonly AdminCommandPermissions _toolshedCommandPermissions = new(); + private ISawmill _sawmill = default!; + public bool IsAdmin(ICommonSession session, bool includeDeAdmin = false) { return GetAdminData(session, includeDeAdmin) != null; @@ -181,6 +184,8 @@ public void ReloadAdminsWithRank(int rankId) public void Initialize() { + _sawmill = _logManager.GetSawmill("admin"); + _netMgr.RegisterNetMessage(); // Cache permissions for loaded console commands with the requisite attributes. @@ -234,6 +239,8 @@ public void Initialize() } _toolshed.ActivePermissionController = this; + + InitializeMetrics(); } public void PromoteHost(ICommonSession player) diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs index c68336deab8..9d66338c8bf 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs @@ -718,9 +718,21 @@ private void AddTricksVerbs(GetVerbsEvent args) Icon = new SpriteSpecifier.Rsi(new("/Textures/Objects/Fun/caps.rsi"), "mag-6"), Act = () => { - _quickDialog.OpenDialog(player, "Set Bullet Amount", $"Amount (max {ballisticAmmo.Capacity}):", (int amount) => + _quickDialog.OpenDialog(player, "Set Bullet Amount", $"Amount (standard {ballisticAmmo.Capacity}):", (string amount) => { - ballisticAmmo.UnspawnedCount = amount; + if (!int.TryParse(amount, out var result)) + return; + + if (result > 0) + { + ballisticAmmo.UnspawnedCount = result; + } + else + { + ballisticAmmo.UnspawnedCount = 0; + } + + _gun.UpdateBallisticAppearance(args.Target, ballisticAmmo); }); }, Impact = LogImpact.Medium, diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.cs b/Content.Server/Administration/Systems/AdminVerbSystem.cs index c4754af9340..f5b237b4492 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.cs @@ -66,6 +66,7 @@ public sealed partial class AdminVerbSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly StationSystem _stations = default!; [Dependency] private readonly StationSpawningSystem _spawning = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; private readonly Dictionary> _openSolutionUis = new(); @@ -416,7 +417,7 @@ private void AddDebugVerbs(GetVerbsEvent args) Act = () => { - var message = ExamineSystemShared.InRangeUnOccluded(args.User, args.Target) + var message = _examine.InRangeUnOccluded(args.User, args.Target) ? Loc.GetString("in-range-unoccluded-verb-on-activate-not-occluded") : Loc.GetString("in-range-unoccluded-verb-on-activate-occluded"); diff --git a/Content.Server/Anomaly/AnomalySystem.Psionics.cs b/Content.Server/Anomaly/AnomalySystem.Psionics.cs index 95fda1d5035..84f200f47ba 100644 --- a/Content.Server/Anomaly/AnomalySystem.Psionics.cs +++ b/Content.Server/Anomaly/AnomalySystem.Psionics.cs @@ -1,4 +1,4 @@ -using Content.Server.Abilities.Psionics; //Nyano - Summary: the psniocs bin where dispel is located. +using Content.Server.Psionics.Abilities; using Content.Shared.Anomaly; using Content.Shared.Anomaly.Components; using Robust.Shared.Random; @@ -14,8 +14,6 @@ private void InitializePsionics() { SubscribeLocalEvent(OnDispelled); } - - //Nyano - Summary: gives dispellable behavior to Anomalies. private void OnDispelled(EntityUid uid, AnomalyComponent component, DispelledEvent args) { _dispel.DealDispelDamage(uid); diff --git a/Content.Server/Atmos/Components/IgniteOnCollideComponent.cs b/Content.Server/Atmos/Components/IgniteOnCollideComponent.cs index a58d3a3c122..710c37b62fe 100644 --- a/Content.Server/Atmos/Components/IgniteOnCollideComponent.cs +++ b/Content.Server/Atmos/Components/IgniteOnCollideComponent.cs @@ -1,8 +1,6 @@ -using Content.Server.Atmos.EntitySystems; - namespace Content.Server.Atmos.Components; -[RegisterComponent, Access(typeof(FlammableSystem))] +[RegisterComponent] public sealed partial class IgniteOnCollideComponent : Component { /// diff --git a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs index c0284f26c90..505c4a3b385 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs @@ -109,7 +109,8 @@ private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) tile.ExcitedGroup?.GetHashCode(), tile.Space, tile.MapAtmosphere, - tile.NoGridTile); + tile.NoGridTile, + tile.Air?.Immutable ?? false); } public override void Update(float frameTime) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.CVars.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.CVars.cs index 3aaa5429fb0..517fc1469b5 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.CVars.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.CVars.cs @@ -12,6 +12,9 @@ public sealed partial class AtmosphereSystem public float SpaceWindPressureForceDivisorPush { get; private set; } public float SpaceWindMaxVelocity { get; private set; } public float SpaceWindMaxPushForce { get; private set; } + public float SpaceWindMinimumCalculatedMass { get; private set; } + public float SpaceWindMaximumCalculatedInverseMass { get; private set; } + public bool MonstermosUseExpensiveAirflow { get; private set; } public bool MonstermosEqualization { get; private set; } public bool MonstermosDepressurization { get; private set; } public bool MonstermosRipTiles { get; private set; } @@ -41,6 +44,9 @@ private void InitializeCVars() Subs.CVar(_cfg, CCVars.SpaceWindPressureForceDivisorPush, value => SpaceWindPressureForceDivisorPush = value, true); Subs.CVar(_cfg, CCVars.SpaceWindMaxVelocity, value => SpaceWindMaxVelocity = value, true); Subs.CVar(_cfg, CCVars.SpaceWindMaxPushForce, value => SpaceWindMaxPushForce = value, true); + Subs.CVar(_cfg, CCVars.SpaceWindMinimumCalculatedMass, value => SpaceWindMinimumCalculatedMass = value, true); + Subs.CVar(_cfg, CCVars.SpaceWindMaximumCalculatedInverseMass, value => SpaceWindMaximumCalculatedInverseMass = value, true); + Subs.CVar(_cfg, CCVars.MonstermosUseExpensiveAirflow, value => MonstermosUseExpensiveAirflow = value, true); Subs.CVar(_cfg, CCVars.MonstermosEqualization, value => MonstermosEqualization = value, true); Subs.CVar(_cfg, CCVars.MonstermosDepressurization, value => MonstermosDepressurization = value, true); Subs.CVar(_cfg, CCVars.MonstermosRipTiles, value => MonstermosRipTiles = value, true); diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs index 6fbd638844b..1c18b8fe29c 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs @@ -92,6 +92,12 @@ private void FixGridAtmosCommand(IConsoleShell shell, string argstr, string[] ar if (tile == null) continue; + if (!_mapSystem.TryGetTile(gridComp, indices, out var gTile) || gTile.IsEmpty) + { + gridAtmosphere.Tiles.Remove(indices); + continue; + } + if (tile.Immutable && !IsTileSpace(euid, transform.MapUid, indices, gridComp)) { tile = new GasMixture(tile.Volume) { Temperature = tile.Temperature }; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs index a67eb217e51..d1939a92b16 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs @@ -6,6 +6,7 @@ using Robust.Shared.Map; using Robust.Shared.Physics; using Robust.Shared.Physics.Components; +using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Server.Atmos.EntitySystems @@ -50,7 +51,7 @@ private void UpdateHighPressure(float frameTime) if (TryComp(uid, out var body)) { - _physics.SetBodyStatus(body, BodyStatus.OnGround); + _physics.SetBodyStatus(uid, body, BodyStatus.OnGround); } if (TryComp(uid, out var fixtures)) @@ -73,7 +74,7 @@ private void AddMovedByPressure(EntityUid uid, MovedByPressureComponent componen if (!TryComp(uid, out var fixtures)) return; - _physics.SetBodyStatus(body, BodyStatus.InAir); + _physics.SetBodyStatus(uid, body, BodyStatus.InAir); foreach (var (id, fixture) in fixtures.Fixtures) { @@ -89,12 +90,15 @@ private void AddMovedByPressure(EntityUid uid, MovedByPressureComponent componen private void HighPressureMovements(Entity gridAtmosphere, TileAtmosphere tile, EntityQuery bodies, EntityQuery xforms, EntityQuery pressureQuery, EntityQuery metas) { + //!MAGIC EXIT CONDITION THAT MAKES ALMOST 200 LINES RUN 1/100TH AS OFTEN. + if (tile.PressureDifference < SpaceWindMinimumCalculatedMass * SpaceWindMinimumCalculatedMass) + return; // TODO ATMOS finish this // Don't play the space wind sound on tiles that are on fire... - if(tile.PressureDifference > 15 && !tile.Hotspot.Valid) + if (tile.PressureDifference > 15 && !tile.Hotspot.Valid) { - if(_spaceWindSoundCooldown == 0 && !string.IsNullOrEmpty(SpaceWindSound)) + if (_spaceWindSoundCooldown == 0 && !string.IsNullOrEmpty(SpaceWindSound)) { var coordinates = _mapSystem.ToCenterCoordinates(tile.GridIndex, tile.GridIndices); _audio.PlayPvs(SpaceWindSound, coordinates, AudioParams.Default.WithVariation(0.125f).WithVolume(MathHelper.Clamp(tile.PressureDifference / 10, 10, 100))); @@ -118,7 +122,8 @@ private void HighPressureMovements(Entity gridAtmospher var gridWorldRotation = xforms.GetComponent(gridAtmosphere).WorldRotation; // If we're using monstermos, smooth out the yeet direction to follow the flow - if (MonstermosEqualization) + //WTF:This is bad, don't run this. It just makes the throws worse by somehow rounding them to orthogonal + if (!MonstermosEqualization) { // We step through tiles according to the pressure direction on the current tile. // The goal is to get a general direction of the airflow in the area. @@ -179,8 +184,32 @@ private void ConsiderPressureDifference(GridAtmosphereComponent gridAtmosphere, tile.PressureDirection = differenceDirection; } - //The EE version of this function drops pressureResistanceProbDelta, since it's not needed. If you are for whatever reason calling this function - //And it isn't working, you've probably still got the ResistancePobDelta line included. + //INFO:The EE version of this function drops pressureResistanceProbDelta, since it's not needed. If you are for whatever reason calling this function + //INFO:And it isn't working, you've probably still got the pressureResistanceProbDelta line included. + /// + /// EXPLANATION: + /// pressureDifference = Force of Air Flow on a given tile + /// physics.Mass = Mass of the object potentially being thrown + /// physics.InvMass = 1 divided by said Mass. More CPU efficient way to do division. + /// + /// Objects can only be thrown if the force of air flow is greater than the SQUARE of their mass or {SpaceWindMinimumCalculatedMass}, whichever is heavier + /// This means that the heavier an object is, the exponentially more force is required to move it + /// The force of a throw is equal to the force of air pressure, divided by an object's mass. So not only are heavier objects + /// less likely to be thrown, they are also harder to throw, + /// while lighter objects are yeeted easily, and from great distance. + /// + /// For a human sized entity with a standard weight of 80kg and a spacing between a hard vacuum and a room pressurized at 101kpa, + /// The human shall only be moved if he is either very close to the hole, or is standing in a region of high airflow + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void ExperiencePressureDifference( Entity ent, int cycle, @@ -198,28 +227,28 @@ public void ExperiencePressureDifference( if (!Resolve(uid, ref xform)) return; - // Can we yeet the thing (due to probability, strength, etc.) + if (physics.BodyType != BodyType.Static && !float.IsPositiveInfinity(component.MoveResist)) { - var moveForce = pressureDifference * physics.InvMass; - + var moveForce = pressureDifference * MathF.Max(physics.InvMass, SpaceWindMaximumCalculatedInverseMass); if (moveForce > physics.Mass) { + var maxSafeForceForObject = SpaceWindMaxVelocity * physics.Mass; + moveForce = MathF.Min(moveForce, maxSafeForceForObject); AddMovedByPressure(uid, component, physics); // Grid-rotation adjusted direction var dirVec = (direction.ToAngle() + gridWorldRotation).ToWorldVec(); - var maxSafeForceForObject = SpaceWindMaxVelocity * physics.Mass; - // TODO: Technically these directions won't be correct but uhh I'm just here for optimisations buddy not to fix my old bugs. + // TODO: Consider replacing throw target with proper trigonometry angles. if (throwTarget != EntityCoordinates.Invalid) { - var pos = ((throwTarget.ToMap(EntityManager).Position - xform.WorldPosition).Normalized() + dirVec).Normalized(); - _physics.ApplyLinearImpulse(uid, pos * Math.Clamp(moveForce, 0, maxSafeForceForObject), body: physics); + var pos = throwTarget.ToMap(EntityManager, _transformSystem).Position - xform.WorldPosition + dirVec; + _physics.ApplyLinearImpulse(uid, pos * moveForce, body: physics); } else { - _physics.ApplyLinearImpulse(uid, dirVec * Math.Clamp(moveForce, 0, maxSafeForceForObject), body: physics); + _physics.ApplyLinearImpulse(uid, dirVec * moveForce, body: physics); } component.LastHighPressureMovementAirCycle = cycle; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs index f156125b0ff..934fc93f468 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs @@ -137,7 +137,7 @@ private void EqualizePressureInZone( var logN = MathF.Log2(tileCount); // Optimization - try to spread gases using an O(n log n) algorithm that has a chance of not working first to avoid O(n^2) - if (giverTilesLength > logN && takerTilesLength > logN) + if (!MonstermosUseExpensiveAirflow && giverTilesLength > logN && takerTilesLength > logN) { // Even if it fails, it will speed up the next part. Array.Sort(_equalizeTiles, 0, tileCount, _monstermosComparer); @@ -661,7 +661,7 @@ private void AdjustEqMovement(TileAtmosphere tile, AtmosDirection direction, flo // Turns out: no they don't. Temporary debug checks to figure out which caller is causing problems: if (tile == null) { - Logger.Error($"Encountered null-tile in {nameof(AdjustEqMovement)}. Trace: {Environment.StackTrace}"); + Log.Error($"Encountered null-tile in {nameof(AdjustEqMovement)}. Trace: {Environment.StackTrace}"); return; } var adj = tile.AdjacentTiles[direction.ToIndex()]; diff --git a/Content.Server/Bed/Components/SnoringComponent.cs b/Content.Server/Bed/Components/SnoringComponent.cs new file mode 100644 index 00000000000..09f80327ba7 --- /dev/null +++ b/Content.Server/Bed/Components/SnoringComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Bed.Sleep; + +/// +/// This is used for the snoring trait. +/// +[RegisterComponent] +public sealed partial class SnoringComponent : Component +{ + +} diff --git a/Content.Server/Bed/Sleep/SleepingSystem.cs b/Content.Server/Bed/Sleep/SleepingSystem.cs index 685b1087d70..b4972544338 100644 --- a/Content.Server/Bed/Sleep/SleepingSystem.cs +++ b/Content.Server/Bed/Sleep/SleepingSystem.cs @@ -67,7 +67,10 @@ private void OnSleepStateChanged(EntityUid uid, MobStateComponent component, Sle if (TryComp(uid, out var sleepSound)) { var emitSound = EnsureComp(uid); - emitSound.Sound = sleepSound.Snore; + if (HasComp(uid)) + { + emitSound.Sound = sleepSound.Snore; + } emitSound.PlayChance = sleepSound.Chance; emitSound.RollInterval = sleepSound.Interval; emitSound.PopUp = sleepSound.PopUp; diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index 84efa57bd63..d34aac48e04 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -9,7 +9,7 @@ using Content.Server.Speech; using Content.Server.Speech.Components; using Content.Server.Speech.EntitySystems; -using Content.Server.Nyanotrasen.Chat; +using Content.Server.Psionics.Telepathy; using Content.Server.Speech.Components; using Content.Server.Speech.EntitySystems; using Content.Server.Station.Components; diff --git a/Content.Server/Chat/TypingIndicator/TypingIndicatorSystem.cs b/Content.Server/Chat/TypingIndicator/TypingIndicatorSystem.cs index 761e9456bcd..c923738930a 100644 --- a/Content.Server/Chat/TypingIndicator/TypingIndicatorSystem.cs +++ b/Content.Server/Chat/TypingIndicator/TypingIndicatorSystem.cs @@ -39,7 +39,7 @@ private void OnClientTypingChanged(TypingChangedEvent ev, EntitySessionEventArgs var uid = args.SenderSession.AttachedEntity; if (!Exists(uid)) { - Logger.Warning($"Client {args.SenderSession} sent TypingChangedEvent without an attached entity."); + Log.Warning($"Client {args.SenderSession} sent TypingChangedEvent without an attached entity."); return; } diff --git a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs index 7d3f70bc0d8..1415b6cad3c 100644 --- a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs @@ -22,8 +22,8 @@ namespace Content.Server.Chemistry.EntitySystems [UsedImplicitly] internal sealed class VaporSystem : EntitySystem { - [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IPrototypeManager _protoManager = default!; + [Dependency] private readonly SharedMapSystem _map = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly ThrowingSystem _throwing = default!; @@ -115,7 +115,7 @@ private void Update(float frameTime, Entity ent, Entity()); + var transformSys = entityManager.System(); + var indices = transform.Coordinates.ToVector2i(entityManager, IoCManager.Resolve(), transformSys); var lookup = entityManager.EntitySysManager.GetEntitySystem(); diff --git a/Content.Server/Construction/ConstructionSystem.Initial.cs b/Content.Server/Construction/ConstructionSystem.Initial.cs index e0bdf096296..39705fc1974 100644 --- a/Content.Server/Construction/ConstructionSystem.Initial.cs +++ b/Content.Server/Construction/ConstructionSystem.Initial.cs @@ -2,7 +2,6 @@ using System.Linq; using System.Threading.Tasks; using Content.Server.Construction.Components; -using Content.Server.Storage.EntitySystems; using Content.Shared.ActionBlocker; using Content.Shared.Construction; using Content.Shared.Construction.Prototypes; @@ -15,7 +14,6 @@ using Content.Shared.Interaction; using Content.Shared.Inventory; using Content.Shared.Storage; -using Content.Shared.Tag; using Robust.Shared.Containers; using Robust.Shared.Player; using Robust.Shared.Timing; @@ -30,8 +28,7 @@ public sealed partial class ConstructionSystem [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; - [Dependency] private readonly StorageSystem _storageSystem = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; // --- WARNING! LEGACY CODE AHEAD! --- // This entire file contains the legacy code for initial construction. @@ -466,7 +463,7 @@ void Cleanup() return; } - var mapPos = location.ToMap(EntityManager); + var mapPos = location.ToMap(EntityManager, _transformSystem); var predicate = GetPredicate(constructionPrototype.CanBuildInImpassable, mapPos); if (!_interactionSystem.InRangeUnobstructed(user, mapPos, predicate: predicate)) diff --git a/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs b/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs index ec9ec770313..22d96a54146 100644 --- a/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs +++ b/Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs @@ -5,7 +5,7 @@ using Content.Server.Psionics.Glimmer; using Content.Server.StationEvents.Components; using Content.Shared.Psionics.Glimmer; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs b/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs new file mode 100644 index 00000000000..3d3820562d6 --- /dev/null +++ b/Content.Server/DeviceNetwork/Systems/DeviceNetworkJammerSystem.cs @@ -0,0 +1,38 @@ +using Content.Server.DeviceNetwork.Components; +using Content.Shared.DeviceNetwork.Components; +using Robust.Server.GameObjects; + +namespace Content.Server.DeviceNetwork.Systems; + +public sealed class DeviceNetworkJammerSystem : EntitySystem +{ + [Dependency] private TransformSystem _transform = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(BeforePacketSent); + } + + private void BeforePacketSent(EntityUid uid, TransformComponent xform, BeforePacketSentEvent ev) + { + if (ev.Cancelled) + return; + + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out _, out var jammerComp, out var jammerXform)) + { + if (!jammerComp.JammableNetworks.Contains(ev.NetworkId)) + continue; + + if (jammerXform.Coordinates.InRange(EntityManager, _transform, ev.SenderTransform.Coordinates, jammerComp.Range) + || jammerXform.Coordinates.InRange(EntityManager, _transform, xform.Coordinates, jammerComp.Range)) + { + ev.Cancel(); + return; + } + } + } + +} diff --git a/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs b/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs index 83967c9bbd4..20ee7a5dd1b 100644 --- a/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/DeviceNetworkSystem.cs @@ -351,13 +351,14 @@ private void SendToConnections(ReadOnlySpan connections, var xform = Transform(packet.Sender); - BeforePacketSentEvent beforeEv = new(packet.Sender, xform, _transformSystem.GetWorldPosition(xform)); + var senderPos = _transformSystem.GetWorldPosition(xform); foreach (var connection in connections) { if (connection.Owner == packet.Sender) continue; + BeforePacketSentEvent beforeEv = new(packet.Sender, xform, senderPos, connection.NetIdEnum.ToString()); RaiseLocalEvent(connection.Owner, beforeEv, false); if (!beforeEv.Cancelled) @@ -386,11 +387,17 @@ public sealed class BeforePacketSentEvent : CancellableEntityEventArgs /// public readonly Vector2 SenderPosition; - public BeforePacketSentEvent(EntityUid sender, TransformComponent xform, Vector2 senderPosition) + /// + /// The network the packet will be sent to. + /// + public readonly string NetworkId; + + public BeforePacketSentEvent(EntityUid sender, TransformComponent xform, Vector2 senderPosition, string networkId) { Sender = sender; SenderTransform = xform; SenderPosition = senderPosition; + NetworkId = networkId; } } diff --git a/Content.Server/DeviceNetwork/Systems/SingletonDeviceNetServerSystem.cs b/Content.Server/DeviceNetwork/Systems/SingletonDeviceNetServerSystem.cs index fd62514d006..cdc083feacd 100644 --- a/Content.Server/DeviceNetwork/Systems/SingletonDeviceNetServerSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/SingletonDeviceNetServerSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.DeviceNetwork.Components; +using System.Diagnostics.CodeAnalysis; +using Content.Server.DeviceNetwork.Components; using Content.Server.Medical.CrewMonitoring; using Content.Server.Power.Components; using Content.Server.Station.Systems; @@ -38,7 +39,7 @@ public bool IsActiveServer(EntityUid serverId, SingletonDeviceNetServerComponent /// The address of the active server if it exists /// The component type that determines what type of server you're getting the address of /// True if there is an active serve. False otherwise - public bool TryGetActiveServerAddress(EntityUid stationId, out string? address) where TComp : IComponent + public bool TryGetActiveServerAddress(EntityUid stationId, [NotNullWhen(true)] out string? address) where TComp : IComponent { var servers = EntityQueryEnumerator< SingletonDeviceNetServerComponent, diff --git a/Content.Server/Dragon/DragonSystem.cs b/Content.Server/Dragon/DragonSystem.cs index 93d6bc8db0b..6400472d036 100644 --- a/Content.Server/Dragon/DragonSystem.cs +++ b/Content.Server/Dragon/DragonSystem.cs @@ -28,6 +28,7 @@ public sealed partial class DragonSystem : EntitySystem [Dependency] private readonly RoleSystem _role = default!; [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; private EntityQuery _objQuery; @@ -146,7 +147,7 @@ private void OnSpawnRift(EntityUid uid, DragonComponent component, DragonSpawnRi // cant stack rifts near eachother foreach (var (_, riftXform) in EntityQuery(true)) { - if (riftXform.Coordinates.InRange(EntityManager, xform.Coordinates, RiftRange)) + if (riftXform.Coordinates.InRange(EntityManager, _transform, xform.Coordinates, RiftRange)) { _popup.PopupEntity(Loc.GetString("carp-rift-proximity", ("proximity", RiftRange)), uid, uid); return; diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index 1a5a5c40118..6351d999a98 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -331,7 +331,7 @@ public void QueueExplosion(MapCoordinates epicenter, CameraShake(iterationIntensity.Count * 4f, epicenter, totalIntensity); //For whatever bloody reason, sound system requires ENTITY coordinates. - var mapEntityCoords = EntityCoordinates.FromMap(EntityManager, _mapManager.GetMapEntityId(epicenter.MapId), epicenter); + var mapEntityCoords = EntityCoordinates.FromMap(_mapManager.GetMapEntityId(epicenter.MapId), epicenter, _transformSystem, EntityManager); // play sound. // for the normal audio, we want everyone in pvs range diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 54587e95be3..bf69b4b9094 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -394,7 +394,7 @@ public EntityCoordinates GetObserverSpawnPoint() // Ideally engine would just spawn them on grid directly I guess? Right now grid traversal is handling it during // update which means we need to add a hack somewhere around it. var spawn = _robustRandom.Pick(_possiblePositions); - var toMap = spawn.ToMap(EntityManager); + var toMap = spawn.ToMap(EntityManager, _transform); if (_mapManager.TryFindGridAt(toMap, out var gridUid, out _)) { diff --git a/Content.Server/GameTicking/Rules/PiratesRuleSystem.cs b/Content.Server/GameTicking/Rules/PiratesRuleSystem.cs index f83d719c219..98926536b9d 100644 --- a/Content.Server/GameTicking/Rules/PiratesRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/PiratesRuleSystem.cs @@ -201,7 +201,7 @@ private void OnPlayerSpawningEvent(RulePlayerSpawningEvent ev) if (!gridId.HasValue) { - Logger.ErrorS("pirates", $"Gridid was null when loading \"{map}\", aborting."); + Log.Error($"Gridid was null when loading \"{map}\", aborting."); foreach (var session in ops) { ev.PlayerPool.Add(session); @@ -230,7 +230,7 @@ private void OnPlayerSpawningEvent(RulePlayerSpawningEvent ev) if (spawns.Count == 0) { spawns.Add(Transform(pirates.PirateShip).Coordinates); - Logger.WarningS("pirates", $"Fell back to default spawn for pirates!"); + Log.Warning($"Fell back to default spawn for pirates!"); } for (var i = 0; i < ops.Length; i++) diff --git a/Content.Server/Guardian/GuardianSystem.cs b/Content.Server/Guardian/GuardianSystem.cs index 627c336a36b..d3a717c74af 100644 --- a/Content.Server/Guardian/GuardianSystem.cs +++ b/Content.Server/Guardian/GuardianSystem.cs @@ -34,6 +34,7 @@ public sealed class GuardianSystem : EntitySystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly BodySystem _bodySystem = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -328,7 +329,7 @@ private void CheckGuardianMove( if (!guardianComponent.GuardianLoose) return; - if (!guardianXform.Coordinates.InRange(EntityManager, hostXform.Coordinates, guardianComponent.DistanceAllowed)) + if (!guardianXform.Coordinates.InRange(EntityManager, _transform, hostXform.Coordinates, guardianComponent.DistanceAllowed)) RetractGuardian(hostUid, hostComponent, guardianUid, guardianComponent); } diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index a783a9e0968..a0e872dbeb1 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -31,6 +31,7 @@ public sealed class HandsSystem : SharedHandsSystem [Dependency] private readonly VirtualItemSystem _virtualItemSystem = default!; [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly PullingSystem _pullingSystem = default!; [Dependency] private readonly ThrowingSystem _throwingSystem = default!; @@ -191,7 +192,7 @@ hands.ActiveHandEntity is not { } throwEnt || throwEnt = splitStack.Value; } - var direction = coordinates.ToMapPos(EntityManager) - Transform(player).WorldPosition; + var direction = coordinates.ToMapPos(EntityManager, _transformSystem) - Transform(player).WorldPosition; if (direction == Vector2.Zero) return true; diff --git a/Content.Server/Implants/SubdermalImplantSystem.cs b/Content.Server/Implants/SubdermalImplantSystem.cs index ac415a04342..8eb27414481 100644 --- a/Content.Server/Implants/SubdermalImplantSystem.cs +++ b/Content.Server/Implants/SubdermalImplantSystem.cs @@ -99,7 +99,7 @@ private void OnScramImplant(EntityUid uid, SubdermalImplantComponent component, return; var xform = Transform(ent); - var entityCoords = xform.Coordinates.ToMap(EntityManager); + var entityCoords = xform.Coordinates.ToMap(EntityManager, _xform); // try to find a valid position to teleport to, teleport to whatever works if we can't var targetCoords = new MapCoordinates(); diff --git a/Content.Server/Magic/MagicSystem.cs b/Content.Server/Magic/MagicSystem.cs index 2c9b11dbd3d..92cd794ce2c 100644 --- a/Content.Server/Magic/MagicSystem.cs +++ b/Content.Server/Magic/MagicSystem.cs @@ -168,7 +168,7 @@ private void OnProjectileSpell(ProjectileSpellEvent ev) foreach (var pos in GetSpawnPositions(xform, ev.Pos)) { // If applicable, this ensures the projectile is parented to grid on spawn, instead of the map. - var mapPos = pos.ToMap(EntityManager); + var mapPos = pos.ToMap(EntityManager, _transformSystem); var spawnCoords = _mapManager.TryFindGridAt(mapPos, out var gridUid, out _) ? pos.WithEntityId(gridUid, EntityManager) : new(_mapManager.GetMapEntityId(mapPos.MapId), mapPos.Position); diff --git a/Content.Server/NPC/HTN/Preconditions/CoordinatesInRangePrecondition.cs b/Content.Server/NPC/HTN/Preconditions/CoordinatesInRangePrecondition.cs index 3e030aa8197..3485bd2a18c 100644 --- a/Content.Server/NPC/HTN/Preconditions/CoordinatesInRangePrecondition.cs +++ b/Content.Server/NPC/HTN/Preconditions/CoordinatesInRangePrecondition.cs @@ -22,6 +22,6 @@ public override bool IsMet(NPCBlackboard blackboard) if (!blackboard.TryGetValue(TargetKey, out var target, _entManager)) return false; - return coordinates.InRange(_entManager, target, blackboard.GetValueOrDefault(RangeKey, _entManager)); + return coordinates.InRange(_entManager, _entManager.System(), target, blackboard.GetValueOrDefault(RangeKey, _entManager)); } } diff --git a/Content.Server/NPC/HTN/Preconditions/CoordinatesNotInRangePrecondition.cs b/Content.Server/NPC/HTN/Preconditions/CoordinatesNotInRangePrecondition.cs index 6d8977bb7a7..9d000ca2eb8 100644 --- a/Content.Server/NPC/HTN/Preconditions/CoordinatesNotInRangePrecondition.cs +++ b/Content.Server/NPC/HTN/Preconditions/CoordinatesNotInRangePrecondition.cs @@ -22,7 +22,7 @@ public override bool IsMet(NPCBlackboard blackboard) if (!blackboard.TryGetValue(TargetKey, out var target, _entManager)) return false; - return !coordinates.InRange(_entManager, target, blackboard.GetValueOrDefault(RangeKey, _entManager)); + return !coordinates.InRange(_entManager, _entManager.System(), target, blackboard.GetValueOrDefault(RangeKey, _entManager)); } } diff --git a/Content.Server/NPC/HTN/Preconditions/TargetInRangePrecondition.cs b/Content.Server/NPC/HTN/Preconditions/TargetInRangePrecondition.cs index 5d616ba630e..aaccb426d71 100644 --- a/Content.Server/NPC/HTN/Preconditions/TargetInRangePrecondition.cs +++ b/Content.Server/NPC/HTN/Preconditions/TargetInRangePrecondition.cs @@ -23,6 +23,6 @@ public override bool IsMet(NPCBlackboard blackboard) !_entManager.TryGetComponent(target, out var targetXform)) return false; - return coordinates.InRange(_entManager, targetXform.Coordinates, blackboard.GetValueOrDefault(RangeKey, _entManager)); + return coordinates.InRange(_entManager, _entManager.System(), targetXform.Coordinates, blackboard.GetValueOrDefault(RangeKey, _entManager)); } } diff --git a/Content.Server/NPC/Pathfinding/PathfindingSystem.cs b/Content.Server/NPC/Pathfinding/PathfindingSystem.cs index 95f931cdd6a..a59af88ff58 100644 --- a/Content.Server/NPC/Pathfinding/PathfindingSystem.cs +++ b/Content.Server/NPC/Pathfinding/PathfindingSystem.cs @@ -405,7 +405,7 @@ public async void GetPathEvent( return null; } - var localPos = xform.InvWorldMatrix.Transform(coordinates.ToMapPos(EntityManager)); + var localPos = xform.InvWorldMatrix.Transform(coordinates.ToMapPos(EntityManager, _transform)); var origin = GetOrigin(localPos); if (!TryGetChunk(origin, comp, out var chunk)) diff --git a/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs b/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs index 7ac6768e359..e7af2c91073 100644 --- a/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs +++ b/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs @@ -56,7 +56,30 @@ private bool IsFreeSpace( return true; } - return false; + // TODO: Ideally for "FreeSpace" we check all entities on the tile and build flags dynamically (pathfinder refactor in future). + var ents = _entSetPool.Get(); + _lookup.GetLocalEntitiesIntersecting(node.GraphUid, node.ChunkOrigin, ents, flags: LookupFlags.Static); + var result = true; + + if (ents.Count > 0) + { + var fixtures = _fixturesQuery.GetComponent(uid); + var physics = _physicsQuery.GetComponent(uid); + + foreach (var intersecting in ents) + { + if (!_physics.IsCurrentlyHardCollidable((uid, fixtures, physics), intersecting)) + { + continue; + } + + result = false; + break; + } + } + + _entSetPool.Return(ents); + return result; } /// diff --git a/Content.Server/NPC/Systems/NPCUtilitySystem.cs b/Content.Server/NPC/Systems/NPCUtilitySystem.cs index fc483f68c3b..33941be9292 100644 --- a/Content.Server/NPC/Systems/NPCUtilitySystem.cs +++ b/Content.Server/NPC/Systems/NPCUtilitySystem.cs @@ -43,6 +43,7 @@ public sealed class NPCUtilitySystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SolutionContainerSystem _solutions = default!; [Dependency] private readonly WeldableSystem _weldable = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; private EntityQuery _puddleQuery; private EntityQuery _xformQuery; @@ -296,7 +297,7 @@ private float GetScore(NPCBlackboard blackboard, EntityUid targetUid, UtilityCon { var radius = blackboard.GetValueOrDefault(NPCBlackboard.VisionRadius, EntityManager); - return ExamineSystemShared.InRangeUnOccluded(owner, targetUid, radius + 0.5f, null) ? 1f : 0f; + return _examine.InRangeUnOccluded(owner, targetUid, radius + 0.5f, null) ? 1f : 0f; } case TargetInLOSOrCurrentCon: { @@ -313,7 +314,7 @@ private float GetScore(NPCBlackboard blackboard, EntityUid targetUid, UtilityCon return 1f; } - return ExamineSystemShared.InRangeUnOccluded(owner, targetUid, radius + bufferRange, null) ? 1f : 0f; + return _examine.InRangeUnOccluded(owner, targetUid, radius + bufferRange, null) ? 1f : 0f; } case TargetIsAliveCon: { diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MetapsionicPowerSystem.cs b/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MetapsionicPowerSystem.cs deleted file mode 100644 index b775117b716..00000000000 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MetapsionicPowerSystem.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Content.Shared.Actions; -using Content.Shared.Abilities.Psionics; -using Content.Shared.StatusEffect; -using Content.Shared.Popups; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; -using Content.Shared.Mind; -using Content.Shared.Actions.Events; - -namespace Content.Server.Abilities.Psionics -{ - public sealed class MetapsionicPowerSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; - [Dependency] private readonly SharedActionsSystem _actions = default!; - [Dependency] private readonly EntityLookupSystem _lookup = default!; - [Dependency] private readonly SharedPopupSystem _popups = default!; - [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly SharedMindSystem _mindSystem = default!; - - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnPowerUsed); - } - - private void OnInit(EntityUid uid, MetapsionicPowerComponent component, ComponentInit args) - { - _actions.AddAction(uid, ref component.MetapsionicActionEntity, component.MetapsionicActionId ); - _actions.TryGetActionData( component.MetapsionicActionEntity, out var actionData ); - if (actionData is { UseDelay: not null }) - _actions.StartUseDelay(component.MetapsionicActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - { - psionic.PsionicAbility = component.MetapsionicActionEntity; - psionic.ActivePowers.Add(component); - } - - } - - private void OnShutdown(EntityUid uid, MetapsionicPowerComponent component, ComponentShutdown args) - { - _actions.RemoveAction(uid, component.MetapsionicActionEntity); - - if (TryComp(uid, out var psionic)) - { - psionic.ActivePowers.Remove(component); - } - } - - private void OnPowerUsed(EntityUid uid, MetapsionicPowerComponent component, MetapsionicPowerActionEvent args) - { - foreach (var entity in _lookup.GetEntitiesInRange(uid, component.Range)) - { - if (HasComp(entity) && entity != uid && !HasComp(entity) && - !(HasComp(entity) && Transform(entity).ParentUid == uid)) - { - _popups.PopupEntity(Loc.GetString("metapsionic-pulse-success"), uid, uid, PopupType.LargeCaution); - args.Handled = true; - return; - } - } - _popups.PopupEntity(Loc.GetString("metapsionic-pulse-failure"), uid, uid, PopupType.Large); - _psionics.LogPowerUsed(uid, "metapsionic pulse", 2, 4); - - args.Handled = true; - } - } -} diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegenerationPowerSystem.cs b/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegenerationPowerSystem.cs deleted file mode 100644 index 2eca3173b6d..00000000000 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegenerationPowerSystem.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Robust.Shared.Audio; -using Robust.Server.GameObjects; -using Robust.Shared.Player; -using Robust.Shared.Prototypes; -using Content.Server.Body.Components; -using Content.Server.Body.Systems; -using Content.Server.Chemistry.Containers.EntitySystems; -using Content.Server.Chemistry.EntitySystems; -using Content.Server.DoAfter; -using Content.Shared.Abilities.Psionics; -using Content.Shared.Actions; -using Content.Shared.Chemistry.Components; -using Content.Shared.DoAfter; -using Content.Shared.FixedPoint; -using Content.Shared.Popups; -using Content.Shared.Psionics.Events; -using Content.Shared.Tag; -using Content.Shared.Examine; -using static Content.Shared.Examine.ExamineSystemShared; -using Robust.Shared.Timing; -using Content.Server.Mind; -using Content.Shared.Actions.Events; -using Content.Shared.Chemistry.EntitySystems; -using Robust.Server.Audio; - -namespace Content.Server.Abilities.Psionics -{ - public sealed class PsionicRegenerationPowerSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly SharedActionsSystem _actions = default!; - [Dependency] private readonly SolutionContainerSystem _solutionSystem = default!; - [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; - [Dependency] private readonly AudioSystem _audioSystem = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; - [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; - [Dependency] private readonly SharedPopupSystem _popupSystem = default!; - [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; - - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnPowerUsed); - - SubscribeLocalEvent(OnDispelled); - SubscribeLocalEvent(OnDoAfter); - } - - private void OnInit(EntityUid uid, PsionicRegenerationPowerComponent component, ComponentInit args) - { - _actions.AddAction(uid, ref component.PsionicRegenerationActionEntity, component.PsionicRegenerationActionId ); - _actions.TryGetActionData( component.PsionicRegenerationActionEntity, out var actionData ); - if (actionData is { UseDelay: not null }) - _actions.StartUseDelay(component.PsionicRegenerationActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - { - psionic.PsionicAbility = component.PsionicRegenerationActionEntity; - psionic.ActivePowers.Add(component); - } - } - - private void OnPowerUsed(EntityUid uid, PsionicRegenerationPowerComponent component, PsionicRegenerationPowerActionEvent args) - { - var ev = new PsionicRegenerationDoAfterEvent(_gameTiming.CurTime); - var doAfterArgs = new DoAfterArgs(EntityManager, uid, component.UseDelay, ev, uid); - - _doAfterSystem.TryStartDoAfter(doAfterArgs, out var doAfterId); - - component.DoAfter = doAfterId; - - _popupSystem.PopupEntity(Loc.GetString("psionic-regeneration-begin", ("entity", uid)), - uid, - // TODO: Use LoS-based Filter when one is available. - Filter.Pvs(uid).RemoveWhereAttachedEntity(entity => !ExamineSystemShared.InRangeUnOccluded(uid, entity, ExamineRange, null)), - true, - PopupType.Medium); - - _audioSystem.PlayPvs(component.SoundUse, component.Owner, AudioParams.Default.WithVolume(8f).WithMaxDistance(1.5f).WithRolloffFactor(3.5f)); - _psionics.LogPowerUsed(uid, "psionic regeneration"); - args.Handled = true; - } - - private void OnShutdown(EntityUid uid, PsionicRegenerationPowerComponent component, ComponentShutdown args) - { - _actions.RemoveAction(uid, component.PsionicRegenerationActionEntity); - - if (TryComp(uid, out var psionic)) - { - psionic.ActivePowers.Remove(component); - } - } - - private void OnDispelled(EntityUid uid, PsionicRegenerationPowerComponent component, DispelledEvent args) - { - if (component.DoAfter == null) - return; - - _doAfterSystem.Cancel(component.DoAfter); - component.DoAfter = null; - - args.Handled = true; - } - - private void OnDoAfter(EntityUid uid, PsionicRegenerationPowerComponent component, PsionicRegenerationDoAfterEvent args) - { - component.DoAfter = null; - - if (!TryComp(uid, out var stream)) - return; - - // DoAfter has no way to run a callback during the process to give - // small doses of the reagent, so we wait until either the action - // is cancelled (by being dispelled) or complete to give the - // appropriate dose. A timestamp delta is used to accomplish this. - var percentageComplete = Math.Min(1f, (_gameTiming.CurTime - args.StartedAt).TotalSeconds / component.UseDelay); - - var solution = new Solution(); - solution.AddReagent("PsionicRegenerationEssence", FixedPoint2.New(component.EssenceAmount * percentageComplete)); - _bloodstreamSystem.TryAddToChemicals(uid, solution, stream); - } - } -} - diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PyrokinesisPowerSystem.cs b/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PyrokinesisPowerSystem.cs deleted file mode 100644 index 407b72c6b58..00000000000 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PyrokinesisPowerSystem.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Content.Shared.Actions; -using Content.Shared.Abilities.Psionics; -using Content.Server.Atmos.Components; -using Content.Server.Atmos.EntitySystems; -using Content.Server.Popups; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; -using Content.Server.Mind; -using Content.Shared.Actions.Events; - -namespace Content.Server.Abilities.Psionics -{ - public sealed class PyrokinesisPowerSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly SharedActionsSystem _actions = default!; - [Dependency] private readonly FlammableSystem _flammableSystem = default!; - [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnPowerUsed); - } - - private void OnInit(EntityUid uid, PyrokinesisPowerComponent component, ComponentInit args) - { - _actions.AddAction(uid, ref component.PyrokinesisActionEntity, component.PyrokinesisActionId ); - _actions.TryGetActionData( component.PyrokinesisActionEntity, out var actionData ); - if (actionData is { UseDelay: not null }) - _actions.StartUseDelay(component.PyrokinesisActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - { - psionic.PsionicAbility = component.PyrokinesisActionEntity; - psionic.ActivePowers.Add(component); - } - } - - private void OnShutdown(EntityUid uid, PyrokinesisPowerComponent component, ComponentShutdown args) - { - _actions.RemoveAction(uid, component.PyrokinesisActionEntity); - if (TryComp(uid, out var psionic)) - { - psionic.ActivePowers.Remove(component); - } - } - - private void OnPowerUsed(PyrokinesisPowerActionEvent args) - { - if (!TryComp(args.Target, out var flammableComponent)) - return; - - flammableComponent.FireStacks += 5; - _flammableSystem.Ignite(args.Target, args.Target); - _popupSystem.PopupEntity(Loc.GetString("pyrokinesis-power-used", ("target", args.Target)), args.Target, Shared.Popups.PopupType.LargeCaution); - - _psionics.LogPowerUsed(args.Performer, "pyrokinesis"); - args.Handled = true; - } - } -} diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/TelegnosisPowerSystem.cs b/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/TelegnosisPowerSystem.cs deleted file mode 100644 index f7ae04b61ea..00000000000 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/TelegnosisPowerSystem.cs +++ /dev/null @@ -1,67 +0,0 @@ -using Content.Shared.Actions; -using Content.Shared.StatusEffect; -using Content.Shared.Abilities.Psionics; -using Content.Shared.Mind.Components; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; -using Content.Server.Mind; -using Content.Shared.Actions.Events; - -namespace Content.Server.Abilities.Psionics -{ - public sealed class TelegnosisPowerSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; - [Dependency] private readonly SharedActionsSystem _actions = default!; - [Dependency] private readonly MindSwapPowerSystem _mindSwap = default!; - [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnPowerUsed); - SubscribeLocalEvent(OnMindRemoved); - } - - private void OnInit(EntityUid uid, TelegnosisPowerComponent component, ComponentInit args) - { - _actions.AddAction(uid, ref component.TelegnosisActionEntity, component.TelegnosisActionId ); - _actions.TryGetActionData( component.TelegnosisActionEntity, out var actionData ); - if (actionData is { UseDelay: not null }) - _actions.StartUseDelay(component.TelegnosisActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - { - psionic.PsionicAbility = component.TelegnosisActionEntity; - psionic.ActivePowers.Add(component); - } - } - - private void OnShutdown(EntityUid uid, TelegnosisPowerComponent component, ComponentShutdown args) - { - _actions.RemoveAction(uid, component.TelegnosisActionEntity); - if (TryComp(uid, out var psionic)) - { - psionic.ActivePowers.Remove(component); - } - } - - private void OnPowerUsed(EntityUid uid, TelegnosisPowerComponent component, TelegnosisPowerActionEvent args) - { - var projection = Spawn(component.Prototype, Transform(uid).Coordinates); - Transform(projection).AttachToGridOrMap(); - _mindSwap.Swap(uid, projection); - - _psionics.LogPowerUsed(uid, "telegnosis"); - args.Handled = true; - } - private void OnMindRemoved(EntityUid uid, TelegnosticProjectionComponent component, MindRemovedMessage args) - { - QueueDel(uid); - } - } -} diff --git a/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs b/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs index a23a5b3d77d..0ce3f9d7c64 100644 --- a/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs +++ b/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs @@ -1,5 +1,5 @@ using Content.Shared.Chemistry.Reagent; -using Content.Server.Abilities.Psionics; +using Content.Server.Psionics.Abilities; using JetBrains.Annotations; using Robust.Shared.Prototypes; diff --git a/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs b/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs deleted file mode 100644 index 3b677bab2d4..00000000000 --- a/Content.Server/Nyanotrasen/Objectives/Components/BecomePsionicConditionComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Content.Server.Objectives.Systems; - -namespace Content.Server.Objectives.Components; - -/// -/// Requires that the player dies to be complete. -/// -[RegisterComponent, Access(typeof(BecomePsionicConditionSystem))] -public sealed partial class BecomePsionicConditionComponent : Component -{ -} \ No newline at end of file diff --git a/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs b/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs deleted file mode 100644 index d090c320a41..00000000000 --- a/Content.Server/Nyanotrasen/Objectives/Systems/BecomePsionicConditionSystem.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Content.Shared.Abilities.Psionics; -using Content.Server.Objectives.Components; -using Content.Shared.Mind; -using Content.Shared.Objectives.Components; - -namespace Content.Server.Objectives.Systems -{ - public sealed class BecomePsionicConditionSystem : EntitySystem - { - private EntityQuery _metaQuery; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnGetProgress); - } - - private void OnGetProgress(EntityUid uid, BecomePsionicConditionComponent comp, ref ObjectiveGetProgressEvent args) - { - args.Progress = GetProgress(args.Mind); - } - - private float GetProgress(MindComponent mind) - { - var entMan = IoCManager.Resolve(); - if (HasComp(mind.CurrentEntity)) - return 1; - return 0; - } - } -} diff --git a/Content.Server/Nyanotrasen/Psionics/PotentialPsionicComponent.cs b/Content.Server/Nyanotrasen/Psionics/PotentialPsionicComponent.cs deleted file mode 100644 index 9499497cd1d..00000000000 --- a/Content.Server/Nyanotrasen/Psionics/PotentialPsionicComponent.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Content.Server.Psionics -{ - [RegisterComponent] - public sealed partial class PotentialPsionicComponent : Component - { - [DataField("chance")] - public float Chance = 0.04f; - - /// - /// YORO (you only reroll once) - /// - public bool Rerolled = false; - } -} diff --git a/Content.Server/Nyanotrasen/Research/Oracle/OracleSystem.cs b/Content.Server/Nyanotrasen/Research/Oracle/OracleSystem.cs index 148598fe2c3..24459d29e22 100644 --- a/Content.Server/Nyanotrasen/Research/Oracle/OracleSystem.cs +++ b/Content.Server/Nyanotrasen/Research/Oracle/OracleSystem.cs @@ -5,7 +5,7 @@ using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Fluids.EntitySystems; using Content.Server.Psionics; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Chat; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.EntitySystems; diff --git a/Content.Server/Nyanotrasen/Research/SophicScribe/SophicScribeSystem.cs b/Content.Server/Nyanotrasen/Research/SophicScribe/SophicScribeSystem.cs index bc3c22cc350..b8cdcb56d47 100644 --- a/Content.Server/Nyanotrasen/Research/SophicScribe/SophicScribeSystem.cs +++ b/Content.Server/Nyanotrasen/Research/SophicScribe/SophicScribeSystem.cs @@ -1,4 +1,4 @@ -using Content.Server.Abilities.Psionics; +using Content.Server.Psionics.Abilities; using Content.Server.Chat.Systems; using Content.Server.Radio.Components; using Content.Server.Radio.EntitySystems; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/GlimmerWispSpawnRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/GlimmerWispSpawnRule.cs index 66eea988aeb..89b5a176f24 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/GlimmerWispSpawnRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/GlimmerWispSpawnRule.cs @@ -5,7 +5,7 @@ using Content.Server.Psionics.Glimmer; using Content.Server.StationEvents.Components; using Content.Shared.Psionics.Glimmer; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs index 63944563269..89f3bc97501 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs @@ -1,10 +1,9 @@ -using Robust.Server.GameObjects; using Robust.Shared.Random; -using Content.Server.Abilities.Psionics; +using Content.Server.Psionics.Abilities; using Content.Server.GameTicking.Rules.Components; using Content.Server.Psionics; using Content.Server.StationEvents.Components; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Robust.Shared.Player; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs index c04543d2195..6a2c1c3ba7d 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs @@ -10,7 +10,7 @@ using Content.Server.Power.EntitySystems; using Content.Server.Psionics.Glimmer; using Content.Server.StationEvents.Components; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Damage; using Content.Shared.Inventory; using Content.Shared.Mobs.Components; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericStormRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericStormRule.cs index 175318e15bd..8812ed1fe37 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericStormRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericStormRule.cs @@ -1,9 +1,9 @@ using Robust.Shared.Random; -using Content.Server.Abilities.Psionics; +using Content.Server.Psionics.Abilities; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.Psionics; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Mobs.Systems; using Content.Shared.Psionics.Glimmer; using Content.Shared.Zombies; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericZapRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericZapRule.cs index 82c3d72b139..3672d317d9e 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericZapRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericZapRule.cs @@ -3,7 +3,7 @@ using Content.Server.Psionics; using Content.Server.StationEvents.Components; using Content.Server.Stunnable; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.StatusEffect; diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/PsionicCatGotYourTongueRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/PsionicCatGotYourTongueRule.cs index 63e0a435cb0..753b2e25729 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/PsionicCatGotYourTongueRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/PsionicCatGotYourTongueRule.cs @@ -4,7 +4,7 @@ using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Shared.Mobs.Components; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.StatusEffect; using Content.Shared.Mobs.Systems; using Robust.Shared.Audio.Systems; diff --git a/Content.Server/Pointing/EntitySystems/PointingSystem.cs b/Content.Server/Pointing/EntitySystems/PointingSystem.cs index a7c455e6a5d..9b2e14eff8b 100644 --- a/Content.Server/Pointing/EntitySystems/PointingSystem.cs +++ b/Content.Server/Pointing/EntitySystems/PointingSystem.cs @@ -36,7 +36,9 @@ internal sealed class PointingSystem : SharedPointingSystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly VisibilitySystem _visibilitySystem = default!; [Dependency] private readonly SharedMindSystem _minds = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; private static readonly TimeSpan PointDelay = TimeSpan.FromSeconds(0.5f); @@ -96,11 +98,11 @@ public bool InRange(EntityUid pointer, EntityCoordinates coordinates) { if (HasComp(pointer)) { - return Transform(pointer).Coordinates.InRange(EntityManager, coordinates, 15); + return Transform(pointer).Coordinates.InRange(EntityManager, _transform, coordinates, 15); } else { - return ExamineSystemShared.InRangeUnOccluded(pointer, coordinates, 15, predicate: e => e == pointer); + return _examine.InRangeUnOccluded(pointer, coordinates, 15, predicate: e => e == pointer); } } @@ -141,7 +143,7 @@ public bool TryPoint(ICommonSession? session, EntityCoordinates coordsPointed, E return false; } - var mapCoordsPointed = coordsPointed.ToMap(EntityManager); + var mapCoordsPointed = coordsPointed.ToMap(EntityManager, _transform); _rotateToFaceSystem.TryFaceCoordinates(player, mapCoordsPointed.Position); var arrow = EntityManager.SpawnEntity("PointingArrow", coordsPointed); @@ -149,7 +151,7 @@ public bool TryPoint(ICommonSession? session, EntityCoordinates coordsPointed, E if (TryComp(arrow, out var pointing)) { if (TryComp(player, out TransformComponent? xformPlayer)) - pointing.StartPosition = EntityCoordinates.FromMap(arrow, xformPlayer.Coordinates.ToMap(EntityManager)).Position; + pointing.StartPosition = EntityCoordinates.FromMap(arrow, xformPlayer.Coordinates.ToMap(EntityManager, _transform), _transform).Position; pointing.EndTime = _gameTiming.CurTime + PointDuration; diff --git a/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs b/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs index 5ed39d51787..048fda23553 100644 --- a/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs @@ -20,6 +20,8 @@ public sealed class PowerReceiverSystem : EntitySystem [Dependency] private readonly IAdminManager _adminManager = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly AudioSystem _audio = default!; + private EntityQuery _recQuery; + private EntityQuery _provQuery; public override void Initialize() { @@ -35,6 +37,9 @@ public override void Initialize() SubscribeLocalEvent>(OnGetVerbs); SubscribeLocalEvent>(AddSwitchPowerVerb); + + _recQuery = GetEntityQuery(); + _provQuery = GetEntityQuery(); } private void OnGetVerbs(EntityUid uid, ApcPowerReceiverComponent component, GetVerbsEvent args) @@ -77,7 +82,7 @@ private void OnProviderShutdown(EntityUid uid, ApcPowerProviderComponent compone private void OnProviderConnected(Entity receiver, ref ExtensionCableSystem.ProviderConnectedEvent args) { var providerUid = args.Provider.Owner; - if (!EntityManager.TryGetComponent(providerUid, out var provider)) + if (!_provQuery.TryGetComponent(providerUid, out var provider)) return; receiver.Comp.Provider = provider; @@ -94,7 +99,7 @@ private void OnProviderDisconnected(Entity receiver, private void OnReceiverConnected(Entity provider, ref ExtensionCableSystem.ReceiverConnectedEvent args) { - if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver)) + if (_recQuery.TryGetComponent(args.Receiver, out var receiver)) { provider.Comp.AddReceiver(receiver); } @@ -102,7 +107,7 @@ private void OnReceiverConnected(Entity provider, ref private void OnReceiverDisconnected(EntityUid uid, ApcPowerProviderComponent provider, ExtensionCableSystem.ReceiverDisconnectedEvent args) { - if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver)) + if (_recQuery.TryGetComponent(args.Receiver, out var receiver)) { provider.RemoveReceiver(receiver); } @@ -116,7 +121,7 @@ private void AddSwitchPowerVerb(EntityUid uid, PowerSwitchComponent component, G if (!HasComp(args.User)) return; - if (!TryComp(uid, out var receiver)) + if (!_recQuery.TryGetComponent(uid, out var receiver)) return; if (!receiver.NeedsPower) @@ -152,7 +157,7 @@ private void ProviderChanged(Entity receiver) /// public bool IsPowered(EntityUid uid, ApcPowerReceiverComponent? receiver = null) { - if (!Resolve(uid, ref receiver, false)) + if (!_recQuery.Resolve(uid, ref receiver, false)) return true; return receiver.Powered; @@ -164,7 +169,7 @@ public bool IsPowered(EntityUid uid, ApcPowerReceiverComponent? receiver = null) /// public bool TogglePower(EntityUid uid, bool playSwitchSound = true, ApcPowerReceiverComponent? receiver = null, EntityUid? user = null) { - if (!Resolve(uid, ref receiver, false)) + if (!_recQuery.Resolve(uid, ref receiver, false)) return true; // it'll save a lot of confusion if 'always powered' means 'always powered' diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/DispelPowerSystem.cs b/Content.Server/Psionics/Abilities/DispelPowerSystem.cs similarity index 83% rename from Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/DispelPowerSystem.cs rename to Content.Server/Psionics/Abilities/DispelPowerSystem.cs index d338a5a5bcb..67176c3a3d2 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/DispelPowerSystem.cs +++ b/Content.Server/Psionics/Abilities/DispelPowerSystem.cs @@ -1,24 +1,20 @@ using Content.Shared.Actions; using Content.Shared.StatusEffect; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Damage; using Content.Shared.Revenant.Components; using Content.Server.Guardian; using Content.Server.Bible.Components; using Content.Server.Popups; -using Robust.Shared.Prototypes; using Robust.Shared.Player; using Robust.Shared.Random; -using Robust.Shared.Timing; -using Content.Shared.Mind; using Content.Shared.Actions.Events; using Robust.Shared.Audio.Systems; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { public sealed class DispelPowerSystem : EntitySystem { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; @@ -27,8 +23,6 @@ public sealed class DispelPowerSystem : EntitySystem [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly SharedMindSystem _mindSystem = default!; public override void Initialize() @@ -52,10 +46,13 @@ private void OnInit(EntityUid uid, DispelPowerComponent component, ComponentInit _actions.TryGetActionData( component.DispelActionEntity, out var actionData ); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(component.DispelActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) + if (TryComp(uid, out var psionic)) { - psionic.PsionicAbility = component.DispelActionEntity; psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.DispelFeedback); + //It's fully intended that Dispel doesn't increase Amplification, and instead heavily spikes Dampening + //Antimage archetype. + psionic.Dampening += 1f; } } @@ -66,12 +63,16 @@ private void OnShutdown(EntityUid uid, DispelPowerComponent component, Component if (TryComp(uid, out var psionic)) { psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.DispelFeedback); + psionic.Dampening -= 1f; } } private void OnPowerUsed(DispelPowerActionEvent args) { - if (HasComp(args.Target)) + if (HasComp(args.Target) || HasComp(args.Performer)) + return; + if (!TryComp(args.Performer, out var psionic) || !HasComp(args.Target)) return; var ev = new DispelledEvent(); @@ -80,7 +81,9 @@ private void OnPowerUsed(DispelPowerActionEvent args) if (ev.Handled) { args.Handled = true; - _psionics.LogPowerUsed(args.Performer, "dispel"); + _psionics.LogPowerUsed(args.Performer, "dispel", + (int) MathF.Round(-4 * psionic.Dampening + psionic.Amplification), + (int) MathF.Round(-2 * psionic.Dampening + psionic.Amplification)); } } @@ -96,7 +99,7 @@ private void OnDispelled(EntityUid uid, DispellableComponent component, Dispelle private void OnDmgDispelled(EntityUid uid, DamageOnDispelComponent component, DispelledEvent args) { var damage = component.Damage; - var modifier = (1 + component.Variance) - (_random.NextFloat(0, component.Variance * 2)); + var modifier = 1 + component.Variance - _random.NextFloat(0, component.Variance * 2); damage *= modifier; DealDispelDamage(uid, damage); @@ -145,5 +148,3 @@ public void DealDispelDamage(EntityUid uid, DamageSpecifier? damage = null) } public sealed class DispelledEvent : HandledEntityEventArgs {} } - - diff --git a/Content.Server/Psionics/Abilities/MetapsionicPowerSystem.cs b/Content.Server/Psionics/Abilities/MetapsionicPowerSystem.cs new file mode 100644 index 00000000000..78842c6443d --- /dev/null +++ b/Content.Server/Psionics/Abilities/MetapsionicPowerSystem.cs @@ -0,0 +1,183 @@ +using Content.Shared.Actions; +using Content.Shared.Actions.Events; +using Content.Shared.Psionics.Abilities; +using Content.Shared.DoAfter; +using Content.Shared.Examine; +using static Content.Shared.Examine.ExamineSystemShared; +using Content.Shared.Popups; +using Robust.Server.Audio; +using Robust.Shared.Audio; +using Robust.Shared.Timing; +using Robust.Shared.Player; +using Content.Server.DoAfter; +using Content.Shared.Psionics.Events; +using Content.Server.Psionics; + +namespace Content.Server.Psionics.Abilities +{ + public sealed class MetapsionicPowerSystem : EntitySystem + { + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly AudioSystem _audioSystem = default!; + + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnWidePowerUsed); + SubscribeLocalEvent(OnFocusedPowerUsed); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnInit(EntityUid uid, MetapsionicPowerComponent component, ComponentInit args) + { + if (!TryComp(uid, out ActionsComponent? comp)) + return; + _actions.AddAction(uid, ref component.ActionWideMetapsionicEntity, component.ActionWideMetapsionic, component: comp); + _actions.AddAction(uid, ref component.ActionFocusedMetapsionicEntity, component.ActionFocusedMetapsionic, component: comp); + _actions.TryGetActionData(component.ActionWideMetapsionicEntity, out var actionData); + if (actionData is { UseDelay: not null }) + { + _actions.StartUseDelay(component.ActionWideMetapsionicEntity); + _actions.StartUseDelay(component.ActionFocusedMetapsionicEntity); + } + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.MetapsionicFeedback); + psionic.Amplification += 0.1f; + psionic.Dampening += 0.5f; + } + + } + + private void UpdateActions(EntityUid uid, MetapsionicPowerComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + _actions.StartUseDelay(component.ActionWideMetapsionicEntity); + _actions.StartUseDelay(component.ActionFocusedMetapsionicEntity); + } + + private void OnShutdown(EntityUid uid, MetapsionicPowerComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.ActionWideMetapsionicEntity); + _actions.RemoveAction(uid, component.ActionFocusedMetapsionicEntity); + + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.MetapsionicFeedback); + psionic.Amplification -= 0.1f; + psionic.Dampening -= 0.5f; + } + } + + private void OnWidePowerUsed(EntityUid uid, MetapsionicPowerComponent component, WideMetapsionicPowerActionEvent args) + { + if (HasComp(uid)) + return; + + if (!TryComp(uid, out var psionic)) + return; + + foreach (var entity in _lookup.GetEntitiesInRange(uid, component.Range)) + { + if (HasComp(entity) && entity != uid && !HasComp(entity) && + !(HasComp(entity) && Transform(entity).ParentUid == uid)) + { + _popups.PopupEntity(Loc.GetString("metapsionic-pulse-success"), uid, uid, PopupType.LargeCaution); + args.Handled = true; + return; + } + } + _popups.PopupEntity(Loc.GetString("metapsionic-pulse-failure"), uid, uid, PopupType.Large); + _psionics.LogPowerUsed(uid, "metapsionic pulse", + (int) MathF.Round(2 * psionic.Amplification - psionic.Dampening), + (int) MathF.Round(4 * psionic.Amplification - psionic.Dampening)); + UpdateActions(uid, component); + args.Handled = true; + } + + private void OnFocusedPowerUsed(FocusedMetapsionicPowerActionEvent args) + { + if (!TryComp(args.Performer, out var psionic)) + return; + + if (HasComp(args.Target)) + return; + + if (!TryComp(args.Performer, out var component)) + return; + + var ev = new FocusedMetapsionicDoAfterEvent(_gameTiming.CurTime); + + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, args.Performer, component.UseDelay - psionic.Amplification, ev, args.Performer, args.Target, args.Performer) + { + BlockDuplicate = true, + BreakOnUserMove = true, + BreakOnTargetMove = true, + BreakOnDamage = true, + }, out var doAfterId); + + component.DoAfter = doAfterId; + + _popups.PopupEntity(Loc.GetString("focused-metapsionic-pulse-begin", ("entity", args.Target)), args.Performer, PopupType.Medium); + + _audioSystem.PlayPvs(component.SoundUse, args.Performer, AudioParams.Default.WithVolume(8f).WithMaxDistance(1.5f).WithRolloffFactor(3.5f)); + _psionics.LogPowerUsed(args.Performer, "focused metapsionic pulse", + (int) MathF.Round(3 * psionic.Amplification - psionic.Dampening), + (int) MathF.Round(6 * psionic.Amplification - psionic.Dampening)); + args.Handled = true; + + UpdateActions(args.Performer, component); + } + + private void OnDoAfter(EntityUid uid, MetapsionicPowerComponent component, FocusedMetapsionicDoAfterEvent args) + { + if (!TryComp(args.Target, out var psychic)) + return; + + component.DoAfter = null; + + if (args.Target == null) return; + + if (TryComp(args.Target, out var swapped)) + { + _popups.PopupEntity(Loc.GetString(swapped.MindSwappedFeedback, ("entity", args.Target)), uid, uid, PopupType.LargeCaution); + return; + } + + if (args.Target == uid) + { + _popups.PopupEntity(Loc.GetString("metapulse-self", ("entity", args.Target)), uid, uid, PopupType.LargeCaution); + return; + } + + if (!HasComp(args.Target)) + { + _popups.PopupEntity(Loc.GetString("no-powers", ("entity", args.Target)), uid, uid, PopupType.LargeCaution); + return; + } + + if (HasComp(args.Target) & !HasComp(args.Target)) + { + _popups.PopupEntity(Loc.GetString("psychic-potential", ("entity", args.Target)), uid, uid, PopupType.LargeCaution); + return; + } + + foreach (var psychicFeedback in psychic.PsychicFeedback) + { + _popups.PopupEntity(Loc.GetString(psychicFeedback, ("entity", args.Target)), uid, uid, PopupType.LargeCaution); + } + + } + } +} diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwapPowerSystem.cs b/Content.Server/Psionics/Abilities/MindSwapPowerSystem.cs similarity index 78% rename from Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwapPowerSystem.cs rename to Content.Server/Psionics/Abilities/MindSwapPowerSystem.cs index b23224cab48..1e50a586b4f 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwapPowerSystem.cs +++ b/Content.Server/Psionics/Abilities/MindSwapPowerSystem.cs @@ -1,5 +1,6 @@ using Content.Shared.Actions; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; +using Content.Shared.Psionics; using Content.Shared.Speech; using Content.Shared.Stealth.Components; using Content.Shared.Mobs.Components; @@ -10,19 +11,15 @@ using Content.Server.Popups; using Content.Server.Psionics; using Content.Server.GameTicking; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; using Content.Shared.Mind; using Content.Shared.Actions.Events; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { public sealed class MindSwapPowerSystem : EntitySystem { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly MobStateSystem _mobStateSystem = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly MindSystem _mindSystem = default!; @@ -38,20 +35,22 @@ public override void Initialize() SubscribeLocalEvent(OnDispelled); SubscribeLocalEvent(OnMobStateChanged); SubscribeLocalEvent(OnGhostAttempt); - // SubscribeLocalEvent(OnSwapInit); + SubscribeLocalEvent(OnSwapShutdown); + SubscribeLocalEvent(OnInsulated); } private void OnInit(EntityUid uid, MindSwapPowerComponent component, ComponentInit args) { - _actions.AddAction(uid, ref component.MindSwapActionEntity, component.MindSwapActionId ); - _actions.TryGetActionData( component.MindSwapActionEntity, out var actionData ); + _actions.AddAction(uid, ref component.MindSwapActionEntity, component.MindSwapActionId); + _actions.TryGetActionData( component.MindSwapActionEntity, out var actionData); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(component.MindSwapActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) + if (TryComp(uid, out var psionic)) { - psionic.PsionicAbility = component.MindSwapActionEntity; psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.MindSwapFeedback); + psionic.Amplification += 1f; } } @@ -61,20 +60,26 @@ private void OnShutdown(EntityUid uid, MindSwapPowerComponent component, Compone if (TryComp(uid, out var psionic)) { psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.MindSwapFeedback); + psionic.Amplification -= 1f; } } private void OnPowerUsed(MindSwapPowerActionEvent args) { + if (!(TryComp(args.Target, out var damageable) && damageable.DamageContainerID == "Biological")) return; if (HasComp(args.Target)) return; + if (!TryComp(args.Performer, out var psionic)) + return; + Swap(args.Performer, args.Target); - _psionics.LogPowerUsed(args.Performer, "mind swap"); + _psionics.LogPowerUsed(args.Performer, "mind swap", (int) MathF.Round(psionic.Amplification / psionic.Dampening * 8), (int) MathF.Round(psionic.Amplification / psionic.Dampening * 12)); args.Handled = true; } @@ -125,8 +130,8 @@ private void OnDispelled(EntityUid uid, MindSwappedComponent component, Dispelle private void OnMobStateChanged(EntityUid uid, MindSwappedComponent component, MobStateChangedEvent args) { - if (args.NewMobState == MobState.Dead) - RemComp(uid); + if (args.NewMobState == MobState.Dead || args.NewMobState == MobState.Critical) + Swap(uid, component.OriginalEntity, true); } private void OnGhostAttempt(GhostAttemptHandleEvent args) @@ -151,8 +156,21 @@ private void OnSwapInit(EntityUid uid, MindSwappedComponent component, Component _actions.TryGetActionData( component.MindSwapReturnActionEntity, out var actionData ); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(component.MindSwapReturnActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - psionic.PsionicAbility = component.MindSwapReturnActionEntity; + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.MindSwappedFeedback); + } + } + + private void OnSwapShutdown(EntityUid uid, MindSwappedComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.MindSwapReturnActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.MindSwappedFeedback); + } } public void Swap(EntityUid performer, EntityUid target, bool end = false) @@ -165,11 +183,13 @@ public void Swap(EntityUid performer, EntityUid target, bool end = false) MindComponent? targetMind = null; // This is here to prevent missing MindContainerComponent Resolve errors. - if(!_mindSystem.TryGetMind(performer, out var performerMindId, out performerMind)){ + if (!_mindSystem.TryGetMind(performer, out var performerMindId, out performerMind)) + { performerMind = null; }; - if(!_mindSystem.TryGetMind(target, out var targetMindId, out targetMind)){ + if (!_mindSystem.TryGetMind(target, out var targetMindId, out targetMind)) + { targetMind = null; }; //This is a terrible way to 'unattach' minds. I wanted to use UnVisit but in TransferTo's code they say @@ -202,7 +222,7 @@ public void Swap(EntityUid performer, EntityUid target, bool end = false) perfComp.OriginalEntity = target; targetComp.OriginalEntity = performer; } - + //It shouldn't actually be possible anymore to get trapped under most circumstances, but for niche edge cases, I am leaving this here public void GetTrapped(EntityUid uid) { @@ -220,5 +240,9 @@ public void GetTrapped(EntityUid uid) _metaDataSystem.SetEntityDescription(uid, Loc.GetString("telegnostic-trapped-entity-desc")); } } + public void OnInsulated(EntityUid uid, MindSwappedComponent component, PsionicInsulationEvent args) + { + Swap(uid, component.OriginalEntity, true); + } } } diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwappedComponent.cs b/Content.Server/Psionics/Abilities/MindSwappedComponent.cs similarity index 79% rename from Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwappedComponent.cs rename to Content.Server/Psionics/Abilities/MindSwappedComponent.cs index 72cd6a66ef9..82c0313bca6 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/MindSwappedComponent.cs +++ b/Content.Server/Psionics/Abilities/MindSwappedComponent.cs @@ -1,7 +1,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { [RegisterComponent] public sealed partial class MindSwappedComponent : Component @@ -14,5 +14,8 @@ public sealed partial class MindSwappedComponent : Component [DataField("mindSwapReturnActionEntity")] public EntityUid? MindSwapReturnActionEntity; + + [DataField("mindSwappedFeedback")] + public string MindSwappedFeedback = "mindswapped-feedback"; } } diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZapPowerSystem.cs b/Content.Server/Psionics/Abilities/NoosphericZapPowerSystem.cs similarity index 54% rename from Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZapPowerSystem.cs rename to Content.Server/Psionics/Abilities/NoosphericZapPowerSystem.cs index 0fd261ef12f..c935bc0123d 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZapPowerSystem.cs +++ b/Content.Server/Psionics/Abilities/NoosphericZapPowerSystem.cs @@ -1,26 +1,21 @@ using Content.Shared.Actions; -using Content.Shared.Abilities.Psionics; -using Content.Server.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.StatusEffect; +using Content.Server.Electrocution; using Content.Server.Stunnable; using Content.Server.Beam; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; -using Content.Server.Mind; using Content.Shared.Actions.Events; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { public sealed class NoosphericZapPowerSystem : EntitySystem { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; [Dependency] private readonly StunSystem _stunSystem = default!; [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly BeamSystem _beam = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; + [Dependency] private readonly ElectrocutionSystem _electrocution = default!; public override void Initialize() @@ -37,10 +32,11 @@ private void OnInit(EntityUid uid, NoosphericZapPowerComponent component, Compon _actions.TryGetActionData( component.NoosphericZapActionEntity, out var actionData ); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(component.NoosphericZapActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) + if (TryComp(uid, out var psionic)) { - psionic.PsionicAbility = component.NoosphericZapActionEntity; psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.NoosphericZapFeedback); + psionic.Amplification += 1f; } } @@ -50,24 +46,34 @@ private void OnShutdown(EntityUid uid, NoosphericZapPowerComponent component, Co if (TryComp(uid, out var psionic)) { psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.NoosphericZapFeedback); + psionic.Amplification -= 1f; } } private void OnPowerUsed(NoosphericZapPowerActionEvent args) { - if (!HasComp(args.Target)) + if (!TryComp(args.Performer, out var psionic)) return; - if (HasComp(args.Target)) - return; + if (!HasComp(args.Target) && !HasComp(args.Performer)) + { + _beam.TryCreateBeam(args.Performer, args.Target, "LightningNoospheric"); + _stunSystem.TryParalyze(args.Target, TimeSpan.FromSeconds(1 * psionic.Amplification), false); - _beam.TryCreateBeam(args.Performer, args.Target, "LightningNoospheric"); + _electrocution.TryDoElectrocution(args.Target, null, + (int) MathF.Round(5f * psionic.Amplification), + new TimeSpan((long) MathF.Round(1f * psionic.Amplification)), + true, + ignoreInsulation: true); - _stunSystem.TryParalyze(args.Target, TimeSpan.FromSeconds(5), false); - _statusEffectsSystem.TryAddStatusEffect(args.Target, "Stutter", TimeSpan.FromSeconds(10), false, "StutteringAccent"); + _statusEffectsSystem.TryAddStatusEffect(args.Target, "Stutter", TimeSpan.FromSeconds(2 * psionic.Amplification), false, "StutteringAccent"); - _psionics.LogPowerUsed(args.Performer, "noospheric zap"); - args.Handled = true; + _psionics.LogPowerUsed(args.Performer, "noopsheric zap", + (int) MathF.Round(6 * psionic.Amplification - psionic.Dampening), + (int) MathF.Round(8 * psionic.Amplification - psionic.Dampening)); + args.Handled = true; + } } } } diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/PsionicAbilitiesSystem.cs b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs similarity index 54% rename from Content.Server/Nyanotrasen/Abilities/Psionics/PsionicAbilitiesSystem.cs rename to Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs index ee16aaccfb6..c81d3d7a0b0 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/PsionicAbilitiesSystem.cs +++ b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs @@ -1,77 +1,41 @@ -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Actions; using Content.Shared.Psionics.Glimmer; using Content.Shared.Random; using Content.Shared.Random.Helpers; -using Content.Server.EUI; -using Content.Server.Psionics; -using Content.Server.Mind; -using Content.Shared.Mind; -using Content.Shared.Mind.Components; using Content.Shared.StatusEffect; using Robust.Shared.Random; using Robust.Shared.Prototypes; -using Robust.Server.GameObjects; -using Robust.Server.Player; using Robust.Shared.Player; +using Content.Shared.Examine; +using Content.Shared.Popups; +using static Content.Shared.Examine.ExamineSystemShared; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { public sealed class PsionicAbilitiesSystem : EntitySystem { [Dependency] private readonly IComponentFactory _componentFactory = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; - [Dependency] private readonly IPlayerManager _playerManager = default!; - [Dependency] private readonly EuiManager _euiManager = default!; [Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnPlayerAttached); } - private void OnPlayerAttached(EntityUid uid, PsionicAwaitingPlayerComponent component, PlayerAttachedEvent args) - { - if (TryComp(uid, out var bonus) && bonus.Warn == true) - _euiManager.OpenEui(new AcceptPsionicsEui(uid, this), args.Player); - else - AddRandomPsionicPower(uid); - RemCompDeferred(uid); - } - - public void AddPsionics(EntityUid uid, bool warn = true) - { - if (Deleted(uid)) - return; - - if (HasComp(uid)) - return; - - //Don't know if this will work. New mind state vs old. - if (!TryComp(uid, out var mindContainer) || - !_mindSystem.TryGetMind(uid, out _, out var mind )) - //|| - //!_mindSystem.TryGetMind(uid, out var mind, mindContainer)) - { - EnsureComp(uid); - return; - } - - if (!_mindSystem.TryGetSession(mind, out var client)) - return; - - if (warn && TryComp(uid, out var actor)) - _euiManager.OpenEui(new AcceptPsionicsEui(uid, this), client); - else - AddRandomPsionicPower(uid); - } - - public void AddPsionics(EntityUid uid, string powerComp) + /// + /// Adds a psychic power once a character rolls one. This used to be a system you have to select for. However the opt-in is no longer the text window, but is now done at character creation. + /// TODO: This is going to get removed when I reach Part 3 of my reworks, when I touch upon the GlimmerSystem itself and overhaul how players get powers. + /// + /// + /// + /// + public void AddPsionics(EntityUid uid) { if (Deleted(uid)) return; @@ -79,17 +43,11 @@ public void AddPsionics(EntityUid uid, string powerComp) if (HasComp(uid)) return; - AddComp(uid); - - var newComponent = (Component) _componentFactory.GetComponent(powerComp); - newComponent.Owner = uid; - - EntityManager.AddComponent(uid, newComponent); + AddRandomPsionicPower(uid); } - public void AddRandomPsionicPower(EntityUid uid) { - AddComp(uid); + EnsureComp(uid, out var psionic); if (!_prototypeManager.TryIndex("RandomPsionicPowerPool", out var pool)) { @@ -103,11 +61,16 @@ public void AddRandomPsionicPower(EntityUid uid) EntityManager.AddComponent(uid, newComponent); - _glimmerSystem.Glimmer += _random.Next(1, 5); + _glimmerSystem.Glimmer += _random.Next((int) MathF.Round(psionic.Amplification * psionic.Dampening * 1), (int) MathF.Round(psionic.Amplification * psionic.Dampening * 5)); } public void RemovePsionics(EntityUid uid) { + if (RemComp(uid)) + { + _popups.PopupEntity(Loc.GetString("mindbreaking-feedback", ("entity", uid)), uid, PopupType.Medium); + } + if (!TryComp(uid, out var psionic)) return; @@ -130,14 +93,15 @@ public void RemovePsionics(EntityUid uid) if (psionic.PsionicAbility != null){ _actionsSystem.TryGetActionData( psionic.PsionicAbility, out var psiAbility ); if (psiAbility != null){ - var owner = psiAbility.Owner; _actionsSystem.RemoveAction(uid, psiAbility.Owner); } } _statusEffectsSystem.TryAddStatusEffect(uid, "Stutter", TimeSpan.FromMinutes(5), false, "StutteringAccent"); + _glimmerSystem.Glimmer += _random.Next((int) MathF.Round(psionic.Amplification * psionic.Dampening * -10), (int) MathF.Round(psionic.Amplification * psionic.Dampening * -5)); RemComp(uid); + RemComp(uid); } } } diff --git a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs b/Content.Server/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs similarity index 57% rename from Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs rename to Content.Server/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs index 5ca1dc7a6dc..0c50efb5cf3 100644 --- a/Content.Server/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs +++ b/Content.Server/Psionics/Abilities/PsionicInvisibilityPowerSystem.cs @@ -1,31 +1,31 @@ +using Content.Server.DoAfter; using Content.Shared.Actions; -using Content.Shared.CombatMode.Pacification; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Damage; +using Content.Shared.DoAfter; using Content.Shared.Stunnable; using Content.Shared.Stealth; using Content.Shared.Stealth.Components; -using Content.Server.Psionics; -using Robust.Shared.Prototypes; -using Robust.Shared.Player; -using Robust.Shared.Audio; -using Robust.Shared.Timing; -using Content.Server.Mind; +using Content.Shared.Psionics.Events; using Content.Shared.Actions.Events; using Robust.Shared.Audio.Systems; +using Content.Shared.Interaction.Events; +using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Throwing; +using Robust.Shared.Timing; +using Content.Shared.Psionics; -namespace Content.Server.Abilities.Psionics +namespace Content.Server.Psionics.Abilities { public sealed class PsionicInvisibilityPowerSystem : EntitySystem { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly SharedStunSystem _stunSystem = default!; [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; [Dependency] private readonly SharedStealthSystem _stealth = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; public override void Initialize() { @@ -37,43 +37,61 @@ public override void Initialize() SubscribeLocalEvent(OnStart); SubscribeLocalEvent(OnEnd); SubscribeLocalEvent(OnDamageChanged); + SubscribeLocalEvent(OnAttackAttempt); + SubscribeLocalEvent(OnShootAttempt); + SubscribeLocalEvent(OnThrowAttempt); + SubscribeLocalEvent(OnInsulated); } private void OnInit(EntityUid uid, PsionicInvisibilityPowerComponent component, ComponentInit args) { - _actions.AddAction(uid, ref component.PsionicInvisibilityActionEntity, component.PsionicInvisibilityActionId ); - _actions.TryGetActionData( component.PsionicInvisibilityActionEntity, out var actionData ); + _actions.AddAction(uid, ref component.PsionicInvisibilityActionEntity, component.PsionicInvisibilityActionId); + _actions.TryGetActionData( component.PsionicInvisibilityActionEntity, out var actionData); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(component.PsionicInvisibilityActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) + if (TryComp(uid, out var psionic)) { - psionic.PsionicAbility = component.PsionicInvisibilityActionEntity; psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.InvisibilityFeedback); + psionic.Amplification += 0.5f; } } private void OnShutdown(EntityUid uid, PsionicInvisibilityPowerComponent component, ComponentShutdown args) { + RemComp(uid); + RemComp(uid); _actions.RemoveAction(uid, component.PsionicInvisibilityActionEntity); if (TryComp(uid, out var psionic)) { psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.InvisibilityFeedback); + psionic.Amplification -= 0.5f; } } private void OnPowerUsed(EntityUid uid, PsionicInvisibilityPowerComponent component, PsionicInvisibilityPowerActionEvent args) { - if (HasComp(uid)) + if (!TryComp(uid, out var psionic)) + return; + + if (HasComp(uid)) return; + var ev = new PsionicInvisibilityTimerEvent(_gameTiming.CurTime); + var doAfterArgs = new DoAfterArgs(EntityManager, uid, component.UseTimer, ev, uid) { Hidden = true }; + _doAfterSystem.TryStartDoAfter(doAfterArgs); + ToggleInvisibility(args.Performer); var action = Spawn(PsionicInvisibilityUsedComponent.PsionicInvisibilityUsedActionPrototype); _actions.AddAction(uid, action, action); - _actions.TryGetActionData( action, out var actionData ); + _actions.TryGetActionData(action, out var actionData); if (actionData is { UseDelay: not null }) _actions.StartUseDelay(action); - _psionics.LogPowerUsed(uid, "psionic invisibility"); + _psionics.LogPowerUsed(uid, "psionic invisibility", + (int) MathF.Round(8 * psionic.Amplification - 2 * psionic.Dampening), + (int) MathF.Round(12 * psionic.Amplification - 2 * psionic.Dampening)); args.Handled = true; } @@ -89,7 +107,6 @@ private void OnPowerOff(RemovePsionicInvisibilityOffPowerActionEvent args) private void OnStart(EntityUid uid, PsionicInvisibilityUsedComponent component, ComponentInit args) { EnsureComp(uid); - EnsureComp(uid); var stealth = EnsureComp(uid); _stealth.SetVisibility(uid, 0.66f, stealth); _audio.PlayPvs("/Audio/Effects/toss.ogg", uid); @@ -102,24 +119,37 @@ private void OnEnd(EntityUid uid, PsionicInvisibilityUsedComponent component, Co return; RemComp(uid); - RemComp(uid); RemComp(uid); _audio.PlayPvs("/Audio/Effects/toss.ogg", uid); - //Pretty sure this DOESN'T work as intended. _actions.RemoveAction(uid, component.PsionicInvisibilityUsedActionEntity); - - _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(8), false); DirtyEntity(uid); } + private void OnAttackAttempt(EntityUid uid, PsionicInvisibilityUsedComponent component, AttackAttemptEvent args) + { + RemComp(uid); + } + + private void OnShootAttempt(EntityUid uid, PsionicInvisibilityUsedComponent component, ShotAttemptedEvent args) + { + RemComp(uid); + } + + private void OnThrowAttempt(EntityUid uid, PsionicInvisibilityUsedComponent component, ThrowAttemptEvent args) + { + RemComp(uid); + } private void OnDamageChanged(EntityUid uid, PsionicInvisibilityUsedComponent component, DamageChangedEvent args) { + if (!TryComp(uid, out var psionic)) + return; + if (!args.DamageIncreased) return; ToggleInvisibility(uid); + _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(4f / psionic.Dampening + psionic.Amplification), false); } - public void ToggleInvisibility(EntityUid uid) { if (!HasComp(uid)) @@ -130,5 +160,19 @@ public void ToggleInvisibility(EntityUid uid) RemComp(uid); } } + + public void OnDoAfter(EntityUid uid, PsionicInvisibilityPowerComponent component, PsionicInvisibilityTimerEvent args) + { + RemComp(uid); + } + + private void OnInsulated(EntityUid uid, PsionicInvisibilityUsedComponent component, PsionicInsulationEvent args) + { + if (!TryComp(uid, out var psionic)) + return; + + RemComp(uid); + _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(4f / psionic.Dampening + psionic.Amplification), false); + } } } diff --git a/Content.Server/Psionics/Abilities/PsionicRegenerationPowerSystem.cs b/Content.Server/Psionics/Abilities/PsionicRegenerationPowerSystem.cs new file mode 100644 index 00000000000..893d1bc4cfa --- /dev/null +++ b/Content.Server/Psionics/Abilities/PsionicRegenerationPowerSystem.cs @@ -0,0 +1,179 @@ +using Robust.Shared.Audio; +using Robust.Shared.Player; +using Content.Server.Body.Components; +using Content.Server.Body.Systems; +using Content.Server.DoAfter; +using Content.Shared.Psionics.Abilities; +using Content.Shared.Actions; +using Content.Shared.Chemistry.Components; +using Content.Shared.DoAfter; +using Content.Shared.FixedPoint; +using Content.Shared.Mobs; +using Content.Shared.Popups; +using Content.Shared.Psionics.Events; +using Content.Shared.Examine; +using static Content.Shared.Examine.ExamineSystemShared; +using Robust.Shared.Timing; +using Content.Shared.Actions.Events; +using Robust.Server.Audio; + +namespace Content.Server.Psionics.Abilities +{ + public sealed class PsionicRegenerationPowerSystem : EntitySystem + { + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + [Dependency] private readonly AudioSystem _audioSystem = default!; + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPowerUsed); + SubscribeLocalEvent(OnMobStateChangedEvent); + SubscribeLocalEvent(OnDispelled); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnInit(EntityUid uid, PsionicRegenerationPowerComponent component, ComponentInit args) + { + _actions.AddAction(uid, ref component.PsionicRegenerationActionEntity, component.PsionicRegenerationActionId ); + _actions.TryGetActionData( component.PsionicRegenerationActionEntity, out var actionData ); + if (actionData is { UseDelay: not null }) + _actions.StartUseDelay(component.PsionicRegenerationActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.RegenerationFeedback); + psionic.Amplification += 0.5f; + psionic.Dampening += 0.5f; + } + } + + private void OnPowerUsed(EntityUid uid, PsionicRegenerationPowerComponent component, PsionicRegenerationPowerActionEvent args) + { + if (!TryComp(uid, out var psionic)) + return; + + var ev = new PsionicRegenerationDoAfterEvent(_gameTiming.CurTime); + var doAfterArgs = new DoAfterArgs(EntityManager, uid, component.UseDelay, ev, uid); + + //Prevent the power from ignoring its own cooldown + _actions.TryGetActionData(component.PsionicRegenerationActionEntity, out var actionData); + var curTime = _gameTiming.CurTime; + if (actionData != null && actionData.Cooldown.HasValue && actionData.Cooldown.Value.End > curTime) + return; + + _doAfterSystem.TryStartDoAfter(doAfterArgs, out var doAfterId); + + component.DoAfter = doAfterId; + + _popupSystem.PopupEntity(Loc.GetString("psionic-regeneration-begin", ("entity", uid)), uid, PopupType.Medium); + _audioSystem.PlayPvs(component.SoundUse, uid, AudioParams.Default.WithVolume(8f).WithMaxDistance(1.5f).WithRolloffFactor(3.5f)); + + _psionics.LogPowerUsed(uid, "psionic regeneration", + (int) Math.Round(6 * psionic.Amplification - psionic.Dampening), + (int) Math.Round(8 * psionic.Amplification - psionic.Dampening)); + + args.Handled = true; + } + + /// + /// Regenerators automatically activate upon crit, provided the power was off cooldown at that exact point in time. + /// Self-rescusitation is also far more costly, and extremely obvious + /// + /// + /// + /// + private void OnMobStateChangedEvent(EntityUid uid, PsionicRegenerationPowerComponent component, MobStateChangedEvent args) + { + if (!TryComp(uid, out var psionic)) + return; + + if (HasComp(uid)) + return; + + if (args.NewMobState is MobState.Critical) + { + _actions.TryGetActionData(component.PsionicRegenerationActionEntity, out var actionData); + var curTime = _gameTiming.CurTime; + if (actionData != null && actionData.Cooldown.HasValue && actionData.Cooldown.Value.End > curTime) + return; + + if (actionData is { UseDelay: not null }) + { + component.SelfRevive = true; + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, uid, component.UseDelay, new PsionicRegenerationDoAfterEvent(_gameTiming.CurTime), uid, args.Target, uid) + { + BreakOnUserMove = false, + BreakOnTargetMove = false, + BreakOnWeightlessMove = false, + BreakOnDamage = false, + RequireCanInteract = false, + }); + _popupSystem.PopupEntity(Loc.GetString("psionic-regeneration-self-revive", ("entity", uid)), uid, PopupType.MediumCaution); + _audioSystem.PlayPvs(component.SoundUse, uid, AudioParams.Default.WithVolume(8f).WithMaxDistance(1.5f).WithRolloffFactor(3.5f)); + + _psionics.LogPowerUsed(uid, "psionic regeneration", + (int) Math.Round(10 * psionic.Amplification - 2 * psionic.Dampening), + (int) Math.Round(20 * psionic.Amplification - 2 * psionic.Dampening)); + + _actions.StartUseDelay(component.PsionicRegenerationActionEntity); + } + } + } + + private void OnShutdown(EntityUid uid, PsionicRegenerationPowerComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.PsionicRegenerationActionEntity); + + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.RegenerationFeedback); + psionic.Amplification -= 0.5f; + psionic.Dampening -= 0.5f; + } + } + + private void OnDispelled(EntityUid uid, PsionicRegenerationPowerComponent component, DispelledEvent args) + { + if (component.DoAfter == null) + return; + + _doAfterSystem.Cancel(component.DoAfter); + component.DoAfter = null; + + args.Handled = true; + } + + private void OnDoAfter(EntityUid uid, PsionicRegenerationPowerComponent component, PsionicRegenerationDoAfterEvent args) + { + component.DoAfter = null; + + if (!TryComp(uid, out var psionic)) + return; + + if (!TryComp(uid, out var stream)) + return; + + var percentageComplete = Math.Min(1f, (_gameTiming.CurTime - args.StartedAt).TotalSeconds / component.UseDelay); + + var solution = new Solution(); + solution.AddReagent("PsionicRegenerationEssence", FixedPoint2.New(Math.Min(component.EssenceAmount * percentageComplete + 10f * psionic.Dampening, 15f))); + _bloodstreamSystem.TryAddToChemicals(uid, solution, stream); + if (component.SelfRevive == true) + { + var critSolution = new Solution(); + critSolution.AddReagent("Epinephrine", MathF.Min(5 + 5 * psionic.Dampening, 15)); + _bloodstreamSystem.TryAddToChemicals(uid, critSolution, stream); + component.SelfRevive = false; + } + } + } +} diff --git a/Content.Server/Psionics/Abilities/PyrokinesisPowerSystem.cs b/Content.Server/Psionics/Abilities/PyrokinesisPowerSystem.cs new file mode 100644 index 00000000000..77075dab206 --- /dev/null +++ b/Content.Server/Psionics/Abilities/PyrokinesisPowerSystem.cs @@ -0,0 +1,93 @@ +using Content.Shared.Actions; +using Content.Shared.Psionics.Abilities; +using Content.Server.Atmos.Components; +using Content.Server.Weapons.Ranged.Systems; +using Robust.Server.GameObjects; +using Content.Shared.Actions.Events; +using Content.Server.Explosion.Components; +using Content.Shared.Mobs.Components; +using Robust.Shared.Map; + +namespace Content.Server.Psionics.Abilities +{ + public sealed class PyrokinesisPowerSystem : EntitySystem + { + [Dependency] private readonly TransformSystem _xform = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + [Dependency] private readonly GunSystem _gunSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly PhysicsSystem _physics = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPowerUsed); + } + + private void OnInit(EntityUid uid, PyrokinesisPowerComponent component, ComponentInit args) + { + _actions.AddAction(uid, ref component.PyrokinesisActionEntity, component.PyrokinesisActionId); + _actions.TryGetActionData( component.PyrokinesisActionEntity, out var actionData); + if (actionData is { UseDelay: not null }) + _actions.StartUseDelay(component.PyrokinesisActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.PyrokinesisFeedback); + psionic.Amplification += 1f; + } + } + + private void OnShutdown(EntityUid uid, PyrokinesisPowerComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.PyrokinesisActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.PyrokinesisFeedback); + psionic.Amplification -= 1f; + } + } + + private void OnPowerUsed(PyrokinesisPowerActionEvent args) + { + if (!TryComp(args.Performer, out var psionic)) + return; + + if (!HasComp(args.Performer)) + { + var xformQuery = GetEntityQuery(); + var xform = xformQuery.GetComponent(args.Performer); + + var mapPos = xform.Coordinates.ToMap(EntityManager, _xform); + var spawnCoords = _mapManager.TryFindGridAt(mapPos, out var gridUid, out _) + ? xform.Coordinates.WithEntityId(gridUid, EntityManager) + : new(_mapManager.GetMapEntityId(mapPos.MapId), mapPos.Position); + + var ent = Spawn("ProjectileAnomalyFireball", spawnCoords); + + if (TryComp(ent, out var fireball)) + { + fireball.MaxIntensity = (int) MathF.Round(20 * psionic.Amplification - 10 * psionic.Dampening); + + if (psionic.Amplification > 5 && EnsureComp(ent, out var ignite)) + { + ignite.FireStacks = 0.2f * psionic.Amplification - 0.1f * psionic.Dampening; + } + } + + var direction = args.Target.Position; + + _gunSystem.ShootProjectile(ent, direction, new System.Numerics.Vector2(0, 0), args.Performer, args.Performer, 20f); + + _psionics.LogPowerUsed(args.Performer, "pyrokinesis", + (int) MathF.Round(6f * psionic.Amplification - psionic.Dampening), + (int) MathF.Round(8f * psionic.Amplification - psionic.Dampening)); + args.Handled = true; + } + } + } +} diff --git a/Content.Server/Psionics/Abilities/RegenerativeStasisPowerSystem.cs b/Content.Server/Psionics/Abilities/RegenerativeStasisPowerSystem.cs new file mode 100644 index 00000000000..e184b19396b --- /dev/null +++ b/Content.Server/Psionics/Abilities/RegenerativeStasisPowerSystem.cs @@ -0,0 +1,76 @@ +using Content.Server.Body.Systems; +using Content.Server.Body.Components; +using Content.Shared.Actions; +using Content.Shared.Chemistry.Components; +using Content.Shared.Bed.Sleep; +using Content.Shared.Psionics.Abilities; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; +using Content.Shared.Mind; +using Content.Shared.Actions.Events; +using Content.Shared.FixedPoint; + +namespace Content.Server.Psionics.Abilities +{ + public sealed class MassSleepPowerSystem : EntitySystem + { + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPowerUsed); + } + + private void OnInit(EntityUid uid, RegenerativeStasisPowerComponent component, ComponentInit args) + { + _actions.AddAction(uid, ref component.RegenerativeStasisActionEntity, component.RegenerativeStasisActionId); + _actions.TryGetActionData(component.RegenerativeStasisActionEntity, out var actionData); + if (actionData is { UseDelay: not null }) + _actions.StartUseDelay(component.RegenerativeStasisActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.RegenerativeStasisFeedback); + psionic.Amplification += 0.5f; + psionic.Dampening += 0.5f; + } + } + + private void OnShutdown(EntityUid uid, RegenerativeStasisPowerComponent component, ComponentShutdown args) + { + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.RegenerativeStasisFeedback); + psionic.Amplification -= 0.5f; + psionic.Dampening -= 0.5f; + } + _actions.RemoveAction(uid, component.RegenerativeStasisActionEntity); + } + + private void OnPowerUsed(EntityUid uid, RegenerativeStasisPowerComponent component, RegenerativeStasisPowerActionEvent args) + { + if (TryComp(uid, out var psionic) + && !HasComp(uid) + && !HasComp(args.Target) + && TryComp(args.Target, out var stream)) + { + var solution = new Solution(); + solution.AddReagent("PsionicRegenerationEssence", FixedPoint2.New(MathF.Min(2.5f * psionic.Amplification + psionic.Dampening, 15f))); + solution.AddReagent("Epinephrine", FixedPoint2.New(MathF.Min(2.5f * psionic.Dampening + psionic.Amplification, 15f))); + _bloodstreamSystem.TryAddToChemicals(args.Target, solution, stream); + EnsureComp(args.Target); + + _psionics.LogPowerUsed(uid, "regenerative stasis", + (int) Math.Round(4 * psionic.Amplification - psionic.Dampening), + (int) Math.Round(6 * psionic.Amplification - psionic.Dampening)); + args.Handled = true; + } + } + } +} diff --git a/Content.Server/Psionics/Abilities/TelegnosisPowerSystem.cs b/Content.Server/Psionics/Abilities/TelegnosisPowerSystem.cs new file mode 100644 index 00000000000..f03b001fc70 --- /dev/null +++ b/Content.Server/Psionics/Abilities/TelegnosisPowerSystem.cs @@ -0,0 +1,106 @@ +using Content.Shared.Actions; +using Content.Shared.Psionics.Abilities; +using Content.Shared.Mind.Components; +using Content.Shared.Actions.Events; +using Content.Shared.Mobs; +using Content.Shared.Storage.Components; + +namespace Content.Server.Psionics.Abilities +{ + public sealed class TelegnosisPowerSystem : EntitySystem + { + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly MindSwapPowerSystem _mindSwap = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPowerUsed); + SubscribeLocalEvent(OnMindRemoved); + SubscribeLocalEvent(OnDispelled); + SubscribeLocalEvent(OnMobstateChanged); + SubscribeLocalEvent(OnStorageInsertAttempt); + } + + private void OnInit(EntityUid uid, TelegnosisPowerComponent component, ComponentInit args) + { + _actions.AddAction(uid, ref component.TelegnosisActionEntity, component.TelegnosisActionId ); + _actions.TryGetActionData( component.TelegnosisActionEntity, out var actionData ); + if (actionData is { UseDelay: not null }) + _actions.StartUseDelay(component.TelegnosisActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Add(component); + psionic.PsychicFeedback.Add(component.TelegnosisFeedback); + psionic.Amplification += 0.3f; + psionic.Dampening += 0.3f; + } + } + + private void OnShutdown(EntityUid uid, TelegnosisPowerComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.TelegnosisActionEntity); + if (TryComp(uid, out var psionic)) + { + psionic.ActivePowers.Remove(component); + psionic.PsychicFeedback.Remove(component.TelegnosisFeedback); + psionic.Amplification -= 0.3f; + psionic.Dampening -= 0.3f; + } + } + + private void OnPowerUsed(EntityUid uid, TelegnosisPowerComponent component, TelegnosisPowerActionEvent args) + { + if (!TryComp(uid, out var psionic)) + return; + + if (HasComp(uid)) + return; + + var projection = Spawn(component.Prototype, Transform(uid).Coordinates); + Transform(projection).AttachToGridOrMap(); + component.OriginalEntity = uid; + component.IsProjecting = true; + component.ProjectionUid = projection; + _mindSwap.Swap(uid, projection); + + if (EnsureComp(projection, out var projectionComponent)) + projectionComponent.OriginalEntity = uid; + + _psionics.LogPowerUsed(uid, "telegnosis", + (int) Math.Round(8f * psionic.Amplification - psionic.Dampening), + (int) Math.Round(12f * psionic.Amplification - psionic.Dampening)); + + args.Handled = true; + } + private void OnMindRemoved(EntityUid uid, TelegnosticProjectionComponent component, MindRemovedMessage args) + { + if (TryComp(component.OriginalEntity, out var originalEntity)) + originalEntity.IsProjecting = false; + + QueueDel(uid); + } + + private void OnDispelled(EntityUid uid, TelegnosisPowerComponent component, DispelledEvent args) + { + if (component.IsProjecting) + _mindSwap.Swap(uid, component.ProjectionUid); + } + + private void OnMobstateChanged(EntityUid uid, TelegnosisPowerComponent component, MobStateChangedEvent args) + { + if (component.IsProjecting && args.NewMobState is MobState.Critical + || component.IsProjecting && args.NewMobState is MobState.Dead) + _mindSwap.Swap(uid, component.ProjectionUid); + } + + private void OnStorageInsertAttempt(EntityUid uid, TelegnosisPowerComponent component, InsertIntoEntityStorageAttemptEvent args) + { + if (component.IsProjecting) + _mindSwap.Swap(uid, component.ProjectionUid); + } + } +} diff --git a/Content.Server/Nyanotrasen/Psionics/AcceptPsionicsEui.cs b/Content.Server/Psionics/AcceptPsionicsEui.cs similarity index 95% rename from Content.Server/Nyanotrasen/Psionics/AcceptPsionicsEui.cs rename to Content.Server/Psionics/AcceptPsionicsEui.cs index 80fd8946f28..7c652664c64 100644 --- a/Content.Server/Nyanotrasen/Psionics/AcceptPsionicsEui.cs +++ b/Content.Server/Psionics/AcceptPsionicsEui.cs @@ -1,7 +1,7 @@ using Content.Shared.Psionics; using Content.Shared.Eui; using Content.Server.EUI; -using Content.Server.Abilities.Psionics; +using Content.Server.Psionics.Abilities; namespace Content.Server.Psionics { diff --git a/Content.Server/Nyanotrasen/Psionics/AntiPsychicWeaponComponent.cs b/Content.Server/Psionics/AntiPsychicWeaponComponent.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/AntiPsychicWeaponComponent.cs rename to Content.Server/Psionics/AntiPsychicWeaponComponent.cs diff --git a/Content.Server/Nyanotrasen/Audio/GlimmerSoundComponent.cs b/Content.Server/Psionics/Audio/GlimmerSoundComponent.cs similarity index 80% rename from Content.Server/Nyanotrasen/Audio/GlimmerSoundComponent.cs rename to Content.Server/Psionics/Audio/GlimmerSoundComponent.cs index 850be3e831c..9a6c62381be 100644 --- a/Content.Server/Nyanotrasen/Audio/GlimmerSoundComponent.cs +++ b/Content.Server/Psionics/Audio/GlimmerSoundComponent.cs @@ -2,12 +2,8 @@ using Content.Shared.Audio; using Content.Shared.Psionics.Glimmer; using Robust.Shared.Audio; -using Robust.Shared.ComponentTrees; -using Robust.Shared.GameStates; -using Robust.Shared.Physics; -using Robust.Shared.Serialization; -namespace Content.Server.Audio +namespace Content.Server.Psionics.Audio { [RegisterComponent] [Access(typeof(SharedAmbientSoundSystem), typeof(GlimmerReactiveSystem))] diff --git a/Content.Server/Nyanotrasen/Psionics/Dreams/DreamSystem.cs b/Content.Server/Psionics/Dreams/DreamSystem.cs similarity index 93% rename from Content.Server/Nyanotrasen/Psionics/Dreams/DreamSystem.cs rename to Content.Server/Psionics/Dreams/DreamSystem.cs index d6067717c94..1731c7a9bf5 100644 --- a/Content.Server/Nyanotrasen/Psionics/Dreams/DreamSystem.cs +++ b/Content.Server/Psionics/Dreams/DreamSystem.cs @@ -1,17 +1,14 @@ using Content.Shared.Dataset; using Content.Shared.Bed.Sleep; -using Content.Server.Chat.Systems; using Content.Server.Chat.Managers; using Robust.Shared.Random; using Robust.Shared.Prototypes; -using Robust.Server.GameObjects; using Robust.Shared.Player; namespace Content.Server.Psionics.Dreams { public sealed class DreamsSystem : EntitySystem { - [Dependency] private readonly ChatSystem _chat = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IChatManager _chatManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerCommands.cs b/Content.Server/Psionics/Glimmer/GlimmerCommands.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerCommands.cs rename to Content.Server/Psionics/Glimmer/GlimmerCommands.cs diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveSystem.cs b/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs similarity index 99% rename from Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveSystem.cs rename to Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs index da3b07d6dab..c0802c8b670 100644 --- a/Content.Server/Nyanotrasen/Psionics/Glimmer/GlimmerReactiveSystem.cs +++ b/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs @@ -1,14 +1,12 @@ -using Content.Server.Audio; +using Content.Server.Psionics.Audio; using Content.Server.Power.Components; using Content.Server.Electrocution; using Content.Server.Lightning; using Content.Server.Explosion.EntitySystems; -using Content.Server.Construction; using Content.Server.Ghost; using Content.Server.Revenant.EntitySystems; using Content.Shared.Audio; using Content.Shared.Construction.EntitySystems; -using Content.Shared.Coordinates.Helpers; using Content.Shared.GameTicking; using Content.Shared.Psionics.Glimmer; using Content.Shared.Verbs; @@ -16,7 +14,6 @@ using Content.Shared.Damage; using Content.Shared.Destructible; using Content.Shared.Construction.Components; -using Content.Shared.Mind; using Content.Shared.Mind.Components; using Content.Shared.Weapons.Melee.Components; using Robust.Shared.Audio; diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs b/Content.Server/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs similarity index 94% rename from Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs rename to Content.Server/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs index f0da85ce453..57c74398b08 100644 --- a/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs +++ b/Content.Server/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs @@ -4,7 +4,6 @@ using Content.Shared.CCVar; using Content.Shared.Psionics.Glimmer; using Content.Shared.GameTicking; -using Content.Server.CartridgeLoader.Cartridges; namespace Content.Server.Psionics.Glimmer { @@ -17,7 +16,6 @@ public sealed class PassiveGlimmerReductionSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; - [Dependency] private readonly GlimmerMonitorCartridgeSystem _cartridgeSys = default!; /// List of glimmer values spaced by minute. public List GlimmerValues = new(); diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs b/Content.Server/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs rename to Content.Server/Psionics/Glimmer/Structures/GlimmerSourceComponent.cs diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs b/Content.Server/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs rename to Content.Server/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs diff --git a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibilitySystem.cs b/Content.Server/Psionics/Invisibility/PsionicInvisibilitySystem.cs similarity index 88% rename from Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibilitySystem.cs rename to Content.Server/Psionics/Invisibility/PsionicInvisibilitySystem.cs index 31e6b89f13d..9583f45fdc9 100644 --- a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibilitySystem.cs +++ b/Content.Server/Psionics/Invisibility/PsionicInvisibilitySystem.cs @@ -1,5 +1,6 @@ -using Content.Shared.Abilities.Psionics; -using Content.Server.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; +using Content.Shared.Psionics; +using Content.Server.Psionics.Abilities; using Content.Shared.Eye; using Content.Server.NPC.Systems; using Robust.Shared.Containers; @@ -20,7 +21,6 @@ public override void Initialize() SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnInsulInit); SubscribeLocalEvent(OnInsulShutdown); - SubscribeLocalEvent(OnEyeInit); /// Layer SubscribeLocalEvent(OnInvisInit); @@ -36,10 +36,16 @@ private void OnInit(EntityUid uid, PotentialPsionicComponent component, Componen SetCanSeePsionicInvisiblity(uid, false); } + /// + /// Being able to see invisible by default is no longer tracked by "Not having Potential Psionic". + /// Anything intended to be immune to invisibility(and mind magic in general) should instead have PsionicInsulation as a built-in component + /// + /// + /// + /// private void OnInsulInit(EntityUid uid, PsionicInsulationComponent component, ComponentInit args) { - if (!HasComp(uid)) - return; + RaiseLocalEvent(uid, new PsionicInsulationEvent()); if (HasComp(uid)) _invisSystem.ToggleInvisibility(uid); @@ -61,9 +67,6 @@ private void OnInsulInit(EntityUid uid, PsionicInsulationComponent component, Co private void OnInsulShutdown(EntityUid uid, PsionicInsulationComponent component, ComponentShutdown args) { - if (!HasComp(uid)) - return; - SetCanSeePsionicInvisiblity(uid, false); if (!HasComp(uid)) @@ -99,10 +102,6 @@ private void OnInvisShutdown(EntityUid uid, PsionicallyInvisibleComponent compon } } - private void OnEyeInit(EntityUid uid, EyeComponent component, ComponentInit args) - { - //SetCanSeePsionicInvisiblity(uid, true); //JJ Comment - Not allowed to modifies .yml on spawn any longer. See UninitializedSaveTest. - } private void OnEntInserted(EntityUid uid, PsionicallyInvisibleComponent component, EntInsertedIntoContainerMessage args) { DirtyEntity(args.Entity); @@ -125,7 +124,7 @@ public void SetCanSeePsionicInvisiblity(EntityUid uid, bool set) { if (EntityManager.TryGetComponent(uid, out EyeComponent? eye)) { - _eye.SetVisibilityMask(uid, eye.VisibilityMask & ~ (int) VisibilityFlags.PsionicInvisibility, eye); + _eye.SetVisibilityMask(uid, eye.VisibilityMask & ~(int) VisibilityFlags.PsionicInvisibility, eye); } } } diff --git a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs similarity index 95% rename from Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs rename to Content.Server/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs index 859ceb7b83a..268deddf6d9 100644 --- a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs +++ b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsComponent.cs @@ -1,5 +1,4 @@ using Content.Shared.Whitelist; -using Robust.Shared.Timing; namespace Content.Server.Psionics { diff --git a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs similarity index 95% rename from Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs rename to Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs index cec755e3260..403e0592617 100644 --- a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs +++ b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs @@ -2,7 +2,6 @@ using Content.Shared.Stealth.Components; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; -using Robust.Shared.Timing; namespace Content.Server.Psionics { @@ -12,7 +11,6 @@ namespace Content.Server.Psionics public sealed class PsionicInvisibleContactsSystem : EntitySystem { [Dependency] private readonly SharedStealthSystem _stealth = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; public override void Initialize() { diff --git a/Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicallyInvisibleComponent.cs b/Content.Server/Psionics/Invisibility/PsionicallyInvisibleComponent.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/Invisibility/PsionicallyInvisibleComponent.cs rename to Content.Server/Psionics/Invisibility/PsionicallyInvisibleComponent.cs diff --git a/Content.Server/Psionics/PotentialPsionicComponent.cs b/Content.Server/Psionics/PotentialPsionicComponent.cs new file mode 100644 index 00000000000..e874296a4c3 --- /dev/null +++ b/Content.Server/Psionics/PotentialPsionicComponent.cs @@ -0,0 +1,21 @@ +namespace Content.Server.Psionics +{ + [RegisterComponent] + public sealed partial class PotentialPsionicComponent : Component + { + /// + /// The base chance of an entity rolling psychic powers, which is increased by other modifiers such as glimmer. + /// + /// + /// I have increased this to 10% up from its original value of 2%, because I estimate that most people won't take the Latent Psychic trait + /// Simply because they might not even know it exists + /// + [DataField("chance")] + public float Chance = 0.10f; + + /// + /// YORO (you only reroll once) + /// + public bool Rerolled = false; + } +} diff --git a/Content.Server/Nyanotrasen/Psionics/PsionicAwaitingPlayerComponent.cs b/Content.Server/Psionics/PsionicAwaitingPlayerComponent.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/PsionicAwaitingPlayerComponent.cs rename to Content.Server/Psionics/PsionicAwaitingPlayerComponent.cs diff --git a/Content.Server/Nyanotrasen/Psionics/PsionicBonusChanceComponent.cs b/Content.Server/Psionics/PsionicBonusChanceComponent.cs similarity index 100% rename from Content.Server/Nyanotrasen/Psionics/PsionicBonusChanceComponent.cs rename to Content.Server/Psionics/PsionicBonusChanceComponent.cs diff --git a/Content.Server/Nyanotrasen/Psionics/PsionicsCommands.cs b/Content.Server/Psionics/PsionicsCommands.cs similarity index 84% rename from Content.Server/Nyanotrasen/Psionics/PsionicsCommands.cs rename to Content.Server/Psionics/PsionicsCommands.cs index 959251d1fb7..3f9ee794b38 100644 --- a/Content.Server/Nyanotrasen/Psionics/PsionicsCommands.cs +++ b/Content.Server/Psionics/PsionicsCommands.cs @@ -1,9 +1,8 @@ using Content.Server.Administration; using Content.Shared.Administration; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Mobs.Components; using Robust.Shared.Console; -using Robust.Server.GameObjects; using Content.Shared.Actions; using Robust.Shared.Player; @@ -19,7 +18,8 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) { SharedActionsSystem actions = default!; var entMan = IoCManager.Resolve(); - foreach (var (actor, mob, psionic, meta) in entMan.EntityQuery()){ + foreach (var (actor, psionic, meta) in entMan.EntityQuery()) + { // filter out xenos, etc, with innate telepathy actions.TryGetActionData( psionic.PsionicAbility, out var actionData ); if (actionData == null || actionData.ToString() == null) diff --git a/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs b/Content.Server/Psionics/PsionicsSystem.cs similarity index 91% rename from Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs rename to Content.Server/Psionics/PsionicsSystem.cs index 5a96af2e96b..bf829477609 100644 --- a/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs +++ b/Content.Server/Psionics/PsionicsSystem.cs @@ -1,19 +1,14 @@ -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.StatusEffect; -using Content.Shared.Mobs; using Content.Shared.Psionics.Glimmer; using Content.Shared.Weapons.Melee.Events; using Content.Shared.Damage.Events; -using Content.Shared.IdentityManagement; using Content.Shared.CCVar; -using Content.Server.Abilities.Psionics; -using Content.Server.Chat.Systems; +using Content.Server.Psionics.Abilities; using Content.Server.Electrocution; using Content.Server.NPC.Components; using Content.Server.NPC.Systems; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; -using Robust.Shared.Player; using Robust.Shared.Configuration; using Robust.Shared.Random; @@ -27,7 +22,6 @@ public sealed class PsionicsSystem : EntitySystem [Dependency] private readonly ElectrocutionSystem _electrocutionSystem = default!; [Dependency] private readonly MindSwapPowerSystem _mindSwapPowerSystem = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; - [Dependency] private readonly ChatSystem _chat = default!; [Dependency] private readonly NpcFactionSystem _npcFactonSystem = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; @@ -54,6 +48,7 @@ public override void Initialize() SubscribeLocalEvent(OnStamHit); SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnRemove); } @@ -87,7 +82,11 @@ private void OnMeleeHit(EntityUid uid, AntiPsionicWeaponComponent component, Mel _electrocutionSystem.TryDoElectrocution(args.User, null, 20, TimeSpan.FromSeconds(5), false); } } - + private void OnStartup(EntityUid uid, PsionicComponent component, MapInitEvent args) + { + component.Amplification = _random.NextFloat(0.3f, 1.1f); + component.Dampening = _random.NextFloat(0.3f, 1.1f); + } private void OnInit(EntityUid uid, PsionicComponent component, ComponentInit args) { if (!component.Removable) @@ -104,7 +103,7 @@ private void OnInit(EntityUid uid, PsionicComponent component, ComponentInit arg private void OnRemove(EntityUid uid, PsionicComponent component, ComponentRemove args) { - if (!TryComp(uid, out var factions)) + if (!HasComp(uid)) return; _npcFactonSystem.RemoveFaction(uid, "PsionicInterloper"); @@ -144,14 +143,14 @@ public void RollPsionics(EntityUid uid, PotentialPsionicComponent component, boo } if (applyGlimmer) - chance += ((float) _glimmerSystem.Glimmer / 1000); + chance += (float) _glimmerSystem.Glimmer / 1000; chance *= multiplier; chance = Math.Clamp(chance, 0, 1); if (_random.Prob(chance)) - _psionicAbilitiesSystem.AddPsionics(uid, warn); + _psionicAbilitiesSystem.AddPsionics(uid); } public void RerollPsionics(EntityUid uid, PotentialPsionicComponent? psionic = null, float bonusMuliplier = 1f) diff --git a/Content.Server/Nyanotrasen/Chat/TSayCommand.cs b/Content.Server/Psionics/Telepathy/TSayCommand.cs similarity index 95% rename from Content.Server/Nyanotrasen/Chat/TSayCommand.cs rename to Content.Server/Psionics/Telepathy/TSayCommand.cs index 9ba27b65d71..8fbaa5e17b2 100644 --- a/Content.Server/Nyanotrasen/Chat/TSayCommand.cs +++ b/Content.Server/Psionics/Telepathy/TSayCommand.cs @@ -1,11 +1,10 @@ using Content.Server.Chat.Systems; using Content.Shared.Administration; -using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.Enums; using Robust.Shared.Player; -namespace Content.Server.Chat.Commands +namespace Content.Server.Psionics.Telepathy { [AnyCommand] internal sealed class TSayCommand : IConsoleCommand diff --git a/Content.Server/Nyanotrasen/Chat/TelepathicRepeaterComponent.cs b/Content.Server/Psionics/Telepathy/TelepathicRepeaterComponent.cs similarity index 82% rename from Content.Server/Nyanotrasen/Chat/TelepathicRepeaterComponent.cs rename to Content.Server/Psionics/Telepathy/TelepathicRepeaterComponent.cs index fc199f4332a..6e194f76c8f 100644 --- a/Content.Server/Nyanotrasen/Chat/TelepathicRepeaterComponent.cs +++ b/Content.Server/Psionics/Telepathy/TelepathicRepeaterComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Server.Nyanotrasen.Chat +namespace Content.Server.Psionics.Telepathy { /// /// Repeats whatever is happening in telepathic chat. diff --git a/Content.Server/Nyanotrasen/Chat/NyanoChatSystem.cs b/Content.Server/Psionics/Telepathy/TelepathyChatSystem.cs similarity index 85% rename from Content.Server/Nyanotrasen/Chat/NyanoChatSystem.cs rename to Content.Server/Psionics/Telepathy/TelepathyChatSystem.cs index 58ed1782741..ad49075e65a 100644 --- a/Content.Server/Nyanotrasen/Chat/NyanoChatSystem.cs +++ b/Content.Server/Psionics/Telepathy/TelepathyChatSystem.cs @@ -2,7 +2,7 @@ using Content.Server.Administration.Managers; using Content.Server.Chat.Managers; using Content.Server.Chat.Systems; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.Bed.Sleep; using Content.Shared.Chat; using Content.Shared.Database; @@ -16,10 +16,10 @@ using System.Linq; using System.Text; -namespace Content.Server.Nyanotrasen.Chat +namespace Content.Server.Psionics.Telepathy { /// - /// Extensions for nyano's chat stuff + /// Extensions for Telepathic Chat /// public sealed class NyanoChatSystem : EntitySystem @@ -47,7 +47,9 @@ private IEnumerable GetAdminClients() private List GetDreamers(IEnumerable removeList) { var filtered = Filter.Empty() - .AddWhereAttachedEntity(entity => HasComp(entity) || HasComp(entity) && !HasComp(entity) && !HasComp(entity)) + .AddWhereAttachedEntity(entity => HasComp(entity) + || HasComp(entity) && !HasComp(entity) && !HasComp(entity) + || HasComp(entity) && !HasComp(entity) && !HasComp(entity)) .Recipients .Select(p => p.ConnectedClient); @@ -61,7 +63,7 @@ private List GetDreamers(IEnumerable removeList) private bool IsEligibleForTelepathy(EntityUid entity) { - return HasComp(entity) + return TryComp(entity, out var psionic) && psionic.Telepath && !HasComp(entity) && !HasComp(entity) && (!TryComp(entity, out var mobstate) || mobstate.CurrentState == MobState.Alive); @@ -92,9 +94,9 @@ public void SendTelepathicChat(EntityUid source, string message, bool hideChat) if (_random.Prob(0.1f)) _glimmerSystem.Glimmer++; - if (_random.Prob(Math.Min(0.33f + ((float) _glimmerSystem.Glimmer / 1500), 1))) + if (_random.Prob(Math.Min(0.33f + (float) _glimmerSystem.Glimmer / 1500, 1))) { - float obfuscation = (0.25f + (float) _glimmerSystem.Glimmer / 2000); + float obfuscation = 0.25f + (float) _glimmerSystem.Glimmer / 2000; var obfuscated = ObfuscateMessageReadability(message, obfuscation); _chatManager.ChatMessageToMany(ChatChannel.Telepathic, obfuscated, messageWrap, source, hideChat, false, GetDreamers(clients), Color.PaleVioletRed); } @@ -111,7 +113,7 @@ private string ObfuscateMessageReadability(string message, float chance) for (var i = 0; i < message.Length; i++) { - if (char.IsWhiteSpace((modifiedMessage[i]))) + if (char.IsWhiteSpace(modifiedMessage[i])) { continue; } diff --git a/Content.Server/Radio/EntitySystems/JammerSystem.cs b/Content.Server/Radio/EntitySystems/JammerSystem.cs index fdf02f94df5..53e0409af06 100644 --- a/Content.Server/Radio/EntitySystems/JammerSystem.cs +++ b/Content.Server/Radio/EntitySystems/JammerSystem.cs @@ -1,8 +1,13 @@ +using Content.Server.DeviceNetwork.Components; +using Content.Server.DeviceNetwork.Systems; +using Content.Server.Medical.CrewMonitoring; using Content.Server.Medical.SuitSensors; using Content.Server.Popups; using Content.Server.Power.EntitySystems; using Content.Server.PowerCell; using Content.Server.Radio.Components; +using Content.Server.Station.Systems; +using Content.Shared.DeviceNetwork.Components; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.PowerCell.Components; @@ -15,6 +20,8 @@ public sealed class JammerSystem : EntitySystem [Dependency] private readonly BatterySystem _battery = default!; [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly StationSystem _stationSystem = default!; + [Dependency] private readonly SingletonDeviceNetServerSystem _singletonServerSystem = default!; public override void Initialize() { @@ -36,6 +43,7 @@ public override void Update(float frameTime) !_battery.TryUseCharge(batteryUid.Value, jam.Wattage * frameTime, battery)) { RemComp(uid); + RemComp(uid); } } } @@ -48,10 +56,19 @@ private void OnActivate(EntityUid uid, RadioJammerComponent comp, ActivateInWorl if (activated) { EnsureComp(uid); + var stationId = _stationSystem.GetOwningStation(uid); + if (stationId != null && _singletonServerSystem.TryGetActiveServerAddress(stationId.Value, out var netId)) + { + EnsureComp(uid, out var jammingComp); + jammingComp.Range = comp.Range; + jammingComp.JammableNetworks.Add(netId); + Dirty(uid, jammingComp); + } } else { RemComp(uid); + RemComp(uid); } var state = Loc.GetString(activated ? "radio-jammer-component-on-state" : "radio-jammer-component-off-state"); var message = Loc.GetString("radio-jammer-component-on-use", ("state", state)); diff --git a/Content.Server/Remotes/DoorRemoteSystem.cs b/Content.Server/Remotes/DoorRemoteSystem.cs index 6403c41addf..d335911901a 100644 --- a/Content.Server/Remotes/DoorRemoteSystem.cs +++ b/Content.Server/Remotes/DoorRemoteSystem.cs @@ -22,6 +22,7 @@ public sealed class DoorRemoteSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly DoorSystem _doorSystem = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly ExamineSystemShared _examine = default!; // I'm so sorry [Dependency] private readonly SharedAirlockSystem _sharedAirlockSystem = default!; public override void Initialize() @@ -67,7 +68,7 @@ private void OnBeforeInteract(EntityUid uid, DoorRemoteComponent component, Befo || !TryComp(args.Target, out var doorComp) // If it isn't a door we don't use it // Only able to control doors if they are within your vision and within your max range. // Not affected by mobs or machines anymore. - || !ExamineSystemShared.InRangeUnOccluded(args.User, args.Target.Value, SharedInteractionSystem.MaxRaycastRange, null)) + || !_examine.InRangeUnOccluded(args.User, args.Target.Value, SharedInteractionSystem.MaxRaycastRange, null)) { return; } diff --git a/Content.Server/Respawn/SpecialRespawnSystem.cs b/Content.Server/Respawn/SpecialRespawnSystem.cs index 51c092be18b..2822c94093f 100644 --- a/Content.Server/Respawn/SpecialRespawnSystem.cs +++ b/Content.Server/Respawn/SpecialRespawnSystem.cs @@ -20,6 +20,7 @@ public sealed class SpecialRespawnSystem : SharedSpecialRespawnSystem [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; [Dependency] private readonly AtmosphereSystem _atmosphere = default!; [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly TurfSystem _turf = default!; [Dependency] private readonly IChatManager _chat = default!; @@ -129,11 +130,11 @@ private void OnTermination(EntityUid uid, SpecialRespawnComponent component, ref private void Respawn(EntityUid oldEntity, string prototype, EntityCoordinates coords) { var entity = Spawn(prototype, coords); - _adminLog.Add(LogType.Respawn, LogImpact.High, $"{ToPrettyString(oldEntity)} was deleted and was respawned at {coords.ToMap(EntityManager)} as {ToPrettyString(entity)}"); + _adminLog.Add(LogType.Respawn, LogImpact.High, $"{ToPrettyString(oldEntity)} was deleted and was respawned at {coords.ToMap(EntityManager, _transform)} as {ToPrettyString(entity)}"); _chat.SendAdminAlert($"{MetaData(oldEntity).EntityName} was deleted and was respawned as {ToPrettyString(entity)}"); } - /// + /// /// Try to find a random safe tile on the supplied grid /// /// The grid that you're looking for a safe tile on diff --git a/Content.Server/Singularity/EntitySystems/EventHorizonSystem.cs b/Content.Server/Singularity/EntitySystems/EventHorizonSystem.cs index 7784db015d3..ba07375699b 100644 --- a/Content.Server/Singularity/EntitySystems/EventHorizonSystem.cs +++ b/Content.Server/Singularity/EntitySystems/EventHorizonSystem.cs @@ -13,7 +13,7 @@ using Robust.Shared.Map.Components; using Robust.Shared.Physics.Events; using Robust.Shared.Timing; -using Content.Shared.Abilities.Psionics; //Nyano - Summary: for the telegnostic projection. +using Content.Shared.Psionics.Abilities; //EE - Summary: for the telegnostic projection. namespace Content.Server.Singularity.EntitySystems; @@ -39,7 +39,7 @@ public override void Initialize() SubscribeLocalEvent(PreventConsume); SubscribeLocalEvent(PreventConsume); - SubscribeLocalEvent(PreventConsume); ///Nyano - Summary: the telegnositic projection has the same trait as ghosts. + SubscribeLocalEvent(PreventConsume); ///EE - Summary: the telegnositic projection has the same trait as ghosts. SubscribeLocalEvent(PreventConsume); SubscribeLocalEvent(OnHorizonMapInit); SubscribeLocalEvent(OnStartCollide); diff --git a/Content.Server/Singularity/EntitySystems/GravityWellSystem.cs b/Content.Server/Singularity/EntitySystems/GravityWellSystem.cs index ce4334391db..f1d0af6f905 100644 --- a/Content.Server/Singularity/EntitySystems/GravityWellSystem.cs +++ b/Content.Server/Singularity/EntitySystems/GravityWellSystem.cs @@ -18,13 +18,13 @@ namespace Content.Server.Singularity.EntitySystems; /// public sealed class GravityWellSystem : SharedGravityWellSystem { -#region Dependencies + #region Dependencies [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IViewVariablesManager _vvManager = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; -#endregion Dependencies + #endregion Dependencies /// /// The minimum range at which gravpulses will act. @@ -155,7 +155,7 @@ public void GravPulse(EntityUid uid, float maxRange, float minRange, float baseR /// The minimum distance at which entities can be affected by the gravity pulse. /// The base velocity added to any entities within affected by the gravity pulse scaled by the displacement of those entities from the epicenter. public void GravPulse(EntityCoordinates entityPos, float maxRange, float minRange, in Matrix3 baseMatrixDeltaV) - => GravPulse(entityPos.ToMap(EntityManager), maxRange, minRange, in baseMatrixDeltaV); + => GravPulse(entityPos.ToMap(EntityManager, _transform), maxRange, minRange, in baseMatrixDeltaV); /// /// Greates a gravitational pulse, shoving around all entities within some distance of an epicenter. @@ -166,7 +166,7 @@ public void GravPulse(EntityCoordinates entityPos, float maxRange, float minRang /// The base radial velocity that will be added to entities within range towards the center of the gravitational pulse. /// The base tangential velocity that will be added to entities within countrclockwise around the center of the gravitational pulse. public void GravPulse(EntityCoordinates entityPos, float maxRange, float minRange, float baseRadialDeltaV = 0.0f, float baseTangentialDeltaV = 0.0f) - => GravPulse(entityPos.ToMap(EntityManager), maxRange, minRange, baseRadialDeltaV, baseTangentialDeltaV); + => GravPulse(entityPos.ToMap(EntityManager, _transform), maxRange, minRange, baseRadialDeltaV, baseTangentialDeltaV); /// /// Causes a gravitational pulse, shoving around all entities within some distance of an epicenter. diff --git a/Content.Server/Singularity/EntitySystems/SingularityAttractorSystem.cs b/Content.Server/Singularity/EntitySystems/SingularityAttractorSystem.cs index 3c44a7fc7af..bc0de7c8c64 100644 --- a/Content.Server/Singularity/EntitySystems/SingularityAttractorSystem.cs +++ b/Content.Server/Singularity/EntitySystems/SingularityAttractorSystem.cs @@ -2,12 +2,7 @@ using Content.Server.Power.EntitySystems; using Content.Server.Singularity.Components; using Content.Shared.Singularity.Components; -using Content.Shared.Singularity.EntitySystems; using Robust.Shared.Map; -using Robust.Shared.Map.Components; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Components; -using Robust.Shared.Physics.Systems; using Robust.Shared.Timing; using System.Numerics; @@ -18,8 +13,8 @@ namespace Content.Server.Singularity.EntitySystems; /// public sealed class SingularityAttractorSystem : EntitySystem { - [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; /// /// The minimum range at which the attraction will act. @@ -69,7 +64,7 @@ private void Update(EntityUid uid, SingularityAttractorComponent? attractor = nu attractor.LastPulseTime = _timing.CurTime; - var mapPos = xform.Coordinates.ToMap(EntityManager); + var mapPos = xform.Coordinates.ToMap(EntityManager, _transform); if (mapPos == MapCoordinates.Nullspace) return; @@ -77,7 +72,7 @@ private void Update(EntityUid uid, SingularityAttractorComponent? attractor = nu var query = EntityQuery(); foreach (var (singulo, walk, singuloXform) in query) { - var singuloMapPos = singuloXform.Coordinates.ToMap(EntityManager); + var singuloMapPos = singuloXform.Coordinates.ToMap(EntityManager, _transform); if (singuloMapPos.MapId != mapPos.MapId) continue; diff --git a/Content.Server/Storage/EntitySystems/BluespaceLockerSystem.cs b/Content.Server/Storage/EntitySystems/BluespaceLockerSystem.cs index 9995ed40c12..356768769bb 100644 --- a/Content.Server/Storage/EntitySystems/BluespaceLockerSystem.cs +++ b/Content.Server/Storage/EntitySystems/BluespaceLockerSystem.cs @@ -26,6 +26,7 @@ public sealed class BluespaceLockerSystem : EntitySystem [Dependency] private readonly WeldableSystem _weldableSystem = default!; [Dependency] private readonly LockSystem _lockSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly ExplosionSystem _explosionSystem = default!; public override void Initialize() @@ -386,7 +387,7 @@ private void DestroyAfterLimit(EntityUid uid, BluespaceLockerComponent component switch (component.BehaviorProperties.DestroyType) { case BluespaceLockerDestroyType.Explode: - _explosionSystem.QueueExplosion(uid.ToCoordinates().ToMap(EntityManager), + _explosionSystem.QueueExplosion(uid.ToCoordinates().ToMap(EntityManager, _transformSystem), ExplosionSystem.DefaultExplosionPrototypeId, 4, 1, 2, maxTileBreak: 0); goto case BluespaceLockerDestroyType.Delete; case BluespaceLockerDestroyType.Delete: diff --git a/Content.Server/Store/Systems/StoreSystem.Ui.cs b/Content.Server/Store/Systems/StoreSystem.Ui.cs index 281d8f57267..49db980451e 100644 --- a/Content.Server/Store/Systems/StoreSystem.Ui.cs +++ b/Content.Server/Store/Systems/StoreSystem.Ui.cs @@ -5,6 +5,7 @@ using Content.Server.Stack; using Content.Server.Store.Components; using Content.Shared.Actions; +using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.FixedPoint; using Content.Shared.Hands.EntitySystems; @@ -248,10 +249,12 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi HandleRefundComp(uid, component, upgradeActionId.Value); } - //broadcast event if (listing.ProductEvent != null) { - RaiseLocalEvent(listing.ProductEvent); + if (!listing.RaiseProductEventOnUser) + RaiseLocalEvent(listing.ProductEvent); + else + RaiseLocalEvent(buyer, listing.ProductEvent); } //log dat shit. @@ -321,6 +324,8 @@ private void OnRequestRefund(EntityUid uid, StoreComponent component, StoreReque if (!component.RefundAllowed || component.BoughtEntities.Count == 0) return; + _admin.Add(LogType.StoreRefund, LogImpact.Low, $"{ToPrettyString(buyer):player} has refunded their purchases from {ToPrettyString(uid):store}"); + for (var i = component.BoughtEntities.Count - 1; i >= 0; i--) { var purchase = component.BoughtEntities[i]; diff --git a/Content.Server/Tabletop/TabletopSystem.Session.cs b/Content.Server/Tabletop/TabletopSystem.Session.cs index f16f3f01e98..c2bb8426fc2 100644 --- a/Content.Server/Tabletop/TabletopSystem.Session.cs +++ b/Content.Server/Tabletop/TabletopSystem.Session.cs @@ -31,7 +31,7 @@ public TabletopSession EnsureSession(TabletopGameComponent tabletop) // Since this is the first time opening this session, set up the game tabletop.Setup.SetupTabletop(session, EntityManager); - Logger.Info($"Created tabletop session number {tabletop} at position {session.Position}."); + Log.Info($"Created tabletop session number {tabletop} at position {session.Position}."); return session; } diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index aef4b89d509..aca902b9d38 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -163,8 +163,9 @@ public float GetHeatCapacity(EntityUid uid, TemperatureComponent? comp = null, P { return Atmospherics.MinimumHeatCapacity; } - - return comp.SpecificHeat * physics.FixturesMass; + if (physics.Mass < 1) + return comp.SpecificHeat; + else return comp.SpecificHeat * physics.FixturesMass; } private void OnInit(EntityUid uid, InternalTemperatureComponent comp, MapInitEvent args) diff --git a/Content.Server/Wires/WireLayout.cs b/Content.Server/Wires/WireLayout.cs index ecafba013e0..621992c915a 100644 --- a/Content.Server/Wires/WireLayout.cs +++ b/Content.Server/Wires/WireLayout.cs @@ -28,11 +28,13 @@ public sealed partial class WireLayoutPrototype : IPrototype, IInheritingPrototy /// initialization) /// [DataField("dummyWires")] + [NeverPushInheritance] public int DummyWires { get; private set; } = default!; /// /// All the valid IWireActions currently in this layout. /// [DataField("wires")] + [NeverPushInheritance] public List? Wires { get; private set; } } diff --git a/Content.Server/Worldgen/Systems/Carvers/NoiseRangeCarverSystem.cs b/Content.Server/Worldgen/Systems/Carvers/NoiseRangeCarverSystem.cs index aed32bc89c3..f2e051669a2 100644 --- a/Content.Server/Worldgen/Systems/Carvers/NoiseRangeCarverSystem.cs +++ b/Content.Server/Worldgen/Systems/Carvers/NoiseRangeCarverSystem.cs @@ -9,6 +9,7 @@ namespace Content.Server.Worldgen.Systems.Carvers; public sealed class NoiseRangeCarverSystem : EntitySystem { [Dependency] private readonly NoiseIndexSystem _index = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; /// public override void Initialize() @@ -19,7 +20,7 @@ public override void Initialize() private void OnPrePlaceDebris(EntityUid uid, NoiseRangeCarverComponent component, ref PrePlaceDebrisFeatureEvent args) { - var coords = WorldGen.WorldToChunkCoords(args.Coords.ToMapPos(EntityManager)); + var coords = WorldGen.WorldToChunkCoords(args.Coords.ToMapPos(EntityManager, _transform)); var val = _index.Evaluate(uid, component.NoiseChannel, coords); foreach (var (low, high) in component.Ranges) diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index daadd4b518b..53128aade31 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -16,7 +16,7 @@ using Content.Server.Roles; using Content.Server.Speech.Components; using Content.Server.Temperature.Components; -using Content.Shared.Abilities.Psionics; +using Content.Shared.Psionics.Abilities; using Content.Shared.CombatMode; using Content.Shared.CombatMode.Pacification; using Content.Shared.Damage; @@ -59,9 +59,7 @@ public sealed partial class ZombieSystem [Dependency] private readonly IChatManager _chatMan = default!; [Dependency] private readonly MindSystem _mind = default!; [Dependency] private readonly SharedRoleSystem _roles = default!; - [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly ActionsSystem _actions = default!; // DeltaV - No psionic zombies /// /// Handles an entity turning into a zombie when they die or go into crit diff --git a/Content.Shared.Database/LogType.cs b/Content.Shared.Database/LogType.cs index 70a6119130e..ba94b0f3738 100644 --- a/Content.Shared.Database/LogType.cs +++ b/Content.Shared.Database/LogType.cs @@ -98,4 +98,5 @@ public enum LogType ChatRateLimited = 87, AtmosTemperatureChanged = 88, DeviceNetwork = 89, + StoreRefund = 90 } diff --git a/Content.Shared/Anomaly/SharedAnomalySystem.cs b/Content.Shared/Anomaly/SharedAnomalySystem.cs index a3bb1e14679..c335cd7b858 100644 --- a/Content.Shared/Anomaly/SharedAnomalySystem.cs +++ b/Content.Shared/Anomaly/SharedAnomalySystem.cs @@ -129,7 +129,7 @@ public void StartSupercriticalEvent(EntityUid uid) if (HasComp(uid)) return; - AdminLog.Add(LogType.Anomaly, LogImpact.High, $"Anomaly {ToPrettyString(uid)} began to go supercritical."); + AdminLog.Add(LogType.Anomaly, LogImpact.Extreme, $"Anomaly {ToPrettyString(uid)} began to go supercritical."); if (_net.IsServer) Log.Info($"Anomaly is going supercritical. Entity: {ToPrettyString(uid)}"); diff --git a/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs b/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs index 136c1955025..979bbf77ba6 100644 --- a/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs +++ b/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs @@ -20,7 +20,8 @@ public readonly record struct AtmosDebugOverlayData( int? InExcitedGroup, bool IsSpace, bool MapAtmosphere, - bool NoGrid); + bool NoGrid, + bool Immutable); /// /// Invalid tiles for the gas overlay. diff --git a/Content.Shared/Audio/SharedAmbientSoundSystem.cs b/Content.Shared/Audio/SharedAmbientSoundSystem.cs index 6318ba25573..5f17261825c 100644 --- a/Content.Shared/Audio/SharedAmbientSoundSystem.cs +++ b/Content.Shared/Audio/SharedAmbientSoundSystem.cs @@ -5,16 +5,19 @@ namespace Content.Shared.Audio; public abstract class SharedAmbientSoundSystem : EntitySystem { + private EntityQuery _query; + public override void Initialize() { base.Initialize(); SubscribeLocalEvent(GetCompState); SubscribeLocalEvent(HandleCompState); + _query = GetEntityQuery(); } public virtual void SetAmbience(EntityUid uid, bool value, AmbientSoundComponent? ambience = null) { - if (!Resolve(uid, ref ambience, false) || ambience.Enabled == value) + if (!_query.Resolve(uid, ref ambience, false) || ambience.Enabled == value) return; ambience.Enabled = value; @@ -24,7 +27,7 @@ public virtual void SetAmbience(EntityUid uid, bool value, AmbientSoundComponent public virtual void SetRange(EntityUid uid, float value, AmbientSoundComponent? ambience = null) { - if (!Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Range, value)) + if (!_query.Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Range, value)) return; ambience.Range = value; @@ -39,7 +42,7 @@ protected virtual void QueueUpdate(EntityUid uid, AmbientSoundComponent ambience public virtual void SetVolume(EntityUid uid, float value, AmbientSoundComponent? ambience = null) { - if (!Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Volume, value)) + if (!_query.Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Volume, value)) return; ambience.Volume = value; @@ -48,7 +51,7 @@ public virtual void SetVolume(EntityUid uid, float value, AmbientSoundComponent? public virtual void SetSound(EntityUid uid, SoundSpecifier sound, AmbientSoundComponent? ambience = null) { - if (!Resolve(uid, ref ambience, false) || ambience.Sound == sound) + if (!_query.Resolve(uid, ref ambience, false) || ambience.Sound == sound) return; ambience.Sound = sound; diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index ff4e89c4b5a..5a8926114ff 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1089,7 +1089,7 @@ public static readonly CVarDef /// Useful to prevent clipping through objects. /// public static readonly CVarDef SpaceWindMaxVelocity = - CVarDef.Create("atmos.space_wind_max_velocity", 30f, CVar.SERVERONLY); + CVarDef.Create("atmos.space_wind_max_velocity", 25f, CVar.SERVERONLY); /// /// The maximum force that may be applied to an object by pushing (i.e. not throwing) atmospheric pressure differences. @@ -1098,6 +1098,25 @@ public static readonly CVarDef public static readonly CVarDef SpaceWindMaxPushForce = CVarDef.Create("atmos.space_wind_max_push_force", 20f, CVar.SERVERONLY); + /// + /// If an object's mass is below this number, then this number is used in place of mass to determine whether air pressure can throw an object. + /// This has nothing to do with throwing force, only acting as a way of reducing the odds of tiny 5 gram objects from being yeeted by people's breath + /// + /// + /// If you are reading this because you want to change it, consider looking into why almost every item in the game weighs only 5 grams + /// And maybe do your part to fix that? :) + /// + public static readonly CVarDef SpaceWindMinimumCalculatedMass = + CVarDef.Create("atmos.space_wind_minimum_calculated_mass", 6f, CVar.SERVERONLY); + + /// + /// Calculated as 1/Mass, where Mass is the physics.Mass of the desired threshold. + /// If an object's inverse mass is lower than this, it is capped at this. Basically, an upper limit to how heavy an object can be + /// before it stops resisting space wind more. + /// + public static readonly CVarDef SpaceWindMaximumCalculatedInverseMass = + CVarDef.Create("atmos.space_wind_maximum_calculated_inverse_mass", 0.04f, CVar.SERVERONLY); + /// /// Whether monstermos tile equalization is enabled. /// @@ -1150,6 +1169,13 @@ public static readonly CVarDef public static readonly CVarDef AtmosSpacingMaxWind = CVarDef.Create("atmos.mmos_max_wind", 500f, CVar.SERVERONLY); + /// + /// Increases default airflow calculations to O(n^2) complexity, for use with heavy space wind optimizations. Potato servers BEWARE + /// This solves the problem of objects being trapped in an infinite loop of slamming into a wall repeatedly. + /// + public static readonly CVarDef MonstermosUseExpensiveAirflow = + CVarDef.Create("atmos.mmos_expensive_airflow", true, CVar.SERVERONLY); + /// /// Whether atmos superconduction is enabled. /// diff --git a/Content.Shared/Chemistry/Components/InjectorComponent.cs b/Content.Shared/Chemistry/Components/InjectorComponent.cs index 188028c8f8f..437c5e327d2 100644 --- a/Content.Shared/Chemistry/Components/InjectorComponent.cs +++ b/Content.Shared/Chemistry/Components/InjectorComponent.cs @@ -30,7 +30,7 @@ public sealed partial class InjectorComponent : Component /// Whether or not the injector is able to draw from containers or if it's a single use /// device that can only inject. /// - [DataField("injectOnly")] + [DataField] public bool InjectOnly; /// @@ -39,28 +39,26 @@ public sealed partial class InjectorComponent : Component /// /// for example: droppers would ignore mobs /// - [DataField("ignoreMobs")] + [DataField] public bool IgnoreMobs; /// /// The minimum amount of solution that can be transferred at once from this solution. /// [DataField("minTransferAmount")] - [ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 MinimumTransferAmount = FixedPoint2.New(5); /// /// The maximum amount of solution that can be transferred at once from this solution. /// [DataField("maxTransferAmount")] - public FixedPoint2 MaximumTransferAmount = FixedPoint2.New(15); + public FixedPoint2 MaximumTransferAmount = FixedPoint2.New(50); /// /// Amount to inject or draw on each usage. If the injector is inject only, it will /// attempt to inject it's entire contents upon use. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("transferAmount")] + [DataField] [AutoNetworkedField] public FixedPoint2 TransferAmount = FixedPoint2.New(5); @@ -71,8 +69,7 @@ public sealed partial class InjectorComponent : Component /// The base delay has a minimum of 1 second, but this will still be modified if the target is incapacitated or /// in combat mode. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("delay")] + [DataField] public TimeSpan Delay = TimeSpan.FromSeconds(5); /// @@ -80,7 +77,6 @@ public sealed partial class InjectorComponent : Component /// right SolutionCaps to support injection/drawing. For InjectOnly injectors this should /// only ever be set to Inject /// - [ViewVariables(VVAccess.ReadWrite)] [AutoNetworkedField] [DataField] public InjectorToggleMode ToggleState = InjectorToggleMode.Draw; diff --git a/Content.Shared/Construction/Conditions/WallmountCondition.cs b/Content.Shared/Construction/Conditions/WallmountCondition.cs index bf3016d4974..fe4336e6fc7 100644 --- a/Content.Shared/Construction/Conditions/WallmountCondition.cs +++ b/Content.Shared/Construction/Conditions/WallmountCondition.cs @@ -19,8 +19,9 @@ public bool Condition(EntityUid user, EntityCoordinates location, Direction dire var entManager = IoCManager.Resolve(); // get blueprint and user position + var transformSystem = entManager.System(); var userWorldPosition = entManager.GetComponent(user).WorldPosition; - var objWorldPosition = location.ToMap(entManager).Position; + var objWorldPosition = location.ToMap(entManager, transformSystem).Position; // find direction from user to blueprint var userToObject = (objWorldPosition - userWorldPosition); diff --git a/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs b/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs new file mode 100644 index 00000000000..75de0cb8a25 --- /dev/null +++ b/Content.Shared/DeviceNetwork/Components/DeviceNetworkJammerComponent.cs @@ -0,0 +1,24 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeviceNetwork.Components; + +/// +/// Allow entities to jam DeviceNetwork packets. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class DeviceNetworkJammerComponent : Component +{ + /// + /// Range where packets will be jammed. This is checked both against the sender and receiver. + /// + [DataField, AutoNetworkedField] + public float Range = 5.0f; + + /// + /// Device networks that can be jammed. For a list of default NetworkIds see DeviceNetIdDefaults on Content.Server. + /// Network ids are not guaranteed to be limited to DeviceNetIdDefaults. + /// + [DataField, AutoNetworkedField] + public HashSet JammableNetworks = []; + +} diff --git a/Content.Shared/Examine/ExamineSystemShared.cs b/Content.Shared/Examine/ExamineSystemShared.cs index 5a3fb872293..f792862be14 100644 --- a/Content.Shared/Examine/ExamineSystemShared.cs +++ b/Content.Shared/Examine/ExamineSystemShared.cs @@ -144,7 +144,7 @@ public bool IsOccluded(EntityUid uid) return TryComp(uid, out var eye) && eye.DrawFov; } - public static bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates other, float range, Ignored? predicate, bool ignoreInsideBlocker = true, IEntityManager? entMan = null) + public bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates other, float range, Ignored? predicate, bool ignoreInsideBlocker = true, IEntityManager? entMan = null) { // No, rider. This is better. // ReSharper disable once ConvertToLocalFunction @@ -154,7 +154,7 @@ public static bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates other return InRangeUnOccluded(origin, other, range, predicate, wrapped, ignoreInsideBlocker, entMan); } - public static bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates other, float range, + public bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates other, float range, TState state, Func predicate, bool ignoreInsideBlocker = true, IEntityManager? entMan = null) { if (other.MapId != origin.MapId || @@ -171,7 +171,7 @@ public static bool InRangeUnOccluded(MapCoordinates origin, MapCoordinat if (length > MaxRaycastRange) { - Logger.Warning("InRangeUnOccluded check performed over extreme range. Limiting CollisionRay size."); + Log.Warning("InRangeUnOccluded check performed over extreme range. Limiting CollisionRay size."); length = MaxRaycastRange; } @@ -207,7 +207,7 @@ public static bool InRangeUnOccluded(MapCoordinates origin, MapCoordinat return true; } - public static bool InRangeUnOccluded(EntityUid origin, EntityUid other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) + public bool InRangeUnOccluded(EntityUid origin, EntityUid other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); var originPos = entMan.GetComponent(origin).MapPosition; @@ -216,7 +216,7 @@ public static bool InRangeUnOccluded(EntityUid origin, EntityUid other, float ra return InRangeUnOccluded(originPos, otherPos, range, predicate, ignoreInsideBlocker); } - public static bool InRangeUnOccluded(EntityUid origin, EntityCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) + public bool InRangeUnOccluded(EntityUid origin, EntityCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); var originPos = entMan.GetComponent(origin).MapPosition; @@ -225,7 +225,7 @@ public static bool InRangeUnOccluded(EntityUid origin, EntityCoordinates other, return InRangeUnOccluded(originPos, otherPos, range, predicate, ignoreInsideBlocker); } - public static bool InRangeUnOccluded(EntityUid origin, MapCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) + public bool InRangeUnOccluded(EntityUid origin, MapCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); var originPos = entMan.GetComponent(origin).MapPosition; diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Pickup.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Pickup.cs index bbae03e45b3..20e08b2767d 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Pickup.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Pickup.cs @@ -114,7 +114,7 @@ public bool TryPickup( && (itemPos.Position - xform.MapPosition.Position).Length() <= MaxAnimationRange && MetaData(entity).VisibilityMask == MetaData(uid).VisibilityMask) // Don't animate aghost pickups. { - var initialPosition = EntityCoordinates.FromMap(coordinateEntity, itemPos, EntityManager); + var initialPosition = EntityCoordinates.FromMap(coordinateEntity, itemPos, TransformSystem, EntityManager); _storage.PlayPickupAnimation(entity, initialPosition, xform.Coordinates, itemXform.LocalRotation, uid); } } diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index 7d5e390b6f0..0e390ecea45 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -459,7 +459,7 @@ protected bool ValidateInteractAndFace(EntityUid user, EntityCoordinates coordin return false; if (!HasComp(user)) - _rotateToFaceSystem.TryFaceCoordinates(user, coordinates.ToMapPos(EntityManager)); + _rotateToFaceSystem.TryFaceCoordinates(user, coordinates.ToMapPos(EntityManager, _transform)); return true; } @@ -612,7 +612,7 @@ public bool InRangeUnobstructed( Ignored combinedPredicate = e => e == origin || (predicate?.Invoke(e) ?? false); var inRange = true; MapCoordinates originPos = default; - var targetPos = otherCoordinates.ToMap(EntityManager); + var targetPos = otherCoordinates.ToMap(EntityManager, _transform); Angle targetRot = default; // So essentially: @@ -785,7 +785,7 @@ public bool InRangeUnobstructed( Ignored? predicate = null, bool popup = false) { - return InRangeUnobstructed(origin, other.ToMap(EntityManager), range, collisionMask, predicate, popup); + return InRangeUnobstructed(origin, other.ToMap(EntityManager, _transform), range, collisionMask, predicate, popup); } /// diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerComponent.cs b/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerComponent.cs deleted file mode 100644 index 7d611c63dac..00000000000 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerComponent.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Content.Shared.Actions; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Shared.Abilities.Psionics -{ - [RegisterComponent] - public sealed partial class MassSleepPowerComponent : Component - { - public float Radius = 1.25f; - [DataField("massSleepActionId", - customTypeSerializer: typeof(PrototypeIdSerializer))] - public string? MassSleepActionId = "ActionMassSleep"; - - [DataField("massSleepActionEntity")] - public EntityUid? MassSleepActionEntity; - } -} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerSystem.cs b/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerSystem.cs deleted file mode 100644 index e36a3c70e8a..00000000000 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MassSleep/MassSleepPowerSystem.cs +++ /dev/null @@ -1,59 +0,0 @@ -using Content.Shared.Actions; -using Content.Shared.Bed.Sleep; -using Content.Shared.Magic.Events; -using Content.Shared.Damage; -using Content.Shared.Mobs.Components; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; -using Content.Shared.Mind; -using Content.Shared.Actions.Events; - -namespace Content.Shared.Abilities.Psionics -{ - public sealed class MassSleepPowerSystem : EntitySystem - { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly SharedActionsSystem _actions = default!; - [Dependency] private readonly EntityLookupSystem _lookup = default!; - [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly SharedMindSystem _mindSystem = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnPowerUsed); - } - - private void OnInit(EntityUid uid, MassSleepPowerComponent component, ComponentInit args) - { - _actions.AddAction(uid, ref component.MassSleepActionEntity, component.MassSleepActionId ); - _actions.TryGetActionData( component.MassSleepActionEntity, out var actionData ); - if (actionData is { UseDelay: not null }) - _actions.StartUseDelay(component.MassSleepActionEntity); - if (TryComp(uid, out var psionic) && psionic.PsionicAbility == null) - psionic.PsionicAbility = component.MassSleepActionEntity; - } - - private void OnShutdown(EntityUid uid, MassSleepPowerComponent component, ComponentShutdown args) - { - _actions.RemoveAction(uid, component.MassSleepActionEntity); - } - - private void OnPowerUsed(EntityUid uid, MassSleepPowerComponent component, MassSleepPowerActionEvent args) - { - foreach (var entity in _lookup.GetEntitiesInRange(args.Target, component.Radius)) - { - if (HasComp(entity) && entity != uid && !HasComp(entity)) - { - if (TryComp(entity, out var damageable) && damageable.DamageContainerID == "Biological") - EnsureComp(entity); - } - } - _psionics.LogPowerUsed(uid, "mass sleep"); - args.Handled = true; - } - } -} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs b/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs deleted file mode 100644 index c9d0130221a..00000000000 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Content.Shared.Actions; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; - -namespace Content.Shared.Abilities.Psionics -{ - [RegisterComponent] - public sealed partial class MetapsionicPowerComponent : Component - { - [DataField("range")] - public float Range = 5f; - - public InstantActionComponent? MetapsionicPowerAction = null; - [DataField("metapsionicActionId", - customTypeSerializer: typeof(PrototypeIdSerializer))] - public string? MetapsionicActionId = "ActionMetapsionic"; - - [DataField("metapsionicActionEntity")] - public EntityUid? MetapsionicActionEntity; - } -} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs b/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs deleted file mode 100644 index 9d627cb42d8..00000000000 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Content.Shared.Abilities.Psionics -{ - [RegisterComponent] - public sealed partial class TelegnosticProjectionComponent : Component - {} -} \ No newline at end of file diff --git a/Content.Shared/Nyanotrasen/Actions/Events/MassSleepPowerActionEvent.cs b/Content.Shared/Nyanotrasen/Actions/Events/MassSleepPowerActionEvent.cs deleted file mode 100644 index 6666ee48d6c..00000000000 --- a/Content.Shared/Nyanotrasen/Actions/Events/MassSleepPowerActionEvent.cs +++ /dev/null @@ -1,2 +0,0 @@ -namespace Content.Shared.Actions.Events; -public sealed partial class MassSleepPowerActionEvent : WorldTargetActionEvent {} diff --git a/Content.Shared/Nyanotrasen/Actions/Events/MetapsionicPowerActionEvent.cs b/Content.Shared/Nyanotrasen/Actions/Events/MetapsionicPowerActionEvent.cs index b28801efe74..b7c3c8ad2d6 100644 --- a/Content.Shared/Nyanotrasen/Actions/Events/MetapsionicPowerActionEvent.cs +++ b/Content.Shared/Nyanotrasen/Actions/Events/MetapsionicPowerActionEvent.cs @@ -1,2 +1,3 @@ namespace Content.Shared.Actions.Events; -public sealed partial class MetapsionicPowerActionEvent : InstantActionEvent {} +public sealed partial class WideMetapsionicPowerActionEvent : InstantActionEvent { } +public sealed partial class FocusedMetapsionicPowerActionEvent : EntityTargetActionEvent { } diff --git a/Content.Shared/Nyanotrasen/Actions/Events/PyrokinesisPowerActionEvent.cs b/Content.Shared/Nyanotrasen/Actions/Events/PyrokinesisPowerActionEvent.cs index 896ec0bb63d..4639aadd55b 100644 --- a/Content.Shared/Nyanotrasen/Actions/Events/PyrokinesisPowerActionEvent.cs +++ b/Content.Shared/Nyanotrasen/Actions/Events/PyrokinesisPowerActionEvent.cs @@ -1,2 +1,4 @@ namespace Content.Shared.Actions.Events; -public sealed partial class PyrokinesisPowerActionEvent : EntityTargetActionEvent {} +public sealed partial class PyrokinesisPowerActionEvent : WorldTargetActionEvent {} + + diff --git a/Content.Shared/Nyanotrasen/Actions/Events/RegenerativeStasisPowerActionEvent.cs b/Content.Shared/Nyanotrasen/Actions/Events/RegenerativeStasisPowerActionEvent.cs new file mode 100644 index 00000000000..4435f475a44 --- /dev/null +++ b/Content.Shared/Nyanotrasen/Actions/Events/RegenerativeStasisPowerActionEvent.cs @@ -0,0 +1,2 @@ +namespace Content.Shared.Actions.Events; +public sealed partial class RegenerativeStasisPowerActionEvent : EntityTargetActionEvent {} diff --git a/Content.Shared/Nyanotrasen/Psionics/Events.cs b/Content.Shared/Nyanotrasen/Psionics/Events.cs deleted file mode 100644 index cf9a50c6e18..00000000000 --- a/Content.Shared/Nyanotrasen/Psionics/Events.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Robust.Shared.Serialization; -using Content.Shared.DoAfter; - -namespace Content.Shared.Psionics.Events -{ - [Serializable, NetSerializable] - public sealed partial class PsionicRegenerationDoAfterEvent : DoAfterEvent - { - [DataField("startedAt", required: true)] - public TimeSpan StartedAt; - - private PsionicRegenerationDoAfterEvent() - { - } - - public PsionicRegenerationDoAfterEvent(TimeSpan startedAt) - { - StartedAt = startedAt; - } - - public override DoAfterEvent Clone() => this; - } - - [Serializable, NetSerializable] - public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent - { - } -} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/AcceptPsionicsEuiMessage.cs b/Content.Shared/Psionics/Abilities/AcceptPsionicsEuiMessage.cs similarity index 100% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/AcceptPsionicsEuiMessage.cs rename to Content.Shared/Psionics/Abilities/AcceptPsionicsEuiMessage.cs diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs b/Content.Shared/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs similarity index 77% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs rename to Content.Shared/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs index ce86111fc4b..c3702880375 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs +++ b/Content.Shared/Psionics/Abilities/Dispel/DamageOnDispelComponent.cs @@ -1,6 +1,6 @@ using Content.Shared.Damage; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { /// /// Takes damage when dispelled. @@ -9,7 +9,7 @@ namespace Content.Shared.Abilities.Psionics public sealed partial class DamageOnDispelComponent : Component { [DataField("damage", required: true)] - public DamageSpecifier Damage = default!; + public DamageSpecifier Damage = default!; [DataField("variance")] public float Variance = 0.5f; diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispelPowerComponent.cs b/Content.Shared/Psionics/Abilities/Dispel/DispelPowerComponent.cs similarity index 79% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispelPowerComponent.cs rename to Content.Shared/Psionics/Abilities/Dispel/DispelPowerComponent.cs index cd887866364..518a28b0967 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispelPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/Dispel/DispelPowerComponent.cs @@ -1,20 +1,22 @@ -using Content.Shared.Actions; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class DispelPowerComponent : Component { [DataField("range")] public float Range = 10f; - + [DataField("dispelActionId", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? DispelActionId = "ActionDispel"; [DataField("dispelActionEntity")] public EntityUid? DispelActionEntity; + + [DataField("dispelFeedback")] + public string DispelFeedback = "dispel-feedback"; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispellableComponent.cs b/Content.Shared/Psionics/Abilities/Dispel/DispellableComponent.cs similarity index 69% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispellableComponent.cs rename to Content.Shared/Psionics/Abilities/Dispel/DispellableComponent.cs index 40352004187..4bb5ee653d2 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Dispel/DispellableComponent.cs +++ b/Content.Shared/Psionics/Abilities/Dispel/DispellableComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class DispellableComponent : Component diff --git a/Content.Shared/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs b/Content.Shared/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs new file mode 100644 index 00000000000..2fbfe18327e --- /dev/null +++ b/Content.Shared/Psionics/Abilities/Metapsionics/MetapsionicPowerComponent.cs @@ -0,0 +1,38 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Psionics.Abilities +{ + [RegisterComponent] + public sealed partial class MetapsionicPowerComponent : Component + { + [DataField("doAfter")] + public DoAfterId? DoAfter; + + [DataField("useDelay")] + public float UseDelay = 8f; + [DataField("soundUse")] + + public SoundSpecifier SoundUse = new SoundPathSpecifier("/Audio/Nyanotrasen/heartbeat_fast.ogg"); + + [DataField("range")] + public float Range = 5f; + + [DataField("actionWideMetapsionic", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ActionWideMetapsionic = "ActionWideMetapsionic"; + + [DataField("actionWideMetapsionicEntity")] + public EntityUid? ActionWideMetapsionicEntity; + + [DataField("actionFocusedMetapsionic", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ActionFocusedMetapsionic = "ActionFocusedMetapsionic"; + + [DataField("actionFocusedMetapsionicEntity")] + public EntityUid? ActionFocusedMetapsionicEntity; + + [DataField("metapsionicFeedback")] + public string MetapsionicFeedback = "metapsionic-feedback"; + } +} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs b/Content.Shared/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs similarity index 76% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs rename to Content.Shared/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs index 6a3fc811c89..94b73c41e38 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/MindSwap/MindSwapPowerComponent.cs @@ -1,7 +1,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class MindSwapPowerComponent : Component @@ -12,5 +12,8 @@ public sealed partial class MindSwapPowerComponent : Component [DataField("mindSwapActionEntity")] public EntityUid? MindSwapActionEntity; + + [DataField("mindSwapFeedback")] + public string MindSwapFeedback = "mind-swap-feedback"; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs b/Content.Shared/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs similarity index 77% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs rename to Content.Shared/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs index 0e91894b1dc..997db65e1b1 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/NoosphericZap/NoosphericZapPowerComponent.cs @@ -2,7 +2,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class NoosphericZapPowerComponent : Component @@ -13,5 +13,8 @@ public sealed partial class NoosphericZapPowerComponent : Component [DataField("noosphericZapActionEntity")] public EntityUid? NoosphericZapActionEntity; + + [DataField("noosphericZapFeedback")] + public string NoosphericZapFeedback = "noospheric-zap-feedback"; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs b/Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs similarity index 71% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs rename to Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs index 3e198aa9303..d9c36f5b22a 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityPowerComponent.cs @@ -1,7 +1,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class PsionicInvisibilityPowerComponent : Component @@ -12,5 +12,11 @@ public sealed partial class PsionicInvisibilityPowerComponent : Component [DataField("psionicInvisibilityActionEntity")] public EntityUid? PsionicInvisibilityActionEntity; + + [DataField("InvisibilityFeedback")] + public string InvisibilityFeedback = "invisibility-feedback"; + + [DataField("UseTimer")] + public float UseTimer = 30f; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs b/Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs similarity index 94% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs rename to Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs index 9037b8bcdfe..2a9dd7642ba 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs +++ b/Content.Shared/Psionics/Abilities/PsionicInvisibility/PsionicInvisibilityUsedComponent.cs @@ -1,6 +1,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics + +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class PsionicInvisibilityUsedComponent : Component diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs b/Content.Shared/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs similarity index 76% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs rename to Content.Shared/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs index 4a62e84d191..3184bf7de5b 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/PsionicRegeneration/PsionicRegenerationPowerComponent.cs @@ -3,7 +3,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class PsionicRegenerationPowerComponent : Component @@ -12,7 +12,7 @@ public sealed partial class PsionicRegenerationPowerComponent : Component public DoAfterId? DoAfter; [DataField("essence")] - public float EssenceAmount = 20; + public float EssenceAmount = 10; [DataField("useDelay")] public float UseDelay = 8f; @@ -26,6 +26,12 @@ public sealed partial class PsionicRegenerationPowerComponent : Component [DataField("psionicRegenerationActionEntity")] public EntityUid? PsionicRegenerationActionEntity; + + [DataField("regenerationFeedback")] + public string RegenerationFeedback = "regeneration-feedback"; + + [DataField("selfRevive")] + public bool SelfRevive { get; set; } = false; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs b/Content.Shared/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs similarity index 79% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs rename to Content.Shared/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs index 28425afdb4c..1f88741b9a9 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/Pyrokinesis/PyrokinesisPowerComponent.cs @@ -2,7 +2,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class PyrokinesisPowerComponent : Component @@ -14,5 +14,8 @@ public sealed partial class PyrokinesisPowerComponent : Component [DataField("pyrokinesisActionEntity")] public EntityUid? PyrokinesisActionEntity; + + [DataField("pyrokinesisFeedback")] + public string PyrokinesisFeedback = "pyrokinesis-feedback"; } } diff --git a/Content.Shared/Psionics/Abilities/RegenerativeStasis/RegenerativeStasisPowerComponent.cs b/Content.Shared/Psionics/Abilities/RegenerativeStasis/RegenerativeStasisPowerComponent.cs new file mode 100644 index 00000000000..27a0903e224 --- /dev/null +++ b/Content.Shared/Psionics/Abilities/RegenerativeStasis/RegenerativeStasisPowerComponent.cs @@ -0,0 +1,20 @@ +using Content.Shared.Actions; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Psionics.Abilities +{ + [RegisterComponent] + public sealed partial class RegenerativeStasisPowerComponent : Component + { + [DataField("regenerativeStasisActionId", + customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? RegenerativeStasisActionId = "ActionRegenerativeStasis"; + + [DataField("regenerativeStasisActionEntity")] + public EntityUid? RegenerativeStasisActionEntity; + + [DataField("regenerativeStasisFeedback")] + public string RegenerativeStasisFeedback = "regenerative-stasis-feedback"; + } +} diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs b/Content.Shared/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs similarity index 73% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs rename to Content.Shared/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs index 51958822a41..f1a71332b18 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs +++ b/Content.Shared/Psionics/Abilities/Telegnosis/TelegnosisPowerComponent.cs @@ -3,7 +3,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class TelegnosisPowerComponent : Component @@ -19,5 +19,11 @@ public sealed partial class TelegnosisPowerComponent : Component [DataField("telegnosisActionEntity")] public EntityUid? TelegnosisActionEntity; + + [DataField("telegnosisFeedback")] + public string TelegnosisFeedback = "telegnosis-feedback"; + public EntityUid OriginalEntity = default!; + public EntityUid ProjectionUid = default!; + public bool IsProjecting = false; } -} \ No newline at end of file +} diff --git a/Content.Shared/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs b/Content.Shared/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs new file mode 100644 index 00000000000..bc18ff9f3c2 --- /dev/null +++ b/Content.Shared/Psionics/Abilities/Telegnosis/TelegnosticProjectionComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Psionics.Abilities +{ + [RegisterComponent] + public sealed partial class TelegnosticProjectionComponent : Component + { + public EntityUid OriginalEntity = default!; + } +} diff --git a/Content.Shared/Psionics/Events.cs b/Content.Shared/Psionics/Events.cs new file mode 100644 index 00000000000..45a00b5f048 --- /dev/null +++ b/Content.Shared/Psionics/Events.cs @@ -0,0 +1,64 @@ +using Robust.Shared.Serialization; +using Content.Shared.DoAfter; + +namespace Content.Shared.Psionics.Events +{ + [Serializable, NetSerializable] + public sealed partial class PsionicRegenerationDoAfterEvent : DoAfterEvent + { + [DataField("startedAt", required: true)] + public TimeSpan StartedAt; + + private PsionicRegenerationDoAfterEvent() + { + } + + public PsionicRegenerationDoAfterEvent(TimeSpan startedAt) + { + StartedAt = startedAt; + } + + public override DoAfterEvent Clone() => this; + } + + [Serializable, NetSerializable] + public sealed partial class PsionicInvisibilityTimerEvent : DoAfterEvent + { + [DataField("startedAt", required: true)] + public TimeSpan StartedAt; + + private PsionicInvisibilityTimerEvent() + { + } + + public PsionicInvisibilityTimerEvent(TimeSpan startedAt) + { + StartedAt = startedAt; + } + + public override DoAfterEvent Clone() => this; + } + + [Serializable, NetSerializable] + public sealed partial class FocusedMetapsionicDoAfterEvent : DoAfterEvent + { + [DataField("startedAt", required: true)] + public TimeSpan StartedAt; + + private FocusedMetapsionicDoAfterEvent() + { + } + + public FocusedMetapsionicDoAfterEvent(TimeSpan startedAt) + { + StartedAt = startedAt; + } + + public override DoAfterEvent Clone() => this; + } + + [Serializable, NetSerializable] + public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent + { + } +} diff --git a/Content.Shared/Nyanotrasen/Psionics/Glimmer/GlimmerSystem.cs b/Content.Shared/Psionics/Glimmer/GlimmerSystem.cs similarity index 98% rename from Content.Shared/Nyanotrasen/Psionics/Glimmer/GlimmerSystem.cs rename to Content.Shared/Psionics/Glimmer/GlimmerSystem.cs index 31af85bbb51..8be02f936a9 100644 --- a/Content.Shared/Nyanotrasen/Psionics/Glimmer/GlimmerSystem.cs +++ b/Content.Shared/Psionics/Glimmer/GlimmerSystem.cs @@ -40,7 +40,7 @@ public GlimmerTier GetGlimmerTier(int? glimmer = null) if (glimmer == null) glimmer = Glimmer; - return (glimmer) switch + return glimmer switch { <= 49 => GlimmerTier.Minimal, >= 50 and <= 99 => GlimmerTier.Low, diff --git a/Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs b/Content.Shared/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs similarity index 100% rename from Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs rename to Content.Shared/Psionics/Glimmer/SharedGlimmerReactiveComponent.cs diff --git a/Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs b/Content.Shared/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs similarity index 100% rename from Content.Shared/Nyanotrasen/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs rename to Content.Shared/Psionics/Glimmer/SharedGlimmerReactiveVisuals.cs diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/ClothingGrantPsionicPowerComponent.cs b/Content.Shared/Psionics/Items/ClothingGrantPsionicPowerComponent.cs similarity index 84% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Items/ClothingGrantPsionicPowerComponent.cs rename to Content.Shared/Psionics/Items/ClothingGrantPsionicPowerComponent.cs index 4cbb05c8395..f09efc3064c 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/ClothingGrantPsionicPowerComponent.cs +++ b/Content.Shared/Psionics/Items/ClothingGrantPsionicPowerComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class ClothingGrantPsionicPowerComponent : Component diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCageComponent.cs b/Content.Shared/Psionics/Items/HeadCageComponent.cs similarity index 96% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCageComponent.cs rename to Content.Shared/Psionics/Items/HeadCageComponent.cs index acaa832860f..c03241e47c7 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCageComponent.cs +++ b/Content.Shared/Psionics/Items/HeadCageComponent.cs @@ -1,7 +1,7 @@ using System.Threading; using Robust.Shared.Audio; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class HeadCageComponent : Component diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCagedComponent.cs b/Content.Shared/Psionics/Items/HeadCagedComponent.cs similarity index 81% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCagedComponent.cs rename to Content.Shared/Psionics/Items/HeadCagedComponent.cs index f8af46b8878..0f826f7a05e 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/HeadCagedComponent.cs +++ b/Content.Shared/Psionics/Items/HeadCagedComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] /// diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/PsionicItemsSystem.cs b/Content.Shared/Psionics/Items/PsionicItemsSystem.cs similarity index 98% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Items/PsionicItemsSystem.cs rename to Content.Shared/Psionics/Items/PsionicItemsSystem.cs index f88acf61f3c..950353c5dfb 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/PsionicItemsSystem.cs +++ b/Content.Shared/Psionics/Items/PsionicItemsSystem.cs @@ -2,7 +2,7 @@ using Content.Shared.Clothing.Components; using Content.Shared.StatusEffect; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { public sealed class PsionicItemsSystem : EntitySystem { diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/TinfoilHatComponent.cs b/Content.Shared/Psionics/Items/TinfoilHatComponent.cs similarity index 90% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/Items/TinfoilHatComponent.cs rename to Content.Shared/Psionics/Items/TinfoilHatComponent.cs index 5086b9f4977..6ef7bdc823b 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/Items/TinfoilHatComponent.cs +++ b/Content.Shared/Psionics/Items/TinfoilHatComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class TinfoilHatComponent : Component diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicComponent.cs b/Content.Shared/Psionics/PsionicComponent.cs similarity index 51% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicComponent.cs rename to Content.Shared/Psionics/PsionicComponent.cs index 9091e03cfc3..9a06e54cb31 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicComponent.cs +++ b/Content.Shared/Psionics/PsionicComponent.cs @@ -1,7 +1,6 @@ -using Content.Shared.Actions; using Robust.Shared.GameStates; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent, NetworkedComponent] public sealed partial class PsionicComponent : Component @@ -15,6 +14,17 @@ public sealed partial class PsionicComponent : Component public bool Removable = true; [DataField("activePowers")] - public HashSet ActivePowers = new(); + public List ActivePowers = new(); + + [DataField("psychicFeedback")] + public List PsychicFeedback = new(); + + [DataField("amplification")] + public float Amplification = 0.1f; + + [DataField("dampening")] + public float Dampening = 0.1f; + public bool Telepath = false; + public bool InnatePsiChecked = false; } } diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicInsulationComponent.cs b/Content.Shared/Psionics/PsionicInsulationComponent.cs similarity index 82% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicInsulationComponent.cs rename to Content.Shared/Psionics/PsionicInsulationComponent.cs index 12370da5ae4..2ab054b1f8f 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicInsulationComponent.cs +++ b/Content.Shared/Psionics/PsionicInsulationComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { [RegisterComponent] public sealed partial class PsionicInsulationComponent : Component diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicsDisabledComponent.cs b/Content.Shared/Psionics/PsionicsDisabledComponent.cs similarity index 84% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicsDisabledComponent.cs rename to Content.Shared/Psionics/PsionicsDisabledComponent.cs index 28e7157a9d2..00cf5506523 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/PsionicsDisabledComponent.cs +++ b/Content.Shared/Psionics/PsionicsDisabledComponent.cs @@ -1,6 +1,6 @@ using Robust.Shared.GameStates; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { /// /// Only use this for the status effect, please. diff --git a/Content.Shared/Nyanotrasen/Abilities/Psionics/SharedPsionicAbilitiesSystem.cs b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs similarity index 97% rename from Content.Shared/Nyanotrasen/Abilities/Psionics/SharedPsionicAbilitiesSystem.cs rename to Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs index 2739d5ba31a..603c5188a52 100644 --- a/Content.Shared/Nyanotrasen/Abilities/Psionics/SharedPsionicAbilitiesSystem.cs +++ b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs @@ -7,7 +7,7 @@ using Robust.Shared.Random; using Robust.Shared.Serialization; -namespace Content.Shared.Abilities.Psionics +namespace Content.Shared.Psionics.Abilities { public sealed class SharedPsionicAbilitiesSystem : EntitySystem { @@ -73,7 +73,7 @@ public void SetPsionicsThroughEligibility(EntityUid uid) if (actionData == null) return; - _actions.SetEnabled(actionData.Owner, IsEligibleForPsionics(uid)); + _actions.SetEnabled(uid, IsEligibleForPsionics(uid)); } private bool IsEligibleForPsionics(EntityUid uid) diff --git a/Content.Shared/Psionics/SharedPsionicSystem.Insulated.cs b/Content.Shared/Psionics/SharedPsionicSystem.Insulated.cs new file mode 100644 index 00000000000..5c89f39354c --- /dev/null +++ b/Content.Shared/Psionics/SharedPsionicSystem.Insulated.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.Psionics +{ + public readonly record struct PsionicInsulationEvent; +} diff --git a/Content.Shared/Spawning/EntitySystemExtensions.cs b/Content.Shared/Spawning/EntitySystemExtensions.cs index 14b171baeb1..507a0f4aa27 100644 --- a/Content.Shared/Spawning/EntitySystemExtensions.cs +++ b/Content.Shared/Spawning/EntitySystemExtensions.cs @@ -16,7 +16,7 @@ public static class EntitySystemExtensions SharedPhysicsSystem? physicsManager = null) { physicsManager ??= entityManager.System(); - var mapCoordinates = coordinates.ToMap(entityManager); + var mapCoordinates = coordinates.ToMap(entityManager, entityManager.System()); return entityManager.SpawnIfUnobstructed(prototypeName, mapCoordinates, collisionLayer, box, physicsManager); } diff --git a/Content.Shared/Store/ListingPrototype.cs b/Content.Shared/Store/ListingPrototype.cs index 2f067afbeeb..25245327ce9 100644 --- a/Content.Shared/Store/ListingPrototype.cs +++ b/Content.Shared/Store/ListingPrototype.cs @@ -98,6 +98,9 @@ public partial class ListingData : IEquatable, ICloneable [DataField("productEvent")] public object? ProductEvent; + [DataField] + public bool RaiseProductEventOnUser; + /// /// used internally for tracking how many times an item was purchased. /// @@ -120,7 +123,7 @@ public bool Equals(ListingData? listing) Description != listing.Description || ProductEntity != listing.ProductEntity || ProductAction != listing.ProductAction || - ProductEvent != listing.ProductEvent || + ProductEvent?.GetType() != listing.ProductEvent?.GetType() || RestockTime != listing.RestockTime) return false; diff --git a/Content.Shared/Supermatter/Components/SupermatterComponent.cs b/Content.Shared/Supermatter/Components/SupermatterComponent.cs index 2aab1eaa84e..64ba90ce012 100644 --- a/Content.Shared/Supermatter/Components/SupermatterComponent.cs +++ b/Content.Shared/Supermatter/Components/SupermatterComponent.cs @@ -347,10 +347,13 @@ public sealed partial class SupermatterComponent : Component { {Gas.Oxygen, 0f}, {Gas.Nitrogen, 0f}, + {Gas.NitrousOxide, 0f}, {Gas.CarbonDioxide, 0f}, {Gas.Plasma, 0f}, {Gas.Tritium, 0f}, - {Gas.WaterVapor, 0f} + {Gas.WaterVapor, 0f}, + {Gas.Frezon, 0f}, + {Gas.Ammonia, 0f} }; /// @@ -360,10 +363,13 @@ public sealed partial class SupermatterComponent : Component { [Gas.Oxygen] = (TransmitModifier: 1.5f, HeatPenalty: 1f, PowerMixRatio: 1f), [Gas.Nitrogen] = (TransmitModifier: 0f, HeatPenalty: -1.5f, PowerMixRatio: -1f), + [Gas.NitrousOxide] = (TransmitModifier: 1f, HeatPenalty: -5f, PowerMixRatio: 1f), [Gas.CarbonDioxide] = (TransmitModifier: 0f, HeatPenalty: 0.1f, PowerMixRatio: 1f), [Gas.Plasma] = (TransmitModifier: 4f, HeatPenalty: 15f, PowerMixRatio: 1f), [Gas.Tritium] = (TransmitModifier: 30f, HeatPenalty: 10f, PowerMixRatio: 1f), - [Gas.WaterVapor] = (TransmitModifier: 2f, HeatPenalty: 12f, PowerMixRatio: 1f) + [Gas.WaterVapor] = (TransmitModifier: 2f, HeatPenalty: 12f, PowerMixRatio: 1f), + [Gas.Frezon] = (TransmitModifier: 3f, HeatPenalty: -9f, PowerMixRatio: -1f), + [Gas.Ammonia] = (TransmitModifier: 1.5f, HeatPenalty: 1.5f, PowerMixRatio: 1.5f) }; #endregion SM Gas diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index a8f7ee23956..91aad895821 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -261,7 +261,7 @@ private void OnBallisticAmmoCount(EntityUid uid, BallisticAmmoProviderComponent args.Capacity = component.Capacity; } - private void UpdateBallisticAppearance(EntityUid uid, BallisticAmmoProviderComponent component) + public void UpdateBallisticAppearance(EntityUid uid, BallisticAmmoProviderComponent component) { if (!Timing.IsFirstTimePredicted || !TryComp(uid, out var appearance)) return; diff --git a/Resources/Audio/Nyanotrasen/heartbeat_fast.ogg b/Resources/Audio/Nyanotrasen/heartbeat_fast.ogg new file mode 100644 index 0000000000000000000000000000000000000000..85a034d9bd0017dafea7df4128235c815babac0c GIT binary patch literal 39983 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 literal 0 HcmV?d00001 diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 60f2d8f14c4..fc0b5c906c7 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -4086,3 +4086,35 @@ Entries: message: Added a number of new corporate coats to the Clothesmate. id: 6111 time: '2024-05-22T03:35:11.0000000+00:00' +- author: VMSolidus + changes: + - type: Tweak + message: >- + Syndicate Listening Posts can now appear any time in a round, and can + appear on low-pop servers. + id: 6112 + time: '2024-05-28T23:44:39.0000000+00:00' +- author: FoxxoTrystan + changes: + - type: Tweak + message: Better wall sprites. + - type: Tweak + message: Better window sprites. + id: 6113 + time: '2024-05-28T23:59:19.0000000+00:00' +- author: FoxxoTrystan + changes: + - type: Tweak + message: Radio Resprites, Talkwalkies, Beacon, Headset... + - type: Tweak + message: >- + Radio and uplink radio looks the same, make sure to check what freq the + radio is on! + id: 6114 + time: '2024-05-29T00:00:50.0000000+00:00' +- author: FoxxoTrystan + changes: + - type: Tweak + message: New Tools Sprites! + id: 6115 + time: '2024-05-29T01:06:42.0000000+00:00' diff --git a/Resources/Locale/en-US/nyanotrasen/abilities/psionic.ftl b/Resources/Locale/en-US/nyanotrasen/abilities/psionic.ftl index 91ae21233a3..5b368e822f1 100644 --- a/Resources/Locale/en-US/nyanotrasen/abilities/psionic.ftl +++ b/Resources/Locale/en-US/nyanotrasen/abilities/psionic.ftl @@ -3,8 +3,11 @@ cage-resist-third-person = {CAPITALIZE(THE($user))} starts removing {POSS-ADJ($u cage-uncage-verb = Uncage -action-name-metapsionic = Metapsionic Pulse -action-description-metapsionic = Send a mental pulse through the area to see if there are any psychics nearby. +action-name-widemetapsionic = Wide Metapsionic Pulse +action-description-widemetapsionic = Send a mental pulse through the area to see if there are any psychics nearby. + +action-name-focusedmetapsionic = Focused Metapsionic Pulse +action-description-focusedmetapsionic = Probe an entity at close range to glean metaphorical information about any powers they may have metapsionic-pulse-success = You detect psychic presence nearby. metapsionic-pulse-failure = You don't detect any psychic presence nearby. @@ -13,8 +16,8 @@ metapsionic-pulse-power = You detect that {$power} was used nearby. action-name-dispel = Dispel action-description-dispel = Dispel summoned entities such as familiars or forcewalls. -action-name-mass-sleep = Mass Sleep -action-description-mass-sleep = Put targets in a small area to sleep. +action-name-regenerative-stasis = Regenerative Stasis +action-description-regenerative-stasis = Puts the target into a brief stasis, during which time their wounds rapidly heal. accept-psionics-window-title = Psionic! accept-psionics-window-prompt-text-part = You rolled a psionic power! @@ -63,11 +66,14 @@ action-name-noospheric-zap = Noospheric Zap action-description-noospheric-zap = Shocks the conciousness of the target and leaves them stunned and stuttering. action-name-pyrokinesis = Pyrokinesis -action-description-pyrokinesis = Light a flammable target on fire. -pyrokinesis-power-used = A wisp of flame engulfs {THE($target)}, igniting {OBJECT($target)}! +action-description-pyrokinesis = Hurl a small gateway to the plane of Gehenna at your target. action-name-psychokinesis = Psychokinesis action-description-psychokinesis = Bend the fabric of space to instantly move across it. action-name-rf-sensitivity = Toggle RF Sensitivity action-desc-rf-sensitivity = Toggle your ability to interpret radio waves on and off. + +trait-latent-psychic-desc = Your mind and soul are open to the noosphere, allowing for a limited use of Telepathy. + Thus, you are eligible for potentially receiving psychic powers. + It is possible that you may be hunted by otherworldly forces, so consider keeping your powers a secret. diff --git a/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl b/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl new file mode 100644 index 00000000000..26d2acb87cd --- /dev/null +++ b/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl @@ -0,0 +1,21 @@ +# Feedback messages for Focused Metapsionic Pulse +metapulse-self = I AM. +no-powers = {CAPITALIZE($entity)} will never awaken from the dream in this life +psychic-potential = {CAPITALIZE($entity)} has a slim chance of awakening from the dream +dispel-feedback = {CAPITALIZE($entity)} is a mighty stone, standing against the currents of fate +metapsionic-feedback = {CAPITALIZE($entity)} gazes back upon thee +mind-swap-feedback = {CAPITALIZE($entity)}'s vessel seems fit for other souls +mindswapped-feedback = Cursed flesh! {CAPITALIZE($entity)} dwells within the wrong vessel! +noospheric-zap-feedback = {CAPITALIZE($entity)}'s soul writhes with thunder from beyond the veil +pyrokinesis-feedback = The Secret of Fire dwells within {CAPITALIZE($entity)} +invisibility-feedback = {CAPITALIZE($entity)}'s wyrd seeks to hide from thine gaze +telegnosis-feedback = {CAPITALIZE($entity)}'s soul travels across bridges composed of dreamlight +sophic-grammateus-feedback = SEEKER, YOU NEED ONLY ASK FOR MY WISDOM. +oracle-feedback = WHY DO YOU BOTHER ME SEEKER? HAVE I NOT MADE MY DESIRES CLEAR? +metempsychotic-machine-feedback = The sea of fate flows through this machine +ifrit-feedback = A spirit of Gehenna, bound by the will of a powerful psychic + +# Power PVS Messages +focused-metapsionic-pulse-begin = The air around {CAPITALIZE($entity)} begins to shimmer faintly +psionic-regeneration-self-revive = {CAPITALIZE($entity)} begins to visibly regenerate +mindbreaking-feedback = The light of life vanishes from {CAPITALIZE($entity)}'s eyes, leaving behind a husk pretending at sapience diff --git a/Resources/Locale/en-US/paper/book-authorbooks.ftl b/Resources/Locale/en-US/paper/book-authorbooks.ftl index b1981d9e152..ae886e835af 100644 --- a/Resources/Locale/en-US/paper/book-authorbooks.ftl +++ b/Resources/Locale/en-US/paper/book-authorbooks.ftl @@ -253,3 +253,11 @@ book-text-inspiration = As a freelance writer, Sarah was always in search of ins Without a moment's hesitation, Sarah took out her pen and notebook and began to write. She wrote about the beauty of the scene, the peacefulness she felt, and the surreal quality of the moment. She wanted to capture this feeling and share it with others through her words. As she finished writing, Sarah heard the snap of a twig and looked up to see a man approaching her with a camera. He introduced himself as a nature photographer and asked if she had seen the waterfall. They struck up a conversation, and soon they were both laughing and sharing stories of their adventures. As the sun began to set, the two of them packed up their gear and said their goodbyes. Sarah felt grateful for this unexpected encounter and the inspiration it brought her. She knew that this moment would stay with her forever, and she felt a sense of serenity knowing that there was still so much beauty in the world waiting to be discovered. + +book-text-janitor = [bold][color=black][head=3]The Tales of a Tired Janitor[/head][/bold] + Cleaning a space station as a janitor is like being trapped in a cosmic custodial nightmare. You'd think floating through the vastness of space would be glamorous, but no, I'm stuck scrubbing space grime and extraterrestrial goop off the walls. It's a thankless job in a zero-gravity abyss. + First off, let's talk about the mess. Space dust, alien gunk, and who knows what else accumulates faster than a rocket launch. It's not just about sweeping up the crumbs; it's about battling interstellar filth that seems to have a life of its own. You'd hope for a sleek, futuristic space station, but you get a swirling vortex of space garbage waiting for you around every corner. + And the tools they give us! You'd expect state-of-the-art cleaning gadgets, but nope. They raided a dollar store on Earth before launching us into the cosmos. Mops that barely work in microgravity, spray bottles that run out in one use, and don't even get me started on the space janitor jumpsuit. I feel like a reject from a sci-fi B-movie. + Speaking of jumpsuits, the lack of respect is astronomical. The scientists and astronauts zoom past in their sleek suits, utterly oblivious to the fact that I'm the unsung hero keeping this place from turning into a cosmic trash heap. I bet they don't even know my name. "Hey, Space Janitor!" That's what I get. No appreciation for the elbow grease I put into keeping their precious station spick and span. + And let's remember the hazards. Cleaning up alien slime? Yeah, that's a regular Tuesday for me. One wrong move and I'm dealing with an intergalactic biohazard. It's like playing Russian roulette with space critters that could burst out of some hidden nook and cranny. I signed up to mop floors, not play host to extraterrestrial invaders. + Being a janitor on this so-called Space Station 14 is a cosmic joke. Where did the other 13 stations go? It's not all spacewalks and futuristic gadgets; it's scrubbing toilets and battling alien goo. If anyone thinks space is glamorous, they clearly haven't seen the mess we space janitors deal with every single day. It's time they appreciate the unsung heroes of the space station – the custodians of the cosmos. \ No newline at end of file diff --git a/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl b/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl new file mode 100644 index 00000000000..f2451527b09 --- /dev/null +++ b/Resources/Locale/en-US/prototypes/catalog/cargo/cargoproduct-categories.ftl @@ -0,0 +1,16 @@ +cargoproduct-category-name-armory = Armory +cargoproduct-category-name-atmospherics = Atmospherics +cargoproduct-category-name-cargo = Cargo +cargoproduct-category-name-circuitboards = Circuitboards +cargoproduct-category-name-emergency = Emergency +cargoproduct-category-name-engineering = Engineering +cargoproduct-category-name-food = Food +cargoproduct-category-name-fun = Fun +cargoproduct-category-name-hydroponics = Hydroponics +cargoproduct-category-name-livestock = Livestock +cargoproduct-category-name-materials = Materials +cargoproduct-category-name-medical = Medical +cargoproduct-category-name-science = Science +cargoproduct-category-name-security = Security +cargoproduct-category-name-service = Service +cargoproduct-category-name-shuttle = Shuttle diff --git a/Resources/Locale/en-US/speech/speech-chatsan.ftl b/Resources/Locale/en-US/speech/speech-chatsan.ftl index 4c8cf5db54c..6ce575e648d 100644 --- a/Resources/Locale/en-US/speech/speech-chatsan.ftl +++ b/Resources/Locale/en-US/speech/speech-chatsan.ftl @@ -114,3 +114,6 @@ chatsan-replacement-41 = what are you doing chatsan-word-42 = ofc chatsan-replacement-42 = of course + +chatsan-word-43 = ig +chatsan-replacement-43 = i guess diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index c097a689dd8..7a3564edf66 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -29,3 +29,6 @@ trait-frontal-lisp-desc = You thpeak with a lithp trait-socialanxiety-name = Social Anxiety trait-socialanxiety-desc = You are anxious when you speak and stutter. + +trait-snoring-name = Snoring +trait-snoring-desc = You will snore while sleeping. diff --git a/Resources/Maps/Dungeon/haunted.yml b/Resources/Maps/Dungeon/haunted.yml index d63ca74f200..e0353a1e3f6 100644 --- a/Resources/Maps/Dungeon/haunted.yml +++ b/Resources/Maps/Dungeon/haunted.yml @@ -1,3251 +1,3251 @@ -meta: - format: 6 - postmapinit: false -tilemap: - 0: Space - 22: FloorCave - 23: FloorCaveDrought - 40: FloorDirt - 66: FloorMining - 68: FloorMiningLight - 71: FloorOldConcreteMono - 72: FloorOldConcreteSmooth - 82: FloorShuttleOrange - 118: FloorWood - 121: Plating - 124: PlatingDamaged -entities: -- proto: "" - entities: - - uid: 1653 - components: - - type: MetaData - - type: Transform - - type: Map - - type: PhysicsMap - - type: Broadphase - - type: OccluderTree - - chunks: - -1,-1: - ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - 0,0: - ind: 0,0 - tiles: FgAAAAAEFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAAFgAAAAACFgAAAAAFFgAAAAACFgAAAAAGFgAAAAADFgAAAAAAFgAAAAADFgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAAGFgAAAAACFgAAAAACFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAFFgAAAAAEFgAAAAACFgAAAAAFFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAACFgAAAAAGFgAAAAACFgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAADFgAAAAAEFgAAAAABFgAAAAACFgAAAAABFgAAAAAAFgAAAAAFFgAAAAAEFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAEFgAAAAABFgAAAAAEFgAAAAACFgAAAAAGFgAAAAAFFgAAAAAAFgAAAAABFgAAAAAFFgAAAAADFgAAAAADFgAAAAAFFgAAAAAFFgAAAAABFgAAAAAFFgAAAAACFgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAABFgAAAAABFgAAAAACFgAAAAABFgAAAAAGFgAAAAAAFgAAAAAGFwAAAAAAFwAAAAAAFgAAAAACUgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAEFgAAAAACFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAABFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADUgAAAAAAFgAAAAACFgAAAAAFFgAAAAACFwAAAAAAFgAAAAAGFgAAAAADFwAAAAAAFwAAAAAAFgAAAAAEFgAAAAAAFgAAAAACFgAAAAADFwAAAAAAFgAAAAAAFgAAAAAFUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAABFgAAAAABFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAFFwAAAAAAFwAAAAAAUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGFwAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAAFgAAAAABFgAAAAAEFgAAAAAEUgAAAAAAFgAAAAABFgAAAAADFgAAAAACFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAEFgAAAAABFgAAAAAEFwAAAAABFwAAAAABFwAAAAAEUgAAAAAAFgAAAAAFFgAAAAABFgAAAAAFFgAAAAADFgAAAAADFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAFFgAAAAABFgAAAAAGFgAAAAAFFwAAAAAEUgAAAAAAFgAAAAAGFgAAAAAGFwAAAAAGFwAAAAADFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAFgAAAAAGFwAAAAACFgAAAAACFgAAAAABFgAAAAABFgAAAAADFgAAAAAAUgAAAAAAFwAAAAACFgAAAAABFwAAAAAHFgAAAAACFgAAAAAEFwAAAAAEFgAAAAADUgAAAAAAFwAAAAACFgAAAAAGFgAAAAAGFgAAAAABFgAAAAAAFgAAAAAEFwAAAAAEUgAAAAAAFgAAAAABFwAAAAAFFwAAAAAFFgAAAAACFgAAAAABFwAAAAAHFwAAAAAEUgAAAAAA - version: 6 - 0,1: - ind: 0,1 - tiles: FwAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAAUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAGFgAAAAADFgAAAAAGFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAAFgAAAAAEUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAEFwAAAAABFwAAAAAGFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAACFwAAAAAFFwAAAAADFwAAAAADFgAAAAAFUgAAAAAAFwAAAAACFwAAAAADFwAAAAAEFwAAAAAFFgAAAAAEFwAAAAAGFwAAAAAHFwAAAAADFwAAAAAGUgAAAAAAFwAAAAAHFwAAAAACFgAAAAADFwAAAAADFgAAAAABUgAAAAAAFgAAAAABFgAAAAAGFgAAAAAEFgAAAAAGFgAAAAAFFgAAAAAAFwAAAAACFgAAAAAGFgAAAAABUgAAAAAAFgAAAAAGFwAAAAAGFwAAAAABFwAAAAAAFgAAAAACUgAAAAAAFwAAAAAAFgAAAAAGFwAAAAADFwAAAAAHFgAAAAADFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFwAAAAADUgAAAAAAFgAAAAACFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAFUgAAAAAAFwAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAFwAAAAABFgAAAAAAFgAAAAADUgAAAAAAFgAAAAADFwAAAAAFFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAAUgAAAAAAFwAAAAAAFwAAAAADFwAAAAAHUgAAAAAAFgAAAAABFgAAAAABFgAAAAACUgAAAAAAFgAAAAAFFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAFwAAAAABFwAAAAAFFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFwAAAAAEUgAAAAAAFgAAAAAAFgAAAAAFFgAAAAACUgAAAAAAFgAAAAADFgAAAAAFFgAAAAAEUgAAAAAAFwAAAAACFwAAAAAHFgAAAAADUgAAAAAAFgAAAAACFgAAAAADFgAAAAAGUgAAAAAAFgAAAAADFgAAAAADFgAAAAAAUgAAAAAAFgAAAAACFgAAAAAAFwAAAAABUgAAAAAAFwAAAAAAFgAAAAABFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAABFgAAAAABFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAEFgAAAAABFgAAAAADFgAAAAABFgAAAAAGFgAAAAAEFgAAAAADFgAAAAADUgAAAAAAFgAAAAADFgAAAAAFFgAAAAACFgAAAAACFgAAAAAEFgAAAAAGFgAAAAABFgAAAAAFFgAAAAACFgAAAAAGFgAAAAAAFgAAAAADFgAAAAAFFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAADFgAAAAAA - version: 6 - 0,-1: - ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - -1,0: - ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - -1,1: - ind: -1,1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - 1,-1: - ind: 1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - 1,0: - ind: 1,0 - tiles: FgAAAAACUgAAAAAAFgAAAAACFgAAAAACFgAAAAABFgAAAAADFgAAAAACKAAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGFgAAAAABFgAAAAAEFgAAAAAAFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAGFgAAAAABFgAAAAADKAAAAAAAFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAFFgAAAAABFgAAAAAAKAAAAAAAFgAAAAAEUgAAAAAAKAAAAAAAKAAAAAAAFgAAAAAAFgAAAAADKAAAAAAAFgAAAAADFgAAAAACFgAAAAAFKAAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGKAAAAAAAKAAAAAAAFgAAAAACUgAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGFgAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAGFgAAAAABFgAAAAADFgAAAAAGFgAAAAADFgAAAAABKAAAAAAAFgAAAAAGUgAAAAAAKAAAAAAAFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAGFgAAAAABFgAAAAAGFgAAAAACFgAAAAACFgAAAAAAFgAAAAABKAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADFgAAAAAAFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAFFgAAAAAAFgAAAAAGFgAAAAAEFgAAAAADFgAAAAABFgAAAAAEFwAAAAAAFgAAAAADFwAAAAAAFwAAAAAAFgAAAAAGFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAACFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADFgAAAAAFFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAGFwAAAAAAFwAAAAAAFgAAAAAGFgAAAAAGFgAAAAACUgAAAAAAFgAAAAAFFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAABFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAEFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAEFgAAAAACUgAAAAAAFgAAAAABFgAAAAAAFgAAAAABFgAAAAAFFgAAAAABFgAAAAABFgAAAAACUgAAAAAAFgAAAAACFwAAAAAAFwAAAAACFwAAAAAEFwAAAAACFgAAAAACFgAAAAAFUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAGFgAAAAADFgAAAAAGFgAAAAABFgAAAAACUgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAHFwAAAAADFwAAAAAAFwAAAAACFgAAAAAAUgAAAAAAFgAAAAABFgAAAAAFFgAAAAABFgAAAAADFgAAAAAFFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAADFgAAAAABFwAAAAAHFwAAAAAAFwAAAAAEFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAABFgAAAAACFgAAAAAAFgAAAAAFFgAAAAADFgAAAAADUgAAAAAA - version: 6 - 1,1: - ind: 1,1 - tiles: FgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAEFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAABFgAAAAABFgAAAAAAFgAAAAABFgAAAAACFgAAAAAFFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAUgAAAAAAFgAAAAADFgAAAAAAFgAAAAABFgAAAAAGFgAAAAADUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAACFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAABFgAAAAACFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAGUgAAAAAAFgAAAAADFwAAAAADFwAAAAABFgAAAAACFgAAAAAFUgAAAAAAFgAAAAAEdgAAAAADFgAAAAAFUgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFgAAAAABFgAAAAABUgAAAAAAFgAAAAAGFwAAAAAEFwAAAAACFwAAAAAHFgAAAAACUgAAAAAAFgAAAAACdgAAAAABFwAAAAADUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAACFgAAAAAFFgAAAAADUgAAAAAAFgAAAAACFgAAAAACFwAAAAAHFwAAAAAAFgAAAAABUgAAAAAAFgAAAAAAdgAAAAACFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAADFgAAAAAAFgAAAAAFFgAAAAAAUgAAAAAAFgAAAAACFgAAAAAFFgAAAAABFgAAAAADFgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAEFwAAAAAFFwAAAAAGUgAAAAAAFgAAAAAGFwAAAAAFFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAADFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAACFwAAAAAGFwAAAAAAUgAAAAAAFgAAAAAGFgAAAAAFFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAABFgAAAAAGFwAAAAADUgAAAAAAFwAAAAACFgAAAAAEFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAEFwAAAAABUgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAHUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAACFgAAAAAFFgAAAAAFFgAAAAADFgAAAAACFgAAAAAGFgAAAAAFFwAAAAAGFwAAAAAFFwAAAAAAUgAAAAAAFgAAAAAAFwAAAAADFwAAAAADFwAAAAADFwAAAAAEFgAAAAAEFwAAAAAHFwAAAAAGFgAAAAADFgAAAAACFgAAAAADFwAAAAAEFwAAAAABFwAAAAABFwAAAAAHUgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAE - version: 6 - -1,2: - ind: -1,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA - version: 6 - -1,3: - ind: -1,3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 0,2: - ind: 0,2 - tiles: FgAAAAAAFgAAAAACFgAAAAAEFgAAAAADFgAAAAACFgAAAAAGFgAAAAAFFgAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAFFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAACFgAAAAAEFwAAAAAAFgAAAAACFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAGFwAAAAAEUgAAAAAAFgAAAAAEFgAAAAADFgAAAAAAFgAAAAADFwAAAAAFFwAAAAACFgAAAAAFFgAAAAACFgAAAAAFFgAAAAAFFgAAAAAEFwAAAAAAFgAAAAAGFgAAAAAAFgAAAAACUgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAACFgAAAAAEFwAAAAAHFgAAAAAGFgAAAAAFFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAACUgAAAAAAFgAAAAAEFgAAAAAAFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAGFgAAAAADFgAAAAABFgAAAAAAFgAAAAAEUgAAAAAAFgAAAAADFgAAAAABFgAAAAAFFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAFUgAAAAAAFgAAAAAEFgAAAAACFgAAAAABFgAAAAADFgAAAAAEFgAAAAACFgAAAAABUgAAAAAAFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAABFgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAABFgAAAAABFgAAAAADFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAADFgAAAAADFgAAAAADFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAACFgAAAAABFgAAAAAFFgAAAAABFgAAAAABFgAAAAAAFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAACFgAAAAAEFgAAAAADFgAAAAAAFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAADFgAAAAABQgAAAAAAFgAAAAAEfAAAAAAAFgAAAAACFgAAAAAAUgAAAAAAFgAAAAAAQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAFgAAAAAAQgAAAAAAfAAAAAABRAAAAAAAeQAAAAAAFgAAAAAAFgAAAAABUgAAAAAAFgAAAAAFQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAAUgAAAAAAFgAAAAAFQgAAAAAARAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAFgAAAAACUgAAAAAAFgAAAAABQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAGUgAAAAAAFgAAAAAFQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAABUgAAAAAAFgAAAAABFgAAAAACQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAGFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAACQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAABFgAAAAABUgAAAAAA - version: 6 - 0,3: - ind: 0,3 - tiles: FgAAAAADFgAAAAAGFgAAAAAGFgAAAAAFFgAAAAAGFgAAAAAFFgAAAAAFUgAAAAAAFgAAAAADFgAAAAACFgAAAAAFFgAAAAAGFgAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 1,2: - ind: 1,2 - tiles: FgAAAAACFgAAAAAFFgAAAAADFgAAAAAEFgAAAAACFwAAAAACFwAAAAADFwAAAAAAFwAAAAAGFwAAAAAHFwAAAAAEUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAAFgAAAAAAFgAAAAADFgAAAAABUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAFFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAABFgAAAAACFgAAAAAFFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAAFgAAAAAGFgAAAAAEFgAAAAADFgAAAAAFFgAAAAAAFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAAGFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAACFgAAAAACFgAAAAAAFgAAAAADFgAAAAAEFgAAAAAEFgAAAAAFUgAAAAAAFgAAAAABFgAAAAAEFgAAAAABFgAAAAAAFgAAAAAFFgAAAAACFgAAAAAAUgAAAAAAFgAAAAAGFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAEFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAACFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAACFgAAAAADUgAAAAAAFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAACUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAABFgAAAAAAFgAAAAAFFgAAAAACFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAABFgAAAAABFgAAAAAAFgAAAAAFFgAAAAAGUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAFFgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAEQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAEQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABFgAAAAAEQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 1,3: - ind: 1,3 - tiles: FgAAAAAEFgAAAAACFgAAAAAFFgAAAAAGFgAAAAACFgAAAAACFgAAAAAFUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,0: - ind: 2,0 - tiles: FgAAAAABFgAAAAABFgAAAAACUgAAAAAAFwAAAAAAFgAAAAAFFgAAAAAFFgAAAAADFgAAAAAEFgAAAAACFgAAAAAAFgAAAAAEFgAAAAAGFgAAAAADFgAAAAADFgAAAAAGFgAAAAAGFgAAAAAFKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFgAAAAAFFgAAAAACFgAAAAABFgAAAAACFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAAAFgAAAAABFgAAAAACFgAAAAAGFgAAAAAEKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAGFgAAAAAAFgAAAAACFgAAAAAAFgAAAAAGKAAAAAAAKAAAAAAAKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAACFgAAAAAFFgAAAAAAFgAAAAACFgAAAAABFgAAAAAAFgAAAAADFgAAAAAGKAAAAAAAKAAAAAAAFgAAAAAFUgAAAAAAFgAAAAADFgAAAAADFwAAAAAAFgAAAAABFgAAAAADFgAAAAACFgAAAAAEFgAAAAADFgAAAAADFgAAAAAFFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFgAAAAAEFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAAGFgAAAAACFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAABRwAAAAADRwAAAAABSAAAAAAARwAAAAADFgAAAAAFFgAAAAAFUgAAAAAAFgAAAAACFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAAUgAAAAAAFgAAAAABFgAAAAACSAAAAAACSAAAAAADRwAAAAADSAAAAAAAFgAAAAADUgAAAAAAFgAAAAADFgAAAAADFgAAAAADFgAAAAAFFgAAAAABFgAAAAAEFgAAAAAAUgAAAAAAFgAAAAAGRwAAAAABSAAAAAACSAAAAAAASAAAAAACRwAAAAADFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAEFgAAAAAFFgAAAAACFgAAAAAEFgAAAAACFgAAAAAGUgAAAAAA - version: 6 - 3,0: - ind: 3,0 - tiles: FgAAAAADFgAAAAACFgAAAAAEFgAAAAAEFgAAAAADFwAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAGFgAAAAAEFgAAAAAGFgAAAAADFgAAAAAFFgAAAAADFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABFgAAAAAAFgAAAAABFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAGFgAAAAABFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAADFgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,-1: - ind: 2,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - 3,-1: - ind: 3,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 3,1: - ind: 3,1 - tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 3,2: - ind: 3,2 - tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,2: - ind: 2,2 - tiles: FgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAFFgAAAAAGFwAAAAACFwAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAAEFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAABFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAFgAAAAABFgAAAAAGFgAAAAAFFgAAAAACFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAAFgAAAAADFgAAAAACFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAABFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAACFgAAAAADFgAAAAAGFgAAAAADFgAAAAACFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAACFgAAAAACFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAEFgAAAAABFgAAAAACFgAAAAADFgAAAAABFgAAAAABFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - version: 6 - 2,1: - ind: 2,1 - tiles: FgAAAAAAFgAAAAAGFgAAAAAEFgAAAAACFgAAAAAGFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAADFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAFFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAAAdgAAAAABFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAADdgAAAAABFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAAAdgAAAAAAFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAAFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAFFwAAAAAHFwAAAAAGFwAAAAABFwAAAAAFFgAAAAAFFgAAAAAEFgAAAAAEFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAADFwAAAAABFwAAAAAGFgAAAAAAFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFwAAAAAHUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA - version: 6 - type: MapGrid - - gravityShakeSound: !type:SoundPathSpecifier - path: /Audio/Effects/alert.ogg - type: Gravity - - chunkCollection: - version: 2 - nodes: - - node: - color: '#FFFFFFFF' - id: Basalt1 - decals: - 1342: 6.955441,21.068565 - 1405: 5.569477,24.342073 - 1409: 21.493462,30.781818 - 1423: 16.244232,47.723083 - - node: - color: '#FFFFFFFF' - id: Basalt2 - decals: - 1408: 21.571587,25.092073 - 1411: 38.670036,30.328693 - 1412: 32.59149,34.61899 - - node: - color: '#FFFFFFFF' - id: Basalt3 - decals: - 1404: 2.0071354,12.534689 - 1413: 28.294615,35.52524 - 1419: 1.8725519,39.603367 - 1428: 40.1997,39.904606 - 1429: 37.775063,38.35773 - 1430: 27.454536,18.497276 - - node: - color: '#FFFFFFFF' - id: Basalt4 - decals: - 1407: 14.05264,26.857698 - 1420: 8.417587,42.316833 - - node: - color: '#FFFFFFFF' - id: Basalt5 - decals: - 1347: 7.0134563,30.499578 - 1403: 8.765746,13.144064 - 1414: 24.413132,39.478367 - 1421: 13.773578,47.660583 - 1426: 12.267979,34.57054 - 1427: 44.902824,38.38898 - 1431: 24.313911,21.591026 - 1432: 21.396156,20.325401 - - node: - color: '#FFFFFFFF' - id: Basalt6 - decals: - 1341: 0.908566,19.95919 - 1415: 20.816694,39.134617 - - node: - color: '#FFFFFFFF' - id: Basalt7 - decals: - 1339: 10,18 - 1416: 12.790198,39.33774 - 1422: 21.884857,42.17621 - 1433: 18.589165,18.387901 - 1434: 34.005077,18.028526 - 1435: 4.6335278,15.488716 - - node: - color: '#FFFFFFFF' - id: Basalt8 - decals: - 1340: 7.1637583,18.068565 - 1417: 8.813416,38.415867 - 1424: 0.46817493,47.80121 - 1425: 8.544811,34.586166 - - node: - color: '#FFFFFFFF' - id: Basalt9 - decals: - 1343: 13.433517,19.162315 - 1406: 0.6944771,26.826448 - 1410: 30.17049,31.359943 - 1418: 5.810052,38.259617 - - node: - cleanable: True - color: '#FFFFFFFF' - id: DirtLight - decals: - 301: 9,45 - 306: 13,42 - 308: 10,42 - 311: 13,45 - 578: 10,32 - - node: - color: '#FFFFFFFF' - id: Rock06 - decals: - 1344: 2.1520143,30.343328 - - node: - color: '#FFFFFFFF' - id: Rock07 - decals: - 1345: 10.29961,31.483953 - - node: - color: '#DE3A3A96' - id: rune6 - decals: - 1402: 8.952158,26.184813 - - node: - color: '#79150031' - id: splatter - decals: - 1348: 10.903494,45.563152 - 1349: 10.950369,45.969402 - 1350: 11.184744,45.906902 - 1351: 11.590994,45.422527 - 1352: 11.590994,45.422527 - 1353: 10.965994,45.610027 - 1354: 10.997244,44.969402 - 1355: 11.231619,45.047527 - 1356: 11.356619,45.344402 - 1357: 10.825369,45.656902 - 1358: 11.184744,45.922527 - 1359: 11.231619,45.891277 - 1360: 10.512869,45.563152 - 1361: 11.684744,44.078777 - 1362: 11.747244,43.797527 - 1363: 12.044119,43.328777 - 1364: 11.778494,43.281902 - 1365: 11.887869,43.688152 - 1366: 12.200369,43.735027 - 1367: 12.137869,44.141277 - 1368: 11.669119,43.656902 - 1369: 10.637869,43.781902 - 1370: 10.544119,43.781902 - 1371: 10.669119,43.453777 - 1372: 10.590994,43.485027 - 1373: 11.419119,45.797527 - 1374: 11.825369,45.813152 - 1375: 11.950369,46.219402 - 1376: 11.200369,45.672527 - 1377: 11.247244,45.922527 - 1378: 10.590994,46.125652 - 1379: 11.481619,45.422527 - 1380: 11.684744,45.672527 - 1381: 11.512869,45.141277 - 1382: 11.825369,45.281902 - 1383: 11.684744,45.438152 - 1384: 10.950369,45.735027 - 1385: 10.262869,45.797527 - 1386: 10.028494,44.891277 - 1387: 9.903494,44.891277 - 1388: 9.887869,45.500652 - 1389: 10.153494,45.344402 - 1390: 10.809744,45.391277 - 1391: 10.934744,45.422527 - 1392: 11.262869,45.531902 - 1393: 11.184744,46.031902 - 1394: 10.872244,45.813152 - 1395: 11.090994,45.563152 - 1396: 10.731619,46.031902 - 1397: 10.075369,44.000652 - 1398: 9.856619,43.703777 - 1399: 10.059744,44.281902 - 1400: 10.419119,43.813152 - - node: - cleanable: True - color: '#79150031' - id: splatter - decals: - 1444: 35.155014,12.447503 - 1445: 34.811264,12.353753 - 1446: 34.85814,12.744378 - 1447: 35.342514,12.463128 - 1448: 35.155014,12.228753 - 1449: 34.42064,12.572503 - 1450: 34.123764,13.025628 - 1451: 34.17064,13.322503 - 1452: 34.342514,12.900628 - 1453: 33.85814,12.994378 - 1454: 33.79564,13.338128 - 1455: 33.63939,13.838128 - 1456: 33.70189,13.603753 - 1457: 33.311264,13.900628 - 1458: 33.717514,14.306878 - 1459: 34.10814,14.650628 - 1460: 33.936264,15.135003 - 1461: 34.405014,14.947503 - 1462: 33.79564,14.510003 - 1463: 33.70189,14.088128 - 1464: 34.29564,14.541253 - 1465: 34.623764,15.010003 - 1466: 35.26439,15.072503 - 1467: 35.405014,14.931878 - 1468: 34.623764,15.338128 - 1469: 35.592514,14.994378 - 1470: 35.79564,14.447503 - 1471: 36.13939,15.025628 - 1472: 36.436264,14.181878 - 1473: 36.592514,13.869378 - 1474: 35.780014,14.697503 - 1475: 36.467514,14.072503 - 1476: 35.748764,14.588128 - 1477: 36.07689,13.963128 - 1478: 36.092514,13.291253 - 1479: 35.57689,13.103753 - 1480: 35.70189,13.088128 - 1481: 35.38939,12.478753 - 1482: 35.92064,13.260003 - 1483: 36.061264,13.666253 - 1484: 36.217514,12.822503 - 1485: 35.48314,12.650628 - 1486: 35.98314,12.353753 - 1487: 34.842514,12.744378 - 1488: 34.23314,12.853753 - 1489: 34.04564,13.447503 - 1490: 33.51439,13.650628 - - node: - cleanable: True - color: '#DE3A3A28' - id: splatter - decals: - 1436: 34.151947,12.931878 - 1437: 33.542572,13.775628 - 1438: 34.089447,14.588128 - 1439: 34.886322,15.025628 - 1440: 35.714447,14.681878 - 1441: 36.214447,14.119378 - 1442: 35.933197,13.228753 - 1443: 35.026947,12.447503 - type: DecalGrid - - type: RadiationGridResistance - - type: LoadedMap - - type: SpreaderGrid - - type: GridTree - - type: MovedGrids - - type: GridPathfinding -- proto: AirCanister - entities: - - uid: 302 - components: - - pos: 20.5,38.5 - parent: 1653 - type: Transform -- proto: AirlockMining - entities: - - uid: 149 - components: - - pos: 11.5,43.5 - parent: 1653 - type: Transform -- proto: AirlockMiningGlassLocked - entities: - - uid: 492 - components: - - pos: 19.5,43.5 - parent: 1653 - type: Transform -- proto: AirlockMiningLocked - entities: - - uid: 454 - components: - - pos: 3.5,43.5 - parent: 1653 - type: Transform -- proto: AltarFangs - entities: - - uid: 12 - components: - - pos: 35.5,14.5 - parent: 1653 - type: Transform -- proto: BananiumOre1 - entities: - - uid: 147 - components: - - pos: 25.454952,10.460608 - parent: 1653 - type: Transform - - uid: 436 - components: - - flags: InContainer - type: MetaData - - parent: 435 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: Barricade - entities: - - uid: 61 - components: - - pos: 14.5,12.5 - parent: 1653 - type: Transform - - uid: 304 - components: - - pos: 6.5,18.5 - parent: 1653 - type: Transform - - uid: 369 - components: - - pos: 51.5,0.5 - parent: 1653 - type: Transform -- proto: BikeHorn - entities: - - uid: 201 - components: - - flags: InContainer - type: MetaData - - parent: 200 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: Bucket - entities: - - uid: 220 - components: - - pos: 28.080187,14.004396 - parent: 1653 - type: Transform -- proto: CandleRedSmallInfinite - entities: - - uid: 121 - components: - - pos: 10.514658,25.137938 - parent: 1653 - type: Transform - - uid: 123 - components: - - pos: 10.655283,25.247313 - parent: 1653 - type: Transform - - uid: 126 - components: - - rot: -6.283185307179586 rad - pos: 9.436043,27.291958 - parent: 1653 - type: Transform - - uid: 181 - components: - - pos: 9.83762,26.231688 - parent: 1653 - type: Transform - - uid: 182 - components: - - pos: 9.009495,26.278563 - parent: 1653 - type: Transform - - uid: 211 - components: - - pos: 10.467783,25.325438 - parent: 1653 - type: Transform - - uid: 212 - components: - - rot: -6.283185307179586 rad - pos: 9.976189,27.010708 - parent: 1653 - type: Transform - - uid: 213 - components: - - pos: 8.86887,27.028563 - parent: 1653 - type: Transform -- proto: Chainsaw - entities: - - uid: 396 - components: - - pos: 12.278494,46.219402 - parent: 1653 - type: Transform -- proto: Chair - entities: - - uid: 399 - components: - - rot: 3.141592653589793 rad - pos: 19.5,34.5 - parent: 1653 - type: Transform -- proto: ChairPilotSeat - entities: - - uid: 8 - components: - - rot: 1.5707963267948966 rad - pos: 2.5,44.5 - parent: 1653 - type: Transform - - uid: 466 - components: - - rot: -1.5707963267948966 rad - pos: 4.5,44.5 - parent: 1653 - type: Transform -- proto: ChairRitual - entities: - - uid: 127 - components: - - pos: 9.5,28.5 - parent: 1653 - type: Transform -- proto: CigaretteCapsaicinOil - entities: - - uid: 322 - components: - - pos: 31.649122,18.823664 - parent: 1653 - type: Transform -- proto: CigaretteSyndicate - entities: - - uid: 439 - components: - - flags: InContainer - type: MetaData - - parent: 438 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: ClothingBackpackDuffelCargo - entities: - - uid: 288 - components: - - pos: 17.527935,7.630492 - parent: 1653 - type: Transform -- proto: ClothingHeadHatFlowerCrown - entities: - - uid: 233 - components: - - pos: 27.441708,39.437607 - parent: 1653 - type: Transform -- proto: ClothingHeadHatGladiator - entities: - - uid: 7 - components: - - flags: InContainer - type: MetaData - - parent: 6 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: ClothingNeckCloakTrans - entities: - - uid: 332 - components: - - flags: InContainer - type: MetaData - - parent: 331 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: ClothingOuterHardsuitSalvage - entities: - - uid: 432 - components: - - pos: 4.447749,45.58406 - parent: 1653 - type: Transform -- proto: ClothingShoesClown - entities: - - uid: 202 - components: - - flags: InContainer - type: MetaData - - parent: 200 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: ClothingUniformJumpsuitGladiator - entities: - - uid: 215 - components: - - flags: InContainer - type: MetaData - - parent: 214 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: ClothingUniformJumpsuitMonasticRobeDark - entities: - - uid: 40 - components: - - pos: 36.46349,13.791253 - parent: 1653 - type: Transform - - uid: 99 - components: - - pos: 36.27599,15.338128 - parent: 1653 - type: Transform - - uid: 216 - components: - - pos: 35.46349,15.619378 - parent: 1653 - type: Transform - - uid: 272 - components: - - pos: 34.05724,14.385003 - parent: 1653 - type: Transform - - uid: 273 - components: - - pos: 34.58849,15.213128 - parent: 1653 - type: Transform - - uid: 357 - components: - - pos: 35.58849,13.213128 - parent: 1653 - type: Transform - - uid: 358 - components: - - pos: 34.697865,13.588128 - parent: 1653 - type: Transform - - uid: 443 - components: - - pos: 36.80724,14.744378 - parent: 1653 - type: Transform -- proto: Cobweb1 - entities: - - uid: 190 - components: - - pos: 24.5,10.5 - parent: 1653 - type: Transform - - uid: 289 - components: - - pos: 0.5,10.5 - parent: 1653 - type: Transform - - uid: 290 - components: - - pos: 32.5,16.5 - parent: 1653 - type: Transform - - uid: 384 - components: - - pos: 0.5,36.5 - parent: 1653 - type: Transform - - uid: 385 - components: - - pos: 28.5,32.5 - parent: 1653 - type: Transform - - uid: 393 - components: - - pos: 12.5,22.5 - parent: 1653 - type: Transform - - uid: 418 - components: - - pos: 0.5,40.5 - parent: 1653 - type: Transform - - uid: 458 - components: - - pos: 2.5,46.5 - parent: 1653 - type: Transform -- proto: Cobweb2 - entities: - - uid: 137 - components: - - pos: 33.5,9.5 - parent: 1653 - type: Transform - - uid: 252 - components: - - pos: 26.5,32.5 - parent: 1653 - type: Transform - - uid: 291 - components: - - pos: 34.5,3.5 - parent: 1653 - type: Transform - - uid: 314 - components: - - pos: 22.5,10.5 - parent: 1653 - type: Transform - - uid: 341 - components: - - pos: 20.5,46.5 - parent: 1653 - type: Transform - - uid: 382 - components: - - pos: 14.5,40.5 - parent: 1653 - type: Transform - - uid: 383 - components: - - pos: 32.5,20.5 - parent: 1653 - type: Transform - - uid: 417 - components: - - pos: 24.5,2.5 - parent: 1653 - type: Transform -- proto: ComfyChair - entities: - - uid: 381 - components: - - pos: 13.5,27.5 - parent: 1653 - type: Transform -- proto: ConveyorBelt - entities: - - uid: 101 - components: - - rot: -1.5707963267948966 rad - pos: 27.5,10.5 - parent: 1653 - type: Transform - - uid: 102 - components: - - rot: -1.5707963267948966 rad - pos: 28.5,10.5 - parent: 1653 - type: Transform - - uid: 103 - components: - - rot: -1.5707963267948966 rad - pos: 25.5,10.5 - parent: 1653 - type: Transform - - uid: 104 - components: - - rot: -1.5707963267948966 rad - pos: 29.5,10.5 - parent: 1653 - type: Transform - - uid: 105 - components: - - rot: -1.5707963267948966 rad - pos: 30.5,10.5 - parent: 1653 - type: Transform - - uid: 106 - components: - - rot: -1.5707963267948966 rad - pos: 26.5,10.5 - parent: 1653 - type: Transform -- proto: CrateCoffin - entities: - - uid: 331 - components: - - pos: 16.5,32.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 332 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 435 - components: - - pos: 22.5,32.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 436 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 438 - components: - - pos: 23.5,32.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 439 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 441 - components: - - pos: 20.5,30.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 442 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer -- proto: CrateEmergencyRadiation - entities: - - uid: 364 - components: - - pos: 15.5,36.5 - parent: 1653 - type: Transform -- proto: CrateEmptySpawner - entities: - - uid: 128 - components: - - pos: 4.5,40.5 - parent: 1653 - type: Transform -- proto: CrateFilledSpawner - entities: - - uid: 111 - components: - - pos: 8.5,2.5 - parent: 1653 - type: Transform - - uid: 367 - components: - - pos: 18.5,46.5 - parent: 1653 - type: Transform - - uid: 411 - components: - - pos: 13.5,36.5 - parent: 1653 - type: Transform - - uid: 490 - components: - - pos: 28.5,8.5 - parent: 1653 - type: Transform -- proto: CrateNPCPenguin - entities: - - uid: 474 - components: - - pos: 13.5,25.5 - parent: 1653 - type: Transform -- proto: CrateWoodenGrave - entities: - - uid: 6 - components: - - pos: 27.5,39.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 7 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 200 - components: - - pos: 42.5,39.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 202 - - 201 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 214 - components: - - pos: 28.5,39.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 215 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer - - uid: 231 - components: - - pos: 26.5,39.5 - parent: 1653 - type: Transform - - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 232 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - type: ContainerContainer -- proto: CrystalSpawner - entities: - - uid: 129 - components: - - pos: 27.5,35.5 - parent: 1653 - type: Transform - - uid: 131 - components: - - pos: 29.5,34.5 - parent: 1653 - type: Transform - - uid: 132 - components: - - pos: 30.5,35.5 - parent: 1653 - type: Transform - - uid: 172 - components: - - pos: 19.5,21.5 - parent: 1653 - type: Transform - - uid: 178 - components: - - pos: 20.5,20.5 - parent: 1653 - type: Transform - - uid: 298 - components: - - pos: 13.5,38.5 - parent: 1653 - type: Transform - - uid: 300 - components: - - pos: 9.5,40.5 - parent: 1653 - type: Transform - - uid: 301 - components: - - pos: 30.5,36.5 - parent: 1653 - type: Transform - - uid: 308 - components: - - pos: 31.5,36.5 - parent: 1653 - type: Transform -- proto: DoubleEmergencyNitrogenTankFilled - entities: - - uid: 309 - components: - - pos: 21.254128,38.485172 - parent: 1653 - type: Transform -- proto: DresserFilled - entities: - - uid: 413 - components: - - pos: 20.5,44.5 - parent: 1653 - type: Transform -- proto: FenceMetalCorner - entities: - - uid: 321 - components: - - rot: 1.5707963267948966 rad - pos: 20.5,35.5 - parent: 1653 - type: Transform - - uid: 477 - components: - - rot: -1.5707963267948966 rad - pos: 14.5,35.5 - parent: 1653 - type: Transform -- proto: FenceMetalGate - entities: - - uid: 268 - components: - - rot: 3.141592653589793 rad - pos: 17.5,35.5 - parent: 1653 - type: Transform -- proto: FenceMetalStraight - entities: - - uid: 267 - components: - - rot: 1.5707963267948966 rad - pos: 19.5,35.5 - parent: 1653 - type: Transform - - uid: 293 - components: - - pos: 14.5,36.5 - parent: 1653 - type: Transform - - uid: 476 - components: - - rot: 1.5707963267948966 rad - pos: 15.5,35.5 - parent: 1653 - type: Transform - - uid: 478 - components: - - rot: 1.5707963267948966 rad - pos: 16.5,35.5 - parent: 1653 - type: Transform - - uid: 479 - components: - - pos: 20.5,34.5 - parent: 1653 - type: Transform - - uid: 480 - components: - - rot: 1.5707963267948966 rad - pos: 18.5,35.5 - parent: 1653 - type: Transform -- proto: FlashlightLantern - entities: - - uid: 372 - components: - - pos: 16.286905,3.5055985 - parent: 1653 - type: Transform -- proto: FloorChasmEntity - entities: - - uid: 3 - components: - - pos: 5.5,0.5 - parent: 1653 - type: Transform - - uid: 4 - components: - - pos: 6.5,4.5 - parent: 1653 - type: Transform - - uid: 5 - components: - - pos: 6.5,3.5 - parent: 1653 - type: Transform - - uid: 17 - components: - - pos: 9.5,4.5 - parent: 1653 - type: Transform - - uid: 18 - components: - - pos: 4.5,4.5 - parent: 1653 - type: Transform - - uid: 19 - components: - - pos: 41.5,1.5 - parent: 1653 - type: Transform - - uid: 20 - components: - - pos: 44.5,1.5 - parent: 1653 - type: Transform - - uid: 21 - components: - - pos: 45.5,1.5 - parent: 1653 - type: Transform - - uid: 22 - components: - - pos: 44.5,0.5 - parent: 1653 - type: Transform - - uid: 23 - components: - - pos: 45.5,0.5 - parent: 1653 - type: Transform - - uid: 24 - components: - - pos: 47.5,0.5 - parent: 1653 - type: Transform - - uid: 25 - components: - - pos: 48.5,0.5 - parent: 1653 - type: Transform - - uid: 76 - components: - - pos: 15.5,4.5 - parent: 1653 - type: Transform - - uid: 77 - components: - - pos: 14.5,0.5 - parent: 1653 - type: Transform - - uid: 78 - components: - - pos: 14.5,1.5 - parent: 1653 - type: Transform - - uid: 82 - components: - - pos: 12.5,1.5 - parent: 1653 - type: Transform - - uid: 83 - components: - - pos: 13.5,4.5 - parent: 1653 - type: Transform - - uid: 84 - components: - - pos: 12.5,0.5 - parent: 1653 - type: Transform - - uid: 85 - components: - - pos: 13.5,0.5 - parent: 1653 - type: Transform - - uid: 86 - components: - - pos: 13.5,1.5 - parent: 1653 - type: Transform - - uid: 87 - components: - - pos: 46.5,1.5 - parent: 1653 - type: Transform - - uid: 88 - components: - - pos: 46.5,0.5 - parent: 1653 - type: Transform - - uid: 97 - components: - - pos: 14.5,4.5 - parent: 1653 - type: Transform - - uid: 112 - components: - - pos: 7.5,0.5 - parent: 1653 - type: Transform - - uid: 114 - components: - - pos: 10.5,0.5 - parent: 1653 - type: Transform - - uid: 115 - components: - - pos: 10.5,1.5 - parent: 1653 - type: Transform - - uid: 116 - components: - - pos: 11.5,4.5 - parent: 1653 - type: Transform - - uid: 118 - components: - - pos: 11.5,3.5 - parent: 1653 - type: Transform - - uid: 119 - components: - - pos: 11.5,0.5 - parent: 1653 - type: Transform - - uid: 120 - components: - - pos: 11.5,1.5 - parent: 1653 - type: Transform - - uid: 235 - components: - - pos: 49.5,0.5 - parent: 1653 - type: Transform - - uid: 241 - components: - - pos: 3.5,4.5 - parent: 1653 - type: Transform - - uid: 242 - components: - - pos: 2.5,0.5 - parent: 1653 - type: Transform - - uid: 245 - components: - - pos: 10.5,3.5 - parent: 1653 - type: Transform - - uid: 250 - components: - - pos: 4.5,3.5 - parent: 1653 - type: Transform - - uid: 258 - components: - - pos: 3.5,0.5 - parent: 1653 - type: Transform - - uid: 278 - components: - - pos: 40.5,2.5 - parent: 1653 - type: Transform - - uid: 315 - components: - - pos: 1.5,4.5 - parent: 1653 - type: Transform - - uid: 317 - components: - - pos: 5.5,3.5 - parent: 1653 - type: Transform - - uid: 337 - components: - - pos: 4.5,0.5 - parent: 1653 - type: Transform - - uid: 340 - components: - - pos: 42.5,2.5 - parent: 1653 - type: Transform - - uid: 350 - components: - - pos: 42.5,1.5 - parent: 1653 - type: Transform - - uid: 354 - components: - - pos: 12.5,3.5 - parent: 1653 - type: Transform - - uid: 359 - components: - - pos: 15.5,1.5 - parent: 1653 - type: Transform - - uid: 360 - components: - - pos: 15.5,0.5 - parent: 1653 - type: Transform - - uid: 363 - components: - - pos: 12.5,4.5 - parent: 1653 - type: Transform - - uid: 368 - components: - - pos: 43.5,2.5 - parent: 1653 - type: Transform - - uid: 377 - components: - - pos: 7.5,4.5 - parent: 1653 - type: Transform - - uid: 378 - components: - - pos: 6.5,1.5 - parent: 1653 - type: Transform - - uid: 387 - components: - - pos: 43.5,1.5 - parent: 1653 - type: Transform - - uid: 398 - components: - - pos: 41.5,2.5 - parent: 1653 - type: Transform - - uid: 401 - components: - - pos: 5.5,1.5 - parent: 1653 - type: Transform - - uid: 404 - components: - - pos: 5.5,4.5 - parent: 1653 - type: Transform - - uid: 452 - components: - - pos: 2.5,4.5 - parent: 1653 - type: Transform - - uid: 453 - components: - - pos: 1.5,0.5 - parent: 1653 - type: Transform - - uid: 459 - components: - - pos: 44.5,2.5 - parent: 1653 - type: Transform - - uid: 468 - components: - - pos: 3.5,3.5 - parent: 1653 - type: Transform - - uid: 471 - components: - - pos: 6.5,0.5 - parent: 1653 - type: Transform - - uid: 472 - components: - - pos: 10.5,4.5 - parent: 1653 - type: Transform - - uid: 473 - components: - - pos: 9.5,0.5 - parent: 1653 - type: Transform -- proto: FloorWaterEntity - entities: - - uid: 13 - components: - - pos: 27.5,14.5 - parent: 1653 - type: Transform - - uid: 14 - components: - - pos: 29.5,14.5 - parent: 1653 - type: Transform - - uid: 15 - components: - - pos: 28.5,15.5 - parent: 1653 - type: Transform - - uid: 43 - components: - - pos: 26.5,16.5 - parent: 1653 - type: Transform - - uid: 45 - components: - - pos: 30.5,13.5 - parent: 1653 - type: Transform - - uid: 46 - components: - - pos: 29.5,13.5 - parent: 1653 - type: Transform - - uid: 47 - components: - - pos: 28.5,12.5 - parent: 1653 - type: Transform - - uid: 49 - components: - - pos: 27.5,16.5 - parent: 1653 - type: Transform - - uid: 65 - components: - - pos: 29.5,12.5 - parent: 1653 - type: Transform - - uid: 72 - components: - - pos: 25.5,13.5 - parent: 1653 - type: Transform - - uid: 93 - components: - - pos: 24.5,15.5 - parent: 1653 - type: Transform - - uid: 100 - components: - - pos: 27.5,12.5 - parent: 1653 - type: Transform - - uid: 221 - components: - - pos: 26.5,13.5 - parent: 1653 - type: Transform - - uid: 222 - components: - - pos: 26.5,14.5 - parent: 1653 - type: Transform - - uid: 223 - components: - - pos: 26.5,15.5 - parent: 1653 - type: Transform - - uid: 224 - components: - - pos: 27.5,13.5 - parent: 1653 - type: Transform - - uid: 444 - components: - - pos: 28.5,14.5 - parent: 1653 - type: Transform - - uid: 445 - components: - - pos: 27.5,15.5 - parent: 1653 - type: Transform - - uid: 446 - components: - - pos: 28.5,13.5 - parent: 1653 - type: Transform - - uid: 447 - components: - - pos: 25.5,15.5 - parent: 1653 - type: Transform - - uid: 448 - components: - - pos: 25.5,14.5 - parent: 1653 - type: Transform -- proto: FloraRockSolid01 - entities: - - uid: 63 - components: - - pos: 1.4643247,15.527116 - parent: 1653 - type: Transform - - uid: 230 - components: - - pos: 25.553497,34.710487 - parent: 1653 - type: Transform - - uid: 281 - components: - - pos: 7.4866443,6.552367 - parent: 1653 - type: Transform - - uid: 295 - components: - - pos: 0.911531,32.452705 - parent: 1653 - type: Transform - - uid: 303 - components: - - pos: 21.638557,19.381065 - parent: 1653 - type: Transform - - uid: 374 - components: - - pos: 3.5664039,19.498943 - parent: 1653 - type: Transform -- proto: FloraRockSolid02 - entities: - - uid: 64 - components: - - pos: 11.966135,14.804356 - parent: 1653 - type: Transform - - uid: 171 - components: - - pos: 8.535091,20.608318 - parent: 1653 - type: Transform - - uid: 306 - components: - - pos: 12.087021,32.358955 - parent: 1653 - type: Transform -- proto: FloraRockSolid03 - entities: - - uid: 90 - components: - - pos: 23.53006,1.5159609 - parent: 1653 - type: Transform - - uid: 170 - components: - - pos: 1.9101539,21.811443 - parent: 1653 - type: Transform - - uid: 199 - components: - - pos: 44.689724,39.621048 - parent: 1653 - type: Transform - - uid: 243 - components: - - pos: 21.468937,26.614876 - parent: 1653 - type: Transform - - uid: 296 - components: - - pos: 9.355139,30.733953 - parent: 1653 - type: Transform - - uid: 330 - components: - - pos: 35.552525,31.574036 - parent: 1653 - type: Transform - - uid: 361 - components: - - pos: 5.433075,13.527116 - parent: 1653 - type: Transform - - uid: 375 - components: - - pos: 1.5647693,8.536742 - parent: 1653 - type: Transform -- proto: FoodBoxDonkpocketPizza - entities: - - uid: 209 - components: - - pos: 0.9877088,26.184813 - parent: 1653 - type: Transform -- proto: FoodCornTrash - entities: - - uid: 2 - components: - - pos: 26.81556,20.415936 - parent: 1653 - type: Transform - - uid: 109 - components: - - pos: 27.367641,20.311768 - parent: 1653 - type: Transform - - uid: 113 - components: - - pos: 27.388475,19.988852 - parent: 1653 - type: Transform - - uid: 249 - components: - - pos: 27.638475,20.843018 - parent: 1653 - type: Transform - - uid: 254 - components: - - pos: 28.055141,20.301352 - parent: 1653 - type: Transform - - uid: 319 - components: - - pos: 27.482225,20.530518 - parent: 1653 - type: Transform - - uid: 391 - components: - - pos: 26.930141,20.728436 - parent: 1653 - type: Transform - - uid: 475 - components: - - pos: 27.84681,20.634686 - parent: 1653 - type: Transform -- proto: FoodMeatHuman - entities: - - uid: 186 - components: - - pos: 34.42388,40.652298 - parent: 1653 - type: Transform - - uid: 187 - components: - - pos: 34.64263,40.511673 - parent: 1653 - type: Transform -- proto: FoodMeatLizardtailKebab - entities: - - uid: 42 - components: - - pos: 38.036457,12.588582 - parent: 1653 - type: Transform -- proto: FoodMeatRouny - entities: - - uid: 183 - components: - - pos: 36.45513,40.589798 - parent: 1653 - type: Transform -- proto: FoodSnackPopcorn - entities: - - uid: 74 - components: - - pos: 25.648891,21.040936 - parent: 1653 - type: Transform - - uid: 79 - components: - - pos: 25.763475,21.645102 - parent: 1653 - type: Transform - - uid: 81 - components: - - pos: 25.461391,21.207602 - parent: 1653 - type: Transform - - uid: 117 - components: - - pos: 25.857225,21.207602 - parent: 1653 - type: Transform - - uid: 240 - components: - - pos: 25.97181,21.030518 - parent: 1653 - type: Transform -- proto: FoodTinPeachesMaintOpen - entities: - - uid: 208 - components: - - pos: 2.343669,28.087896 - parent: 1653 - type: Transform -- proto: GeigerCounter - entities: - - uid: 228 - components: - - rot: -1.5707963267948966 rad - pos: 2.536777,44.354866 - parent: 1653 - type: Transform -- proto: Girder - entities: - - uid: 351 - components: - - rot: 1.5707963267948966 rad - pos: 13.5,45.5 - parent: 1653 - type: Transform -- proto: GlowstickRed - entities: - - uid: 256 - components: - - pos: 12.648991,38.39441 - parent: 1653 - type: Transform - - uid: 264 - components: - - pos: 22.50236,34.545544 - parent: 1653 - type: Transform - - uid: 271 - components: - - pos: 4.5084944,44.49994 - parent: 1653 - type: Transform - - uid: 294 - components: - - pos: 10.820133,30.586414 - parent: 1653 - type: Transform - - uid: 316 - components: - - pos: 26.3416,18.72954 - parent: 1653 - type: Transform - - uid: 414 - components: - - pos: 1.8548665,32.055164 - parent: 1653 - type: Transform - - uid: 420 - components: - - pos: 22.799234,34.62367 - parent: 1653 - type: Transform - - uid: 421 - components: - - pos: 22.299234,34.608044 - parent: 1653 - type: Transform -- proto: GoldOre1 - entities: - - uid: 134 - components: - - pos: 8.948225,24.854458 - parent: 1653 - type: Transform - - uid: 138 - components: - - pos: 26.486202,10.538733 - parent: 1653 - type: Transform - - uid: 139 - components: - - pos: 26.486202,10.538733 - parent: 1653 - type: Transform - - uid: 144 - components: - - pos: 26.486202,10.538733 - parent: 1653 - type: Transform - - uid: 145 - components: - - pos: 26.486202,10.538733 - parent: 1653 - type: Transform - - uid: 191 - components: - - pos: 26.486202,10.538733 - parent: 1653 - type: Transform - - uid: 266 - components: - - pos: 9.448225,25.291958 - parent: 1653 - type: Transform - - uid: 328 - components: - - pos: 8.541975,25.885708 - parent: 1653 - type: Transform - - uid: 379 - components: - - pos: 10.026349,24.557583 - parent: 1653 - type: Transform -- proto: hydroponicsSoil - entities: - - uid: 1 - components: - - pos: 25.5,20.5 - parent: 1653 - type: Transform - - uid: 390 - components: - - pos: 27.5,21.5 - parent: 1653 - type: Transform - - uid: 423 - components: - - pos: 25.5,19.5 - parent: 1653 - type: Transform -- proto: ImprovisedExplosiveFuel - entities: - - uid: 203 - components: - - pos: 36.443645,31.673359 - parent: 1653 - type: Transform -- proto: IngotGold1 - entities: - - uid: 312 - components: - - pos: 10.073225,25.588833 - parent: 1653 - type: Transform - - uid: 313 - components: - - pos: 10.4951,24.791958 - parent: 1653 - type: Transform - - uid: 426 - components: - - pos: 8.385725,25.104458 - parent: 1653 - type: Transform - - uid: 449 - components: - - pos: 10.698225,26.120083 - parent: 1653 - type: Transform - - uid: 460 - components: - - pos: 9.120099,24.323208 - parent: 1653 - type: Transform -- proto: IngotSilver - entities: - - uid: 262 - components: - - pos: 20.52197,46.638992 - parent: 1653 - type: Transform -- proto: KitchenElectricGrill - entities: - - uid: 205 - components: - - pos: 35.5,40.5 - parent: 1653 - type: Transform -- proto: KitchenMicrowave - entities: - - uid: 244 - components: - - pos: 26.5,21.5 - parent: 1653 - type: Transform -- proto: KukriKnife - entities: - - uid: 130 - components: - - pos: 2.508058,45.496773 - parent: 1653 - type: Transform -- proto: LampGold - entities: - - uid: 380 - components: - - pos: 13.291822,27.041958 - parent: 1653 - type: Transform -- proto: Lantern - entities: - - uid: 28 - components: - - pos: 24.446167,4.4534607 - parent: 1653 - type: Transform - - uid: 29 - components: - - pos: 33.45849,0.51596093 - parent: 1653 - type: Transform - - uid: 89 - components: - - pos: 18.58248,0.51596093 - parent: 1653 - type: Transform - - uid: 180 - components: - - pos: 20.497932,21.77169 - parent: 1653 - type: Transform -- proto: MaintenancePlantSpawner - entities: - - uid: 67 - components: - - pos: 21.5,16.5 - parent: 1653 - type: Transform - - uid: 70 - components: - - pos: 17.5,15.5 - parent: 1653 - type: Transform - - uid: 73 - components: - - pos: 21.5,14.5 - parent: 1653 - type: Transform - - uid: 217 - components: - - pos: 22.5,12.5 - parent: 1653 - type: Transform - - uid: 218 - components: - - pos: 16.5,13.5 - parent: 1653 - type: Transform -- proto: MaintenanceToolSpawner - entities: - - uid: 57 - components: - - pos: 39.5,0.5 - parent: 1653 - type: Transform - - uid: 96 - components: - - pos: 51.5,1.5 - parent: 1653 - type: Transform - - uid: 416 - components: - - pos: 7.5,32.5 - parent: 1653 - type: Transform -- proto: MaintenanceWeaponSpawner - entities: - - uid: 31 - components: - - pos: 22.5,0.5 - parent: 1653 - type: Transform - - uid: 32 - components: - - pos: 1.5,3.5 - parent: 1653 - type: Transform - - uid: 51 - components: - - pos: 52.5,0.5 - parent: 1653 - type: Transform - - uid: 292 - components: - - pos: 34.5,31.5 - parent: 1653 - type: Transform -- proto: MaterialWoodPlank - entities: - - uid: 442 - components: - - flags: InContainer - type: MetaData - - parent: 441 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: MedkitOxygenFilled - entities: - - uid: 225 - components: - - pos: 17.973127,40.40886 - parent: 1653 - type: Transform -- proto: MiningWindow - entities: - - uid: 155 - components: - - pos: 19.5,47.5 - parent: 1653 - type: Transform - - uid: 162 - components: - - pos: 3.5,47.5 - parent: 1653 - type: Transform - - uid: 248 - components: - - pos: 11.5,47.5 - parent: 1653 - type: Transform -- proto: OreBox - entities: - - uid: 184 - components: - - pos: 2.5,24.5 - parent: 1653 - type: Transform - - uid: 270 - components: - - pos: 37.5,4.5 - parent: 1653 - type: Transform - - uid: 283 - components: - - pos: 17.5,8.5 - parent: 1653 - type: Transform - - uid: 488 - components: - - pos: 29.5,8.5 - parent: 1653 - type: Transform -- proto: OreProcessor - entities: - - uid: 269 - components: - - pos: 24.5,10.5 - parent: 1653 - type: Transform - - uid: 320 - components: - - pos: 3.5,46.5 - parent: 1653 - type: Transform -- proto: OrganHumanAppendix - entities: - - uid: 148 - components: - - pos: 10.481619,44.360027 - parent: 1653 - type: Transform -- proto: OrganHumanHeart - entities: - - uid: 206 - components: - - pos: 9.478245,26.669188 - parent: 1653 - type: Transform -- proto: PaintingSadClown - entities: - - uid: 122 - components: - - pos: 43.5,39.5 - parent: 1653 - type: Transform -- proto: PaintingSkeletonCigarette - entities: - - uid: 362 - components: - - pos: 32.5,21.5 - parent: 1653 - type: Transform -- proto: Pickaxe - entities: - - uid: 158 - components: - - pos: 21.525682,34.54406 - parent: 1653 - type: Transform - - uid: 179 - components: - - pos: 21.743324,22.05294 - parent: 1653 - type: Transform -- proto: PlasmaOre1 - entities: - - uid: 469 - components: - - pos: 30.486202,10.491858 - parent: 1653 - type: Transform - - uid: 482 - components: - - pos: 30.486202,10.491858 - parent: 1653 - type: Transform - - uid: 483 - components: - - pos: 30.486202,10.491858 - parent: 1653 - type: Transform - - uid: 485 - components: - - pos: 30.486202,10.491858 - parent: 1653 - type: Transform - - uid: 489 - components: - - pos: 30.486202,10.491858 - parent: 1653 - type: Transform -- proto: PlushieLizard - entities: - - uid: 41 - components: - - pos: 35.503193,14.666253 - parent: 1653 - type: Transform -- proto: PlushiePenguin - entities: - - uid: 415 - components: - - pos: 13.526197,27.541958 - parent: 1653 - type: Transform -- proto: PortableGeneratorJrPacman - entities: - - uid: 392 - components: - - pos: 37.5,31.5 - parent: 1653 - type: Transform -- proto: PottedPlantRandom - entities: - - uid: 44 - components: - - pos: 44.5,14.5 - parent: 1653 - type: Transform - - uid: 50 - components: - - pos: 45.5,14.5 - parent: 1653 - type: Transform - - uid: 94 - components: - - pos: 42.5,14.5 - parent: 1653 - type: Transform - - uid: 347 - components: - - pos: 41.5,14.5 - parent: 1653 - type: Transform -- proto: PowerCellHyperPrinted - entities: - - uid: 52 - components: - - pos: 31.760115,2.7803574 - parent: 1653 - type: Transform -- proto: PoweredSmallLight - entities: - - uid: 156 - components: - - rot: 1.5707963267948966 rad - pos: 10.5,45.5 - parent: 1653 - type: Transform -- proto: PuddleVomit - entities: - - uid: 229 - components: - - pos: 3.5,45.5 - parent: 1653 - type: Transform -- proto: Rack - entities: - - uid: 276 - components: - - pos: 18.5,45.5 - parent: 1653 - type: Transform - - uid: 334 - components: - - pos: 20.5,45.5 - parent: 1653 - type: Transform - - uid: 335 - components: - - pos: 20.5,46.5 - parent: 1653 - type: Transform - - uid: 352 - components: - - pos: 21.5,34.5 - parent: 1653 - type: Transform - - uid: 365 - components: - - pos: 10.5,46.5 - parent: 1653 - type: Transform - - uid: 403 - components: - - pos: 4.5,45.5 - parent: 1653 - type: Transform - - uid: 410 - components: - - pos: 22.5,34.5 - parent: 1653 - type: Transform -- proto: Railing - entities: - - uid: 260 - components: - - rot: 3.141592653589793 rad - pos: 27.5,9.5 - parent: 1653 - type: Transform - - uid: 261 - components: - - rot: 3.141592653589793 rad - pos: 28.5,9.5 - parent: 1653 - type: Transform - - uid: 277 - components: - - rot: 3.141592653589793 rad - pos: 26.5,9.5 - parent: 1653 - type: Transform - - uid: 327 - components: - - rot: 3.141592653589793 rad - pos: 30.5,9.5 - parent: 1653 - type: Transform - - uid: 376 - components: - - rot: 3.141592653589793 rad - pos: 25.5,9.5 - parent: 1653 - type: Transform - - uid: 467 - components: - - rot: 3.141592653589793 rad - pos: 29.5,9.5 - parent: 1653 - type: Transform -- proto: RailingCornerSmall - entities: - - uid: 371 - components: - - pos: 31.5,9.5 - parent: 1653 - type: Transform -- proto: RandomArtifactSpawner - entities: - - uid: 48 - components: - - pos: 43.5,14.5 - parent: 1653 - type: Transform -- proto: RandomCargoCorpseSpawner - entities: - - uid: 274 - components: - - pos: 11.5,46.5 - parent: 1653 - type: Transform -- proto: RandomServiceCorpseSpawner - entities: - - uid: 400 - components: - - pos: 19.5,45.5 - parent: 1653 - type: Transform -- proto: SalvageMaterialCrateSpawner - entities: - - uid: 481 - components: - - pos: 27.5,8.5 - parent: 1653 - type: Transform - - uid: 491 - components: - - pos: 30.5,8.5 - parent: 1653 - type: Transform -- proto: ShadowTree03 - entities: - - uid: 68 - components: - - pos: 19.477606,14.337568 - parent: 1653 - type: Transform -- proto: SheetSteel1 - entities: - - uid: 457 - components: - - pos: 13.481619,44.391277 - parent: 1653 - type: Transform -- proto: ShellShotgunIncendiary - entities: - - uid: 405 - components: - - pos: 18.58831,45.763992 - parent: 1653 - type: Transform -- proto: ShellShotgunSlug - entities: - - uid: 339 - components: - - pos: 18.603935,45.404617 - parent: 1653 - type: Transform -- proto: Shovel - entities: - - uid: 30 - components: - - pos: 33.425346,4.383849 - parent: 1653 - type: Transform - - uid: 394 - components: - - pos: 31.844257,31.05841 - parent: 1653 - type: Transform -- proto: SignNTMine - entities: - - uid: 253 - components: - - pos: 4.5,43.5 - parent: 1653 - type: Transform - - uid: 326 - components: - - pos: 20.5,43.5 - parent: 1653 - type: Transform -- proto: SilverOre1 - entities: - - uid: 198 - components: - - pos: 29.423702,10.476233 - parent: 1653 - type: Transform - - uid: 318 - components: - - pos: 29.423702,10.476233 - parent: 1653 - type: Transform - - uid: 484 - components: - - pos: 29.423702,10.476233 - parent: 1653 - type: Transform - - uid: 486 - components: - - pos: 29.423702,10.476233 - parent: 1653 - type: Transform - - uid: 487 - components: - - pos: 29.423702,10.476233 - parent: 1653 - type: Transform -- proto: SmallLight - entities: - - uid: 336 - components: - - rot: 1.5707963267948966 rad - pos: 18.5,45.5 - parent: 1653 - type: Transform - - uid: 434 - components: - - rot: 1.5707963267948966 rad - pos: 2.5,45.5 - parent: 1653 - type: Transform -- proto: SpawnMobFrog - entities: - - uid: 386 - components: - - pos: 18.5,44.5 - parent: 1653 - type: Transform -- proto: SpearBone - entities: - - uid: 232 - components: - - flags: InContainer - type: MetaData - - parent: 231 - type: Transform - - canCollide: False - type: Physics - - type: InsideEntityStorage -- proto: SteelBench - entities: - - uid: 71 - components: - - pos: 19.5,13.5 - parent: 1653 - type: Transform -- proto: SteelOre - entities: - - uid: 197 - components: - - pos: 28.470577,10.523108 - parent: 1653 - type: Transform -- proto: TableCarpet - entities: - - uid: 465 - components: - - pos: 13.5,26.5 - parent: 1653 - type: Transform -- proto: TableReinforced - entities: - - uid: 246 - components: - - pos: 4.5,46.5 - parent: 1653 - type: Transform -- proto: TableWood - entities: - - uid: 56 - components: - - pos: 39.5,0.5 - parent: 1653 - type: Transform - - uid: 59 - components: - - pos: 51.5,1.5 - parent: 1653 - type: Transform - - uid: 124 - components: - - pos: 34.5,40.5 - parent: 1653 - type: Transform - - uid: 133 - components: - - pos: 5.5,40.5 - parent: 1653 - type: Transform - - uid: 173 - components: - - pos: 20.5,21.5 - parent: 1653 - type: Transform - - uid: 226 - components: - - pos: 36.5,40.5 - parent: 1653 - type: Transform - - uid: 227 - components: - - pos: 35.5,40.5 - parent: 1653 - type: Transform - - uid: 333 - components: - - pos: 36.5,31.5 - parent: 1653 - type: Transform -- proto: ToiletDirtyWater - entities: - - uid: 406 - components: - - pos: 32.5,20.5 - parent: 1653 - type: Transform -- proto: Torch - entities: - - uid: 58 - components: - - pos: 52.617035,4.4522324 - parent: 1653 - type: Transform - - uid: 60 - components: - - pos: 38.654633,2.7959824 - parent: 1653 - type: Transform - - uid: 135 - components: - - pos: 5.4760814,40.63729 - parent: 1653 - type: Transform - - uid: 136 - components: - - pos: 5.6792064,40.621666 - parent: 1653 - type: Transform - - uid: 366 - components: - - pos: 10.669119,46.594402 - parent: 1653 - type: Transform -- proto: TorsoSkeleton - entities: - - uid: 325 - components: - - pos: 32.5085,20.620539 - parent: 1653 - type: Transform -- proto: TrashBakedBananaPeel - entities: - - uid: 210 - components: - - pos: 5.484687,26.403563 - parent: 1653 - type: Transform -- proto: UraniumOre - entities: - - uid: 433 - components: - - pos: 4.487873,46.58196 - parent: 1653 - type: Transform -- proto: UraniumOre1 - entities: - - uid: 192 - components: - - pos: 27.517452,10.507483 - parent: 1653 - type: Transform - - uid: 193 - components: - - pos: 27.517452,10.507483 - parent: 1653 - type: Transform - - uid: 194 - components: - - pos: 27.517452,10.507483 - parent: 1653 - type: Transform - - uid: 195 - components: - - pos: 27.517452,10.507483 - parent: 1653 - type: Transform - - uid: 196 - components: - - pos: 27.517452,10.507483 - parent: 1653 - type: Transform -- proto: WallMining - entities: - - uid: 11 - components: - - pos: 13.5,46.5 - parent: 1653 - type: Transform - - uid: 150 - components: - - pos: 18.5,43.5 - parent: 1653 - type: Transform - - uid: 151 - components: - - pos: 17.5,44.5 - parent: 1653 - type: Transform - - uid: 152 - components: - - pos: 17.5,46.5 - parent: 1653 - type: Transform - - uid: 153 - components: - - pos: 18.5,47.5 - parent: 1653 - type: Transform - - uid: 154 - components: - - pos: 20.5,47.5 - parent: 1653 - type: Transform - - uid: 157 - components: - - pos: 17.5,45.5 - parent: 1653 - type: Transform - - uid: 159 - components: - - pos: 4.5,47.5 - parent: 1653 - type: Transform - - uid: 160 - components: - - pos: 2.5,47.5 - parent: 1653 - type: Transform - - uid: 161 - components: - - pos: 1.5,44.5 - parent: 1653 - type: Transform - - uid: 163 - components: - - pos: 5.5,45.5 - parent: 1653 - type: Transform - - uid: 164 - components: - - pos: 1.5,46.5 - parent: 1653 - type: Transform - - uid: 165 - components: - - pos: 1.5,45.5 - parent: 1653 - type: Transform - - uid: 247 - components: - - pos: 10.5,47.5 - parent: 1653 - type: Transform - - uid: 265 - components: - - pos: 21.5,46.5 - parent: 1653 - type: Transform - - uid: 329 - components: - - pos: 20.5,43.5 - parent: 1653 - type: Transform - - uid: 353 - components: - - pos: 9.5,46.5 - parent: 1653 - type: Transform - - uid: 370 - components: - - pos: 5.5,44.5 - parent: 1653 - type: Transform - - uid: 373 - components: - - pos: 5.5,46.5 - parent: 1653 - type: Transform - - uid: 402 - components: - - rot: 1.5707963267948966 rad - pos: 10.5,43.5 - parent: 1653 - type: Transform - - uid: 425 - components: - - pos: 21.5,45.5 - parent: 1653 - type: Transform - - uid: 427 - components: - - pos: 21.5,44.5 - parent: 1653 - type: Transform - - uid: 429 - components: - - pos: 9.5,44.5 - parent: 1653 - type: Transform - - uid: 430 - components: - - pos: 9.5,45.5 - parent: 1653 - type: Transform - - uid: 431 - components: - - pos: 12.5,47.5 - parent: 1653 - type: Transform - - uid: 455 - components: - - pos: 2.5,43.5 - parent: 1653 - type: Transform - - uid: 456 - components: - - pos: 4.5,43.5 - parent: 1653 - type: Transform -- proto: WallMiningDiagonal - entities: - - uid: 166 - components: - - pos: 1.5,47.5 - parent: 1653 - type: Transform - - uid: 167 - components: - - rot: -1.5707963267948966 rad - pos: 5.5,47.5 - parent: 1653 - type: Transform - - uid: 168 - components: - - rot: 3.141592653589793 rad - pos: 5.5,43.5 - parent: 1653 - type: Transform - - uid: 169 - components: - - rot: 1.5707963267948966 rad - pos: 1.5,43.5 - parent: 1653 - type: Transform - - uid: 251 - components: - - pos: 9.5,47.5 - parent: 1653 - type: Transform - - uid: 275 - components: - - rot: -1.5707963267948966 rad - pos: 13.5,47.5 - parent: 1653 - type: Transform - - uid: 397 - components: - - rot: 1.5707963267948966 rad - pos: 9.5,43.5 - parent: 1653 - type: Transform - - uid: 428 - components: - - pos: 17.5,47.5 - parent: 1653 - type: Transform - - uid: 493 - components: - - rot: -1.5707963267948966 rad - pos: 21.5,47.5 - parent: 1653 - type: Transform - - uid: 494 - components: - - rot: 3.141592653589793 rad - pos: 21.5,43.5 - parent: 1653 - type: Transform - - uid: 495 - components: - - rot: 1.5707963267948966 rad - pos: 17.5,43.5 - parent: 1653 - type: Transform -- proto: WallWood - entities: - - uid: 16 - components: - - pos: 31.5,19.5 - parent: 1653 - type: Transform - - uid: 188 - components: - - pos: 43.5,39.5 - parent: 1653 - type: Transform - - uid: 255 - components: - - pos: 31.5,21.5 - parent: 1653 - type: Transform - - uid: 323 - components: - - pos: 33.5,20.5 - parent: 1653 - type: Transform - - uid: 324 - components: - - pos: 33.5,21.5 - parent: 1653 - type: Transform - - uid: 338 - components: - - pos: 33.5,19.5 - parent: 1653 - type: Transform - - uid: 408 - components: - - pos: 32.5,21.5 - parent: 1653 - type: Transform - - uid: 409 - components: - - pos: 31.5,20.5 - parent: 1653 - type: Transform -- proto: WaterTankHighCapacity - entities: - - uid: 219 - components: - - pos: 27.5,14.5 - parent: 1653 - type: Transform -- proto: WeaponShotgunImprovised - entities: - - uid: 412 - components: - - pos: 20.496641,45.467117 - parent: 1653 - type: Transform -- proto: WeldingFuelTankFull - entities: - - uid: 10 - components: - - pos: 2.5,46.5 - parent: 1653 - type: Transform -- proto: WoodDoor - entities: - - uid: 407 - components: - - pos: 32.5,19.5 - parent: 1653 - type: Transform -- proto: WoodenSign - entities: - - uid: 189 - components: - - pos: 1.5555744,26.347673 - parent: 1653 - type: Transform -- proto: WoodenSignRight - entities: - - uid: 62 - components: - - pos: 11.898959,14.345065 - parent: 1653 - type: Transform - - uid: 177 - components: - - pos: 9.503841,22.358318 - parent: 1653 - type: Transform - - uid: 440 - components: - - pos: 25.205534,32.33467 - parent: 1653 - type: Transform - - uid: 451 - components: - - pos: 5.5491443,7.271117 - parent: 1653 - type: Transform -- proto: WoodenSupport - entities: - - uid: 9 - components: - - pos: 10.5,10.5 - parent: 1653 - type: Transform - - uid: 66 - components: - - pos: 38.5,16.5 - parent: 1653 - type: Transform - - uid: 107 - components: - - pos: 8.5,32.5 - parent: 1653 - type: Transform - - uid: 108 - components: - - pos: 1.5,36.5 - parent: 1653 - type: Transform - - uid: 110 - components: - - pos: 0.5,22.5 - parent: 1653 - type: Transform - - uid: 140 - components: - - pos: 34.5,6.5 - parent: 1653 - type: Transform - - uid: 146 - components: - - pos: 24.5,6.5 - parent: 1653 - type: Transform - - uid: 174 - components: - - pos: 13.5,22.5 - parent: 1653 - type: Transform - - uid: 204 - components: - - pos: 2.5,28.5 - parent: 1653 - type: Transform - - uid: 207 - components: - - pos: 0.5,28.5 - parent: 1653 - type: Transform - - uid: 259 - components: - - pos: 20.5,24.5 - parent: 1653 - type: Transform - - uid: 279 - components: - - pos: 12.5,10.5 - parent: 1653 - type: Transform - - uid: 286 - components: - - pos: 22.5,10.5 - parent: 1653 - type: Transform - - uid: 422 - components: - - pos: 22.5,28.5 - parent: 1653 - type: Transform - - uid: 424 - components: - - pos: 22.5,40.5 - parent: 1653 - type: Transform - - uid: 450 - components: - - pos: 0.5,10.5 - parent: 1653 - type: Transform - - uid: 462 - components: - - pos: 53.5,4.5 - parent: 1653 - type: Transform - - uid: 464 - components: - - pos: 36.5,4.5 - parent: 1653 - type: Transform - - uid: 470 - components: - - pos: 8.5,36.5 - parent: 1653 - type: Transform -- proto: WoodenSupportBeam - entities: - - uid: 35 - components: - - pos: 29.5,1.5 - parent: 1653 - type: Transform - - uid: 143 - components: - - pos: 33.5,10.5 - parent: 1653 - type: Transform - - uid: 285 - components: - - pos: 12.5,6.5 - parent: 1653 - type: Transform - - uid: 307 - components: - - pos: 14.5,20.5 - parent: 1653 - type: Transform - - uid: 355 - components: - - pos: 25.5,1.5 - parent: 1653 - type: Transform - - uid: 395 - components: - - pos: 17.5,27.5 - parent: 1653 - type: Transform -- proto: WoodenSupportWall - entities: - - uid: 27 - components: - - pos: 34.5,4.5 - parent: 1653 - type: Transform - - uid: 33 - components: - - pos: 27.5,1.5 - parent: 1653 - type: Transform - - uid: 34 - components: - - pos: 28.5,1.5 - parent: 1653 - type: Transform - - uid: 36 - components: - - pos: 32.5,2.5 - parent: 1653 - type: Transform - - uid: 37 - components: - - pos: 32.5,3.5 - parent: 1653 - type: Transform - - uid: 38 - components: - - pos: 30.5,1.5 - parent: 1653 - type: Transform - - uid: 39 - components: - - pos: 32.5,0.5 - parent: 1653 - type: Transform - - uid: 53 - components: - - pos: 7.5,8.5 - parent: 1653 - type: Transform - - uid: 54 - components: - - pos: 6.5,8.5 - parent: 1653 - type: Transform - - uid: 55 - components: - - pos: 5.5,8.5 - parent: 1653 - type: Transform - - uid: 69 - components: - - pos: 0.5,12.5 - parent: 1653 - type: Transform - - uid: 75 - components: - - pos: 16.5,27.5 - parent: 1653 - type: Transform - - uid: 91 - components: - - pos: 32.5,1.5 - parent: 1653 - type: Transform - - uid: 92 - components: - - pos: 31.5,3.5 - parent: 1653 - type: Transform - - uid: 98 - components: - - pos: 18.5,25.5 - parent: 1653 - type: Transform - - uid: 125 - components: - - pos: 38.5,40.5 - parent: 1653 - type: Transform - - uid: 141 - components: - - pos: 34.5,10.5 - parent: 1653 - type: Transform - - uid: 142 - components: - - pos: 34.5,9.5 - parent: 1653 - type: Transform - - uid: 175 - components: - - pos: 12.5,20.5 - parent: 1653 - type: Transform - - uid: 176 - components: - - pos: 15.5,20.5 - parent: 1653 - type: Transform - - uid: 185 - components: - - pos: 32.5,40.5 - parent: 1653 - type: Transform - - uid: 234 - components: - - pos: 50.5,0.5 - parent: 1653 - type: Transform - - uid: 236 - components: - - pos: 30.5,3.5 - parent: 1653 - type: Transform - - uid: 237 - components: - - pos: 25.5,3.5 - parent: 1653 - type: Transform - - uid: 238 - components: - - pos: 25.5,4.5 - parent: 1653 - type: Transform - - uid: 239 - components: - - pos: 18.5,1.5 - parent: 1653 - type: Transform - - uid: 257 - components: - - pos: 29.5,3.5 - parent: 1653 - type: Transform - - uid: 263 - components: - - pos: 25.5,2.5 - parent: 1653 - type: Transform - - uid: 280 - components: - - pos: 13.5,6.5 - parent: 1653 - type: Transform - - uid: 282 - components: - - pos: 21.5,6.5 - parent: 1653 - type: Transform - - uid: 287 - components: - - pos: 22.5,6.5 - parent: 1653 - type: Transform - - uid: 297 - components: - - pos: 6.5,40.5 - parent: 1653 - type: Transform - - uid: 299 - components: - - pos: 0.5,38.5 - parent: 1653 - type: Transform - - uid: 305 - components: - - pos: 14.5,30.5 - parent: 1653 - type: Transform - - uid: 310 - components: - - pos: 14.5,32.5 - parent: 1653 - type: Transform - - uid: 311 - components: - - pos: 26.5,30.5 - parent: 1653 - type: Transform - - uid: 342 - components: - - pos: 22.5,3.5 - parent: 1653 - type: Transform - - uid: 343 - components: - - pos: 21.5,3.5 - parent: 1653 - type: Transform - - uid: 344 - components: - - pos: 23.5,3.5 - parent: 1653 - type: Transform - - uid: 345 - components: - - pos: 24.5,3.5 - parent: 1653 - type: Transform - - uid: 346 - components: - - pos: 20.5,1.5 - parent: 1653 - type: Transform - - uid: 349 - components: - - pos: 21.5,1.5 - parent: 1653 - type: Transform - - uid: 388 - components: - - pos: 28.5,3.5 - parent: 1653 - type: Transform - - uid: 389 - components: - - pos: 26.5,1.5 - parent: 1653 - type: Transform - - uid: 419 - components: - - pos: 19.5,1.5 - parent: 1653 - type: Transform - - uid: 437 - components: - - pos: 26.5,32.5 - parent: 1653 - type: Transform - - uid: 461 - components: - - pos: 54.5,4.5 - parent: 1653 - type: Transform -- proto: WoodenSupportWallBroken - entities: - - uid: 26 - components: - - pos: 27.5,3.5 - parent: 1653 - type: Transform - - uid: 80 - components: - - pos: 17.5,25.5 - parent: 1653 - type: Transform - - uid: 95 - components: - - pos: 4.5,8.5 - parent: 1653 - type: Transform - - uid: 284 - components: - - pos: 20.5,6.5 - parent: 1653 - type: Transform - - uid: 348 - components: - - pos: 20.5,3.5 - parent: 1653 - type: Transform - - uid: 356 - components: - - pos: 39.5,2.5 - parent: 1653 - type: Transform - - uid: 463 - components: - - pos: 50.5,1.5 - parent: 1653 - type: Transform -... +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 22: FloorCave + 23: FloorCaveDrought + 40: FloorDirt + 66: FloorMining + 68: FloorMiningLight + 71: FloorOldConcreteMono + 72: FloorOldConcreteSmooth + 82: FloorShuttleOrange + 118: FloorWood + 121: Plating + 124: PlatingDamaged +entities: +- proto: "" + entities: + - uid: 1653 + components: + - type: MetaData + - type: Transform + - type: Map + - type: PhysicsMap + - type: Broadphase + - type: OccluderTree + - chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: FgAAAAAEFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAAFgAAAAACFgAAAAAFFgAAAAACFgAAAAAGFgAAAAADFgAAAAAAFgAAAAADFgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAAGFgAAAAACFgAAAAACFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAFFgAAAAAEFgAAAAACFgAAAAAFFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAACFgAAAAAGFgAAAAACFgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAADFgAAAAAEFgAAAAABFgAAAAACFgAAAAABFgAAAAAAFgAAAAAFFgAAAAAEFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAEFgAAAAABFgAAAAAEFgAAAAACFgAAAAAGFgAAAAAFFgAAAAAAFgAAAAABFgAAAAAFFgAAAAADFgAAAAADFgAAAAAFFgAAAAAFFgAAAAABFgAAAAAFFgAAAAACFgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAABFgAAAAABFgAAAAACFgAAAAABFgAAAAAGFgAAAAAAFgAAAAAGFwAAAAAAFwAAAAAAFgAAAAACUgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAEFgAAAAACFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAABFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADUgAAAAAAFgAAAAACFgAAAAAFFgAAAAACFwAAAAAAFgAAAAAGFgAAAAADFwAAAAAAFwAAAAAAFgAAAAAEFgAAAAAAFgAAAAACFgAAAAADFwAAAAAAFgAAAAAAFgAAAAAFUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAABFgAAAAABFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAFFwAAAAAAFwAAAAAAUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGFwAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAAFgAAAAABFgAAAAAEFgAAAAAEUgAAAAAAFgAAAAABFgAAAAADFgAAAAACFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAEFgAAAAABFgAAAAAEFwAAAAABFwAAAAABFwAAAAAEUgAAAAAAFgAAAAAFFgAAAAABFgAAAAAFFgAAAAADFgAAAAADFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAFFgAAAAABFgAAAAAGFgAAAAAFFwAAAAAEUgAAAAAAFgAAAAAGFgAAAAAGFwAAAAAGFwAAAAADFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAFgAAAAAGFwAAAAACFgAAAAACFgAAAAABFgAAAAABFgAAAAADFgAAAAAAUgAAAAAAFwAAAAACFgAAAAABFwAAAAAHFgAAAAACFgAAAAAEFwAAAAAEFgAAAAADUgAAAAAAFwAAAAACFgAAAAAGFgAAAAAGFgAAAAABFgAAAAAAFgAAAAAEFwAAAAAEUgAAAAAAFgAAAAABFwAAAAAFFwAAAAAFFgAAAAACFgAAAAABFwAAAAAHFwAAAAAEUgAAAAAA + version: 6 + 0,1: + ind: 0,1 + tiles: FwAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAAUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAGFgAAAAADFgAAAAAGFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAAFgAAAAAEUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAEFwAAAAABFwAAAAAGFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAACFwAAAAAFFwAAAAADFwAAAAADFgAAAAAFUgAAAAAAFwAAAAACFwAAAAADFwAAAAAEFwAAAAAFFgAAAAAEFwAAAAAGFwAAAAAHFwAAAAADFwAAAAAGUgAAAAAAFwAAAAAHFwAAAAACFgAAAAADFwAAAAADFgAAAAABUgAAAAAAFgAAAAABFgAAAAAGFgAAAAAEFgAAAAAGFgAAAAAFFgAAAAAAFwAAAAACFgAAAAAGFgAAAAABUgAAAAAAFgAAAAAGFwAAAAAGFwAAAAABFwAAAAAAFgAAAAACUgAAAAAAFwAAAAAAFgAAAAAGFwAAAAADFwAAAAAHFgAAAAADFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFwAAAAADUgAAAAAAFgAAAAACFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAFUgAAAAAAFwAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAFwAAAAABFgAAAAAAFgAAAAADUgAAAAAAFgAAAAADFwAAAAAFFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAFUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAAUgAAAAAAFwAAAAAAFwAAAAADFwAAAAAHUgAAAAAAFgAAAAABFgAAAAABFgAAAAACUgAAAAAAFgAAAAAFFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAFwAAAAABFwAAAAAFFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFwAAAAAEUgAAAAAAFgAAAAAAFgAAAAAFFgAAAAACUgAAAAAAFgAAAAADFgAAAAAFFgAAAAAEUgAAAAAAFwAAAAACFwAAAAAHFgAAAAADUgAAAAAAFgAAAAACFgAAAAADFgAAAAAGUgAAAAAAFgAAAAADFgAAAAADFgAAAAAAUgAAAAAAFgAAAAACFgAAAAAAFwAAAAABUgAAAAAAFwAAAAAAFgAAAAABFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAABFgAAAAABFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAEFgAAAAABFgAAAAADFgAAAAABFgAAAAAGFgAAAAAEFgAAAAADFgAAAAADUgAAAAAAFgAAAAADFgAAAAAFFgAAAAACFgAAAAACFgAAAAAEFgAAAAAGFgAAAAABFgAAAAAFFgAAAAACFgAAAAAGFgAAAAAAFgAAAAADFgAAAAAFFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAADFgAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: FgAAAAACUgAAAAAAFgAAAAACFgAAAAACFgAAAAABFgAAAAADFgAAAAACKAAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGFgAAAAABFgAAAAAEFgAAAAAAFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAAGFgAAAAABFgAAAAADKAAAAAAAFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAFFgAAAAABFgAAAAAAKAAAAAAAFgAAAAAEUgAAAAAAKAAAAAAAKAAAAAAAFgAAAAAAFgAAAAADKAAAAAAAFgAAAAADFgAAAAACFgAAAAAFKAAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGKAAAAAAAKAAAAAAAFgAAAAACUgAAAAAAKAAAAAAAKAAAAAAAFgAAAAAGFgAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAGFgAAAAABFgAAAAADFgAAAAAGFgAAAAADFgAAAAABKAAAAAAAFgAAAAAGUgAAAAAAKAAAAAAAFgAAAAAEFgAAAAAFFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAGFgAAAAABFgAAAAAGFgAAAAACFgAAAAACFgAAAAAAFgAAAAABKAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADFgAAAAAAFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAFFgAAAAAAFgAAAAAGFgAAAAAEFgAAAAADFgAAAAABFgAAAAAEFwAAAAAAFgAAAAADFwAAAAAAFwAAAAAAFgAAAAAGFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAACFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAADFgAAAAAFFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAGFwAAAAAAFwAAAAAAFgAAAAAGFgAAAAAGFgAAAAACUgAAAAAAFgAAAAAFFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAABFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAEFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAEFgAAAAACUgAAAAAAFgAAAAABFgAAAAAAFgAAAAABFgAAAAAFFgAAAAABFgAAAAABFgAAAAACUgAAAAAAFgAAAAACFwAAAAAAFwAAAAACFwAAAAAEFwAAAAACFgAAAAACFgAAAAAFUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAGFgAAAAADFgAAAAAGFgAAAAABFgAAAAACUgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAHFwAAAAADFwAAAAAAFwAAAAACFgAAAAAAUgAAAAAAFgAAAAABFgAAAAAFFgAAAAABFgAAAAADFgAAAAAFFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAADFgAAAAABFwAAAAAHFwAAAAAAFwAAAAAEFgAAAAADFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAABFgAAAAACFgAAAAAAFgAAAAAFFgAAAAADFgAAAAADUgAAAAAA + version: 6 + 1,1: + ind: 1,1 + tiles: FgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAEFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAABFgAAAAABFgAAAAAAFgAAAAABFgAAAAACFgAAAAAFFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAUgAAAAAAFgAAAAADFgAAAAAAFgAAAAABFgAAAAAGFgAAAAADUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAACFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAABFgAAAAACFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAGUgAAAAAAFgAAAAADFwAAAAADFwAAAAABFgAAAAACFgAAAAAFUgAAAAAAFgAAAAAEdgAAAAADFgAAAAAFUgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFgAAAAABFgAAAAABUgAAAAAAFgAAAAAGFwAAAAAEFwAAAAACFwAAAAAHFgAAAAACUgAAAAAAFgAAAAACdgAAAAABFwAAAAADUgAAAAAAFgAAAAAGFgAAAAAAFgAAAAACFgAAAAAFFgAAAAADUgAAAAAAFgAAAAACFgAAAAACFwAAAAAHFwAAAAAAFgAAAAABUgAAAAAAFgAAAAAAdgAAAAACFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAADFgAAAAAAFgAAAAAFFgAAAAAAUgAAAAAAFgAAAAACFgAAAAAFFgAAAAABFgAAAAADFgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAEFwAAAAAFFwAAAAAGUgAAAAAAFgAAAAAGFwAAAAAFFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAADFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAACFwAAAAAGFwAAAAAAUgAAAAAAFgAAAAAGFgAAAAAFFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAABFgAAAAAGFwAAAAADUgAAAAAAFwAAAAACFgAAAAAEFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAEFwAAAAABUgAAAAAAFgAAAAAGFgAAAAAFFwAAAAAHUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAACFgAAAAAFFgAAAAAFFgAAAAADFgAAAAACFgAAAAAGFgAAAAAFFwAAAAAGFwAAAAAFFwAAAAAAUgAAAAAAFgAAAAAAFwAAAAADFwAAAAADFwAAAAADFwAAAAAEFgAAAAAEFwAAAAAHFwAAAAAGFgAAAAADFgAAAAACFgAAAAADFwAAAAAEFwAAAAABFwAAAAABFwAAAAAHUgAAAAAAFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAE + version: 6 + -1,2: + ind: -1,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: FgAAAAAAFgAAAAACFgAAAAAEFgAAAAADFgAAAAACFgAAAAAGFgAAAAAFFgAAAAACFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAFFgAAAAABUgAAAAAAFgAAAAAFFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAACFgAAAAAEFwAAAAAAFgAAAAACFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAGFwAAAAAEUgAAAAAAFgAAAAAEFgAAAAADFgAAAAAAFgAAAAADFwAAAAAFFwAAAAACFgAAAAAFFgAAAAACFgAAAAAFFgAAAAAFFgAAAAAEFwAAAAAAFgAAAAAGFgAAAAAAFgAAAAACUgAAAAAAFgAAAAABFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAACFgAAAAAEFwAAAAAHFgAAAAAGFgAAAAAFFgAAAAAFFgAAAAAGFgAAAAAAFgAAAAACUgAAAAAAFgAAAAAEFgAAAAAAFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAGFgAAAAABFgAAAAAGFgAAAAADFgAAAAABFgAAAAAAFgAAAAAEUgAAAAAAFgAAAAADFgAAAAABFgAAAAAFFgAAAAAAFgAAAAAEFgAAAAADFgAAAAAFUgAAAAAAFgAAAAAEFgAAAAACFgAAAAABFgAAAAADFgAAAAAEFgAAAAACFgAAAAABUgAAAAAAFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAABFgAAAAAAFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAABFgAAAAABFgAAAAADFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAADFgAAAAADFgAAAAADFgAAAAAAFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAACFgAAAAABFgAAAAAFFgAAAAABFgAAAAABFgAAAAAAFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAACFgAAAAAEFgAAAAADFgAAAAAAFgAAAAAGUgAAAAAAFgAAAAAAFgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAADFgAAAAABQgAAAAAAFgAAAAAEfAAAAAAAFgAAAAACFgAAAAAAUgAAAAAAFgAAAAAAQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAFgAAAAAAQgAAAAAAfAAAAAABRAAAAAAAeQAAAAAAFgAAAAAAFgAAAAABUgAAAAAAFgAAAAAFQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAAUgAAAAAAFgAAAAAFQgAAAAAARAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAFgAAAAACUgAAAAAAFgAAAAABQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAGUgAAAAAAFgAAAAAFQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAABUgAAAAAAFgAAAAABFgAAAAACQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAGFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAACQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAABFgAAAAABUgAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: FgAAAAADFgAAAAAGFgAAAAAGFgAAAAAFFgAAAAAGFgAAAAAFFgAAAAAFUgAAAAAAFgAAAAADFgAAAAACFgAAAAAFFgAAAAAGFgAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,2: + ind: 1,2 + tiles: FgAAAAACFgAAAAAFFgAAAAADFgAAAAAEFgAAAAACFwAAAAACFwAAAAADFwAAAAAAFwAAAAAGFwAAAAAHFwAAAAAEUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAACFgAAAAAEFgAAAAAAFgAAAAAAFgAAAAADFgAAAAABUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAFFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAABFgAAAAACFgAAAAAFFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAADFgAAAAAAFgAAAAAGFgAAAAAEFgAAAAADFgAAAAAFFgAAAAAAFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAAGFgAAAAABUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAACFgAAAAACFgAAAAAAFgAAAAADFgAAAAAEFgAAAAAEFgAAAAAFUgAAAAAAFgAAAAABFgAAAAAEFgAAAAABFgAAAAAAFgAAAAAFFgAAAAACFgAAAAAAUgAAAAAAFgAAAAAGFgAAAAAEFgAAAAAEFgAAAAAGFgAAAAAEFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAACFgAAAAAGFgAAAAAAFgAAAAAGFgAAAAACFgAAAAADUgAAAAAAFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAAFgAAAAAAFgAAAAAAFgAAAAACUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAABFgAAAAAAFgAAAAAFFgAAAAACFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAFFgAAAAABFgAAAAABFgAAAAAAFgAAAAAFFgAAAAAGUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAFFgAAAAAAQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAACUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAEQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAEQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABQgAAAAAAQgAAAAAARAAAAAAAQgAAAAAAQgAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABFgAAAAAEQgAAAAAAQgAAAAAAQgAAAAAAFgAAAAAFFgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: FgAAAAAEFgAAAAACFgAAAAAFFgAAAAAGFgAAAAACFgAAAAACFgAAAAAFUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: FgAAAAABFgAAAAABFgAAAAACUgAAAAAAFwAAAAAAFgAAAAAFFgAAAAAFFgAAAAADFgAAAAAEFgAAAAACFgAAAAAAFgAAAAAEFgAAAAAGFgAAAAADFgAAAAADFgAAAAAGFgAAAAAGFgAAAAAFKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFgAAAAAFFgAAAAACFgAAAAABFgAAAAACFgAAAAAGFgAAAAAGFgAAAAAGFgAAAAAAFgAAAAABFgAAAAACFgAAAAAGFgAAAAAEKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFgAAAAAAFgAAAAAFFgAAAAAAFgAAAAAAFgAAAAAEFgAAAAAGFgAAAAAAFgAAAAACFgAAAAAAFgAAAAAGKAAAAAAAKAAAAAAAKAAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFgAAAAACFgAAAAAFFgAAAAAAFgAAAAACFgAAAAABFgAAAAAAFgAAAAADFgAAAAAGKAAAAAAAKAAAAAAAFgAAAAAFUgAAAAAAFgAAAAADFgAAAAADFwAAAAAAFgAAAAABFgAAAAADFgAAAAACFgAAAAAEFgAAAAADFgAAAAADFgAAAAAFFgAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFgAAAAAEFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAABFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAFgAAAAAAFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAAFFgAAAAAEFgAAAAADFgAAAAAEFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAAGFgAAAAACFgAAAAAAFgAAAAAFFgAAAAADFgAAAAAFFgAAAAAGUgAAAAAAFgAAAAABRwAAAAADRwAAAAABSAAAAAAARwAAAAADFgAAAAAFFgAAAAAFUgAAAAAAFgAAAAACFgAAAAAEFgAAAAADFgAAAAAGFgAAAAAFFgAAAAABFgAAAAAAUgAAAAAAFgAAAAABFgAAAAACSAAAAAACSAAAAAADRwAAAAADSAAAAAAAFgAAAAADUgAAAAAAFgAAAAADFgAAAAADFgAAAAADFgAAAAAFFgAAAAABFgAAAAAEFgAAAAAAUgAAAAAAFgAAAAAGRwAAAAABSAAAAAACSAAAAAAASAAAAAACRwAAAAADFgAAAAAGUgAAAAAAFgAAAAAGFgAAAAAEFgAAAAAFFgAAAAACFgAAAAAEFgAAAAACFgAAAAAGUgAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: FgAAAAADFgAAAAACFgAAAAAEFgAAAAAEFgAAAAADFwAAAAAAFgAAAAAEUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAGFgAAAAAEFgAAAAAGFgAAAAADFgAAAAAFFgAAAAADFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAABFgAAAAAAFgAAAAABFgAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAFgAAAAADFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAGFgAAAAABFgAAAAAGFgAAAAAAFgAAAAAFFgAAAAADFgAAAAADUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + 3,-1: + ind: 3,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,1: + ind: 3,1 + tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,2: + ind: 3,2 + tiles: UgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: FgAAAAAAFgAAAAAFFgAAAAAAFgAAAAADFgAAAAAFFgAAAAAGFwAAAAACFwAAAAABFgAAAAAFUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAAGFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAFFgAAAAAEFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAEFgAAAAABFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAAAFgAAAAABFgAAAAAGFgAAAAAFFgAAAAACFgAAAAACFgAAAAAEUgAAAAAAFgAAAAAAFgAAAAAGFgAAAAAAFgAAAAADFgAAAAACFgAAAAAEFgAAAAAGUgAAAAAAFgAAAAABFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFgAAAAAAFgAAAAAFUgAAAAAAFgAAAAACFgAAAAADFgAAAAAGFgAAAAADFgAAAAACFgAAAAAFFgAAAAAEUgAAAAAAFgAAAAAEFgAAAAABFgAAAAAEFgAAAAACFgAAAAACFgAAAAABFgAAAAAGUgAAAAAAFgAAAAAEFgAAAAABFgAAAAACFgAAAAADFgAAAAABFgAAAAABFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: FgAAAAAAFgAAAAAGFgAAAAAEFgAAAAACFgAAAAAGFgAAAAAEFgAAAAADUgAAAAAAFgAAAAACFgAAAAAEFgAAAAAAFgAAAAAGFgAAAAADFgAAAAADFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAFFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAAAdgAAAAABFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAADdgAAAAABFgAAAAACUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAdgAAAAAAdgAAAAAAFgAAAAAEUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFgAAAAADFgAAAAAAFgAAAAAGUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAAFFwAAAAAHFwAAAAAGFwAAAAABFwAAAAAFFgAAAAAFFgAAAAAEFgAAAAAEFgAAAAADUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAFwAAAAADFwAAAAABFwAAAAAGFgAAAAAAFgAAAAACFgAAAAAEFgAAAAACFgAAAAABFwAAAAAHUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAAUgAAAAAA + version: 6 + type: MapGrid + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: Basalt1 + decals: + 1342: 6.955441,21.068565 + 1405: 5.569477,24.342073 + 1409: 21.493462,30.781818 + 1423: 16.244232,47.723083 + - node: + color: '#FFFFFFFF' + id: Basalt2 + decals: + 1408: 21.571587,25.092073 + 1411: 38.670036,30.328693 + 1412: 32.59149,34.61899 + - node: + color: '#FFFFFFFF' + id: Basalt3 + decals: + 1404: 2.0071354,12.534689 + 1413: 28.294615,35.52524 + 1419: 1.8725519,39.603367 + 1428: 40.1997,39.904606 + 1429: 37.775063,38.35773 + 1430: 27.454536,18.497276 + - node: + color: '#FFFFFFFF' + id: Basalt4 + decals: + 1407: 14.05264,26.857698 + 1420: 8.417587,42.316833 + - node: + color: '#FFFFFFFF' + id: Basalt5 + decals: + 1347: 7.0134563,30.499578 + 1403: 8.765746,13.144064 + 1414: 24.413132,39.478367 + 1421: 13.773578,47.660583 + 1426: 12.267979,34.57054 + 1427: 44.902824,38.38898 + 1431: 24.313911,21.591026 + 1432: 21.396156,20.325401 + - node: + color: '#FFFFFFFF' + id: Basalt6 + decals: + 1341: 0.908566,19.95919 + 1415: 20.816694,39.134617 + - node: + color: '#FFFFFFFF' + id: Basalt7 + decals: + 1339: 10,18 + 1416: 12.790198,39.33774 + 1422: 21.884857,42.17621 + 1433: 18.589165,18.387901 + 1434: 34.005077,18.028526 + 1435: 4.6335278,15.488716 + - node: + color: '#FFFFFFFF' + id: Basalt8 + decals: + 1340: 7.1637583,18.068565 + 1417: 8.813416,38.415867 + 1424: 0.46817493,47.80121 + 1425: 8.544811,34.586166 + - node: + color: '#FFFFFFFF' + id: Basalt9 + decals: + 1343: 13.433517,19.162315 + 1406: 0.6944771,26.826448 + 1410: 30.17049,31.359943 + 1418: 5.810052,38.259617 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtLight + decals: + 301: 9,45 + 306: 13,42 + 308: 10,42 + 311: 13,45 + 578: 10,32 + - node: + color: '#FFFFFFFF' + id: Rock06 + decals: + 1344: 2.1520143,30.343328 + - node: + color: '#FFFFFFFF' + id: Rock07 + decals: + 1345: 10.29961,31.483953 + - node: + color: '#DE3A3A96' + id: rune6 + decals: + 1402: 8.952158,26.184813 + - node: + color: '#79150031' + id: splatter + decals: + 1348: 10.903494,45.563152 + 1349: 10.950369,45.969402 + 1350: 11.184744,45.906902 + 1351: 11.590994,45.422527 + 1352: 11.590994,45.422527 + 1353: 10.965994,45.610027 + 1354: 10.997244,44.969402 + 1355: 11.231619,45.047527 + 1356: 11.356619,45.344402 + 1357: 10.825369,45.656902 + 1358: 11.184744,45.922527 + 1359: 11.231619,45.891277 + 1360: 10.512869,45.563152 + 1361: 11.684744,44.078777 + 1362: 11.747244,43.797527 + 1363: 12.044119,43.328777 + 1364: 11.778494,43.281902 + 1365: 11.887869,43.688152 + 1366: 12.200369,43.735027 + 1367: 12.137869,44.141277 + 1368: 11.669119,43.656902 + 1369: 10.637869,43.781902 + 1370: 10.544119,43.781902 + 1371: 10.669119,43.453777 + 1372: 10.590994,43.485027 + 1373: 11.419119,45.797527 + 1374: 11.825369,45.813152 + 1375: 11.950369,46.219402 + 1376: 11.200369,45.672527 + 1377: 11.247244,45.922527 + 1378: 10.590994,46.125652 + 1379: 11.481619,45.422527 + 1380: 11.684744,45.672527 + 1381: 11.512869,45.141277 + 1382: 11.825369,45.281902 + 1383: 11.684744,45.438152 + 1384: 10.950369,45.735027 + 1385: 10.262869,45.797527 + 1386: 10.028494,44.891277 + 1387: 9.903494,44.891277 + 1388: 9.887869,45.500652 + 1389: 10.153494,45.344402 + 1390: 10.809744,45.391277 + 1391: 10.934744,45.422527 + 1392: 11.262869,45.531902 + 1393: 11.184744,46.031902 + 1394: 10.872244,45.813152 + 1395: 11.090994,45.563152 + 1396: 10.731619,46.031902 + 1397: 10.075369,44.000652 + 1398: 9.856619,43.703777 + 1399: 10.059744,44.281902 + 1400: 10.419119,43.813152 + - node: + cleanable: True + color: '#79150031' + id: splatter + decals: + 1444: 35.155014,12.447503 + 1445: 34.811264,12.353753 + 1446: 34.85814,12.744378 + 1447: 35.342514,12.463128 + 1448: 35.155014,12.228753 + 1449: 34.42064,12.572503 + 1450: 34.123764,13.025628 + 1451: 34.17064,13.322503 + 1452: 34.342514,12.900628 + 1453: 33.85814,12.994378 + 1454: 33.79564,13.338128 + 1455: 33.63939,13.838128 + 1456: 33.70189,13.603753 + 1457: 33.311264,13.900628 + 1458: 33.717514,14.306878 + 1459: 34.10814,14.650628 + 1460: 33.936264,15.135003 + 1461: 34.405014,14.947503 + 1462: 33.79564,14.510003 + 1463: 33.70189,14.088128 + 1464: 34.29564,14.541253 + 1465: 34.623764,15.010003 + 1466: 35.26439,15.072503 + 1467: 35.405014,14.931878 + 1468: 34.623764,15.338128 + 1469: 35.592514,14.994378 + 1470: 35.79564,14.447503 + 1471: 36.13939,15.025628 + 1472: 36.436264,14.181878 + 1473: 36.592514,13.869378 + 1474: 35.780014,14.697503 + 1475: 36.467514,14.072503 + 1476: 35.748764,14.588128 + 1477: 36.07689,13.963128 + 1478: 36.092514,13.291253 + 1479: 35.57689,13.103753 + 1480: 35.70189,13.088128 + 1481: 35.38939,12.478753 + 1482: 35.92064,13.260003 + 1483: 36.061264,13.666253 + 1484: 36.217514,12.822503 + 1485: 35.48314,12.650628 + 1486: 35.98314,12.353753 + 1487: 34.842514,12.744378 + 1488: 34.23314,12.853753 + 1489: 34.04564,13.447503 + 1490: 33.51439,13.650628 + - node: + cleanable: True + color: '#DE3A3A28' + id: splatter + decals: + 1436: 34.151947,12.931878 + 1437: 33.542572,13.775628 + 1438: 34.089447,14.588128 + 1439: 34.886322,15.025628 + 1440: 35.714447,14.681878 + 1441: 36.214447,14.119378 + 1442: 35.933197,13.228753 + 1443: 35.026947,12.447503 + type: DecalGrid + - type: RadiationGridResistance + - type: LoadedMap + - type: SpreaderGrid + - type: GridTree + - type: MovedGrids + - type: GridPathfinding +- proto: AirCanister + entities: + - uid: 302 + components: + - pos: 20.5,38.5 + parent: 1653 + type: Transform +- proto: AirlockMining + entities: + - uid: 149 + components: + - pos: 11.5,43.5 + parent: 1653 + type: Transform +- proto: AirlockMiningGlassLocked + entities: + - uid: 492 + components: + - pos: 19.5,43.5 + parent: 1653 + type: Transform +- proto: AirlockMiningLocked + entities: + - uid: 454 + components: + - pos: 3.5,43.5 + parent: 1653 + type: Transform +- proto: AltarFangs + entities: + - uid: 12 + components: + - pos: 35.5,14.5 + parent: 1653 + type: Transform +- proto: BananiumOre1 + entities: + - uid: 147 + components: + - pos: 25.454952,10.460608 + parent: 1653 + type: Transform + - uid: 436 + components: + - flags: InContainer + type: MetaData + - parent: 435 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: Barricade + entities: + - uid: 61 + components: + - pos: 14.5,12.5 + parent: 1653 + type: Transform + - uid: 304 + components: + - pos: 6.5,18.5 + parent: 1653 + type: Transform + - uid: 369 + components: + - pos: 51.5,0.5 + parent: 1653 + type: Transform +- proto: BikeHorn + entities: + - uid: 201 + components: + - flags: InContainer + type: MetaData + - parent: 200 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: Bucket + entities: + - uid: 220 + components: + - pos: 28.080187,14.004396 + parent: 1653 + type: Transform +- proto: CandleRedSmallInfinite + entities: + - uid: 121 + components: + - pos: 10.514658,25.137938 + parent: 1653 + type: Transform + - uid: 123 + components: + - pos: 10.655283,25.247313 + parent: 1653 + type: Transform + - uid: 126 + components: + - rot: -6.283185307179586 rad + pos: 9.436043,27.291958 + parent: 1653 + type: Transform + - uid: 181 + components: + - pos: 9.83762,26.231688 + parent: 1653 + type: Transform + - uid: 182 + components: + - pos: 9.009495,26.278563 + parent: 1653 + type: Transform + - uid: 211 + components: + - pos: 10.467783,25.325438 + parent: 1653 + type: Transform + - uid: 212 + components: + - rot: -6.283185307179586 rad + pos: 9.976189,27.010708 + parent: 1653 + type: Transform + - uid: 213 + components: + - pos: 8.86887,27.028563 + parent: 1653 + type: Transform +- proto: Chainsaw + entities: + - uid: 396 + components: + - pos: 12.278494,46.219402 + parent: 1653 + type: Transform +- proto: Chair + entities: + - uid: 399 + components: + - rot: 3.141592653589793 rad + pos: 19.5,34.5 + parent: 1653 + type: Transform +- proto: ChairPilotSeat + entities: + - uid: 8 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,44.5 + parent: 1653 + type: Transform + - uid: 466 + components: + - rot: -1.5707963267948966 rad + pos: 4.5,44.5 + parent: 1653 + type: Transform +- proto: ChairRitual + entities: + - uid: 127 + components: + - pos: 9.5,28.5 + parent: 1653 + type: Transform +- proto: CigaretteCapsaicinOil + entities: + - uid: 322 + components: + - pos: 31.649122,18.823664 + parent: 1653 + type: Transform +- proto: CigaretteSyndicate + entities: + - uid: 439 + components: + - flags: InContainer + type: MetaData + - parent: 438 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingBackpackDuffelCargo + entities: + - uid: 288 + components: + - pos: 17.527935,7.630492 + parent: 1653 + type: Transform +- proto: ClothingHeadHatFlowerCrown + entities: + - uid: 233 + components: + - pos: 27.441708,39.437607 + parent: 1653 + type: Transform +- proto: ClothingHeadHatGladiator + entities: + - uid: 7 + components: + - flags: InContainer + type: MetaData + - parent: 6 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingNeckCloakTrans + entities: + - uid: 332 + components: + - flags: InContainer + type: MetaData + - parent: 331 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingOuterHardsuitSalvage + entities: + - uid: 432 + components: + - pos: 4.447749,45.58406 + parent: 1653 + type: Transform +- proto: ClothingShoesClown + entities: + - uid: 202 + components: + - flags: InContainer + type: MetaData + - parent: 200 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitGladiator + entities: + - uid: 215 + components: + - flags: InContainer + type: MetaData + - parent: 214 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: ClothingUniformJumpsuitMonasticRobeDark + entities: + - uid: 40 + components: + - pos: 36.46349,13.791253 + parent: 1653 + type: Transform + - uid: 99 + components: + - pos: 36.27599,15.338128 + parent: 1653 + type: Transform + - uid: 216 + components: + - pos: 35.46349,15.619378 + parent: 1653 + type: Transform + - uid: 272 + components: + - pos: 34.05724,14.385003 + parent: 1653 + type: Transform + - uid: 273 + components: + - pos: 34.58849,15.213128 + parent: 1653 + type: Transform + - uid: 357 + components: + - pos: 35.58849,13.213128 + parent: 1653 + type: Transform + - uid: 358 + components: + - pos: 34.697865,13.588128 + parent: 1653 + type: Transform + - uid: 443 + components: + - pos: 36.80724,14.744378 + parent: 1653 + type: Transform +- proto: Cobweb1 + entities: + - uid: 190 + components: + - pos: 24.5,10.5 + parent: 1653 + type: Transform + - uid: 289 + components: + - pos: 0.5,10.5 + parent: 1653 + type: Transform + - uid: 290 + components: + - pos: 32.5,16.5 + parent: 1653 + type: Transform + - uid: 384 + components: + - pos: 0.5,36.5 + parent: 1653 + type: Transform + - uid: 385 + components: + - pos: 28.5,32.5 + parent: 1653 + type: Transform + - uid: 393 + components: + - pos: 12.5,22.5 + parent: 1653 + type: Transform + - uid: 418 + components: + - pos: 0.5,40.5 + parent: 1653 + type: Transform + - uid: 458 + components: + - pos: 2.5,46.5 + parent: 1653 + type: Transform +- proto: Cobweb2 + entities: + - uid: 137 + components: + - pos: 33.5,9.5 + parent: 1653 + type: Transform + - uid: 252 + components: + - pos: 26.5,32.5 + parent: 1653 + type: Transform + - uid: 291 + components: + - pos: 34.5,3.5 + parent: 1653 + type: Transform + - uid: 314 + components: + - pos: 22.5,10.5 + parent: 1653 + type: Transform + - uid: 341 + components: + - pos: 20.5,46.5 + parent: 1653 + type: Transform + - uid: 382 + components: + - pos: 14.5,40.5 + parent: 1653 + type: Transform + - uid: 383 + components: + - pos: 32.5,20.5 + parent: 1653 + type: Transform + - uid: 417 + components: + - pos: 24.5,2.5 + parent: 1653 + type: Transform +- proto: ComfyChair + entities: + - uid: 381 + components: + - pos: 13.5,27.5 + parent: 1653 + type: Transform +- proto: ConveyorBelt + entities: + - uid: 101 + components: + - rot: -1.5707963267948966 rad + pos: 27.5,10.5 + parent: 1653 + type: Transform + - uid: 102 + components: + - rot: -1.5707963267948966 rad + pos: 28.5,10.5 + parent: 1653 + type: Transform + - uid: 103 + components: + - rot: -1.5707963267948966 rad + pos: 25.5,10.5 + parent: 1653 + type: Transform + - uid: 104 + components: + - rot: -1.5707963267948966 rad + pos: 29.5,10.5 + parent: 1653 + type: Transform + - uid: 105 + components: + - rot: -1.5707963267948966 rad + pos: 30.5,10.5 + parent: 1653 + type: Transform + - uid: 106 + components: + - rot: -1.5707963267948966 rad + pos: 26.5,10.5 + parent: 1653 + type: Transform +- proto: CrateCoffin + entities: + - uid: 331 + components: + - pos: 16.5,32.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 332 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 435 + components: + - pos: 22.5,32.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 436 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 438 + components: + - pos: 23.5,32.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 439 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 441 + components: + - pos: 20.5,30.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 442 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer +- proto: CrateEmergencyRadiation + entities: + - uid: 364 + components: + - pos: 15.5,36.5 + parent: 1653 + type: Transform +- proto: CrateEmptySpawner + entities: + - uid: 128 + components: + - pos: 4.5,40.5 + parent: 1653 + type: Transform +- proto: CrateFilledSpawner + entities: + - uid: 111 + components: + - pos: 8.5,2.5 + parent: 1653 + type: Transform + - uid: 367 + components: + - pos: 18.5,46.5 + parent: 1653 + type: Transform + - uid: 411 + components: + - pos: 13.5,36.5 + parent: 1653 + type: Transform + - uid: 490 + components: + - pos: 28.5,8.5 + parent: 1653 + type: Transform +- proto: CrateNPCPenguin + entities: + - uid: 474 + components: + - pos: 13.5,25.5 + parent: 1653 + type: Transform +- proto: CrateWoodenGrave + entities: + - uid: 6 + components: + - pos: 27.5,39.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 7 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 200 + components: + - pos: 42.5,39.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 202 + - 201 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 214 + components: + - pos: 28.5,39.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 215 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer + - uid: 231 + components: + - pos: 26.5,39.5 + parent: 1653 + type: Transform + - containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 232 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + type: ContainerContainer +- proto: CrystalSpawner + entities: + - uid: 129 + components: + - pos: 27.5,35.5 + parent: 1653 + type: Transform + - uid: 131 + components: + - pos: 29.5,34.5 + parent: 1653 + type: Transform + - uid: 132 + components: + - pos: 30.5,35.5 + parent: 1653 + type: Transform + - uid: 172 + components: + - pos: 19.5,21.5 + parent: 1653 + type: Transform + - uid: 178 + components: + - pos: 20.5,20.5 + parent: 1653 + type: Transform + - uid: 298 + components: + - pos: 13.5,38.5 + parent: 1653 + type: Transform + - uid: 300 + components: + - pos: 9.5,40.5 + parent: 1653 + type: Transform + - uid: 301 + components: + - pos: 30.5,36.5 + parent: 1653 + type: Transform + - uid: 308 + components: + - pos: 31.5,36.5 + parent: 1653 + type: Transform +- proto: DoubleEmergencyNitrogenTankFilled + entities: + - uid: 309 + components: + - pos: 21.254128,38.485172 + parent: 1653 + type: Transform +- proto: DresserFilled + entities: + - uid: 413 + components: + - pos: 20.5,44.5 + parent: 1653 + type: Transform +- proto: FenceMetalCorner + entities: + - uid: 321 + components: + - rot: 1.5707963267948966 rad + pos: 20.5,35.5 + parent: 1653 + type: Transform + - uid: 477 + components: + - rot: -1.5707963267948966 rad + pos: 14.5,35.5 + parent: 1653 + type: Transform +- proto: FenceMetalGate + entities: + - uid: 268 + components: + - rot: 3.141592653589793 rad + pos: 17.5,35.5 + parent: 1653 + type: Transform +- proto: FenceMetalStraight + entities: + - uid: 267 + components: + - rot: 1.5707963267948966 rad + pos: 19.5,35.5 + parent: 1653 + type: Transform + - uid: 293 + components: + - pos: 14.5,36.5 + parent: 1653 + type: Transform + - uid: 476 + components: + - rot: 1.5707963267948966 rad + pos: 15.5,35.5 + parent: 1653 + type: Transform + - uid: 478 + components: + - rot: 1.5707963267948966 rad + pos: 16.5,35.5 + parent: 1653 + type: Transform + - uid: 479 + components: + - pos: 20.5,34.5 + parent: 1653 + type: Transform + - uid: 480 + components: + - rot: 1.5707963267948966 rad + pos: 18.5,35.5 + parent: 1653 + type: Transform +- proto: FlashlightLantern + entities: + - uid: 372 + components: + - pos: 16.286905,3.5055985 + parent: 1653 + type: Transform +- proto: FloorChasmEntity + entities: + - uid: 3 + components: + - pos: 5.5,0.5 + parent: 1653 + type: Transform + - uid: 4 + components: + - pos: 6.5,4.5 + parent: 1653 + type: Transform + - uid: 5 + components: + - pos: 6.5,3.5 + parent: 1653 + type: Transform + - uid: 17 + components: + - pos: 9.5,4.5 + parent: 1653 + type: Transform + - uid: 18 + components: + - pos: 4.5,4.5 + parent: 1653 + type: Transform + - uid: 19 + components: + - pos: 41.5,1.5 + parent: 1653 + type: Transform + - uid: 20 + components: + - pos: 44.5,1.5 + parent: 1653 + type: Transform + - uid: 21 + components: + - pos: 45.5,1.5 + parent: 1653 + type: Transform + - uid: 22 + components: + - pos: 44.5,0.5 + parent: 1653 + type: Transform + - uid: 23 + components: + - pos: 45.5,0.5 + parent: 1653 + type: Transform + - uid: 24 + components: + - pos: 47.5,0.5 + parent: 1653 + type: Transform + - uid: 25 + components: + - pos: 48.5,0.5 + parent: 1653 + type: Transform + - uid: 76 + components: + - pos: 15.5,4.5 + parent: 1653 + type: Transform + - uid: 77 + components: + - pos: 14.5,0.5 + parent: 1653 + type: Transform + - uid: 78 + components: + - pos: 14.5,1.5 + parent: 1653 + type: Transform + - uid: 82 + components: + - pos: 12.5,1.5 + parent: 1653 + type: Transform + - uid: 83 + components: + - pos: 13.5,4.5 + parent: 1653 + type: Transform + - uid: 84 + components: + - pos: 12.5,0.5 + parent: 1653 + type: Transform + - uid: 85 + components: + - pos: 13.5,0.5 + parent: 1653 + type: Transform + - uid: 86 + components: + - pos: 13.5,1.5 + parent: 1653 + type: Transform + - uid: 87 + components: + - pos: 46.5,1.5 + parent: 1653 + type: Transform + - uid: 88 + components: + - pos: 46.5,0.5 + parent: 1653 + type: Transform + - uid: 97 + components: + - pos: 14.5,4.5 + parent: 1653 + type: Transform + - uid: 112 + components: + - pos: 7.5,0.5 + parent: 1653 + type: Transform + - uid: 114 + components: + - pos: 10.5,0.5 + parent: 1653 + type: Transform + - uid: 115 + components: + - pos: 10.5,1.5 + parent: 1653 + type: Transform + - uid: 116 + components: + - pos: 11.5,4.5 + parent: 1653 + type: Transform + - uid: 118 + components: + - pos: 11.5,3.5 + parent: 1653 + type: Transform + - uid: 119 + components: + - pos: 11.5,0.5 + parent: 1653 + type: Transform + - uid: 120 + components: + - pos: 11.5,1.5 + parent: 1653 + type: Transform + - uid: 235 + components: + - pos: 49.5,0.5 + parent: 1653 + type: Transform + - uid: 241 + components: + - pos: 3.5,4.5 + parent: 1653 + type: Transform + - uid: 242 + components: + - pos: 2.5,0.5 + parent: 1653 + type: Transform + - uid: 245 + components: + - pos: 10.5,3.5 + parent: 1653 + type: Transform + - uid: 250 + components: + - pos: 4.5,3.5 + parent: 1653 + type: Transform + - uid: 258 + components: + - pos: 3.5,0.5 + parent: 1653 + type: Transform + - uid: 278 + components: + - pos: 40.5,2.5 + parent: 1653 + type: Transform + - uid: 315 + components: + - pos: 1.5,4.5 + parent: 1653 + type: Transform + - uid: 317 + components: + - pos: 5.5,3.5 + parent: 1653 + type: Transform + - uid: 337 + components: + - pos: 4.5,0.5 + parent: 1653 + type: Transform + - uid: 340 + components: + - pos: 42.5,2.5 + parent: 1653 + type: Transform + - uid: 350 + components: + - pos: 42.5,1.5 + parent: 1653 + type: Transform + - uid: 354 + components: + - pos: 12.5,3.5 + parent: 1653 + type: Transform + - uid: 359 + components: + - pos: 15.5,1.5 + parent: 1653 + type: Transform + - uid: 360 + components: + - pos: 15.5,0.5 + parent: 1653 + type: Transform + - uid: 363 + components: + - pos: 12.5,4.5 + parent: 1653 + type: Transform + - uid: 368 + components: + - pos: 43.5,2.5 + parent: 1653 + type: Transform + - uid: 377 + components: + - pos: 7.5,4.5 + parent: 1653 + type: Transform + - uid: 378 + components: + - pos: 6.5,1.5 + parent: 1653 + type: Transform + - uid: 387 + components: + - pos: 43.5,1.5 + parent: 1653 + type: Transform + - uid: 398 + components: + - pos: 41.5,2.5 + parent: 1653 + type: Transform + - uid: 401 + components: + - pos: 5.5,1.5 + parent: 1653 + type: Transform + - uid: 404 + components: + - pos: 5.5,4.5 + parent: 1653 + type: Transform + - uid: 452 + components: + - pos: 2.5,4.5 + parent: 1653 + type: Transform + - uid: 453 + components: + - pos: 1.5,0.5 + parent: 1653 + type: Transform + - uid: 459 + components: + - pos: 44.5,2.5 + parent: 1653 + type: Transform + - uid: 468 + components: + - pos: 3.5,3.5 + parent: 1653 + type: Transform + - uid: 471 + components: + - pos: 6.5,0.5 + parent: 1653 + type: Transform + - uid: 472 + components: + - pos: 10.5,4.5 + parent: 1653 + type: Transform + - uid: 473 + components: + - pos: 9.5,0.5 + parent: 1653 + type: Transform +- proto: FloorWaterEntity + entities: + - uid: 13 + components: + - pos: 27.5,14.5 + parent: 1653 + type: Transform + - uid: 14 + components: + - pos: 29.5,14.5 + parent: 1653 + type: Transform + - uid: 15 + components: + - pos: 28.5,15.5 + parent: 1653 + type: Transform + - uid: 43 + components: + - pos: 26.5,16.5 + parent: 1653 + type: Transform + - uid: 45 + components: + - pos: 30.5,13.5 + parent: 1653 + type: Transform + - uid: 46 + components: + - pos: 29.5,13.5 + parent: 1653 + type: Transform + - uid: 47 + components: + - pos: 28.5,12.5 + parent: 1653 + type: Transform + - uid: 49 + components: + - pos: 27.5,16.5 + parent: 1653 + type: Transform + - uid: 65 + components: + - pos: 29.5,12.5 + parent: 1653 + type: Transform + - uid: 72 + components: + - pos: 25.5,13.5 + parent: 1653 + type: Transform + - uid: 93 + components: + - pos: 24.5,15.5 + parent: 1653 + type: Transform + - uid: 100 + components: + - pos: 27.5,12.5 + parent: 1653 + type: Transform + - uid: 221 + components: + - pos: 26.5,13.5 + parent: 1653 + type: Transform + - uid: 222 + components: + - pos: 26.5,14.5 + parent: 1653 + type: Transform + - uid: 223 + components: + - pos: 26.5,15.5 + parent: 1653 + type: Transform + - uid: 224 + components: + - pos: 27.5,13.5 + parent: 1653 + type: Transform + - uid: 444 + components: + - pos: 28.5,14.5 + parent: 1653 + type: Transform + - uid: 445 + components: + - pos: 27.5,15.5 + parent: 1653 + type: Transform + - uid: 446 + components: + - pos: 28.5,13.5 + parent: 1653 + type: Transform + - uid: 447 + components: + - pos: 25.5,15.5 + parent: 1653 + type: Transform + - uid: 448 + components: + - pos: 25.5,14.5 + parent: 1653 + type: Transform +- proto: FloraRockSolid01 + entities: + - uid: 63 + components: + - pos: 1.4643247,15.527116 + parent: 1653 + type: Transform + - uid: 230 + components: + - pos: 25.553497,34.710487 + parent: 1653 + type: Transform + - uid: 281 + components: + - pos: 7.4866443,6.552367 + parent: 1653 + type: Transform + - uid: 295 + components: + - pos: 0.911531,32.452705 + parent: 1653 + type: Transform + - uid: 303 + components: + - pos: 21.638557,19.381065 + parent: 1653 + type: Transform + - uid: 374 + components: + - pos: 3.5664039,19.498943 + parent: 1653 + type: Transform +- proto: FloraRockSolid02 + entities: + - uid: 64 + components: + - pos: 11.966135,14.804356 + parent: 1653 + type: Transform + - uid: 171 + components: + - pos: 8.535091,20.608318 + parent: 1653 + type: Transform + - uid: 306 + components: + - pos: 12.087021,32.358955 + parent: 1653 + type: Transform +- proto: FloraRockSolid03 + entities: + - uid: 90 + components: + - pos: 23.53006,1.5159609 + parent: 1653 + type: Transform + - uid: 170 + components: + - pos: 1.9101539,21.811443 + parent: 1653 + type: Transform + - uid: 199 + components: + - pos: 44.689724,39.621048 + parent: 1653 + type: Transform + - uid: 243 + components: + - pos: 21.468937,26.614876 + parent: 1653 + type: Transform + - uid: 296 + components: + - pos: 9.355139,30.733953 + parent: 1653 + type: Transform + - uid: 330 + components: + - pos: 35.552525,31.574036 + parent: 1653 + type: Transform + - uid: 361 + components: + - pos: 5.433075,13.527116 + parent: 1653 + type: Transform + - uid: 375 + components: + - pos: 1.5647693,8.536742 + parent: 1653 + type: Transform +- proto: FoodBoxDonkpocketPizza + entities: + - uid: 209 + components: + - pos: 0.9877088,26.184813 + parent: 1653 + type: Transform +- proto: FoodCornTrash + entities: + - uid: 2 + components: + - pos: 26.81556,20.415936 + parent: 1653 + type: Transform + - uid: 109 + components: + - pos: 27.367641,20.311768 + parent: 1653 + type: Transform + - uid: 113 + components: + - pos: 27.388475,19.988852 + parent: 1653 + type: Transform + - uid: 249 + components: + - pos: 27.638475,20.843018 + parent: 1653 + type: Transform + - uid: 254 + components: + - pos: 28.055141,20.301352 + parent: 1653 + type: Transform + - uid: 319 + components: + - pos: 27.482225,20.530518 + parent: 1653 + type: Transform + - uid: 391 + components: + - pos: 26.930141,20.728436 + parent: 1653 + type: Transform + - uid: 475 + components: + - pos: 27.84681,20.634686 + parent: 1653 + type: Transform +- proto: FoodMeatHuman + entities: + - uid: 186 + components: + - pos: 34.42388,40.652298 + parent: 1653 + type: Transform + - uid: 187 + components: + - pos: 34.64263,40.511673 + parent: 1653 + type: Transform +- proto: FoodMeatLizardtailKebab + entities: + - uid: 42 + components: + - pos: 38.036457,12.588582 + parent: 1653 + type: Transform +- proto: FoodMeatRouny + entities: + - uid: 183 + components: + - pos: 36.45513,40.589798 + parent: 1653 + type: Transform +- proto: FoodSnackPopcorn + entities: + - uid: 74 + components: + - pos: 25.648891,21.040936 + parent: 1653 + type: Transform + - uid: 79 + components: + - pos: 25.763475,21.645102 + parent: 1653 + type: Transform + - uid: 81 + components: + - pos: 25.461391,21.207602 + parent: 1653 + type: Transform + - uid: 117 + components: + - pos: 25.857225,21.207602 + parent: 1653 + type: Transform + - uid: 240 + components: + - pos: 25.97181,21.030518 + parent: 1653 + type: Transform +- proto: FoodTinPeachesMaintOpen + entities: + - uid: 208 + components: + - pos: 2.343669,28.087896 + parent: 1653 + type: Transform +- proto: GeigerCounter + entities: + - uid: 228 + components: + - rot: -1.5707963267948966 rad + pos: 2.536777,44.354866 + parent: 1653 + type: Transform +- proto: Girder + entities: + - uid: 351 + components: + - rot: 1.5707963267948966 rad + pos: 13.5,45.5 + parent: 1653 + type: Transform +- proto: GlowstickRed + entities: + - uid: 256 + components: + - pos: 12.648991,38.39441 + parent: 1653 + type: Transform + - uid: 264 + components: + - pos: 22.50236,34.545544 + parent: 1653 + type: Transform + - uid: 271 + components: + - pos: 4.5084944,44.49994 + parent: 1653 + type: Transform + - uid: 294 + components: + - pos: 10.820133,30.586414 + parent: 1653 + type: Transform + - uid: 316 + components: + - pos: 26.3416,18.72954 + parent: 1653 + type: Transform + - uid: 414 + components: + - pos: 1.8548665,32.055164 + parent: 1653 + type: Transform + - uid: 420 + components: + - pos: 22.799234,34.62367 + parent: 1653 + type: Transform + - uid: 421 + components: + - pos: 22.299234,34.608044 + parent: 1653 + type: Transform +- proto: GoldOre1 + entities: + - uid: 134 + components: + - pos: 8.948225,24.854458 + parent: 1653 + type: Transform + - uid: 138 + components: + - pos: 26.486202,10.538733 + parent: 1653 + type: Transform + - uid: 139 + components: + - pos: 26.486202,10.538733 + parent: 1653 + type: Transform + - uid: 144 + components: + - pos: 26.486202,10.538733 + parent: 1653 + type: Transform + - uid: 145 + components: + - pos: 26.486202,10.538733 + parent: 1653 + type: Transform + - uid: 191 + components: + - pos: 26.486202,10.538733 + parent: 1653 + type: Transform + - uid: 266 + components: + - pos: 9.448225,25.291958 + parent: 1653 + type: Transform + - uid: 328 + components: + - pos: 8.541975,25.885708 + parent: 1653 + type: Transform + - uid: 379 + components: + - pos: 10.026349,24.557583 + parent: 1653 + type: Transform +- proto: hydroponicsSoil + entities: + - uid: 1 + components: + - pos: 25.5,20.5 + parent: 1653 + type: Transform + - uid: 390 + components: + - pos: 27.5,21.5 + parent: 1653 + type: Transform + - uid: 423 + components: + - pos: 25.5,19.5 + parent: 1653 + type: Transform +- proto: ImprovisedExplosiveFuel + entities: + - uid: 203 + components: + - pos: 36.443645,31.673359 + parent: 1653 + type: Transform +- proto: IngotGold1 + entities: + - uid: 312 + components: + - pos: 10.073225,25.588833 + parent: 1653 + type: Transform + - uid: 313 + components: + - pos: 10.4951,24.791958 + parent: 1653 + type: Transform + - uid: 426 + components: + - pos: 8.385725,25.104458 + parent: 1653 + type: Transform + - uid: 449 + components: + - pos: 10.698225,26.120083 + parent: 1653 + type: Transform + - uid: 460 + components: + - pos: 9.120099,24.323208 + parent: 1653 + type: Transform +- proto: IngotSilver + entities: + - uid: 262 + components: + - pos: 20.52197,46.638992 + parent: 1653 + type: Transform +- proto: KitchenElectricGrill + entities: + - uid: 205 + components: + - pos: 35.5,40.5 + parent: 1653 + type: Transform +- proto: KitchenMicrowave + entities: + - uid: 244 + components: + - pos: 26.5,21.5 + parent: 1653 + type: Transform +- proto: KukriKnife + entities: + - uid: 130 + components: + - pos: 2.508058,45.496773 + parent: 1653 + type: Transform +- proto: LampGold + entities: + - uid: 380 + components: + - pos: 13.291822,27.041958 + parent: 1653 + type: Transform +- proto: Lantern + entities: + - uid: 28 + components: + - pos: 24.446167,4.4534607 + parent: 1653 + type: Transform + - uid: 29 + components: + - pos: 33.45849,0.51596093 + parent: 1653 + type: Transform + - uid: 89 + components: + - pos: 18.58248,0.51596093 + parent: 1653 + type: Transform + - uid: 180 + components: + - pos: 20.497932,21.77169 + parent: 1653 + type: Transform +- proto: MaintenancePlantSpawner + entities: + - uid: 67 + components: + - pos: 21.5,16.5 + parent: 1653 + type: Transform + - uid: 70 + components: + - pos: 17.5,15.5 + parent: 1653 + type: Transform + - uid: 73 + components: + - pos: 21.5,14.5 + parent: 1653 + type: Transform + - uid: 217 + components: + - pos: 22.5,12.5 + parent: 1653 + type: Transform + - uid: 218 + components: + - pos: 16.5,13.5 + parent: 1653 + type: Transform +- proto: MaintenanceToolSpawner + entities: + - uid: 57 + components: + - pos: 39.5,0.5 + parent: 1653 + type: Transform + - uid: 96 + components: + - pos: 51.5,1.5 + parent: 1653 + type: Transform + - uid: 416 + components: + - pos: 7.5,32.5 + parent: 1653 + type: Transform +- proto: MaintenanceWeaponSpawner + entities: + - uid: 31 + components: + - pos: 22.5,0.5 + parent: 1653 + type: Transform + - uid: 32 + components: + - pos: 1.5,3.5 + parent: 1653 + type: Transform + - uid: 51 + components: + - pos: 52.5,0.5 + parent: 1653 + type: Transform + - uid: 292 + components: + - pos: 34.5,31.5 + parent: 1653 + type: Transform +- proto: MaterialWoodPlank + entities: + - uid: 442 + components: + - flags: InContainer + type: MetaData + - parent: 441 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: MedkitOxygenFilled + entities: + - uid: 225 + components: + - pos: 17.973127,40.40886 + parent: 1653 + type: Transform +- proto: MiningWindow + entities: + - uid: 155 + components: + - pos: 19.5,47.5 + parent: 1653 + type: Transform + - uid: 162 + components: + - pos: 3.5,47.5 + parent: 1653 + type: Transform + - uid: 248 + components: + - pos: 11.5,47.5 + parent: 1653 + type: Transform +- proto: OreBox + entities: + - uid: 184 + components: + - pos: 2.5,24.5 + parent: 1653 + type: Transform + - uid: 270 + components: + - pos: 37.5,4.5 + parent: 1653 + type: Transform + - uid: 283 + components: + - pos: 17.5,8.5 + parent: 1653 + type: Transform + - uid: 488 + components: + - pos: 29.5,8.5 + parent: 1653 + type: Transform +- proto: OreProcessor + entities: + - uid: 269 + components: + - pos: 24.5,10.5 + parent: 1653 + type: Transform + - uid: 320 + components: + - pos: 3.5,46.5 + parent: 1653 + type: Transform +- proto: OrganHumanAppendix + entities: + - uid: 148 + components: + - pos: 10.481619,44.360027 + parent: 1653 + type: Transform +- proto: OrganHumanHeart + entities: + - uid: 206 + components: + - pos: 9.478245,26.669188 + parent: 1653 + type: Transform +- proto: PaintingSadClown + entities: + - uid: 122 + components: + - pos: 43.5,39.5 + parent: 1653 + type: Transform +- proto: PaintingSkeletonCigarette + entities: + - uid: 362 + components: + - pos: 32.5,21.5 + parent: 1653 + type: Transform +- proto: Pickaxe + entities: + - uid: 158 + components: + - pos: 21.525682,34.54406 + parent: 1653 + type: Transform + - uid: 179 + components: + - pos: 21.743324,22.05294 + parent: 1653 + type: Transform +- proto: PlasmaOre1 + entities: + - uid: 469 + components: + - pos: 30.486202,10.491858 + parent: 1653 + type: Transform + - uid: 482 + components: + - pos: 30.486202,10.491858 + parent: 1653 + type: Transform + - uid: 483 + components: + - pos: 30.486202,10.491858 + parent: 1653 + type: Transform + - uid: 485 + components: + - pos: 30.486202,10.491858 + parent: 1653 + type: Transform + - uid: 489 + components: + - pos: 30.486202,10.491858 + parent: 1653 + type: Transform +- proto: PlushieLizard + entities: + - uid: 41 + components: + - pos: 35.503193,14.666253 + parent: 1653 + type: Transform +- proto: PlushiePenguin + entities: + - uid: 415 + components: + - pos: 13.526197,27.541958 + parent: 1653 + type: Transform +- proto: PortableGeneratorJrPacman + entities: + - uid: 392 + components: + - pos: 37.5,31.5 + parent: 1653 + type: Transform +- proto: PottedPlantRandom + entities: + - uid: 44 + components: + - pos: 44.5,14.5 + parent: 1653 + type: Transform + - uid: 50 + components: + - pos: 45.5,14.5 + parent: 1653 + type: Transform + - uid: 94 + components: + - pos: 42.5,14.5 + parent: 1653 + type: Transform + - uid: 347 + components: + - pos: 41.5,14.5 + parent: 1653 + type: Transform +- proto: PowerCellHyperPrinted + entities: + - uid: 52 + components: + - pos: 31.760115,2.7803574 + parent: 1653 + type: Transform +- proto: PoweredSmallLight + entities: + - uid: 156 + components: + - rot: 1.5707963267948966 rad + pos: 10.5,45.5 + parent: 1653 + type: Transform +- proto: PuddleVomit + entities: + - uid: 229 + components: + - pos: 3.5,45.5 + parent: 1653 + type: Transform +- proto: Rack + entities: + - uid: 276 + components: + - pos: 18.5,45.5 + parent: 1653 + type: Transform + - uid: 334 + components: + - pos: 20.5,45.5 + parent: 1653 + type: Transform + - uid: 335 + components: + - pos: 20.5,46.5 + parent: 1653 + type: Transform + - uid: 352 + components: + - pos: 21.5,34.5 + parent: 1653 + type: Transform + - uid: 365 + components: + - pos: 10.5,46.5 + parent: 1653 + type: Transform + - uid: 403 + components: + - pos: 4.5,45.5 + parent: 1653 + type: Transform + - uid: 410 + components: + - pos: 22.5,34.5 + parent: 1653 + type: Transform +- proto: Railing + entities: + - uid: 260 + components: + - rot: 3.141592653589793 rad + pos: 27.5,9.5 + parent: 1653 + type: Transform + - uid: 261 + components: + - rot: 3.141592653589793 rad + pos: 28.5,9.5 + parent: 1653 + type: Transform + - uid: 277 + components: + - rot: 3.141592653589793 rad + pos: 26.5,9.5 + parent: 1653 + type: Transform + - uid: 327 + components: + - rot: 3.141592653589793 rad + pos: 30.5,9.5 + parent: 1653 + type: Transform + - uid: 376 + components: + - rot: 3.141592653589793 rad + pos: 25.5,9.5 + parent: 1653 + type: Transform + - uid: 467 + components: + - rot: 3.141592653589793 rad + pos: 29.5,9.5 + parent: 1653 + type: Transform +- proto: RailingCornerSmall + entities: + - uid: 371 + components: + - pos: 31.5,9.5 + parent: 1653 + type: Transform +- proto: RandomArtifactSpawner + entities: + - uid: 48 + components: + - pos: 43.5,14.5 + parent: 1653 + type: Transform +- proto: RandomCargoCorpseSpawner + entities: + - uid: 274 + components: + - pos: 11.5,46.5 + parent: 1653 + type: Transform +- proto: RandomServiceCorpseSpawner + entities: + - uid: 400 + components: + - pos: 19.5,45.5 + parent: 1653 + type: Transform +- proto: SalvageMaterialCrateSpawner + entities: + - uid: 481 + components: + - pos: 27.5,8.5 + parent: 1653 + type: Transform + - uid: 491 + components: + - pos: 30.5,8.5 + parent: 1653 + type: Transform +- proto: ShadowTree03 + entities: + - uid: 68 + components: + - pos: 19.477606,14.337568 + parent: 1653 + type: Transform +- proto: SheetSteel1 + entities: + - uid: 457 + components: + - pos: 13.481619,44.391277 + parent: 1653 + type: Transform +- proto: ShellShotgunIncendiary + entities: + - uid: 405 + components: + - pos: 18.58831,45.763992 + parent: 1653 + type: Transform +- proto: ShellShotgunSlug + entities: + - uid: 339 + components: + - pos: 18.603935,45.404617 + parent: 1653 + type: Transform +- proto: Shovel + entities: + - uid: 30 + components: + - pos: 33.425346,4.383849 + parent: 1653 + type: Transform + - uid: 394 + components: + - pos: 31.844257,31.05841 + parent: 1653 + type: Transform +- proto: SignNTMine + entities: + - uid: 253 + components: + - pos: 4.5,43.5 + parent: 1653 + type: Transform + - uid: 326 + components: + - pos: 20.5,43.5 + parent: 1653 + type: Transform +- proto: SilverOre1 + entities: + - uid: 198 + components: + - pos: 29.423702,10.476233 + parent: 1653 + type: Transform + - uid: 318 + components: + - pos: 29.423702,10.476233 + parent: 1653 + type: Transform + - uid: 484 + components: + - pos: 29.423702,10.476233 + parent: 1653 + type: Transform + - uid: 486 + components: + - pos: 29.423702,10.476233 + parent: 1653 + type: Transform + - uid: 487 + components: + - pos: 29.423702,10.476233 + parent: 1653 + type: Transform +- proto: SmallLight + entities: + - uid: 336 + components: + - rot: 1.5707963267948966 rad + pos: 18.5,45.5 + parent: 1653 + type: Transform + - uid: 434 + components: + - rot: 1.5707963267948966 rad + pos: 2.5,45.5 + parent: 1653 + type: Transform +- proto: SpawnMobFrog + entities: + - uid: 386 + components: + - pos: 18.5,44.5 + parent: 1653 + type: Transform +- proto: SpearBone + entities: + - uid: 232 + components: + - flags: InContainer + type: MetaData + - parent: 231 + type: Transform + - canCollide: False + type: Physics + - type: InsideEntityStorage +- proto: SteelBench + entities: + - uid: 71 + components: + - pos: 19.5,13.5 + parent: 1653 + type: Transform +- proto: SteelOre + entities: + - uid: 197 + components: + - pos: 28.470577,10.523108 + parent: 1653 + type: Transform +- proto: TableCarpet + entities: + - uid: 465 + components: + - pos: 13.5,26.5 + parent: 1653 + type: Transform +- proto: TableReinforced + entities: + - uid: 246 + components: + - pos: 4.5,46.5 + parent: 1653 + type: Transform +- proto: TableWood + entities: + - uid: 56 + components: + - pos: 39.5,0.5 + parent: 1653 + type: Transform + - uid: 59 + components: + - pos: 51.5,1.5 + parent: 1653 + type: Transform + - uid: 124 + components: + - pos: 34.5,40.5 + parent: 1653 + type: Transform + - uid: 133 + components: + - pos: 5.5,40.5 + parent: 1653 + type: Transform + - uid: 173 + components: + - pos: 20.5,21.5 + parent: 1653 + type: Transform + - uid: 226 + components: + - pos: 36.5,40.5 + parent: 1653 + type: Transform + - uid: 227 + components: + - pos: 35.5,40.5 + parent: 1653 + type: Transform + - uid: 333 + components: + - pos: 36.5,31.5 + parent: 1653 + type: Transform +- proto: ToiletDirtyWater + entities: + - uid: 406 + components: + - pos: 32.5,20.5 + parent: 1653 + type: Transform +- proto: Torch + entities: + - uid: 58 + components: + - pos: 52.617035,4.4522324 + parent: 1653 + type: Transform + - uid: 60 + components: + - pos: 38.654633,2.7959824 + parent: 1653 + type: Transform + - uid: 135 + components: + - pos: 5.4760814,40.63729 + parent: 1653 + type: Transform + - uid: 136 + components: + - pos: 5.6792064,40.621666 + parent: 1653 + type: Transform + - uid: 366 + components: + - pos: 10.669119,46.594402 + parent: 1653 + type: Transform +- proto: TorsoSkeleton + entities: + - uid: 325 + components: + - pos: 32.5085,20.620539 + parent: 1653 + type: Transform +- proto: TrashBakedBananaPeel + entities: + - uid: 210 + components: + - pos: 5.484687,26.403563 + parent: 1653 + type: Transform +- proto: UraniumOre + entities: + - uid: 433 + components: + - pos: 4.487873,46.58196 + parent: 1653 + type: Transform +- proto: UraniumOre1 + entities: + - uid: 192 + components: + - pos: 27.517452,10.507483 + parent: 1653 + type: Transform + - uid: 193 + components: + - pos: 27.517452,10.507483 + parent: 1653 + type: Transform + - uid: 194 + components: + - pos: 27.517452,10.507483 + parent: 1653 + type: Transform + - uid: 195 + components: + - pos: 27.517452,10.507483 + parent: 1653 + type: Transform + - uid: 196 + components: + - pos: 27.517452,10.507483 + parent: 1653 + type: Transform +- proto: WallMining + entities: + - uid: 11 + components: + - pos: 13.5,46.5 + parent: 1653 + type: Transform + - uid: 150 + components: + - pos: 18.5,43.5 + parent: 1653 + type: Transform + - uid: 151 + components: + - pos: 17.5,44.5 + parent: 1653 + type: Transform + - uid: 152 + components: + - pos: 17.5,46.5 + parent: 1653 + type: Transform + - uid: 153 + components: + - pos: 18.5,47.5 + parent: 1653 + type: Transform + - uid: 154 + components: + - pos: 20.5,47.5 + parent: 1653 + type: Transform + - uid: 157 + components: + - pos: 17.5,45.5 + parent: 1653 + type: Transform + - uid: 159 + components: + - pos: 4.5,47.5 + parent: 1653 + type: Transform + - uid: 160 + components: + - pos: 2.5,47.5 + parent: 1653 + type: Transform + - uid: 161 + components: + - pos: 1.5,44.5 + parent: 1653 + type: Transform + - uid: 163 + components: + - pos: 5.5,45.5 + parent: 1653 + type: Transform + - uid: 164 + components: + - pos: 1.5,46.5 + parent: 1653 + type: Transform + - uid: 165 + components: + - pos: 1.5,45.5 + parent: 1653 + type: Transform + - uid: 247 + components: + - pos: 10.5,47.5 + parent: 1653 + type: Transform + - uid: 265 + components: + - pos: 21.5,46.5 + parent: 1653 + type: Transform + - uid: 329 + components: + - pos: 20.5,43.5 + parent: 1653 + type: Transform + - uid: 353 + components: + - pos: 9.5,46.5 + parent: 1653 + type: Transform + - uid: 370 + components: + - pos: 5.5,44.5 + parent: 1653 + type: Transform + - uid: 373 + components: + - pos: 5.5,46.5 + parent: 1653 + type: Transform + - uid: 402 + components: + - rot: 1.5707963267948966 rad + pos: 10.5,43.5 + parent: 1653 + type: Transform + - uid: 425 + components: + - pos: 21.5,45.5 + parent: 1653 + type: Transform + - uid: 427 + components: + - pos: 21.5,44.5 + parent: 1653 + type: Transform + - uid: 429 + components: + - pos: 9.5,44.5 + parent: 1653 + type: Transform + - uid: 430 + components: + - pos: 9.5,45.5 + parent: 1653 + type: Transform + - uid: 431 + components: + - pos: 12.5,47.5 + parent: 1653 + type: Transform + - uid: 455 + components: + - pos: 2.5,43.5 + parent: 1653 + type: Transform + - uid: 456 + components: + - pos: 4.5,43.5 + parent: 1653 + type: Transform +- proto: WallMiningDiagonal + entities: + - uid: 166 + components: + - pos: 1.5,47.5 + parent: 1653 + type: Transform + - uid: 167 + components: + - rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 1653 + type: Transform + - uid: 168 + components: + - rot: 3.141592653589793 rad + pos: 5.5,43.5 + parent: 1653 + type: Transform + - uid: 169 + components: + - rot: 1.5707963267948966 rad + pos: 1.5,43.5 + parent: 1653 + type: Transform + - uid: 251 + components: + - pos: 9.5,47.5 + parent: 1653 + type: Transform + - uid: 275 + components: + - rot: -1.5707963267948966 rad + pos: 13.5,47.5 + parent: 1653 + type: Transform + - uid: 397 + components: + - rot: 1.5707963267948966 rad + pos: 9.5,43.5 + parent: 1653 + type: Transform + - uid: 428 + components: + - pos: 17.5,47.5 + parent: 1653 + type: Transform + - uid: 493 + components: + - rot: -1.5707963267948966 rad + pos: 21.5,47.5 + parent: 1653 + type: Transform + - uid: 494 + components: + - rot: 3.141592653589793 rad + pos: 21.5,43.5 + parent: 1653 + type: Transform + - uid: 495 + components: + - rot: 1.5707963267948966 rad + pos: 17.5,43.5 + parent: 1653 + type: Transform +- proto: WallWood + entities: + - uid: 16 + components: + - pos: 31.5,19.5 + parent: 1653 + type: Transform + - uid: 188 + components: + - pos: 43.5,39.5 + parent: 1653 + type: Transform + - uid: 255 + components: + - pos: 31.5,21.5 + parent: 1653 + type: Transform + - uid: 323 + components: + - pos: 33.5,20.5 + parent: 1653 + type: Transform + - uid: 324 + components: + - pos: 33.5,21.5 + parent: 1653 + type: Transform + - uid: 338 + components: + - pos: 33.5,19.5 + parent: 1653 + type: Transform + - uid: 408 + components: + - pos: 32.5,21.5 + parent: 1653 + type: Transform + - uid: 409 + components: + - pos: 31.5,20.5 + parent: 1653 + type: Transform +- proto: WaterTankHighCapacity + entities: + - uid: 219 + components: + - pos: 27.5,14.5 + parent: 1653 + type: Transform +- proto: WeaponShotgunImprovised + entities: + - uid: 412 + components: + - pos: 20.496641,45.467117 + parent: 1653 + type: Transform +- proto: WeldingFuelTankFull + entities: + - uid: 10 + components: + - pos: 2.5,46.5 + parent: 1653 + type: Transform +- proto: WoodDoor + entities: + - uid: 407 + components: + - pos: 32.5,19.5 + parent: 1653 + type: Transform +- proto: WoodenSign + entities: + - uid: 189 + components: + - pos: 1.5555744,26.347673 + parent: 1653 + type: Transform +- proto: WoodenSignRight + entities: + - uid: 62 + components: + - pos: 11.898959,14.345065 + parent: 1653 + type: Transform + - uid: 177 + components: + - pos: 9.503841,22.358318 + parent: 1653 + type: Transform + - uid: 440 + components: + - pos: 25.205534,32.33467 + parent: 1653 + type: Transform + - uid: 451 + components: + - pos: 5.5491443,7.271117 + parent: 1653 + type: Transform +- proto: WoodenSupport + entities: + - uid: 9 + components: + - pos: 10.5,10.5 + parent: 1653 + type: Transform + - uid: 66 + components: + - pos: 38.5,16.5 + parent: 1653 + type: Transform + - uid: 107 + components: + - pos: 8.5,32.5 + parent: 1653 + type: Transform + - uid: 108 + components: + - pos: 1.5,36.5 + parent: 1653 + type: Transform + - uid: 110 + components: + - pos: 0.5,22.5 + parent: 1653 + type: Transform + - uid: 140 + components: + - pos: 34.5,6.5 + parent: 1653 + type: Transform + - uid: 146 + components: + - pos: 24.5,6.5 + parent: 1653 + type: Transform + - uid: 174 + components: + - pos: 13.5,22.5 + parent: 1653 + type: Transform + - uid: 204 + components: + - pos: 2.5,28.5 + parent: 1653 + type: Transform + - uid: 207 + components: + - pos: 0.5,28.5 + parent: 1653 + type: Transform + - uid: 259 + components: + - pos: 20.5,24.5 + parent: 1653 + type: Transform + - uid: 279 + components: + - pos: 12.5,10.5 + parent: 1653 + type: Transform + - uid: 286 + components: + - pos: 22.5,10.5 + parent: 1653 + type: Transform + - uid: 422 + components: + - pos: 22.5,28.5 + parent: 1653 + type: Transform + - uid: 424 + components: + - pos: 22.5,40.5 + parent: 1653 + type: Transform + - uid: 450 + components: + - pos: 0.5,10.5 + parent: 1653 + type: Transform + - uid: 462 + components: + - pos: 53.5,4.5 + parent: 1653 + type: Transform + - uid: 464 + components: + - pos: 36.5,4.5 + parent: 1653 + type: Transform + - uid: 470 + components: + - pos: 8.5,36.5 + parent: 1653 + type: Transform +- proto: WoodenSupportBeam + entities: + - uid: 35 + components: + - pos: 29.5,1.5 + parent: 1653 + type: Transform + - uid: 143 + components: + - pos: 33.5,10.5 + parent: 1653 + type: Transform + - uid: 285 + components: + - pos: 12.5,6.5 + parent: 1653 + type: Transform + - uid: 307 + components: + - pos: 14.5,20.5 + parent: 1653 + type: Transform + - uid: 355 + components: + - pos: 25.5,1.5 + parent: 1653 + type: Transform + - uid: 395 + components: + - pos: 17.5,27.5 + parent: 1653 + type: Transform +- proto: WoodenSupportWall + entities: + - uid: 27 + components: + - pos: 34.5,4.5 + parent: 1653 + type: Transform + - uid: 33 + components: + - pos: 27.5,1.5 + parent: 1653 + type: Transform + - uid: 34 + components: + - pos: 28.5,1.5 + parent: 1653 + type: Transform + - uid: 36 + components: + - pos: 32.5,2.5 + parent: 1653 + type: Transform + - uid: 37 + components: + - pos: 32.5,3.5 + parent: 1653 + type: Transform + - uid: 38 + components: + - pos: 30.5,1.5 + parent: 1653 + type: Transform + - uid: 39 + components: + - pos: 32.5,0.5 + parent: 1653 + type: Transform + - uid: 53 + components: + - pos: 7.5,8.5 + parent: 1653 + type: Transform + - uid: 54 + components: + - pos: 6.5,8.5 + parent: 1653 + type: Transform + - uid: 55 + components: + - pos: 5.5,8.5 + parent: 1653 + type: Transform + - uid: 69 + components: + - pos: 0.5,12.5 + parent: 1653 + type: Transform + - uid: 75 + components: + - pos: 16.5,27.5 + parent: 1653 + type: Transform + - uid: 91 + components: + - pos: 32.5,1.5 + parent: 1653 + type: Transform + - uid: 92 + components: + - pos: 31.5,3.5 + parent: 1653 + type: Transform + - uid: 98 + components: + - pos: 18.5,25.5 + parent: 1653 + type: Transform + - uid: 125 + components: + - pos: 38.5,40.5 + parent: 1653 + type: Transform + - uid: 141 + components: + - pos: 34.5,10.5 + parent: 1653 + type: Transform + - uid: 142 + components: + - pos: 34.5,9.5 + parent: 1653 + type: Transform + - uid: 175 + components: + - pos: 12.5,20.5 + parent: 1653 + type: Transform + - uid: 176 + components: + - pos: 15.5,20.5 + parent: 1653 + type: Transform + - uid: 185 + components: + - pos: 32.5,40.5 + parent: 1653 + type: Transform + - uid: 234 + components: + - pos: 50.5,0.5 + parent: 1653 + type: Transform + - uid: 236 + components: + - pos: 30.5,3.5 + parent: 1653 + type: Transform + - uid: 237 + components: + - pos: 25.5,3.5 + parent: 1653 + type: Transform + - uid: 238 + components: + - pos: 25.5,4.5 + parent: 1653 + type: Transform + - uid: 239 + components: + - pos: 18.5,1.5 + parent: 1653 + type: Transform + - uid: 257 + components: + - pos: 29.5,3.5 + parent: 1653 + type: Transform + - uid: 263 + components: + - pos: 25.5,2.5 + parent: 1653 + type: Transform + - uid: 280 + components: + - pos: 13.5,6.5 + parent: 1653 + type: Transform + - uid: 282 + components: + - pos: 21.5,6.5 + parent: 1653 + type: Transform + - uid: 287 + components: + - pos: 22.5,6.5 + parent: 1653 + type: Transform + - uid: 297 + components: + - pos: 6.5,40.5 + parent: 1653 + type: Transform + - uid: 299 + components: + - pos: 0.5,38.5 + parent: 1653 + type: Transform + - uid: 305 + components: + - pos: 14.5,30.5 + parent: 1653 + type: Transform + - uid: 310 + components: + - pos: 14.5,32.5 + parent: 1653 + type: Transform + - uid: 311 + components: + - pos: 26.5,30.5 + parent: 1653 + type: Transform + - uid: 342 + components: + - pos: 22.5,3.5 + parent: 1653 + type: Transform + - uid: 343 + components: + - pos: 21.5,3.5 + parent: 1653 + type: Transform + - uid: 344 + components: + - pos: 23.5,3.5 + parent: 1653 + type: Transform + - uid: 345 + components: + - pos: 24.5,3.5 + parent: 1653 + type: Transform + - uid: 346 + components: + - pos: 20.5,1.5 + parent: 1653 + type: Transform + - uid: 349 + components: + - pos: 21.5,1.5 + parent: 1653 + type: Transform + - uid: 388 + components: + - pos: 28.5,3.5 + parent: 1653 + type: Transform + - uid: 389 + components: + - pos: 26.5,1.5 + parent: 1653 + type: Transform + - uid: 419 + components: + - pos: 19.5,1.5 + parent: 1653 + type: Transform + - uid: 437 + components: + - pos: 26.5,32.5 + parent: 1653 + type: Transform + - uid: 461 + components: + - pos: 54.5,4.5 + parent: 1653 + type: Transform +- proto: WoodenSupportWallBroken + entities: + - uid: 26 + components: + - pos: 27.5,3.5 + parent: 1653 + type: Transform + - uid: 80 + components: + - pos: 17.5,25.5 + parent: 1653 + type: Transform + - uid: 95 + components: + - pos: 4.5,8.5 + parent: 1653 + type: Transform + - uid: 284 + components: + - pos: 20.5,6.5 + parent: 1653 + type: Transform + - uid: 348 + components: + - pos: 20.5,3.5 + parent: 1653 + type: Transform + - uid: 356 + components: + - pos: 39.5,2.5 + parent: 1653 + type: Transform + - uid: 463 + components: + - pos: 50.5,1.5 + parent: 1653 + type: Transform +... diff --git a/Resources/Maps/edge.yml b/Resources/Maps/edge.yml index 2a7e5d737f9..678427c565b 100644 --- a/Resources/Maps/edge.yml +++ b/Resources/Maps/edge.yml @@ -195,7 +195,7 @@ entities: version: 6 -2,-3: ind: -2,-3 - tiles: fwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAQwAAAAAAOwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAbgAAAAAAfwAAAAAAfwAAAAAAbgAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAPAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAARgAAAAAARgAAAAAAfwAAAAAARgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAAPAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAA + tiles: fwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAQwAAAAAAOwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAbgAAAAAAfwAAAAAAfwAAAAAAbgAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAPAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAARgAAAAAARgAAAAAAUAAAAAAARgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAUAAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAARgAAAAAAfwAAAAAAfwAAAAAAPAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAA version: 6 -1,-3: ind: -1,-3 @@ -243,11 +243,11 @@ entities: version: 6 -3,-3: ind: -3,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAPAAAAAAAUAAAAAAARgAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAA + tiles: AAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAPAAAAAAAUAAAAAAARgAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAARgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAA version: 6 -3,-4: ind: -3,-4 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAA version: 6 -5,-1: ind: -5,-1 @@ -5677,6 +5677,7 @@ entities: 4: 1 -11,-12: 0: 61132 + 4: 4403 -10,-12: 0: 16383 4: 49152 @@ -5702,6 +5703,7 @@ entities: 4: 3598 -11,-13: 0: 49152 + 4: 12288 -10,-13: 0: 65216 -9,-13: @@ -6171,7 +6173,11 @@ entities: -12,-10: 4: 65278 -12,-11: - 4: 61410 + 4: 61422 + -12,-12: + 4: 61166 + -12,-13: + 4: 57344 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -7948,6 +7954,34 @@ entities: - DoorStatus: DoorBolt 170: - DoorStatus: DoorBolt + - uid: 17490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-46.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 17492 + - type: DeviceLinkSource + linkedPorts: + 17492: + - DoorStatus: DoorBolt + - uid: 17492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-46.5 + parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 17490 + - type: DeviceLinkSource + linkedPorts: + 17490: + - DoorStatus: DoorBolt - proto: AirlockExternalGlassAtmosphericsLocked entities: - uid: 172 @@ -22782,21 +22816,6 @@ entities: - type: Transform pos: 1.5,-44.5 parent: 2 - - uid: 3161 - components: - - type: Transform - pos: -26.5,-44.5 - parent: 2 - - uid: 3162 - components: - - type: Transform - pos: -26.5,-43.5 - parent: 2 - - uid: 3164 - components: - - type: Transform - pos: -26.5,-42.5 - parent: 2 - uid: 3831 components: - type: Transform @@ -23277,6 +23296,51 @@ entities: - type: Transform pos: -25.5,-38.5 parent: 2 + - uid: 17836 + components: + - type: Transform + pos: -26.5,-42.5 + parent: 2 + - uid: 17865 + components: + - type: Transform + pos: -25.5,-44.5 + parent: 2 + - uid: 17866 + components: + - type: Transform + pos: -25.5,-42.5 + parent: 2 + - uid: 17901 + components: + - type: Transform + pos: -40.5,-41.5 + parent: 2 + - uid: 17902 + components: + - type: Transform + pos: -41.5,-41.5 + parent: 2 + - uid: 17905 + components: + - type: Transform + pos: -39.5,-46.5 + parent: 2 + - uid: 17906 + components: + - type: Transform + pos: -40.5,-46.5 + parent: 2 + - uid: 17907 + components: + - type: Transform + pos: -41.5,-46.5 + parent: 2 + - uid: 17911 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 - proto: CableApcStack entities: - uid: 3016 @@ -27088,11 +27152,6 @@ entities: - type: Transform pos: -41.5,-44.5 parent: 2 - - uid: 3769 - components: - - type: Transform - pos: -41.5,-45.5 - parent: 2 - uid: 3770 components: - type: Transform @@ -33502,6 +33561,111 @@ entities: - type: Transform pos: -31.5,-35.5 parent: 2 + - uid: 17856 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 2 + - uid: 17857 + components: + - type: Transform + pos: -31.5,-44.5 + parent: 2 + - uid: 17858 + components: + - type: Transform + pos: -31.5,-45.5 + parent: 2 + - uid: 17859 + components: + - type: Transform + pos: -30.5,-45.5 + parent: 2 + - uid: 17860 + components: + - type: Transform + pos: -29.5,-45.5 + parent: 2 + - uid: 17861 + components: + - type: Transform + pos: -28.5,-45.5 + parent: 2 + - uid: 17862 + components: + - type: Transform + pos: -27.5,-45.5 + parent: 2 + - uid: 17863 + components: + - type: Transform + pos: -26.5,-45.5 + parent: 2 + - uid: 17867 + components: + - type: Transform + pos: -26.5,-41.5 + parent: 2 + - uid: 17868 + components: + - type: Transform + pos: -26.5,-40.5 + parent: 2 + - uid: 17869 + components: + - type: Transform + pos: -26.5,-39.5 + parent: 2 + - uid: 17870 + components: + - type: Transform + pos: -26.5,-38.5 + parent: 2 + - uid: 17871 + components: + - type: Transform + pos: -26.5,-37.5 + parent: 2 + - uid: 17872 + components: + - type: Transform + pos: -27.5,-37.5 + parent: 2 + - uid: 17873 + components: + - type: Transform + pos: -28.5,-37.5 + parent: 2 + - uid: 17874 + components: + - type: Transform + pos: -28.5,-38.5 + parent: 2 + - uid: 17910 + components: + - type: Transform + pos: -26.5,-44.5 + parent: 2 + - uid: 17912 + components: + - type: Transform + pos: -25.5,-44.5 + parent: 2 + - uid: 17913 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 + - uid: 17914 + components: + - type: Transform + pos: -25.5,-42.5 + parent: 2 + - uid: 17915 + components: + - type: Transform + pos: -26.5,-42.5 + parent: 2 - proto: CableMVStack entities: - uid: 4996 @@ -40682,6 +40846,16 @@ entities: - type: Transform pos: -27.5,-43.5 parent: 2 + - uid: 17893 + components: + - type: Transform + pos: -27.5,-32.5 + parent: 2 + - uid: 17894 + components: + - type: Transform + pos: -27.5,-33.5 + parent: 2 - proto: CrateEngineeringSingularityEmitter entities: - uid: 6184 @@ -47327,6 +47501,15 @@ entities: - type: DeviceLinkSink links: - 17680 + - uid: 17875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-38.5 + parent: 2 + - type: DeviceLinkSink + links: + - 17680 - proto: EncryptionKeyCargo entities: - uid: 7261 @@ -50454,6 +50637,18 @@ entities: parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' + - uid: 3162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-44.5 + parent: 2 + - uid: 3164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-46.5 + parent: 2 - uid: 3217 components: - type: Transform @@ -51966,34 +52161,19 @@ entities: parent: 2 - type: AtmosPipeColor color: '#66FF00FF' - - uid: 17476 + - uid: 13696 components: - type: Transform rot: 1.5707963267948966 rad - pos: -45.5,-37.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17477 - components: - - type: Transform - rot: 3.141592653589793 rad pos: -45.5,-38.5 parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' - - uid: 17478 - components: - - type: Transform - pos: -42.5,-38.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17479 + - uid: 15251 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -42.5,-39.5 + rot: 1.5707963267948966 rad + pos: -41.5,-42.5 parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' @@ -52001,7 +52181,7 @@ entities: components: - type: Transform rot: 1.5707963267948966 rad - pos: -45.5,-39.5 + pos: -44.5,-37.5 parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' @@ -52013,37 +52193,29 @@ entities: parent: 2 - type: AtmosPipeColor color: '#FF0000FF' - - uid: 17482 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -45.5,-40.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - uid: 17483 components: - type: Transform - pos: -42.5,-40.5 + pos: -42.5,-38.5 parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' - - uid: 17484 + - uid: 17496 components: - type: Transform - rot: 3.141592653589793 rad - pos: -42.5,-42.5 + rot: -1.5707963267948966 rad + pos: -31.5,-42.5 parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' - - uid: 17496 + - uid: 17521 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-42.5 + rot: 1.5707963267948966 rad + pos: -25.5,-44.5 parent: 2 - type: AtmosPipeColor - color: '#07FFFFFF' + color: '#ADD8E6FF' - uid: 17531 components: - type: Transform @@ -52059,22 +52231,6 @@ entities: parent: 2 - type: AtmosPipeColor color: '#ADD8E6FF' - - uid: 17534 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-46.5 - parent: 2 - - type: AtmosPipeColor - color: '#ADD8E6FF' - - uid: 17535 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-44.5 - parent: 2 - - type: AtmosPipeColor - color: '#ADD8E6FF' - uid: 17536 components: - type: Transform @@ -52098,6 +52254,12 @@ entities: parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' + - uid: 17636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-44.5 + parent: 2 - uid: 17644 components: - type: Transform @@ -52147,6 +52309,54 @@ entities: parent: 2 - type: AtmosPipeColor color: '#ADD8E6FF' + - uid: 17879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasPipeFourway entities: - uid: 3169 @@ -66900,21 +67110,6 @@ entities: parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' - - uid: 17491 - components: - - type: Transform - pos: -42.5,-41.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17492 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -41.5,-42.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - uid: 17493 components: - type: Transform @@ -66944,38 +67139,30 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-34.5 parent: 2 - - uid: 17521 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-46.5 - parent: 2 - - type: AtmosPipeColor - color: '#ADD8E6FF' - uid: 17522 components: - type: Transform - rot: 3.141592653589793 rad - pos: -27.5,-45.5 + rot: 1.5707963267948966 rad + pos: -30.5,-46.5 parent: 2 - type: AtmosPipeColor - color: '#ADD8E6FF' + color: '#07FFFFFF' - uid: 17523 components: - type: Transform rot: 1.5707963267948966 rad - pos: -26.5,-44.5 + pos: -28.5,-46.5 parent: 2 - type: AtmosPipeColor - color: '#ADD8E6FF' + color: '#07FFFFFF' - uid: 17524 components: - type: Transform rot: 1.5707963267948966 rad - pos: -25.5,-44.5 + pos: -31.5,-46.5 parent: 2 - type: AtmosPipeColor - color: '#ADD8E6FF' + color: '#07FFFFFF' - uid: 17525 components: - type: Transform @@ -67032,6 +67219,14 @@ entities: parent: 2 - type: AtmosPipeColor color: '#ADD8E6FF' + - uid: 17534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - uid: 17537 components: - type: Transform @@ -67103,14 +67298,6 @@ entities: parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' - - uid: 17636 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-46.5 - parent: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - uid: 17637 components: - type: Transform @@ -67364,13 +67551,22 @@ entities: parent: 2 - type: AtmosPipeColor color: '#FF0000FF' - - uid: 17836 + - uid: 17880 components: - type: Transform - pos: -25.5,-42.5 + rot: 3.141592653589793 rad + pos: -41.5,-43.5 parent: 2 - type: AtmosPipeColor - color: '#FF0000FF' + color: '#07FFFFFF' + - uid: 17892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - proto: GasPipeTJunction entities: - uid: 2633 @@ -70046,6 +70242,29 @@ entities: parent: 2 - type: AtmosPipeColor color: '#ADD8E6FF' + - uid: 15217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 15226 + components: + - type: Transform + pos: -43.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - uid: 17495 components: - type: Transform @@ -70061,6 +70280,14 @@ entities: parent: 2 - type: AtmosPipeColor color: '#FF0000FF' + - uid: 17535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - uid: 17628 components: - type: Transform @@ -70085,6 +70312,38 @@ entities: parent: 2 - type: AtmosPipeColor color: '#07FFFFFF' + - uid: 17864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 17887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - proto: GasPort entities: - uid: 10174 @@ -70487,16 +70746,25 @@ entities: joinedGrid: 2 - type: AtmosPipeColor color: '#FF0000FF' - - uid: 17520 + - uid: 17517 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-46.5 + pos: -26.5,-46.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor - color: '#ADD8E6FF' + color: '#07FFFFFF' + - uid: 17520 + components: + - type: Transform + pos: -27.5,-45.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - uid: 17629 components: - type: MetaData @@ -70529,21 +70797,37 @@ entities: joinedGrid: 2 - type: AtmosPipeColor color: '#FF0000FF' - - uid: 17790 + - uid: 17881 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -39.5,-37.5 + pos: -45.5,-41.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor - color: '#FF0000FF' - - uid: 17791 + color: '#07FFFFFF' + - uid: 17882 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -39.5,-42.5 + pos: -44.5,-41.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17883 + components: + - type: Transform + pos: -43.5,-41.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17884 + components: + - type: Transform + pos: -42.5,-41.5 parent: 2 - type: AtmosDevice joinedGrid: 2 @@ -70638,7 +70922,21 @@ entities: - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor - color: '#FF0000FF' + color: '#07FFFFFF' + - uid: 3161 + components: + - type: MetaData + name: distro to coolant + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-45.5 + parent: 2 + - type: GasValve + open: False + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#ADD8E6FF' - uid: 3893 components: - type: MetaData @@ -70760,20 +71058,6 @@ entities: joinedGrid: 2 - type: AtmosPipeColor color: '#FF5349FF' - - uid: 17517 - components: - - type: MetaData - name: distro to coolant - - type: Transform - rot: 1.5707963267948966 rad - pos: -30.5,-46.5 - parent: 2 - - type: GasValve - open: False - - type: AtmosDevice - joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - uid: 17682 components: - type: MetaData @@ -70799,6 +71083,18 @@ entities: joinedGrid: 2 - type: AtmosPipeColor color: '#07FFFFFF' + - uid: 17909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-43.5 + parent: 2 + - type: GasValve + open: False + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasVentPump entities: - uid: 2584 @@ -74410,12 +74706,19 @@ entities: rot: 3.141592653589793 rad pos: -25.5,-43.5 parent: 2 - - type: AtmosDevice - joinedGrid: 2 - type: AtmosPipeColor color: '#FF0000FF' - proto: GasVolumePump entities: + - uid: 3769 + components: + - type: Transform + pos: -43.5,-39.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - uid: 10586 components: - type: Transform @@ -74472,6 +74775,53 @@ entities: joinedGrid: 2 - type: AtmosPipeColor color: '#66FF00FF' + - uid: 10747 + components: + - type: Transform + pos: -44.5,-39.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-37.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-42.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17482 + components: + - type: Transform + pos: -45.5,-39.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' + - uid: 17485 + components: + - type: Transform + pos: -42.5,-39.5 + parent: 2 + - type: AtmosDevice + joinedGrid: 2 + - type: AtmosPipeColor + color: '#07FFFFFF' - proto: Gauze entities: - uid: 10591 @@ -75311,11 +75661,6 @@ entities: rot: -1.5707963267948966 rad pos: -61.5,6.5 parent: 2 - - uid: 10747 - components: - - type: Transform - pos: -41.5,-45.5 - parent: 2 - uid: 10748 components: - type: Transform @@ -79370,6 +79715,18 @@ entities: - type: Transform pos: 8.5,-27.5 parent: 2 + - uid: 17478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-48.5 + parent: 2 + - uid: 17489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-46.5 + parent: 2 - uid: 17497 components: - type: Transform @@ -79425,6 +79782,12 @@ entities: - type: Transform pos: -35.5,-35.5 parent: 2 + - uid: 17694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-47.5 + parent: 2 - uid: 17777 components: - type: Transform @@ -79450,6 +79813,12 @@ entities: - type: Transform pos: -33.5,-39.5 parent: 2 + - uid: 17790 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-48.5 + parent: 2 - proto: GrilleBroken entities: - uid: 11522 @@ -79983,6 +80352,35 @@ entities: - type: Transform pos: -28.5,48.5 parent: 2 + - uid: 15228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-48.5 + parent: 2 + - uid: 15229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-48.5 + parent: 2 + - uid: 15244 + components: + - type: Transform + pos: -46.5,-45.5 + parent: 2 + - uid: 15245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-48.5 + parent: 2 + - uid: 17477 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-48.5 + parent: 2 - uid: 17842 components: - type: Transform @@ -80100,86 +80498,34 @@ entities: parent: 2 - proto: HeatExchanger entities: - - uid: 17474 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -44.5,-40.5 - parent: 2 - - type: AtmosDevice - joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17475 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-40.5 - parent: 2 - - type: AtmosDevice - joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17485 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-39.5 - parent: 2 - - type: AtmosDevice - joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17486 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -44.5,-39.5 - parent: 2 - - type: AtmosDevice - joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17487 + - uid: 17484 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -44.5,-38.5 + pos: -45.5,-40.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17488 + - uid: 17876 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-38.5 + pos: -44.5,-40.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17489 + - uid: 17877 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-37.5 + pos: -43.5,-40.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - - uid: 17490 + - uid: 17878 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -44.5,-37.5 + pos: -42.5,-40.5 parent: 2 - type: AtmosDevice joinedGrid: 2 - - type: AtmosPipeColor - color: '#07FFFFFF' - proto: HighSecArmoryLocked entities: - uid: 11637 @@ -80620,12 +80966,6 @@ entities: parent: 2 - proto: IntercomEngineering entities: - - uid: 2637 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-38.5 - parent: 2 - uid: 11714 components: - type: Transform @@ -80654,6 +80994,12 @@ entities: rot: 1.5707963267948966 rad pos: -19.5,-28.5 parent: 2 + - uid: 17486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-39.5 + parent: 2 - proto: IntercomMedical entities: - uid: 11719 @@ -81155,6 +81501,8 @@ entities: - Pressed: Toggle 3902: - Pressed: Toggle + 17875: + - Pressed: Toggle - proto: LockerAtmosphericsFilled entities: - uid: 11778 @@ -83068,6 +83416,16 @@ entities: rot: 3.141592653589793 rad pos: -33.31521,-43.567078 parent: 2 + - uid: 17896 + components: + - type: Transform + pos: -27.632969,-35.47815 + parent: 2 + - uid: 17897 + components: + - type: Transform + pos: -27.382969,-35.5719 + parent: 2 - proto: PlasticFlapsAirtightClear entities: - uid: 12078 @@ -85929,6 +86287,18 @@ entities: - type: Transform pos: 20.5,-50.5 parent: 2 + - uid: 17903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-41.5 + parent: 2 + - uid: 17904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-47.5 + parent: 2 - proto: PoweredLightColoredBlack entities: - uid: 12535 @@ -86959,6 +87329,17 @@ entities: rot: 3.141592653589793 rad pos: -33.5,-43.5 parent: 2 + - uid: 17895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-35.5 + parent: 2 + - uid: 17898 + components: + - type: Transform + pos: -39.5,-31.5 + parent: 2 - proto: RadiationCollectorNoTank entities: - uid: 2626 @@ -86986,6 +87367,8 @@ entities: - type: Transform pos: -34.5,-40.5 parent: 2 + - type: RadiationCollector + enabled: True - uid: 3213 components: - type: Transform @@ -87026,6 +87409,8 @@ entities: - type: Transform pos: -28.5,-39.5 parent: 2 + - type: RadiationCollector + enabled: True - uid: 17761 components: - type: Transform @@ -90930,6 +91315,12 @@ entities: - type: Transform pos: -40.5,-34.5 parent: 2 + - uid: 17791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-38.5 + parent: 2 - proto: RemoteSignaller entities: - uid: 13453 @@ -91411,6 +91802,11 @@ entities: - type: Transform pos: -42.71093,39.51951 parent: 2 + - uid: 17899 + components: + - type: Transform + pos: -39.76288,-31.370575 + parent: 2 - proto: SheetPlasma entities: - uid: 13517 @@ -91576,6 +91972,11 @@ entities: - type: Transform pos: -43.440098,39.540356 parent: 2 + - uid: 17900 + components: + - type: Transform + pos: -39.403503,-31.47995 + parent: 2 - proto: SheetUranium entities: - uid: 13542 @@ -93160,11 +93561,6 @@ entities: - type: Transform pos: -46.5,-23.5 parent: 2 - - uid: 13696 - components: - - type: Transform - pos: -41.5,-46.5 - parent: 2 - uid: 13697 components: - type: Transform @@ -100391,6 +100787,12 @@ entities: - type: Transform pos: -28.5,-36.5 parent: 2 + - uid: 2637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-47.5 + parent: 2 - uid: 3890 components: - type: Transform @@ -102729,11 +103131,6 @@ entities: rot: 3.141592653589793 rad pos: -23.5,-47.5 parent: 2 - - uid: 15217 - components: - - type: Transform - pos: -40.5,-46.5 - parent: 2 - uid: 15218 components: - type: Transform @@ -102774,27 +103171,11 @@ entities: rot: 3.141592653589793 rad pos: -38.5,-47.5 parent: 2 - - uid: 15226 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -39.5,-47.5 - parent: 2 - uid: 15227 components: - type: Transform pos: -41.5,-29.5 parent: 2 - - uid: 15228 - components: - - type: Transform - pos: -40.5,-47.5 - parent: 2 - - uid: 15229 - components: - - type: Transform - pos: -41.5,-46.5 - parent: 2 - uid: 15230 components: - type: Transform @@ -102865,16 +103246,6 @@ entities: - type: Transform pos: -9.5,-45.5 parent: 2 - - uid: 15244 - components: - - type: Transform - pos: -41.5,-47.5 - parent: 2 - - uid: 15245 - components: - - type: Transform - pos: -39.5,-46.5 - parent: 2 - uid: 15246 components: - type: Transform @@ -102900,11 +103271,6 @@ entities: - type: Transform pos: -40.5,-48.5 parent: 2 - - uid: 15251 - components: - - type: Transform - pos: -41.5,-48.5 - parent: 2 - uid: 15252 components: - type: Transform @@ -107356,6 +107722,30 @@ entities: rot: 1.5707963267948966 rad pos: -0.5,-34.5 parent: 2 + - uid: 17476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-47.5 + parent: 2 + - uid: 17487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-47.5 + parent: 2 + - uid: 17488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-45.5 + parent: 2 + - uid: 17491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-45.5 + parent: 2 - uid: 17545 components: - type: Transform @@ -107425,11 +107815,6 @@ entities: - type: Transform pos: -34.5,-44.5 parent: 2 - - uid: 17694 - components: - - type: Transform - pos: -29.5,-38.5 - parent: 2 - uid: 17802 components: - type: Transform diff --git a/Resources/Prototypes/Accents/word_replacements.yml b/Resources/Prototypes/Accents/word_replacements.yml index 147aebb5c5d..92b3d7de9b3 100644 --- a/Resources/Prototypes/Accents/word_replacements.yml +++ b/Resources/Prototypes/Accents/word_replacements.yml @@ -1,4 +1,4 @@ -# Accents that work off of word replacements. +# Accents that work off of word replacements. # this is kind of dumb but localization demands it. # i guess you could just specify the prefix ('mobster') and count and let the system fill it @@ -263,7 +263,7 @@ accent-pirate-replaced-30: accent-pirate-replacement-30 accent-pirate-replaced-31: accent-pirate-replacement-31 accent-pirate-replaced-32: accent-pirate-replacement-32 - + - type: accent id: cowboy wordReplacements: @@ -366,7 +366,7 @@ accent-cowboy-words-97: accent-cowboy-replacement-97 accent-cowboy-words-98: accent-cowboy-replacement-98 accent-cowboy-words-99: accent-cowboy-replacement-99 - + # For the chat sanitization system - type: accent @@ -409,8 +409,9 @@ # chatsan-word-35: chatsan-replacement-35 # chatsan-word-36: chatsan-replacement-36 chatsan-word-37: chatsan-replacement-37 - # chatsan-word-38: chatsan-replacement-38 - # chatsan-word-39: chatsan-replacement-etcetera - # chatsan-word-40: chatsan-replacement-etcetera - # chatsan-word-41: chatsan-replacement-41 - # chatsan-word-42: chatsan-replacement-42 + chatsan-word-38: chatsan-replacement-38 + chatsan-word-39: chatsan-replacement-etcetera + chatsan-word-40: chatsan-replacement-etcetera + chatsan-word-41: chatsan-replacement-41 + chatsan-word-42: chatsan-replacement-42 + chatsan-word-43: chatsan-replacement-43 diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index b91b26e3570..22f16bd9568 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -120,7 +120,7 @@ priority: -20 icon: sprite: Objects/Devices/communication.rsi - state: old-radio + state: radio event: !type:OpenUplinkImplantEvent - type: entity diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_armory.yml b/Resources/Prototypes/Catalog/Cargo/cargo_armory.yml index 399181b4fab..6341042bf89 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_armory.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_armory.yml @@ -5,7 +5,7 @@ state: icon product: CrateArmorySMG cost: 9000 - category: Armory + category: cargoproduct-category-name-armory group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: icon product: CrateArmoryShotgun cost: 7000 - category: Armory + category: cargoproduct-category-name-armory group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: implanter0 product: CrateTrackingImplants cost: 1000 - category: Armory + category: cargoproduct-category-name-armory group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: training-bomb product: CrateTrainingBombs cost: 3000 - category: Armory + category: cargoproduct-category-name-armory group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: icon product: CrateArmoryLaser cost: 4800 - category: Armory + category: cargoproduct-category-name-armory group: market - type: cargoProduct @@ -55,5 +55,5 @@ state: icon product: CrateArmoryPistols cost: 5200 - category: Armory + category: cargoproduct-category-name-armory group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_atmospherics.yml b/Resources/Prototypes/Catalog/Cargo/cargo_atmospherics.yml index 0aa49383992..c85210adf6a 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_atmospherics.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_atmospherics.yml @@ -5,7 +5,7 @@ state: grey product: AirCanister cost: 1100 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: blue product: OxygenCanister cost: 1100 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: blue product: LiquidOxygenCanister cost: 2500 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: red product: NitrogenCanister cost: 1100 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: red product: LiquidNitrogenCanister cost: 2500 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: black product: CarbonDioxideCanister cost: 2200 # Until someone fixes it co2 can be used to oneshot people so it's more expensive - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: black product: LiquidCarbonDioxideCanister cost: 4000 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: yellow product: StorageCanister cost: 1010 # No gases in it so it's cheaper - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market #- type: cargoProduct @@ -87,7 +87,7 @@ # state: water_vapor # product: WaterVaporCanister # cost: 2600 -# category: Atmospherics +# category: cargoproduct-category-name-atmospherics # group: market - type: cargoProduct @@ -97,7 +97,7 @@ state: orange product: PlasmaCanister cost: 4000 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market #- type: cargoProduct @@ -109,5 +109,5 @@ # state: green # product: TritiumCanister # cost: 15500 -# category: Atmospherics +# category: cargoproduct-category-name-atmospherics # group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml b/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml index 4a80b76a3fa..a6671ff0998 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml @@ -5,7 +5,7 @@ state: seed product: CrateHydroponicsSeedsExotic cost: 1000 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: seed product: CrateHydroponicsSeedsMedicinal cost: 500 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: icon product: CrateHydroponicsTools cost: 500 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: seed product: CrateHydroponicsSeeds cost: 550 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -45,5 +45,5 @@ state: jug product: CratePlantBGone cost: 750 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml index 9dac47b6f15..fb3b2da41a8 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml @@ -15,7 +15,7 @@ state: orebox product: OreBox cost: 500 - category: Logistics # DeltaV - Logistics Department replacing Cargo + category: cargoproduct-category-name-cargo group: market - type: cargoProduct @@ -25,5 +25,5 @@ state: icon product: CrateCargoLuxuryHardsuit cost: 15000 - category: Logistics # DeltaV - Logistics Department replacing Cargo + category: cargoproduct-category-name-cargo group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_circuitboards.yml b/Resources/Prototypes/Catalog/Cargo/cargo_circuitboards.yml index 0af5b5db016..a96780fc3ed 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_circuitboards.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_circuitboards.yml @@ -5,5 +5,5 @@ state: cpuboard product: CrateCrewMonitoringBoards cost: 2000 - category: Circuitboards + category: cargoproduct-category-name-circuitboards group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml index 2777f859a07..2715e0c3501 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_emergency.yml @@ -5,7 +5,7 @@ state: icon product: CrateEmergencyExplosive cost: 650 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: fire_extinguisher_closed product: CrateEmergencyFire cost: 1500 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: icon product: CrateEmergencyInternals cost: 500 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: icon product: CrateEmergencyInternalsLarge cost: 2000 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: radiation product: CrateEmergencyRadiation cost: 1000 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: item_wall product: CrateEmergencyInflatablewall cost: 500 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: icon product: CrateSlimepersonLifeSupport cost: 300 - category: Emergency + category: cargoproduct-category-name-emergency group: market - type: cargoProduct @@ -75,5 +75,5 @@ state: icon product: CrateGenericBiosuit cost: 800 - category: Emergency + category: cargoproduct-category-name-emergency group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml index b5468fd982c..754e30f133a 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml @@ -5,7 +5,7 @@ state: coillv-30 product: CrateEngineeringCableLV cost: 300 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: coilmv-30 product: CrateEngineeringCableMV cost: 300 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: coilhv-30 product: CrateEngineeringCableHV cost: 300 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: coilall-30 product: CrateEngineeringCableBulk cost: 750 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: icon product: CrateEngineeringElectricalSupplies cost: 4500 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: icon product: CrateEngineeringStationBeaconBundle cost: 500 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: icon product: CrateEngineeringJetpack cost: 1000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: icon product: CrateEngineeringMiniJetpack cost: 750 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: icon product: CrateAirlockKit cost: 1100 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: icon product: CrateEvaKit cost: 5000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -105,7 +105,7 @@ state: ammo product: CrateRCDAmmo cost: 2500 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: icon product: CrateRCD cost: 800 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: base product: CrateParticleDecelerators cost: 15000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -135,5 +135,5 @@ state: sheaterOff product: SpaceHeaterAnchored cost: 300 - category: Engineering + category: cargoproduct-category-name-engineering group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml index ece817b746e..bd00b0c2d4c 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml @@ -5,7 +5,7 @@ state: jar product: CrateEngineeringAMEJar cost: 2000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: icon product: CrateEngineeringSingularityGenerator cost: 4000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: icon product: CrateEngineeringSingularityContainment cost: 1000 - category: Engineering + category: cargoproduct-category-name-engineering group: market #- type: cargoProduct @@ -37,7 +37,7 @@ # state: emitter2 # product: CrateEngineeringSingularityEmitter # cost: 3000 -# category: Engineering +# category: cargoproduct-category-name-engineering # group: market - type: cargoProduct @@ -47,7 +47,7 @@ state: ca_on product: CrateEngineeringSingularityCollector cost: 1000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -57,7 +57,7 @@ state: completed product: CrateEngineeringParticleAccelerator cost: 2000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -67,18 +67,18 @@ state: solar-assembly-part product: CrateEngineeringSolar cost: 500 - category: Engineering + category: cargoproduct-category-name-engineering group: market -#- type: cargoProduct -# id: EngineTeslaGenerator -# icon: -# sprite: Structures/Power/Generation/Tesla/generator.rsi -# state: icon -# product: CrateEngineeringTeslaGenerator -# cost: 4000 -# category: Engineering -# group: market +- type: cargoProduct + id: EngineTeslaGenerator + icon: + sprite: Structures/Power/Generation/Tesla/generator.rsi + state: icon + product: CrateEngineeringTeslaGenerator + cost: 4000 + category: cargoproduct-category-name-engineering + group: market - type: cargoProduct id: EngineTeslaCoil @@ -87,7 +87,7 @@ state: coil product: CrateEngineeringTeslaCoil cost: 1200 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -97,5 +97,5 @@ state: grounding_rod product: CrateEngineeringTeslaGroundingRod cost: 400 - category: Engineering + category: cargoproduct-category-name-engineering group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/Catalog/Cargo/cargo_food.yml index e5069959296..1a6f8380961 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_food.yml @@ -5,7 +5,7 @@ state: margherita-slice product: CrateFoodPizza cost: 450 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: margherita product: CrateFoodPizzaLarge cost: 1800 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: nutribrick product: CrateFoodMRE cost: 1000 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: flour-big product: CrateFoodCooking cost: 750 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: tin product: CrateFoodDinnerware cost: 750 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: icon product: CrateFoodBarSupply cost: 750 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: icon product: CrateFoodSoftdrinks cost: 1200 - category: Food + category: cargoproduct-category-name-food group: market - type: cargoProduct @@ -75,5 +75,5 @@ state: icon product: CrateFoodSoftdrinksLarge cost: 2400 - category: Food + category: cargoproduct-category-name-food group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml index d84fedd543f..c29458a1ee5 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml @@ -5,7 +5,7 @@ state: icon product: CrateFunInstrumentsVariety cost: 2000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: tuba product: CrateFunInstrumentsBrass cost: 2500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: icon product: CrateFunInstrumentsString cost: 2500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: icon product: CrateFunInstrumentsWoodwind cost: 2500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: icon product: CrateFunInstrumentsKeyedPercussion cost: 2500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: icon product: CrateFunInstrumentsSpecial cost: 10000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: box product: CrateFunArtSupplies cost: 500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: birthday product: CrateFunParty cost: 1000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: display product: CrateFunWaterGuns cost: 750 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -105,7 +105,7 @@ state: plushie_h product: CrateFunPlushie cost: 1000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: plushie_lizard product: CrateFunLizardPlushieBulk cost: 500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: d6_6 product: CrateFunBoardGames cost: 1500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -135,7 +135,7 @@ state: implanter0 product: CrateFunSadTromboneImplants cost: 1000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -145,7 +145,7 @@ state: implanter0 product: CrateFunLightImplants cost: 1000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -155,7 +155,7 @@ state: icon product: CrateFunBoxing cost: 500 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -165,7 +165,7 @@ state: crate_icon product: CrateFunPirate cost: 400 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -175,7 +175,7 @@ state: crate_icon product: CrateFunToyBox cost: 900 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -185,7 +185,7 @@ state: implanter0 product: CrateFunBikeHornImplants cost: 1000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -195,7 +195,7 @@ state: fig_box product: CrateFunMysteryFigurines cost: 4000 - category: Fun + category: cargoproduct-category-name-fun group: market - type: cargoProduct @@ -205,15 +205,15 @@ state: icon product: CrateFunDartsSet cost: 900 - category: Fun + category: cargoproduct-category-name-fun group: market -#- type: cargoProduct -# id: FunCrateGambling -# icon: -# sprite: Objects/Economy/cash.rsi -# state: cash_1000000 -# product: CrateCargoGambling -# cost: 10000 -# category: Fun -# group: market +- type: cargoProduct + id: FunCrateGambling + icon: + sprite: Objects/Economy/cash.rsi + state: cash_1000000 + product: CrateCargoGambling + cost: 10000 + category: cargoproduct-category-name-fun + group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml index 6ef0ab4e211..922e2951b6c 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml @@ -5,7 +5,7 @@ state: 0 product: CrateNPCBee cost: 7000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: butterfly product: CrateNPCButterflies cost: 4400 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: cat product: CrateNPCCat cost: 1200 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: icon-1 product: CrateNPCChicken cost: 4000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: crab product: CrateNPCCrab cost: 3000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: icon-0 product: CrateNPCDuck cost: 6000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: corgi product: CrateNPCCorgi cost: 1200 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: puppy product: CrateNPCPuppyCorgi cost: 1200 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: cow product: CrateNPCCow cost: 3200 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: goat product: CrateNPCGoat cost: 1200 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -105,7 +105,7 @@ state: goose product: CrateNPCGoose cost: 2100 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: icon product: CrateNPCGorilla cost: 1100 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: box product: CrateNPCMonkeyCube cost: 2000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -135,7 +135,7 @@ state: box_kobold product: CrateNPCKoboldCube cost: 2000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -145,7 +145,7 @@ state: icon-0 product: CrateNPCMouse cost: 4400 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -155,7 +155,7 @@ state: parrot product: CrateNPCParrot cost: 3000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -165,7 +165,7 @@ state: penguin product: CrateNPCPenguin cost: 2100 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -175,7 +175,7 @@ state: pig product: CrateNPCPig cost: 1100 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -185,7 +185,7 @@ state: snake product: CrateNPCSnake cost: 3000 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -195,7 +195,7 @@ state: icon-0 product: CrateNPCHamster cost: 2800 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -205,7 +205,7 @@ state: lizard product: CrateNPCLizard cost: 1100 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -215,7 +215,7 @@ state: kangaroo product: CrateNPCKangaroo cost: 2800 - category: Livestock + category: cargoproduct-category-name-livestock group: market - type: cargoProduct @@ -225,5 +225,5 @@ state: mothroach product: CrateNPCMothroach cost: 5000 - category: Livestock + category: cargoproduct-category-name-livestock group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_materials.yml b/Resources/Prototypes/Catalog/Cargo/cargo_materials.yml index e3b07af13ba..6f945001d93 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_materials.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_materials.yml @@ -5,7 +5,7 @@ state: glass_3 product: CrateMaterialGlass cost: 1000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: steel_3 product: CrateMaterialSteel cost: 1000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: plastic_3 product: CrateMaterialPlastic cost: 1500 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: brass_3 product: CrateMaterialBrass cost: 2500 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: plasteel_3 product: CrateMaterialPlasteel cost: 3000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: cloth_3 product: CrateMaterialTextiles cost: 1000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: plasma_3 product: CrateMaterialPlasma cost: 2000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: cardboard_3 product: CrateMaterialCardboard cost: 750 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: paper_3 product: CrateMaterialPaper cost: 1000 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: fueltank product: WeldingFuelTankFull cost: 1500 - category: Materials + category: cargoproduct-category-name-materials group: market - type: cargoProduct @@ -105,5 +105,5 @@ state: watertank product: WaterTankFull cost: 1000 - category: Materials + category: cargoproduct-category-name-materials group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml index 01a7192b35b..1addf523e4b 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml @@ -5,7 +5,7 @@ state: firstaid product: CrateMedicalSupplies cost: 2400 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: beaker product: CrateChemistrySupplies cost: 750 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: vial product: CrateChemistryVials cost: 1000 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: burnkit product: CrateEmergencyBurnKit cost: 700 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: toxinkit product: CrateEmergencyToxinKit cost: 600 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: o2kit product: CrateEmergencyO2Kit cost: 600 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: brutekit product: CrateEmergencyBruteKit cost: 600 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: advkit product: CrateEmergencyAdvancedKit cost: 1200 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: radkit product: CrateEmergencyRadiationKit cost: 600 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: bag_folded product: CrateBodyBags cost: 700 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -105,7 +105,7 @@ state: icon product: CrateVirologyBiosuit cost: 800 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: implanter0 product: CrateMindShieldImplants cost: 3000 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: icon product: CrateChemistryP cost: 850 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -135,7 +135,7 @@ state: icon product: CrateChemistryS cost: 750 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -145,5 +145,5 @@ state: icon product: CrateChemistryD cost: 750 - category: Medical + category: cargoproduct-category-name-medical group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_science.yml b/Resources/Prototypes/Catalog/Cargo/cargo_science.yml index ce1cf009a9b..756a223e74d 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_science.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_science.yml @@ -5,7 +5,7 @@ state: artifact_container_icon product: CrateArtifactContainer cost: 500 - category: Science + category: cargoproduct-category-name-science group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: ano13 product: RandomArtifactSpawner cost: 2000 - category: Science + category: cargoproduct-category-name-science group: market - type: cargoProduct @@ -25,5 +25,5 @@ state: icon product: CrateScienceBiosuit cost: 800 - category: Science + category: cargoproduct-category-name-science group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml index a616202bdba..2ad7628ddb3 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml @@ -4,8 +4,8 @@ sprite: DeltaV/Clothing/OuterClothing/Armor/platecarrier.rsi # DeltaV - resprite state: icon product: CrateSecurityArmor - cost: 1000 # DeltaV - raise price for buffed armour - category: Security + cost: 800 + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: icon product: CrateSecurityHelmet cost: 550 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: base product: CrateSecurityNonlethal cost: 4000 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: icon product: CrateSecurityRiot cost: 5500 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: box_security product: CrateSecuritySupplies cost: 500 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: handcuff product: CrateRestraints cost: 1000 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: icon product: CrateSecurityBiosuit cost: 800 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -75,5 +75,5 @@ state: idle product: DeployableBarrier cost: 1000 - category: Security + category: cargoproduct-category-name-security group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml index a2c0af9ce7f..f27adb65a4a 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_service.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_service.yml @@ -5,7 +5,7 @@ state: cleaner product: CrateServiceJanitorialSupplies cost: 560 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: normal product: CrateServiceReplacementLights cost: 600 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -25,7 +25,7 @@ state: mousetrap product: CrateMousetrapBoxes cost: 500 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -35,7 +35,7 @@ state: icon product: CrateServiceTheatre cost: 1800 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -45,7 +45,7 @@ state: closed product: CrateServiceSmokeables cost: 1500 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: closed product: CrateServiceCustomSmokable cost: 1000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: pen product: CrateServiceBureaucracy cost: 1000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: default product: CrateServicePersonnel cost: 1000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: book0 product: CrateServiceBooks cost: 1000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: book_engineering2 product: CrateServiceGuidebooks cost: 1300 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -105,7 +105,7 @@ state: icon product: CrateServiceSodaDispenser cost: 850 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: icon product: CrateServiceBoozeDispenser cost: 750 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: box product: CrateServiceBox cost: 400 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -135,7 +135,7 @@ state: icon product: CrateJanitorBiosuit cost: 800 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -145,7 +145,7 @@ state: icon-hot product: FoodCartHot cost: 2000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -155,7 +155,7 @@ state: icon-cold product: FoodCartCold cost: 2000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -165,7 +165,7 @@ state: icon product: PetCarrier cost: 500 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -175,7 +175,7 @@ state: icon product: CrateJanitorExplosive cost: 1000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -185,6 +185,6 @@ state: icon-cart product: JanitorialTrolley cost: 300 - category: Service + category: cargoproduct-category-name-service group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_shuttle.yml b/Resources/Prototypes/Catalog/Cargo/cargo_shuttle.yml index 96a193881ef..278104caed1 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_shuttle.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_shuttle.yml @@ -5,7 +5,7 @@ state: base product: CrateEngineeringThruster cost: 1500 - category: Shuttle + category: cargoproduct-category-name-shuttle group: market - type: cargoProduct @@ -15,7 +15,7 @@ state: base product: CrateEngineeringGyroscope cost: 4000 - category: Shuttle + category: cargoproduct-category-name-shuttle group: market # - type: cargoProduct @@ -25,6 +25,6 @@ # state: avionics-systems # product: CrateEngineeringShuttle # cost: 3000 - # category: Shuttle + # category: cargoproduct-category-name-shuttle # group: market # locked: true # only the QM has permission to order by default diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml index 78616129e5d..3e303c32127 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml @@ -13,7 +13,7 @@ state: base product: CrateVendingMachineRestockBoozeFilled cost: 3500 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -24,7 +24,7 @@ state: base product: CrateVendingMachineRestockChefvendFilled cost: 680 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -44,7 +44,7 @@ state: base product: CrateVendingMachineRestockDinnerwareFilled cost: 2000 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -55,7 +55,7 @@ state: base product: CrateVendingMachineRestockCondimentStationFilled cost: 300 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -65,7 +65,7 @@ state: base product: CrateVendingMachineRestockEngineeringFilled cost: 3200 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -75,7 +75,7 @@ state: base product: CrateVendingMachineRestockGamesFilled cost: 750 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -85,7 +85,7 @@ state: base product: CrateVendingMachineRestockHotDrinksFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -95,7 +95,7 @@ state: base product: CrateVendingMachineRestockMedicalFilled cost: 1750 - category: Medical + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -104,8 +104,8 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockChemVendFilled - cost: 6300 #Delta V - was 3820, see rebase PR #53 - category: Medical + cost: 3820 + category: cargoproduct-category-name-medical group: market - type: cargoProduct @@ -115,7 +115,7 @@ state: base product: CrateVendingMachineRestockNutriMaxFilled cost: 2400 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -125,7 +125,7 @@ state: base product: CrateVendingMachineRestockPTechFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -135,7 +135,7 @@ state: base product: CrateVendingMachineRestockRobustSoftdrinksFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -145,7 +145,7 @@ state: base product: CrateVendingMachineRestockSalvageEquipmentFilled cost: 1000 - category: Engineering + category: cargoproduct-category-name-engineering group: market - type: cargoProduct @@ -155,7 +155,7 @@ state: base product: CrateVendingMachineRestockSecTechFilled cost: 2200 - category: Security + category: cargoproduct-category-name-security group: market - type: cargoProduct @@ -165,7 +165,7 @@ state: base product: CrateVendingMachineRestockSeedsFilled cost: 3375 - category: Hydroponics + category: cargoproduct-category-name-hydroponics group: market - type: cargoProduct @@ -175,7 +175,7 @@ state: base product: CrateVendingMachineRestockSmokesFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -185,7 +185,7 @@ state: base product: CrateVendingMachineRestockVendomatFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -195,7 +195,7 @@ state: base product: CrateVendingMachineRestockRoboticsFilled cost: 1600 - category: Science + category: cargoproduct-category-name-science group: market - type: cargoProduct @@ -205,7 +205,7 @@ state: base product: CrateVendingMachineRestockTankDispenserFilled cost: 1000 - category: Atmospherics + category: cargoproduct-category-name-atmospherics group: market - type: cargoProduct @@ -215,7 +215,7 @@ state: base product: CrateVendingMachineRestockHappyHonkFilled cost: 2100 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -225,7 +225,7 @@ state: base product: CrateVendingMachineRestockGetmoreChocolateCorpFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -235,7 +235,7 @@ state: base product: CrateVendingMachineRestockChangFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -245,7 +245,7 @@ state: base product: CrateVendingMachineRestockDiscountDansFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market - type: cargoProduct @@ -255,5 +255,5 @@ state: base product: CrateVendingMachineRestockDonutFilled cost: 1200 - category: Service + category: cargoproduct-category-name-service group: market diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml index 92e4032b0cb..bb21bc36d47 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml @@ -87,6 +87,7 @@ ClothingShoesBootsCowboyBrown: 1 ClothingShoesBootsCowboyBlack: 1 ClothingShoesBootsCowboyWhite: 1 + ClothingMaskNeckGaiterRed: 2 emaggedInventory: ClothingShoesBling: 1 ClothingShoesBootsCowboyFancy: 1 diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index ba31f16d42b..7963ccd14aa 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -428,7 +428,7 @@ name: uplink-reinforcement-radio-name description: uplink-reinforcement-radio-desc productEntity: ReinforcementRadioSyndicate - icon: { sprite: Objects/Devices/communication.rsi, state: old-radio } + icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: Telecrystal: 16 categories: @@ -444,7 +444,7 @@ name: uplink-reinforcement-radio-name description: uplink-reinforcement-radio-desc productEntity: ReinforcementRadioSyndicateNukeops - icon: { sprite: Objects/Devices/communication.rsi, state: old-radio } + icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: Telecrystal: 16 categories: @@ -476,7 +476,7 @@ name: uplink-reinforcement-radio-monkey-name description: uplink-reinforcement-radio-monkey-desc productEntity: ReinforcementRadioSyndicateMonkey - icon: { sprite: Objects/Devices/communication.rsi, state: old-radio } + icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: Telecrystal: 8 categories: @@ -492,9 +492,9 @@ name: uplink-reinforcement-radio-monkey-name description: uplink-reinforcement-radio-monkey-desc productEntity: ReinforcementRadioSyndicateMonkeyNukeops - icon: { sprite: Objects/Devices/communication.rsi, state: old-radio } + icon: { sprite: Objects/Devices/communication.rsi, state: radio } cost: - Telecrystal: 8 + Telecrystal: 6 categories: - UplinkUtility conditions: @@ -724,7 +724,7 @@ id: UplinkUplinkImplanter # uplink uplink real name: uplink-uplink-implanter-name description: uplink-uplink-implanter-desc - icon: { sprite: /Textures/Objects/Devices/communication.rsi, state: old-radio } + icon: { sprite: /Textures/Objects/Devices/communication.rsi, state: radio } productEntity: UplinkImplanter cost: Telecrystal: 2 diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml index 0d7456e93e9..2e310914a34 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml @@ -84,7 +84,8 @@ - type: PotentialPsionic - type: Psionic removable: false - # - type: PyrokinesisPower # Pending psionic rework + amplification: 4 + - type: PyrokinesisPower - type: Grammar attributes: proper: true @@ -105,10 +106,6 @@ makeSentient: true allowMovement: true allowSpeech: true - requirements: - - !type:DepartmentTimeRequirement - department: Science - time: 14400 # DeltaV - 4 hours - type: entity parent: WelderExperimental diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml index 1f4eb696c65..e2541def035 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml @@ -26,4 +26,3 @@ - type: NpcFactionMember factions: - NanoTrasen - - type: PotentialPsionic diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml index 06abe8c45fa..ea2357a5c06 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/vulpkanin.yml @@ -24,7 +24,6 @@ - type: NpcFactionMember factions: - NanoTrasen - - type: PotentialPsionic - type: Respirator damage: types: diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml index 73b0ca6549c..9391756492b 100644 --- a/Resources/Prototypes/DeltaV/GameRules/events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/events.yml @@ -52,9 +52,8 @@ noSpawn: true components: - type: StationEvent - earliestStart: 15 - weight: 5 - minimumPlayers: 25 + weight: 7.5 + minimumPlayers: 10 maxOccurrences: 1 duration: 1 - type: PirateRadioSpawnRule diff --git a/Resources/Prototypes/DeltaV/Species/harpy.yml b/Resources/Prototypes/DeltaV/Species/harpy.yml index bcc4dd22c44..a4293afa758 100644 --- a/Resources/Prototypes/DeltaV/Species/harpy.yml +++ b/Resources/Prototypes/DeltaV/Species/harpy.yml @@ -1,7 +1,7 @@ - type: species id: Harpy name: species-name-harpy - roundStart: true + roundStart: false prototype: MobHarpy sprites: MobHarpySprites markingLimits: MobHarpyMarkingLimits diff --git a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml index 0b4a06af2d6..01a4689f194 100644 --- a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml @@ -1,7 +1,7 @@ - type: species id: Vulpkanin name: species-name-vulpkanin - roundStart: true + roundStart: false prototype: MobVulpkanin sprites: MobVulpkaninSprites defaultSkinTone: "#985629" diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 9fb27935301..a210708b636 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -809,8 +809,8 @@ - type: entity parent: ClothingHeadBase id: ClothingHeadHatMagician - name: magician's top hat. - description: "A magician's top hat." + name: magician's tophat + description: "A magician's tophat." components: - type: Icon sprite: Clothing/Head/Hats/magician.rsi @@ -827,6 +827,7 @@ - type: Item size: Small sprite: Clothing/Head/Hats/magician.rsi + storedRotation: 0 - type: Storage grid: - 0,0,0,0 diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index 8f20e33d493..bd1f44ea6cd 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -514,6 +514,16 @@ tags: - WhitelistChameleon +- type: entity + parent: ClothingMaskNeckGaiter + id: ClothingMaskNeckGaiterRed + name: red neck gaiter + components: + - type: Sprite + sprite: Clothing/Mask/neckgaiterred.rsi + - type: Clothing + sprite: Clothing/Mask/neckgaiterred.rsi + - type: entity parent: ClothingMaskClownBase id: ClothingMaskSexyClown diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml index ee1708caef6..d1f6e083f40 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml @@ -47,6 +47,9 @@ collection: FootstepDuck params: variation: 0.07 + - type: Construction + graph: ClothingShoeSlippersDuck + node: shoes - type: entity parent: ClothingShoesBaseButcherable diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index accc704e840..adba2cabc1d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -22,7 +22,7 @@ shape: !type:PhysShapeCircle radius: 0.25 - density: 10 + density: 0.8 mask: - FlyingMobMask layer: @@ -87,7 +87,7 @@ shape: !type:PhysShapeCircle radius: 0.1 - density: 30 + density: 0.1 mask: - FlyingMobMask layer: @@ -334,7 +334,7 @@ shape: !type:PhysShapeCircle radius: 0.2 - density: 100 + density: 0.0007 mask: - SmallMobMask layer: @@ -438,7 +438,7 @@ shape: !type:PhysShapeCircle radius: 0.2 - density: 120 + density: 0.007 mask: - SmallMobMask layer: @@ -1542,7 +1542,7 @@ shape: !type:PhysShapeCircle radius: 0.2 - density: 100 + density: 0.76 mask: - SmallMobMask layer: @@ -2457,7 +2457,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 50 #They actually are pretty light, I looked it up + density: 16.66 mask: - MobMask layer: @@ -2539,7 +2539,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 50 + density: 25.5 mask: - MobMask layer: @@ -2692,7 +2692,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 15 + density: 9 mask: - MobMask layer: @@ -2844,6 +2844,17 @@ Base: caracal_flop Dead: Base: caracal_dead + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 30 + mask: + - MobMask + layer: + - MobLayer - type: entity name: kitten @@ -2877,6 +2888,17 @@ thresholds: 0: Alive 25: Dead + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 2 + mask: + - MobMask + layer: + - MobLayer - type: entity name: sloth @@ -2957,7 +2979,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 5 + density: 4 mask: - MobMask layer: @@ -3034,7 +3056,7 @@ shape: !type:PhysShapeCircle radius: 0.2 - density: 120 + density: 0.8 mask: - SmallMobMask layer: @@ -3155,7 +3177,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 250 + density: 750 mask: - MobMask layer: @@ -3231,7 +3253,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 100 # High, because wood is heavy. + density: 15 mask: - MobMask layer: diff --git a/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml index 5ebd43ddf48..d9dea3c18d9 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml @@ -11,4 +11,3 @@ damageRecovery: types: Asphyxiation: -0.5 - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. diff --git a/Resources/Prototypes/Entities/Mobs/Player/diona.yml b/Resources/Prototypes/Entities/Mobs/Player/diona.yml index 28687c68bfc..dfd5e9a1be7 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/diona.yml @@ -11,7 +11,6 @@ damageRecovery: types: Asphyxiation: -1.0 - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. # Reformed Diona - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Player/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Player/dwarf.yml index fb84ad3650f..d1de65df012 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dwarf.yml @@ -3,5 +3,3 @@ name: Urist McHands The Dwarf parent: BaseMobDwarf id: MobDwarf - components: - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/human.yml b/Resources/Prototypes/Entities/Mobs/Player/human.yml index 6197c82c021..9a7c2ee65ec 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/human.yml @@ -3,8 +3,6 @@ name: Urist McHands parent: BaseMobHuman id: MobHuman - components: - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. #Syndie - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Player/moth.yml b/Resources/Prototypes/Entities/Mobs/Player/moth.yml index ffdb36d86bd..72feba958ab 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/moth.yml @@ -3,5 +3,3 @@ name: Urist McFluff parent: BaseMobMoth id: MobMoth - components: - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml index 71d74222979..b9f265e0bcf 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml @@ -3,7 +3,5 @@ name: Urisst' Mzhand parent: BaseMobReptilian id: MobReptilian - components: - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. #Weh diff --git a/Resources/Prototypes/Entities/Mobs/Player/slime.yml b/Resources/Prototypes/Entities/Mobs/Player/slime.yml index 79669a8fe2a..4e5974b3084 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/slime.yml @@ -2,5 +2,3 @@ save: false parent: BaseMobSlimePerson id: MobSlimePerson - components: - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Species/vox.yml b/Resources/Prototypes/Entities/Mobs/Species/vox.yml index 5e40254e3a8..a271e9d0846 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vox.yml @@ -14,6 +14,8 @@ - type: HumanoidAppearance species: Vox #- type: VoxAccent # Not yet coded + - type: Inventory + speciesId: vox - type: Speech speechVerb: Vox speechSounds: Vox diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index f6d57f53a50..a8489866fc7 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -7,7 +7,7 @@ - type: Sprite sprite: Objects/Devices/communication.rsi layers: - - state: old-radio + - state: radio - type: GhostRole name: ghost-role-information-syndicate-reinforcement-name description: ghost-role-information-syndicate-reinforcement-description diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_misc.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_misc.yml index 8c3aed0d069..edad2b40631 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_misc.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_misc.yml @@ -89,6 +89,7 @@ program: 125 - type: Item size: Small + storedRotation: -90 - type: entity parent: BaseHandheldInstrument @@ -118,6 +119,7 @@ - type: Item size: Small sprite: Objects/Fun/Instruments/gunpet.rsi + storedRotation: -90 - type: Tag tags: - Sidearm @@ -141,6 +143,7 @@ - type: Item sprite: Objects/Fun/Instruments/bike_horn.rsi size: Small + storedRotation: -90 - type: Clothing sprite: Objects/Fun/Instruments/bike_horn.rsi slots: [Belt] diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml index a255ab4a32c..b09ea96f7b4 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml @@ -98,6 +98,8 @@ - type: Tag tags: - KeyedInstrument + - type: Item + size: Small - type: entity parent: BaseHandheldInstrument diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_wind.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_wind.yml index 3b89d1075be..e99f825d483 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_wind.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_wind.yml @@ -141,7 +141,7 @@ sprite: Objects/Fun/Instruments/panflute.rsi state: icon - type: Item - size: Normal + size: Small sprite: Objects/Fun/Instruments/panflute.rsi - type: Tag tags: @@ -160,8 +160,9 @@ sprite: Objects/Fun/Instruments/ocarina.rsi state: icon - type: Item - size: Normal + size: Small sprite: Objects/Fun/Instruments/ocarina.rsi + storedRotation: -90 - type: Tag tags: - WoodwindInstrument diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 6697aa711e0..67c6e1194b7 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -643,6 +643,9 @@ requiresSpecialDigestion: true useSound: path: /Audio/Items/Toys/mousesqueek.ogg + - type: Tag + tags: + - ToyRubberDuck - type: entity parent: BasePlushie diff --git a/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml b/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml index c3f5170001a..70d984240ea 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/authorbooks.yml @@ -387,3 +387,17 @@ - state: book6 - type: Paper content: book-text-inspiration + +- type: entity + parent: BookBase + id: BookJanitorTale + name: the tales of a tired janitor + description: A clean looking book, smelling vaguely of soap and bleach. + components: + - type: Sprite + sprite: Objects/Misc/books.rsi + layers: + - state: book0 + - type: Paper + content: book-text-janitor + diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index bd789214f99..9fde67afb44 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -786,7 +786,7 @@ # Syringes - type: entity name: ephedrine syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeEphedrine components: - type: SolutionContainerManager @@ -799,7 +799,7 @@ - type: entity name: inaprovaline syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeInaprovaline components: - type: SolutionContainerManager @@ -812,7 +812,7 @@ - type: entity name: tranexamic acid syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeTranexamicAcid components: - type: SolutionContainerManager @@ -825,7 +825,7 @@ - type: entity name: bicaridine syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeBicaridine components: - type: SolutionContainerManager @@ -838,7 +838,7 @@ - type: entity name: dermaline syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeDermaline components: - type: SolutionContainerManager @@ -851,7 +851,7 @@ - type: entity name: hyronalin syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeHyronalin components: - type: SolutionContainerManager @@ -864,7 +864,7 @@ - type: entity name: ipecac syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeIpecac components: - type: SolutionContainerManager @@ -877,7 +877,7 @@ - type: entity name: ambuzol syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeAmbuzol components: - type: SolutionContainerManager @@ -890,7 +890,7 @@ - type: entity name: sigynate syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeSigynate components: - type: SolutionContainerManager @@ -903,7 +903,7 @@ - type: entity name: ethylredoxrazine syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeEthylredoxrazine components: - type: SolutionContainerManager @@ -916,7 +916,7 @@ - type: entity name: phalanximine syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringePhalanximine components: - type: SolutionContainerManager @@ -929,7 +929,7 @@ - type: entity name: saline syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeSaline components: - type: SolutionContainerManager @@ -943,7 +943,7 @@ #this is where all the syringes are so i didn't know where to put it - type: entity name: romerol syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeRomerol components: - type: SolutionContainerManager @@ -956,7 +956,7 @@ - type: entity name: stimulants syringe - parent: BaseSyringe + parent: PrefilledSyringe id: SyringeStimulants components: - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index ab65940fabc..ae4aaed7d21 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -364,6 +364,13 @@ - Syringe - Trash +- type: entity + parent: BaseSyringe + id: PrefilledSyringe + components: + - type: Injector + toggleState: Inject + - type: entity id: SyringeBluespace parent: BaseSyringe diff --git a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml index 2b5762aaef2..883f66816de 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/syndicate.yml @@ -57,10 +57,10 @@ - type: Sprite sprite: Objects/Devices/communication.rsi layers: - - state: old-radio + - state: radio - type: Item sprite: Objects/Devices/communication.rsi - heldPrefix: old-radio + heldPrefix: radio - type: UserInterface interfaces: - key: enum.StoreUiKey.Key diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index 5a863cd3d88..44b43184651 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml @@ -6,6 +6,8 @@ components: - type: AccessReader access: [["Service"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -14,6 +16,8 @@ components: - type: AccessReader access: [["Lawyer"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -22,6 +26,8 @@ components: - type: AccessReader access: [["Theatre"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockServiceLocked @@ -30,6 +36,8 @@ components: - type: AccessReader access: [["Chapel"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -38,6 +46,8 @@ components: - type: AccessReader access: [["Janitor"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -46,6 +56,8 @@ components: - type: AccessReader access: [["Kitchen"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -54,6 +66,8 @@ components: - type: AccessReader access: [["Bar"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -62,6 +76,8 @@ components: - type: AccessReader access: [["Hydroponics"]] + - type: Wires + layoutId: AirlockService - type: entity parent: Airlock @@ -70,6 +86,8 @@ components: - type: AccessReader access: [["Captain"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockExternal @@ -86,6 +104,8 @@ components: - type: AccessReader access: [["Cargo"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternal @@ -94,6 +114,8 @@ components: - type: AccessReader access: [["Engineering"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -102,6 +124,8 @@ components: - type: AccessReader access: [["Atmospherics"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -126,6 +150,8 @@ components: - type: AccessReader access: [["Kitchen"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockFreezer @@ -134,6 +160,8 @@ components: - type: AccessReader access: [["Kitchen"], ["Hydroponics"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockFreezer @@ -142,6 +170,8 @@ components: - type: AccessReader access: [["Hydroponics"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockEngineering @@ -150,6 +180,8 @@ components: - type: AccessReader access: [["Engineering"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockAtmospherics @@ -158,6 +190,8 @@ components: - type: AccessReader access: [["Atmospherics"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockCargo @@ -166,6 +200,8 @@ components: - type: AccessReader access: [["Cargo"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockCargo @@ -174,6 +210,8 @@ components: - type: AccessReader access: [["Salvage"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockMining @@ -182,6 +220,8 @@ components: - type: AccessReader access: [["Salvage"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMedical @@ -190,6 +230,8 @@ components: - type: AccessReader access: [["Medical"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockMedical @@ -206,6 +248,8 @@ components: - type: AccessReader access: [["Medical"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockChemistry @@ -214,6 +258,8 @@ components: - type: AccessReader access: [["Chemistry"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockScience @@ -222,6 +268,8 @@ components: - type: AccessReader access: [["Research"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockScience @@ -230,6 +278,8 @@ components: - type: AccessReader access: [["Research"], ["Medical"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockCentralCommand @@ -258,6 +308,8 @@ components: - type: AccessReader access: [["Captain"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -266,6 +318,8 @@ components: - type: AccessReader access: [["ChiefMedicalOfficer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -274,6 +328,8 @@ components: - type: AccessReader access: [["ChiefEngineer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -282,6 +338,8 @@ components: - type: AccessReader access: [["HeadOfSecurity"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -290,6 +348,8 @@ components: - type: AccessReader access: [["ResearchDirector"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -298,6 +358,8 @@ components: - type: AccessReader access: [["HeadOfPersonnel"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommand @@ -306,6 +368,8 @@ components: - type: AccessReader access: [["Quartermaster"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockSecurity @@ -365,6 +429,8 @@ components: - type: AccessReader access: [["Security", "Command"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockCommand @@ -373,6 +439,8 @@ components: - type: AccessReader access: [["External"]] + - type: Wires + layoutId: AirlockCommand # Glass Airlocks - type: entity @@ -382,6 +450,8 @@ components: - type: AccessReader access: [["Service"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockGlass @@ -390,6 +460,8 @@ components: - type: AccessReader access: [["Lawyer"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockGlass @@ -398,6 +470,8 @@ components: - type: AccessReader access: [["Theatre"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockGlass @@ -406,6 +480,8 @@ components: - type: AccessReader access: [["Bar"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockExternalGlass @@ -422,6 +498,8 @@ components: - type: AccessReader access: [["Cargo"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockExternalGlass @@ -446,6 +524,8 @@ components: - type: AccessReader access: [["Engineering"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternalGlass @@ -454,6 +534,8 @@ components: - type: AccessReader access: [["Atmospherics"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockGlass @@ -462,6 +544,8 @@ components: - type: AccessReader access: [["Kitchen"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockGlass @@ -470,6 +554,8 @@ components: - type: AccessReader access: [["Janitor"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockGlass @@ -478,6 +564,8 @@ components: - type: AccessReader access: [["Hydroponics"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockScienceGlass @@ -486,6 +574,8 @@ components: - type: AccessReader access: [["Chapel"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockEngineeringGlass @@ -494,6 +584,8 @@ components: - type: AccessReader access: [["Engineering"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockAtmosphericsGlass @@ -502,6 +594,8 @@ components: - type: AccessReader access: [["Atmospherics"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockCargoGlass @@ -510,6 +604,8 @@ components: - type: AccessReader access: [["Cargo"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockCargoGlass @@ -518,6 +614,8 @@ components: - type: AccessReader access: [["Salvage"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockMiningGlass @@ -526,6 +624,8 @@ components: - type: AccessReader access: [["Salvage"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockChemistryGlass @@ -534,6 +634,8 @@ components: - type: AccessReader access: [["Chemistry"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockMedicalGlass @@ -542,6 +644,8 @@ components: - type: AccessReader access: [["Medical"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockMedicalGlass @@ -558,6 +662,8 @@ components: - type: AccessReader access: [["Medical"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockScienceGlass @@ -566,6 +672,8 @@ components: - type: AccessReader access: [["Research"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockScienceGlass @@ -574,6 +682,8 @@ components: - type: AccessReader access: [["Research"], ["Medical"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockCentralCommandGlass @@ -592,6 +702,8 @@ components: - type: AccessReader access: [["Command"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -600,6 +712,8 @@ components: - type: AccessReader access: [["Captain"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -608,6 +722,8 @@ components: - type: AccessReader access: [["ChiefMedicalOfficer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -616,6 +732,8 @@ components: - type: AccessReader access: [["ChiefEngineer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -624,6 +742,8 @@ components: - type: AccessReader access: [["HeadOfSecurity"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -632,6 +752,8 @@ components: - type: AccessReader access: [["ResearchDirector"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -640,6 +762,8 @@ components: - type: AccessReader access: [["HeadOfPersonnel"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockCommandGlass @@ -648,6 +772,8 @@ components: - type: AccessReader access: [["Quartermaster"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockSecurityGlass @@ -656,6 +782,8 @@ components: - type: AccessReader access: [["Security"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockSecurityGlass @@ -664,8 +792,9 @@ components: - type: AccessReader access: [["Detective"]] + - type: Wires + layoutId: AirlockCommand -#Delta V: Removed Brig Access #- type: entity # parent: AirlockSecurityGlass # id: AirlockBrigGlassLocked @@ -673,6 +802,8 @@ # components: # - type: AccessReader # access: [["Brig"]] +# - type: Wires +# layoutId: AirlockCommand - type: entity parent: AirlockSecurityGlass @@ -681,6 +812,8 @@ components: - type: AccessReader access: [["Security"], ["Lawyer"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockSecurityGlass @@ -689,6 +822,8 @@ components: - type: AccessReader access: [["Armory"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockCommandGlassLocked @@ -738,6 +873,8 @@ components: - type: AccessReader access: [["Salvage"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockMaint @@ -746,6 +883,8 @@ components: - type: AccessReader access: [["Cargo"]] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockMaint @@ -754,6 +893,8 @@ components: - type: AccessReader access: [["Command"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -770,6 +911,8 @@ components: - type: AccessReader access: [["Engineering"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockMaint @@ -778,6 +921,8 @@ components: - type: AccessReader access: [["Atmospherics"]] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockMaint @@ -786,6 +931,8 @@ components: - type: AccessReader access: [["Bar"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -794,6 +941,8 @@ components: - type: AccessReader access: [["Chapel"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -802,6 +951,8 @@ components: - type: AccessReader access: [["Hydroponics"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -810,6 +961,8 @@ components: - type: AccessReader access: [["Janitor"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -818,6 +971,8 @@ components: - type: AccessReader access: [["Lawyer"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -826,6 +981,8 @@ components: - type: AccessReader access: [["Service"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -834,6 +991,8 @@ components: - type: AccessReader access: [["Theatre"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -842,6 +1001,8 @@ components: - type: AccessReader access: [["Kitchen"]] + - type: Wires + layoutId: AirlockService - type: entity parent: AirlockMaint @@ -858,6 +1019,8 @@ components: - type: AccessReader access: [["Medical"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockMaint @@ -866,6 +1029,8 @@ components: - type: AccessReader access: [["Chemistry"]] + - type: Wires + layoutId: AirlockMedical - type: entity parent: AirlockMaint @@ -874,6 +1039,8 @@ components: - type: AccessReader access: [["Research"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockMaint @@ -882,6 +1049,8 @@ components: - type: AccessReader access: [["Research"], ["Medical"]] + - type: Wires + layoutId: AirlockScience - type: entity parent: AirlockMaint @@ -890,6 +1059,8 @@ components: - type: AccessReader access: [["Security"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockMaint @@ -898,6 +1069,8 @@ components: - type: AccessReader access: [["Detective"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockMaint @@ -906,6 +1079,8 @@ components: - type: AccessReader access: [["HeadOfPersonnel"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -914,6 +1089,8 @@ components: - type: AccessReader access: [["Captain"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -922,6 +1099,8 @@ components: - type: AccessReader access: [["ChiefEngineer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -930,6 +1109,8 @@ components: - type: AccessReader access: [["ChiefMedicalOfficer"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -938,6 +1119,8 @@ components: - type: AccessReader access: [["HeadOfSecurity"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -946,6 +1129,8 @@ components: - type: AccessReader access: [["ResearchDirector"]] + - type: Wires + layoutId: AirlockCommand - type: entity parent: AirlockMaint @@ -954,6 +1139,8 @@ components: - type: AccessReader access: [["Armory"]] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockSyndicate diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 5fca0819984..4bc43b5559e 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -131,9 +131,6 @@ - board - type: PlacementReplacement key: walls - - type: IconSmooth - key: walls - mode: NoSprite - type: PaintableAirlock group: Standard department: Civilian diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml index 4b6f72de934..644976eb9c4 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml @@ -52,9 +52,6 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] - - type: IconSmooth - key: walls - mode: NoSprite - type: Occluder - type: BlockWeather diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml index e38ba1fd667..7d3af93a64d 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml @@ -73,9 +73,6 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] - - type: IconSmooth - key: walls - mode: NoSprite - type: DoorSignalControl - type: DeviceNetwork deviceNetId: Wireless diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml index 518ff2f066e..0b3c291af25 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml @@ -4,7 +4,7 @@ abstract: true description: You sit in this. Either by will or force. placement: - mode: SnapgridCenter + mode: PlaceFree components: - type: Clickable - type: InteractionOutline @@ -65,6 +65,8 @@ id: ChairBase abstract: true parent: UnanchoredChairBase + placement: + mode: SnapgridCenter components: - type: Physics bodyType: Static @@ -87,6 +89,8 @@ id: StoolBase parent: OfficeChairBase abstract: true + placement: + mode: SnapgridCenter components: - type: Physics bodyType: Static @@ -116,7 +120,7 @@ - type: entity name: stool id: Stool - parent: ChairBase + parent: UnanchoredChairBase description: Apply butt. components: - type: Sprite @@ -241,7 +245,7 @@ - type: entity id: ChairMeat - parent: ChairBase + parent: UnanchoredChairBase name: meat chair description: Uncomfortably sweaty. components: @@ -285,7 +289,7 @@ name: web chair id: ChairWeb description: For true web developers. - parent: ChairBase + parent: UnanchoredChairBase components: - type: Sprite sprite: Structures/Web/chair.rsi @@ -349,8 +353,6 @@ parent: ChairFolding id: ChairFoldingSpawnFolded suffix: folded - placement: - mode: PlaceFree components: - type: Foldable folded: true diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index fca0b975e98..ee2ad6bc28f 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -69,7 +69,7 @@ acts: [ "Destruction" ] - type: Airtight - type: IconSmooth - key: windows + key: walls base: window - type: InteractionPopup interactSuccessString: comp-window-knock @@ -242,4 +242,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: windowDiagonal \ No newline at end of file + node: windowDiagonal diff --git a/Resources/Prototypes/Loadouts/Jobs/science.yml b/Resources/Prototypes/Loadouts/Jobs/science.yml index f65b69c46a0..886b8e283e6 100644 --- a/Resources/Prototypes/Loadouts/Jobs/science.yml +++ b/Resources/Prototypes/Loadouts/Jobs/science.yml @@ -8,7 +8,7 @@ jobs: - Scientist - !type:LoadoutDepartmentTimeRequirement - department: Epistemics + department: Science min: 216000 # 60 hours items: - ClothingUniformJumpskirtSeniorResearcher @@ -23,7 +23,7 @@ jobs: - Scientist - !type:LoadoutDepartmentTimeRequirement - department: Epistemics + department: Science min: 216000 # 60 hours items: - ClothingUniformJumpsuitSeniorResearcher @@ -66,7 +66,7 @@ jobs: - Scientist - !type:LoadoutDepartmentTimeRequirement - department: Epistemics + department: Science min: 216000 # 60 hours items: - ClothingOuterCoatLabSeniorResearcher diff --git a/Resources/Prototypes/Nyanotrasen/Actions/types.yml b/Resources/Prototypes/Nyanotrasen/Actions/types.yml index e6e4bdc5a75..55dd48e5470 100644 --- a/Resources/Prototypes/Nyanotrasen/Actions/types.yml +++ b/Resources/Prototypes/Nyanotrasen/Actions/types.yml @@ -36,18 +36,18 @@ event: !type:DispelPowerActionEvent - type: entity - id: ActionMassSleep - name: action-name-mass-sleep - description: action-description-mass-sleep + id: ActionRegenerativeStasis + name: action-name-regenerative-stasis + description: action-description-regenerative-stasis noSpawn: true components: - - type: WorldTargetAction + - type: EntityTargetAction icon: Nyanotrasen/Interface/VerbIcons/mass_sleep.png useDelay: 60 checkCanAccess: false range: 8 itemIconStyle: BigAction - event: !type:MassSleepPowerActionEvent + event: !type:RegenerativeStasisPowerActionEvent - type: entity id: ActionMindSwap @@ -94,7 +94,7 @@ description: action-description-pyrokinesis noSpawn: true components: - - type: EntityTargetAction + - type: WorldTargetAction icon: Nyanotrasen/Interface/VerbIcons/pyrokinesis.png useDelay: 50 range: 6 @@ -103,15 +103,29 @@ event: !type:PyrokinesisPowerActionEvent - type: entity - id: ActionMetapsionic - name: action-name-metapsionic - description: action-description-metapsionic + id: ActionWideMetapsionic + name: action-name-widemetapsionic + description: action-description-widemetapsionic noSpawn: true components: - type: InstantAction icon: Nyanotrasen/Interface/VerbIcons/metapsionic.png useDelay: 45 - event: !type:MetapsionicPowerActionEvent + event: !type:WideMetapsionicPowerActionEvent + +- type: entity + id: ActionFocusedMetapsionic + name: action-name-focusedmetapsionic + description: action-description-focusedmetapsionic + noSpawn: true + components: + - type: EntityTargetAction + icon: Nyanotrasen/Interface/VerbIcons/metapsionic.png + useDelay: 45 + range: 3 + checkCanAccess: false + itemIconStyle: BigAction + event: !type:FocusedMetapsionicPowerActionEvent - type: entity id: ActionPsionicRegeneration diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/books.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/books.yml index 28340ead40a..59e3690b6bc 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/books.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/books.yml @@ -45,6 +45,7 @@ - BookMap - BookJourney - BookInspiration + - BookJanitorTale # Guidebook Books - BookSpaceEncyclopedia - BookTheBookOfControl diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/boxes.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/boxes.yml index a75f31cf0f7..181bacca45e 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/boxes.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/boxes.yml @@ -36,6 +36,7 @@ - BoxCandle - BoxCandleSmall - BoxDarts + - BoxCartridgeBB chance: 0.7 rarePrototypes: - BoxHugHealing @@ -49,6 +50,7 @@ - PresentRandom - BoxHolyWater - MysteryFigureBox + - BoxCleanerGrenades rareChance: 0.05 @@ -100,6 +102,8 @@ - BoxMagazineCaselessRifleRubber - BoxMagazineUniversalMagnumPractice - BoxMagazineUniversalMagnumRubber + - MagazineBoxSpecialRubber + - MagazineBoxSpecialPractice chance: 0.15 rarePrototypes: - BoxMagazinePistolCaselessRifle @@ -121,4 +125,8 @@ - BoxShellSoulbreaker - BoxMagazineUniversalMagnum - BoxSpeedLoaderLightRifle + - MagazineBoxSpecial + - MagazineBoxSpecialIncendiary + - MagazineBoxSpecialUranium + - MagazineBoxSpecialMindbreaker rareChance: 0.015 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml index c8efdbdc8cf..abd4d86a1ef 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml @@ -1,7 +1,7 @@ - type: entity parent: MarkerBase id: RandomBoards - name: random machine board spawner + name: random device & board spawner components: - type: Sprite layers: @@ -71,6 +71,16 @@ - HotplateMachineCircuitboard - ElectricGrillMachineCircuitboard - FatExtractorMachineCircuitboard + - SpaceHeaterMachineCircuitBoard + - StationMapCircuitboard + - Igniter + - IntercomElectronics + - DoorRemoteFirefight + - RadiationCollectorFlatpack + - ContainmentFieldGeneratorFlatpack + - SolarAssemblyFlatpack + - StationBeaconPart + - HandheldStationMap chance: 0.8 rarePrototypes: - TraversalDistorterMachineCircuitboard @@ -107,4 +117,26 @@ - ShockCollar - GlimmerMonitorCartridge - PotatoAIChip + - CargoTelepadMachineCircuitboard + - FlatpackerMachineCircuitboard + - OreProcessorIndustrialMachineCircuitboard + - TurboItemRechargerCircuitboard + - PowerCageRechargerCircuitboard + - HellfireHeaterMachineCircuitBoard + - HellfireFreezerMachineCircuitBoard + - BiofabricatorMachineCircuitboard + - SalvageExpeditionsComputerCircuitboard + - RadarConsoleCircuitboard + - RipleyCentralElectronics + - RipleyPeripheralsElectronics + - HamtrCentralElectronics + - HamtrPeripheralsElectronics + - HonkerCentralElectronics + - HonkerPeripheralsElectronics + - HonkerTargetingElectronics + - RemoteSignallerAdvanced + - SignalTimerElectronics + - LogProbeCartridge + - HoloprojectorField + - DeviceQuantumSpinInverter rareChance: 0.25 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/hats.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/hats.yml index b9def15132e..f0dd4709034 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/hats.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/hats.yml @@ -42,6 +42,18 @@ - ClothingHeadCage - ClothingHeadHelmetKendoMen - ClothingHeadBandMerc + - ClothingHeadHatCowboyWhite + - ClothingHeadHatCowboyGrey + - ClothingHeadHatCowboyBrown + - ClothingHeadHatBrownFlatcap + - ClothingHeadHatGreyFlatcap + - ClothingHeadHatPartyRed + - ClothingHeadHatPartyYellow + - ClothingHeadHatPartyGreen + - ClothingHeadHatPartyBlue + - ClothingHeadHatWatermelon + - WaterDropletHat + - ClothingHeadHatRedRacoon rareChance: 0.03 prototypes: - ClothingHeadHatAnimalCat @@ -98,5 +110,13 @@ - ClothingHeadHatFlatBrown - ClothingHeadTinfoil - ClothingHeadHatStrawHat + - ClothingHeadHatCowboyBountyHunter + - ClothingHeadHatCowboyRed + - ClothingHeadHatCowboyBlack + - ClothingHeadHatGladiator + - ClothingHeadHatMagician + - ClothingHeadHatHetmanHat + - ClothingHeadHatTacticalMaidHeadband + - ClothingHeadHatPirateTricord chance: 0.5 offset: 0.2 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/machineparts.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/machineparts.yml index 7785e5aaa82..61a99faa2f1 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/machineparts.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/machineparts.yml @@ -36,5 +36,5 @@ - MatterBinStockPart - CrateMaterialSteel - CrateMaterialGlass - chance: 0.45 + chance: 0.50 offset: 0.0 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/seeds.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/seeds.yml index 9f183dcefbd..0c3370890c8 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/seeds.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/seeds.yml @@ -48,6 +48,7 @@ - PeaSeeds - PumpkinSeeds - CottonSeeds + - LilySeeds chance: 0.95 offset: 0.0 rarePrototypes: @@ -64,4 +65,6 @@ - LemoonSeeds - SteelcapSeeds - KoibeanSeeds + - SpacemansTrumpetSeeds + - LaughinPeaSeeds rareChance: 0.05 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/Oni.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/Oni.yml index 562b9c564ec..1166d8a29f5 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/Oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/Oni.yml @@ -32,4 +32,3 @@ - type: NpcFactionMember factions: - NanoTrasen - - type: PotentialPsionic diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/felinid.yml index db7936cc5b4..94ac8403adc 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/felinid.yml @@ -49,5 +49,3 @@ - type: NpcFactionMember factions: - NanoTrasen - - type: PotentialPsionic - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/metempsychoticMachine.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/metempsychoticMachine.yml index d8e791af1ed..d773cf87c76 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/metempsychoticMachine.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/metempsychoticMachine.yml @@ -22,4 +22,7 @@ NoMind: { state: pod_1 } Gore: { state: pod_1 } Idle: { state: pod_0 } + - type: PotentialPsionic - type: Psionic + psychicFeedback: + - "metempsychotic-machine-feedback" diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/oracle.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/oracle.yml index f7481abf1ed..58189e49cec 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/oracle.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/oracle.yml @@ -16,7 +16,10 @@ - type: Oracle - type: Speech speechSounds: Tenor + - type: PotentialPsionic - type: Psionic + psychicFeedback: + - "oracle-feedback" - type: SolutionContainerManager solutions: fountain: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml index ae85cd25e03..8e34a07ea5e 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml @@ -29,6 +29,8 @@ - Science - type: PotentialPsionic #this makes her easier to access for glimmer events, dw about it - type: Psionic + psychicFeedback: + - "sophic-grammateus-feedback" - type: Grammar attributes: gender: female diff --git a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml index 53910a54a92..e6e497003d5 100644 --- a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml +++ b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml @@ -9,29 +9,6 @@ stealGroup: AntiPsychicKnife owner: job-name-mantis -- type: entity - id: BecomePsionicObjective - parent: BaseTraitorObjective - name: Become psionic - description: We need you to acquire psionics and keep them until your mission is complete. - noSpawn: true - components: - - type: NotJobsRequirement - jobs: - - Mime - - ForensicMantis - - type: Objective - difficulty: 2.5 - #unique: false - icon: - sprite: Nyanotrasen/Icons/psi.rsi - state: psi - - type: ObjectiveBlacklistRequirement - blacklist: - components: - - BecomeGolemCondition - - type: BecomePsionicCondition - #- type: entity # id: BecomeGolemObjective # parent: BaseTraitorObjective diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index a5c5bd7f10b..13debdef572 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -3,26 +3,22 @@ name: job-name-mantis description: job-description-mantis playTimeTracker: JobForensicMantis - # requirements: - # - !type:OverallPlaytimeRequirement - # time: 18000 - # - !type:DepartmentTimeRequirement - # department: Science - # time: 3600 startingGear: ForensicMantisGear icon: "JobIconForensicMantis" supervisors: job-supervisors-rd antagAdvantage: 5 # DeltaV - From 4 to 5 - canBeAntag: true - # whitelistRequired: true + canBeAntag: true access: - Research - Maintenance - - Mantis # DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml + - Mantis special: - !type:AddComponentSpecial components: + - type: PotentialPsionic - type: Psionic + amplification: 0.3 + dampening: 0.3 - type: MetapsionicPower - type: startingGear diff --git a/Resources/Prototypes/Nyanotrasen/Traits/psionics.yml b/Resources/Prototypes/Nyanotrasen/Traits/psionics.yml new file mode 100644 index 00000000000..5fef3427703 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Traits/psionics.yml @@ -0,0 +1,6 @@ +- type: trait + id: LatentPsychic + name: Latent Psychic + description: trait-latent-psychic-desc + components: + - type: PotentialPsionic diff --git a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml index f40b688fd18..ca1764e204c 100644 --- a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml +++ b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml @@ -5,6 +5,8 @@ DispelPower: 1 TelegnosisPower: 1 PsionicRegenerationPower: 1 - MassSleepPower: 0.3 -# PsionicInvisibilityPower: 0.15 + RegenerativeStasisPower: 0.3 + PsionicInvisibilityPower: 0.15 MindSwapPower: 0.15 + NoosphericZapPower: 0.15 + PyrokinesisPower: 0.15 diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index fba2c4cc172..d711e9a1b13 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -39,7 +39,6 @@ EscapeShuttleObjective: 1 # DieObjective: 0.05 # DeltaV - Disable the lrp objective aka murderbone justification #HijackShuttleObjective: 0.02 - BecomePsionicObjective: 1 # Nyanotrasen - Become Psionic objective, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml #BecomeGolemObjective: 0.5 # Nyanotrasen - Become a golem objective, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml - type: weightedRandom diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/clothing/ducky_slippers.yml b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/ducky_slippers.yml new file mode 100644 index 00000000000..e017096fa90 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/ducky_slippers.yml @@ -0,0 +1,22 @@ +- type: constructionGraph + id: ClothingShoeSlippersDuck + start: start + graph: + - node: start + edges: + - to: shoes + steps: + - tag: ToyRubberDuck + name: a rubber ducky + icon: + sprite: Objects/Fun/ducky.rsi + state: icon + doAfter: 1 + - tag: ToyRubberDuck + name: a rubber ducky + icon: + sprite: Objects/Fun/ducky.rsi + state: icon + doAfter: 1 + - node: shoes + entity: ClothingShoeSlippersDuck diff --git a/Resources/Prototypes/Recipes/Construction/clothing.yml b/Resources/Prototypes/Recipes/Construction/clothing.yml index 4fe2c474bb4..f1eb270af73 100644 --- a/Resources/Prototypes/Recipes/Construction/clothing.yml +++ b/Resources/Prototypes/Recipes/Construction/clothing.yml @@ -85,3 +85,14 @@ description: Two huds joined by arms icon: { sprite: Clothing/Eyes/Hud/medsec.rsi, state: icon } objectType: Item + +- type: construction + name: ducky slippers + id: ClothingShoeSlippersDuck + graph: ClothingShoeSlippersDuck + startNode: start + targetNode: shoes + category: construction-category-clothing + description: Comfy, yet haunted by the ghosts of ducks you fed bread to as a child. + icon: { sprite: Clothing/Shoes/Misc/duck-slippers.rsi, state: icon } + objectType: Item diff --git a/Resources/Prototypes/Recipes/Reactions/drinks.yml b/Resources/Prototypes/Recipes/Reactions/drinks.yml index e5afdbd6def..7608369b2ce 100644 --- a/Resources/Prototypes/Recipes/Reactions/drinks.yml +++ b/Resources/Prototypes/Recipes/Reactions/drinks.yml @@ -454,11 +454,11 @@ id: IrishCoffee reactants: Coffee: - amount: 2 + amount: 1 IrishCream: - amount: 2 + amount: 1 products: - IrishCoffee: 4 + IrishCoffee: 2 - type: reaction id: IrishCream diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index b9932420060..4585c90ec8f 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -4,27 +4,8 @@ description: job-description-captain playTimeTracker: JobCaptain requirements: - # - !type:DepartmentTimeRequirement - # department: Logistics # DeltaV - Logistics Department replacing Cargo - # time: 18000 # DeltaV - 5 hours - # - !type:DepartmentTimeRequirement - # department: Engineering - # time: 18000 # DeltaV - 5 hours - # - !type:DepartmentTimeRequirement - # department: Medical - # time: 18000 # DeltaV - 5 hours - # - !type:DepartmentTimeRequirement - # department: Security - # time: 18000 # DeltaV - 5 hours - # - !type:DepartmentTimeRequirement - # department: Science - # time: 18000 # 5 hours - # - !type:DepartmentTimeRequirement - # department: Command - # time: 108000 # DeltaV - 30 hours - !type:OverallPlaytimeRequirement time: 3600 # 1 Hour - # - !type:WhitelistRequirement # DeltaV - Whitelist requirement weight: 20 startingGear: CaptainGear icon: "JobIconCaptain" diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 7fb888b0101..b24a02b7966 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -5,18 +5,6 @@ playTimeTracker: JobHeadOfPersonnel antagAdvantage: 6 # DeltaV - Reduced TC: Head of Staff requirements: - # - !type:RoleTimeRequirement - # role: JobChef - # time: 14400 # DeltaV - 4 hours - # - !type:RoleTimeRequirement - # role: JobBartender - # time: 14400 # DeltaV - 4 hours - # - !type:RoleTimeRequirement - # role: JobJanitor - # time: 14400 # DeltaV - 4 hours - # - !type:DepartmentTimeRequirement # DeltaV - Civilian dept time requirement - # department: Civilian - # time: 72000 # 20 hours - !type:OverallPlaytimeRequirement time: 3600 # 1 Hour weight: 10 # DeltaV - Changed HoP weight from 20 to 10 due to them not being more important than other Heads diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 115143a72a6..e8023fe54a2 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -4,12 +4,6 @@ description: job-description-rd playTimeTracker: JobResearchDirector antagAdvantage: 6 # DeltaV - Reduced TC: Head of Staff - # requirements: - # - !type:DepartmentTimeRequirement - # department: Science - # time: 54000 # 15 hours - # - !type:OverallPlaytimeRequirement - # time: 72000 # 20 hours weight: 10 startingGear: ResearchDirectorGear icon: "JobIconResearchDirector" @@ -21,19 +15,20 @@ - Command - Maintenance - ResearchDirector - - Mantis # DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml + - Mantis + - Chapel - Cryogenics - special: + special: - !type:AddComponentSpecial components: - # - type: BibleUser # Nyano - Lets them heal with bibles - - type: Psionic # Nyano - They start with telepathic chat - - type: DispelPower # Nyano - They get the Dispel psionic power on spawn + - type: BibleUser + - type: PotentialPsionic + - type: Psionic + dampening: 1 #Mystagogue gets a significant buff to his antimage abilities, making him better at dispelling than other people + - type: DispelPower + - type: CommandStaff - !type:AddImplantSpecial implants: [ MindShieldImplant ] - - !type:AddComponentSpecial - components: - - type: CommandStaff - type: startingGear id: ResearchDirectorGear @@ -44,6 +39,7 @@ outerClothing: ClothingOuterCoatRD id: RnDPDA ears: ClothingHeadsetRD + belt: BibleMystagogue #This isn't the chaplain bible lol, it's for performing his summon Ifrit ritual innerClothingSkirt: ClothingUniformJumpskirtResearchDirector satchel: ClothingBackpackSatchelResearchDirectorFilled duffelbag: ClothingBackpackDuffelResearchDirectorFilled diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index a127e5dfdb7..248c0190927 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -3,10 +3,6 @@ name: job-name-scientist description: job-description-scientist playTimeTracker: JobScientist - # requirements: - # - !type:DepartmentTimeRequirement - # department: Science - # time: 14400 #4 hrs startingGear: ScientistGear icon: "JobIconScientist" supervisors: job-supervisors-rd diff --git a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml index acfc0699620..ee63fa9b715 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml @@ -4,10 +4,6 @@ description: job-description-senior-researcher playTimeTracker: JobSeniorResearcher setPreference: false # DeltaV - Disable Senior Roles round start selection - # requirements: - # - !type:DepartmentTimeRequirement - # department: Science - # time: 216000 #60 hrs startingGear: SeniorResearcherGear icon: "JobIconSeniorResearcher" supervisors: job-supervisors-rd diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 84bf7976833..980d6ba1d46 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -4,18 +4,8 @@ description: job-description-hos playTimeTracker: JobHeadOfSecurity requirements: - # - !type:RoleTimeRequirement - # role: JobWarden - # time: 14400 #DeltaV 4 hrs - # # - !type:RoleTimeRequirement # DeltaV - No Security Officer time requirement - REIMPLEMENT WHEN MORE PEOPLE HAVE IT - # # role: JobDetective - # # time: 14400 #DeltaV 4 hrs - # - !type:DepartmentTimeRequirement # DeltaV - Command dept time requirement - # department: Command - # time: 36000 # 10 hours - !type:OverallPlaytimeRequirement time: 3600 # 1 Hour - # - !type:WhitelistRequirement # DeltaV - Whitelist requirement weight: 10 startingGear: HoSGear icon: "JobIconHeadOfSecurity" diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 903fd51b444..a02a1101fe1 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -6,13 +6,6 @@ requirements: - !type:OverallPlaytimeRequirement time: 3600 # 1 Hour - # - !type:RoleTimeRequirement # DeltaV - JobSecurityOfficer time requirement. Make them experienced in proper officer work. - # role: JobSecurityOfficer - # time: 43200 # DeltaV - 12 hrs - # - !type:RoleTimeRequirement # DeltaV - JobDetective time requirement. Give them an understanding of basic forensics. - # role: JobDetective - # time: 14400 # DeltaV - 4 hours - # - !type:WhitelistRequirement # DeltaV - Whitelist requirement startingGear: WardenGear icon: "JobIconWarden" supervisors: job-supervisors-hos diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index 064b34adbaf..2f1a7f92d26 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -60,3 +60,10 @@ description: trait-frontal-lisp-desc components: - type: FrontalLisp + +- type: trait + id: Snoring + name: trait-snoring-name + description: trait-snoring-desc + components: + - type: Snoring diff --git a/Resources/Prototypes/Wires/layouts.yml b/Resources/Prototypes/Wires/layouts.yml index 338bf188ba0..b30e68545df 100644 --- a/Resources/Prototypes/Wires/layouts.yml +++ b/Resources/Prototypes/Wires/layouts.yml @@ -15,6 +15,26 @@ - type: wireLayout parent: Airlock + id: AirlockService + +- type: wireLayout + parent: Airlock + id: AirlockCargo + +- type: wireLayout + parent: Airlock + id: AirlockEngineering + +- type: wireLayout + parent: Airlock + id: AirlockMedical + +- type: wireLayout + parent: Airlock + id: AirlockScience + +- type: wireLayout + parent: HighSec id: AirlockCommand - type: wireLayout diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 8ab7de65544..62772b23482 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1193,6 +1193,9 @@ - type: Tag id: Torch +- type: Tag + id: ToyRubberDuck + - type: Tag id: ToySidearm diff --git a/Resources/ServerInfo/Guidebook/Engineering/TEG.xml b/Resources/ServerInfo/Guidebook/Engineering/TEG.xml index a2a04e03ef0..9e8697a9e13 100644 --- a/Resources/ServerInfo/Guidebook/Engineering/TEG.xml +++ b/Resources/ServerInfo/Guidebook/Engineering/TEG.xml @@ -1,18 +1,18 @@ - + # Thermo-electric Engine (TEG) - The TEG generates power by exchanging heat between hot and cold gases. On station, hot gas is usually created by burning plasma, and an array of heat-exchanging pipes in space radiates away heat to make a cold side. + The TEG generates power by exchanging heat between hot and cold gases. On the station, hot gas is usually created by burning plasma, and an array of heat-exchanging pipes in space radiates away heat to cool down circulated gases. - The TEG relies heavily on atmospherics piping. The only truly special component about it is the generator core, the rest is all off-the-shelf atmospherics equipment. Note that while the exact layout may vary significantly depending on station, the general components and setup are usually the same. + The TEG relies heavily on atmospherics piping. The only truly special component about it is the generator core and circulators; the rest is all off-the-shelf atmospherics equipment. Note that while the exact layout may vary significantly depending on station, the general components and setup are usually the same. ## Generator - The main generator itself is a machine made up of multiple parts: the core generator and two "circulators", in this arrangement: + The main generator itself is a machine made up of 3 major parts: the central generator and two "circulators", in this arrangement: - - - + + + The circulators take in either a hot or cold gas, and pass it through the machine to exchange heat. The gas then gets output on the other end of the circulator. The generator produces the actual power and outputs it over an HV wire. @@ -21,19 +21,172 @@ There is no preference for which side must be hot or cold, there need only be a difference in temperature between them. The gases in the two "loops" are never mixed, only energy is exchanged between them. The hot side will cool down, the cold side will heat up. - ## Burn Chamber + ## The Pipes + + There are 2 major pipenets to worry about here: The Hot Loop (where gas will be burnt for heat), and The Cold Loop (where circulated, heated waste gas will either be removed into space or cooled back down). Make sure that [bold]both pipenets do NOT mix[/bold], as only heat should be transferred between the two through the TEG. + + # The Hot Loop + + As I'm sure a wise person once said: the best way to make something hot is to light it on fire. Well, depending on context, that may not be very wise, but luckily your engineering department has just what's needed to do it wisely after all. + + As stated above, there are many different layouts one can follow to heat up (or cool down) gases; this part of the guide will cover 2 common methods one will often see for the hot loop when the TEG is setup: The Pipe Burn, and the Burn chamber. + + Side note: Plasma fires burn relatively cool compared to, for example, Tritium fires. It may be viable to extract Tritium from an extraction setup (using a 97/3 ratio of O2/Plasma) and react it with Oxygen to get truly hellish temperatures for power. Although, this is just a recommendation; I'm not ya mum. + + ## The Pipe Burn + + Also known as the naive method, this is generally discouraged when working for efficiency. However, if all you need is a smidge of power to run the station, and you don't feel like setting up the burn chamber, this method will do. + + TODO: Remove this section when atmos pipes are updated to have pressure/temperature limits in a future atmos refactor. + + Most (if not all) pipe burns follow this general layout: + + Gas input -> High-pressure pump -> Pipe segment (with heater) -> Low-pressure pump -> Circulator + + + + + + + + + + + + - The Gas input is pretty self-explanatory; this is where you will input the O2-Plasma mix to be burnt. A 2:1 (67/33) ratio of Oxygen to Plasma is recommended for the hottest burn. + - The High-pressure pump serves 2 purposes; first, it prevents the burn from backwashing into the supply pipe, which would be.. bad, for many reasons. Second, it maintains a positive pressure in the following pipe segment, which is important to allow the burn to continue, especially since hot gases expand. + - The Pipe segment is where the burn actually occurs; to start it off, one can use a heater to increase the temperature up to the ignition temperature of Plasma. Afterwards, the reaction should be self-sustaining, so long as the Pressure and Moles supplied remains high enough. Be warned; if you wish to remove the heater, it will carry some of this superheated gas with it, transferring it to the next pipenet you connect it to. Best to space the gas through a space vent, if you must. + - The Low-pressure pump (whose pressure should be [italics]slightly lower[/italics] than the input pump) prevents [italics]all[/italics] the gas from passing through the circulator, which could result in the loss of the Moles required to sustain a burn. + - The Circulator is where this generated heat will flow to the cold loop; afterwards, feel free to space the waste gases. + + Note: Pressure pumps are used here as, while they pump on pressure (not flow-rate, which is comparatively faster), they are a bit easier to control when it comes to the limited Plasma supply on-station. However, the steps shown can be followed with volumetric pumps too. + + ## The Burn Chamber + + The burn chamber is the preferred method for heating up gases, and it is commonly used for other purposes too. (see: Tritium production) + + Most (if not all) stations have the burn chamber separated from the main atmospherics block by a 1-wide spaced grid, presumably to prevent conduction. The chambers consist of 3(+1) important parts: + - The Air Injector/Passive Vent + - The Space Vent + - The Radiator Loop + + Most normal burn chambers don't come with Heat-Exchangers; instead, they have air scrubbers (and optionally, an air alarm) to help filter for Tritium, which is a highly reactive, hot-burning gas that can also be used to heat the TEG efficiently. + However, this is a slightly more advanced setup than just burning plasma, as it needs 2 burn chambers instead of 1 (one for tritium production, one for burning said tritium), so remove the scrubbers and retrofit the burn chamber with a parallel array of heat-exchangers instead. + + The air injector (or Passive Vent) injects air (or allows air to flow) into the burn chamber. Either should be supplemented with a pump before it, to keep pressures high. + There is a notable difference between the passive vent and the air injector; the air injector can only keep injecting air up to 9MPa, which can be reached very easily with a good burn. Ideally, switch out the air injector for a passive vent connected to a volume pump. + + The space vent (designated as a blast door to space on one side of the burn chamber) allows waste gases to be expelled and destroyed. Open this to keep the pressure under control. + + The radiator loop collects heat from the burnt gases and brings it to the TEG. To maximize efficiency, hook up the heat-exchangers [italics]in parallel to each other[/italics], with a pressure pump at max pressure after the array and a volumetric pump before the array. + The pressure of the volumetric pump should be set to ( 200 / number of heat-exchangers ) L/s. For example, having 2 heat-exchangers would mean you should set the pressure to 100 L/s. + Finally, fill the whole loop with (ideally) a high heat capacity gas, like Frezon or Plasma. (Yes, Frezon =/= Cold. Frezon has one of the highest heat capacities in the game; so long as it isn't reacting with Nitrogen, it can actually be heated and can store heat really well!) + + # The Cold Loop + + As with the Hot Loop, the Cold Loop must also be setup in order to operate the TEG. However, the Cold Loop is usually a lot more low-tech than the Hot Loop; in reality, the Cold Loop only has to be "relatively" cooler -- hey, room temperature is technically cooler than the surface of the sun, right? + + There are 3 main methods you will see used for the Cold Loop: The Water Cooler (see: Liltenhead's video on the TEG), the Coolant Array and the Freezer Loop. + + ## The Water Cooler - As I'm sure a wise person once said: the best way to make something hot is to light it on fire. Well, depending on context that may not be very wise, but luckily your engineering department has just what's needed to do it wisely after all. + An equally naive method as the Pipe Burn, this simply involves taking some useless gas (in this case, Water Vapour) and flowing it through the TEG and into space. It's dirt-cheap and simple, at the cost of efficiency and permanant loss of gas. - TODO: somebody fill this out once we settle on a general mapped layout for burn chambers. + Setting this up is so simple, even Hamlet could manage it. Just take an output of a gas (here, Water Vapour), send it through the Cold side of the TEG, and then vent it into space. + + + + + + + + + + + TODO: Remove this section when gas miners are removed in a future atmos refactor. ## Coolant Array - A whole bunch of heat-exchanger piping in space. There's not much to say here: gas goes through and cools down. + This is the default method for the Cold Loop you will see on a variety of stations. Being of moderate complexity and having no losses of any resource, this [italics]should[/italics] be the main method of cooling down the TEG. However, every station at the moment somehow has their heat exchangers hooked up wrong, reducing efficiency greatly. (Thanks a bunch, NT!) - ## The Pipes + To use heat-exchangers properly, they must be setup in [italics]parallel[/italics], not in series (like what you see on most stations). A gas pump at max pressure should be placed after, and a volumetric pump before the heat-exchangers. + The flow-rate of the volumetric pump should be set to ( 200 / number of heat-exchangers ) L/s. - TODO: somebody fill this out once we settle on a general mapped layout for burn chambers. + Simply speaking, the Coolant Array consists of 3 major parts: An input connector port, a few pumps and the heat-exchanger array out in space. It can be setup like so: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Connector Port: Use this to input a gas with high heat capacity; most of the time, Plasma or Frezon is used to do so, as they both have very high specific heat capacities (although most any gas will do). (Yes, Plasma =/= Hot. You can cool it down, and it acts as a really good heat exchange medium.) + - Input/Output Pumps: Used to make sure gas keeps flowing through both the Circulator and the Heat-Exchanger array. As the gas cools down and heats up (and as it flows through the Exchanger), pressure must be applied for it to keep flowing. + - Heat-Exchanger: Basically, just a bunch of heat-exchanger pipes in space. Not much to say, besides the fact that it cools down the gas inside it. Make sure the heat-exchangers are placed on lattice, not plating! Otherwise, the heat-exchange efficiency will be greatly reduced, as the heat-exchangers aren't directly exposed to space below them. + + ## The Freezer Loop + + Most of the time, you will see this method being used in efficient TEG setups. It's basically just the Coolant array, but replacing the Heat-Exchangers with a freezer. Even though the freezer does use power, it is only a small fraction of what the TEG can generate, and it's better than the default Coolant array at the moment, so go fish. + + Just follow the steps for the Coolant array, but use a freezer in place of the Heat-Exchangers. As so: + + + + + + + + + + + + + + + + + + + + Once again, use Plasma or Frezon in the loop for max efficiency (although most any gas will do). diff --git a/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml b/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml index b7ba3d4c8b4..a377c980e55 100644 --- a/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml +++ b/Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml @@ -14,7 +14,7 @@ A large portion of Xenoarchaeology gameplay revolves around the interpretation o - [color=#a4885c]Edges:[/color] the amount of nodes that are connected to the current node. Using this, you can calculate the total number of nodes as well as organize a map of their connections. -- [color=#a4885c]Unextracted value:[/color] the amount of research points an artifact will give when extracted. Extracting sets this to zero and traversing new nodes increases it. +- [color=#a4885c]Current value:[/color] the amount of research points an artifact is currently worth. Extracting will set this to zero and traversing new nodes will increase it. Reports are a helpful tool in manipulating an artifact, especially in the later stages where you are traversing nodes that have already been activated. diff --git a/Resources/Textures/Clothing/Ears/Headsets/base.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/base.rsi/icon.png index 44e093f26ad03f1554ba2c82804912058ee2d74b..76cf88f02e7da24dc4e0c870d0f97c23a378dec1 100644 GIT binary patch delta 360 zcmV-u0hj)@0)qpPB!3BTNLh0L01m_e01m_fl`9S#0003sNklKP6n_}ZAjqfBaOluhu$-iX zB#0u*5md3W+k0tX%N*+gApVWeiB60pf$iVHOjcE=YC&)ZqW1YzK7&+)>Y8 zJSRCpk`)3lN8k`A36Nb7QIhqj;s9!aQ3s4VVAKHv?f?L_T728mW+AZv0000B!B!#L_t(|ob8l7io-AvM!#%2gIozT7f4vL2^iGn7Os32pTHN$ zjRs88smL~)PL~50j)JYH!EnZ0RX8G(+OB>A*Do;B#=_VT8nen^%i(~kC%&u|5~rF=kMbYKc~}O zyi)4AmTlV(@=@JEL_W`R|7ib}QvO!r8G>dY6#{i#|M~W#RDR2&3PUR&RH9Gvm)kY^ gz(pdF$W&Yae-qJPl&6RcZ9f@RAy%7ocSy3GfOt5R29e05fPQr*4AtF3A>w_tgCBm zVQ!Zc5b0y-E3cr&z`)R{tneO436=!;1^-6_4618qCIKZm3p^r=85sDEfH31!Z9ZwB zV5_H#V~B~+I)TxIG^i9L3_v-{Zr2-X>E~x;dy!b zgqnWNhKMhkb3O}Z=qTO!W6Lbj^mVuId!-j9o4&qbUo$u1%5Uzu|7_&yI^B5dflgxZ MboFyt=akR{06h$KCjbBd delta 231 zcmX@Zw18=XW4%g%Pl&68goK)^YJPtH{Q2{ZjEwFsn5&_oaW^wLIyyQqFi>1voPmKM zQAYJLkm4x`@(cct01QI+&z%E`a~60+7BevL9R^{>VQ!P zj5=V{0VF#>UeMq_GXLTG3ygGg0Lb#b0%17+)TuWND~=ibr^FFNI{;?6yom{t=oz2` z-ZD@ENREP@Wu{=dBPfYztOm+*Kwf|qgeqrF|=3xNQ#DomViSR4S zD+U!M6^7?8UvV%zd~gfJa!GLshLntKFu$U#kSO!W$^~D)ePsYy1_bcX0P#WMFpG&z z7bH6XYVdzhwu3qX?x^Q4o|Bv)$qE6OBXEe51jsIkD9L(MaR9Zzr~^hFFzSE-cK`sL Wa(=4DC}uVQ0000}HVG^<>yGDV{+>LgGJN8~_7p9lIII%E}nL zql+lDmpli2`}U1t&6+g~-@bht7zfY-3@r!bx(YH}xpIXe*MC)zfq{X6fsdD$Vh6Ag ztMKIELktokTnt=XKN%!MxEM|zKE&|p^Jj`3Ky*G5)%LGqjdh`%Kzfx;{TByK@1=%4e;^uGR)Zf8gJaw#OKHW ymk&wxIaM7&i6!M^2N%r~+$b0YqhJ)!3jhFIX;GoKhVf|t0000Op#WBRf|Ln!re1{b{SQ7#+Y`t6a|M=aDH$~sP zeO@+6&9r8t$cj5p_!$MiZ#R_-;7AnUyYj1|mEBN?{}5B3pm+>(l3?K>hSZV;U2bb` zG^jE7RSLu}c*#7=f-Q1}>ilLMewR-rjL()beqYX~^O^U>d<(|lV?6=x{LA(=s=2MW zc3!9;h!d-uLy-@Cg4ks?Ly9I;c5Qb^OFim@-`q9d}S5*`y z3IYJ2)9s>BDSy~=C)bY<1;JM(JS*TPtNc#$%e!an9~`4mDZnsIUwKvru*_c`u59yC zsf5$>TL3_#QUD>uvlXELtQJh^7?e^}t5r}+1LX(>005uwZwq5nI^G-rN%5f|LIboq zBajr2VlDwq(@@MM0!rFZ6mn&tvErAW4$F zll%St()f%lv$LaJsOcnHoe`cseggj!JRzJQ%R~ra_ZNrE&(U+rH>D&=Y)=%IewlUk rejA2sl|lpjHFIjM<&G37(x&wb&nUgko0fn-00000NkvXXu0mjfMLO2r diff --git a/Resources/Textures/Clothing/Ears/Headsets/cargo.rsi/meta.json b/Resources/Textures/Clothing/Ears/Headsets/cargo.rsi/meta.json index 1e84b43d94d..84f02032366 100644 --- a/Resources/Textures/Clothing/Ears/Headsets/cargo.rsi/meta.json +++ b/Resources/Textures/Clothing/Ears/Headsets/cargo.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 // Icon edited by FoxxoTrystan and Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Ears/Headsets/centcom.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/centcom.rsi/icon.png index 4ee60687d09860657556e171f9ae70c31a1d19a7..070bbfd16a652c755399db14a4928134b3ee8f80 100644 GIT binary patch delta 291 zcmdnZw3%swWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hcfKQ04 zh^UnDOa=>cJBBmHUY>y_MqUj6jpYRmbajoD;+W(W)aJ}z2~;aRyJ9Pl;w=gC3;vG; z7;IlCwE-nK3p^r=85sDEFfi2f9bufR%_j{Mt?_hm46*Qkdm&n=L4kucU`LwN&i`NA z`lU9kG`sLO;Ns&G9#56+UlcZ&Bv&5I6EHU54i;_~m=-RuxXCj@;QEmTZ;r|;^zS-u zJ8@CdOI~iXG_m?O4PCx*2Y&`SwN)})4BYVEU%}aBLhgLN5Jp@1&~Em%-7jU%&5-}x cJS&K=d96K0x=MVf0wHk3|Jf)u#;oa z)`$qci>2@3W9)lea}OX~VO}8k0NF}dF@=a@rD&mS-0Z?}`MN+R^Gz}tAQFlEcRD_s ziHJqFi*mn*wbm=PHblfK2df;6jbb9=5a%XUllNB^0KoYeOMeB}?><6ER1&zt`50Pj zY*diq{RNzJ=wJfp9F*4W3pBys5;#r`hNAO>_%)r10RLFOPajG_-G*HI|PZ!4!3;(khU-LB^ zaIhw1I9iv!{=NUL-)^gg_v-T04L3gYc3n_2*`CGa&b@0D4vH;)76GsRipm}FxWmb9 z;TBWC+u?eIlX=R;MlGq0Nz7IZ9}LPKahLpP(CRy=amHv~vkJe_FWj7tCj delta 454 zcmV;%0XhEj0@VYM8Gi-<0047(dh`GQ0h~!hK~#90?Uk`g!$26v|8YqxB%%~^P;fFu zAyjCz50Igg&(ZhrF?^3s9lE*o7U>{up_7o5U@^g~Ey6jJ3u$f0C8@gPw}eaXzVDas zyGwwQl9GQ$$-1Cnnj8Qssv6yU9*r``$tBRVEFK?!u2!h1YJYUiBO<+^VVYbd8&4)m zl8|_IPyvxBDM8b+c)S`}BvL1K9EY>z5_8|*>N~LAdm#ZJlfY5hg#KWl99OG9lIxm= zj^jivnEO70FhmfB(MFXa_wH?47S}Zm05F}+P=9biZ5seU?q8v6np7oHE0BaJzeo-M ztu9B`2Haj9L4O!Z#mOzOo18zkKqLdz@))?qet*gz&Em4**bG-C=z*1OTx9 zIb7FGjh{NfFpQ|ip6BhI-!M)7b~=s5XN$|s|AbVDxIf4~2qC=IR=CX3iz97m7zRJl w^}TNVQ!P zj5=V{0VF#>UeMq_GXLTG3ygGg0LXHWoLo5n_St(3496M%Q{o7s9RRaj#zGNA{O)lE ziU7$`VAh`xrcV`4go}xYO8tNH`WacFK#~K3j!$4PsZeF8kAJ_-@cYDlNE85pq=Y1h zBFhm}$pze8++arl9YC^Pk{qzkvVdW8`~(JHO&}Xd{LZ~Q4CDfm8~_S()uaLx%RzwL z_$SE$;H(DBatsXK4AcZ9g#f}4Xkt(xub}q->(?&~+}u12AexwvAvqC#WqHM*qNKv` z{N)RVhYxO{SZgjRF2RtJkqzcolob+X9$C5I>$k5AAj^ON9vUD%NE~J{vFUN5CER{Ka#U6C_z70CNNmagqSp1ra4#k17tJ78rHFr~^hFFyIaV01k3`k;tpE Qi~s-t07*qoM6N<$f>a=vmjD0& delta 299 zcmV+`0o4AC1H}T6BYy!5Nkl1Ka)7S2 zH-koDA%m{9HvK=4 z)-4qM;^N})Z29u#OX`;q5)u;sJwlRj=6`W<@&Cw2Ke~+7|tKwiZ||Q;&Wtx x%ZH@;oT`qX#3XXEgNx<~ZWN4yQ7{VV1pxH%RrLglhgbjr002ovPDHLkV1gqYlHC9R diff --git a/Resources/Textures/Clothing/Ears/Headsets/command.rsi/icon_alt.png b/Resources/Textures/Clothing/Ears/Headsets/command.rsi/icon_alt.png index a01e0c6c13e9e939597ff9f756a3fcaa3073a6d2..51a87cef7994958a1e61f7f23301d9c5201d84ef 100644 GIT binary patch delta 552 zcmV+@0@wZc1Hc53BYyx1a7bBm000ie000ie0hKEb8vp=JZ}D6A|=ODoFO zj<#=bY$d~)RrBH(mf4*-d_QmA+j(O~kJSh00~iJf2B)huet(q9$lhI<{uO}C6^p{& zYh%?YgfxKOoTOG%v?D`1;B*eN@gaB5Qed~);2rlF+65^9G8y%ZvG>>47j!~~i;%XS zqF2>V_HaPiT@VKF4ozuQUulf|-2w#`*gXT#)rAy<5CEA+Qd`(ti`M5T`ba8?-03Zj zceVkK${^e$E`KSAmH^!RFL^=}m`AJuLPo+Vphzj#`KJQ=rgxenfOaGVKt_kjIA%iO zhIyI`BZ2F)o9+VWwf=R2!1g3oHeA2fs4lt=K;{>*OJLB2PDmPnMcyHEVF1c;IGSKN z*Nf)#`KKdUwmY^2$iAJMkcM^$E!H92E;nYESL^1P^nVdl^D|JkqAMpMhsdP0_Uo{+ zf1UmJ`gKjEBBUi;1Kh;x@Ue>s9ly=Co7y$+kRs`jE<)CPDnBQlz5(&O!ra0V0)9Ud zn{l*~G(f5NNM=>40}jEjXY@^Q2m8BF6tQ|R)Q+1$kjOk=$g_3PdN6z+;1CpP9Y9M@ qZC+SyT_MY5BJB!5C)5Y%Ilwm%yYQoVR*XFW0000f+?$q%IC31;IZ-S{%A`?ocTXZLyB6ElLweD-O@0T&UWbOQX2tTaLTj-TQLy z-2ovXA^(ixcR|!J2mq#3)g8MpmwoRumO#ujX|UgWd&88fx_|9BBGL<@hCw1&rCL=+ z35jpNDj))l3J^0*8axd@5}p&2i3B;_E}q-%Pk9GE=Uzwv@Fg(eHQ_FwSEeJ8Z^3m< zLo$(YQ}Enw!?JByw(S%li`D=Wk~ zr~UIQN?%-4JbxZ15D~Ij;+#vJf@cbTqE@eC`|ub5P`Erru~N-2x5{ z`mGNF2~?_8#j0)rX8-T4EK0tNS%Wi?Qio5Ap$ftrA%5P&%XT@1#SS5W)^_3IY~Zf+h15KTBo4Ef z*mOa%1E2=~2W2~`BjApD{^B{w36iW3fH?w(I7xu)f{2o=M->N93yeBo)B&Ro7;pyw Y09Yn{%O~)p!vFvP07*qoM6N<$f~V4+{Qv*} delta 254 zcmV)Yu~@d^1_r`e2H1rglmGw#07*qoM6N<$ Ef-{zO?EnA( diff --git a/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/icon_alt.png b/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/icon_alt.png index f1559927e0c2fbfda565987acf5bcf246f14b74e..98259eb0700d261983bb1064ac563b845e8e7af4 100644 GIT binary patch delta 336 zcmaFG{ElgYWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hQfKQ04 zuCB4Xf|`Z7otI~zh^UmjpuyYw36FQXdHUvVFVda#@cW7tD~ie*=FDFS)M01)Zx@i_ zFA4Gs{*M9}uH2ci5Gci2;4x8Mu%2PPr;B5Vh5y-$ulWuuaIhu>T-bWI=Kt}#7jKHb zdHcLDyz<1?WMJv0Z5dR^jK0)yq<|M(wLky`U3%cCa z+-Oi^@T(MvU+|K7mIYhn4AuF~I{Yr5N*JFlW&FOJPvQbcRxoK#ty?AOaM13?wep1N_nU+6 YRo~TDe>w4bJkSpep00i_>zopr0Oin(B>(^b delta 475 zcmV<10VMwJ0_p>h8Gi-<0047(dh`GQ010qNS#tmY4#WTe4#WYKD-Ig~00EpyL_t(o zh3%9vPr^VH$N$JsC}~Yd%pD(~Obr7}h;it^#J4aZeijEE^&>Da>f*rQ%w#%&k;w?y zMH-47$aBD6K*9DX=+ghv^zPmLfA`+I0}>@l^v_DkE+`rX0e?V7QN-AzZAU_fwmIg1Man1V)<-N~TH6*^q$<4Xj%hd9xYDjivp>vrO+($XL%=*y%d=zY`yZK-F-C{FzV>9n)B8S|Y|K(@fbV9@+WV86C{dz)>JuxN!21^- R>ka?_002ovPDHLkV1ks9*^~eP diff --git a/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/meta.json b/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/meta.json index 1e84b43d94d..84f02032366 100644 --- a/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/meta.json +++ b/Resources/Textures/Clothing/Ears/Headsets/engineering.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 // Icon edited by FoxxoTrystan and Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Ears/Headsets/freelance.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/freelance.rsi/icon.png index 0ff3f2c989362d67e30f45835f939895d8ce6e62..fa790f7e9908db0be117835f39c7dcf37e749983 100644 GIT binary patch delta 376 zcmV-;0f+vd29g7iBYyx1a7bBm000ie000ie0hKEb8vpVQ!P zj5=V{0VF#>UeMq_GXLTG3ygGg0Lb#b0%17+)TuWND~=ibr^FFNI{;?6yom{t=oz2` z-ZD@ENREP@Wu{=dBPfYztOm+*Kwf|qgeqrF|=3xNQ#DomViSR4S zD+U!M6^7?8UvV%zd~gfJa!GLshLntKFu$U#kSO!W$^~D)ePsYy1_bcX0P#WMFpG&z z7bH6XYVdzhwu3qX?x^Q4o|Bv)$qE6OBXEe51jsIkD9L(MaR9Zzr~^hFFzSE-cK`sL Wa(=4DC}uVQ0000(VDLS delta 777 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 JPDHLkV1m(#b}|3} diff --git a/Resources/Textures/Clothing/Ears/Headsets/medical.rsi/icon_alt.png b/Resources/Textures/Clothing/Ears/Headsets/medical.rsi/icon_alt.png index 1087400c3caa26d484116ed669440cb2ba91cbaf..e68f78e061f33d0ee8d933defe0b6cba6aeb102b 100644 GIT binary patch delta 428 zcmV;d0aO0f1H}W7BYyx1a7bBm000ie000ie0hKEb8vpVTo; z0C_=!{~-F|`wNT%;s8-aDF#t#Wrl~FFHp;V(j4&m{xb$@gQ1lM2HXL#G{A6f02~0y z0iZMh!m!)`0+i+mq8wmi^UzOtlGR876k?~T)QR# zjsg%cHnn3od-@Prj-X05l$TQk)7!SLAXzU-4oFRrU?>OrUPUtrMSR`bg$(2Zk{kdE z^3L8W3~_SfpMN9=fU+7W%hmQ(GEftc6ap|upo_uS+S+>m-@JaqAR;Ql0HTQr8Ilv> z57t)L(=$bEbnVR&x{wy$;tU=3c4Gr zmPG(iDi+n)$7G^?&P4(>+ot{ZuiXx%Vo^OW5lOwFYFQKq^M9t(!a1RM?y3TDpmPCg zwoUul(2+=7*lx8bj3O*otAn}&hqaF-0B8x^B`tUz4hxlX`6#$)7-+Xzsszi`3Y+Z~ zo9$LLY8o!?-kNQbX&3;2&)E#)@mS5(>vfohq1_MKJTw}_IVUM4Nh!&39Ezfdq?E)t zPo0H};hdA_d4DSS^V^yn$5BFQBocezH{ucmL4Ys}F&d2!hN0FOnFIh}Fc=(-1wrt4 z0z!yP5}5^j--i$auIu9cYHe*e060Aq~yMNYvvr*5~a{Wbrmwq%Uay=k8OviRyut%+>&qQ6VQ*LWGm7D0000vHul4>cW2iy=LN|7Z{ZLE%~lh-VgcOy4>-R#`sM5P zp9MgxcCvjYkAE)@k)>D_P!K;o^<11TOCdgBS)-scNoCkWC~{A5OD=+L2W`LcEx9vk z!`s-5;)A`dME7ZJf%p`lWTE0}P)xo`oOCYO0KJPPtz8cyh6*|XdmyzcpdkM6S^3I0kx?hJi%FP z?a2#{^?eNtrf2ZgByA01#o9q!xNxEey|!!E&;7|x{!h#-kVqu{I~PM96OkyT;JruN zwu5H-xEfNvSv31_4LspSrjWQCTE3Mf?pA`$q5%;}6oGHHvVX+G%Pa18w_|(H69^%o zsw#vK;tPCy%E>&tz~ftUGS4mm0M=T(Kd)h}1pp|e;t4qCV2nYQWiZCTIS23kXn{Z9 zF*8e^=Z9RDCF;69n%7z%7NhIBNj|D0h)9Z}kiPrZTFXy~$zf*ES_?Dx3d~miTS=7i ozOpgpXD`a^3mcb6BoeXs0x@t}GjErB1ONa407*qoM6N<$f{v_)_W%F@ diff --git a/Resources/Textures/Clothing/Ears/Headsets/medicalscience.rsi/meta.json b/Resources/Textures/Clothing/Ears/Headsets/medicalscience.rsi/meta.json index 3d37ed54346..37ee397b98f 100644 --- a/Resources/Textures/Clothing/Ears/Headsets/medicalscience.rsi/meta.json +++ b/Resources/Textures/Clothing/Ears/Headsets/medicalscience.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 // Icon Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/icon.png index cdb552f140ec9f1a86c9333d6d16dc47859f7d61..498a0af6885eaf70bafea8842a6431adcecd420b 100644 GIT binary patch delta 444 zcmV;t0YmVTo; z0C_=!{~-F|`wNT%;s8-aDF#t#Wrl~FFHp;V(j4&m{xb$@gQ1lM2HXL#G{A6f02~0y z0iZMh!m!)`0+i+mq8wmi20S&o5W9|JW3Ng;r61gaQ}Ew7;V z|LfN;4BXs23?Q1AkRdq{er0*ZprWM0@ciWqhKCPsp;#^{F2RtJkqzcolob+X9$C5I z>$k5AAj^ON9vUD%NE~J{vFUN5CER{58dMk`p9ZApmm(4sntI*#!|L mS&u3XpcWW)z^DU89RL7+LYE1kW>c;J0000>ucb1jw2+SqM1{G#knKWBq~Y$6a%G@AK}xy8;z4 zD72J9OBJ>McHD&HBMs-qUQzMm1%wb_jQyWL(NqFEX(khq(tkO}-1p&m-c~6BQc5t! zKtyUd=!DLzR4WCDK)f&i9fAqawU1m501a%r@U1}8Z= z38=0?(-xq*hHI%a!QA&V3nZ>_v(Zo&hd)21uTMNYFYq#(t*jS9gx69^nScKfk-ELy zSL^P-5JD|WBq3E3>YU?l{2E#NLNZ@wU505h&s8Ez@QshF@P@0XsHiB5ZxOg<)UVlL Qz5oCK07*qoM6N<$g7S;1RR910 diff --git a/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/meta.json b/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/meta.json index df6ee47d086..9c2f13fda0b 100644 --- a/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/meta.json +++ b/Resources/Textures/Clothing/Ears/Headsets/mining.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 // Icon Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Ears/Headsets/robotics.rsi/icon.png b/Resources/Textures/Clothing/Ears/Headsets/robotics.rsi/icon.png index 3d247f05be59b6337a3999eb81040920379ee608..4a67c2aa6e97c830fe27dea40f863cbba9df8282 100644 GIT binary patch delta 308 zcmZ3%bcAVwWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hQfKQ04 zyr4lxM~A1U=l?Sd5z%WzM5P$c{5LW3THENXt7~jwZddNDFR!3BXZ}i{4imQBtAG@L zNswRge-yxQ<<5+SKq<}wkNU`B1_r((Aj~*bn@<`j+Un`z7-Hf7c0#n!VFeD?kB-eA zcm5Z7E9ENATq1qqXTgpNHkrgf4+Yg68IGRP-^ZxAw8kW+EyT-nyVF`#<|var0rA|a z85b?M@96mNaqtdhT(4fD^lIJ4$Hpa3{eIL;S@7o?3uELLk+|#H3peU^6nuW)qkT1D q@AfUit&P%Q{(OgKy5Ep^%zN{wNyVqb8!dq@V(@hJb6Mw<&;$Tw(Rl*^ delta 280 zcmV+z0q6e20;mFz8Gi-<0047(dh`GQ0PjgeK~#90?UcU`f-n$=e;OwUtapne#Fdnp z$H5h!#2Md)U3~)F%L)nWIjF?M5cyMC?3Xm{aP99Kt_N5wmVak8rkI(<_dL{11FiL_ zyR%_tk+XU(2s4X`ch^J1qbLFZs8n!KIkGH+35h`hFH|bHo_{V#RX#U&nn2sO-Ch*M z@&W*W_+%t_x`1Iu2^R7XW`#M776bQn-e~{QGVWV e7K_EQ6nDZmQxRt|$z0!a=y#&n*+s?D2WQGZ}C!!30~a1?-mq=Y1h zBFhm}$pze8++arl9YC^Pk{n?5&k*c;70o0DhJOh0JNND|kPAq104T`g)F-1@4g%!H zKS>S%Wi?QiV=(Mype7(G1mKQ96N9nk71aKJ{rZK0o12FLL=zJ-BqzeJEUy?;lvEg= zzkI>)@WCw<%W5UXB^XjNvcdd{vO=QFBP$nt{q~gsWEl{^Lj%MIiNh==HeHbH0I0$L zLD>%K2)Lu3zj#h^f+Q;hV2;2cP7)xyAfhDeQN;n&0;3KXb-<_t2HXJvQigqU&FZ8y P00000NkvXXu0mjfY~7m2 delta 284 zcmV+%0ptFR1GfT@B!B)%L_t(|ob8mMZo@DThW|}Pk!I?f$_(xWy5YUUkQKDI7!7S$ zu~|T#WGIgiTqy||FfhG>Y1InSElpxFf9#ih`af`IAdyJ?ckZSbX36vX zoa?$q+qM_;TI=&-48yRiBdjRHmCgN iMOl5}5{X1278NIywOTV4Lxu|g0000RJo2OT9xiv>M=As0Ku zr7v(cs7oIafANLUSB6C)#?o>>Yu>v}m>9q?K@KZ`A31OKFVdQ&MBb@0KzAXEdT%j delta 464 zcmV;>0WbdP0`dcp83+ad0047(di0Tw7k>eyNkl#H4*dX(rc*I=srDtLiI7kmhjY3MwI#eYy6`N7 zyZ_zuW3S_J=6!MjGz^1A@4vQNR78%pnj#EC*tU%@ z3^VOf2mk=S?;iHXX6w{vus8rAq!2`50M~Uv2!Ul;==FNAEGyIcLI4xT5&Hc;hma(R zC-Ss8$6~Qad<_!|R8{3!E|<%L^>tmRx2+ZkA#hz6&% z^`c5msj4bHRg{BI#y-8Dz8{-XVSwLeQ5`kzQl(1$wSE9vn7)JLv0%CY0000Nklt+19Tw>f(u2T!H3X=g6P7X52Ho=0jEXBl^HA)VsF|^?LwHF z4DBXoleu?D&NnwVnF3}k58wejfCpd$ECn_7H~##1pPL#0nSb9d?&#;!(vL|i7l_ON z#(a5u7++!@2R#8iwc#T67VN$br(Cb}C*W+Wzydfb7I1eZ&}=;7Eh*!x6zhCg4Qa4~ z$mJA>qRPOwI!+#G5+4 z5fSnbs{$zmNp_BN=Kbp0mXh)tLM(vBES0fp!um#Cm;dGYVZuDDRMFbo*YU~mVWzdL z0AwOTW&@?yGR2fP###G<4KP|*(Xksrq)<^OVmG8!1q{SLd6uj%BGui$OO8+rgeK()JB zmAa-wQFO2v|DZI_k^~ao=gS{pu~_~c$7C`QX^$~9ZHv0Djn>X_F$oXD5WbX1k_1Gg zPZQ|F0YE8*D2jHISiA#$c%C~*({yX@I)Se10O!+YS$4j_5qSKTfDi)r+Y3Sn0D#BX zxdH&-y6(_#+IF+R;?Lw71lpH!7(c5DkFuPs=bR7EQYp2|M>T diff --git a/Resources/Textures/Clothing/Ears/Headsets/security.rsi/icon_alt.png b/Resources/Textures/Clothing/Ears/Headsets/security.rsi/icon_alt.png index 219918544cc972b58236a8a32cea039364ec37df..b47392ea071f0362afaf541887ac19cad27d8b0a 100644 GIT binary patch delta 546 zcmV+-0^R+`1G)r|BYyx1a7bBm000ie000ie0hKEb8vp`6pHRCt{2mcL5^VHn3B zNie!p^1u|%bV)K4gvN%3XeelCXt$}qp`jrf+S_U=8g*}TYm{Bh5=%+tv;^roqrA#3whhW0-$kWNg&U| zwQm%H8$fRyrF0cABSR7Jcto<6$}c1ZE~gWMp|GJSZ~>r^fV4)QTP+!;A;U$8p-1l( z<%9evAa4|y0fH-Wwd%WLJ@@f?f#2tbYhrGLN%z&&_JAb7-_0`wGfU8z;cJ3iwc0+ns+X0R%H#{G;f1P1nSPp>dowZGQZ3^J#X*!0v0MOf%7$rH^3-|Pq zz?RHA9VY@5-!ir&HX+%qL15##{uDLi$*(pjcJ(vtEPsO~osdE#Yiie%23;?auaBJL z+H3%~m}`I<3A)2%9J{22vEjyXO(!HvI=G9F44>{#$I}lWdRN%nKZMOl1THVmC;lHd zK(q0R#`^jJM6YM~j&Kimw;%{?^h2m1I!%Y8)Jdt5vZpBW&I!4>Z+{hViOwY$g`v$?ql!df z;N5g;w`t1jW^>ecIPSfZ04fP|iUR)L-+R5QtN)VwLU1>oW-WN#Y)FhDF(x~xWvG36 zM`37vApm$@F40&*!XGtHS*Y1EiGMNnWqlC*ub}VE^3Q0MO}l zc!}f6|Aaz`yvQk(QdVni%e;DdN?S@P?X~Zpd@}dxeJ4wjvsG#=@Ncp_-&*dLmX@F9 Y1IM;U>K17H9QfB|3wxOQ3m^!=z=_x(r2PBVGj=z3 zL@yAT0c7!oN*Q^IJ%aVM+tluzEUMV>NKt&ehgw}=0h}EMnAl&zO?4S}o|BG%RB}pW zv>>#vV5x8kcs|_ZZ4X%~L;}Fh!veUdH&Ce_V{Wzv4-FM>Jv~5IybfIZ@DAp?ij#Eb z&jO%RbI&1sEe!Db^4L{;wCG^9 zR!{xyt&L3iw5}lfib2H^scw)@aalO)Ua$c=i3Ocq2SP!$gEo61wK^an{)n@r{SozY mdbt4PB?Djp3_#xjz5#i+fJ79`{QCd^002ovPDHLkU;%>a!mXeH delta 284 zcmV+%0ptFn1GfT@B!B)%L_t(|ob8l5j>0eyhJPp{Ih7?(l@7!Ts<_MrD3c>_0F(=G z6U23L0=8MYsgf;;a7t4kMNoh+d2F%%BugG?tog<-z~k}!cP1{$L}WuDaIR~VW$CoG zGel&WxgA7g|D<>v$F^yj-Xx|j$!VHmvp*n7lCE_>6EMbL`+r-)7&E>=p64&)!3Cly zx=nWL$9OCO0MJ@varuJQ8UPRqF`fW3LrRGt2q2{dGvi#>odw?hOy;whU9MJb{Czy) z=X82luas(^WmQ%Ee^f+dvn+f1{*_YpUg8~`?m#F6ilTUV_JeeO&$A9)JMUGZOYx7l iYw!!_@pwFAaTNvIA7Z2|dw$jc0000;U>K17H9QfB|3wxOQ3m^!=z=_x(r2PBVGj=z3 zL@yAT0c7!oN*Q^IJ%aVM+tluzEUMV>NKt&ehgw}=0h}EMnAl&zO?4S}o|BG%RB}pW zv>>#vV5x8kcs|_ZZ4X%~L;}Fh!veUdH&Ce_V{Wzv4-FM>Jv~5IybfIZ@DAp?ij#Eb z&jO%RbI&1sEe!Db^4L{;wCG^9 zR!{xyt&L3iw5}lfib2H^scw)@aalO)Ua$c=i3Ocq2SP!$gEo61wK^an{)n@r{SozY mdbt4PB?Djp3_#xjz5#i+fJ79`{QCd^002ovPDHLkU;%>Ax~-1@ delta 267 zcmV+m0rdW&1EvCyB!BHmL_t(|ob8l74}vfdhF=^>%G9Jcv1v3q(UCs^zl49u=BA5o zH^B-K#=01y1BA+lgME^wx#XIAu3vz|;rMqvn`9y~fe@(b8bwi9t(^=J8D{PV5t*M9 zkD|!5Z9AL9#wIyQ5}eN-;y9jK_d9{6X#npvuPu;e*E z8UPRov7P`kLrMwX_aUVOGoz~O$pWK4lihY}j;B)>UoRKj?)Q)NN~!KymSs8rM@2*? zP1D}@uaq+H5@WEs1A!38^L+5^7wP<+z7B0WpH*T?@vpaQ@eAj0I2>#71p4-0q*qZX RE&u=k07*qoL0I&vVHg_Y8AAR02$okp_&-?uzWg+V#MCjpt7=H32fTmH<23TIH za@D7K?p9n<>cR*@3joIV_YSCi+fLTteWTuBpw4|KfpAwVMi65G#P}$oAia20Axxy5 z0(gpC2d`az$A27avLkGz1t4K|oCUg?tMOWkd|re10+k!UU$wsd)OFNF?f@{3D2#&0 z9Y9i$m9zkmV{gmjoS%d@$vW25{NqSA?T%vs-rrv0pH(9jLbjW_BOsgBtQ7%)P>o~$ z`#VN5mUaz@k$5X|I|fLa$7t8mA$1~RT!h?w;zlGVo@3g8MGyU5N}J@pAMYh8P*G9w$5=%dG#d>G z0H?OCzdbG%h2xYGXuGb=zJDYMPHkI1%ZL~+Xf_&BC3{*ft$#y8YV1b^RH8!(+O8|J z)hHs7JF(a8%J(?Ndb8Q-JFwe(B>|w2KrL^={lkNGes=aPxkCtg-L7uIdb2?oMF^uv zZ&VXX@7}iSN{0{tz_agzbFRl`vl$#hj4F{^fkUYBKl?s9oettS)?=J=gi&M^r?fye zxgw5Z3`Qd@!G9RbZN*Un4k1X>6lt0Q0B&w?F&+*J#W+d;0Fv#_A9x z5ah-`$(uka)jN5$T73%`1cBucA}{N82qBOp30_}bj75?gLn)P6k$o`6BR{fNNVWLb*-f-5R2{uQ5fOvV4I5VPU{0000nX|KM5h52X@ebpCp@BY?F y7w^xTCu(n6=qDVID!sz*$hw}A@!`Oc`yTz+vR@9N{n zE*^&rKbI-pQF$g3n4qU=WUkEKs%MLD#Z zZk_o0`oia5kLkHKS_HqDeqhys2_MZT2w$kTPmxIHy1kW`;j4=Agpkx^x%5@WZ}UID zjAQ(8i~ZJ${@{7Z^|qVerL6bcJLT7dS=>zue^~vm@kOwi|M*%B^e}^`tDnm{r-UW| DT{(Is literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mask/neckgaiterred.rsi/inhand-left.png b/Resources/Textures/Clothing/Mask/neckgaiterred.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..5a37ace23e68bc693b636d6409220d71466ae9ba GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAQ1G9p zi(^Q|oVT|Oxehr9v_1^f*}}mcrWA2RFSJNJdi})iincBHT(!B6T7@c1Ez91j;K6ct zX2yg6zxH^hi3gqO02%=T9UEur|Cvy9{8r=Zmp;~)Ov3jv?ko<{3)UB^&wBW?Xy&gw zmc7@j4L5R}ojduIXkE2cPg2o0U)xoi4n29r{>nUIs)~|QQBL&KJrjhBwyrc+*l{nv ze(Gh{y^On0M*@wz-ttZV^eb@=h-C~60!!a3y5;OW_=Y{=YH)7DQxIFTBvW=g7$k77w1alox)LiaTPwqe^_Pj7i_IlP#X+b7olx zXaq!g{@X9=w13Z*)CzwVpvgesF!O9qT+6wH#hK?OzU@AJa!chbhFQBhZt7VRp}?mu98-qj^V@HpS1 zujikb?0kJi?7_dva&M82+`QM`1@*hP@jVXKw`~8!ZPGSP9AYs815d+yHW&HVk=u`* z`Y})PMe^QbtQ?lcA8!9HUs`0hz~{xxMxW3p58qXW$lX3IB)3Fy;F)U1Hi&=O7 qrO+2!;}7A+Tnno{eEG+CV4?o;F1P-kci&%v4EJ>Pb6Mw<&;$TKbd<9I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mask/neckgaiterred.rsi/meta.json b/Resources/Textures/Clothing/Mask/neckgaiterred.rsi/meta.json new file mode 100644 index 00000000000..9094fa918f0 --- /dev/null +++ b/Resources/Textures/Clothing/Mask/neckgaiterred.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Originally sprited by belay5 (Discord) then recolored by Nairod (Github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "equipped-MASK-reptilian", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/icon.png index 354b1eee71dbb1607d5667604e7fc502e768f105..b6f68da96e1cc4016112b717a63d53ca7f79e94b 100644 GIT binary patch delta 272 zcmZo;-pe#Wl7pFnfx%@-*RhF;3iVn6J|V7N-Vx$rQb&9l{?{`^M6VGMmD1MMGcodF z*uGs?*Vw|`PF_K6&is`?Z4DaH4nT^pB*-uLKQdr&J#gm)P=>R>BeEE%;0OpaPSxg< z1`0NLx;Tbd_`f|L$ah$QqapFgBH>ei*ITbinOr+_7x$O?4AsAj#J>3RORzF9oSZ&C zjiF;l2Pea`IfdMPhZ%mp@Lg~v{OF`85$y-hK4-8+STDFO8?yfcoYiDiy%p`gqHw=!0-ZfbR-yN=0>h`qgyi4 zuAQQv`Fl;e`>(evcs!oJrzcelLP#D20c2SQoO7eIO=y1vli!zIMgYStablt`^?xU7 z@_0vuVvPGDut3W|0VZD`j-?3~7#ToTk8c}Xpl#rMl?zEdZi}{o$yhEnQz2z+iBSvo zBL?&t3q=NDDAWd{78F&ZV*E`Az_~xo zAa9y~G@zQ$!RQ~rXLx>zgf`Jhhf8f8 sQ-PZR000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$f~e4lZU6uP diff --git a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/meta.json index 33e08c9522f..d2bd34f4835 100644 --- a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/prisoner.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Resprited by DangerRevolution from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428", + "copyright": "Resprited by DangerRevolution from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428 // Icon Edited by FoxxoTrystan and Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/securitymedical.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/securitymedical.rsi/icon.png index 0e1840978dafa6f2c7f52dcaebcc6cc4f1e4b7c4..195117997db22a6b1c73cab9c4749c2bb21e1da8 100644 GIT binary patch delta 381 zcmV-@0fPSX0+<7kB!3BTNLh0L01m_e01m_fl`9S#0003>Nklt+19Tw>f(u2T!H3X=g6P7X52Ho=0jEXBl^HA)VsF|^?LwHF z4DBXoleu?D&NnwVnF3}k58wejfCpd$ECn_7H~##1pPL#0nSb9d?&#;!(vL|i7l_ON z#(a5u7++!@2R#8iwc#T67VN$br(Cb}C*W+Wzydfb7I1eZ&}=;7Eh*!x6zhCg4Qa4~ z$mJA>qRPOwI!+#G5+4 z5fSnbs{$zmNp_BN=Kbp0mXh)tLM(vBES0fp!um#Cm;dGYVZuDDRMFbo*YU~mVWzdL z0AwOTW&@?yGR2fP###G<4KP|*(Xksrq)<^OVmG8!1q{SLd6uj%BGoqB!3xnMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o0003M zNklY2nSUm{stSstz`l35{=!y( zk_SNmYtMr?j^*`aN6;jvD9aMUFdPj+sRk(d_HcnDNv1Et)AIL+a_;d8R5}9{1%74jyU$fX8K5g!7ZewOU4(rQ qU9xlA5cO}l2G9T+U~Yi700RI8zZHRui_7r<0000=JZ}D6A|=ODoFO zj<#=bY$d~)RrBH(mf4*-d_QmA+j(O~kJSh00~iJf2B)huet(q9$lhI<{uO}C6^p{& zYh%?YgfxKOoTOG%v?D`1;B*eN@gaB5Qed~);2rlF+65^9G8y%ZvG>>47j!~~i;%XS zqF2>V_HaPiT@VKF4ozuQUulf|-2w#`*gXT#)rAy<5CEA+Qd`(ti`M5T`ba8?-03Zj zceVkK${^e$E`KSAmH^!RFL^=}m`AJuLPo+Vphzj#`KJQ=rgxenfOaGVKt_kjIA%iO zhIyI`BZ2F)o9+VWwf=R2!1g3oHeA2fs4lt=K;{>*OJLB2PDmPnMcyHEVF1c;IGSKN z*Nf)#`KKdUwmY^2$iAJMkcM^$E!H92E;nYESL^1P^nVdl^D|JkqAMpMhsdP0_Uo{+ zf1UmJ`gKjEBBUi;1Kh;x@Ue>s9ly=Co7y$+kRs`jE<)CPDnBQlz5(&O!ra0V0)9Ud zn{l*~G(f5NNM=>40}jEjXY@^Q2m8BF6tQ|R)Q+1$kjOk=$g_3PdN6z+;1CpP9Y9M@ qZC+SyT_MY5BJB!5C)5Y%Ilwm%yYQoVR*XFW0000-rJANMF6ZIh}diCGe za}1YMn*qKd;#p>Khj^YiyX9Dd_lU<>MJ^Ga5GObtkoZ>UipOt)%N~CT=7rn>;1@lm zau+LI%qrXU zjJ_7?;N&QyLVw-_sWs}VQq@RTY3itp-2dlkYctbc_i!2*e0AN=Ng%inG#jq_d+NH) zGa&E+T$>$#m2#T6jWNfgIywO;=?cPt`XP9pGK$Au#R^2Wn-+Bj*oevupPHiJ0ALSVSr@P~d> zn#+rY4rGC`V~D_bTQ1prJ{P6^exG4Z#|Z(}Nq?>fgTyq=#PdA<^m@G{j$@wVyUtpr zYC$p@jRg7q<5L0=BuGU>;Xjb43^rSq#m3_?i=v3#t$ZHyF#B_r1khp-QFc@o@NM^w zdvd$W6|>3$zylGEu zNOrBq#dB%fV$(0Kd)PYwB4ib!QKcHqzsd;!33!ID2?rX&CW01jnXNoGw=04e|g00;m800000 T0Mb*F00000NkvXXu0mjfu5^_h diff --git a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/service.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/service.rsi/meta.json index 5dd6839da5b..b62adfa1f3e 100644 --- a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/service.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/service.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428. Modified by TJohnson.", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428. Modified by TJohnson. // Icon Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/DeltaV/Clothing/Ears/Headsets/syndicate_listening.rsi/icon_alt.png b/Resources/Textures/DeltaV/Clothing/Ears/Headsets/syndicate_listening.rsi/icon_alt.png index 0354a3ad03e1d08370756b4ce6cdc5a866d57846..892f6d12f0e391ba8a708a1639f624d60de62ad1 100644 GIT binary patch delta 489 zcmVDiryi^hqBIBy#)EFa-*xN3`aU2K@H7F4(<8N_tBJ1VCZ6U3 fkcA3>sRR4~DJ}D_3S&RE00000NkvXXu0mjfWXR_b delta 505 zcmVpGs7XXYR9Hvtl`(6=Kp2M4TdW1sG1lF>NXM*#LlG3A&|lcqLP0D@ z2f=?J#i^O+{GMupZm_ch<}unl)vI$NWz%xgZ8AI~r*u7q}tZfZ6EYqb&|^ZDMo19j~o$xE_WE`^oP@5x4?t-y1? zpE=Lv4#E)txqsl61QE>Ppin4itD!ZF0yE~Ix5-3Qt5xcQ!C*iVkeSV9M>AsW0u?Sl z!X3vEtKBj&kU_W!Ckp@$XCTpNx2dmI>tn=QlbX z3P-ChhmOPo01}V&I)y*ATJ)Q#L}G!>W<%F)uSXKR9CD_dybT%b^>VpPeJQ2L2Is|a zIMi-IpdDb__RnGBx^C!r9KV;vBK0BhKAjq!g2q5X6$t~C*lj)Es(Ea{at7j^j|V_vPv8cl7foDVn=TiUVzBXyAHK zl&BT6>h3cm<|)y+uZ#ab*DaXy(%_$c1@ErxefN#_@g8Hy4AGhP>zd8?IaS%mIFt{# zB&zNDbZ-0Ct6O{bojLs1H_0XG!1Jl=1wOMr{oL9pnYQSu>&X(K_bpeA3yzvz(t5o; z;rHF;H}{@=SNQlvUtjy&FN~YM&XacWw+)UIyY~3KeSPYTV1^T`)uQ)rj{a$=E_rel z^O9MmVJ9OP=f%$}+RK(WX^z!_ZH-nAyFo67fDneauMeM{`19{(ABIbF?!CJDVtS51 zJ)6hnQ`cg?KDcr^jeUvV9rxG8hVlkXJ-vPWe>6JJv#TV3dYfP&ukqJPUchI{!5Rfw mhG)z(_-~j5uxEfn;{bbL<^G@f$87F_Z1HsUb6Mw<&;$VXyS-!p literal 317 zcmV-D0mA-?P)F)n?n`R1vLw1LN;PQ>vMY>q!((6a8 zzTbLxdC9vw2tY(cM0BQNyk6$4zsP-oo7+juea5jqKmIYdge+B6jaC2vJU?wl%^$sh z-2Ch-aPIzn0h6H%y!YQ8xwdTwKX2^(%c0>S0sy$0ejJ(-ElaS-A5?&<0sxw(!D2qc z{oQImwtm>|$E{f8C%5IjkE)8gt^ok=efMR~%j+A8qA+oKjKTG!89e+_{puG&9u6{1-oD!M<{Fqr2 delta 236 zcmVW`mv2M5cL85{RdDgsbpCnMgFbw10S+0xxRe`#$-x3&o zO2hF9hT3+280s3t zw%+^9%xIbh0MMs+lR2KwD9ci{3eg0dbD4+`LO=-NX_kn<%sIv=k`S*TrG%=gL^%!O mQ90+tKc2LE!!QivC%6JIdp+WT|L-;c0000yx^~S{`^VmO?PqT7 za$)zoJmpi={yX=6YZ{p^W!(OJt4mtf8n%?wO5pWdm=~oB~#qq=_go#`WYA& z%$oSu;g(&3zw+tkko)+uPHG3uZsRYhO2c z^3|9F%EvaD$X1*JIS&jr)XU|w1)W*F(H}&2aZk86JAz;Oar`Q-4<*JI&MZ_vaQW;3 i^HA0e?d%K;4e|PtD|HXgzpeHHq}kKe&t;ucLK6U7i(c{o diff --git a/Resources/Textures/Objects/Devices/communication.rsi/old-radio.png b/Resources/Textures/Objects/Devices/communication.rsi/old-radio.png deleted file mode 100644 index 23315c58a2c7b98d3587c7696fd24ef507461066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 zcmV;C0dD?@P)vTFwg z6_IF42&F1$9ZG}9%gZB0>hQklcz5saOgla~JrC`xEYKP5xejB=6acBr94Upr zvJLdB3WzpPEtja4OVSwra0By8t3f_2jzUSG+3+!~GytZRrrGcTsNGxvkX={~jiZnr vqRt&K#w}Ty6tC{!xlZUY>iH$qXf&E{dy$VBeQ!MQ00000NkvXXu0mjfVjZ)E diff --git a/Resources/Textures/Objects/Devices/communication.rsi/radio-inhand-left.png b/Resources/Textures/Objects/Devices/communication.rsi/radio-inhand-left.png index ddd9d320f9dea2333626c80bd1963fb726f77038..e1cb184a79c41bc605c32bdce52bfbcf245ce02a 100644 GIT binary patch delta 187 zcmV;s07U<{0@neMB!8YsL_t(|obB4N4Z<)G1yF-ngbi3ALxgcsuowk}$00jFMUxWW zMLFrc0lqBzcmAyb0000{?(_UPV%F93Gx97D) zW{Ru^WM!u`;IS;>2hGTAE$ISYy_d)Y000000HB(Y{Xp72U^Gu7`+@L%z@8$0i_15l p%x)lq2DI_rK=})>8vp>{KVOAWEDy%&U1k6P002ovPDHLkV1oSMQ)B=D delta 284 zcmV+%0ptGH0k;B>B!B)%L_t(|obB2%3IZ_@K+(zS5$tU&1-IJL188AwYbEgjf(P*= zdJ79rB7(4$FtVOtC1c32|G~CdGMOYW836zQ001COj8UyZsH(lbRF&nLw{2@VTo%Fd zC-Y-#u)bGkeOI`QyK zPXC-t1Ms-1Y*wq{C;d0GU8R#Im|TUqwm`9|>hc!wXz&3500000000KYv?}~dnL4$a zYi007QP%;m=tpoJ0E>PE*Jpr5KZ5HFD6Su&?}Mhrqox@3Be=f>Qu`5H2cWoqgxp)e ivL68e004s`A{8IGP~iJo-Tf*60000@0{lu2Lqd!C(ZW}ctcKkszV^kvN1&kp`NEO1E6)9_eu;lTLx!c>*gbQXrziVGNdGghm1IouXnFPpIoZ N-_zC4Wt~$(69Cc*TqOVi delta 235 zcmey&*v>RTrT(0!i(^Q|oVT|OxeghK9Q%0vmhz6>J8rLB%)X*|^Xkb<%wIU#G<1t! zh%WiS73a|6q-OX?Z_>6YlcxXA=Tq5JlX6m>0R;Y}_Y~f8n^G2;vsU)Kitx#rZFlb& zmD}%MI&tzY#tPL3lh&u)l}p+9T13KjAE!Y0?nf5gpLusYTc2_yA zdUrAWm@VEJ{qAxH#8{Bgi^Qwa6F!vZznIIozV3j2loj({VTW`F&-4Y~zh=JV;W?#0 im(hwDsE}iFM-9Wl-L~6zy0`U%bb7k_xvX4nJ@ErkR#;MwT(hLl& z?4B-;Ar*7p&fS}LIY6SV_sFfK_6n&BSdTDFW#GKAXv2mnOw2ktdwKO5t6v;B#^lW^ z%pGd(z_er=GgDNX*M<4gD*{ebCuR_x<}BlEU+^X8%nd1MBjm{0dx*|8n+6GHly! z*0ex?!?yIDO;JjRqXG&br!YtGroLX{d{Rq z|NUe0B^jn~y1mx=;bT%X+q8E01BhuiY1BP%rl^ynOWbRr86n+xnV+ zOU_dYR;a74zt3ZE+wy(MIqA8Yi@&qWwC}yU_fY@Q{MYX}8>%0C>wo|8FSq>l#lNRp zH}5hNeSiDk7WuU~ZWp(|{`}F-{DFyi-quIAFB@O}m-hSl`nh+)m;QMBx7CiL=#tHz zJDztKf2_Uzp8cVH>#f_dy{8H+F7}mO<7@hvE~d8lyZ?Tc&*7DSY#9q)e#n=$F`pmv z>i4p#OYgCVqI0r$(N-E1WGf4$syczNN4pX(>oZ?2cx z@@4t_%4`3$`sx!H>g;z+|9|vI_tYgi-A3$v;P9^3J5^O`sg=qnw|}mEIh)4pTZN7H zkDXUdd?dh7h!O9K4Cumj42AZ886MUBVm$Kq3vWkzV>P!FK`p%rvs~BSMps`=sl5J&OLt^rVH|!iQ&r3Il*)#mxh++thobrWv4#WS4 zF1vra^2J13&w(q+=^v-X4qh65gp?}`|HM_^UVE&u@0=wobbWeVx5A+M$#O;1} zvugLuXLR~1ta4o7(0p^Y$#o4sB&TomyPH${r|6qh<>tDEIfgU738(Zl)-n9~!u&x0 zJt)qI4sLf~Tz;DPlD#1(Q`f}%pth@XSSA$R2F>F}8?Jq+D^YoTZU@?Rm+UMj0^L`eYx;{Ms QEGHQ}UHx3vIVCg!04W4|3jhEB literal 536 zcmV+z0_XjSP)Px$(n&-?R9J=WR=rOGF&uqYhzcwOS#DyGgaL5i%Y@zK28oM_D}$qn6N`(6zraD` zVjPW&VPSDq5(z;J#KZ_L4wZmNBoZZrI^gl)SFQyyQQp#P@7MQxef{0Fz!+ov1vs5f zCOVf4LxA7!7oIy50Y;;7^a6Tquh;9s0`wx2ToJ;2ML&wBOJ;USKnt)2Bvwu`iIqBML0Dyi-ktI5??6gsVe3|^+c z*CSzj#6yOmd|gMQ(Ez0slu|rRlrT9h;rR}zoU;wByqX=z&Q$yQ7K;T2g8{W#O)JHx z5c&@Qz~XTf2h9vj0H!V~D6VY+;4ebW0%i*Z$sQ)m5hS?TZ;vHS#r8uGu)f6+&Lwe$ zTYTNm`)Gb0)|ZnHF+b+Odnk$m_pQ6rKTPci@eFhth7_f*t)v+D76=RQxZQ}w;|M7V zV)3{rjkthxHrq+AIxtcJUpY|C@g0cV0!oQ?f?so>_dHNnK1dC4-(c)v!oIUv}f9BYyx1a7bBm000ie000ie0hKEb8vpVQ!P zkmUd`?}-1~wyt0tFb6z*aE*alU}#3cpmTs_jNN|_eSFCwlG6pr4p5CZ`Ok3X7u-@1 zaBxwFG5?e52$CECvedy*onhYgtqguH=5TReV_h(PV9!kkQhxziQIOQ-jl$o2_A&#x zfFuXlc(XG2>geK>|HFO{m=0*@fFoOfGd#Su9jE-``@b1T1w=dGu$}Jz*mGYQWEHs? zo;`G8Fi-G+%bi@XgF#AuAH#E?Jk1<%@;(y-122UA^3G+Tr3g6?UrL^VEI_maN*-Ti zRM0X8XT6X#c7Gsw3nA&m&T#iGjU502l1AKM`tIE)IOR#LCWcN?tgWs0ADj63N3R(S z)B&Ro Z001=ZcCSkjr3wH5002ovPDHLkV1lbQyT$+j delta 343 zcmV-d0jU1S1MvcoBYy!nNkl1t&6U1T%w^Az9NvM+rp@NfxE)K5J zC5w}P!AblFE{+BNKnI85;G_=XAR=xRTExvEjcG`{I|rvq1@8!oa_{&Z-+K@5-F*jE zR#tyeK@g~-yxgLUepJfo zp=#c^(I96w_q740bO8WV&Es`HAFGuPJm|rR>#DYt--a*(a0dCuhM#KS^Pu!bgb_e{ zXKP};+X*>TO6v%Wo?#NFbUPt&ln_S=XXn=>aZ0qHKOl_~kW#X~y#~P5%{@u~g$wQ| z_Z^0sUPcLwrcfhpk52(;H5<&#&(Uf&j1n*c@JA(oG&CqGDt30x(Kj#yDld#U_76z$l?3?( z|3?N4t_SX%0LpL{ctjR6Fx2xM0jfH}I8~cZ8YsHZ)5S5w!hi3CgF=TCcwC%?S{MEK z|9;oP>W07<2QQX4=G@l_$Q1wMG~vkEle-rbfBD`vql{NAZCR3x_2LA*ck3Q4Hst1P zTGHzvcIfQ;BQseRPbfU`h z@<`CMad|8t@w)AYp7+C(Y!yCDne}FGSbEd-^ecb*{LwtL(U^1okFboltSjehm$L5+ RT@Q3EgQu&X%Q~loCII{0gVO*2 delta 274 zcmV+t0qy?W0-^$t8Gi-<0047(dh`GQ0O?6YK~#90?UXT&!axi~|E#!xPccm*QTiC0 zBWxPZFx854P;dnbE`daW6qFNew}mAd%D)973LWu86zn`{3Xk;duNm7wp-`BC7$d#f zk2#GL1OLZBjFCBwH)fF|R#gIkna$zl`Jz06whzPM5xkq3N`IIt=(d4XO{`C!!`=6C zhjSNDe{pg?_ZM93>Xqi9s_eFbs>;6aIgUN~++&zhLff`TDS1=)P*vLg@dfU&C!eba zetvJG*EG!#d&$~_B9bHb8Q822sA@t)U}g{zR5h_#9kR_l#oUX?ZDKrrFD+gu6yA*8o|0J>k`J4qFk;M!Qe1}1p@p%4< z6rf;=r;B4qgnP0C>*55Fo~A$pF1LdY%x)UKLMQD0zuMo;CO(Cou{y6Nc}A9o+onpN zfLSUZwmlcP;grH7q|81+lBXCP)ttWfmlPw3cYyTs=Zqe*(%_W;u6#3tiv|~p{GJ=%7=$`~8At_WrGd9ShZy#h z*kOnXkzp2D4u5!lYZC)Q52l!^GMyYy7z9jc3=>cVb%5o;MH)Nc{DWrWtatM&q`=P1>s0{|( Z0RZRCzZ#?z%#r{A002ovPDHLkV1gl*$^ZZW delta 272 zcmV+r0q_3(1FHg%B!BWrL_t(|ob8k`4#F@DMSp<{_yEjV=7DA zt~~$}8>klmF~E?G1%w$;t9EOhiUIPZ3_p^cpTss02m}Ve7$e%)(U3-hf&VdJj1iy0 zYclZ(W@Z5Z=iCrpx*sZgh|8mT$sSUf=}Xi%;E+Xfnols_ynpJwVm-pNcp_d(?|iB+ zSX>{t+{Z0_?0**>%q)j25@wdNETyS6`P6M_twoxqu-0l*=wN1XdHV$_t;wgVf%EOt zdP$PhT8q~tBqE=1oq_FYhgmEjA~@$jM3}{b?P}+3rV~RCBDINT`+fEBKp^mQyaC~7 Wcnq&YI#>Vz00{s|MNUMnLSTX_8hg+H diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer-on.png new file mode 100644 index 0000000000000000000000000000000000000000..987e571b263f8b1a1c863755865ddbb5f496cfbb GIT binary patch literal 537 zcmV+!0_OdRP)5+Iv#X1vlY<|@&)`S! zGYHPzoE%+>n}Z;fT1C;N2el0}Q3@%fXY$I0APU|k*E4W`NZ;KBdcT*;y(IqvD3%7$ z09*j=_8uLNr{FkGh7tf7(g67axH=ue-OUh=FBAd%B(^h{cy~x@fKquqZYM#c034n* z!`~*@_LQ=*muC{67pV_i0Lg5>E6RS~-bS#l^YCYo)Jw2y)}gm}$9BUqfcO-6lp26d zE~-rHK!^0@-UBj}Ux4JEuhlAe0JNyoLUiOf81H8Rbi#?)wrhBwI8I;JEOWTu=I|@du*GPpnNi_usHzD~4BO&i5aw0HVyJ$)hMLVSqVZIw3v{;<1(c z0}KK|7GhT+UzLz4$~^gX)U0nnsag(OTU2Tx`qdwBKX9B-6A17rpG%+&K>GvQACMsp bpd8=}cvi=k6xZ2A00000NkvXXu0mjfjHTr1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Devices/jammer.rsi/jammer.png b/Resources/Textures/Objects/Devices/jammer.rsi/jammer.png index 6de27ba924f109e4b6bcf08e517a0ec822575e90..99e0246bfb1acdddf9df6c748233bfd2b808c0bf 100644 GIT binary patch delta 282 zcmV+#0pZEqh?^5kDm)JkL(bdIKZbv8c0e*E&70ADXG3E*#XGDMF-^g zo@57L13FA%3|IcWB3nPj4xq$xsyF}{*b8g^2hj)LUMD&&P=D0{QtXTj&wl%mgsHgxK?*fX^v>*z4`xZ=J{Pve&InW|loJ)QB0v3P9z|3%vfiy65qhLTBuufPQ zOn+ke#vuGt?f(^qzhM4LJ^?UI^SS^TfD#=w07(w`^zj>*Cb!(D*a0_goFcilqpAaF g0Y)7#;0^!)$P*M&!Hni>ga7~l07*qoM6N<$g7i9kt^fc4 delta 449 zcmV;y0Y3i80`CKmIDY}5Nkl6vkf-K{idOLjAg~(YO|O zcmb~<8!d*Vn=aY8GU*vum9SPC5@~{93W-+UglPr?GBs@oreD&`zjnUgn|U*7%rFet zq++mPMF0^%1hBmT2i~0_G^}6tLtX8YJSS}k21OUx%o_|gup98q6R$Z;p@QkQA zt*?Xd4Sh#@!^&v8Jj2NQi*FDe4PR` z-AkoN-5v~9zK7Y5iMTESeF0#WtBOMQ{G?ETR;x8z6-~Ify!N7Ik0L_QzCZv_G~v3P zj@L(*e;GtzHzAGweLRM2Ham}AUpYCCu`d7=8$C_LAUebaAPC$6g#&P}Y2*lsqDb1! rW-~A%U-tlnpzZx3i2x#ie*^Fhk4m}f98Gi-<0047(dh`GQ010qNS#tmY4#WTe4#WYKD-Ig~00DYQL_t(| zoMT}aU@+={Q3sIa059)||J$~%U>q<9JbZACfm&c_M!}$SfMtx`e-M3q$sv-{1<4Lj zjW_wvaOM}>QV?)(QHL@Alj;bP900P^!BL%I-uA5welF&4aerT9T`+xM&rJqW0a;Oy z)a8xB-+cBm1G#`C2iSPCGWhD~;*|fxeh-)qXy||=TYob=ytW;u{Nww-8At_0JK(UL z?*G_xUm0W-xfz~4bYd`1@PNymT(E;dN`4>1bD%uU9B}eJ69WS;g#Gf)WuT=9IS^k; zo`Ebtv;#^WUw>p&&@u*Ry^u6^AbATR>BP=(_b!bc00NRm++h0d-6uHZNv$S^PEo9_ zt@j_B`1wb#84Tq_Y43nHuir56F$jR!W(%G%oJx=aTmEVLGluh?3}ickXa~G}^^8%8 zK?NKN`m(CI{*Path7KUt j5~@0Y+F;ZHqYeN7H12kO>_%)r2R z7=#&*=dVZs3YL1hIEGmGU!CAx&)1;928{u)8H0aHR=D5Vkpy%BgQu&X%Q~k7#wGyW CcVF!Q diff --git a/Resources/Textures/Objects/Devices/station_beacon.rsi/blink.png b/Resources/Textures/Objects/Devices/station_beacon.rsi/blink.png index 53fabd17147d2c566dd0d0980241aeb7f1d65d4e..cd94b9738a05ffbf12b4527479336fabaf91a047 100644 GIT binary patch literal 447 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDb50q$YKTtz9S&aI8~cZnt_3_ z(9^{+q+-t78}{CZ69m{kXmivtI38RXG^gp2f}WH5NB+Ad#Vck%Ps(Ea{at7j^j|V_vPv8cl7foDVn=TiUVzBXyAHK zl&BT6>h3cm<|)y+uZ#ab*DaXy(%_$c1@ErxefN#_@g8Hy4AGhP>zd8?IaS%mIFt{# zB&zNDbZ-0Ct6O{bojLs1H_0XG!1Jl=1wOMr{oL9pnYQSu>&X(K_bpeA3yzvz(t5o; z;rHF;H}{@=SNQlvUtjy&FN~YM&XacWw+)UIyY~3KeSPYTV1^T`)uQ)rj{a$=E_rel z^O9MmVJ9OP=f%$}+RK(WX^z!_ZH-nAyFo67fDneauMeM{`19{(ABIbF?!CJDVtS51 zJ)6hnQ`cg?KDcr^jeUvV9rxG8hVlkXJ-vPWe>6JJv#TV3dYfP&ukqJPUchI{!5Rfw mhG)z(_-~j5uxEfn;{bbL<^G@f$87F_Z1HsUb6Mw<&;$VXyS-!p literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjEnx?oJHr&dIz4vh_V(978f1 z-%eSWci2Fn?Z4k_lQf|O))t8tiJ!LH)FswhZ7`RZVG`H-zV^_z1rr!9vs~$VBIL~P zvodUgPT1ShRqvcTOLx7mDd%($U~vSYBdQPnrpXG`i|%e%{(Nfx++xl9)4#u8=-c5n z?|FJQ14B(+PV=AZ3z;;ZE?JN{D>P%@jeom;=LYOsz~-U3H|W)iH{a6!f4<6pSRmxU z&cBZT8J^29ELfMFv6hjccK_kWzZh%xHy888URS-{B=XNy+F;$?2!>>yYqxIRm@(hk z>;HOQ0jG+kB0Yu~x65p-yDBSdt!>0z8+A@UnDaU6_2k(TZtc%t?lIhOt*N+g)he~e z7SAV7wrrj9&sA8+se(b{bWzv=32PtCV_*Isk`H+jaYDvW|KI&TFrR&7-DtCOrf8kX RKVUdAc)I$ztaD0e0st59p{oD@ diff --git a/Resources/Textures/Objects/Devices/station_beacon.rsi/icon.png b/Resources/Textures/Objects/Devices/station_beacon.rsi/icon.png index 67f3f53eb5010a9b612cd02ec21f1d09fb71a651..15c1e94221d6ad947744547dfc7b4a8634b81917 100644 GIT binary patch delta 257 zcmZ3-G>K_~WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hWfKQ0) zP8VHqF)3|rz0Ax?MP-A|&N*J*5pVYd0p(5Ztpxz|{T;`{9({iY5uxk4q!ywY7;7H|gb?uFFJ@!En+a diff --git a/Resources/Textures/Objects/Devices/station_beacon.rsi/meta.json b/Resources/Textures/Objects/Devices/station_beacon.rsi/meta.json index 771ce4c261a..96aaf12a24a 100644 --- a/Resources/Textures/Objects/Devices/station_beacon.rsi/meta.json +++ b/Resources/Textures/Objects/Devices/station_beacon.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC0-1.0", - "copyright": "Created by EmoGarbage404 (github) for SS14, based on beacon design from /tg/", + "copyright": "Created by EmoGarbage404 (github) for SS14, based on beacon design from /tg/ // Icon/Blink Taken from Paradise at https://github.com/Henri215/Paradise/blob/27087670280de99e2fceb47194aad29a7b99b280/icons/obj/radio.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/crowbar.rsi/icon.png b/Resources/Textures/Objects/Tools/crowbar.rsi/icon.png index a8c6cb3f8da55d48bca152d2e4851161987be7e3..436a75975b342462fdf8cad0071754919d2338ac 100644 GIT binary patch delta 356 zcmV-q0h|7=0rLWo7=H)`0001UdV2H#000SaNLh0L01m_e01m_fl`9S#0003cNkll{#&5lX!-nn|g9 zhv#!v(AOGG7z7F90u1grCDQBmX~$%sdnAxBDj>seublQUwmTi#m8%uu8Dj$cYiDq_ z%A)P~um^N8BA{EjyxAbz-G;~_u?1eOoX^-D(*ANj2}d)Q01ux{rcdE~XY3e;g}+NA z0aNfu0w&=f3tgCoen;h-1sVbgC1MVN2M)YY zX;{?Y=pq=($gDhz$wWIq)|5kpW0AH%prdhPpg`zBaRo+(5;2aK5iBuElru`WV*><}y)L~30k z4<#P@G3^_7WcEk7>KldF?`4<=%jYw@GxIh9D^4sB3;b_^2-kES z(wP*WzrGBh+kIfRb?1>#A|S)JvzbZ#sBnUVM}l0SlH6jC4%{&EaB*JeH6epFHxmg` z0fg`6lCbW=ombB5I2KDKUfVxB@H|5%AmFLZGz`lX_#TbGW^a6zySl+}4}^t8K)`o& z4Qh>BFdg`{3xAjM^xOx($if2h%Kw62nN7g&{`L9cIhqRz$naLD_bXi9^<>8|Dtubz z5}<<5B|r(ES%4ZolYk0%WC2z1NCGP10Reyi#$aQ4cN)n?^^6=I5Wr|sClg())4t(% zJ2gC1;NG(MD7qHHv76Zn-~j>rWx~!i78%z#+;@E{6Dh#BFy@;pOXw+34V@~m%)|mK a7x)1^VdyatfcNqM0000lQ)B~wG&!lQ;BpBG j5H&F1TBIeR!oaZTJ&*r8>HKp*s~9|8{an^LB{Ts5G#oeh diff --git a/Resources/Textures/Objects/Tools/drill.rsi/drill_bolt.png b/Resources/Textures/Objects/Tools/drill.rsi/drill_bolt.png index 6fb3b4ab8e659efb01b14ea9eeced1fc55ef8f2c..d7e908fa9c611ea973be719440c86db90fe95254 100644 GIT binary patch delta 678 zcmV;X0$Kg`2EGN5B!3BTNLh0L01m_e01m_fl`9S#0007TNkl)_bF+d?TN9| zXCVqj7NK~!dG(LJ``Kvk8X=?s_?Sh6RES6}L^dv$QJ@>J_~gUkF+>cALVP1Xp$m~b zwg6d3vFf)?)AZ8mG=@h_w*K^tfB$G>>CrS>F1oZ)9)DIAAj5TCRt}Hq+ejp!*=(jV znT+?@c}I@m6|A7dyii>1cme*hMR_4{G^8SEdEV;2MdPAx;h4se0!XA(^uoWF4}_t- zJj>i)SnoYYD<6n5NHLZ3kAbym68B%nufaTtn81zs4C{B;95*~4NJ=WAxVTO3fo)Q= zS^Lhk|9?edm3upfA!lo9<69D6YO4JR`bL|w@Yp#T5? M07*qoM6N<$f`msr{Qv*} delta 863 zcmV-l1EBoA1@;DzB!2;OQb$4nuFf3k0009pNklInD(2OxQ zts!k}GcG1G$z&$U#4L2-x4Gw@Iro0woO|vA{^LLXGK5Bg`+xiU)zdp3HB55+%5qg6 zj}ube_WS)D9r9X(@>4bE2oY1OiSU#Y0LZc|loR{?ek4gE9*+a?>-(L0nk_hTR3L=g zR)hy&aB#5Pr|Q0NI7~DerK_upa5xM=!LR8Zy57g=#R*eeiP1|Fph8}7b2zYUE5ZXH zNs{3R1Oj9-8Gj^6LQxa|W@cs#yYRD=Fx@Wqm7_3U@-O1zVAnFCVY3KNDwSe#a?&&~ zm&-9eHin`oh@!~1A~`@|4vSrwgOPJjtpdtoQ*)5Xx=FoRHpO@VlF6juh(scQw)W|C z8i3y3USe=qX&srY=8FX-YBqcvxKX?g{8$$#;mT~dS*Yw zdGuHtT5U_#6%ZPBs|Wga*?w~^CCTT$*iNce*bnb6HGUM|I^kA#?s3t+23EJisuozt z*WKDC6jXui0%WrA^11ags#^nDMWuBCR;5WT~U1=C8HLw5x002ovPDHLkV1kCMo$vqv diff --git a/Resources/Textures/Objects/Tools/drill.rsi/drill_screw.png b/Resources/Textures/Objects/Tools/drill.rsi/drill_screw.png index c51ae6332b212cb66cd2b9d58ffe841152d0d747..0951ee8d9b7a5d07f776e4d62489a86da62cd2a9 100644 GIT binary patch delta 667 zcmV;M0%ZO72D1f_B!3BTNLh0L01m_e01m_fl`9S#0007INklTD1rg8#IW}-YVV{Jb3ojv!@(9dhnEUZ=O9wkY1J*3Z;}D6dNfNwM|$B z8%b1huq*`H?aZvZZno=YXEsF&ez2Lp&3xayH*ep&k6Xr_0DoZtV-wTn>TFq>aAr9l z6BfWo?fzssg`w0(De`-5T~JqGxXg z`HsN{(gKb?yoL6@=8PQyWMI@}g!_jD=*4}I{%5>@T0Z0J?DTej#8efI3v4R{fe?lMmYr56I_fOIM0nP@pzfYW*1CRd%_iZCH+$oM z&AmBN~ID@BogL{{+Wj0bF3oA zt&m;3vH~o(1z90-He@1L`-H%R1e%tP^V?c11DYuXt?>WV1Ab6f#<=-2n~mR*st1BL zWEe_WVLk5;PX0v#}Kav!jQU=T|A)Qfdksp_;_yEdKegaT$uzu zf-iK|z>m7sBp$_1!1wsi}dNtxp?k3$`&p{SKE@&31uz>R)HU40? zIix}YHi|8HSM9qhI-1uos%^ax>0(fl z;B6z_h^Vzgu~6D7-l4V@Z@6^bT@_tO1^o$L7a~O(NUY$-Si2~c3L;`9A-eEJg7z3= zZ5!IgHsfMC(`06nOw2+TzMFH-%zM7?nKS1G|Mg#gSyDOXj(?60_4JNMWhXg)d9h%g zDkn+xx}qo??eE6p0XI0PzWBsYiK7i}S2dh(v09$H&l z@pwEmG&JDz`F{{XAcSCabkwM4XH>E?8icttD?6=uv(qZ`lP(T6La@)BXRZQBCXDB;PFNd8z?y~^gKOSacQmg-%hJQDaEawCHzo6jqXl`y+0TPJ> zot>Qw4{I}h@Z_r;R87?@wem}9`PqiLrM9Gf{kzYqC3#T*I}m^y`#)Md+qY=tJ@q<) zKmdSLDrI=zC$UWq4)%ei-(!HhPijG@c5BJbcwP{Fr+K6PsFB?3^%~wn$sGZhK}MF^ z9SdVBz<<^)%bsvT?}wy4(GPb(?*#eu7{xOn!*dbY)}7evU3A=6?euS4|rw)@}CT@>H`h|H+8znqAN2 zhd7TOYh4R1$&vuUKDTdrkbJZoTe4Xmn$ zxlGBWou{lSk)DH}X?XeEdKi_Q18JdBGY2bbAX8RqT`Kc)ke;@GTNI%GYZGhJYmHf5 zUs+%OM+kvI?SQJStz~&LcK`qoi^UK^Fm&m4-gAA~IhB4undNvHS~nYE>nm4|?gRQ= qpb~k#UgJb93qXgc6u>U|KcU}Fxn=bu4hl8^0000{|4DTONe+1a>N!JKhO*_DAplC8AbFZPVBI}thKgyy3>%CfsU8Mkxgul!D%v_gKuD6o z%wrY9zR3b$OOXLc93;vs4?tfV3_}bwhp-P@F&BR{d@(jyho2IRF5fzm3J^`Cjn= O00000fhe31FHj&Ie%SAL_t(|oMT}aU@+={Q3s4VVCXu)+(`F7jD7OlWk$L>0A#tc zf((PQqAbJR`;S3F|H*X($qv|9!}s4SR*AtT@*czi51ud_S+2yeZSlkZ{w<$Kb_7Wd zfLQJbwj2a@?LQ8tLHr}j9T_$<>?hd~B!>Xl=fL2{CSK*mKz}kAdbwb6?G1+5X6)kE z&vMe%0igH=rGrB=o-i=++rh>EeLTdlV-qI>%@ZLEfGlsCB@WJlpqx;b26D`Pa*QHB z4Ztjilml$!8biJVV3vbu28NgPb-;opTN$oh_{Y$m!^}`Qb|fr6=?E{-7{-fw#y`4|*Aa+tdp{jdMj^@T}ox8Y6Y;*Gw?ntnQRo?FV$JhO!> zbFJsE!{y8!9vT2 delta 211 zcmZo+dcrtCvYw5BfuXvubRCdlOY(MiVfYV%3-&Ib3>4uk@Q5sCVBk9f!i-b3`J{n@ z>?NMQuI$e^S%i!%Lb7dM0EG%YT^vI)?!CS4%hjMD(DqQUN$-Iqlk)p|fyF0`cknB2 zsI}*A*XZ~jS!W>6yh~D$;lOd9w+=5;cIf(a8(sTmdg|z5*Jq}#t5~01n`bnA@}6xC zr%!&aW(1ndus_kndGhwBGrlUW+!gZt=cYUxSq6p!$z`2|0#Z`ZHy?u3c)I$ztaD0e F0szMUPVoQ$ diff --git a/Resources/Textures/Objects/Tools/geiger.rsi/geiger_on_high.png b/Resources/Textures/Objects/Tools/geiger.rsi/geiger_on_high.png index 15edc91e52938302e7edd8e02013a69dd0304f09..7b160b48d7b2c8cc6397a18f7b7ac306120d6d78 100644 GIT binary patch delta 201 zcmdnMc#Cm@WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx}0fKQ04 zJEPDBA4rj@Q5r1N*@7X#;MwT(m+9H zPZ!4!3;(xg9Jv@2I9vkV_x_*hJlCmL(6#!$TI>8r{K8YtJ20hZt#%0A`1j%LBMdiG rH|$Bc<8}TsQ~Ile2U${^9_(Y#pTWP@hJh;c#Cm@WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx}0fKQ04 zRHRA5{=|hZW=q$a0L2y_<+%r>SWANZg8u^n!|!c;!9W4d0*}aI1_r((Aj~*bn@<`j z=~ t8>$=jB;4^j|CuTM)xm=-sZ9^|G3d|WUu(m_6$>wzucY)XHkaDv_x3l~-)9aVawq}%IV9;TYP-H!5vESq{&?E*=S3j3^P6#WLC0c}brt@5zopr0P09Y!~g&Q delta 159 zcmcb`xPftkWIY=L14D6D)fXVemgMd3!tfsi7wla=87RV8;1OBOz`%C|gc+x5^GO2* z*-JcqUD=;;vIwaPbp;o$01DZ9x;TbJ98OM*M66Z9+7 zHcnXl@|bs`&Z2zx#l>I+Ty6(7fT|@LbQlgTe~DWM4fY=JY) diff --git a/Resources/Textures/Objects/Tools/geiger.rsi/meta.json b/Resources/Textures/Objects/Tools/geiger.rsi/meta.json index 10968b47768..11fbd436814 100644 --- a/Resources/Textures/Objects/Tools/geiger.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/geiger.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8", + "copyright": "Taken from Paradise https://github.com/ParadiseSS13/Paradise", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/hand_labeler.rsi/hand_labeler.png b/Resources/Textures/Objects/Tools/hand_labeler.rsi/hand_labeler.png index 9938103840821ec610fa3ff217b4c8a3965985b5..77fbcef30da736b4008b8a3c372a3bc43424dda2 100644 GIT binary patch delta 465 zcmV;?0WSWL0^b9W7=H)`0001UdV2H#000SaNLh0L01m_e01m_fl`9S#0004zNklemU<3GDd$a17H9QfPVo<4NzIH`SS1PK|S+p z05HGt8cI(GA~67)JI+#|@4AgZDp4?r0bo8cIi>W`!?p58o!+l6BNItI1Fn0n0I;&9 zc>xh71%Tt*sqE5rb8}E%I;UjiSHvEyd#@fnKRt>km36gO(|UlB34nZV?TE77VYT{w z2@T0M^3ds*gcK z#QB+7>U8hL;OUBwObYLBY7ytuc0MhCc1U29O3BXS800000NkvXX Hu0mjfc3aR= delta 257 zcmV+c0sj8q1Caud7=Hu<0001iRA0W=jG90004WQchC>1bUyXb7osrRTWf8T3TAh z%$aRnU0rPu+4l1C&c#Y*vu4ej1`z diff --git a/Resources/Textures/Objects/Tools/hand_labeler.rsi/meta.json b/Resources/Textures/Objects/Tools/hand_labeler.rsi/meta.json index 216140cec3c..3c793a97322 100644 --- a/Resources/Textures/Objects/Tools/hand_labeler.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/hand_labeler.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation at commit 44636483b7b2868b3e42c92205539f11f6d7968f. Inhand sprites by Macoron.", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/. Inhand sprites by Macoron.", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/multitool.rsi/green-unlit.png b/Resources/Textures/Objects/Tools/multitool.rsi/green-unlit.png index fccc17e9193e7371d0b0630e1eb19d25699ad886..d0bac8b61eb217c36e109147a9aef63d1eee1b10 100644 GIT binary patch delta 147 zcmb>4z&Jsrp0PN{-HBn{IhmIX3=Aykj=qiz3>*8o|0J>k`J4qFk;M!Qe1}1p@p%4< z6riB1r;B4qgnP0C>*55Fo~A&9M~uo-)Fe;LH~OJp_1SXD@dF>CVkbRZc$0O~+2p26 r%xr9T7@;b;+zx6;url*VNHBa4V`uyJHVQ!P zknI2k6Nmr)-u?^|8w(lp>-+z2+`5tB!I=Y$baMa*IM|poYy>(4OamQ24j|b9AfLn7 zGv+Knp+R!L?!04o_TduIAwiM@Ko<13w=oQ1VBm+atXRtgeU}zRZprF2sL!2%S zaIdFoI+uEIRNu9ENg<~)QlJyQVO2Y#sQ#22C@ufvA`rThFdnDfl(0*wj2a(qCPSl zS;kL_k>r&FAaLg7KA?^AU_K~Hl6wAuEx&c{GwmGEw|x5=u!7P04+?6Pr8;nNP@+7t zi~($U*P_o1`)=K(O>GDQ>)wkoTwSP!QXzpVDFomq$vm>MVMa;N@Ij92f!S`KqW9VE2B{dj5>gt002SGvy^e9L(~8O002ovPDHLk FV1oM6-}(Rm delta 333 zcmV-T0kZy_1m^;fBYy!dNkl9ReWB7cQ1V z2*l1|m^ej{VaE>A%pp4wQVUR&1_ZBsq1YK@Ibh?)_Y4!K++kqIQGttr_#knbJ3wB3 zCL<^z-napE1QdYy_wV0iaBw)l$iP5{f{0pxYzJs)K(b>*8o|0J>k`J4qFk;M!Qd`Cc-ajG_- zG*HmR)5S3)!aZ4nb#a17Pg9`5BSz&ZYLa^Kfnzk|bp- tk^2+Y$^CLy&Hg}(43Bp`BuUb*fDJgg0_WdhT?zmI002ovPDHLkV1lX&C6oXF diff --git a/Resources/Textures/Objects/Tools/multitool.rsi/yellow-unlit.png b/Resources/Textures/Objects/Tools/multitool.rsi/yellow-unlit.png index f890dbd413ae102ef91ec7bd277c61418e501d93..911fad308880b654934332ff45ebbcf8b58f6059 100644 GIT binary patch delta 145 zcmb*8o|0J>k`J4qFk;M!Qd`Cc-ajG_- zG*Hml)5S3)!u{BlG!?8#U|^qcponco-h=&1UtS7fXn4z?$ xv&{X75ht6?t6i=713feBzTPzf004iIv;nEo2J8>CYB~S_002ovPDHLkV1gJ+CH4RS diff --git a/Resources/Textures/Objects/Tools/rcd.rsi/icon.png b/Resources/Textures/Objects/Tools/rcd.rsi/icon.png index cb62979010f4ddc12341edfdbc08a6cd69426857..3913af251881e2963334cf77daeb8f931c9ab74e 100644 GIT binary patch delta 835 zcmV-J1HAnH1lb0VBYyx1a7bBm000ie000ie0hKEb8vp^i_2mJfr(;6A1|>z^dX3m50yQvLg7P@y-9%zefhAF1R)VdzC?^5 zSRh!stPCt@D4R(_pc$J{!ZO`+W@mIAcXza~9`?X;@7%q2&VTRz&$;K$Cj4Vd1Ec}c z00{w_j+UrW#TM>&j+SwIsdN~}ZUk)`0zl3^XHIj!p|YCW(wsuP2GqX^ku(I~KgirF zW4pO^9FQ5RX<*S%CzYjwH37H}N~+fTl5i0@cY5sDv0q9FkV>&t6(}kyKyxopH89Q3 zli9V*2qXOb09N)%R;>qj+ z9Iy6cWJF}l*Ln`yatK`wxxE{eCqiiJvj9LzNI4LWJ?kKbLINVXph+JL3?UqrV)KSj zSFT{PBMa~q8}plcbNC%?jj)yjG!sct0;o!pX~9D=)f;v|&g?8z=fGc(cB1zTX> zX4U&xQ-3UbXD*D*Oem|q(*$78G*8Of8{$0BjhvH_yp&|_!mUDHg?AYKGz+^c50M|* zX2>}~h{LM}-^-2e4&;k4ycrx8@=kHgDdTaaTW#wL*}M=^iv>lFr9@6< zmMQqqbFmVW_WKKIi?wf4N1A*dyzaOg!xWC^Q4 z-r!eh$^Q;CFy}~9;1^$O1KkLJTj@G$8ljQ6oo${78KPehM{Q?n4v8l3~IZQVyS|O zOe`f+7Pk5iutfX@vmhjtF$*lsT5uay7lDV!K>`m{S-_DTMU`00@Ng2>aS~7 z=RPOz%elvnCCjpyr!LHO_XWTLU;zMJOj`&}^e{R;Q>p-5@_)<7TbA@+08T!^<6T(W zfNt(S084E+IM%~iLZku!w7!YjJNp7a#)IOHfRLs{SlS#9n*cBjBLsM~J^qW=t_pW1 zsov1TaS$UN&@>JEhYIci0C`pPduoGLv+&!6fkTm2uZep6QPiC~@USo*B5@U%rYSj& zgXej?wl!=QPJiDQ`s+Ql(Lc7``0Mi!(33p@;x+|D_roC66CE&3Ge&Dw^$-f=?~2X4 zxl2wH!fFKCaG%XSCnE>cz zOR610WnVviOaMU;jOZ@QHjT^!83fy{-4Czb({zh|uBwGM10Ok(x3+A2KBmwPTod5s;07*qoM6N<$f>`(+ A5dZ)H diff --git a/Resources/Textures/Objects/Tools/screwdriver.rsi/meta.json b/Resources/Textures/Objects/Tools/screwdriver.rsi/meta.json index 17ec25991ac..47fc7c177ee 100644 --- a/Resources/Textures/Objects/Tools/screwdriver.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/screwdriver.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/1cdfb0230cc96d0ba751fa002d04f8aa2f25ad7d", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver-map.png b/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver-map.png index 2bede8bc3b0708beedbacbd88aa4a50e20c463aa..86ac05b87ed63916f9001d1d8653a3dd60ab51ee 100644 GIT binary patch delta 283 zcmZo;+Qu|NrJl3EBeIx*f$smm{q4U4bWFDzvA+^c ztoZqhcg8WMf6CTOM;Ytw?b$9X#OGGFO0wR!-{TN?oF{~xsbAi{VRhx6PmIiV1<$XQ z-ckJU_nMQN-`0wP0=s`bnHS>O40l)w@CJA1X=pMib0xIhKe+0TRoK=k4F{+5y2~Pb d^o5NAIEMm%7|7681arT;-RBP%yt?Emkt zC~BCwL>WFDEMr7g|M_$`R`c)y7HpR1xIl!>jCA1Qr_P;)v*$exMR6#XW+cPU#|OxY zObi$ESvCA;lQ4luvT(u0|Nr@h(-3AJDTcpao-zD-afZQ?_hUF*Tv%8bMV*+K7=xsw zBtv<5Iow{15C8>rs`^nd+sw!qE{-h(zFl7qra>X_=lv~)PsbVsu2pa1{> diff --git a/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver-screwybits.png b/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver-screwybits.png index 565ebc24f66a0a622c01e1fca2073a35928b7c33..f018f39ffdf86e95555561dc5ac713ac8238a8b5 100644 GIT binary patch delta 208 zcmbQi_>ggeWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx}0fKQ04 zqqApOZG(!MX78jaK(R#+|Ed5f){-E<;Qv6t@Ov9yFi?QAz$3Dlfr0M`2s2LA=92~r zdU?7yhFJK&?eXMdP~c&H`{}=V_AD(=r4Dz&Il;61qW>HaKjH1f*u#C3D>6HtKd&A^y^Ls8q476>gTe~DWM4fk7GtS delta 134 zcmaFJID>J5WIY=L14D6D)fXTY@9E+g649D0!MZp>q^Bv+fXnTm1G8JsxA3sAf9x02 z+>RA&41Rv@(9O4R-$s0$$h;y=fM>_<-T&J+wzjqgJ~?vah=hu&s^qEDryqXftKfi| jpdrDkEMs6`z`(HczYt4S{^YMfs~9|8{an^LB{Ts5L&Y`} diff --git a/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver.png b/Resources/Textures/Objects/Tools/screwdriver.rsi/screwdriver.png index 9d0d820ddaa8a7610582061de5121e0fe779d51c..9e1369973418dd4a0e681f2cb730f43b07e17418 100644 GIT binary patch delta 206 zcmaFNc%N~CWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|bfKQ0) z%$YNLdV0Qp{|*$WEwRm-86?~2mhKo zJtkXy***r!t=_<$R9@M)^z82^?VLw`9{9`1SIWKo>C=$^K!X`PUHx3vIVCg!0Na^N AF8}}l delta 210 zcmV;@04@LD0pkIX8Gi-<0047(dh`GQ0IEquK~z|UV;BXaU=)mkQ7{TdJYd8Y06jfD z|3Ne_FE3o|^XJbfY9u8k8KR@38IjeOl$2mKk0byy3?KOZ{ri6q2B`&M5PQ|CRRr~6 z0~juzIdkTJJ3Bitn}>%7F8<}q7o3JDC@3&Ic<_MX(4j*N=}YP9B!vPCx&SDsH8nNy z8Upe$h@LuiDwv<0oy~Ch@@0}O2Z6zt21das7zLwX6pRA80tN;K0N&L{g44@Iu>b%7 M07*qoM6N<$f+sjqKL7v# diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/meta.json b/Resources/Textures/Objects/Tools/seclite.rsi/meta.json index 86f25b0b7a1..d466ad62d59 100644 --- a/Resources/Textures/Objects/Tools/seclite.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/seclite.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/52cbeaf94322209d4c6596818dda9fb3654729d3 and modified by Swept", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/blob/master/icons/obj/lighting.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png index 317e638c18c679b0a0ee848973c731e7a901d786..e02d6ee077424adc4cbf9fc449925864a056d150 100644 GIT binary patch delta 243 zcmbQw)WS4DvYwfNfx%@-*D)Z)SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv=#@z$e62 zT3Xu5%F4^jD<~-F>(}Rzk&!q&P}~{DS{O0K>iJy^%mM&H|6fVg?4j zBOuH;Rhv&5D46K!;uvD#|F+*Thwp#_2TS?ZY5)K4P*4qYezj4&eTQOV6W7fGmgnw_ zUFNpo44ZZ&CVuPb(_SZV;eZgUwbeD5)?*qUmU&JNI4CuhtM+~LP0`!#YC8ANY_Pre h<`ECTATm? delta 271 zcmV+q0r38W0-pkq8Gi-<0047(dh`GQ0OmeLU~vc%BofpuCFuov+nQ`66ZA9f9mn#jx=re6cX@>w!K4|ULenNn5Jp{$nv$Hz#H)d5Pw)4U5KK{3F*4dxf6yV zG)=P^zl->8S(Z>$m0gQCOHGgv+z7$EzSZs%VN8-ljIR&{NT5U5ofMIIp1s{f0mc|- zBZ7HxEu166Ff6$g$xY7YK;SLlhmZD%PDHLkV1mdxcBlXV diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png index a5e9f773ed55bfbc12fbbdce978c3733689ff043..7ea22fa4c673b9069203b7c9aea6b79030624493 100644 GIT binary patch delta 250 zcmV!4MC`~i)=g%J~3jsh5bb&Id;{c!k3?v077q=rL zhz5lU%|iemU<3lHIA9AS1K3BT09YcVc?htuus~U;fQ?-V>}Z-h;PmO63@cY1W%&N> z0K=q7YeDfpgKk+684OrKGzvz+C>RBU9565d0A?&i+Z#0Exc~qF07*qoM6N<$f>26Z A(f|Me delta 91 zcmbQvR5?K<)WOrmF(jh(?L|W_1_d6LgWdn@m(11os7=aN_HbyC^{CHbVPGhmd3amt vF0Hp;+1IhT^lxIR7mE;#<7Z%4(6)rL*jZtbwErhd1|aZs^>bP0l+XkK{`Vjk diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite.png index d8ace36de984710ee0aa9095539bc689fc209fa8..1064101c28a568b4dc9acf68e1ff423b8e473014 100644 GIT binary patch delta 294 zcmV+>0oneZ0>J{1B!3BTNLh0L01m_e01m_fl`9S#0002JqVK_WqId6ylbqZBq4mXUkrwWQbkUH{NP{a6AZ00JNY0&s4C zIF9ere$zCULjX8&k|flRqDYlxN#9=~0$1Q(O%sPTthCr);0Y5kH|0#W8)Cf4X&f3j7@3uSO5S307*qo IM6N<$f@ZpRga7~l diff --git a/Resources/Textures/Objects/Tools/spray_painter.rsi/meta.json b/Resources/Textures/Objects/Tools/spray_painter.rsi/meta.json index 056ba0a8563..a7ed6684445 100644 --- a/Resources/Textures/Objects/Tools/spray_painter.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/spray_painter.rsi/meta.json @@ -1,5 +1,5 @@ { - "copyright" : "Taken from https://github.com/tgstation/tgstation at commit a21274e56ae84b2c96e8b6beeca805df3d5402e8.", + "copyright" : "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/8e92e96d56f231f79dc16f95918d59b2803085aa/icons/obj/painting.dmi", "license" : "CC-BY-SA-3.0", "size" : { "x" : 32, diff --git a/Resources/Textures/Objects/Tools/spray_painter.rsi/spray_painter.png b/Resources/Textures/Objects/Tools/spray_painter.rsi/spray_painter.png index 462e22932c2b9401cd950e8630eb80caf0ea1a80..0c7ebdadccef551b183bb87c0e117d9c80d9e4e0 100644 GIT binary patch delta 749 zcmVA5 zY33`l*SfKbr#7o;zIo2<+im8(=lWLZ55xDq@j2gbzWL^RyMGlnS^p2f;NUenJbWj# zDF7IJDzymJkSBl$e(8Ka^mR4`o&{F`XYhj^hMWr$LJQywj+#!Bsz4|KL~xdJAcTNn z7*&H%0u&dH(P~4u)N4r0RqR1iWz^akIZP(TPjZ_UEZTSG9m&fc)5 zZ-EVAtM^!pW`DkA*PR6|z?F9ca<>x+3y$_Qa$9@1na^Pc2x;OLVGs^29uo?|oWN@W zz~C3dy~T;1IB=iY8WzAVM7u%ZGuB1k>f*smi!?@mUR~hOIv6FuliQzRqTiB!ZghqF zXs;hSDf>XVFu3>|TEif4_*4#FFEwbtBT9g}=f9yg-G2%qov@9Km$tqCV3f7z()Td~ zs#?Hzr%(Ta8nRD&eU$+9jr-x>bQX6hf;xSbaE(9kNy7LB@T2m;Sd1VtwhH)kBS$b03dk^2@w- zH(#4uA;U7zu$lpr^?^(-!a!%hO%-JT(|_-HH)btAhDucNH4GxSD?ow%km>g$adpKt z?CT`HzLZ*k)S?xtOKhjn@NVde*7IRzTd1xM#MKpwkNX4nJOaFWI1mH}1Arjq3gFyr f(1CpcY=r&-6d`W^TIn^;r%VKxW6EsV3o%90*43z$rVDlCJPdOAY==Jjf};z>twU@!=w@14}_h}yf^PV z@4eXsa&mG$I^MjFzVA!jS`Y-z`#KqB1q+5taBu^sUuK?u?SI)>lu#lY zLL_Tp7;61gyDVE(%(5x?(f4TFzK))yQpuz@LA4u?#{kspbpQr~!IW)g2IAn}?`S

R+>SW-=sx=Xa~}X{6Y(iMk*>dmL`1h2O*FP( z??*K5T@|bwSTkTay($8L&YuE82+HL$#bOcYTLsKyU|x0_vvZAa6RV#!197cyA3`qv z{ZF5Miv8UQ)yf1>98s-6yJL;-)`X^@i?Yx)RO$AhP-d9!f&Nt=u$N(mRud@?(f-;Q zkg1OqV-wCH!jp&4YDQxhhs+ZE`ulpnRS~*(gKBepnfN=Q?Ez(zWOH3cjxRI)oOqLQ j{Qn@$TZ880yenP+m)WPJs1y#N00000NkvXXu0mjfMi}PH diff --git a/Resources/Textures/Objects/Tools/welder.rsi/icon.png b/Resources/Textures/Objects/Tools/welder.rsi/icon.png index a023a035ad47559b1b80b4d2ea46c2531d76eb54..c6917c8ba514fb1471fd732080cdb413c7d5ac6d 100644 GIT binary patch delta 554 zcmV+_0@eMZ0=NW_8Gi-<0047(dh`GQ010qNS#tmY4#WTe4#WYKD-Ig~00HVrL_t(| zob8p%O9D|8#=oFIf}qkxp*=|37@~_7NiL-RfFPj=H}xM_%c4!vI>ANKCO0(%*`|F+ zCAnx}2||#NIHg1?B!s)$Tx+IreB@)ajK0;mkKy~BJLlfhiGLr~Kfpi0?*`}|G!Z_2 zON2UF3P8N;N*D=^RqTYxOvN=6{h}J z!Cv#Ul}Nu|H28(s;Xy^fvL}!Y0=I4-mbTqsHhg%^+Vk_NR0c|ApRi9H^Xt~Bukmtd zAP?vbCQE{p1%J4B0_JQsFg_m^*4EKw&p{U7_%A0638Y0eGYF?`< zUPEent<{prXjCwl?xAyyKz#cUQF96r&gHPljh%#GZ+~=LST9urvI6iBG*jN3uY7Sa zHWh%19`hy#VdBh<20hOFfqeE9YNZtbRDAV|Wl$)vuU31}G)^1~l3SY6g%y`>Fvx-g{laSdQ$g s2KY21k|VJ!s;L*C32L8r;LifQ1C@uwSxGc<%>V!Z07*qoM6N<$f+Q9AIRF3v delta 274 zcmV+t0qy>{1fl|v8Gi!+002a!ipBr{06$PnR7C&)02vt>AS*y7CMGH=DJv=}F)=Yc zJv~H1LPtkONHzdSNJvyvR8><`X=!O{Pyu&$cYIz1jQ{|db`H;<52tCijsO4v0d!JM zQvg8b*k%9#0Fg;VK~y-)-IGZYLLm%9L7PYm%^$-3&*}lbhJS?%tIW1vCFu+){Zjx7 zy?4a=^bRw#Pk@`bk)n~j&FPm6?wyoG@{!&Bxm|lOqgYBQ`8bZZE{rNA^io@_r=0U* zSP18ZI;s>D!PtjzE;8Ue1E30#4X`S-2{z#y03aK}lVJ-14z;iX_i>MbQL$Rpk3Q-J YRQd(HNLK_J01E&B07*qoM6N<$g5soRH2?qr diff --git a/Resources/Textures/Objects/Tools/welder.rsi/meta.json b/Resources/Textures/Objects/Tools/welder.rsi/meta.json index 5f876da9ae0..407f85d4cf6 100644 --- a/Resources/Textures/Objects/Tools/welder.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/welder.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/199fffd989d6f7fd6ea9c5188c875137df4f34b8", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/199fffd989d6f7fd6ea9c5188c875137df4f34b8 // Icon Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/3c5cb36e811725e1479c4c025b04220027230632/icons/obj/tools.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/welder.rsi/welder_flame.png b/Resources/Textures/Objects/Tools/welder.rsi/welder_flame.png index 20aa48abf68c85cebc135633200b994f8efd9c66..6c8ef525ccd7a64c212523ae35c1a3adda12ddf2 100644 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDb50q$YKTtz9S&aI8~cZ8YsBY z)5S5QV$RzedwH1*dD;@AlX$jqcsm>wIqCCJB;>fr%_iHPUY4VsR^d-dC(4^wiYz@@ zKB<`-s56_fs$5?=TuoK%md|p=RmUG1PES)pcW)hV4?82an}9MKV(uae0%BFqJXu-b)bDx3)Jzf1=);T3K0RU-PTd)8C literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!N$PAcy*Sa5Rk)J;1OBOz`zY;a|FVdQ&MBb@089@=M*si- diff --git a/Resources/Textures/Objects/Tools/welder_experimental.rsi/icon.png b/Resources/Textures/Objects/Tools/welder_experimental.rsi/icon.png index 446d4b21bf7742ce04c265fb06bf89a17c91643c..d33656a0be4000ed43d259b1404726e98595ca41 100644 GIT binary patch delta 895 zcmV-_1AzRr1d9id8Gi-<0063Kaozv`010qNS#tmY4#WTe4#WYKD-Ig~00TWqL_t(| zob6goXcIvgeSxKxCP+geQoB~DJ&87ADX0}GQoRU81rPP4;6X%0#go*V2M_*$s3*aj z76dE3T1pUGd(n_8o+MCB6)PcPf2dMf^G!1AcJsTN{Q>uT5Pz~WJ2P+g&Fp+L$x{$; zumA`+SO5eZEP%XFRaK+!EnB-q`t?*IWVcb-Rwk3FyA8ki6i4GrM) z+{e1h`pK_I@?WV!MrW)S$@U4oBNDI1r_dGIjy_irfXIIyy@{1?Nj&*Ji{Y<>NMb@1Fn7c% zsACc{3x!dAyR?3K`^hf^*boOcKEHy)c_o2OVg&4vXS2DIyxT8E^lS5jOZdsJ(DWms zY&@r{F3G7udY5+X?h|?Gr4QosIDHowgPteT5w&SuLB6xO8IL+Tv}|&*H!z=WN{fAvGLs=p64g ze@y{8-}hn~381}@Hpf`%#8Y{lCwFoW;01qG0mSySAL3mj_05et{jh%U*PH>3{5IzV z+~((Bg%NPD00=l(00bN?00Isc009RJATQV-!2W`LW|=eE~8Z`R%ShfcPqT69|zx_6M*(z$(}u zQ0*rB1Hk@(vS5FJ0qhT8e*pUf;1<{)-~m7T18Nmue*pUf*dOp;g9Sjq!2%%Q_zV29 V_Xtar;P3zd002ovPDHLkV1nJ;q!a)E delta 550 zcmV+>0@?kG2ebr`8Gi!+005o0f$RVP08UU$R7JqRz$hpvXlQ6qP*5;1FhD>+I5;?F z0A@1)W@Z4)nE=e0GtA60%v4lVASghY0A>I){{R60005a77#IKmW=Kd#W&i-0007JY z03aYB+w%7O00001bW%=J06^y0W&i*HczRS=bVOxyV{&P5bbo1YZU6vyoKseCa&`Cg zQ*iP1gNKs3ILmWA5}ybnxFsx z0T4+PX{)+vJ9T=g>(?`H=YazU{q6mulxZ_iS9E<@mi~FFw5w0VjRI69F*t|PSe-O8yu7o0LP%gW4;bd5rc4oVR)P%#?1x-3T=pSQ0}A{ z+7RQQ{F@{~pDD&ccXIx3?{FY={#Txql=MvfpqZcFP(PR-?<&|27K2bfSPX*wU`-I{ o2Wx`V4`?N3ItWQ<|33|HvxvXHYaZfQYryHA+84w9GEfV$B6_Wn(<>s z!Ve&skdW}>$B7?5egGvrBz~NjaoNPu7pR`GB*-tA!Qt7BG$5zCDkP%BCAB!YD6^m> zGe3`kp<+&OSV2+g_bJZhXNCOYs3r?@pfj{QT^vI!PA4ZwutqdY;M9sYVVrvYo)P!d`?lO? mSuTp02=lr*mx}OMGBDhmzV=>FAqk0`zoGDgNa-_7|Uz2 zF~Xt{nD(OvvzZa7umZUGdV5FbSI>_Mf(%TW&ttWIe!M~8dHVOE@2d)q<2VOW2!Q6g z0$x%9y1A`x7k>*K7a1D?IOlk=m>wOgd@nbQV1B-4UiVL z=S{mUmJJ!_01rfRz9=13AimjGO^ft@Q^;MsD|4?&?cu q1wj7~GPyHZJp$LJr2(o`1Mm&4YnlqU^tWXI0000V=-0C=2JR&a84_w-Y6 z@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoPXky#FA7XQz{V5ArtmH< c^elw{0LzCCj!+{7kpKVy07*qoM6N<$g4gVLr2qf` diff --git a/Resources/Textures/Objects/Tools/welder_industrial.rsi/meta.json b/Resources/Textures/Objects/Tools/welder_industrial.rsi/meta.json index ab4744aaa63..1a92064078a 100644 --- a/Resources/Textures/Objects/Tools/welder_industrial.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/welder_industrial.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/782006a07ef7f16f70128489b3e78b210ee4bbbe", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/782006a07ef7f16f70128489b3e78b210ee4bbbe // Icon Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/3c5cb36e811725e1479c4c025b04220027230632/icons/obj/tools.dmi", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Tools/welder_industrial.rsi/welder_flame.png b/Resources/Textures/Objects/Tools/welder_industrial.rsi/welder_flame.png index 7814b7485199170ae34cacd3a4ecfe43995e1367..c4cac4606ac872e32a0a3b4df7fdb4540bc5087e 100644 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDb50q$YKTtz9S&aI8~cZ8YsBZ z)5S5QV$RzeYXzAV1==3=&*V7en8!I$lhM;tUGt%eszUIwsSUdwj`*svHtZ;8-H`?N3ItWQ<|33|HvxvXHYaZfQYryHA+84w9GEfV$B6_Wn(<>s z!Ve&skdW}>$B7?5egGvrBz~NjaoNPu7pR`GB*-tA!Qt7BG$5y@DkP%BCAB!YD6^m> zGe3`kp<+&OSV2+g_bOFCU9!Sn=np2f6s_}>U~@8 nvn&@yOoVyeoJ&P`EEyQ?O<+FpeccaPpe_baS3j3^P6uG diff --git a/Resources/Textures/Objects/Tools/welder_industrialadv.rsi/icon.png b/Resources/Textures/Objects/Tools/welder_industrialadv.rsi/icon.png index c187486f2bc9e34736019ee3a74cd4ef72380787..425cf3c4b3f8fb37bcda7ada9e600899acf3caf8 100644 GIT binary patch delta 535 zcmV+y0_gpW1Ed6y7=H)`0001UdV2H#000SaNLh0L01m_e01m_fl`9S#0005jNkl??{i(=5;!D~Q# zP>hJ|u=Li1TBif|whh&OAFN&vjP*QJ?rvZlDO<4^5q~-7JKZiogs{fre9rz^6QltR z1rQ;`CMCj*<17#Wle-Sg0TAr~sFmdI9}~lJAl~X zLIGgmXYy*R+5mKF3g8JKA5dOrfHr`zG+6-j5BZnQ0AB$4A3=xnp#Tg5G;6YI;9mlK Z0T=1hN)URuay9?}002ovPDHLkV1hy&?hpU~ delta 381 zcmV-@0fPRd1dIca7=Hu<0001iRAkc z%p)V88yj&E5kd_OCI<(5dwZxf7Hj|j00DGTPE!Ct=GbNc003`#R9JLGWpiV4X>fFD zZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDSycTa*U0*I5Sc+(=$pS zoZ^zil2jm5sk9(7FQq&+CndE=iHkEOv#1y-YRJWzR+N~V3SlcNxca$(4F>=PKOC-y ziw-XU005XtL_t(2k)@Ea5yCJGMHNqA8^fms-X36Yd=KD&eb zbE9`(Uy_Ob5O(*+s_qbz??~SYdc+J<+Q4+po2H9_nQnmAX;>Z#P79c=XVjV^5D{3l zW;pTYpe^6&;>e*4F%QD?_2#l0EWsDxB(&PzWk XIQ~%k!X785D3GY9tDnm{r-UW|X0lPz literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQYryHA+84w9GEfV$B6_Wn(<>s z!Ve&skdW}>$B7?5egGvrBz~NjaoNPu7pR`GB*-tA!Qt7BG$5z0DkP%BCAB!YD6^m> zGe3`kp<+&OSV2+g_bQ)bPd;iXEW7W+oBs3CF9Gw|9WyWl-B<8QnmON7l zYicRw**Qft=5Ne_X^adU=M#*h`=$22WQ%mvv4FO#pr8dXWGC diff --git a/Resources/Textures/Objects/Tools/wirecutters.rsi/cutters-cutty-thingy.png b/Resources/Textures/Objects/Tools/wirecutters.rsi/cutters-cutty-thingy.png index f331df4390e4cd2193af7bf878126a071b8badc7..09cfe9a497ae2b589ee05b3495f7618f3e1e0ec4 100644 GIT binary patch delta 222 zcmcb~_?~fsWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx}0fKQ04 zikhaQvuA84rj@Q5sCVBk9f!i-b3`J{n@ z5uPrNAr}5``w#Lp7;rc*eEffZWYm>#m+h(Q!u-|d$FyJSh~+H&u{7aOYues83qL8w z-u4F*SNbrWGoIrnyQXmM+2|GA2J_=~Sg&xo-)Jz)r_L~e`{;A0BaA;D@_pa9B$p9r O34^DrpUXO@geCwJRZhYH delta 200 zcmV;(05|{d0oehN8Gi-<0047(dh`GQ0H8@kK~z|U?UOMM!ypVrosKNbNZi0P_df+U z-~ueHRF2ZfaS|k&sp@|c!XVine}Di00Dxbo>yc9GcF&9x%d7!0#>+y2_kNh0b0(|# zniVgl>;-fz;?B8|_`=LYH%>f)nOFNm2VQ!P zj5=V{0izBWd=5z9=l)NO#=F1&FdY8&laZrUn>d7k^G)U~qKy{EzGi6bC?q z6mJx;SUQ1y0Wt{0M`nWn$YCI`W#d+c$B!SN=)H66I#?~TBQVkc!Fb)fodISsObEnQ zQPcdNnUjrSG00Mo9Eir|V4@NsC~63W0LbUlr%VOMy`{M|!;@!E!43gg4pIkm1hVBA z4#1rVk(8Y|#Cia;5CmdlQ{V=IEQSG)ypO*(iYdS}@E_zboN0jAL?{n*1WY}yTmS+f z%g_PdTmXuHrtfS(9}&)q|2Tg^(#x&uIMv+2BZt)iAaL;iXW|N%ZwyocgRdwab-<_t fMjbHf0D1!eas!}p`@|`?00000NkvXXu0mjflbE8u delta 305 zcmV-10nYxL1Iq%CBYy!BNklZq}6o!9jvcSL;DQ{AyrhZ6db(>kO|<5cF2(TEzbu0-v54VgJBqkxqAZFfH%Mz0207& zadox!ue3?lfPIbUSc*p+PZbsqp*Ozo_9UW%)*4xs`K0tjw|@_)`{#I$Llr=Tb})W? z{a_>IX!ayYyguZ4-V@Q8kPANhskkvFkWyOu-W^l%D2h;)-i)Hwo0{~xLq~t8wZM_==IdNWsK?6oxBG~gpZ-(j)-2JsBZVP}jRTHAe>k$yi00000NkvXXu0mjf DU3ih> diff --git a/Resources/Textures/Objects/Tools/wirecutters.rsi/cutters.png b/Resources/Textures/Objects/Tools/wirecutters.rsi/cutters.png index 3f79cb157cacf02c6412154c488d2af8c68a7928..68c8a3ed715738ad6d3cff7bf54aece317ffea32 100644 GIT binary patch delta 214 zcmaFD_?&TqWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|bfKQ0) zk|j&(>+4URJP8yqdpyAaq^=~$FZloe{|pXVE588woCO|{#S9F5M?jcysy3fAP%y;P z#WBRf|82h^AAB)v%UIhk){-2IL>zexHfcTVfCSHk!OF2W>c3))C+bh4f zy~o-^Y|$iUrgQ4zB`KQ{`*{9!PV!^n(7hOXTzpEj;}RyP``k`{6Lo@t7BG0a`njxg HN@xNA?kPvt delta 211 zcmV;^04)FK0ptOY8Gi-<0047(dh`GQ0INwvK~z|U?UcO@10f8BeNjp}W}v5Y#|+HC z0Ia|cHwkMn12aHHPvl4^CDP?ja&(d6uX(P(etrOgAPB`b@Tf^&}7`lI>Cfe->H zrM|NQ3Kb$kt@XO|J*5nAr~kASG$rA^f2hk`N04-hD4~e|x7+if6O6{Bc1P;s*e`oecm21{q>F7>PnedZ1Lkm@^Os zAvGcaJnxMT9A^e`=(sAE+o#voGcg46BNYI=cxqgqgSj@2Yq{{`T;Q>S2@@GX$4yvyZF>hUko)TsK3$9r$#! zIADr_LBTnz)+9sb=F3thsyb23%TsjqX9=;2g)p+kPv>62q_dC5go)ury8OIUQ5Ghk OwG5uFelF{r5}E+v*+~`v diff --git a/Resources/Textures/Objects/Tools/wrench.rsi/meta.json b/Resources/Textures/Objects/Tools/wrench.rsi/meta.json index a2c8f06819b..ecd76812cd4 100644 --- a/Resources/Textures/Objects/Tools/wrench.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/wrench.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/1cdfb0230cc96d0ba751fa002d04f8aa2f25ad7d, storage by EmoGarbage404 (github)", + "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/1cdfb0230cc96d0ba751fa002d04f8aa2f25ad7d, storage by EmoGarbage404 (github) // Icon Taken from Paradise at https://github.com/ParadiseSS13/Paradise", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Structures/Doors/secret_door.rsi/assembly.png b/Resources/Textures/Structures/Doors/secret_door.rsi/assembly.png index 6518b7245c721677990edb252828d4ce34c776f5..1a84e526a4a780111960391cd8356bf513b5f17f 100644 GIT binary patch delta 162 zcmdnUw25(oL_G^L0|P^2NcwRg#UJ1k;(Fk~0RsaAXJ=;%3kzRgUmiKR%Rni{k|4ie z28U-i(tw;mPZ!4!jfu$uEsSg$0Zk04&NCQ7;yCmYco@67Rxr7>WiXw}U~)Ug!6>d! z5acGraC2po-hwAKlUM@w^b0yjICj`hFkH;2xyWFVv`~1;;mOPl@A`Git&-N=1e(s^ M>FVdQ&MBb@0K5S)Jpcdz delta 290 zcmV+-0p0$x0kHy*7=H)`0001UdV2H#0004VQb$4nuFf3k0002%NklmWi2xfq_qCQaX_03GfMVH83!6c6PR~u<-Tu)m`y&Ay8b!)5S4FVrp_i zLt}tO1GmANCZ?L6{{amb>^vk2+65nT-)UrEI59QLQE#eD4NyIUr>mdKI;Vst07cCm A)&Kwi delta 154 zcmXS2%{W1#o`a2nfuXpn>I;x!EDmyaVpw-h<|UAm>gnPb64Cnh`bJ&`MFHl6yN^qn zDg?6ro!;cao1(C<$M+3eS#`a=(`^UCv)SO8ZadN?voT!dC=Kv&z0gDHJ zP*SPRDM0R76tH?EKu>7SF+gllz~-p|S^}M^bmW;U0e@5*il+r&l4v2f^E0N#!a%j5 zczOU@j@-`SJ!L1MFE?q1}Ocza|%E$3|Ku9p!TP84tQhZwSZI}Nmw75JmJ=nW7WZZofA8$SVG)Q<`o&VHXi(4;R@40u;x@yn28awv$nd*l(uDafL z{PB_CG9#JQRk^pF>YlAmu?YKm>t)HTic@}V$)W4_-hbb@{0&I(pYI-LlLZV0Tnvke zB$CsnDb9QsaW#AW_3THQ){=dpd%yi{JE#6%6=bp9{PR$Y-`3cP+wZxXC-_|^t53}B z{f8>|_b)!)di+tsX8By6>uX>B0a2 diff --git a/Resources/Textures/Structures/Doors/secret_door.rsi/meta.json b/Resources/Textures/Structures/Doors/secret_door.rsi/meta.json index 7e8135f2168..c1f0d5e09ec 100644 --- a/Resources/Textures/Structures/Doors/secret_door.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/secret_door.rsi/meta.json @@ -24,12 +24,12 @@ "directions": 1, "delays": [ [ - 0.2, - 0.2, - 0.2, - 0.2, - 0.2, - 0.2 + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 ] ] }, @@ -47,12 +47,12 @@ "directions": 1, "delays": [ [ - 0.2, - 0.2, - 0.2, - 0.2, - 0.2, - 0.2 + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 ] ] } diff --git a/Resources/Textures/Structures/Doors/secret_door.rsi/open.png b/Resources/Textures/Structures/Doors/secret_door.rsi/open.png index 81862e1eade5b452853842c8baaa21f5413914aa..5f78166d8cf2fe85d2e0d67e1e230415c0af7893 100644 GIT binary patch delta 154 zcmcc3xQcOtL_G^L0|P^2NcwRg#UJ1k;(Fk~0RsaAXJ=;%3kzRgUmiKR%Rni{k|4ie z28U-i(tsRKPZ!4!jfu$uEKH1SDhrk@N$F8y2wBjhl#r97(xSGYM=c?x2ShCZQV&}6 z78q?}H8{kq%wfnZsVsFtnM+w~qpO)$5d%Y^aIwf*Y4I3yps5U=u6{1-oD!MU}oXkrgXR4=*V@O2n+lz)=&58mofxVY2 z+vIIpzrSy>ZG9m5M&$A_&!Bf<)^nBi@b_%JCTypsWT??+J0)lxyV9bU?B5KI1+Z4W zQCylLbwDmD&Sa>L$eziz;k(h*`ZLTn2bgVKfEbJz4oK}eU+j08;akDE zpPxh0-z2`z1!|r5e5YPi_A16V3%{@9`gEh3S>&(Ynl|UXZ9o??c)I$ztaD0e0sx}N51jYoA8Gi!+007eJf;<2K00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z000kAOjJcMFfcecI7352O-)Sz005htS1JGi00neXPE-H?|Nj8{whmJO000SaNLh0L z01mF{QA$e1}c8~hLdECMYJCvWn1Jp(KsU)bdI0Gwt$pvL7X@{BNcRyZ}XjkoU$!Q zGtOg+b9~MB3cmf|rO-uZ)IllRf~-(E;{y-Bw_sZk9DhInVS=az=hzFLkJf%Ri0#-@ z-}&o6Y%h5C`hwVwJq0?0puo3dp9}0e^a}zz_NhPgu8Qu>}+l)8z_?Bq}HscpWcI-d&*rJ)J z;L(FuK{01RR1@0^UjGLPeUC&nu^sz-0vVzj+|9@LZTkYbqCGG~gOK_F0000b=ZN&^=a>}IR_^M|M)jI(J%3XaQkgp6o;ec)3?=6WWL@`mnpgbeX^Bdhe7*MNB!yD&8I4q&LkFI z$o%#FxsI&hvkew6zE+h6Ncy)}>hM*`v_s{86n;?PHDHinV>rx^Ai==H+>pp%z{AkS zcmTKH;#FN`FPy;U?7uG?a!fdpue;f9zGk@de*rL4j-P$%N0%9gA1(N7W4+?X=5?=c ze?MXQYWsPM7u#~xOOrsV4qw@H`Cq2~zGdIn{oDTj+qVt-Za=zMBL4wR=wXq(Kw@~j zN_+e1T8Ea{+KDo9dfyoZ%f7l6RqVLK?sDU*_{oQGMeP51S&8=tSY;0}=DJ_5J+OT5 qk6HJ2|GK~L_U*&J^12c3(Vtkmw&2XHnTvsu%;4$j=d#Wzp$P!4QQz+X diff --git a/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/meta.json b/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/meta.json index 351d5688e44..8bbfa474bf0 100644 --- a/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Sprited by SonicHDC (Github) for Space Station 14", + "copyright": "Sprited by erhardsteinhauer (discord) for Space Station 14 New Frontier server", "states": [ { "name": "state0" diff --git a/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/state0.png b/Resources/Textures/Structures/Walls/reinforced_diagonal.rsi/state0.png index 10fb9cd49d667800c7d9bc347b4b72a6978307dc..d437ad8b738db68616d680dd195f849583138cf5 100644 GIT binary patch literal 5943 zcmeHLdpwkB8y><)Dt6U68-pdx(Tq7{kn_Yi7opWVGw+Ns%#4|r8Ip<)QtPlCwxq+B z(qT*Kgd$~0TT)AOAe5+-zG^pZk?)-$>D#{c>-YQizszsUJkN98*L^?NbKm#lwI(>w zcdCxD4g!Ig%JlOJg+Ecsx3(7iTb7pgI|88*n-(4kg#vPvL@MS95(q-`8$-`FV*(Zb>txgXwm8^7+V3IvX`|XTKeG>ToN! z(~yQpnPi(hht^0Y!7d}V@^#m}M{VAHR_&dQr~B1_9LvYA(Rx6vg z%Qu%#=T-L9{)x)VdOAP5Q_-7|TD^70h5L804KKIK3@Cj^BT5LC#SddzW^4nwxvTPD zq+xynhcxb;iSl-scJubREC1@C95;_gT_t+zTE%Vdjx1X}ExTaaulZiv6pb^kgzrBl z@3M`WvYr@W9#a#ItXj9A^2mz&r?7H{0o7csa9>$qJ)PE{v3p5eT%iA-dg&Ex%@{6I z+pxaqkE`mIz@6uQ^OuRA41;Hgh8t$|W@;V~-}YKB>D_c+AGgaWN4??_x+lrlJ-aI! zq4lSER?u>r;x4CU49sO+nVxjC07_ZSd66}GGQ_vTzK~jHJ!?-`P6}U1|9`5h^E~a!La;o_aTOZ@p z4I!(|yWQ>0p5NRd{=J$t$%tRQ!tkO|a{ZRl8@-X*c6AL#=L{!hJ=3;!ifJEiYBv*O z>n)!7PJpu)z7+^ecMAaf~h&7A+uY)+capQveMO**C)C%1j+RTdS)`jYq=DAgt zzjkQ9(wEl2yS6mC*L$hG@Q)Kf<1)5IS#Q|m(q@no4W$*$FXL}?EJ&`XjtaME z$zMF*s}$SPp;cNu$S3z~pLuQVZ&lk~>0Uo(EDc)wKp6cbH-%E#6l5OfGka}PR+@YEt<)!c*YHZC>%+*!)^|@;wEI6nAk@qHm6Qt;sU}!QdO;b0@mGF0ikkt6LC( zjF_W0gh)zG3WW;38u`&6>KBEiJx@MpE`Pdg(eCr4gF@4*(CvUaPN?%K`#;WjxErFs zMKxR|e)X_UH~m5zLp{A}?Q_Qw+0tBBvY3EE={FH-kFTL*^PLm3Ubr4@m|HeCJNC4ESDANZl1rzmGg-ez52iRk+bu*s=a> za6`X?;Bd34kEy>OYVu^Ac)Q)|CLvMDp^n9IZoT&`q{B?0excr4~uPlZJ zTI~Z^X-p5@2N_94dHOr~-^8_=^}V@~RA}q|z^MGU+i&A1Z63C+y3>mGbsuq-Bz3fI zV01~5hUr9ZSjrx~#zj9N&g{5GxxZ|A^iFwW|Dh9k%}A8zLQE$Dxw3ZQeuiCBOuW`kHoq6EGg5C|7Hg#_RTK?ubL z`2rCG{q*!%G)ll_pd-jEJWJvU#tHn=q+nQDU^pjD$f0r3Zmv2m3OY=X2toi#k(eNo z(G?7|ikA+5S5D*5C=~<}GSHE%V3em=3Zh6@5*Cl~RtQpvXjdJSiFt$-)T94N;sdKtvUG2sCT-VY4G5%G8`22aEgX}F2@@G6Tn zZY`3HsR-+dQvebi0gJ~aCVpTcgS=DT`}?ScEF8XpaiO40oGj&l-YK96vYO~rl8`K$ z=rdUcDyLL&CvbT22a5*?I0ZfDg zk-^M_5AcwH_x^xB*pG7MFM+`B#`!-$ztc+EBu(<#M12|JiG#-scr8-e2P%%X^2oP~VB^6AL6~H`rHk(M{ z07MLlOy*%oL=K1nNE|$T#uO)zLgA8V&b$c}K~e!+2|&WcsFYM(n2P8`BNOplGKSzp zV`E5cyb}iC0bC4+3gF2E9+3dzX(}q^Ind_>GZ|-~WRORs(%`(ukexspoXAu*hROvf7!ICC<*?z5;gLrVc${4( z=0S2m3eMrfIRKwCTwJPiM%j(!->eU#k;j3`!7ZiGUtGZIla6 z*IqSdt1? zaU2vR7k$$GM}VUY0Rj#vl8HYR`b5a6EE6swIOfqg_=1D)OWgQ{IhG~LLiz`P#m@qhCodDTKQH(6c!o6lSqik@<#UQYJW4u;)s{cS@=IL zmQ1fX;gPjoSvhwy*VP%vw>VztX=G2YgaMd+6BfXapxqa=7f6x`bpUh$(pU*S7?Y;z|Qi*g~F-J2wI$g*Rzkf zRm2GPhjE=`Da_ckA{iG6Ho>US)2hZzY#Y*0bg62>Xh$JaDpmib~N zD;T$Qa?5=6skIrEH49#bIb@&9h(yhN^OHK^ro0s8{06(+;PKWe#q7@GnHwGh>j-XB zih0w!S3GhH0^|eh8*_px0rK HMVbEwwkFzU delta 642 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 B8B+iN diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json b/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json index 97ca2aa3b00..9aff20a66c8 100644 --- a/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/shuttle.rsi/meta.json @@ -41,6 +41,24 @@ { "name": "state7", "directions": 4 + }, + { + "name": "shuttle_construct-0" + }, + { + "name": "shuttle_construct-1" + }, + { + "name": "shuttle_construct-2" + }, + { + "name": "shuttle_construct-3" + }, + { + "name": "shuttle_construct-4" + }, + { + "name": "shuttle_construct-5" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-0.png new file mode 100644 index 0000000000000000000000000000000000000000..dde7f67085c33178ecb82b20793d7e242ce38b19 GIT binary patch literal 632 zcmV-;0*C#HP)9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyAknMBy-~u_~ z$iXdO;i2Pz*hFA~p{M}&j3ls#77`U@c=!4>LHapbaeM#%1BS)(Aq5=KA%N}xPyqt6 zoDcvx61|Wj$^oE)2viQh5+Sw_09g*Q00clG0s}A~!yHH`1hAF^u#ymz4M6}`2*9EN z*%I{V!50FcY>2ZY1Qo@&902n%C@S{s+{xhL?hX$D7$0Uaz7QbW0kAYc$N_}X0ND

2xG!1~VA9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyAknMBy-~u_~ z$iXdO;i2Pz*hFA~p{M}&%+iIk7@jKfMM}`NC8K52%tNl zv$d9?ytM2Ig0+Ipuj?Af^!ZikDzJ401* z4$crlcL3IM09F!$vLOhdI{+jGN=%^Q`rYf-49}5jHA!F%DkLfjE@H7|S!4%*vLVir z5L6Tsa)73mCIiSqbO(U=*RNe4bpT}{fG-hJD-D3MA9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyAknMBy-~u_~ z$iXdO;i2Pz*hFA~p{M}&%+iIk7@jKfMM}`NC8K52%tNl zv$d9?ytM2IT{Kn5>bxe;Dcg7~1)EiT+2 zY$vu5LU#bxasXBmg0dk9pgRC021-nz;u>VxmD`UQ&Ye5QU}R*(pra}ab`+?H#g=7} z9RSLPI7>oMQB24IAPZs>62O*rPME<^UXTHH%;E(Lzz(E~13*Fk99XY|EC)G464-_S z72$Mq0L?-GUm~Pd8USTOoRtxBQB2ERKvYpo_i_MK8zP4QdR;(CNjNm?f&rk^x&qAOLGlW7I@w0%SGGV3pB;HA)ApSq|$N4OquyP;|{eX=p$@r^tzz-raKm X_sHm<;lFx500000NkvXXu0mjf_TU|m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png b/Resources/Textures/Structures/Walls/shuttle.rsi/shuttle_construct-3.png new file mode 100644 index 0000000000000000000000000000000000000000..7098ec309a42368ab631fc9bca706b12cd0010e4 GIT binary patch literal 690 zcmV;j0!{siP)9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyA5cGLxYb`^0 zbu+=x0XgEx!7X5QRC55#a$+1omIGoFfdz)50^D~?7tUgM^5ij`kL+`hBVa&AMwTHu zJ`E*Q?%#jFuy{VCfFn8t&>ev6V_?~V5$vZ=><32&wh$r80ic2iR1UxrAvOoVYz0{a z3RYO|0I@+1K$b^#A-V&wmIJVo5R?r;0Gk6qK1a3`oegscdcs6@04N*cED1qHF*XOl zf)!)|GC+0!OdKSJ9t{*Z0NF6)V8@pCkmZr}QRD!SMaUt5uT+FNfb0+;lnBvNKei}< z0S9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyA5cGLxYb`^0 zbu+=x0XgEx!7X5QRC55#a$+1omIGoFfdz)50^D~?7tUgM^5ij`kL+`hBVa&AMwTHu zJ`E*Q?%#jFuy{VCfFn8t&>ev6Q;?6)0W6_n3lX9m04j(; zaRAnG09F!$vLOgya{#c^#A+$b0U-MHiTxM}6FCGx*$`(*2r7!PIRNG>^q@x$0a%oP z#Lz>5A_t(yJ-$K-S5#2s0Fcj+Lx30ukR1Yq5+NuJAOmbsKqw7>vLVjO2)QVxWiBA9 zD5iTk0ICgk^x&qAOLGl z6KVjE)g*&eMg!I;9k6COtY9K}pVm;=nMt*LGqJ_Ao4JqnfvI{;?+{d@NqCQh9MmXMYb z$EpA6vzJ)qh|!auoyVZ4qy*Lvas=D~Aj@+L3mC3my2PNZrw67%0K~=yVDd0ILh4{< zg6PTp6TprDJHXV!@jr-DP+Y*Uaoq;E$PtuS4s$Wg5wNISxnU23y`3dt2iVyA5cGLxYb`^0 zbu+=x0XgEx!7X5QRC55#a$+1omIGoFfdz)50^D~?7tUgM^5ij`kL+`hBVa&AMwTHu zJ`E*Q?%#jFuy{VCfFn8t&>ev6Q;?6)0W6_n3lX9m04j(; zaRAnG09F!$vLOgya{#c^#A+$b0U-MHiTxM}6FCGx*$`(*2r7!PIRNG>Y(bALD$qlL zA_t(yJ+@#+4gqXwfg%The25$Z#5jQL5FnHYL1};xAe06`*$`)Cgj^KUG8Yh46w|#N z0M&-bA%I>NP*M_-RTLAdjA&jL5K|o!TM>a8CPY=opw`NOHb`(b$$+gQ5P&tO31vmH znq;ubXuuk!1J*2u^^69rV=^eZW}rkhpq*3XR88;hIRKrH<)7+nnU|+kc>VxTlL_h{V+7 zga*cqp$P`9j!cKb69c$doB7y|u2ir()9h#{dZdHJNXfA$L_s;{KM*Wyl2{+MHi|c? zrMYLPRRGTp;|F}r)}rq!W|TjWYpIr$<1k=gIJh}S&|aRg? BGI{_2 delta 534 zcmV+x0_pvz0iy(v7=H)`0001UdV2H#00HVrL_t(|ob8uOj;cTuhQ9(->hcJTn6dzS z>i+l8E}#+@009((JnrC13AYvKj_K}!e^P;PUVl!(Uk9<vNx(1+>blm~N3bkQ`?qa7&N0RMS(wW8kid80 zMc_r?_Ye?5=zj&wiqL1!b=|1OYPHffEkv&C-dGt1m&;{VUYDY}T#!N~zlxWLbt~Sr~?a z5CSRX^E$9vQI;iL*U`2uP16tr0q|XC!9*v2&u91|@P8ukKb|VZ6SfaCVcWKtritJ- z%RNF>Rjk)*eSL)fBfKZYqY7z~5QHIrq+B$XODQSKlFeqramL?u9P*+dO_I@AuD77b zbKbUF(j*}-3c9YFT|>Hwv=0lZN&o-=07*qoM6N<$f)tJY#sB~S diff --git a/Resources/Textures/Structures/Walls/solid.rsi/meta.json b/Resources/Textures/Structures/Walls/solid.rsi/meta.json index 85b809570de..246ebe31b94 100644 --- a/Resources/Textures/Structures/Walls/solid.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/solid.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/discordia-space/CEV-Eris/blob/c34c1b30abf18aa552e19294523924c39e5ea127/icons/turf/wall_masks.dmi and modified.", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/ and modified by FoxxoTrystan", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-0.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-0.png index 828730d9f3d82e3f4e25ee4b0e4f0dd50970d037..1e2da3352b75d4ada2d78b93cfa36e15d6fefaf6 100644 GIT binary patch delta 209 zcmV;?051Rg2H^pa7=Hu<0001iRAaWak4ml12lVI9d_X*1v<=D| zToX_p2aKM+K!H1;?kfuX>kZMm8t!9!wII1dwPYEC3`#|*!j`%L;+izORVftD00000 LNkvXXu0mjf(}+h4XG$mU_Z$^w`bp7&Ua^@G8_&wd?K`b zLMeT5F=Gsr(iiD#z!=*YKq*BShFHWgEJ9j0QA#l$kKy}%D}N2c@L9#Vj@)3i$QTR; zSi~_@Rc#y>=jU)7rJAlq^>i1>b!ick49( z;LFZVjoP-2D2k9}^{^tA1ppY0MkOz6#YMZe{pgJ(0kJGp#jKx{f1?yx16{AzFio?j zTzQh2>kvXT8-D-*s`_{;8Gwg}hnleWK+`lSyQmz%CI+fd{)+0CWwjdcQTRU%I5;?{ z{io|XZfW_=jQ-`Zns-=S^i~&5EzC5!!R~qm!<#!&N+f0z~SLx z&A_Y6OIb&bPfnxVdDW3q{#vaNF5d(d2=<`}?_B;mKJis}} z&97gL9%#*iBuPql!JlM-wzUP*vKq5M)&bx5aXXn{yW2&YB(?gT=Q-yblgXquIOnZ( zKv5K=NrLTe7q^p%R1Oqk;QIO+w&Ng*A{Y%Nq|*!E`!prAPgK>s}#5Nkn+avq?ljR49>ckxdGOFbsubboRdD0n(y-!3(H(fT1w=zsjW54yBowMZ*XAX&zCl z&V@>Tq)wEseF{x@BxV3CDKrrw?mXap3Vp`}955Xz0G|OorgMGRhXW2baPyUQ`U1{- z=3Ky3wm33aYtSp;`3fQJ9Kv4VpU;txy%4xSt632YMy)9HA?*Yeg z3Ke+QZhxaFFEb79A0D`zOrBqXmzsn}M@KJPfh0*vJ+KRRcXxdI`t{E$kbUPt5YXv# zN~A#$5QZVH>y{ev&Ees%SKx!=ki>Cmey@M$K@gOla@QPC6on*?c~h(5d0wFc%3v@^ zg%Dg_U2$-5fU2tbBz&l-!0$}LLrp`k*YSNHDSstWN={BrRu#xpX7GIr^P({6Wbtdz3Ak)g05*@wSz eI8|Qzc>V*Yqj)Xq?1mr!0000X&{1 diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-2.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-2.png index cf8936fdcee3e3571a19b1105186d7052b6edef5..23367ae824af90f4e119191de1f31c1aa39b52d7 100644 GIT binary patch delta 248 zcmVn+au}MThR49>ckxdGOFbsubboRc|1Ej^-3tm8_2N;C8|5YZfR-~Et77ZVy`6Fu8 zx%f~RsS~AhpRECp#0-EXTLTf|E&wiM>pN!P0Ka7ep#TK_n}}dDFqM delta 946 zcmV;j15Nyh0=x&17=H)`0001UdV2H#00Ve%>&x{ul}aVkPA8MhwW_KfaYTqefo>R#$74$6G9|-cv)vvk zR}_U$mc{*k55R{)Az{nqGPk$4gkiF*3|$9cJRToqId}L_sa*b%4bQ{SbxyJjIMSf*?p20HCTrzDfu@K0YRby#={kE{=Uj4m{VuDU@GA{d%lS z0ly3HE+A0@0QGtu|EXvqj7B3|*TpnV+U<5?&1?R8z0Q0-PZtnPu<2yNMYc+%rG@8xC5QF2Af*E4W_ex4c7_x+fBFc`c@4sdaC@#`|M+wB+(2K0J8G);>?hi%)L z0`Bha`1{+p)C?${PA5F0=QPg#O&*S@U z$8x!h3o(&_PnL!6d5QUb*yq#fH1$oh=76Fo_@2if`8-m}^bFkG+;DbwhN`OZBz#E8 zz*{Eac`k=mEHax19%2uC%rUajK$Fbt0_ zfNHf0JfCV#ZRAf|o5pb@z}s$VwOXuKE7qG$B1jMf{N*@&-|YZW?N=!Yf*`Rr3`5qN z4eQk^aWIJmLn+auSrBfR49>ckzEdiAPj_S@c<6-0EM{kBwhfGCotLjUu6r5F?44hXuhQMkEqw+ z<4a+pL6jy}tN~BN41lFr0}Lw_i9N^|U9KWp(ek+^nXyFeb#NL-}+eQen*S-g~ZEph*LNK4tS$}yRC0)-QB!plxnP8e` zuAR^4JBdS%Fkm&>(Q36=c^;~&WCcxJ{`wNwX5)|O7(i3r^iRC)oO|yz;#`^-L51#KYu@$k6{=9bi3VHkWoCW*Ho)j zo*o~m*XvRVRoE(=UM};z*>IS#lmIR+E&!<4>i{$w4H}I`sy_>d#Ujs}4SKoEWHOPG zEi+)6ChqMmwrw+;PBWbthC#dCmR}sj+1XiUdx+U|if!Atx3`$4nVkXS_!uDsjb<}8 z*s?4+=YRA0oXgA06hYWF7z{ECv(aoKgupmHj%7fLX5h#5H2{S|fm*F5$@~5O)=?zo z$+p>S20*{xXEYko>-Az82$l5v$;tiEXc~^=d@KV|xUP%qy0qKv+<(42trT?kjld&qa;Q`_-p$suPql%3kn z?tfo`oeb-YUGXDG*3-@aeBY<6>+%r!U!3KQS$ZC2U1u3Nj)#cVz;dyWzk?u%Jpk2e z71-Wtk~Zv5j*YIcC`T-S^=d_{)nd6=u=Ko?6W{mwdotni=?Ngy{$tztzMmQ!1OZFW zW4TzQE+#U7@M2QZbtx9f=ljVC_xJa?wky$W=8pA!KgJOvwi)fi|8Y50e)skKUr6y> UQ2<)w+5i9m07*qoM6N<$f*;z|)c^nh diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-4.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_construct-4.png index bf9dad0013f7c80f7cd856b24f31a2ff7e92741b..515b40760d8e7146dccd850215a3937cfaa29631 100644 GIT binary patch delta 249 zcmVn+avPnciR49>ckzEdiAPj_S@c<6-0Htx?NxXm>Phhh5zseSrje^q$nlI_lAEH{F z*PFsXofwTSg(W-?GXRzpmWU8{0q`M(y+Z;X7}pd)$N&N3(sD2T3Xc=`Y0uh10o(cK zRKQreSTl%s;0*AztEQe+_f0M!vy1a_fr#FK>Ch#YWI!%b0Zqxf$Gzk<{T%btgXQ6& zUz7els@9v~UdC@0RIjjEa(#ySP|YcuW7qltZ6P+1f5Ab700000NkvXXu0mjf277AT delta 953 zcmV;q14jIb0>cN87=H)`0001UdV2H#00W9iL_t(|oW+;VZsJG~#(%b$v1S7XgdA}| z(+5}|2vWo$Z-8>*&NFi7Xyp}9B$5M*4@`Wp(n8^1cI0ei?_tsgW1D1>8OovNrXFj(#H&m zS#LH8&oxcsZ`M7gm4QMpq25smE@vsB{H zOz=YfRS2RC8Gi%;#bPlTMp%B~NCkJ*pa0u;} zP`_>~*MYadah#8+f6M{Lap?E^A9f;@0|51UoyV7?QMkUoMoJm~9}EVu91e%^d&{yo zKR?g3>HB`R1FD0$vl(B7NRb0bDY?A7L`sS0d0bsxC4Wezlv=mjjmG0~=1d>ATWYl$ z-{y0gtybI#b=Y+{vs~sW2sp_oCFO)=Su`3A48x$=Y|?BtF${xlw;NfOm8l1CQY`Wm z1eoPA)9EyB*>MDH+vfJ>1^~k_sMqT$BdX25%s4S-Sr&P-2XJSzxR12Y&axw5ot`3u zpxJ6Alz$z^iPv08$?ffJia@;^3!0L(qlLzKNbN^9Y}-_sR;bH*NPp-!Llq2!${3sQ@@I_Y>8#dk%BIO`?>MfI$br>z8UK!= zDDeQ)YBgYYt2vZv{7`ql!uB~54s16YI-L%y<&xEUoiY-JA^%LL{QLboK&JdQpA&{* zN;irkR_isZn+at4TybR49>ck?ReGAPj{oIDm&Z05lFj;sQXNz{LGmxdr9MP|x{6^Cc~P5RIA~ zzZ4dlywGT?B`^ya1Hkxd3A`sW1;B-Bd6xz3NYKjTzh6dihqFLZQRcXM9cz2C#ROu0NF?#sFd#-?-W(^vj$%x{?`~< sSHpdbuNE|}P%U{p!+0olN_Ff}KWq;+kt06!Pyhe`07*qoM6N<$f+Ip+rvLx| delta 1006 zcmVXWQ7tY_Zr z?9A-0(Cv0J{6k3eg%EP`W6$$I2stS~0?+ey4iG}%`##oD1b;@a5v7AZxW6=JPqSte94+q5uFUlSwYh(*8%)TJ1d=aST;aaA+pk zl7A%x8Am2bf`3Y-QXm($HYrD%rhEqgKos9sB?IvG_Es?VJCG!a+1@7yu*-o%2!Dk7 zw5?JHJ_5&a&QU+l0mpIB@AuDkqL2ds&}cNU*(MFe{rx?{Fl4_6g8`GaZL|M%UB}JM z4cBH61bhc*2YYl~d?lnn4gg^o;_mJaVHm>qeT+t<9DivThC-*)$;RU`ccz;-M!jCg zH_wC7YOziz0=o{UR;zeT5?pdhi8`U{I-1QUWLbt~S+Fb%vMi(1>14XDbM*k=vQoio zl0dCiF`La;%VrTUO%v0H2LOO9%V;zj1tYZ0ZfBeu({&wXvj>1j*JXXgy1r%+5W3xN zMkAnU8h^fAT;Q@&!6uIJW7`KD$H8DQz-TmrEX$=NNs{39_7=8nqu1-P|366*v-$ny z1&hT3rfKf>0vdtv`5B();n8)OGR<}h!!TeN2KSwUR~?V83(xZqK0h;Z;2;O|t1A#f zV6RevrA1bQGLgcNe%$6hOT90$6tpIm}4 z3=8C+Bnd$faC6{f1ojbzp`hzJEX#VI)!q_VmW5`sS?XL_1PVFuS(dShV{ZSZr8XXq zkt7MG(FEhIO~ZUX=XS!wGNYXk0BqZ4Wm)FLWu<~3 z2!Bx1H2A*HPDHE~3&L*BK@dPWXhw(a)wXT)`+aW0@xW`tz}{xWJH;FWt&We7AH!MO z@wwzc$!^F7rK7`t1Vt{9E?KW1+C00>XFp{Pz{-4e8{pAG!xbmCl zAx+bQZkAuEdT%j07*qoM6N<$f~?Qn#sB~S diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over0.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over0.png index 8141637bd69025bf356c13441bf9d5b704d9f3b7..f6b33bcb1896a6421fb770b714c9f611c4ea85ea 100644 GIT binary patch delta 466 zcmaFC@sN3fWIZzj1H;_yjcNS%G}f0G|+7 z0|NsK3kzpwXLWUTUteD%BO{>9flrG5K#IL2$S?Rm7%)hAGrIwWI14-?iy0XB4uLSE zsD@Vq&=Mz47srqY_p8&p`I;4Y>Rl_({{R1E>lZJP1uh~c%iZ2 zail=9RZ~H-!-Nm_BjaYSP-qp=R_yFrq2S4z=JDwyXM%?7Jr46@ENL35EMW>y#hD)- z+pyrm<%}lV`GP5?6)Z;ojmnhQ}Ybs|o3VO_%x}METVRn0|p`iiO-F+qE ztCx6$6sQO>{rTP(UGQ_?^GuG-4m@ANac?etk30vjG9OyC0tj z{w&+BclvpM?TPEW?Uoh0`u9csVr-E<-^AB)aNA!-&f|WuI_X?_z))uJboFyt=akR{ E0L$CGF#rGn delta 1118 zcmV-k1fl!k1Lz2l8Gi-<0063Kaozv`1TRTMK~#90?OWSUB0&%>$RfDFFvKkJMTuFL z#Kl+RPx!h1gyB{8!MHJq4+cU|F3X^aY)&slniddK&CmmTl1||;0##GfbvZRLS~Jeh z&PI}7P^nZzI(%8T0T{(%@xya!wVFClmr^)k04VeD@Ic*8hkvr3xA451n;R;XN)uVB zR7Bq$7yY+IK>5?tQzhf^_{{aITBUqGKP9Db#sIkT*VosS^L@&B9>rp@sRaZ4D3$2z z?yfqYr4-KW0RWT-y1gEG+3eJN=}d?u17&ZNRfa(>_5 z(qXYkFT)|-*X!@jJvus~ySuxoW7TRk`l&Eyc(~$F9wF}J=54(;%4pgP(Gbbt7QXDdBC?qL4Rd<@BkWzJ~BK2fb#u*-^zDK z&I4>iya`@hT#Rr<8jXfp=jZ2>_kzJd$(PqxC6UVh84Rf1ZYzbMxU`;^LhJ#iJF=Ua zfID;Q`mkAIKp?d@&uV)A1V{S`LEdjRM3ESDiU zN$c@P-T(2{=So#crD-e5t z&e!|CPpww#T`EjkI=pdVQ0MDW4}jL{*mAAlJENPTAU43Nc>A!hlBOuy<79M&u}Pv?;u^%XRJmN9#JpMjJ%f3H z`&vy^jhqBUo*F9@3QB?*g7P0RLtZYoSpUh#slj0 zx|$t8KLI5*Hp*EZV9p~*;moKk9*STfWzJ?Y)Y3|6POojlnQCxW7by%xrW{_?9D2@ct(No;p+nbt4*vLm_6p5P2C^i}U0xukIHk;}=@>d0x zQaELRb<7SpV}M?_t4I?VVcsOkQ@c%xL_*CYu$02N2PYxt%@^<-f-a?SCKX=x;c0Uo kK?-N0z_Q9%okJj^zuW-DBb&$^4*&oF07*qoM6N<$g7GUA2mk;8 diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over1.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over1.png index 6f2bcb665a352d0023c9ef17c2fc5fb6c7cb60d9..a7800d9dcc3075ae1afa8be8f379d8627587d222 100644 GIT binary patch delta 379 zcmaFF-pxEgvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKQ04 zk&%&sfq|2gle4q4y1KfBg@v!LFHrL2()T_H%&Z+J4{$blSa2D>4IJX_mstQ4?(A)eM#Lg1F=4FMenJDLn60i$b(gN!7B} znqJR>tKTR6Vqvhps+<=zpCMuOeEWlS%ol%7Z7N|FN@GcTDK(vIS@e&Ik{MsuuUT^W zP|(2=?s}W%NlzNyawZuma8w(6vtHJ{V_Z-dWpMKlJB#>?#@pB5Y-hRsjp57wgsm2j Su4n>%&EVSqHAKuN_~d)9HxwRp!ET0q*bb9e+B{NCqOhB72dwv>#hBk&*!ODtBKE&xiC%u#Ce3cVzIbp0qArj z5}~*fI-AVNkZ}Sa)FHkj#BK8O=sc_hhYlDg0OtF!0NUUKq}hvMGMQ+(pYJR{H`x0D z<#Kt6C(`ft#c_9cxB6{9n+bk?c@YffCTDdL)oPX127mjSVOOv%z;2Eod1sh2p6b`j zOYSYTf-L}^IxrfI1n+7AUPGGzWQ)^w=w7 zYytj^Mt_t{r3CvCTAX0WTC^Oc0OrwL#SAd?k#J{kcMiNw}(FfaH!9*fU%cx1C#Bg8sQg$-zfr#K0~ zy#U7duZIW0y0)tK3AO-gz8*;pnbtZQ0Z7TyZ+}W>nGUu9YQCP7WX915;CHYEa4T=W zFSxRGlgs4ktmAMo6^)l*GeX;%{~fkn;>g8(lEQ0(!lk$S@5C1IlDF!clIr0DC4iW diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over2.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over2.png index 8141637bd69025bf356c13441bf9d5b704d9f3b7..f6b33bcb1896a6421fb770b714c9f611c4ea85ea 100644 GIT binary patch delta 466 zcmaFC@sN3fWIZzj1H;_yjcNS%G}f0G|+7 z0|NsK3kzpwXLWUTUteD%BO{>9flrG5K#IL2$S?Rm7%)hAGrIwWI14-?iy0XB4uLSE zsD@Vq&=Mz47srqY_p8&p`I;4Y>Rl_({{R1E>lZJP1uh~c%iZ2 zail=9RZ~H-!-Nm_BjaYSP-qp=R_yFrq2S4z=JDwyXM%?7Jr46@ENL35EMW>y#hD)- z+pyrm<%}lV`GP5?6)Z;ojmnhQ}Ybs|o3VO_%x}METVRn0|p`iiO-F+qE ztCx6$6sQO>{rTP(UGQ_?^GuG-4m@ANac?etk30vjG9OyC0tj z{w&+BclvpM?TPEW?Uoh0`u9csVr-E<-^AB)aNA!-&f|WuI_X?_z))uJboFyt=akR{ E0L$CGF#rGn delta 1118 zcmV-k1fl!k1Lz2l8Gi-<0063Kaozv`1TRTMK~#90?OWSUB0&%>$RfDFFvKkJMTuFL z#Kl+RPx!h1gyB{8!MHJq4+cU|F3X^aY)&slniddK&CmmTl1||;0##GfbvZRLS~Jeh z&PI}7P^nZzI(%8T0T{(%@xya!wVFClmr^)k04VeD@Ic*8hkvr3xA451n;R;XN)uVB zR7Bq$7yY+IK>5?tQzhf^_{{aITBUqGKP9Db#sIkT*VosS^L@&B9>rp@sRaZ4D3$2z z?yfqYr4-KW0RWT-y1gEG+3eJN=}d?u17&ZNRfa(>_5 z(qXYkFT)|-*X!@jJvus~ySuxoW7TRk`l&Eyc(~$F9wF}J=54(;%4pgP(Gbbt7QXDdBC?qL4Rd<@BkWzJ~BK2fb#u*-^zDK z&I4>iya`@hT#Rr<8jXfp=jZ2>_kzJd$(PqxC6UVh84Rf1ZYzbMxU`;^LhJ#iJF=Ua zfID;Q`mkAIKp?d@&uV)A1V{S`LEdjRM3ESDiU zN$c@P-T(2{=So#crD-e5t z&e!|CPpww#T`EjkI=pdVQ0MDW4}jL{*mAAlJENPTAU43Nc>A!hlBOuy<79M&u}Pv?;u^%XRJmN9#JpMjJ%f3H z`&vy^jhqBUo*F9@3QB?*g7P0RLtZYoSpUh#slj0 zx|$t8KLI5*Hp*EZV9p~*;moKk9*STfWzJ?Y)Y3|6POojlnQCxW7by%xrW{_?9D2@ct(No;p+nbt4*vLm_6p5P2C^i}U0xukIHk;}=@>d0x zQaELRb<7SpV}M?_t4I?VVcsOkQ@c%xL_*CYu$02N2PYxt%@^<-f-a?SCKX=x;c0Uo kK?-N0z_Q9%okJj^zuW-DBb&$^4*&oF07*qoM6N<$g7GUA2mk;8 diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over3.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over3.png index 6f2bcb665a352d0023c9ef17c2fc5fb6c7cb60d9..a7800d9dcc3075ae1afa8be8f379d8627587d222 100644 GIT binary patch delta 379 zcmaFF-pxEgvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKQ04 zk&%&sfq|2gle4q4y1KfBg@v!LFHrL2()T_H%&Z+J4{$blSa2D>4IJX_mstQ4?(A)eM#Lg1F=4FMenJDLn60i$b(gN!7B} znqJR>tKTR6Vqvhps+<=zpCMuOeEWlS%ol%7Z7N|FN@GcTDK(vIS@e&Ik{MsuuUT^W zP|(2=?s}W%NlzNyawZuma8w(6vtHJ{V_Z-dWpMKlJB#>?#@pB5Y-hRsjp57wgsm2j Su4n>%&EVSqHAKuN_~d)9HxwRp!ET0q*bb9e+B{NCqOhB72dwv>#hBk&*!ODtBKE&xiC%u#Ce3cVzIbp0qArj z5}~*fI-AVNkZ}Sa)FHkj#BK8O=sc_hhYlDg0OtF!0NUUKq}hvMGMQ+(pYJR{H`x0D z<#Kt6C(`ft#c_9cxB6{9n+bk?c@YffCTDdL)oPX127mjSVOOv%z;2Eod1sh2p6b`j zOYSYTf-L}^IxrfI1n+7AUPGGzWQ)^w=w7 zYytj^Mt_t{r3CvCTAX0WTC^Oc0OrwL#SAd?k#J{kcMiNw}(FfaH!9*fU%cx1C#Bg8sQg$-zfr#K0~ zy#U7duZIW0y0)tK3AO-gz8*;pnbtZQ0Z7TyZ+}W>nGUu9YQCP7WX915;CHYEa4T=W zFSxRGlgs4ktmAMo6^)l*GeX;%{~fkn;>g8(lEQ0(!lk$S@5C1IlDF!clIr0DC4iW diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over4.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over4.png index 3fe7b22905750d1d114672b453d087f53cd4a22c..9e8e9dd40ad31ec3840a47e52400f19a1171c665 100644 GIT binary patch delta 377 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 u19YwcN5_cW1HcpDIg-i% diff --git a/Resources/Textures/Structures/Walls/solid.rsi/reinf_over6.png b/Resources/Textures/Structures/Walls/solid.rsi/reinf_over6.png index 3fe7b22905750d1d114672b453d087f53cd4a22c..9e8e9dd40ad31ec3840a47e52400f19a1171c665 100644 GIT binary patch delta 377 zcmcc5-pM>cvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKQ04 zk&%&;laqyog|Dx#v$M0hy1IdZ0Z@|nAH!cD#ZeOE7yKUr816OijRcBu7I;J!GcfQS z24TkI`72U@g3ml%977`9-%h(&&vjUV$JI3J*Z=xGQ{r+~u>_uOIm=vm@|N=?$DneP zf_oDMlpL%+^ExIe%@Zu>QPdIj*}kEQO=dakWZgXqH;iB8F`kcof8w^s>>Ev+KWqsx zxO-?GBg?*DdzV~16m+nJ`*nK3ypWx1JZA6FPk6v^NiB_4P9Zlae1gz@!yv}fd}oRr zTef)WDs*Z6Vm11^Aj#o?%sUA|5ulRu3m7sd>;CX{AIp{5k zDzs6m(7CDD829h{)#>2w7rQg?KSx zxx+8u#?SSpe*o_6!MHJ^ZVbc#E(nN$&Fj#UVVsrOt;Xpd=OvSu;Cyt|yy>p4DkH?i zYPDkBpjNA`%H=ZM-Q7_%8WjidC6l4W>+9C*FD@=vHbglW2Y&&f12h2#W6 zdwcZj{@!9PjB!9Nm!p^YoYI*L#p7{{xiCrrH#awe=kxgnb6|`E_G2-MM5Aw*i*ORu zU<{s+NG8Q;PUd1yM`I5T4g^EyMCy!ngBGDM7~$~Gt1Bv%%VM_g-rl}B_vGY+uCK2* ze(Q8PEE}{?0Dp|Xyu74*K5s2`l}hD}0$QyWB@zkBX0z6{olb}KY%Lss5@d$`;sDM@q_*yJdDwz}tAeT7+3ZQjFIGIe8Jli-0s0MoyY&M%Kypdk7 zCysi(ZvAaGoeF+gECf%+V|t!WX)qWFgJF2P-DZs;5`W>Dz*c}$j#8#hK+ZCB{a&qF zVXfa_I{_q|i-lYNp;{aN((|=Py>G+uT<8fhhpcH^N4x{ZX;Z(rG!vp2= zd6ECa%pV8^xS`waZv2Ym#qaTW7ms2i+zoPXAZ6}kQxGbEdjmPaIoT8_QGkruvDBFc zwgV8{Ab-LGW1Sxkheo-8y$qs$_wDddu$Nk%ZU`qq4aVRrKD`6jbHHdc`mgH(vl)_` z8atZ=wgcqeUNUxipUMG9Wh0k|geLO($y7?s$UX>c2c*^+TQEx4kB^V8#S(4-Wmn+m z1a0+tM1v@6O*Gy6yFp1pL?$~?&O$}Uq==9m2Y=Y>^<>)^nSxIr2(cZotGfM1VJAt^ zQmG`^nHAP?tIRHqRjXBNeRHedOUSx_v#5D~er|SYtXM1xMr8=bZ>tRH1|<%VZ*?}C zZLJL=d7=~84uJ9Y0_ipd=oTX=p9D=)fbUIGjYebR1}LMw*CB#W&i>h*ot>HABxMJ3 z3V+)=MC50u0@^tM36=L0Ao~yk)gxqwh!w_Tp#-M_WSoK3MisPk0NyO}3TUEmQ-HG{ zfeS5LW!*w%8D6VKxEs`944$y7J_O%C0j&F8fM^mMDlp~-$z1sEfYEwcbAx@ShaRIs zp|DYn4*b8&Aj*`-a=D~_zb_ny6ue|E!c9p~gE4rNS%G}E0G|+7 zXJ=<1b62E@JCI^33Gxg6&+v4+ffta+S>O>_%)r2R7=#&*=dVZs3OahaIEF;Hzdd8f z#o)lhbnwal`F1QDIa*#H&eJryIzQ`)r3oX0M#Joe`jelf7#f%u0vH&$9;g{?o@}Ge fz`$C-@S<+&dmcuqW!?5b(-=Hm{an^LB{Ts5HSak) delta 750 zcmVVi|K~#90?OVZa;xG^$5HwU&h!cmc3gXD- z1NZ`Nd@eWm0X~2;f~tGqgb=8tRATk4I&w|6OEpe2CVo;hNQA`m{NfpBh6*upKA%|^ z7>!1(3(RISmJe0Vk8c5i00Cnt6kZX~Y&NN0tI?mAm(+6M4SxaccAMUkgqjZz6h%>L zx$sH>tJO-`BuPG54!j}Yu3o1~wR&N>2#cVAFN*8SlmwU@1K4@olaR}s8o0^uoYm-@n5Smu> zDxhdMBY>G3hXe5#0Kdtth6NO8iYkqz!(Ze zAV9zv3Pm75z!(ZeAb@)TvtIA&RrODTO@LXiM^QtUwMs((8TIVu{e&?R#(&omdj=4dAcrO7d5>vjdeO5Wl^YT z8x$~xtB_Y8LQsH!FaWak4ml12lVI9d_X*1v<=D| zToX_p2aKM+K!H1;?kfuX>kZMm8t!9!wII1dwPYEC3`#|*!j`%L;+izORVftD00000 LNkvXXu0mjfy?s#@ delta 853 zcmV-b1FHPt0pJFZ7=H)`0001UdV2H#00SpUL_t(|oW+;TZ{j)>#ebxQ&`Ai1sv;I` zqiXuHXxSqE|7G`d7QBus4=f_8DiD%a0#Z7Q)&}wcnR(OBk*t&4*uGaM*VlHf-|xTj z7jY~fT-QC=SqOpax(B%mgbe=auqgGTG}``j7!@ z+aG$p9*ZzU)3n0&?fxFeaZ367!$av4RttdPaJZxL@ph-SZNI4zMQVVAVVcBIgkhTKx?ad} z6w&Q=iK8el{eQcyZQG=2s_a^}qo!?4%Op_^Hi?tGzi0W!c$^z2$7bg)4WJB-dYzi4 z?Pb~TS5P^Ck3!`Dn(xV0m8;^o$k^?60dO4WwJ?wgLcg6!G873qcUzc^*QDT?M|~-vglQI!TgH zD_Az2P6xvvRq(0ALsfaU843x8JKM zAomR+#D7}=LI^z1tE9jo$RIydfqnQC1>!i)<-n&Y5Wa7v+fD&x|5XKYt3YnKLWrCK zf1(cjI~wgMpz6SQJm%==2u;&eB`i{4Fc=)+T z^1QW`%JNzTSrwYPuFeBlD2biPft=C*$T(DZNY1He5 zEWdA$`(FWUA50ff#OdiNaTJjxNg+3M9pCqJzcYKj+#5iernD`K`PR`H-g4yW=?Q?d zPKS9Ia@Oe(%w~$q5X@#cww;?3GC45cGs&Mq)`topS}f@Gddz3D!bkyTK|sA;=V>}s ztWN8?;$*ojy_C$ukojzuyO^i|kBs#fR__ fm($wczMlUCaU6w_?t%9p00000NkvXXu0mjf@qezW diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid0.png b/Resources/Textures/Structures/Walls/solid.rsi/solid0.png index fe570c054fac195b1de49c70d9a0856eb79ebc8f..3849504b6ff74b96092fbd1ca668480707dba2e7 100644 GIT binary patch delta 375 zcmeBUYiFJySC^ma`xE7FNEeY}q{tpBUzqj!P0|ht>JR*x382Ao@Fyrz36)8Z$ z51uZLArbCxr@!TEHsEmm{q^5@8;$b%9uvdV4Jos}{Mj=xd1_bGv9?VO5jVNBa>b5x zIbSHqW8An&e9NU(j2j;bhGaXe*}-zHA>t!v50EbspuVdiqL904N3T-Fb$Q0dh@A@= zj&D7e8nV~=u;87@3(q+^ISkCBA`X-an=N6NU1Zt+Xg1$K76c%X8{?TXRO-YIuaU2NCS_WPHh6Z$L{O@pKmvRWpw;?eY$mm!{H{nil{7 delta 769 zcmV+c1OEJn1C9oe8Gi-<0063Kaozv`0@X=GK~#90?VDe2qc9N0KN|vgfe4=R$^p{X zoFK=}33%Ne04WCu0umy^pMA)ZW>?!luxoo8eiBk!*_q+%I36HM&5Prh%dQpzL{WtOevdrM;4hb>=lQ7{;he z1lkDTFPHfF{*E9F;d>qkA%m9)v{(W?K^Ou6PGt$tbuskqSXC9bO|1j~07|bx*#W5Q zdem4hd)%M!MTiOTVYC%M7PA1V9Z=0IfNBR+GYg>Ffu6rJJgy_+6KInNd7gLsnNo_& zP@bYFzip5)hN`OI{=UI~L2#}4 z1J@paF@HIOEVu=z>l&2OhqZjuyqckuYIh!x^Gr~Nk%_!~9xw}_+5y$f0;qOCHM0OR zjPzCEzW%>hEM%A+g_PoGb-92srd<*QXpp1y?+Y--Zhs?$z;T?xPEi2Z?RNkF`vOrE zAx+cU?=m|?v=9IQvMhsXnxK?|5CX>7s0iRi+j?DK?iH5AEP!eUR5J^p+5y#QE5OUO z%J#Hv3&Su#@bN71GrrwRQ|aM=APn(?F%$#+2Ed=`^Hj810!5zVZM{Z%I3O>I!G44L zzGEJ=iGcgw0hx6JEd)rCL|OB+76Jh3s>Qzm*(C^1fyPf~00000NkvXXu0mjfg`Q$I diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid1.png b/Resources/Textures/Structures/Walls/solid.rsi/solid1.png index 4374ed1e1011027c4388033aad7d9985000188ba..9ac2271692b8f0116025dbc2b68c5e44b53d8e06 100644 GIT binary patch delta 257 zcmbQwJc((7WIZzj1H;_yjcNS%G~10G|+7 z0|NtRXJ-ow3twMfpjd%duQ-rmEeY}q{tpBUzqj!P0|ht>JR*x382Ao@Fyrz36)8Z$ zYEKu(kO=p;R}HxiCZ=!HT&UYt2 z#VWSt;<;yZ(yZ+(CUO19%Jm4;nl<6rffj*HDK$MCC-!WgbTItEUh&?3!>(hG8Moy+ zKR?b~65D>RpFKnBqP7kj|Ap_iR`zlaEci1WWu29u(+NvgHejtf%`%RLsWy? zA7#6~#TmBtzQVgCcKj7yfFj9!fyv~Ntz-7bTvx%Q-?jJGe>fn(ej;*<$N@oi56#$z zjf#8^<_P!Be;&C?!AT||avHaZ#SzA~#2=q$wQqg)_^Xj+dhxvFo|=-+V?;mZ{g(%u zUJtTcgfrmt{-lWvZxmyE#j&+um&(4*h)t$Cfb zX6v%t{qH>g*Ub8E?>Euwy!f4eoELx^e5W#c)#C^ma`xE7FNEeY}q{tpBUzqj!P0|ht>JR*x382Ao@Fyrz36)8Z$ z51uZLArbCxr@!TEHsEmm{q^5@8;$b%9uvdV4Jos}{Mj=xd1_bGv9?VO5jVNBa>b5x zIbSHqW8An&e9NU(j2j;bhGaXe*}-zHA>t!v50EbspuVdiqL904N3T-Fb$Q0dh@A@= zj&D7e8nV~=u;87@3(q+^ISkCBA`X-an=N6NU1Zt+Xg1$K76c%X8{?TXRO-YIuaU2NCS_WPHh6Z$L{O@pKmvRWpw;?eY$mm!{H{nil{7 delta 769 zcmV+c1OEJn1C9oe8Gi-<0063Kaozv`0@X=GK~#90?VDe2qc9N0KN|vgfe4=R$^p{X zoFK=}33%Ne04WCu0umy^pMA)ZW>?!luxoo8eiBk!*_q+%I36HM&5Prh%dQpzL{WtOevdrM;4hb>=lQ7{;he z1lkDTFPHfF{*E9F;d>qkA%m9)v{(W?K^Ou6PGt$tbuskqSXC9bO|1j~07|bx*#W5Q zdem4hd)%M!MTiOTVYC%M7PA1V9Z=0IfNBR+GYg>Ffu6rJJgy_+6KInNd7gLsnNo_& zP@bYFzip5)hN`OI{=UI~L2#}4 z1J@paF@HIOEVu=z>l&2OhqZjuyqckuYIh!x^Gr~Nk%_!~9xw}_+5y$f0;qOCHM0OR zjPzCEzW%>hEM%A+g_PoGb-92srd<*QXpp1y?+Y--Zhs?$z;T?xPEi2Z?RNkF`vOrE zAx+cU?=m|?v=9IQvMhsXnxK?|5CX>7s0iRi+j?DK?iH5AEP!eUR5J^p+5y#QE5OUO z%J#Hv3&Su#@bN71GrrwRQ|aM=APn(?F%$#+2Ed=`^Hj810!5zVZM{Z%I3O>I!G44L zzGEJ=iGcgw0hx6JEd)rCL|OB+76Jh3s>Qzm*(C^1fyPf~00000NkvXXu0mjfg`Q$I diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid3.png b/Resources/Textures/Structures/Walls/solid.rsi/solid3.png index 4374ed1e1011027c4388033aad7d9985000188ba..9ac2271692b8f0116025dbc2b68c5e44b53d8e06 100644 GIT binary patch delta 257 zcmbQwJc((7WIZzj1H;_yjcNS%G~10G|+7 z0|NtRXJ-ow3twMfpjd%duQ-rmEeY}q{tpBUzqj!P0|ht>JR*x382Ao@Fyrz36)8Z$ zYEKu(kO=p;R}HxiCZ=!HT&UYt2 z#VWSt;<;yZ(yZ+(CUO19%Jm4;nl<6rffj*HDK$MCC-!WgbTItEUh&?3!>(hG8Moy+ zKR?b~65D>RpFKnBqP7kj|Ap_iR`zlaEci1WWu29u(+NvgHejtf%`%RLsWy? zA7#6~#TmBtzQVgCcKj7yfFj9!fyv~Ntz-7bTvx%Q-?jJGe>fn(ej;*<$N@oi56#$z zjf#8^<_P!Be;&C?!AT||avHaZ#SzA~#2=q$wQqg)_^Xj+dhxvFo|=-+V?;mZ{g(%u zUJtTcgfrmt{-lWvZxmyE#j&+um&(4*h)t$Cfb zX6v%t{qH>g*Ub8E?>Euwy!f4eoELx^e5W#c)#NS%G~10G|+7 z0|NtRXJ-ow3twMfpjd%duQ-rmEeY}q{tpBUzqj!P0|ht>JR*x382Ao>Fr%o3R|8P6 z(bL5-B*OjeRY$G{10I))SHAsAzjmO$e1g{tr|`^sMHl>C1EjgHz1i`FEp4R(YYb}< z+m3am``_-GZ5h(YwS(&k&y5yKk$De}$^81y^6!QJnT0)#c8Pp@nfBNw@`Wm-C%C!K zSjtq*@?#yxW*z35n=O%L93R?+(<0d_st@VN`x_kNJXvJQ7%IJ^8R!}YPgg&ebxsM4 FO#r~nUo8Lt delta 408 zcmbQiw48Z@WIY=L1H-D!!g~x1jCr0ejv*Cu-p=;UI&2`qFkibov4*YD|Do`Y8~4~t zxEk{k3N~*n2wxW9WmoIA*ew6sDQPt&vCc~zXDs@D8}LjD5_&$z;<<~2133TFEdd|lF(lMRc zgB91>1-5W$U16*b@=C8rSivk49`#S_6@zbc-O}Z5vJ2k-HnuUi!YH@%WT>%zJ>Lef z(GX8KB!e9MN8$g8zfI9M{D?=Ne|tq!NP9xz@jb$$Mr@x|%M6%BKY tt>pP1>7V?sTyq!PdPL6pGB6GpJYD@<);T3K0RWGKt~USx diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid5.png b/Resources/Textures/Structures/Walls/solid.rsi/solid5.png index d4f50d419fb8f69add5073a70b824eeec4e1212c..3c0b42ddbf73d53c54c8da7192a85975e452677a 100644 GIT binary patch delta 336 zcmX@W{D5hKWIZzj1H;_yjcNS%G~10G|+7 z0|NtRXJ-ow3twMfpjd%duQ-rmEeY}q{tpBUzqj!P0|ht>JR*x382Ao@Fyrz36)8Z$ zlb$Y)ArbCxr$_TO8}P8aRrzjT{5GXNb!&*4R(H#kG&}J!mkO51TP%T^ZlMhpGq^&! zC9bnRs(r?_=Dcnq#}vVuFY7t){o2pHs(Dj0Q2GM50DJU?Wem?*JA$_*R65@G7Fa%q zW0lzL^8(ACFugZ!x|q&#EuHnB|8J{074aYXTLtv}`k zB_-V3B3QLgY>MQWtuUGCor0Ih)=V$g-+n6hB;B08zdG?O+1k+{_WIOqxu!hLNjmkNB3{?q}CCb}dPixKI=0&?9*EIBU!^n`!;ayt8Jp z0XaU}@4o!!{3o)Ykgt28V6IN!=6vGhPaE$c=YX+R* zbB*QY)cfu;Or?)s)Or;@gOlUopHusFx4 zPiAnjcrKkYo%dPgH_d`ZJ86Z+>gMwXe^i|rmri-Tc!Hg9LHEz<1Dp4X&f2>0JY!9J zXM^eTy&7fzOG`z>;30v)7^ds6o-SoQq%eE=|QcHN28SV5^Uz~ z`y=Lb;q}9WN&VbEYT_2G%1Kw%d+;s4_{cKOI^i>x+RuBQ0!{V3#J^F=Exq`bBrh;# O7(8A5T-G@yGywqjI>0*s diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid6.png b/Resources/Textures/Structures/Walls/solid.rsi/solid6.png index 95e408947910600e79ff7adc7072d615c27f7b37..a5a6dd285664fb8a9cf14cf963f055b368a6b75c 100644 GIT binary patch delta 264 zcmZ3^JcDV1WIZzj1H;_yjcNS%G~10G|+7 z0|NtRXJ-ow3twMfpjd%duQ-rmEeY}q{tpBUzqj!P0|ht>JR*x382Ao>Fr%o3R|8P6 z(bL5-B*OjeRY$G{10I))SHAsAzjmO$e1g{tr|`^sMHl>C1EjgHz1i`FEp4R(YYb}< z+m3am``_-GZ5h(YwS(&k&y5yKk$De}$^81y^6!QJnT0)#c8Pp@nfBNw@`Wm-C%C!K zSjtq*@?#yxW*z35n=O%L93R?+(<0d_st@VN`x_kNJXvJQ7%IJ^8R!}YPgg&ebxsM4 FO#r~nUo8Lt delta 408 zcmbQiw48Z@WIY=L1H-D!!g~x1jCr0ejv*Cu-p=;UI&2`qFkibov4*YD|Do`Y8~4~t zxEk{k3N~*n2wxW9WmoIA*ew6sDQPt&vCc~zXDs@D8}LjD5_&$z;<<~2133TFEdd|lF(lMRc zgB91>1-5W$U16*b@=C8rSivk49`#S_6@zbc-O}Z5vJ2k-HnuUi!YH@%WT>%zJ>Lef z(GX8KB!e9MN8$g8zfI9M{D?=Ne|tq!NP9xz@jb$$Mr@x|%M6%BKY tt>pP1>7V?sTyq!PdPL6pGB6GpJYD@<);T3K0RWGKt~USx diff --git a/Resources/Textures/Structures/Walls/solid.rsi/solid7.png b/Resources/Textures/Structures/Walls/solid.rsi/solid7.png index a880e87e0e001365eb01e4fbc7bcacb119635fcf..b4bc95f4f0d177ba63d815287f9152514b148456 100644 GIT binary patch delta 187 zcmZo=I>R_YvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|nfKQ04 zv$Hdhxhqn{9Y`^i1o;L3XL!2ZzzfLZEbxddW?S0SpXW57Z1cPqtBK eU|=m^cu_a?JrASQvTl2zX$+pOelF{r5}E+rfH=Yc literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=XFOdTLn`LHopq46*+AgHy3qF1 zCvvXy6?$yz`pa*4t(K|s?4;sz-vsZUee`-)*!vInbpEk(DHJ$pHXLAF%D}`vg^5EZ z07c+D@9g#GJ{xcTr?&CoN8td5MrJQY7CsGD0gDA94i6fFNE5hIXrJ)AUVd-BdHi-m-=zuCEe#l;%t)I3q2aD>@YnDx{W%%*Ncl9!C?|(X8u;i$cXMXPd;4XXf?u0LP4EI=1 z+-9f}PWaz+;QoW%@#f_h?yQ&QK2`VT+ml6~ufATaoEpdU>etsD@00qP9{nz4v|KJL T)$qsD3*=-^S3j3^P6f zoe?>4DJ8N5EciH%=>s;n5NQMUcv+U|0&F;dGyz9A09-f$S_5EQ!Gb^g z{t#yiSmTej#iW!K2Y`b5Q@nrdlTx@hjTI*kaM}5O$W{=7lLdt0BmpsabU-W~6+nRp z2T yq{e~OJCFm{S|xu2a^X@+h_jyt%CX_YFyI5HZw?UUZBdH3sBPRm&{)v#ZeOE7yKUr816Oijhv_`QQzq4;uvD# z-+Iwe=zszTi=)q!KmU(AZd6jr`DPUxvw*$7jzN@XMT~&Qe!&-enGCELZWS-syOrn6 zxj774q18-FPFM9GEVpOe=AQ7H@y2h?82g6zax!-tH@{bSA>FZyHPKw*9kYoyg$n>gTe~DWM4fZKYy6 delta 281 zcmV+!0p|Xs0;vL!8Gi-<0047(dh`GQ010qNS#tmY3ljhU3ljkVnw%H_007%bL_t(o zg~iv+4TCTYhT)H-S9&T7WC2u({fD3%WPorlhxA0%M1khVcD%sz3QJfSy!Yre%d&XY z6F0`7OTd9!Yvlt1Tq)Ur7}r|M1*C8QG682e0Ni@v_i^M8xPQXm`woC{1qc3G*HfG= z;1_?+GdAavH~>Ndj8%=73hbDS!g64xqxT z0x0p~0BXD_fCJAC;KH*4IPt#$xhIt+pyZ^sO!69*o>bBR?w!XItUwwM0(#)zfL=HN fsH;bV#C!lqTN3j#Z6XfW00000NkvXXu0mjf9&&e` diff --git a/Resources/Textures/Structures/Windows/plasma_diagonal.rsi/state0.png b/Resources/Textures/Structures/Windows/plasma_diagonal.rsi/state0.png index 60d1c0421b3fecf74c453715810e8e5ffcf32774..84f71e4833af719f7573047e0912d80edf61c378 100644 GIT binary patch delta 687 zcmV;g0#N;gd)Wn$BYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GV2?-KDxy0M>y?nqYewZA0MicipAZQ{^9p)f5#UPgNG2# zMiXaQK?+X3f>fL|AO|N4$i+zlO7P-@#Fw%JSl(!j}G9%qXIZ_ ztgGJv+_<%N{6{2#&lc0+3rOLY)9pJz68BBp{}D;!y%lKS?-gj_+s9^aG;u_P7i^Cp V9h$cs_jFzd0QSnQR(GoVYcXnbs zFV0i6R@y)BB>Vh*-}n7~-}`*u_v`!Tp0BN0a!=6@iU@+Zr@G2h2kr*_Q&<4L)y~cv z;5Ic<)ua+c@l5?Qg?P2MlpweRa($!L==}*NC?OLsDn7{+4@JOif^aQ}M|h!C(hNQ+ zAcxD0SKr-dG{|C^v4Qo{-blIBB3E@rrKO!U^+IQ>;1rDu+(oW92ONYXjW@(Y!LZ83 z%Zy3C9QdsdQ$|B_iq=|YT%-pyG&PsDu#xQaj-9_M+D=PZAI#1B^sd2PN$Qi8H!;@ zFoRS(!WthZ!|L3WlTkk&Nfn}UM3a@ULHEo1ls2u*Xw(CxuaSL)BI!V3b%Y(DNX7XG zWj4`NE+bJ$+eF%;!Q|3Jfs%q!ND6Bzuruehi?k@3qP8d#giNa^3=DGO^`>LzTyH3p zGqkEzv;zbqNOM}M^&Jt3s*_ZuEh=4)Fnrii86$Dl?chGkvPKawVul!LlT`#YN>B&S~XQgf{(H zFA58i3X-8_B?+V|S-6Y&z}V4IMNoF9+J>kIvdCqEI;?(&)hYQ&J1sg$vssczr@-1s ziFJs))9-NF^jzr03tVK@rTa~ej*XbT9n^aDW8n32)nQfR!FH-WZZKey!O8@QcKFRs zmUPgdM~P0Wll0jvHqvT!SRGD*w$cofJR4)pGbY`beI&SnRy$V`*L*-AfKP z<3d%*dfq#rH0ZfmDyJ8aiRG@T8s+8F? z9W@5tJH5+)|8DTkszIo#^AbeoJc4-US%SDV4DJ^RqKzhqubRQ@uCEZpY-RJ$4pkCF z-XqnXMfLH)gUg<7Jylz}@~r*niGjbo$cXc2iYJ%9>%4R*(!K0jN&I4W>8cz3-roMc zf|MVvDkM7AyO#`~XA)QL+hJ;O&_Akde&<+l)0TXycj5KleRlTr zf`W!EwkN+_ecv45Vv^LhTup{}U7yZ21~K=Gf0;_f-B_x#4^+xPT;@Jajk z_BXZM-dr00+pjG<*DPllbK}r&?W^7%e1Ds^=aDy;B^sXbUs=egU)MgpYtGi*!~2Ri z%;q+BCDiQ&#MJZu>Mz{9^|PAGiO*lJyt`ts?{MAh!W&hW?#+|WZ(Z`>+$qB**P6BW z@7;Lkf!eynVPad^ild%l;^5(hhSMFtfB#VaqruzppWohjqJyzB91x_`0>zZhF=aZ|^e=T{wGR;a|V**|lMK8ZrOGfdb#NbU!$9M0G`t Kr*Cods{aE2tbMlt diff --git a/Resources/Textures/Structures/Windows/plasma_diagonal.rsi/state1.png b/Resources/Textures/Structures/Windows/plasma_diagonal.rsi/state1.png index 1ae08dba8877a734110a8725e09d327a12edf277..3655b4b9d1598142be19b4db57ba0aaeb3fed4ff 100644 GIT binary patch delta 661 zcmV;G0&4xSdcXycBYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GV3IPN_*4_XB0KG{>K~z}7#na0P z0znXj;c75}Wdu)pGJuKCB#gtf+@lOKw*?P+6UAM39^GA?!1q(o0P$jsPhsLA1PBvP zDftI{;^)ofBuqSwcfSSZZ~#65OL*812Vvs7;g*goby$fXSm51)Zpr0 zP>ZVuwBTw1t++}+58fTni+2TR;LQPAcvFBTULBx~R|Qz$#Q|1$QGg}B8eon84e-Dh v1HACr08jiUz#IPxVBqfn77hTy!~x(14wUkwK{{2*00000NkvXXu0mjfpVcXg literal 15665 zcmeI3eQ;FO6~J$>WNa{$wsfS-w5|&bvGwJB?Dy;LhL8Klv-{q5 z-`nga2B8(FRw{msbnt^@94gNALpwreXsHb|L9MnFN-Y)BYAA}ph|-ZMR;%>B{m#wi zPNq8JKljb-zCHKcbI!fLbI;lL&--C}+qY|L7S;d&YFk@E9q4YeK37(wZ)0%qBD#G( z(b8=IFz3tGrwTms*a85=F}1VH>fMaYxji?b8ICe zMK0PTQps3$X^PCk7>q;BG>{!%(Jm3yP2Gs<(}XOlrwxp95)Kz*S6pvAUNN*`Huob0 zd88FBjn07tWILdtr;;*k?nhf$RB8978Yv}bk|#?u?b=~RoyN@46K0zz9;Q}$HZ>ei~7qNk1P{48!#%6G{d3`r&o3Y_3zI5#6WJ9)S0 z^oqRmn;b84T$z*HOw31ESJcQr$p?=Pw9v^rM3-B1xXXQ%&BT46`cWiPnvs|Cxn+J7 zS&Zn(xMT*^xYP^Tgx2e4OM_)Ii>FF#(qnoOEei%6ezwwZMXQi5r>tY$sL9Yk$uP>2 zgi@6)+~rd5A!K~A%gsQSSCM=Xug`7e z!YW?mqO>l{Z+3KY#PaQs)@vPua9C{B3{yheX$=L@K)s4q=J0V5UQv9E!1r(r^f=v2 zk6ZRKG7kk9k$HjVmF(G=Y+hPf-gO~5a$R}jZja*RdjzkwacSC(=hj)~Y)YV;k}7KF zQmkx_wHF2LMRF<;xrcKxPM1qy+|cP{Bw2Pc5!vT-IG`kWojrxURB$sTREuimeE>^? zm77)YyOT#tdCxZ9gp@R()m8%bLSHF%YBaTY`Lpdwlw_-A2W6}3A;LXrw6rYTOr4s} znIXveFEgJ$Mmh>LQrF12%FdeJiJ?c#w3LL6y{MjM($I2VC!68!D_03(l&#E|`Uw(Y zNd2EI4Ku5%|0@lZ8}DbA1`BvDx*V0XUZ@1w!T~M}%q(-cd`_;cLbXn%k!RueAz2!@{83<#M?EEIy1|w5u5y>k6spU(2xii33H-+TeCIHAq1RE<=)KeV?CJlacUEn3 zOGg-h!6g7}xf6i@Tt@e^0Hino&fSV$cijoV)%t@QpIZSy)tS~%V`t{oLu>xfHok0r z;L`S`&u%u6X9L&Z~JR%s0IxFx;s7BCb!*x?v>H* zKkZ&LuXS#neV#abLfHJfn{T@Ea}O?<1-`f|U41Yzd}zhMqLWWPb7#v-59|j=@15m- z?~TK6|MQxEtnB~#(RVL)zayMKcW7hc_cw1{e)~NSFR49$@)uY9a`e4_-8Z47zBcmA zPfnhOr_L^w?>_VQO;5V!ymagx;q_y$tFxEw*thw8yZl1mpN)rqeASIN{6#yqZ@g*U z-h*(%>VK~R`-lJbz(=E1^HT?I5mvXwfj0J)9V>U7aw*#vyYFc_zV5^(Ft+~0oY=&k z+PCiAx^azgg1hw7zQ*1A-rD+9fAzvAo>ii6UiHfG&*aN{_9+V=TR;1@^zF6Bp8&BV zFYKK-c?6nA_q=@k diff --git a/Resources/Textures/Structures/Windows/plasma_window.rsi/full.png b/Resources/Textures/Structures/Windows/plasma_window.rsi/full.png index b20d5ebd5efacbed1185a649c410e9eee61d80c5..41d24e9d2c47761eb99532452d5d92a59c25810a 100644 GIT binary patch delta 405 zcmV;G0c!re46Xx^BYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0YgbdK~z{r?U%ud!Y~kqtGH0;p-9-HK0_bFH}JkEuU>tCy?XWJ z-8b-gy2m9*4~4=Cnt!%aZNxUQE%A^ahS+v8^JOArGD?!<5`Q=p0fb>l4^b4+IJELS zr?DuC8vv3^De1$|5<(C}1%MYwz8A+`mSyls$+LgW<2Vk!}%OWgHY)J_YzqhgVhAYw z{GicR#qS@DoPQj@bpU+}9)#ow^op5)Hv({SwF3M%tjz?XwE`?`jg6Vg7+@%Q01w~+ zJb(u<2EZ|DW2R~Z;L}X?1?UZ|jZf1iwN`*3Ua_|1(EGJy%D+mE3I8FwNn23b)ROg{ z96~I_L~Ny6w_U4%vx|xItC{o5DLpw+5L^KS;%bH*st!1P00000NkvXXu0mjf?ijG! delta 1581 zcmV+|2GaSi1HBB8BYy@2NklZ@qG_2qqxZnY} z;0bvJZV(TExaStMf*lEI(b^t%);pe4Rb@tSkyYJ2?HO~3R;#FbPyg^c z9udbK(0r+b+cFHtF>JXPkL=~({#G);&wlvxw~`9bK?JBv$A9KNIiTv36J>iw2kIXjGv zWO!Gm;k-^;TYu-@)r-^t4Ci%Py-3~aW$pmd#&X_R0vO(u{_4wNjWq-Ee1w4f5%z8s(U zZTOafh~~T5@;)8w65_SGz>-#==H*#@Xt9(xdy6f?LVv^v5U!Oh1_%Om%948v!g}jT zozhl;yf$07z=J@i^)k+YQ^JRtq%H^(I*epLxXwfrV0o@5d`zFEp6cWN#>@I%+3`AE z`dvEKDnGFtjgB)SUL!d$sKX#8HCKHsfueG>y`FUdw*L7nN|U(NM}U6NKezB0W9hGL2%mx27HL#NAJdq+UR&_P`oyQ07Vs&i z37}HC{k=-9Iw?oYEX>|9Ofs!r=8hme3jBz_>updz)Gb& zq5p%`hv19l(5T-B58nk|I%+WaX-WV$^-7sQfGbD3dsANiFW}=vnV{2w zRex6Aivf>V!b^s4(uwDpvyW&Gu~JYE*L{e-Tvy76dJi0SKJT^4htB~-#g(95*MdYxV9NyVt~UV)Y_*B;63Lf-bpl07tL#J49_YT@fV` za5saWj2C4*1P3TFl}~{085rKWXl&PZRDa2Qe)1#h$BS~}LySIpe+d35%ahs7ZVh4D zwQ$odurb3}=x9}HQMPrp{|DTpX&)R~8bX^Hly-_(vsoFByn2~Cd~u68k1xJeVzxcfE*1d^$&Py1scJRAgs4m`1({9)a4{~&y$XRlvn+W^iknie4b=S zhu~$ZclW@h5kN_|`?QM~eQH6Ij#aE{ie?~`6y?$dFnwQdtg{W$*F>D=r|FA4w}$|w zM$1xOr~WuC9WJ*1o@uuuJBnc`a(_BgjxKL3`4pj~Z7-0uiJ+EiFZ~aaK@3E^7K~{3 zF)2*?O46BNY_oa$SZ6DlzL7|RPSC{=|5&nVW<~jl zYKeKOwNBnVf~#Y)tWs_RWgo(MmX6Fo1yDXQx0S|vQ_rD|eby;OVK@?vsxHr{rdPj~FiFZyo3kgZSq?I^drlmLw9b!{t#Iv483z!ao4L?!<9 z$Lr6d1eipdp!z7xlMKPb(|^+C-J8;U?NOCfhx2OI>069v)&c1I`F-Mqx!GO%d&@xd z&vG5#m#TzGlC6vY#TfVyV>k|Ys}0dvpYX8)st}{33J{f|q%i{0N{SkulD)T;6jPWo zPooe%x~H{uC-%&9Z!7-#_rILXmfUMZK4;bZ8Xmy0Ve(yd-Li4xS0=W$&31k;cCBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0*^^VK~#8N?VB-612GiGPf;jzC~}IEodnko4zAM04P#3DrzAo)h4fo3y#ev9&mizovWJ#9j~vC^b#Gew#KxT|9(OcH&~8F2;x z(*$UJb2U?3M1LA!Qd?V&MlbJ~;v(7roxJJ|=n+=YN1YMh12pEyZ;DH4444(c0E*rc z44~*O>|*F<{r-fSW2jXc7BNjsW&NjDjM(Xvh3m&32WPqf;#PB9!XrS@TY>=;y(Jhx z(HV^DHkAdo0hsEtq^mi}unjkr%PL@=?{(rsEsUC~D?D0(t+W@TaCP}gh zYyGFMuitc?0?>Fx2HA$$%9H5Q1tOO zm$?jrk_nFhMQ6Mp1n;&Vty^Llphk!elf9$LY>BBwPA)0ZjhL z^rp%J+kmnY44~*O!2pWhQfMIp%$KDvmab3r41yIT7E_o?F{NhBEc^YP>bxvn1i=7` z-VzL;=q;r&K+OtPaS?5Rt|l9ncMr7aqt1x$0bJUIEO8NOfa=<~yXj66WPA5Oi;Fk| z%;eST@7KEqKSf`2Mw$U*$!J2002ovPDHLkV1mglQS$%* delta 2050 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 diff --git a/Resources/Textures/Structures/Windows/plasma_window.rsi/pwindow2.png b/Resources/Textures/Structures/Windows/plasma_window.rsi/pwindow2.png index fe379e2fef50ab07c64a4f9ff75b663ada0ee10f..a4adc74bb5e0771858117099462f9ab51715dd47 100644 GIT binary patch delta 739 zcmV<90v!F15c&m>BYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0*^^VK~#8N?VB-612GiGPf;jzC~}IEodnko4zAM04P#3DrzAo)h4fo3y#ev9&mizovWJ#9j~vC^b#Gew#KxT|9(OcH&~8F2;x z(*$UJb2U?3M1LA!Qd?V&MlbJ~;v(7roxJJ|=n+=YN1YMh12pEyZ;DH4444(c0E*rc z44~*O>|*F<{r-fSW2jXc7BNjsW&NjDjM(Xvh3m&32WPqf;#PB9!XrS@TY>=;y(Jhx z(HV^DHkAdo0hsEtq^mi}unjkr%PL@=?{(rsEsUC~D?D0(t+W@TaCP}gh zYyGFMuitc?0?>Fx2HA$$%9H5Q1tOO zm$?jrk_nFhMQ6Mp1n;&Vty^Llphk!elf9$LY>BBwPA)0ZjhL z^rp%J+kmnY44~*O!2pWhQfMIp%$KDvmab3r41yIT7E_o?F{NhBEc^YP>bxvn1i=7` z-VzL;=q;r&K+OtPaS?5Rt|l9ncMr7aqt1x$0bJUIEO8NOfa=<~yXj66WPA5Oi;Fk| z%;eST@7KEqKSf`2Mw$U*$!J2002ovPDHLkV1mglQS$%* delta 2050 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 diff --git a/Resources/Textures/Structures/Windows/plasma_window.rsi/pwindow4.png b/Resources/Textures/Structures/Windows/plasma_window.rsi/pwindow4.png index 051ddb5681d8fd7b09d02ae046234981b17298eb..06f42755835f65ce3e62fe4024c3599f4a5ad172 100644 GIT binary patch delta 711 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 O0000!lvI6;>1s;*b3=DjSL74G) z{)!X^2Bu<97srr_xVN*n-OQUOXRFRjS{9=9(rMuWtGRu<=I-Bqq4NLN>t7EYyeoXvx%$fYvhbsYdkpvd zQ{Nn|o_`=}VzX5@3qz?GC&McpA%-iFDhw+&doTo~Ph?ndPKnWBZflL)hLD(s8zC)z$|_+V3~qQ@61^udsscLe|!Z^C~Hv4s%_Z8nByJXva{bAE!6n z{*ct<;GJd0S;&T#En~wqmbZT2>5!9kJIZ9)@O0(# z?hVIYg#4dTTl`DQ3#jCdeEi?nGwUDhU$FJvHT%%~g(;2uxGS=blvUKGw%ITrdi6^- zB6*YQ2HU?ypNv2n_N?9h9%!lB%WoUok9uoFD(E-n-SJ*?e0yBe?G29e82$U!$2OX( z`Idh7Dfy!2C6*%I5HhSf zm|fd&zG1^Izgdh2yOozn9*{fG%)GidGC1cipT+NoEH7mb>|@yy*13pB>CfH+S2kDr zSMCmw3a+osV!X!njUj95%&k7h9N4B>_J;Sby)R#TgPEgg!T-{mznC*6+Lojz@Gl5j n=@Ru?$t!u0hE)4jhn4e>om6P>`JQD8OqdLwu6{1-oD!M6!xN<~_!~=u~VJS$!X05Q<$oOMEx;WUzGwZM2?V0r8_7P$7qp%aa7U99Hhks0S-3M2%fBa+b8yEe? z<>C^dn!@B|Iu#>Eq4%~F*Mk6yQMI$N2vJd}&0M8hw(5Ei0HLN5W<#5rP!N!%XvGCe zC7~_^G$hnudY&dWQB}~Ts9*uGW*=}tJqR!u5hKm}VT2MCg#`=fQnCevW!~(zFp*q$ zAxd3+sDTAoY=34Gy_AsA@uSAEs*VNv%N{E(uy=caur&;>xWEADl%?D|0V6vMw}-(3 z7ExeWmVWO9v`xpdH4GM9pu@gJfsq{=wuZri3$)n7Jzz%|T)}=>0PG5b1s5oF1B5yd zpa@_kRGFNmYdREM07~2dp$-H9sO~cR1xn8ZWp|hD_Q&AI%QMIb67zs5MF;+s*6thX@8_q*$+>2fU9DO*u)$}|~ zn)kyf=$H`T=p=0Z^ILqrNybyx5xBvbfOwFe&VOeOLY7=)Vp9brQL9!&PB+P1^}E8E z0Dp6AROd9Pc( z+U5@>T0nj>yUPA2zQ8;00%fHlx%?l1F|$L=?iJa(vR9O80r{^t@{_;%bXc3oLpcQG zC!Mb^&hiIq+G~TV_kdE*@~gl*zX^JOFMq$``+{p@U;Z!P4F>{z55PC-LO^%TZ}$fB zTca)nKrwL|vzkQhlHUq7cq_MdrCThI*LKOBPy-9dAD^u&?~=Qr4i4kRh;3-m?qF9 z8nYpUk%uRD`n@|(+IK%${?Yh((c7N&H{N|ss5#oRRfHj1li^wr!@Z;)KA6 z=1CK0C@U{b;Y~~A5chA|eJ_6bQ(> diff --git a/Resources/Textures/Structures/Windows/reinforced_plasma_diagonal.rsi/state0.png b/Resources/Textures/Structures/Windows/reinforced_plasma_diagonal.rsi/state0.png index 8ad1f325b352c75d7f7b998f9cb704bbdf06410a..3e5ebf50361addbf92ffd0ae571791fd467800b6 100644 GIT binary patch delta 722 zcmV;@0xkWgeEbEFBYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GV6*!h3P)Gm(0QpHoK~z}7#n&+k z!Y~+y;V%WDG?RpkdWKFtj;o8i(9xmj5nLQRPLJUlic`8c)IpSrEjCU5{22q`c?k(5 z0OQE>yc3+bQVN0-x7H%z!keanlrnBWA5YU10OAGo@$Is#-}4Cv-rW`ee-P&kjNt&F zwWhrVWB65{3avHTwxtW0f*+boDL8SG9dN+`gbi@Tg9gmOg9XgRg9P~C-T}V2S3n4S zc0ee6RzOJHIUqFd6hMJb4xqv(1yJID1E}%iYF7zPJj=4-9f*Y+V}1i-;v2KC1t

8g6oNhQZu{wxx-Ib-us)7V~O z-+SGZn>A-{CzhEj&)__4FfGV$;T5&M#|+mvzA-G)c%@-!v*ydnt659_ACPlcDz#42 z(geuYH?56OzQMd=-`u(3;f8HNvzHpnizW0X@GrQ-u}<@*{hBY4mUnk@XS;}<@=%+u z$TR1N#5YNU?Q#3+7a!TtKYwn-POfa0YKHJ#;_oyK`5s(+a{2TIw+-75e0SXBEosqf z_{R9bpIa+md-dcu>8FL|AC`I;#;76PT;d=V@~<&JVD`+}8*X{b{1!j2=Y9R+lt!5YOV1Yb zCvNq;T=Kl|!!tH7u@kxm?|xcdHhk8*`8z`;+nKe~&!#u{l+QcACw(sC69%nbFRtu&H)7W5)=Te~_$xhuS!1eKb$JU{+?t$y+5y^Q|8?fQITpMUOo@wIBv)vSr@8=G$PI6^!L3WFGifb2p> zsIQ@cQmVhtePhIw#p%qg>i3+|s~=zgn2@xq;L8KUk8AI{h%6PtjZlOq~p#u6{1-oD!M&HWrgUS7B7#0x#fMTMv@iNrAN&)<7a>@oC4wOMN0_(xpirp@Emn{O zf?%jkXdW6i*f#g1+1q4xX2*xwT)b_hXE|pi`+1o&yXWlpw}0Q6Gkf^`&Wa!i(8=)C z3o|m~?@#{pn#}l^%-~iq|B(|m>H>~l47(HD#(S0>wk;2E!8gIofd5olU%LVQvEGCB zme|7$0{XF82^{F?1Yj%}fDRylo7Pg;t^syNT3@>X-}FsT@hj}scDViEE&vzvZ}X(| zgtO@vs0VebUVjC{G`X|zBj?ESR{jl=BGnRoq5BzdW$uF+fS=tJVnVQL?1gXm;o%)? zfLl8cA=7aqL?H}Qa;#`ReD>Hys0cQ|7KE|d&N)uECA z0R;Wh`q~ZXxlyABIJo5dum7#5dE~eUbce@DIeqO0*nbnf*L3O|I>n{yJ~hh8NfqLt#G1JHyU%PHk^io(W z^KEv5_aA-2Qhk;Dmx-q1R3N<&I_}Fy9i=Nl->&XX{@N~%jBgzcu+JYf5$WCn+r+fkp*i7#+Ri2|NN@UGA_}X{p04k@zwn@?y zOfSxc=W$1wbTiZ$kbcZ^vWVk(6s!^$(SJxsDvZKn%*}B*e`Y?BJAC zT0I&Q@fm4FE+SF}Y&fgDI0}O+LRl@N+mXk$D zKUOELOsN@-+`#4hCC1zwU@4Q1hAsh?4Qv99{|5Vh^ZqR)8U`HA4b%v82a5Ou_vlqc T5^UWA00000NkvXXu0mjf8ooA= diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow2.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow2.png index 7be507678d49517ac92392e78b96843349952311..31bfc29cf0acfbe6522db842e91025891a0ce052 100644 GIT binary patch delta 749 zcmVy+<)xbo%zAz4P%15|Gt@d zGqYJqN~YWGK5)~E!C)YYL4^Q~M#Hq5&8G2-(C_!_Apn9O4u{-3Kefn!cDrqY-@Ry` zjz%MNr{<4yaK3YO%uO%euvY)m#)Nl__)%lg~*$>0CKb4`kB0c`M;4akU0 zqc(tkW2 zCzHvf^dTVr=e=HUVF3_4sD%JN8Q>DP!zB}k0DEtOp9H_&etNMGaxewa&6nY~+7v?W zEzNUAxPR548kRB%QXw=`3Y$(Pyv7hX;bty2c*=wnRbj360$F$V))2TGJby(MVgc+u zeU{-&Ks#aq=;_Yf*Sl5)5ei!cs=`uM0nJ1K*au4#fPJu(T7`kEH$?%;XB1OdO0lHo ztt{7{f7Rz@=`x4{un(3f0Q+F6i~#nA>8VLkEoOk-O|~-LJ+Q_f^+tULSP}9}ib??} zwefV#NfIpU-2-b<)K!AiH4UDszZZ|u>Q)IZ6#Q$TN&p)?VNQ?dF)1pBK=41E4gSZ| f-1I`00ZH-*6;1wq5j@1C00000NkvXXu0mjfL?cvp delta 1672 zcmV;326y>|2AB%TZkN08pnU9 zE`9ImPG+VvSuc}TNYsuuWK~#W6c;g|E&&ly9~bsb6hs(sciAWkqO!10`XC5KU0e-b zgUhmB5@862WMd{VF49O9c0^Ri1XoI;F8i!9QeB~rhX7{V0&JgG3lEaZ zXBn_cghF5f0e^6;@i`wK{S+w#S6#H8i}Phx8~w`E@eqInw|m2Em@0G6;6K0(AQTwF zCX_&6P_!fzquQ@m_hZjR7BEwKM~OKe0(chKaLZ+zcxHANkPrj`)O{F8@TVh}vwO#Z&TY4=QO837&*2?=ihqZ!99xQIb~4WH9S5+V?ElOE zn|e9h>KP1Su+y8=%c+&^r;vyyv@hn5X{U~d0FKKLDSne50uu%;ecg(O0KgOu?~i?` zoi{cDBt+!#tqIe3?cX{O4*`T=wM_E+OK!l|9Gt~N03*8TKD)>!yF|U!9Vcf+)Y_O< zfQ*>|^nXr*LUldhnv-|k8g{rwYoxl(ezKpF(++Q~`y2O<|CO)9X)4d=l;e3-C`;Yx z=Hm{nLm&uT=A3DrlpUc}fU?=ge?H$0_&{1G^-n@uFjRHVvWSTx1PdD9^PQm00{YD8 ziC2a<=%QQ^vs05?Ki;GFd#p~~DHC=1Yd)aHa4J<&4RW$V1s{Df-K=e5QGZd-K& z!)Au#K}fXg(OalnKt0V`pe8(~&N1zxj2>}KcqF9-i;zu9Mvv@;43Kt!q$<5Klm+A1@56M`@z}+XK zDPSU;=Fueax8wII?9C=Y?L z2O8&;&W-SzV79lgrG!kIDy&CGqdSH-@4M34twJ0JMb7cU!qBe6kV_ zHC;#tu&@UD90*$cB3^^<4nIa9B!}k@@!8~I0DgPHl_W_roGSz11}@{y2_|Z%cz?L> zHTpuEc~R#VA;2A9M*Ej7;ZU-3oRK~+PVK>#DJ&7CvowL4bio!pg(O#8cp23*ufpkg%)iP43_jlc(SHrx=v=$J zb?X&8S2;qhn!tm@Eg;t5_iI z^@MggXcM4fr6~%7t1hnSqFfQQ31A3;X(lNq3Y5KgOn}gXAuyC&8~w22;eQJ&FNmmO z<9#=cjy=4{I;+G#haTg(nU{Fm+D~a)up%dG--WOLTZKO!4tX1nj9lnhKh(wv` z3||DNew}%O1tZD3pM3;CPUy=Wh>ZaC&_(nhZy*)|2qOo;T~}|>&K(N@q&N$JiA7H8 z&ESuP00fdr;gUD?J4o>mpnnaYfCZs9cOV{LjFWY^JsREr)sAtfu# zOk>F+)`~2r%aIZg~{}xv!5na%s SNQM9a002ovPDHLkU;%<4c>$>a diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow3.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow3.png index 9979f28e945787ba4ffab8d70010c70209c7f274..e395832e8e39f6a7f69e6c36c189a1f45bfbbdef 100644 GIT binary patch delta 715 zcmX@f`IvQrNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao>Fr%o3 zR|5kBQ-!CCV@O5Z+gS&*g&jqXsh_Oc9Gj&hdYz4BtK8)^GaBT+Jx~>2Sn=VByn
8g6oNhQZu{wxx-Ib-us)7V~O z-+SGZn>A-{CzhEj&)__4FfGV$;T5&M#|+mvzA-G)c%@-!v*ydnt659_ACPlcDz#42 z(geuYH?56OzQMd=-`u(3;f8HNvzHpnizW0X@GrQ-u}<@*{hBY4mUnk@XS;}<@=%+u z$TR1N#5YNU?Q#3+7a!TtKYwn-POfa0YKHJ#;_oyK`5s(+a{2TIw+-75e0SXBEosqf z_{R9bpIa+md-dcu>8FL|AC`I;#;76PT;d=V@~<&JVD`+}8*X{b{1!j2=Y9R+lt!5YOV1Yb zCvNq;T=Kl|!!tH7u@kxm?|xcdHhk8*`8z`;+nKe~&!#u{l+QcACw(sC69%nbFRtu&H)7W5)=Te~_$xhuS!1eKb$JU{+?t$y+5y^Q|8?fQITpMUOo@wIBv)vSr@8=G$PI6^!L3WFGifb2p> zsIQ@cQmVhtePhIw#p%qg>i3+|s~=zgn2@xq;L8KUk8AI{h%6PtjZlOq~p#u6{1-oD!M&HWrgUS7B7#0x#fMTMv@iNrAN&)<7a>@oC4wOMN0_(xpirp@Emn{O zf?%jkXdW6i*f#g1+1q4xX2*xwT)b_hXE|pi`+1o&yXWlpw}0Q6Gkf^`&Wa!i(8=)C z3o|m~?@#{pn#}l^%-~iq|B(|m>H>~l47(HD#(S0>wk;2E!8gIofd5olU%LVQvEGCB zme|7$0{XF82^{F?1Yj%}fDRylo7Pg;t^syNT3@>X-}FsT@hj}scDViEE&vzvZ}X(| zgtO@vs0VebUVjC{G`X|zBj?ESR{jl=BGnRoq5BzdW$uF+fS=tJVnVQL?1gXm;o%)? zfLl8cA=7aqL?H}Qa;#`ReD>Hys0cQ|7KE|d&N)uECA z0R;Wh`q~ZXxlyABIJo5dum7#5dE~eUbce@DIeqO0*nbnf*L3O|I>n{yJ~hh8NfqLt#G1JHyU%PHk^io(W z^KEv5_aA-2Qhk;Dmx-q1R3N<&I_}Fy9i=Nl->&XX{@N~%jBgzcu+JYf5$WCn+r+fkp*i7#+Ri2|NN@UGA_}X{p04k@zwn@?y zOfSxc=W$1wbTiZ$kbcZ^vWVk(6s!^$(SJxsDvZKn%*}B*e`Y?BJAC zT0I&Q@fm4FE+SF}Y&fgDI0}O+LRl@N+mXk$D zKUOELOsN@-+`#4hCC1zwU@4Q1hAsh?4Qv99{|5Vh^ZqR)8U`HA4b%v82a5Ou_vlqc T5^UWA00000NkvXXu0mjf8ooA= diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow4.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow4.png index 9fa452a61bf19f4082c9fbc34586322836957de0..4097d024fc29b07a3490bafc6219ed5d0ca86404 100644 GIT binary patch delta 715 zcmX@W`IvQrNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao>Fr%o3 zR|5kBQ-!CCV@O5Z+u8fOg&jqXtM9zAvfHgwikIV6eiW8^WWFU>c6)Lu-x%_!Vjw#ofdt&7r(CG zbmd10^R*6}D^W2F0ojF&4r`CHGHewSXFwD9RM{XuZCPTy^V{dG&nu_SjV|jhkFUSS zwRQgczIEm2)iy6SZtz=vxJvEeGIXsdX8mF~QT;J$?KZB}{&8Ox9bM7Y$6CbTDBuy1 zyJSK(_uAIlj7SCc3mLx**VtM9w5$=5bvw>v+3>8pGcqFAXy)IFs!wM_x9Ch@Ua|dj zy=}elAMqtqn#=w^)&+`%H_kcHJ9FBvEn0CWloN`U+Oe0e>^_c?KIGk&wGux zCvNrJT=LlO{)Hl1hKE?EQ$8=&)7Gl<&j#D;7tz45aC@jrcsBarZ#((AO(K}+k+>V{iBzM6({ zta82jam}VpwhhJE%hzdtY@2IW{@rdjLpIBAksEOzj%l>smN;z3q!#{aiD1G16W*6N z68IO~yJx?2U&}{h1)G13UwD4-Pjj5<<@8YP*oOXwXP-MWzv^yVcs1?ck=K$D$~TxZ zOkDn^s#XIHe)wn7$Ir>a-x!({Zq)3~`O~!JYSzR$=4yt0@7;q=2}R{D($G3ArEtW* YeX?HTk(G*Wz|_g$>FVdQ&MBb@0K&LFeE1vt zk;bE2R44HT7c2y+L*yE_lt8;^TDmYPm}JxJ(nWtl>84=XLV_2CLVrZPa~Cb7q!bdG zLb1UVYSP%mix`O}@!gJf8;@o*UCj7GFZSYybEa7DMn}>dy?>t`owqdce9oXJI!6}+9?FEncZW$HcvxT$s0-VqEV1mw+n0=qz%E$ z(p>O7tO4kjIsn;cl+zV#*QI1uAr_51Okorz<4%EV#jC;7>S+Vuc|ooZz-Cwj&@XiW zj9ifG@9Ss{K%=DV0mC=1%*xEyT@R2x7cG1e9)HbS0*=D8y1)tFGp%53x_|?o5v&OB zg{-}_qyhBDdk@B2Vh_jn>BnNlw;|C5z_>pE3BV6)ehGrz!BSWH`Y%ZX_^xk~x>skn zxfAC4Fjjnz=hf$2$i70$Z_#k;#0-P`i$8ObJnt6YCM`13!M8)w$AIheAI$>%>Z}kK zf`8Rm*wqOOyYHI=+}(Ksxy0e5qz8>10Q}b;{=bg_Ggg^(w?!^#-~v4%&vmy2z+L`? z^CsW~=l)C!>M0O_-!E$~EolHfx100;2S54#>;Kr&IP$m$bO(=9vJuEh8o)`nvPE6d zxE|H04glQ&=vD`S?f`VF13-5Gx^?OSNPp)7vU;QR!I;ea-}2v{-v0}Q59y8rmf9(JOuyTw$1@4&340a``RpQ)8kFsQ!0hq6E^EAB4%Ex2bt6&&mnSVVm zXRRH;{j*;lj4v$wh!v0X*3e~=eukG4X8>^h7LQ&$T8R?_GC!> zJ`y%p&jFBkf{sziYhb10WQddXpehc_?niI4d-D1ZQjHbuD*y-@B#sT47A0d78Wxx? zcGJNIHvYExdK>>&s2xD@tFS?WASGy;7z9n0<8G%-9S$WMD}Mn_dR{s7?CW~~0000< KMNUMnLSTZLmN?S@ diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow5.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow5.png index bd46092739e6b3d5f5e7e3eb3806b5feaa456145..5245aa4de55bbd9220be129782e2d81efda2353d 100644 GIT binary patch delta 639 zcmV-_0)YLS2ABnqB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000ic z000ic0Tn1pfB*mjElET{RCr$Pnn6kfK@dep(RGMXTm%Dx2MD6RK-c#<04Y^Te=?<)iblIH$B}6)f)|&@qc*yIT#F@*=*K~Znm!F zcHnULsCj*VZszm(Wcv0fcUQSPdAgF}T5L+Df#O@B&=7KM4qX7=yuAI3uD5InT>z$i zT>P+qFp{A;bO9h$JidPqvJjxe#bW`qCJO;5ysLQZ0AXMRT>uJh2Z)QeTpZ~FP;4B) zqj*3UfI?G&XMY~sBK?=(@$LS(4Ay1(o9uhGX&@LW%XM68QurU*mDjqz%+^+;1(;1K|9!#B^ zAHQL~2BeA)gG?|N08+*0umb=W0U$1Za{6((h%>oG!+%YHqQ#>r8Z|~KxCvMkuFa3- z-jAjz8}}KI8?I}BtOLunpr}tkSx5+H0rXq|8`m{JhD!-J8z8r6xCqduXDlHH%mrw( zGbJGhOa*9@GbJGx5oQ8(il-#BgN^A7NJ)r;jrkhTmXM0@kVx$eNiLQuKytBE0g{WQ zo)VK>EO=Fb1Jtv?6JSAkY z2u{D7CY=(j$U=b9CBc#`1hl7kEWsMO0Gts(yF4Yq1G)e`ClE{Uf-WFxkcNf{LavQz ZnlFM&P>D2+`?3H4002ovPDHLkV1ld#2S)$^ delta 771 zcmV+e1N{7$1)BztB!3BTNLh0L01FcU01FcV0GgZ_0008bNkl1vl z`_r@qQ%WM8EOjXcIypJ1i!OC?=_0tblPE5QK!-rVMXGL{?ciW1Gr5R3=+a4O=~TK% zF-4lvmh}EQoJd7;tB~@2ft+W$+;Dlny!kliz)QvS3t~!n?1vEfFywMv zIEIn7sJwayyqj9Waa}%aeq?TV1tQs!)D2i|y*3vUog01(jEU*18_;leA#6hsLli>d zf?E>PS2v*g%zpuf|GNJ_Gr&clZh+Jm%|m|{P{tadU4S;$0PO;_=_>;~g>w4JfEc+y zLBHrL12pJ)A#{EB{+(W)@AdzDuMB(#h#R0W(4B{PH5vomdGy!Mp@20&y8vyh0ony< zBlbq9U2E36ez1n>LP*4bcCA_8T+AS8ftvsUgdPM%34i%>k$opvG;e!n!%6S~-Ca3A z(t!8?D1#p}y*I_}>P@mF5tGkDwgdc_HIQlk7n~T}mp()M|O;u~nx`YYp z2Fzw>S%F5dYpx?Xef2S5zVv{F@rO+BO_>{!*U1vdpxy!ZcIr^_p@PW{9Iiktr?1`t zlmn9$I897;;6!$_MBRY-tr!n002ovPDHLkV1iYX BW&i*H diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow6.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow6.png index eabc47c84b865b76a0c4cadd8a6c043917b318bf..4097d024fc29b07a3490bafc6219ed5d0ca86404 100644 GIT binary patch delta 715 zcmX@h`IvQrNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao>Fr%o3 zR|5kBQ-!CCV@O5Z+u8fOg&jqXtM9zAvfHgwikIV6eiW8^WWFU>c6)Lu-x%_!Vjw#ofdt&7r(CG zbmd10^R*6}D^W2F0ojF&4r`CHGHewSXFwD9RM{XuZCPTy^V{dG&nu_SjV|jhkFUSS zwRQgczIEm2)iy6SZtz=vxJvEeGIXsdX8mF~QT;J$?KZB}{&8Ox9bM7Y$6CbTDBuy1 zyJSK(_uAIlj7SCc3mLx**VtM9w5$=5bvw>v+3>8pGcqFAXy)IFs!wM_x9Ch@Ua|dj zy=}elAMqtqn#=w^)&+`%H_kcHJ9FBvEn0CWloN`U+Oe0e>^_c?KIGk&wGux zCvNrJT=LlO{)Hl1hKE?EQ$8=&)7Gl<&j#D;7tz45aC@jrcsBarZ#((AO(K}+k+>V{iBzM6({ zta82jam}VpwhhJE%hzdtY@2IW{@rdjLpIBAksEOzj%l>smN;z3q!#{aiD1G16W*6N z68IO~yJx?2U&}{h1)G13UwD4-Pjj5<<@8YP*oOXwXP-MWzv^yVcs1?ck=K$D$~TxZ zOkDn^s#XIHe)wn7$Ir>a-x!({Zq)3~`O~!JYSzR$=4yt0@7;q=2}R{D($G3ArEtW* YeX?HTk(G*Wz|_g$>FVdQ&MBb@0OtojiU0rr delta 1209 zcmV;q1V;Pg1A#8 zKZf~YhDbj~QfUZQ8ipFHnk)*VYr_z?m(w%hnPdoxdwilIWxKU{@!`!%zwS_`<{D67>4N7$o0|L z`HyxOFka@1b2quRa*IO2#+|HS-|o55XHo<~lRZ%k%Dq}Tf|0+2IP$~Cm1x+ zG(?S=`W&TPLz#6v0HmTXJiGLmgcV|K*~+Zr0l+X=?%HP0^;peR@p5bGtd%)+QY{MO z>c|-5&H#{5W*rXzi6l@4;BI0Cd|#P$JOGH&v#|@9d4F}*vi*R!e!Vt!SXt^$R;KLR zJ(Nl=cLr|p!P+OR1bKz>H+ANvYfNLw~LE~5Q3Tzs%#IHvKg>nPmye>F4a9uO3wkq znH-id*nctgw&L5RB@xn9`~RDi0q8AT3~`=qw@R}fpWHzifKsl(Onr`qs4-}y!BjO}3^#Jrs9RM@Wb63Ci9)Lzk_X9?*kAKd}?612YAYBa2e_W3Sfq-_H$u4l3 z(KwNe#t9E_z&E2A;cv^@OG_F+!8&^|-V#lmFr+|=Qn(9t7Xag7AJ{iOA3e}|;H z*4K+94dBbd6b-*Y)vdH@eR!|xFL^;yk0px5EMq- z(tqcGi6ynuY# z1mJXw=Y|*M`}bIb(>CBl*Zyn(jWh@#EXdkROB%qLsem)U!B4*b`9HR7&;32%RP;J6 z8-bjp0UUNKTig|od{m=O0O$@tw@v`)4u3$mP5|f*K(~%P0O?vlR+m>N#$@*YzJKQU zJ}+<-Isu?N0NpwPpgREFIsu?N0NpzF0JJ|eVQY2j3DCNh^;YW@PiLVvwV z85giH5iAEal18h^+An9V9l*ohPY=cyp5CX+wzx9%Ch0Is-i{ui^1^_H$~-@;E)s?z zH!i-zspQ!g9r8a(dod)QTxu<@_5v`t7cG}92Mv-LgDf`PzMv+aEiJd-X7|(OucQ`M zw9fz_S|D+nkPTQi|AgH%BpjM9G%|tBziqz3(LGnF9YFE3)&j|Mp#*det!-UVa$)5! Xp#Wu4&1DdR00000NkvXXu0mjfVJ$+& diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow7.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow7.png index f75790a41878a5b5e9df599eb3004fc19dc29d2f..f2aec98846cb982515e94d2f3e994d085109e69b 100644 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1enaIvS0V@O5Z+u4S^4GsbaAzPCHhZ-yrUl@PsgY{#|1s$tkuz1Q-Cn$6WL%vq2R#lSzZQkYDkJCQ+V6G~_nfO; zeWw1}_rRI+wGaPqV9a2YV!ps+!nT0*-Hhn4!XFIb`xm|DmsjXTlF69%is?(`zEh9? zGeFg5@Ce*jsF}B3XuJ3P=c{}ER@Nb#l)>Y`eLz y`@}0OkOX!d{?4>d{6rE%RKqcbEes&rXX%$%%2g+2GNk~$$>8bg=d#Wzp$PyK^Ji!P diff --git a/Resources/Textures/Structures/Windows/uranium_window_diagonal.rsi/state0.png b/Resources/Textures/Structures/Windows/uranium_window_diagonal.rsi/state0.png index 45b3c99189ff93d8928aae08e938c39e47de6c8c..dc5081de2ed0b1a9aa0e4cb968f41085f3ab7ab3 100644 GIT binary patch delta 686 zcmV;f0#W^qdf5e#BYy#fX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKp2MKrbE=X9p)m7b)?( zq|hS9JC1vJ?|WbFz5|3tg{fxOB%o@Rk&4H}Y;IKyyh1=f&3|zS5;OHgdNBjf@pTU$ z-|r$k%e(H+(Wm512KYqcDANs#c!PL$)6zNb6NgwyQi#uqCk(nE@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozk6#Irl;JbU<~MfvF(ph zAg~KG>$d%UY}?Hf!2b+fX>EVC0nB}pUT@*Z%x0}MUsk|8;gpO#Q4 z0Pkn?O*vrj7U*4b`_?+g=>w3VUM=4M2Zz8|k+Ro4-Xz`A*|&ddTK)S0Md5Ol8b}Lg z00006VoOIv0RI600RN!9r<0K(7k>Z;bV*G`2j~J04+ag7Yl|8H007lVL_t(o!^PH3 z3c@fDhT#e5I@HlsX+iJ+y^VMA0N%wr2|`O(8cWs+x)Y_XZIb!P1)i6I4+5b0s;YV! zO&k%yXyVQ}`G9Y{JS`4J6K}gl?gB$N0LTQ4;dxe+Mibwzcf1#v!takOUw^JUW01j|!l~g9E7Xpa2ehb^sTiXT@{? zCvL6%{~_VVSIf=#1tjpx?K~VHg|}VP|By)Hy%k8~KLHx}XNFpMy?-8!CXR^k2EB0_ UzWfgt^#A|>07*qoM6N<$f<`MZ(f|Me literal 15629 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 diff --git a/Resources/Textures/Structures/Windows/window.rsi/full.png b/Resources/Textures/Structures/Windows/window.rsi/full.png index 5ed08bac4204e8a98d150333a24925dca8310739..897534dd8f6ad77a7169b021cb316555639cc403 100644 GIT binary patch delta 402 zcmV;D0d4-s39AE;BYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0YFJaK~z{r?Uy|gf-n$9qZK2KiZutYqOkT5oWj!D16W&f3Jzgy z?E$DoZE)x`-%f%76~fsDESIHnn||Bnh=?n!W{4 zJdR_!(Kn9ckVGbc0Tf^P+u(7D*ks{GVs5AK+%C_}PT^rAYvu%&Yd^pQNN~EApyJ4V zK8BgVSllG=%f$+yOP7wwilc@YBXRgf7|wePINQfDtePMnGEtkI_1z zOR0eJG|L?@bVGTX{-kmRq(qabDh_^~h}2_LYm{6OK3AQHif6difm~u=&_yLDz$ca- wAX|`0poSPD{^P}D@K>|JUrwnv2#mb|4AL%YCpANW01E&B07*qoM6N<$f?46LSpWb4 delta 1205 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 cv(pcTpp*;28=@nPgg&ebxsLQ08%5>{r~^~ delta 1168 zcmV;B1aJF`1fvO%BYy;HNkl!EKN>NIr{=f(gEf&#I zP(f6D(HDyZB=irk?>_im3%(RYgdqA*d=W)KL8(ZsVk$;#DJ`Lh+G=XrWV83~&b@a= z&fMLyDUudvof+Bv0=WZwXV1Cc&Y79-oVg5|kWy-W!M^7XoPWIQ>6fu33h~PR2k`di zi>PnA6$|r+F*AGUwaxl6#_+}qyFSyg@9A{54PEk`BjB%Qf?O0vZ8||f$QTMpe0S<+ z#9?66wpnYNfYBdg$O;M3=@_%?R0vE>-J`CN?;Eq}3<2cGy?1U?ZC(hYcHIE;;Q0)V zv6@kLoFTy6Z-2fK&Jd8L3Dy&i+iDSt=BhEfP7vS;fhh2i2#KXXu0mAIg@F?U6j4Q8 z7Z=Zf`94Hz&6sT`_5q&ffy)3nZzHQT(30kU7bix5OcQn8xA$R8`U0M|M7w!7K|mBm zXm!{AmBNE4%;^Cq2w3ae_z0dM4$MWS_F#MUgHuo4NPm_t%pZPzX7&(TmzOd3L85oQa(9`%m&F>0~5zy24r1@RS!Wi|1v_5Hm(*CZ%iYKyzfsQh#@rLSqDw#wV>$nxC{k5*S@k#5G=0{%+z&6Z#cGbe01mb|LDVO~8$gvbm1`^)b0YU_^ieK3K(w00(@q ziV*=0_+S-7Pk{CJ1?YT%PX8k>&J6GS0)Kd7tP`-~`8ib}p|m*_P3k;_S09JhN#KudxprUVd*DTZYGq?t{i~1P*Rt=# zad|3`Q0174CLt4$odi2>pTM6I&8gn0svMTKo7nKYt>q z2bi9|A2pAmQ7bD;qL4WE`(>Oze?e)FJ-Z*oE!~%^-qN&hoq#vLC{K*kRgIvEsGVc! z>oeeafiSL>v$Pc5gH`22fB5}{f!TK=1gJnl#ZxMpB+P@)I}m<=qFY?O9@zj7Xj>=X i(kJs}fy4#?{0&-Fd}{Oz diff --git a/Resources/Textures/Structures/Windows/window.rsi/window5.png b/Resources/Textures/Structures/Windows/window.rsi/window5.png index df8dd36cf54e1eeb9e03f2c59d16196a74347996..df4ef650886770bca3ae09bcd7cc067227552802 100644 GIT binary patch delta 642 zcmV-|0)73U2ATzsBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0xwBKK~#8N?VF)e12GVW4`db4D#SSq>I9mHsN@My3>E|e0hU4W z1js%F8iB&#PM}&q)k62!y~(ACX=nG(O!Cd_?9I9VyCe)rx_?uFX`1GDJRVnz#iBYs zoj&pFj>Ds-`uYB%$96eyyLUd%k2m-HxDmVDVNiHsG^r`2lnHPF^yR5erkB^TudE4N z01f*<_?o*qZ~;UpJk5U#k`Ul92+s?kDyayd;IZ(k3j%Z~+w7FGf8) zk-`+9grQOoPk+D#P{>$Wkjf$mqX^)hEkywLY}tB0;Oye|iXS&(+yCdcrAz_t*-`{> z&z2&9yDFne9W6BK0-TVt>ERa?RRLc3YH$Bwtam) zKqP!Js0$!M;ZyhvK$r+%2H{_44|ne`vvYn0!%{$pgny?)QTJdJg{1%*^YwDx_G6z8 zMbVg#fYh*F1KQOT=+}bWra%Yn_tSB>+zUWsy#{oM1pi750uupp=(%DbAqCV0$YEzl zLJDXL=st5qLJ}g>1UN%{O@do!R7XHaf?sIV*8opKsGz6|AV@;2(3l8FnIeFDwiE%} zvjzTp0ekfQf-(iTXG;;lJzI(Z?l9<_AXXNnFal(A#4i&GZ~<~pz%9l^0$hOH6ObY- zC8V+l_M0Oy30kBgK!{0DBMAZC5Fbd;1}=c^2+(nPNP-1$0dh|uAi)H<0QZ1&`G0pn c%7Ci+18Fi5jjyEM0ssI207*qoM6N<$f@qr%%K!iX delta 778 zcmV+l1NHox1)v6yBYy(tNkl?6Jd8u8Y^* zcX+h;2~Lu*#updh+0y5&Oh$kd$UF~iZ8xv{4dMcP3sXct1(Z zp?kvS`Rg-BtlsAx$F2#L?*Z%rNKAD7U>87QqU%RJ1WJ&DD7643$U&6K3&3_F)SbU} zHTQ>^dsZ7ETUZ33#_vBnhmelEl?&wnP8_4zY;uI}3xDgG;9%P~pQElW!*Qg6EsG$I zF{~VO?!PBl!*u5mbeeL7FNAdxq{g3~n!tyikNYp*WB$ck&hWXg3ZOPN&{jYiMbNGX zfA1(~`23vMBIy(fGK>wjkZBEM8e_kf*}@l5`F#MN0LnGBfARp37l1qg#v33E>smy$ zfARp37k>b0f^h9;wFIErKY0KSw8H8wgY8DcEQ7=kZv;;km$$tEg0S|0^&m8JL0Gk| zFqOayUxwz6a->iQTMv--0Tfa114@vCD7643$U&4^0PcWwX^cDI4pe>!h~F2u_~4C| zzu>>WFCa~Ak`jnnNNti5pcbG6IfzmVP=Xvp5q~ey79EvU=E@BD2J$XVkuV%0hzqdK zcL9IXH?W#+jz}HFZ1KhCfa3?padK+Xcm}XlJRvUu7vepDJOZtuVE{hPOi!4~5qc3@ zeDNMY9s%+SkY|9r1LPs#L|g#l5y-Uh43Kw#JOnfmvH;*Wtb^T!`Dp6<00000NkvXX It^-0~g57m!n*aa+ diff --git a/Resources/Textures/Structures/Windows/window.rsi/window6.png b/Resources/Textures/Structures/Windows/window.rsi/window6.png index 13aaa2107eb3d7196a96e5530e1996c6cbe0b650..30629fcac2aec115a9940cbd378b6039b439491d 100644 GIT binary patch delta 498 zcmZ3?+08ORxt@WsILO_JVcj{ImkbOHEa{HEjtmSN`?>!lvI6;>1s;*b3=DjSK$uZf z!>fUTfpLMSi(^Pd+}qi@9xQ<(t@CgByqdvtnWfvH8153}2Cw#kqEZzcuImpRxfTK1f){K*`Cx%&I5Vr36Lq}@MLyIJ|*Or6vB zCaZ9!Mz$TD`Zn$R#%6yfE92R%)1NPoD6f-w|M1U>t^J#X78~etF)VXsJg`NBVTKqh z!{tQ`2~i>pKHW?WnTFq)!?xertx+v8-*54y&XX%Y6vQ9-^}5kcZvS43JHOvCinu=T=p z_!(n`eaF)!@BKNdDqwD-b69jO6WGdZkT-VNb-LD7?@tK$QqQOi_1cd0O!suRTAgXA z^PQB~#`#_H!QFtBhkGYzHk_AM3}z_Z!Sc)0vrSTM3)g|XiuFwI7%TGE?qq+kcc+&f cv(pcTpp*;28=@nPgg&ebxsLQ08%5>{r~^~ delta 1168 zcmV;B1aJF`1fvO%BYy;HNkl!EKN>NIr{=f(gEf&#I zP(f6D(HDyZB=irk?>_im3%(RYgdqA*d=W)KL8(ZsVk$;#DJ`Lh+G=XrWV83~&b@a= z&fMLyDUudvof+Bv0=WZwXV1Cc&Y79-oVg5|kWy-W!M^7XoPWIQ>6fu33h~PR2k`di zi>PnA6$|r+F*AGUwaxl6#_+}qyFSyg@9A{54PEk`BjB%Qf?O0vZ8||f$QTMpe0S<+ z#9?66wpnYNfYBdg$O;M3=@_%?R0vE>-J`CN?;Eq}3<2cGy?1U?ZC(hYcHIE;;Q0)V zv6@kLoFTy6Z-2fK&Jd8L3Dy&i+iDSt=BhEfP7vS;fhh2i2#KXXu0mAIg@F?U6j4Q8 z7Z=Zf`94Hz&6sT`_5q&ffy)3nZzHQT(30kU7bix5OcQn8xA$R8`U0M|M7w!7K|mBm zXm!{AmBNE4%;^Cq2w3ae_z0dM4$MWS_F#MUgHuo4NPm_t%pZPzX7&(TmzOd3L85oQa(9`%m&F>0~5zy24r1@RS!Wi|1v_5Hm(*CZ%iYKyzfsQh#@rLSqDw#wV>$nxC{k5*S@k#5G=0{%+z&6Z#cGbe01mb|LDVO~8$gvbm1`^)b0YU_^ieK3K(w00(@q ziV*=0_+S-7Pk{CJ1?YT%PX8k>&J6GS0)Kd7tP`-~`8ib}p|m*_P3k;_S09JhN#KudxprUVd*DTZYGq?t{i~1P*Rt=# zad|3`Q0174CLt4$odi2>pTM6I&8gn0svMTKo7nKYt>q z2bi9|A2pAmQ7bD;qL4WE`(>Oze?e)FJ-Z*oE!~%^-qN&hoq#vLC{K*kRgIvEsGVc! z>oeeafiSL>v$Pc5gH`22fB5}{f!TK=1gJnl#ZxMpB+P@)I}m<=qFY?O9@zj7Xj>=X i(kJs}fy4#?{0&-Fd}{Oz diff --git a/Resources/Textures/Structures/Windows/window.rsi/window7.png b/Resources/Textures/Structures/Windows/window.rsi/window7.png index 1a2e65fad78efe662cf60742e0d6afd2088f1e6b..0e02c2e8de00c8cbba348e75dd3a5b8dbce1d31b 100644 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!G)eKjv*CsZ)Y#$ZEz4cAa^WQx{jql1nxza8-i#ZjF(v4-9*E*<*eb%1t;ulh z(@(h%-|hZSoyTx3hyjNhED|r6zr=&}W6CY<`N)v;l&3B*C{zLHSO!m5KbLh*2~7YR Cu2;wa literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Up!qLLn`LHogK(~$bf;>T&0m+ zq(MM{$;p9H?!cu21G~6c<%#A0WA&$-W=}7f=QJ&~Q?8)4uJ7cJ-#n|^vw}0-p ziOeY`I9{^be)tM;zp1UGGK?m6&+hv)*nAU!itCLw)Z4C53gQu&X J%Q~loCIB+RX~6&h diff --git a/Resources/Textures/Structures/Windows/window_diagonal.rsi/state0.png b/Resources/Textures/Structures/Windows/window_diagonal.rsi/state0.png index df5805957d6b0d0b891e10d01cb5a46e4c36e95a..39ffd5be1fd6a117d57e55f02f9ac0cc33eb5ef5 100644 GIT binary patch delta 693 zcmV;m0!sb#eBT9-BYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GUBsDKFL2v*70NhDLK~z}7#nvqn z!Y~v@(J#m#vjTEYo)tiaPYR&KlLM&nqyP>)I)Dq0 z3gEasi=RHVubob{}e%d)H^f#n7!Ft|N8g_>>cPW~cZ&!6I3){>2BAShK>&it{+Xh`G3&+etXXMAXPDB_} z?~L3N%kY_E4;(jpr);=+s((nE+NQ~RWL>H?SyqsPJakp2oX-^;rQ8|u{VM3UH_SyC ze~P=UGt%uX$P8x&m>$c9OsqZ5YJ5DwB;mPkm6Hb&%y7{^DsD9?&fMdB4nWGb&n zsulf8+Pa|(rZ-lWLsDmC+;xiz$CXN@_ENOnvd1_6oe$}is;dVwM-a@rkC9Zt2wot*TutOBNvRdSXcAjfyq-!;s;)I>^ zx29_x%)vY?xDK)tn%Wh|E!T3!tp%2>sTW)r1!XwfC3>-6}b^COO=sp6|Lhm{whw5_vJo@^My_hJ?5xbtr;#8!sq4 zA951R#C&8d-83faJ_JA6-)n%g(EA%FL@{ zkSi9(l3aZ-G_zJ!N{^MZY_u(yiYB>c!%eNymNwy)b$3C74oZd-N)k$yf8nlI#~Meg zikz7W+J(Eu%=#Y^v$$1wqa#7z`r8X+# z&0VXKku`W7dakp7$#t+`V=!S-BotnSWim=%!EseYsxO^F1MMaXT9yn+HsmZTNk*KN zG%3brc_V?usBUCqY68aNe%Upe*MqLOuC9(;HxFDBWdu))k^>L+8FDsnp-r}lP6{;_ zn&ZWyqgVvFLl96Ltek)b+aXCZ+mSE~)`%vcnh+&bh{9?tP29{|s@L>NYO*oIeo1YH z+Z#vgCFS?@qG~(P>sXzUYRjq}0zs8jYQ^t-imG|1K}z!)3e=Na!)Se5HOpi$!JMDY z#UYqyzVI5QaabTVq`;LwYhfpjWw<5PhTUW6Qe8~147@g);qL$J0{jPwaMT_DEDd@` zT+M2HjMW9yg9TYa4May>BrA)&7K4&1c8Jw9hq8!==v7q+uzxO8dOEMfVu~nNdwOWr z!cH1_F5<{qOd9HY)W+4q7}Qf-HL~gezN7zg<`&lv12BItbJ%J8Kge8=&&Hlu?X&ZH zXwv&5rl9_ddV%WqJt4`>8>`n$Fn`$VqqzxxenRBYixa%hifLGln~so8!)n~LZn>pk zx+!$c`WwZDLss6u#o({ZW^`i%Q}I|V8cTBcFm5qmmSJuVor!L$??281k9Tx33&mg2&IkVT4%%m>p_To@3tNO6(* zU|Na`140%lE;1iXOL1X9$Rfo>=7VV|E({1+q`1g@FfGM}0U?V-T&?xTm0I&(`-g0?=}GU%Gp! z{8jeX^XJ#S)7A3IH{afO*M;y+ZS>5RTlXE_>iwR%@7-NX(d)p2Gs&;kKYaYMu46mT zK6?8(2gGO3UcKavwp~Z=|8UoVmYL~OYY!cM=E&G@r%#L&c8>kFTc5l#v;To> zXU*@xxzYEboVl@!`Q))rPe)h0JU27}e7*&cBYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GUB{Sbi)dTf+E8t>CcOeIJdj10piO!KZJ>=lpsvJloB8C zi64%qvoP`dWsciG4F?btu!aMego*F=*>?k5_-(oR1+?G*W?|wkSI~o-WnV!rZW=Ix zn+1&GCIK2;9ZtIYa3}1L|del^@><&HoJSbdw_V)hlP432M z`$1$DlDju=-g`5@_x8>1huhcNvw3;beN7ZaE${A%_Q6lu{#&{P{x>HlufvaJ*{&gz zqVBxg{%fFKKD3IW!WXoGL2EF!MN;&1i>&H#(2`GQ;cTdD%V%X}6j*c|B(+Sd=j!Q? zJ+!8_dbW!(E|%>CBU;y_0s1F<29(KBC8T=VB2D4E1RbP-CDZwIDq~9dR!_mN1i#zE ztcNa4u|``x9dIR_27C)nK{s0{aweVsfAOxCeFUN~4=VN^w)}d@Z_>Wcg4i#ByHN>t)~!#+=Ala-PYU zYaJ&gKT%*RhL*K7Jww}m<+wg(wR${upz>ARS2|k`lrf9!AVoGWXIZ|5V`~|yO4%km zW~2&BQxz7ZKpJE$6WZ}L?Xn}frJEyqosea9-M}y>u~<2F&Gn|!HA9=$#&L+Ch_t4q zIWUn0Y#%W7F+%|x$Kh7i*4n+LB`V3O@?>l3t{vpHI%c-UF)NgUlc6x&tJG-#+0u;x zT~9@vD(fvFq&qtcRYkAcu4Pm`XFeQeQIkr(E8aj= zUg9{H6K5vkBc`ibVxr=MhXu_KczMa^mBf(ShifM41KvNXY{`rA;-2gBqbgEDH`1~d z(b94fu-Qy9%vJ_nGs{&ab?PbIfXf0AUzn{mT+=G5D`R$9cVrY`!ep4PB*9b_ZrlxW zvU;?nNNEwLZK%4UsZu3qfD8FmKgTfvP7oNL2Y?AFqMrd`P?bZ8UW)U>K#K-9ErbGGkn;D}}@Jdkdt3FXogbHO>ZC=@Q(RC?0bbT`$ch>20wjj_}LxU%UoN~>v z_oBkR03ZS(;RB2ef+EAmVeVw!%P|R2^oA7P58?rTX)iV0EC|)5*(Ehmo#8@B^@Cm2 zqm_~>^z^K3n85B>t)5cLDjxz)l@x2G(D@`;u}_1DVmB0^hS{po%CgFqVP}H2FrAA- zu)w^2jNAyw;2M(SsxYg*6H`xEIoSXmNqDO+rdK*%tIbgNe|H1kL?TRi{N~aSSK&?N zl|_b=#ULZvcU4GL6jnsMe2+I=)NR+t~~a`0k#`+w2Ytwv3U@TP7xYFe>;ETdTw zZ!sD&?6R_-7M(|#e)wVoB7RZyiD4EUMlE`^JV*^jHTWoF+9!bzMk?5#ikgN)^$cB# zqM?&2*DFZj7;{G93l4m@V#_aA3r@K5`Ex73RCaVLy&}Fy5CjNbB)IT=5G}!l0Ktm{ z7oHEICAbhEc#+`3^Fg!(7Xkz?5?pvbh?d|&fZ#=f3(p795?lxnyhw22`5;rKlV8@bd~qjd2w9>o7%02PtZ${`}4}n<%P*>W+2{-TmE=cJkS)_V?#DUvFCiuQ#4P5x%(LnU7YqpM3JlzDKT` zlz;BZy|PcFZ(>F*BO|GjaObE5ENiepxthTfF(`OO5CD zu6gmYu#0*vxOw|oVS1+jn}(kUd&E1YM?;P9I`i%Hh4Vcx+;#Z8v43^@quY+W-?(m{ zxqnT2Y_5BpdWU)F%Z3xj4*inqI&i*ceCfHbjXf(4Z`-zZuHnRf^Yzv3?A+VZ)T=W} zaO(S+BWmZ4qvIbuaB0=SJfNGC!|;maul;zBy`y8pKg?hHY3Jn7SF^LT)GF%T55qUM T+&>K!JMPxP$~!+ZV$;QnZ1 diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index 15200531e3a..51743c6e822 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -67,6 +67,7 @@ - scene - replay_recording_stats - print_pvs_ack + - pvs_override_info - merge_grids diff --git a/Scripts/bat/!README.txt b/Scripts/bat/!README.txt old mode 100755 new mode 100644 diff --git a/Scripts/bat/buildAllDebug.bat b/Scripts/bat/buildAllDebug.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/buildAllRelease.bat b/Scripts/bat/buildAllRelease.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/buildAllTools.bat b/Scripts/bat/buildAllTools.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runQuickAll.bat b/Scripts/bat/runQuickAll.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runQuickClient.bat b/Scripts/bat/runQuickClient.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runQuickServer.bat b/Scripts/bat/runQuickServer.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runTests.bat b/Scripts/bat/runTests.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runTestsIntegration.bat b/Scripts/bat/runTestsIntegration.bat old mode 100755 new mode 100644 diff --git a/Scripts/bat/runTestsYAML.bat b/Scripts/bat/runTestsYAML.bat old mode 100755 new mode 100644 diff --git a/Scripts/sh/!README.txt b/Scripts/sh/!README.txt old mode 100755 new mode 100644 diff --git a/Scripts/sh/buildAllDebug.sh b/Scripts/sh/buildAllDebug.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/buildAllRelease.sh b/Scripts/sh/buildAllRelease.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/buildAllTools.sh b/Scripts/sh/buildAllTools.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runQuickAll.sh b/Scripts/sh/runQuickAll.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runQuickClient.sh b/Scripts/sh/runQuickClient.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runQuickServer.sh b/Scripts/sh/runQuickServer.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runTests.sh b/Scripts/sh/runTests.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runTestsIntegration.sh b/Scripts/sh/runTestsIntegration.sh old mode 100755 new mode 100644 diff --git a/Scripts/sh/runTestsYAML.sh b/Scripts/sh/runTestsYAML.sh old mode 100755 new mode 100644 diff --git a/global.json b/global.json index 391ba3c2a30..2244195a209 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { "version": "8.0.100", - "rollForward": "latestFeature" + "rollForward": "disable" } }

z2wCv;;}tOUW9dJgsqpi?Bq~JzqbQ~PEV9;;<4P$!0TpTkfuT94W&i*H07*qoM6N<$ Eg5tSH8UO$Q literal 15911 zcmeI3Yj6|S6@V9#0(KH=T&Bh)xT;LjB(U0tp1UK77@O245g1!Brh_S~-Icv#Nh`E# zTbP!RKu9U2G$BC8JQAL1fTV*lPAI`JlaOX`ikZMbdC$-~G^NH6nt%tp^sZ!E^0j=2 zNix$vyQ9}R=bm%!{m#8d`)5}a&-mFR=|4)xFzk_{!h#a;ZP4DMMu1PHzWzVpD=l0& zN5Qa%exSXFVGSF{VHo?N=RAVU>JMXNU#^A%%^)jIp>Z z_^qi4qaij#t#%pnw1kFoPq86ij)(@U$%gZ!&2F$WCdz8JTkMk!G)Y+r(oC31oHnx- zlC{u=-plAt2fv&V!OxZyJky&FNG@ZQs)kvDsH>|p)tOClq>`W*h9O9rplKY8z?Fp| zm5bsbB{v?VFHV7|@DVAjN^;1c#pQf*jp{NQwM6|_@4ABF{zM_AmmQ!;M7c0QnMfj) zlfd`;gli&!*wh4`5CdXR45^yf}F-(WChYDJw^ z3lQ`oP3ft47luWmL{#LO2ro{n1xv|IwR%Fy^hKp8*z%hOY zW7BG(9bOP3F)uA{Ogk`R@^Vn~)wY4h!xn`Ul>^HuDsTgZNdhzDL?0;%JcIlElm+K3 z76;DQd_LUg^U)47=MZS#AKM!P-4iqG4c(U=gigJ18)K&^#=(Gvi^7l#kIyqH*q}r+ zBNAxmTp($TwiW@bg(9sMlJVJbJ0n;FU6akQ>m0OevKe+wcs?JJ zR5#t54N@n0X*UM(f2~q*4=cKDR;$_SBw#h{Q7lEpKzV@#{XZFl?7RGtSkZSG6^f-NfqbM{vXi>+7<^x%ETo4ensN+KOfvh?%2nbr#aiRG@Rvi}v1TE^g(0m}P zjtc^U7Ij=`K9E(%1pz^eIxaLH$g1OlfS^Sk7n%=b)p0>U(4vkD%?GmTxF8^CQOAYm z16g%k5D>Je<3jU+tU4|T2wK!}q4_{o9Tx-yE$XaHx?DW?RYOhL>MUcI^KjK`D?i+A%U<4b zrR>ed*2b$FR%Kx6^1R;zZS&Pdr}yoD`kZ_AmQ7tfzS9>+Pu(Bs%E|sA7~7ru-^m%Z z+YU8~ul)JW5&Mmdj;vQ^cf5HFFWYK8aJ_5uv=PC(b6?*1*=TG}L3Q5RtR3%{);0(y znp-#TZra`1m>G<=R5Hz_<3}yq)v>l>UCnz-Pkb`2Vo{FwK>O>P{Kf63*Vs?2tZlnJ zxnkqlrZnu+oqs)Y_2qlZZ|rS)_C_X__VF9e?;Wa|x%bc~)0s=*h_O6r11ILD4__U>=XTqHi$bIyy3vPD@F1Gu@Yd9CUOE2kk zHTHCFoV4Wa`P7Eyv6ze*(vME8XkF2|X2!&eE-?M&8CyF8otd!&M1nQ3!>e0FiCbLIlWnDto|t!Z^_ZM%xcXFqUx@#5gUZ0wFt;;I+! Sxvf3QT{LY*!MjuEzw|%x_1DV) diff --git a/Resources/Textures/Structures/Windows/reinforced_plasma_diagonal.rsi/state1.png b/Resources/Textures/Structures/Windows/reinforced_plasma_diagonal.rsi/state1.png index e724d3b9f78d115d79ca3ded3230db216cfe4056..7bd92db59f70ce83df278ad44857a3797ff47877 100644 GIT binary patch delta 695 zcmV;o0!aOheBlLEX>4Tx04R}tkv&MmKpe$iQ$>+VQ9BfI z$WWauh>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_3;J6>}?mh0_0Yam~RI_UWP&La)#baVNw<`9$B7iW07=OT^#7sSrUd+IAeBHyx z*Sjds@;>+H=vVS41AHR!9McVpc!PLm)6zNb6NgwyQi#uq#|^q5@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozq>UHQ{5*!IUL z(6b9P>$d%UY}?Hf!2b+fX>EVC0nC1qUT4l)$$E+a0rYQDSO@H-6Or7z5RQp)!z?k5pttbR*U}t z000JJOGiWi8UPvq8b846fRP~=e*gz`Nliru=L{GV6gZCrVF>^L0NzPNK~z}7#n&+o z!XOlY;h!cZO_)r>Jvwo7I(5CTmt+!Lagl%=JUbv4&kB&hcLzw}y8?k&PDHLkV1m#LJ~99R literal 15885 zcmeI3Yj6|S6@V8?c^Gi0)ABMTvJ#v$j8*CC8V>@7I3tsQ8?2RR@(5@}n zF2s;93~5s!#A!_3m}wJ+S4;<}sY3`!!(&K!wFxD`h6Fl=g6nu1V!+Tq?@G2LU(0ux zBs2Z9JEN7(J@=e*?|1Gw+CRItAb-yIgsBM_hK(BveXzAU~%$gTDBMYZ|GY;7fLc*!Zga?$FXW7U$i(hxf`7up{Hz`6@(Nlq$p_LPpd>1_n8CIwP^;uGiy<8(NZc zssVyNq;V~!;u;^17xI!=k!VYARt2xrI+ z_DW~@c}5of#iHnTgil#PKSE7bR_Ih|9$zSUIWZvp*p9;{(R@d}@!5>bJ1BxO=m@ip zG8U6&+GwRoV;Vuy1QFvTJQMQa6gk0F6ZJuY15GJDNRp<^u|8sE!ahL#aE#2{mzUVN zF@89fc8PuuBRd2SQ_kZ)Z@C?h4#v!koGLm?bc=qlEZ$+T$T4jrDm2#{zy(}+* zWJobd0;viW?kuK!;Ap?XEjYq$gA-YSqoYBsMwiuS<6Sxn!C7@A$@4lJYclJ2la*s^ zF00L~3Gs;(3M#kQb$<%GJ?0d7!&6TosEI!(UtYN?vD;!$KN<*;fyX9TLw1Hb3<-Cyv`VB zg96R-3!t4d?wC2sUO2E9lhtA%ZDvMCxR^4X(FXQn1$|v-;!I^^nTw)Wi>-ezaoh|F zl`ANDuYuB_cJYL5nIbG#^N-;(~ynMHLsC z52RIbK|s)=iVMvL(yF*1AZSs=h2{fkRa_7dw5Z}j^MSM~E(i!(RB@sCKw1?S1OzRr zxX^qct%?f*f)-U=Xg-iu#RUODiz+TOA4sd>f`Fh!6&IQhq*ZZ2K+vL!3(W`8s<$5<^yR}To4ensNzENfwU?v2nbqKaiRG@S``-r1TCt#(0m}RiVFgQ7Lm9TqHm`1 zUhq0<0K9jax?s#P@Xo4+%`J3dSnUi9tA8HDdhdbns~A>AVA!=%@Ve`37&b|KdFkQV z7&iP+UUp`2@Z6z>ne*B+CLejYxqiYM6O*Pc`}L7$x$?xM=>>1<8ww`PKB9NePrFf_ z)m2`4@%dNUl8e$dG)fh-xD zx;Dp@y*4|O`~@%+fjKc$9c|stOwi!7c%g3 zZAU#tO}39mVV4V*2C2Hr(c;|w!|{>pOTRo>bov)JMzmiCj`HqlZ)WaK$zQa=Tzsl~ z@34*4Kic(Tban+;k4d?%}bxQiA*PEEcuMY=m zPU_n3zGU9)-u2wXtN-j;eX>e=XwB2cE0;%N8EZe=`u*D*60nDxm#5S{)A&Vd%jKrJ zj{KxauODxlaTeTrnpUmYbAFoXK;euQzoz!&%b9%LG-~mg+BdfZe>mIePd<0TJ;~H) zd9G#ctv_%4)Z6*S!q&9UTaMk>VO#fv^IyH=q>7@Y-6Jl(@OIv+uBR?<+j8@r&ZapH zoAw&k%*DFej!JWYRsMwhpEfPIbm^<4rJWb#aSV4SseWGi?ytL>D(kP7l55N+tbP8O z2ZnuKdav}^>dSxauD#yA_qWUa+-l~NKx<%3W9x#pu2)<98DpAF_{ooN-@STsS~5Ou y7&iaCo(*01ny!pVJaj4V?5V%6E18Df9fxt$((UVe$6r!j*v`wz&u*Djy6S)8Ho|uR diff --git a/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/full.png b/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/full.png index 4cfc4c45da5178cb9fb00132bd47b9570301ad6b..a1c5c2115fc19c9b01bc5e8eb039ffff5e143553 100644 GIT binary patch delta 418 zcmV;T0bTyT6T1VDBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0Z>UqK~z{r?U%o5!!QuWmC}N1PsMocGkD75B#@=(Joq$9(|`1+96|zuAfQPUMKlgg zQ4};*RrM_Z$@4s?jiHI-m_(cfU;)W_V|qW|>a)G_v40)&MLB0p09OJcCfTA_5u4W0R<~Axr-$YC_<2`z=mS~R(c?kA?bc&s1sELUO2CpN z>16EB$#wV|Mt=d4Fbq{$mYoc~P2B3y2q$0V?@PVZif1)jBgVB)*;oPQ@^(#Ti?x8E z@B+L5FTe}%0;~n#r_#o3F*YQCn-T8{tL)vL%CMS=Pze zAF+PxF@H29GI?K}@kV{c#5h$~no<{S`TuyBIDeWse;b_A%n3@J09E5*n6`{(^8f$< M07*qoM6N<$g2jQit^fc4 delta 2486 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 delta 2924 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 delta 2924 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 Yzrx(A<|rn?4FCWD07*qoM6N<$g7_;%tN;K2 diff --git a/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/rpwindow5.png b/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/rpwindow5.png index 8ebeed21a9fceba5d6cd550f7ab6d33888cecb9d..f16d149ec46e25f3824cdb7562a002cdee1321cc 100644 GIT binary patch delta 698 zcmV;r0!96w4bcUVBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0%l1>K~#8N?VG<#LqQD3Uj?Cdlk!&G1h-D5;8^@O6kOb0#10M) z6&H6GLH`ZuD3nfaf}5_7hg&T;RPs#9^}JV#ZIWy6J`i%fEq~wpkzSKl5@i~V#<*Uu zCwZPH)oK-Ie@W9c84icZRes+A@8a-n{~Cw?VgtPz5Ik|bbv8K4&I`jScGLxcl?OZB z?hM8sn>Z_nx&W~4?cg8Nn5OR@Q?w_ z&o(Qc1t4J4fPZ;|Uk2&|KybDJ62SxNN8q{feu2Y3%oF^|9|3daZIi&OETBOY0DZ7T z0ni7_!fEhn@3l0I&BLN;Y*FG7Kp!ko0QA8U1whYAtyU{FZP?Qw1$kLN=@tWvUazP6 zB4ynHcJSuPlWD^y00n0T4`f+3W!kXr09WvUbn#;r?0=V_EBIpI2_jj*6?|pq8%Mf` z2msi@-+gwQqtOUw^biw(px~h>Y8FPd5EB5ZK41@Dx0AXb6h*ZW-vPcMdIx|(4**Vu zbp!~g1VcHT`U12Oy#sJK5y5VW(Lh81Dtg)?_yD^ARN``p-~(*W;aQI%lYYOyp3h-g zdArPQ_J0DbEdJ zyT2eF0rbHV1wbDxQ2_L6z(c9bBv4O-?RI?^?eZ(12Fq67{w0YEbphZfGSdJ_ z5xlqrsb~V@G7-4&Dhrf}z=;1OK%%h6h8CvwViQ1$;1gs9j9%`!=mAB?Jh;0(DU+K?I~URizL}lhQW0PTV}knK*Xr z@g2`)(V28QanhDMnF;ulti(B<9N+Jrd+vAcoMFIcoZIu`=YR8fHiy_?^y&8wBjw{_ zXgoVs9_%@MD>HM4lLR^Ayhg=Jt0c%-6)UkK78p4_ePHS5Jl}Lelp_0r2is60 z?Igh*dEk z40{9snj8LokAO;nF!QtXT(mC)3=d@hz(SN;)AL4_;eTPB1l!g`T33AbHSFzG)4SG9B@O=rW zSczLdoqN7L;aM+9kkcww8ZA4mf8Pn%YF4X>AnWfcR$4Z*KMH&&z`nknwg>0{)ruY( z_)dUheShB<(q8BQ-wCk84DD8cd+Xaq0y6VN7VaiZSFoc90JukjB*+;rbihs^K(oEp zLtMp5t4#;Q-O~O}>;wV;%#gON@AVy^nhtQ&F|`o7*gN&U`Rn?+bSSqCiON2sC$IHT z)$_FQB?7if*8Ur~LBNKL>=+<&ysWTZS9E^D4SxbQl%)=Fqd9CF*14acCcq|MGyu@7 z*@b($z12!wCNaJb+74<0oZ`hfKuM4@J88{3;Yt#;iVpqwB_~B zPU*D%Y2nE>n7^*AtlcaV7BRfQ2!Da8GxOy=c!+#EHtc(0< zjHv<`z~l_ocOl?OIV?musCzsBO(#UXE)nRCpK8*AZM^a9i^nJ3@J|CbrEt|qnA1{m zI1lSb<5PI%swBu(Pr!e_7_yba2uv+t7D34D?MXX7Z|@19^-qg!)d9}IJAdsv;f&C$ zau_zT`+i2~i4Jgn-hQu-);}#gITqi_?l(Nq0S}=Qe1j)Cpo;yzo&Z1L$+7q*cGucm zXyE&y^_(gqmxVoPX0&F*7H`YNb(f9rp5B66D32Xq2=PpMCJ=%v<*wcXp#B zEt=b!NjMRxmqWd(m_$RB0=a`%DhphgC4Zj3*;u8xNPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!Tt1rb-1jTe^irN*shhDM-;l zg$@o5E>12k(hPzQ5kYWv5p+{Qmr^Lz5|;|K4c%(HmqODtX@63Z7hm(vcg;_*(xG=p z{iWW0!jJFo-f+qLzWej;j!=S3B9UORSd5fPB@zmS;A)$AJWlHMI(b@po#lEI-3^aUX^pBzxM!E zR#s5=Bup0o)fQs_sJ0jbK()mf0IDs<08ni)27qddF#z;L;Rl^>xKq`zytm0B(DFH9KJ<$DVC`7_JAZ+l${9Pj?FlZuPpt zQI5EFSCCj1{w%Eg3moRyqS5q&b;1tg>MU|d=QMb zY|-e7GJiXEwx9I%^+7FoD7S!{W0Sj(3PTy)`Z)jY5)@HTHefonoP$(`=Jn;&6Ub3e zHsJH{k0Vcpj)VU)JQRib z^yU2-NTonGU}9o|pDRf33eC*SDBT147*MHHNNIbA?3bzQl>@>7)kuTh0@CU9M#Srn zkJWCk1zTa^8+y2YCkd$(9Wf31<2eb^kQQh00006#nj;_roxQ3`|S;FHm6$O)a2pY2!kT zu3YNEq#I-6rY=l0nrPazE=m)1q0#8h=)#>piHR|3n|9YyX#tBu2LiM(<+n2oFwAi0 zy?3t*W`<#4hK~2qM=D=Jn0a5`JNJI~-t*46=MI6*c&+5k&woCA;rt3wh}6=#PyPG7 zsVJkIyBall_>cQfc@*zd<~?COSm9B;p|Bp@`})YqcSP(%qMq#XBcz-*y28SNf#pXMOrYUsUz9IWapBa(1+zGyq_dj#qDX zPhtklh4tWGQGffk3y?%{YhnD_seV%4z9$XwNX4k3*iGVl=nYtNNp8Kv25kF0}iO8V9st8uC z`Apa@K#Q}D-R&NdD^7Tgf(i%ry;{V&dai4#*8y%o!++YyTe9XeVY>jM)K7e^jg(Pt zFq1GwIXl+UL02B=1OUQ%urxXH+aZGO0;EBb93T-tWdHy|9O(`(`R7r*fv_Gd1y&uR zuu;(mh(aI^*q4pZ2eu0!5C??AdT>)dAJ{HH61#E0ZXB>12mF8Ifac>(Isho83IL#^ z{iLz<4}Ud*?T-V9=mV}C^naB2m|B;~>6-W-*#CBkJ36L2=(HYt=9{X*JEtEka}M_D z)$_$a&wu}cXd6TzKNce{2cgqZQ(s^J#p}g&Zeyr(RxPe`+dlG12n&#i%PW9&QQA5_^B!l7BJ6yv zf+bThDMGH~MD@y!>Csua>Ep8ad{@+AgK12YZq0`3)V!gm+ z6yY)eKuhQCgm448-?)Ea@aB+m@Mx34O`dXYgSY)kbDNI>fWL28%f=u7weGBF8$=+y z1c*YUmgjxuOixI06i9?P2p0QeYRj>MI#Gy36oOp56`c@jzvu&K$oO0j=~$UEaewQr zdst=>y!hi`9`22y>=ied2`)Lfl#O>kU0~~$n6Ll?XQnOyz|8MUlG~>-&cLU89;#(6 zr7-|-`!q??h?I@*_^tk&Xd6TzJOvl~DZBK;HOX14QZvSNMmaA#DLfm0i00qer#th}gwQCN`+gp$>o^v*phZ#S&U1?Iwf zu)0#K-L!bQ6>lf3$_3Kv0D1Fv!U`XdDqANyS&~gha~a<=_Xl$FqJQ>9VMTFt zLuoAG__7{iN^YEP$AO1@u`S6+V%pDS8{wVg6Kv1N)6N&9Z>ecm-Cta{%aq9jz{_`i z7e(ybo{r|&PtR|s_tk7 zY!@IM$=?D2sW-)j8bdm7#eZAGb{~+5jPpf#^Z8;&%>W=Z@_|V@zGYtVMEz(ANUiw* zuPKn;%{(%*Jcwig1n5b^-Prd1`6oN`F8uZzwYWVBuaw zu4$}_=nL!-cwN}O?E*BsyGN~S+-L@kq}%cF71 zbRI9Na?!4V>#|9?$vbo&&&6{N;qtoeGa#Uk6<+H7#hrewxuBJO@z)g>05oVmo{Ja7 Yzrx(A<|rn?4FCWD07*qoM6N<$g7_;%tN;K2 diff --git a/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/rpwindow7.png b/Resources/Textures/Structures/Windows/reinforced_plasma_window.rsi/rpwindow7.png index 4d0ff4bf7318bde3f96e034058039551ad57141a..4ad14d62d1dfd47f73faee41599f42863653e457 100644 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!Nr~~jv*CsZ)Y3wHaG|zkUKI#fhADGLBz=; z;BXMDfx(v8s^ZD=?c)RZTeYZ)dZ(?Lz5ns{gQWkdhbxhwD2J_$Zi z($2FJaBeCy5`siYk)439sXV!X0rn)s@_8TG2>`+*XsZ@~f1||X$Vc&cAAKOe0Dud8 zw{(*-fJ=p2cYiNB3E2s7DGzRx8?WsU@aW=1X{#2}{<9N6qZ;z>Gdf`2*8V@pP5>Dn zn%ZY{00|}$vJ>F>_tBIdg%03wQ+okC`uE^4~&FvZ8D0{}OrnSUqK z0XNbwVDUk-$%z&=kpBga;IDd)Ao`I!z(X>92zPS*C0OQ~A z#EtRVPW(J4!~`($VgMK#U9ewvC~!GqvK!4ICcqajzJXOyH+}MXA5nrJ7cZf9$_5*= zik`=%h(Z7tFQIlC`H;5HjVLjI2Q{ArXRzV2mPm+E&r1;{27skGw_vdZP;Sg>c~{=A z0l>*x0Dr*q=?m-L-AVhG;z@M?8PDM_enjYBgjhPj&-J7OI&1ksxWFYk03C}T(*C7L zq67M>0f0n0;Hhf)7)YW6fcC|Y82w8SZ3e)lKsbMAe*yNJKK5~9?%o@A8f4}00YgoL zM`$aDuW9g_2K$F=8jSHJ=hC40^Xuhc)8HlLaDO>{_8s2RHuh1Bl*9aaz9&H1 zzZA*KVcy<{z?ifg4zy1-Pml{(*@Lmeo!`S|Wy!%1!_W zjd3inSBsjt=|41Z4p- zURyP1BR~8D6CD1c$r&9mi~|#d(4xsG4ou*BaPoR^@_KNxZP6r!4)_Po4zi-ku!6Aw O0000%&aN^ diff --git a/Resources/Textures/Structures/Windows/reinforced_uranium_diagonal.rsi/state0.png b/Resources/Textures/Structures/Windows/reinforced_uranium_diagonal.rsi/state0.png index facbfda3ade6a6c2884f9a596e976a4b6da0a329..fa6f83797c15f9e0a8fa44c37e4c6406d1f6d8be 100644 GIT binary patch delta 723 zcmV;^0xbRZdi@2EBYy#fX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKp2MKrbE=X9p)m7b)?( zq|hS9JC1vJ?|WbFz5|3tg{fxOB%o@Rk&4H}Y;IKyyh1=f&3|zS5;OHgdNBjf@pTU$ z-|r$k%e(H+(Wm512KYqcDANs#c!PL$)6zNb6NgwyQi#uqCk(nE@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozk6#Irl;JbU<~MfvF(ph zAg~KG>$d%UY}?Hf!2b+fX>EVC0nB}pUT@*Z%x0}MUsk|8;gpO#Q4 z0Pkn?O*vrj7U*4b`_?+g=>w3VUM=4M2Zz8|k+Ro4-Xz`A*|&ddTK)S0Md5Ol8b}Lg z00006VoOIv0RI600RN!9r<0K(7k>Z;bV*G`2j~J04mlGnc=mDt008+(L_t(o!^PJz z3c@fH#_=zrP@73Yz{$x2bn1b;gwO*Nyo3kp8JwJiQk+r;1sz1GXr)cw%gY!Dzds>? z1P~lqmfe*kZj6DF#GP}PNa0P>Kx-X0po=F-0s!#>y7;LQ8R)|S zz*@_D3;OWe&gRxyv~9~5Fa)3Pn?gzAEITj;2S6Jz7AFnx!N~%Aagu-#JUAc}4+@~b zy#uIluK-GXbO1FzDu4qY9KeMS3gE=kH2ojIjbApVRFZh_4#dLiy8aG`iBGq6r6lo> zTOffiud8RkuOCbI>CA;6$|Q5Hx*tWY^?RXnjvY6~-~k(D`iq@-gqZ*U002ovPDHLk FV1h0lLiPXv literal 15734 zcmeI3eQ*=U6~NCpfnwt_3yf`I(?Z~Ux3bTcbc*hT zWQV$rDGf~^VUo1O5QjExr!aJgo5l@=I8KUj5~dv}g@#Gfw59DhCQcp7M-r1X-IHud zUdub4CNuqKZ$>)3ef!?q{k?rp_s@N=a`oMLIk)9d6qQ$A=Ba{ro%Z>{O!%#|wqAj^ z*`c!a3Pt7KtbMYmy-&@jDDJpaQ>WH>D>y+86!D^54~k-e5S&d>&gHQXFEj&HR}UJb zpi4h;tWU3#M3=tS;x&3hrJzwNYYl_y*3~saYqQ`G^~>Ek&KL(B1c1uxVgY|p;bJa* z+%E@zYs0i&7oVawyYwYmKwX`;QdcU6fzDE7H3&wlO=oiyF&3N6Y+I&djf{mhnrM^J zz?wL-ku$Tpu}kmHfxnz#(Z^MJ?ivdRC6~TYRYM$2N2AfAsHsQ}H_(j3;h>Ey&9VkK z!=SVTRX%12Dg_BA<9<9q5yDbPmE@pK^UK%E5!I#FYk`v2*uDaxWT2oj#tu@XV|<8a zii~t7BT-1&gd$;od}*RU13w6WpsGMSCZk=bQC4N8QJx}XQaxp0m=muz89U>81A&a8 z6?N4Xh+qt9MoXopB?RaypvaN109I{*TPeu2dsXtKk~6`RrkQf>ASO*=rfCvp@uQH) zkQ45eD-8o)mBTf%>~|+lS>-rFU1@3jROyz~NE=l4#8qI0E=DZ z9X`9ms^vl}Ug#pVF3oRzbYjHx?cmm{9RshID-S9v54Th9al?Tk39ig;wVUe&J1__g z58D?oTMfKPG#OaYWOdkhqmOq$Xp_uSD;sk?9v!;Qym7NwZ?*wmfE)LLDL0-7l;&(w zpfzC$wsYQ}Hb>iw2=`*H7X_05Sc9E0I}G)#*>2!%5HKT{M8@i1MOF~T_maWQq)=s& zmiHDU4O(uh!F>})Q+ba!-Vh&FfYw%A`tiP!?9^~-@^Z%86UPf$%XSM|)dSH$Gb0N8JAfL9_%H0t7D-TzEc+mf%8w;6;K9&j-;G zTnG@nNO0l#AX4T@FKy5=YwboE(8c(#Nx_Hy_pJv@O9KEeD8Fy z|Csjjt4=7Z@={dmS1GD}8%2HeDZCF+RK!S87dOM#U7w_=eEG3WC+?!C8HRFCNlom{ z{yl5HzOZEe!2XtBemMBV!09EUSvkdn*1Smml{3{N9q-n5@9B8(p4?l1G%I)AJB#1R zpSOMZk6+q;x})LJ+7NcTO5wy#|_Fn{=; zAGI5w0raU^Jw4p{?%A((z2V-FO*Jkm-n97TJAbqP6NfWoHw(t`{9$FwigTj`t;2eeVu=L{QT0zOIK`rwl{je?ex7GgN`Ki~6zWbKa(eUikBiSp0tgY?+f6EJ~4RtLu4CuYc(e6+0H%UUm)k6&4)o zh5jz~@4BsW?ZcMNSWk5H(F!g8r9$D`z3<)`Ty$g3G2OD;E1G}&gU$y$XWzQa-f;E# z%V+P_{i62Ie}DDB)g7*$tc`J}yS6UBkiFpa#)I7t9dRGs`o=-GI%Ywymr z**D$4MBmg`HS5+9$BjAH&)@RYCug1=@D>a&ZaO$;(KFXZ*DMgKyKVc*mj34-^U8+L zojCOB0oP{RSKdC?e)!GOdB3mj?cE=_e(6f?)z+Wx*y&D?qT!d$i7 z_QDHucONY;{C;fb;jfi!ZCBg+D%UQ2{&?j07fU{fM4p>b_~pE#S!dK&UcdK3{+5xU soEfjzHeIKr4I8S@Zv9#3r#9;1kq362+?{((do#Lx)oRb-m76>M3mj%}1^@s6 diff --git a/Resources/Textures/Structures/Windows/reinforced_uranium_diagonal.rsi/state1.png b/Resources/Textures/Structures/Windows/reinforced_uranium_diagonal.rsi/state1.png index 3799df51bf9225b991de796f1ca3d2d663373420..c40b161092bf1688a7c328fd6fab6c2df6b94fdf 100644 GIT binary patch delta 697 zcmV;q0!IDMdgBFEX>4Tx04R}tkv&MmKp2MKrbE=X9p)m7b)?( zq|hS9JC1vJ?|WbFz5|3tg{fxOB%o@Rk&4H}Y;IKyyh1=f&3|zS5;OHgdNBjf@pTU$ z-|r$k%e(H+(Wm512KYqcDANs#c!PL$)6zNb6NgwyQi#uqCk(nE@gvt|m)|%S9Ts?I z$jGGTi9^ITl3X&m%3$PJKou$^#}EDozk6#Irl;JbU<~MfvF(ph zAg~KG>$d%UY}?Hf!2b+fX>EVC0nB}pUT@*Z%x0}MUsk|8;gpO#Q4 z0Pkn?O*vrj7U*4b`_?+g=>w3VUM=4M2Zz8|k+Ro4-Xz`A*|&ddTK)S0Md5Ol8b}Lg z00006VoOIv0RI600RN!9r<0K(7k>Z;bV*G`2j~J04mljW$Lr$&007@fL_t(o!^PJz z4#FT5fZ?AeCN)f^;RYU{lZWdKyo3kx7)~yXbTZM&24kx&ya$Xhe18Ze02N2y_fJz3 z@460C6AvNK)WW^@SZm7$#CY4b0ObN={5Tx0@A;+%e&5{y%AA2E9KboJdw&a-@W& z#y16M;Hv|)@Kpht_}>6+{AWN3d@-ODJ{wRH{|YFLe+1OPr+~R1OZ;@!!U0VDQMA@h f3n2t`9N-1PCdA8BN8=m-015yANkvXXu0mjfL83K% literal 15695 zcmeI3eQ*=U6~NcVb*U+Cnx+$I1}fx+gtVtSeM=Wv*s(}#il{KAwn<4i-L2#UNhfq? zOLn1nNJ49zvefQB}Iz|f#1puui(Fe2x08k}yE+3s}OoZm56IJ2GQtgMw| zELPse@ivPgdl|h|=$9uUh4^OQ?b&chsx@|KTAXLuWHM<=T1`qK%$nV9H_KUAi-kcm z7_~d52`MI~)?}Pa`tdO-uMku^wOXT550tyI`-;YMfnsWw9iqslgg9$9 zacnUoNzB>AI}?%g(j<|E5g3IrO+|L*qIU5PMN`xcr9{Y_x@2IK6Td$fyXbnO(W0SM zZCMvWkVRV5Qf=vuL$(>JN@qfZ%ev53YKrY%lSBFBO!1^^O0FHIo#KYny`F!WSL7$*OuZ6Q%8P362 zY%OL7Z*%cx+qXG0&v6A#GBYtBenpZ)-FY8obf7IQX5_%mn_Y!I3TEOyQ2j`PCd|l7 z;oJg0lE{aYL{!kca#RRIHXaLm*!*C@%-pHs8Zvvc%_ux@;kr%?(40lapMG*$g4$7VQoO+Fg?1 z4!PV8Jr{cMA{Y5}>3-9rQzI5`hqPY(82J5sQ%uzaw4ElO7Y&$Xv@(}N3ZnP|Bbqro znw0KEztK8 zGHT~Sq+pJ|7YXgf4Mm&if)WEQPBRlU+Z>FGa|D@CP!Qa1Xbn0Y&h$A)dnw{(TBt@@ z&wDqP20b^c;ijph`MjqaZ(K;IP;V=>#>u{t>(pp!?((GD6EBE*%l3+T)kDd{P8rQF z3pbOer*mcqGX4w9OUFodz!<4(WL%|Zm3E>kAuTB+V0{?X(@Yv##_Low+TPY%p1bD4Zjt*psvonDC^ z{XbW)VsxT}boH1$?6k3bG@6zhc4Eve`ZY!)wpRp*|boNo8~Ro#AMBD z$wtG53#{}TgUr9yYIF|^y$-wGYWJ}CFm4f$Q!vuzlhMDHs`nEsij=m&6-5o(OBog@ zvWA&d72Iv6n_*@Y-OHleXf}5rJ*`jXy4dIWBfq21(<|nS2El-kMT(2e2h&nq7!a~Z zagq68T8aw;LKZ15G9OG!abZBnBE?1KgJ~%)3Vor!L$??281k9Tx33&mg2&IkVT4%%m>p_To@3tNO6(*U|Na`140%lE;1iXOL1X9 z$Rfo>=7VV|E({1+q`1g@FfGM}0U?VN7nu*HrMNI4WRc<`^TD(f7Y2kZQe0#{n3m$g zfRIIsi_8bpQd}4ivPf}}`CwX#3j;zHDK0V}OiOWLK*%ByS5^MWR2V~#qbAXFrw<)D zg`R5#2C=c(4?xe20QBAiz=v1S_uBw;asa%u9zE{*3jnTHcHaHx+W{!AZ1UB&q)tD- z=fv`(b=TeZ(u#(mp|$;ME|uLYJwEbkh4#j=BkMPR;mqvVmG<4+`m1jFZ^fT}a`W(0 zru+7tT^so7-_|s}a4@!a-q_n$zjfm9KR2uAYm?_63_abqY4g3;>>q3I53cyt;lYtx zzUXLtwfe%Y)`=k${^z^CxvH*dpKa@cg8ER^Isc#S3TmhDVOXyUH3OD?bvespx-^&`Sf zKX@HndD*bm0G)gPP;uqq(}(M}FRBJhXMwAOt4@6~zwdSZk>{pmD}7Jgwtn0H04k+k A9{>OV diff --git a/Resources/Textures/Structures/Windows/reinforced_uranium_window.rsi/full.png b/Resources/Textures/Structures/Windows/reinforced_uranium_window.rsi/full.png index 10342c5705897d15d15cec6e6e15d43900b21769..a1c44f239f04f38430c1b7d52c090dca8a4f54e1 100644 GIT binary patch delta 426 zcmV;b0agB!5X1wJB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000ic z000ic0Tn1pfB*miSxH1eR9HvtmrIJmKoExGFhWdL5&|w{R&#)?JkT7$jgSKb+;{{J z?j#0bwAe;W6=%gQ2e^oEKdlW^{#eW$P65zTn{rJ95ZQta1 zPHkD1cL4~VWf=|hO%Mbm;wAtc2+jlZcF)^G}dKM4G0}E5KB6gFjB`Zx9^k3h<$b U03mOCK>z>%07*qoM6N<$f~`xgk^lez delta 2053 zcmV+g2>SQL1CtPtB!3BTNLh0L01FcU01FcV0GgZ_000NYNkl^G~7zLDP_ay*ecJtI=*Ya~` zz?BX`%tTL%A z3Z>(CwrV-PpE1>G_bUL1Y_Fi*|G5a38%IOm-;_1$lOpYMMSP^Xc~a>3;;a1-X$Qj3 zF`@@XtEDshSc!XZf*=sNTIAehePEG*N9x2Qbuw1&sDH}te9f3(I7CXg_b?v6pI9zI zWq~8?5|fGJGsZ~e?tt0rk*GRcs=Ag9)7>%IPaMA<}1%Qx1Y1yWc{iR|(t!KxZFR6n|FJDDW z`5+tvJcmM3hO|QDRLFCA_J{)j`Z1l2+$ZJjp2#`OwUTRsGzd{oJAF>k_J9k7O~PA~BvKYA>|t!ZC4#Tt!TevrxSz)m~_)xkXNMizuoH zauc-fP)K{K;R$Eb!63mkLIHpTRzx=W%Y5ovPgjwrgHPHu$Ja>g@?l-wTNEMZJ>3a( z#cthjCqo*a6;$P0bKC&1E4l{&Q2cg*JAdo^JAJMkM?*Am#RPz&ckED{!-UBimNeoe~~`$lZ42&0Ap#=x~D6^d*Y`_ZAXv~t%;fXkv^I!LD#}7*5hwH zOU^gOtZb9tL`UtQ*xb6s)loaBZnk9vP|Aqc?Z!QhpMVhOtGmb!9`;n-+#|*XP=88F zcKftfR{aWj-FaD=dS6DB9$-}m3;6matF4R2Ml*(_RwOL-k93X(DN6NX+&`~W7QgPx zx(U5II5!)W2>U0J(HcXPZ4J7uNLW&D_b@RYF>CtDxdQOD~0I9Wx z;q4wKnc-%HDgc=1F25@!V1y_DAb&Tm>bj;h0HCSr2}=J!*8m_PQUHMJU1dDm0?1Lu z0A$=hyS3OOYKu(jYL8Om5yN)cpq+`IQ|~wL&GX6916tNaL|Y85<}0UZ(sGSG$c1ko)y%oYDzgqmNm7Npg#dt? zX*QdPFEgx$K)IVU%0{{1$$v%C=AU0DUzqc0VZor*UGu?BTq9A=|A^c#x{hvpA0RA-c(f zscn9ooY;e@oq_cEMMC_xZ;QY`{SI&=JPfUgnE=a-*wmc``uV1~(0>3qV{fUaYsp2+ zBMUPNSm^pUPoprjOVFklRKz zyYWWsGGIx^Q7Wc{yMHWCCo>NecrVWwvrm?d@j(4qHm=xEy&fMHceKq(N_J=|qpD7d8FJJ9N-l+s_UTxYwXxuzFXx}F6f71W9F=l1WKU-l(zNnTp} zOxg{NRpwW^2qEO2A3S`k)$*oy zCT{4@eL3B_T&89$L z<4=C@CKLKmtAEv4F^I|l1Jd7Q0<2Idgc=u-0@!4;S+Cu0hZ+}=LjYhHpobCU#Bp=q zf7pfd+4=!BV{0Uvn7`k)^A-3;qw&4A zpL(D1?klfLX6oba=D4^aKwd3Q0P<>a0+5dl-tyfnDSxo1pmMn!TGoaT*s$0ouGCF~ z!JfD6H+E~ohAjXVIbnvL|LYpxps>?#C|r*1nOJg>J6f!o2;zlee@fPGRM zG}Hv7!%n~T$70um5uoB=q+8F!l7jlBuoHm1TATpn)$*@X5QzGjT-eNVv3RHBGr3{m z1R$>#Cjfc1Bt`)H)Y&#JqNhRB5)fps%@z07m{0f&K=8p{w~dQP0qhzgEco4lZCu0+ z0aH4UT1HFNt+7Fa{|!WC06cPkWUIuvH7m2jOV07*qo IM6N<$f>@(TkpKVy delta 2355 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 ba3J&-iPJcFc2Y^e00000NkvXXu0mjfk!^nm delta 1148 zcmV-?1cUqN29XJnB!3BTNLh0L01FcU01FcV0GgZ_000C-Nkl5TNpusmge|4ggN=!8IvaOeXXnqG=b=WE!>+=M^M4jHpX2`K@%znpe*4~+ z_a5P#LngaZd(WDW#(3h}-<6HOul4QpjfE-!fO_%U#T#ct@~a|)w*oVN$iWxCX_ete z9OkpXzedaFrnY*fxe5T7GWEJ~0hE7#~)d+(mUWi`)gkvTT#7d z+il=3z&OQYimi^VM7-n8cFw)T)bUcyxM+Uq9k4sK_kV4X@wbaNUKSZIy#xBsXTOn| zU-~K_n@|AR1;{28Kz0GL2?dZ{fNZwC0K!J-g`eIyCNln`hhMuWT7wANz5_x5WEUWt zPypEl$R-p(b^)^4_5uiRiOJs55=Gbvnjfd_e>OD%a83b09a~Y?H!aoil3p(^6JY^f z)Spmr5`X^m;+(!|+xnUNEC3{{_bSnov6^x5R}e$^FYrgz9w}8VELBVlP7LF&Z6SZ} z-~yWtHfqF^iG?s zdj&CsSAn8($1i^QGcEVT-CL~6na{A8W=`|uEq{%{^BFwUi*LnCh_Dr_fYjq{QG_SK z{`1*O0DxC&KQr-M?s4_0o3u54ggw&J;J(Y2mB&N&C z>QTe(C?L|+-i2g=$Gj75UQqd^3$V_WZa4$^)5OZe0`&+DBY;6PvO|wyA8R5Ygmnd# zw;=?e3MJmGsg3rJfL^l$tx387YlnCFZ0e@kc5siEj2r0d?D5qL%iCuXH0CXWBZhsI zR6NF*U*(n`O2A3S`k)$*oy zCT{4@eL3B_T&89$L z<4=C@CKLKmtAEv4F^I|l1Jd7Q0<2Idgc=u-0@!4;S+Cu0hZ+}=LjYhHpobCU#Bp=q zf7pfd+4=!BV{0Uvn7`k)^A-3;qw&4A zpL(D1?klfLX6oba=D4^aKwd3Q0P<>a0+5dl-tyfnDSxo1pmMn!TGoaT*s$0ouGCF~ z!JfD6H+E~ohAjXVIbnvL|LYpxps>?#C|r*1nOJg>J6f!o2;zlee@fPGRM zG}Hv7!%n~T$70um5uoB=q+8F!l7jlBuoHm1TATpn)$*@X5QzGjT-eNVv3RHBGr3{m z1R$>#Cjfc1Bt`)H)Y&#JqNhRB5)fps%@z07m{0f&K=8p{w~dQP0qhzgEco4lZCu0+ z0aH4UT1HFNt+7Fa{|!WC06cPkWUIuvH7m2jOV07*qo IM6N<$f)tZUc>n+a delta 2331 zcmV+$3FP+f1*Q^^B!3BTNLh0L01FcU01FcV0GgZ_000QsNkl1YitzP75?VV z%+Ab?7q9UPdu^|fU9eIc7Gj$fm78Fr#1)SimxLBoph8lpqVS_q)c{gy)CQwgO)E!f zjffK&wKPy_r~nBNHX)YKf(e+|N`NjxYkU2`I9{{f*F5g@2Y;AAMIq|Y87q80ujbBo z=bLlSx%ZxP8N)DOCm4o-^itIhsVn?dJZb98R;`ZdeP7q}|3XG@+mhGD=k z3=G3Sho>{O^JELh5<=EK_o7yvyO^IXc}$Z}2LS*olYh<3Vzx&eFxDsDp%?;zrjCJ| zK|l$MqyhhxJTc_Er2xPm+7GhZ7am9gz_|aIDQerN001DWvY#FbW6!$Aq`#xsjr0@; z7eqKABaJ$}=bTcYV#FBYbTY*0Bv=(S($DB@go`m|sqMFb1^Fm^Pe$36Y(`O1e4zLW z#RoF8xqrehw{1N_03ZP%XU~J(?zIKY(c3NncV*1z|E(kWA$svE!7XemdS2VT`V+nF zhew1LkJp|4fAdd|DR2jbB`mW$et}v_Y9-mj5G~6xiVmg;0MOq52>@W$Uor%%_-z+J z>I##-hM4N>EO3NK*HfqFEDNw3Ui;o8^wt$k3Oh@a+ zw+&xsfx}APN5N7j7_1&j^bGZ)yLvz=YJZdYM5V{lo!`S?ofG`gcnSb&3%?5h=vzIR za`oOaeWGI)mQI09&I+R6ng6!``6-w_5js(Ke97aUX=q$Qn-2!~-Ag~lPu)M!e~dEe zRMY21tTfYh3otFf&5sHb-gc3MYLgHARd2gULd#+d0NQMvRxywA{?pGejtW8TJ%2gM z^}qflX4Z|Fr8f=JQ^2js#>8{1UUJ^W$rOnJ)3MTd>#%~&?1%D{K^l}maO0T6OP&%3blG-ni{h3|q`}J)AK)QY# zbRq?0Nb^tS%(}cPbiMj;aen8DFBAZ_uLn#|fe1fFWMG@sfs3)2>mvwnh)%mvMU`G0o${q185 z`B?7qL=gb!$rRH!zh9gAP9z-wCK18ikAKT7zggJ28%zB2yq)v_oKT|&W2I712$WM`7o$vlGrOE z{8!4;kj!;Jaq_+{uNYdZrhjnLosF0qNKn#UJ2E)GZB7OZA?7_Sv%y!x$^%s)HsOhe zLH5jXmrg0&wrrzTQ&63LHw`;ev?t6zA_KcJEo&nEdom7>M4f^|2e~!{874rAOxP0W>tOa5P^C zsDY(dpeQN6?1gM*xM|dgEwJqP|G&bt0ADAE-&S{I3H~-i-8AEQHbZdpAEGybEjn^m zj)`XZ&BD@k!0z}3%6}4;v6}Z$uclSmy*=WWn#xr}@$>=u0$>J1lZa)zg$0xSR8zs(%5{8j`BB$Ns#4>G}Y( z$So=U-OZx~iif6=t0f2dZK1bPP4Nzz^ZhaD>nyVNmb_=GSlIS36fe&*xHgdozN#IV zswJ=jwhQ1mA0}FTQe#hZ++boDfxsXc-WW?+#c#U+002sjf!e70#{ON1%!@o-rLt3? zR5#+O6t1yR1Am5L*;aYl2;l21aI|iG+bHSCwDgq7b^#KV9$M5U^WD`0O3zR)g4IKb zr^*SsdT%j(t0y0*9hj;mumZLVa382nbz_sW!qPF>eq%%{&14FjcyZ~LXPEI+MBUx@ zF~KQ`G&HWDZFNT;TYG>YOf7_L7XX(A(chSf-jkz-V}HG%`mdL=feoJ<&C2N*4(Ia# zi1(OmJhcAcKid8m*e?J8xOn~9RUY=Wy<5e=_il_LBFNCxBseIbgbgi9h<4PQ)JrJs=nIhAy_ptNUFK9EF&A2aO(Y~Kz$>lXolZP(}j4HP9zx)x2KNm~E_002ovPDHLkV1l!9 BU^f5& diff --git a/Resources/Textures/Structures/Windows/reinforced_uranium_window.rsi/ruwindow3.png b/Resources/Textures/Structures/Windows/reinforced_uranium_window.rsi/ruwindow3.png index e10cff828eaca524427883090f88e0a16bbc1ae8..7977b29f0cc6fdce99b0fa912ebe23b2a3fe692a 100644 GIT binary patch delta 849 zcmV-X1Frn?232wxgW$ zfy4KAt}xF1c=dSBnSwYI4u^G&@dR{jqwD%BsARdobECGH+p&Lprmt(pI?gB!g zP{rsPe$UASU< z+TQ`mWU^v~zu&V@CX->h2kru9=M!aX5T~GPn^#X(jzdWWcL8&y=>?4NICO3EGF(bQ zNdv)F z#kJA?2+Yh*+x`wPO^lk`JDStstZwKVqb(pFk5kP8z3nUoRr9(0XbT{Rn^4+EMKyh0 z4?>R%%mV(mAK>wLQ0taAO|n+2!PP$Pb{l!UUVl_?)Y0bqP3AGMa43r*a>Kijy47m+ zYHLN%OP(Bx0GG>!oOfzP($1t#6y0t&yuu&39EKDYDF9MfqyR`^kpduvMGAlv7AXKy zScDhAeLWfs1~J(iXfzs#tQ5a$UwYR&_k9tc&xe}LCUQS$q)7gY?9|q1|CbnVqyR`^ zkxBv}g+&U06c#A}Qdpz_NMVrzAcbXU1ds#M&*>i#vI-<^?}6$;GBg6nfhjpe-DPim ba3J&-iPJcFc2Y^e00000NkvXXu0mjf$CiNq delta 1117 zcmV-j1fu)s2J#4yB!3BTNLh0L01FcU01FcV0GgZ_000CeNkleB9LK-& zW_D+1*_9}^(cP>Sy6hp5l!yv}qEt%~NG~F7P7#WQ(1PtrdnloW&<0{}ftEn_Vh*7d z@sgG#B%xVa0;v@&HV3tIb)QUezr$=P+Ych>r1S{8~rZH*w@?ZE( zaQ@HRXq^oCGUv5202osty;fWX_V2g+zeIV6HT0`a>z#TZ(|igTL;H`f_%m-8EkI>} zirR5G6zU=Hr+-=cGFRR}w)7ao-&{bkQo;DpIq~b`IrPPP;BZH%Ol8&L(Yhw7AwVv` zN56mkIRMererf^s$A9A&WZFMTr$=Slldl5DuOGWh znV)(hoVeK|^#^H?8X;)`Rwf%NG9NW%^UESFz=y#%7>2>`-&@w7 z`)vJgwtoZ!lrzB&rVj_I#$Uuk$RPbyn0jMF7HI(vJUDqC0DO0R+QOT8i*rY`r(*t@ z?nU$OTX+;9ty)|hy!(mVBgi4W3M{b#Uz>8&Oz*nIZA*Z2%)I`G**X#Q0S*To)Q;04 z-2qJ;D9%`iBn1qW0WQR8GL@Ht& zZf-++D(24&6fFPrBXTS5Y60_otL9+xtg>T?B*#4g6vat6VI`>RU`!=u3{?7|pPHE!&tfG`llKz7n`M37*bXD!j}c?(iiP z>{5TB5}12R-V0nE0+))@T-_S~>;8`2f!ccs^hk`heYVQgm$PTGVV2 zb;^TRzx98;oU}&P$L*H~*7W~!h*I`^0e|^PQ2+pU_yY1QSKbgK&#s!V9oOCp`7%^I z)F@gf!q0hxZO`Ba&%{D+&{kVr+0?9is|R(^5;wwdW(GzXJsmHEC^ zS3Sb65r8pO3FqyaTFhst8{ zAok!z@a|cfo0k^B-ynDqR1ic-?ZJ>%Fs5y`xzz-(A=osC3V+$Oo9wvLeu9-AvNOa< zoO#OdezVY$eRi`mvqKfcnMfpp1Azc)Hk-)n^}^9Zg25nawOYvcq?sXk9J$Hr5|mV^ zklZm01GU?2=%FKZKN%PSKA#U=%$!+wKWH4Zzwd^AF)#vnAq7ARixdDUEK&fZut))r z!XgDg3X2o~DSs@??*nGGCl;VQg5U2)#=XEI$ws4r$O?}fA2%1x(LQ z?L*l!mW5GkXW!#?x$9f{)^H2B`SgkoWzSe`%k%Z65yn4UyBq5p!!6+2t8fv@o>2{# z$9y(=*=#Di#ZN`90+>eu+{PZK&9d773;+i(-vL+WrX4>6kcH4*v+Ge+SH1ADFx+1O zP1C5arGGsSs4r)ihg-n)`Sf=v9fK9Tv+_K53A$Wh7I32!TZEE^y|=N_L#VmHEFk?k zeC*CpFW8eIGdEd%3|%g;j{^3LjboAo6Rzv19t(*WU|(^I-wH*mr3(PT67{~uJ z@9n<6&2HHw(!O+;y}0yHnh>E40SPr#v`{apVlTx=dMHZOQ?y_~L91fC6_g$lsFZ?| zm`ep)thFqKU<<~i^q}iy*)`kHB%5TD-S_s*jEAt&g1ae9nSY7o{jT4>{eSsqX1;G{ z<`E$Tbh1009+|(A@KRzYx%c#U;jfEhwc(|U{;pRRt(Sg$@#bdFf0O>|2N``+=HVv> zXFP`$TBOP{8&GGuFYgVGo+a7C3!X~dEn@(s28mb}_OciOAxxRBDxs!O zN|M)Oq4USjAU+dUnv-?|yq+YtCvB7U`~Du=L2qvdcSc*b&mtI^eLyM$Ww(H`&p6{Q zukzxFC0CWcb^{)Q8q^>c*6(noqAJDyi=Yn(`hX3BK7SzS1A;z4OCLaF_XA$fzIAl7 z&s;rn?a=&0n>*4vXujzTh4%gRnwKLhV%N)s@cnFdSSkTY)QteI#)cOzd!_2K$cYsJ z&Xm^sMkq6&Ufb)nJ~bY-R`<8--Hw7n1BydsKb`5YyPQsRXOiLEv9+3gyP$myQkp>a z@PaoudViKo_vMw=`evvzfDpEq#Yn`mK&e5L>28A35fGn=)APsAAbC9&0;OBR1a*tx zXp7a`+rjtP4p_hM+mp8G^(3`d0(Fbvi6z(NRn9o$1(f~DK-rDVKF~f2lum&Q>vy=Z zG5@u%{&j*rK$TF?2O#JJf<7SV1GZovAiW>3JAa)XS?_#Ggn!LHVrJ!Fg2(PI5CCWv z*S#MgeLrCSO2V@z?9k#l%LC{Cx|#aEC6xO#R0RNgGHNx8>qL4ABzTmz4HztSBOan= zh=5Xb-%5pZuU2Y+K>-8J<9d;v0&8C7%Tje2e^-il``gd4?z*^m@)I#roW%>t=fF4< z27fhZqj+Mcqjd^M8}RO*@1FyJsi`?y>MHR+j8&2Txjmfio2vl8smK9p(H*o=Ts(8@ zL+QUl0%-%t?>!$oV^Onsa&6;4QwRe9oUy1`Kjd^SwOWnh;^1!|NhKi3lc)k;$UJ{P zn|)6z0ZF8*z~fwH+sbHPg>@4cpgRHG1b+tTPCz$-0lE{=&9*l{x)YS;aqbs1L-u`v zZ9f7619T^#o4^3w3Fsy;Kz9PV+4cr#e{b;Wk!y#fz95VL_luMB6K$@{rmC#Ib_3pt z^i!M$pPHJp9@#d3W3B>3$f?KyYMtKEFfOaF{kMSbgB9%tB<~&l3;>K9rkQ_!wNb`7 z6Wy6)_@PS_Jb|d$C@%Kh{6I!udle|qGGClzMy|h9<92w)swXdahC e`v}l|y#5b0A$=t}Z2Hsy0000u5v3s`F-#D)(ftT1(7XWu2;-ItL zf7^V)t8%CdfNgIV|9MrkaLJCk0Kio|JpU2|A%L)p_r3W3k{|>?;lASG1eh$CP!|9N zn*rFxbM6Fn0e?`O9e_mffcl5f$#Z#u%O5OK{K|g_nRng}34%HWG)Mw4M@tfbIa-!J z29F;Oy~o%hEPISCOL_z_M@tfbIa-nc%&atbz!ehgBP!_&MwSy=RXJ=I^NtUJIi z-n{b^+OP?r;>_ZKs;Xu}8`d4*Djtw-e$0dYCFm-CvVRB!kyF4`{LaT7u5=L*0NBMp zb>CZ~(Fm{TAtr#J;-M*OHb%7&6F|+6*X!Z5?*~m$ZNzs#Xo$W8AYcXnFU9o;5YP#R zb~w!iXe0U#z~xkeJrbjVhyZGO+7d#5T>!PXToOWnRe;^$H6?^1f=vJw?UG=IHmp0q zCBY7DM1LA1^Zxj_-M|0;jS<(Kr_e@3K*%Hkn4={Lz#J{=V{+Q_1?dsM94$!z=4eR* zFslJSlzbt9`Z3sUx5v1gVbO8NklB|dg!Gsv=u>Qm|k!w1|hr zR@fGd3QgCqm}T80_(3$TqHzPR?(CXr=6iZ5y-2ccS$&_w&VTPXF#P}gc;0zuc4sKp zbpey^qaPk_-zJ;G>bNs(f6_L@e1B(1iqL0zPiy^S1F3&I|HrjQf2|~+t>ola!9?`2 zJ~{T33A75dr5O1w^^M|)a?M>Ki42K+nnXxBhNK7`iL7+Ob1iJw`#tPp9c@xMze6e? zeFApX4A3{VDSzmUZiM}(4io?=c3*UZ|18WXB=XS(e31K61I4A+q|Zs+o8JmuUzi_% z_$Xf_m5(lJ!1m=*G-(4ZTpsu5WR=mMU7d`~o0O)VS({XS%_)&js2 z0QfIEz^edVz}DaT$1wBJcL8iX0oVnw@dRKOz{V4RU4H-m(oW&P20%Y4?*bty_|Ca-TOJH?# zFrXwCN`Lo2NuSvHm3yO*=GO;1NX0J;F##uUPb!fuaiL8+`aEUwj_X ztnQkI$VV5y$;>wAH84*(Zqpy6Dl7@HU0|+Z?$22vZ}Jpt1VTErO!G`zQKU%ZmxIUz z^nZ^Hq!O`sxE27;LiXxE$Nzp9BGF)Zh%Et9FFgET(67SScml8sVB-nEE`W_E0J{J- zRWE?T{$2q4{er5W08apR0c<=0*afih1Yj4yrs@Tte=%}ydm?74n)>qbs`+GQ-gFbOc$kC)^nWFAC!o36cEc`a1Tb8SU!w;(d0u{llSGL` zKKcZVHhwGKPFLLwi10!}Z)oilLJKA1cXKkWXxj_-4= zleZ@oQu*i;FszO{d`e(^tjE&6qbl_dG# l1z%1ZlsB16?F_GjzW_RDWP5lu9N7Q>002ovPDHLkV1m;x@CEqyaTFhst8{ zAok!z@a|cfo0k^B-ynDqR1ic-?ZJ>%Fs5y`xzz-(A=osC3V+$Oo9wvLeu9-AvNOa< zoO#OdezVY$eRi`mvqKfcnMfpp1Azc)Hk-)n^}^9Zg25nawOYvcq?sXk9J$Hr5|mV^ zklZm01GU?2=%FKZKN%PSKA#U=%$!+wKWH4Zzwd^AF)#vnAq7ARixdDUEK&fZut))r z!XgDg3X2o~DSs@??*nGGCl;VQg5U2)#=XEI$ws4r$O?}fA2%1x(LQ z?L*l!mW5GkXW!#?x$9f{)^H2B`SgkoWzSe`%k%Z65yn4UyBq5p!!6+2t8fv@o>2{# z$9y(=*=#Di#ZN`90+>eu+{PZK&9d773;+i(-vL+WrX4>6kcH4*v+Ge+SH1ADFx+1O zP1C5arGGsSs4r)ihg-n)`Sf=v9fK9Tv+_K53A$Wh7I32!TZEE^y|=N_L#VmHEFk?k zeC*CpFW8eIGdEd%3|%g;j{^3LjboAo6Rzv19t(*WU|(^I-wH*mr3(PT6A?{od_tC|&SP3UxaM@{ zQ=!g87c%*s#(!eA=E~AnZooQ|{j+xV{3t05F4!`4H;n<5YNScmk?|q~gm}_)WeGKe zQj)$A37#E3iI%CD)SQ$Xu-cbk#<-z51D=~S66onmviJpk>nwuN`(Eru1 z`pxxySKpn_wOZdsKh!>YEgRfDGi(=0h3_~p8+tN5^RZ9@g2)>Iw&RVIFWSqsDlhU1 z2lJ%X`+7(-V7<1l*ZOoWtd~2ttKE)*L<1JHH8+#rX>=yK(49|(iU-%6<~xs-uR&51 zC=4#x*?;q+WU_x&YOQaCJOc>vGG2r<={hLYh&0^|kU9cdregH$@JXa^M1r7nQ!IQy(*Xh$2%vFXEy7b^&8mH~T&tpF&f&!6)A+}-F!sS${K4E526w#& zkAJ&7Kr~t}o{Y9BodUuJoG6Tb2>|ydN_45K%nE@Op1Ii?D)c`x0pO_7OLc0{dU5{N zZ=VVO3ju@;AXB}k;$z#i#rLhJ2b!D*03bfLOm@xyrVgQN9YR#y3E90)MLU4N#qcYJ3A!C!m@wZ-8(oD9Vf6FKC45 z_X1mf1o#H1PCzxj0jd*Fjcr^WC>U7138-1xmEamd2gH9|L8Fxi$x5n0)6?JDoFvfX4t2jpJe{9|5Y5 a*Z&1WAAozTG^8U=G(fAZq3j za5#w7z+g*kRqAzPCHhZ-yrUl@PsgY{#|1s$tkh+4{1mvGRt5$Ie7Pgg&ebxsLQ E06wu-kpKVy literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wkP;jrO zi(^Q|oVT|(@*XmfU`=eg(NZ|0(N6hddRxz7owSbqKU9jY+rKU;dVJ`1)N8fM`tR3M z>TT?wr_|5y`QONt!RX7lrC}LEltVCs?gGsQu?r#&+!gTe~DWM4fngUnA diff --git a/Resources/Textures/Structures/Windows/reinforced_window.rsi/full.png b/Resources/Textures/Structures/Windows/reinforced_window.rsi/full.png index 34c51d7c3d6a3b995f8df92ed1176e988a2ad8cb..73b05e9b2a0e57f6bbbf74c2203f6a234ab05f53 100644 GIT binary patch delta 412 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 diff --git a/Resources/Textures/Structures/Windows/reinforced_window.rsi/rwindow1.png b/Resources/Textures/Structures/Windows/reinforced_window.rsi/rwindow1.png index ba95fde9e59c54dacd0eda155231ef640db07f41..defff91bc0186ab4955ad1c16e520e2a4d9e1945 100644 GIT binary patch delta 596 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 diff --git a/Resources/Textures/Structures/Windows/reinforced_window.rsi/rwindow3.png b/Resources/Textures/Structures/Windows/reinforced_window.rsi/rwindow3.png index ba95fde9e59c54dacd0eda155231ef640db07f41..defff91bc0186ab4955ad1c16e520e2a4d9e1945 100644 GIT binary patch delta 596 zcmeyv@rGrBaylaqHE8@!#WJ5w=>1Icja#Hr@s53SCOm&p$Vu)N{t3ajI9Uja2WQWA6&ZojZ4| zlFwOmT1k{`!n!Ht5o~wjuDPF<@(iNW-R&wKFCvnH~6E7}ix$bf1$~^U=x2OVWZKnanU*s_JU< zGe!M|qq*SvyT6TA<}>T?INfCF_Fm)Wt-#wMZ=Y9atk>@89UWAEWb$hM=6$Dc2OXLG ze=7fi(tqD7ip5wOUw{8C@wf3>{lb8P=7R@zGa7d?UDmgGb@`V+x3OV^nN7&wrEaMO z?_wMNANU4z56DgEc!l|a*O7A;w0O;tUNAZ7$H#xRevyxpHoiDyP;&bA@8utVgOMhtD2Tdy13hj@jttp$flx3}@yVSk+ zoO@;_ezz@r$eZx9nG>Gx%ei-cXU^|;e#|hR`Q>M>vi^E z_UiAJ?ZEhFL%8RYDv1&{X-NqW-@Rd(rb!uNgm$!q(uzuB%pi;zge0h5d`d^U)2Y*iz$8pHd6`N&yS2tNaJDYIMrC}IsFnea&*w1?kR9?8b8?K#Ax0pF) zx^M`Uk-JSHb7p=7+NY(DWwv3k!R*Jktk{Y1uYC%%Jna*;C#qR^a<=oI5V0utB>ifh z^Q7*4$ce?|pO1QZB0JW{?rZibDGo(5)Z= zK8Qi9f&};=2CWJb;DZ>nYQ!f1O@cemG_At)|7FdB-!T0t#l6Ca9|1uEd=P_H1qtv$ z3|bW=zy~pC)re038ic0Kn2joFb+xykN?KSDLYKsfw(fVH)t)ocOV`9VF{G3RT%j#( z$;x=!i+}px?L>B+LQjFbi7BjP<2Pc|qfUDaV^)%3QhD#Tol*R?Yg-nbHF>;|$gVp9 z=m1_v9Mr}}M(P;c#s+c6tCnS*_>mRG(SOrkq+gmMs+AmlkNztr~F z?GHy~gmWo8p?&y+lqCRI0IpYCJLBK`uGiS(GIG(In^-AJz?UVfJ+G}fIVUTVz$%ck zXn%R^pRU{5QCw*N$#V+aU#kw&0ZXKIDN6vQl-op7+qMZ~OgjO-lhP63{rwmFzI+3D z)!bDNC@&RCogfE9oll=)TVD3Rdhfng1R z5r7qx`c~=eLjo26CIB`7MgUd-W>Do{djg;)0JQ z6*;7$Tg*BaI4*U}(9bY!pSJu$z`S4bDIzcS-l(iP$6i1E{|~m-`Q`6-exLK2hja4D zlzYJ|MM|w?y;OuMez{uBU1q?OSy=qspr-QJWk)^#)5kgH&S>qr{I+c6_16!Dd5=6+ zF=JDi>=||YUcO%HcDv)}wge#c zZ1#^9aohd-txmd`HiWHKjhehclOeQQ5-XO~zVo6cCoaA6gXaY4g@q5}d4Ak`@ni;& zdGNQ+xxck7ejeAE_te|WKVK~wu==XnZHDXS4c8gxaS8utdlPz2n!~+G+&PZ_)z@Ds z(gF24p>ud1^c>L2ZTMB&u>JSWm~)xD5B44m@o98g_+TpQs;jS3q!-xne%pLteec9X zOYQenu_a$p`Cgs*bn4Zy=pSC|9xp5`ZeK5S(62dQ>kP(#tvCDxw2sAp=Wa{Q`lqkZ z3iCsS*aSPDPHBbOIb!AxyA~+rF-*U*=+g`j?tQ9TBP0$;-BppD`p>UGcA@YzwuOs6 zh&-@9qIX#QqvnCNTUYo#Ys$~|y~FS|Gho|Zzb}j$k5BD?a^q7pFo7_5y85}Sb4q9e E0C52bHvj+t delta 1110 zcmV-c1gZPy1nLNoBYy-jNklVH1q?ZSg zxV(@Mad{wdOC(hAfCsmdNIZD(fJP$W#Vz8Y)sQOEHk6_&w1iTWmT=D5%go4MsgO8Z zOf$36{a*HD|FiqeerM-=|34Ru1i?8MxWA;2I)=C3E;Hft z%?C}L=RQ97vO#KU6MGhz~PVYg)-CAklRofKe%wdD~n&b0A0XiCfR#Sj^X%; zxwcGR-v~em!GES{A`@|pF{aXZWf6G+9{x*RwXt#S66C&kDz#0@1sIeunYC3_=tT7NsnC<{V2Fzi<8npe>rF;b*O%m{d}k zWWPg@2LyS*cLaGrkOu^LfRa2wcsyX|xth7%eW!Hm%70liHXpVMGSl?Mc_WSDv(($@0#xXBIdyK9MxT39zf`*ij!iXph(3H2vk>Ny`!ykbY<2|Bk4#A*rlyft@zOO#JB1!V z^?#UP{hM}He(EF%56iGVGv-98%klUe>vhG&kmWf1(aSdK6&K|fMNhauiOBWMjrGMM z*DH5{KUvD=XZUG)TnPdJe9#7^2n6s!8g$*Z|Ed zF3PXG76?aep^25WPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!vFvd!vV){sAK>D0#`{yK~#8N?V2G>LopDBAE;$^%#wgcOpsZ`+$55O1c5*iEQpB- zumpubkdPpea}(GFiG~C_W?$w;{>OEB>)K^uxx0?`OD@+ucYojddfToWnKF$=V^XWt zve9UiRVo#F`b)iD&+FG48N7ZL>31vE$kC`U^YKsj1g zZi7eXU2hv(hE?0xs-#zda?&LI|)5m`->d5<(HdCctcQmxOX?!@2`p z670}MWPdQS=!efk=j8tnMz9lnp^b=ukVyh4M@tewIa<`O$!Xs&NUs3pXh{MnM@tew zSq=P9@`VKIZLrm9O=vm8ve)I;z73jt0_6bH$ujd!P#0kC377zq5`s7c&CmpEp9C&~ z>Ho%u1u&^3=eq(D9|DXksyy!sBIbSbjBPK zH-@5S$hl)?zGai?f99Wib7$`T4?|=kNs_ETXt>gRC$HvMbbo3-AfCuI6~6uyn#fDH zu&o#C`Nn(C`u}wOtuy7Fa`ag_7w-u6l8s^aJBIKfHsYUO-ldCjd*T0d)f!Za;R>)Th4;QbsdC0X0xXGe7|~ zP(?F90X0xX^#;h^54icV@06VDou|uWea|zDyjxKH2!GHFP(Te-(F{;P4OGz#P(Te- zQN00ZJ3?)j>dSur4fg(>r$=PH2+0M-0J!;+H}10=te(kEHB~IEg*{7yJ$y<|0gs`- z9Vk-(o^*0BkZcqLLo6mH@V-fsw9g)sIFr0{wH*L$3fM9;QoMaV!LW}EG&R;qp>3axg5{s*kNW?dkh@rn7+Is+o2&@9* z(=%+UDT#p$0O1*S*geJ=?Ijx+`rCmv0^rOa&VT+P0{~e7$OJ$(082j}Xsdu@f8lO# zUw5$iV|Spbv5t(-F6#2K(y-*?f@T1m`5WyA1dG*N+48h=NJzEuZ>Lv8RV;(B3c#5^ zoc%)v0I~p(34m+>hW>V-?Fz^H82UUpa!roD++AU`DS#Dt_*Yc_9-tYZfEuWx8K8g~ zsDGjvpnw{vqIv_U_X{{X`eo${{{Maf%4h~Cpa!aF1}LBgs%Qo%pa!a_-T>+yBkkAE z)o#@vq?(qQqZgd~+Vo_it+bL$OEEfTRzkgrq9DN@B8CanrvPLGAS(cw0mu$Oh5)hz zSe>KPN5J`72e;WcnN<;MX?s2Zo5dOBm1Sl^RMI%<@-B$W!H6{2`-Z)G`K+bQ?OpPW zj-lKpmdHB aLVg18pkNYXZ|aHw0000 z6*;7$Tg*BaI4*U}(9bY!pSJu$z`S4bDIzcS-l(iP$6i1E{|~m-`Q`6-exLK2hja4D zlzYJ|MM|w?y;OuMez{uBU1q?OSy=qspr-QJWk)^#)5kgH&S>qr{I+c6_16!Dd5=6+ zF=JDi>=||YUcO%HcDv)}wge#c zZ1#^9aohd-txmd`HiWHKjhehclOeQQ5-XO~zVo6cCoaA6gXaY4g@q5}d4Ak`@ni;& zdGNQ+xxck7ejeAE_te|WKVK~wu==XnZHDXS4c8gxaS8utdlPz2n!~+G+&PZ_)z@Ds z(gF24p>ud1^c>L2ZTMB&u>JSWm~)xD5B44m@o98g_+TpQs;jS3q!-xne%pLteec9X zOYQenu_a$p`Cgs*bn4Zy=pSC|9xp5`ZeK5S(62dQ>kP(#tvCDxw2sAp=Wa{Q`lqkZ z3iCsS*aSPDPHBbOIb!AxyA~+rF-*U*=+g`j?tQ9TBP0$;-BppD`p>UGcA@YzwuOs6 zh&-@9qIX#QqvnCNTUYo#Ys$~|y~FS|Gho|Zzb}j$k5BD?a^q7pFo7_5y85}Sb4q9e E0C52bHvj+t delta 1110 zcmV-c1gZPy1nLNoBYy-jNklVH1q?ZSg zxV(@Mad{wdOC(hAfCsmdNIZD(fJP$W#Vz8Y)sQOEHk6_&w1iTWmT=D5%go4MsgO8Z zOf$36{a*HD|FiqeerM-=|34Ru1i?8MxWA;2I)=C3E;Hft z%?C}L=RQ97vO#KU6MGhz~PVYg)-CAklRofKe%wdD~n&b0A0XiCfR#Sj^X%; zxwcGR-v~em!GES{A`@|pF{aXZWf6G+9{x*RwXt#S66C&kDz#0@1sIeunYC3_=tT7NsnC<{V2Fzi<8npe>rF;b*O%m{d}k zWWPg@2LyS*cLaGrkOu^LfRa2wcsyX|xth7%eW!Hm%70liHXpVMGSl?Mc_WSDv(($@0#xXBIdyK9MxT39zf`*ij!iXph(3H2vk>Ny`!ykbY<2|Bk4#A*rlyft@zOO#JB1!V z^?#UP{hM}He(EF%56iGVGv-98%klUe>vhG&kmWf1(aSdK6&K|fMNhauiOBWMjrGMM z*DH5{KUvD=XZUG)TnPdJe9#7^2n6s!8g$*Z|Ed zF3PXG76?aep^25WQx{jql1nxza8-i#ZjF(v4-9*E*<*eb%1t;ulh z(@(h%-|hZSoyTx3hyjNhED|r6zr=&}W6CY<`N)v;l&3B*C{zLHSO!m5KbLh*2~7YR Cu2;wa literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=*F9YvLn`LHoxPEl$xz_HznPrN z7BqHNs5P}|CM-|y(9UVR8~-FCQ%Li*QOf=A7nyEt{{3SSad^-W#L&p>#mK^^!75;} ofJA}6;xl;uGvU>Ee3MSRaj8(EX>4Tx04R}tkv&MmKp2MKrb<;R4t5Z6 z$WWbH5EbbtRV;#q(pG5I!Q|3EXws0RxHt-~1qXi?s}3&Cx;nTDg5VE`tBaGOiPeENGIZAF25=UUJ*n;&3_1D5;OH=W-$xT@pTU$ z-|wP4%e(H+F{l(w2KYqcIi?#H@dokirloV> zj5;c)!a|gGjeisqX*!R4_(vUoid-_eDq!STKn*G+#}EDozk6#Ir>EScU>xXuvF(p> zAg~Lx8n*p?Y}>69!2b+fX&ry93B*20Z*;Wq5iqn3TwHfFc@MbU0Y;v5$&eh$PfI8k zf%h}|raUlw3ke?Z;bV*G`2j>h42`(Cj+33gs008_+L_t(o!^PJz z4uUWg#__LAgg4gN!P$Yqa0o|F;pprEoV|m)qq{5d44SY4V_9{AU<5l#E9HlUBkaSQN2aN|}1KJdu_zVJx_KJjF+{2$;Of88%9C5b0VGQ0z!@Ukp_1481f zY?~`d{A&s%@NNo*ZY=$yvnMb7aXn|Me^Df&?!$KN6W3bf1FKOJy7*C8<^TWy07*qo IM6N<$f+QD8Hvj+t literal 16179 zcmeI3e{37o9l$TG=pa?9($F^Q2C-a~Qql9B&pz9Cb=;+Kx@6!Gl5}wjqnz)a?MrN* z>pM4g*0HKlSK0vsRsjh`8e4||X<6HK6x6b@t=-lFRXPfzzlkC}#@_k2 zU+lMR@W(VgONsq`-}n7~-}`*O_kDMN+@9W^&onizXrw5rsk_VH2fr=m-{lM7e|>E1 z&+zMtWY>^RQ45>RzXob@e+xxq-Y^v%fyp#Hq@=pBqezS7?u!- zsEIb~JI8)twWvy)b&wCRfn*1Ws$F9#&_C8QAdij6f?{3oYxHJB=pYUZ$&!i361tda zv*!GY@V7b4SS`6J#z>pB-3(|626`67eZ`ZdKncCT4pL+?Qj)RT zSf-YdBA0BE=~OJYG(~1W48%dg(4n2Zrd=|s8JZr|>Vzz*>js872?R>9YpypQuNhi5 zI=4Xt1*A1C^?_^>FnvJR(kU5qZi8D{S!?%(8ZIZN%9E+7yLOOK>zJ9EyjiXk@)`2N zy^0+vAQ@U}K+|Hre3kVU5n4Jra#dxyZct4q+Ni$9%b+IZe3!iezhnR($8rvub6Y&wy6g8YJ`>?};whwTe$nv6tuk=wd6ZHYFA4M{xIeDp^ zTj58M#juu&ONLL4OA){%6A>>{9;}#Isw%NVi)ksiEZ}o^nOeg&t^AstHp{v_Ap;#I zL$62@OjYi}-5^D(M~jM>>dUtcMUz!UEC+S7f=h9+EbV5UPTFn1iKW91w@31XSVi&hxw5M^FK@cwx)>e0uDx-=p@hP6 z*bO(%^L00#UuT80S%Gd!sqmzbVij}Dy(n-m0Pw&Wb^uxe9vC77b0^t3xEG%11ljHa zA-Aizml|$nh3ZnxlFC+RI9F2rU~BbgxukMEJt?JhV0NrFYq4dO4uO1?6lx{c`9w)J zPXnK9HWZ+EnX1w9vPzcT`~-D&I_HL9mU;acqfwB+HKe?&+^qUebS-R*N-5ADftTuB zdS%{gwHfOE-(7$oArZQ??W3h3q_7^AlX#kycn{4hPB$$miVQ1Jv4`CbmqYMK#WYuB z5#6F$RTY49=R%>Uvm)<=w<^V+UNNh_lWLxGII`xFhVmNasFa8R#m5wPRvbWA^uL_B zx%I<5nEx(w$Z7n4khy$5t9xRx&(7|lUh_swg#8!x0x8$`>|SQpSh;5M^Mhs|jiqz* z-5d))jNSZSFs)RhrbBqsN;PU)w%n9Z4IfvCh74C&nRko%TbX|NU;}(Eo_E0W6CFk^ zdesbw1^p_#mC?y;nW^#d9aS4}N|6-7oL$SaZR$ z)Ohm9qfZ~%x9q)z2i8xYI<#-m8Ee;9j2o_YTv)QZ&+&?-Cw+MQ-e-F6U$T759{YC! zUweOY-L;JH{{Am4a_HXR^r_>oy#3Wd*UnqN_1e50k=0K>@kGn6liR1K*4 z+;UsnJSsWzoNXQT>9ze`OU@q(?)zE##KP_CZt0UJHvH+$schF&^ZBuI2ezxk%+9hd%C)ATnUyZ-ROJF~yJa`ErZJf6L;Ejd4N%iRxL>|FZZ^V>r$UwUr$ zX6Ez5#sTo_-9i70=LWpY@Qo{iM_#@(cB;Sec#KapWqvt)$HMH^V-J4&C$}~no%rx{ zYj9hi_Va%To3EX@_|#-;@)xbm+{Haou;=LC@1FeRUl;u9gMZF6Y(5ulZEk<4`L2mi zL~nlm)i+Lmm)n2!8<)0kd3fU9W#4N*cFz#E`tW?p-@Il%MV)JhO$=$4&3$9 l_=#(Lr@p^<=lc27*_POjMO!!SGGA-&?(FeTZMc2szW}LG%sl`A diff --git a/Resources/Textures/Structures/Windows/reinforced_window_diagonal.rsi/state1.png b/Resources/Textures/Structures/Windows/reinforced_window_diagonal.rsi/state1.png index 65254207165b957f648e77219eb234caf994a8b2..4130608cea1b0074f870bd6a0abf28dfa6bec2fb 100644 GIT binary patch delta 699 zcmV;s0!00oe&q#_BYy#fX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKp2MKrb<;R4t5Z6 z$WWbH5EbbtRV;#q(pG5I!Q|3EXws0RxHt-~1qXi?s}3&Cx;nTDg5VE`tBaGOiPeENGIZAF25=UUJ*n;&3_1D5;OH=W-$xT@pTU$ z-|wP4%e(H+F{l(w2KYqcIi?#H@dokirloV> zj5;c)!a|gGjeisqX*!R4_(vUoid-_eDq!STKn*G+#}EDozk6#Ir>EScU>xXuvF(p> zAg~Lx8n*p?Y}>69!2b+fX&ry93B*20Z*;Wq5iqn3TwHfFc@MbU0Y;v5$&eh$PfI8k zf%h}|raUlw3ke?Z;bV*G`2j>h42`(`zWf6z~007}hL_t(o!^PJz z4#FT5fZ?A`P2SjRICL-`!qHPWI(sk=(L*?NZb!Q6)COa#1s>3iGJJmsBmf1!wryXg zB;GU)rX+5yr7DGw*oJe349uQfINF(3kML9w11~y3x9Tx zlZargO&72SKb)_3QxczsUVjCAa6mV}7gr4k!PNpnag~4=JUSp2j|$Mhg9Ehipa4zW zJ3t%v3P^$P4oHRX3P_3n4M>gu49J0R2IRt519IYD0lD#yfD-r;u=Zkcug1uH-#$QX2umL1PlNG002ovPDHLkV1nsgG$jB4 literal 16152 zcmeI3e{2)i9l$R@3r&^^sZ5_|c-2|(qg|*c-I&~UrrLrQ%Cic$f zALke6EgSt~nx3V^{=V<~e!uU1zTf-4yFYGgU+?PH=9`)+ifZlYj`qWEm-V;kTKL~6 z7B9fB>$2TL21T{pVEr{wJ0?CwQQ_aH1B2#Z>`qbE(jH0C;=of#XW?w9TT#eL@+dG} zagbCq?e6!F9e2A_rQN+jh_SJ3Cm2?{i#k|e>>ZGcqjE@buZT2<3nFxo2BzdHq*EC~ zEVR2zent4(8fM(C(iC&F-Mz{R=o*amxjHo+xCD=%mRWzm6$p7aArSBdZg=r4Cors+ z@v=1U6@9Ge<6Y&CJJJk)g>@w%_DAn1hl5hPd)PFyBE#hKc~9Q!(exz4g+d{QRrRcaVNPPPYV3yVO{W`% zHq5Ruh@gzLp`|e}o&`)lFtnU5gRU{SmF10gZ>ot}a_T%;npxKl3hFFomc}+Km4cn2 zFx;!ysRPN>^Z`vvMeHi;s~~iBc9yEjb=w9tqiA{Kb72NGspY%o4MZgqM0l3>(yX86 zeFL0d^aVxE*T!-p%Q~FcGZ7y#O;Ho$H6I)-Xl{V#MK&n%oYRM6Ch7xTKZ;~ZbMoSx z>+qwDyqpjtE^XLWMIH# z7>*>tRFy8=4k=kbT2Z9bh}||6O;#1L7Bs+y{EDAt=>Y5V(HsW=9g+n<4TPW~g%ZIK z)P))A;)O11>nhhqdAzY}$(M*HSOr+F4=2&}C;9dX_fG^<%v;=|z&BbBvB#vk4gdp%Cne&5qz+c%*12;25b*olM zjn`+mR8s4~m+D7rB~|L_SxGm5)v?;$m6laK1nep)*Gj4LiIQxc1`*k6C_o7_b)&Uq zRV~Bz1a)RQ=Z0X0`Rp(t_d(&>=;UVI?YDBH;CVLqVyMW=9s$Em~FO09-m3$~~PG z1s}Xssq}Qmtl6E^^PIzxHJ3Eh)+i54nIupmOl4=40dz(G%bA;7KeWO8cbP*@D6s!`J+ zys1--n$|4u&ZuUDFGoX$9ah%eqJ1l~9zNKBh+h!A@ccxFQHwsc08)cd72e7i)=A)n zkxDkGqM_l?Y=#a++0agv;}N8EjM<~`0S7)?G1Z5w87Exz{P{S4)OPf7dPRJZAP5k= zNO0l#AX4T@FKy5=YwboE(8c(B)IT=5G}!l0Ktm{7oHEICAbhE zc#+`3^Fg!(7Xkz?5?pvbh?d|&fZ#=f3(p795?lxnyhw22`5;#*YSW_>b?FNHevhJZEJgi!BSnc%QPhpvcOHE0 z4vK2}QBQQ$K;gHq-hF)Z#L6WPFZ(O_2oZTMyqJHV&A74Co?xDB0 z>|OJd^I!hsL3iJ1{?z7?KeT}BuBSE~T=1FP=f@9eAFMxD?0Q)^dH?(AYfnsB-}|mP zJeL0irAgU04zN>ej<&xi@Ac*O&_8(PcbES1MDe+ax6iiEr@EJ~oW7pw+wEWT>KIh( z-%`Hv{reB^?Kr%ySX}zn6Gr?C|Jtr+eEjE^T?~$(Ef>_nf(B?XmqIExRyzdC#I3 zpLzEe$=8DC_T0Df$%X5Vx&9PB^1`i)5C3{F^!N`SeQxS_VCRGHtWB=Vv_Aj$M~-ia zMt^SH{*Mi3zP9+W>5-n~*0yWH_r-2%dTZadLyO-ywB^}tZ;pB9ojG**+1{>QSI&nY znH*Tq5!xV}d}!i%*zhmQ9{{^4i$?5zlCjnr09MUc0end*r-fcs%-p8{Zh>#{`ISVVuV*Rc z;=_vu2-bSB3bC)P_}AZG2t#S`7r5M>)f_fsy0m?|4?)lkDzFxvbLb}O4s17Q zj0pjl8A_??X!Ze8K{5BVQ;iC-%Jx~F~s2(i5p#iblP00000NkvXX Hu0mjfh8dyu literal 9436 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 nXYAxZ&0s4b(PK|I`T=@cMw+$i_EG->@F4?q diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/meta.json b/Resources/Textures/Structures/Windows/tinted_window.rsi/meta.json index 30517fd0ac6..cdbfb466b44 100644 --- a/Resources/Textures/Structures/Windows/tinted_window.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/tinted_window.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/ f141c349e063f7318d8c8a2417d840f0b2d06600, modified", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/ and modified by FoxxoTrystan", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow0.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow0.png index 414ffd9f3ee92a394adcaab92ef34f74bbb1afd5..5539fa6154e17c821e8867ca5f77bccaacec935b 100644 GIT binary patch delta 1468 zcmdlNa#v`AvN2;@rn7T^r?ay{Kv8~LW=<*tgU0!(6Ky>X2Z*%#2QLlMY7!GEJP|Ng zr=zQ5vfDxqQLo9F@>=yP9<(0+ZSj8Y;o9$vPHT^ttWM^+P;%Snn2O=tNKxkX9~R0x zo>>r{HqCIl$B~QM_Pu*)b~ScN`osFGYtwYuez-h}Oq*f$k?rG^Ww{0S)cH0ytr40p z+&}Az!bj!nqW$+Rp2vz+q}}jQecpNaNYcL6sbXoY!OHVg`c};H`{{Hmd20P&7_qq0s#aH12|9N6w`quAc^QoT{mzy4y?>WA_xAkqJ3k$NF*XSnt<^s=p_ze!fwRCPvY3H^TNs2H8D`CqU|?W* zGg(N;pOJTRqL2$SFPFmPWkOCYKw4q)OCkBmJi>aD?S$wV{EYk%f{%NoHD_m48uYYF0REKV#-O;LghCTAq(rKhIY zD(Ndt))RA>Tq341d6AfUy@EcHNjCcErrYRaa|lG8OKNd)QDyE=aCEi0!a<8;s>x;OD-ZN2N+5Ee&;F2`1er$v@I;j6D+c<;3S`ssECjyj{60r^Em6B)Ng z>GH_cSfK%4D>_(8!?8hzn<*d<;7?*)$8c&vuPXET%U?C z%wUs9Wce9sQO#j}{lmv!e_YOntT@l$T=JyX(^8Ug(;-fWdr@;3>YuE2-NR#c>uz<{ zKjzoppT2r7SZ5>GK3n>WK9}oy6KV6am(*>~dKLyZ?AdC;cp|!6xS=NN!<6{+orsi@qGIO8%wlkJ(vGVy``Q=;J2y!?0`prpv!XNwiwrJt6pXPJRvyL6guFw8j2{BLllB1Z=lm)1p?v=xmtW33KWpl~Xe#{s=zBUrhC}X&Q-g`* zfx_btl^-u-_<1Gbzd+8G-O=VwY;PDh@FX!$ncXX}fA#$owTj9AqAX508|)HYmM7YA zdHvO_+*-C74>qbETW1iS-uR-{)|};B^YZ$@)(D2WU}@7UEL)WQ_OHIZd#ku|{eiCT ziKWW?)}nlyxH67G0_Dltrz^Y#JbulJxpT_s)&3hFXT^j;J-=t`oF0Zh*JjQZxq4b5 zi<6`1@vfkeUEISxHUHx3vIVCg! E0BoaL-~a#s literal 10814 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 ZYxlTu#$ZI33;lct)RncBDiy54{s+=SrBna_ diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow1.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow1.png index 90131a48bf96cc8117ce389ac97229626c1ca243..a7a0cad53aff9f936f9dc456b55d44b57fc39e4f 100644 GIT binary patch delta 1282 zcmbQ{uuX7+vN2;@rn7T^r?ay{Kv8~LW=<*tgU0!(6Ky>X2Z*%#2QLlMY7!GEJP|Ng zr=zQ5vfDxqQLo7wQd;#Z9<(0+ZSj8Y;o9$vPHT^ttWM^+P;%Snn2O=tNKxkX9~R0x zo>>r{HqCIl$B~QM_Pu*)b~ScN`osFGYtwYuez-h}Oq*f$k?rG^Ww{0S)cH0ytr40p z+&}Az!bj!nqW$+Rp2vz+q}}jQecpNaNYcL6sbXoY!OHVg`c};H`{{Hmd20P&7_qq0s#aH12|9N6w`quAc^QoT{mzy4y?>WA_xAkqJ3k$NF*XSnt<^s=p_ze!fwRCPvY3H^TNs2H8D`CqU|?W* zGx;KqKO^sC1zs0sUM_{nsk}}sKw4q)3SRlir+M`z|K+ux?7*ipxqwe?@+>~>$tU?V zCx7MhnC!ssFu9rEWAZtEF;xY3Pu~D5#{f@TB_llpB?vblC$S_gzbMyM$tN?fv_fgJ zkbsgnL@F$`s5mn}52V`AK+niRX>y=|=;TZR*%Xk~AYfCGTj1+!<&jxjl3!G52NMQL z6s4qDIVGke2|)#OG8KwTT+2$V5|c~7h8HK6rKTuB1(P!p^U_mOY?bttCchPMm~1Sl zF*#9Cy1+|e?Xi8Du=wXHE<)0gXgN6*@s>TCa#F}OOEROvL!WL7+;eDY*dE*Z z^XGv&7(`WhoXywl-@`WDPeQ>n-Kk+7ll-*Psr&CUUVb@cDr?&2$o;$l^V!a?%gZzT z`snM+kBq_kN8+1Y12?dVe~moA)3E9&5Vy`{^VeS=nfWH&_^?-Uj1J3!EJJ26zULBn zMC#Ip%L~4gP2;XEeA&b%{_Ro7r9)flMSUfEqAxu<6lb&ZM4UmcYec=D$5P%6It*Xa zqzw z@x0A9JERLH=xq3XXtCwd`f!U5#xDnhS>3gzuCRT#<^CXlqnsf`Hw_7w!8osY1@3kW zhXiD1F>eXZIrl&4szu-9`;!yiAN+WCpK#)x&#Yoh0b6G4w}Cm3!PC{xWt~$(69BuH0%QOH literal 8214 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 diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow2.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow2.png index ae12f39860f52ffc274a700f9d45e285625ff1f8..5539fa6154e17c821e8867ca5f77bccaacec935b 100644 GIT binary patch delta 1728 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 diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow4.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow4.png index b79db5f7893ce7908127d271a29bd3d13c6e8fb8..ea4706b1911f1825e785f39c9bfe83f1f3defead 100644 GIT binary patch delta 1570 zcmZuxYfuwc7~PbIA_tN#C!$W4cm9K#tEP!>Pn~$b{p>z~LP2pP#s#G9UY}a(+?y0DHpcnn%%X z;e&LRk+>f3_h46hhrHEN$|4++eJXtSR+lGCNBx17nx3$fH7V$xuxaP$)B^m#-}O7( z+QG8o!nqC}%vI(+OCO1su}Tbq4HK@-ukD+dI*+!l6NNl}SM8#guG@OAc1yq68n@VK zBtQ3H5z4M}9yq%9Nx_)#>HKqV=<7zMrY6UDQ_1?A%zZvpO0UL7b!NA>w#kkj;(2me zOG#x}al%E~xN=JBSvAg@Tf14Gb@1*KEw=C2u;5(VVz}hU*i&Tuai;ZV<)&NHk^j=n z?z$RINAXtx061x5Q}qDgJl_TyP=0U$0N9U_gY-ligA8Cu>=^UdWG*Ahhgzu-qEirJ z39iR1KQL}9^D%Wf@gn}S>jS)yXxrCGPE&*h|%M$Xii~l^fF(+HC7aMc5STh%XEhKq!pLAq0_&FfNSA6+wKEjCb|&gN1Ur zkcYq!EW+dvpFm*8&O;Qz1k6K(3W{0e>XU(RgZLOO42FbU6o>dCISL7Jo(NKi z%{cOK2#J7%&;k`+`G z!ZF$&NDgj5ZBe*Ui(*;0fsLybp(aoVhKKdfQ?~*D?OvQDGR3(5(f5}U&db~^n$+SX z>AK=pdw-Ur(^^GbzIOpo;N70ovYH>*Jn6TPwIppJ>ngosi5xy}9bzh5@7<>l@{acL!CPdec`ipZ~RH zI6cYBF0H0)tz-go|2UxY*^N5?OstSe04dP>FqR*ogvBcxqnI&|tMkwJUOL&+$0(}c zn0I8|Pd(mE`$4t5oUHQ$R)6jJUJNcv8KGZ1?QLQ-J0&fy4}7_c_NB9xnM`f##)ngG zuN<)$!U|ta-qCjP*l{JVkaL?HFNZ~Zj*cs-!doI5J?cICx53tg7)FN1d}(qp>*eY> zU7G4QE*Xhux1Aktm=kc8ky&SdowKN@^H_2Q@4(n;+QXu@yT6}mu{Q>4C$YRZ|<&ZULj) zcQ?}ZCmrp_!nDbm4RB%oL*K!&sW4IGh{gJWY}E!Qnd^z(A+XiHx_(XRh5Vtis~rrP giQZjy&H4gxSv#WnG=1xS+Xn^2#Uw~-qcY6@0o+YhW&i*H literal 8217 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 Dt^%_Y diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow5.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow5.png index 83797163f225f940ae731ded308e1418c5611567..b26c7be0b2da6c07fc5f962d1858683c3a6cd74f 100644 GIT binary patch delta 1449 zcmZuxdsLEV82<=jaxt$^*~-t)dnMo{;~;pKutX_c&Xpx0AO%Q3MyrHTnpPV6m6h{? z?vkgxO}nVwbn0emQ=6`xoRzjp3pL8NoVEtq+3D=;J?A~|d49L&dH#7{tkK)*oP80Q zqOdSdWLOx;k*5koVm<(P^qk6Luv$6x88NZnY+9)$+VAe*6tB)YnguhBg*&dz)hKw;4m06-bw35ytnCCtEtBQ3EYti^<)OfLwxV;td83<-9?2EmEg)o>2h z4Zeb11wX-h!nQaToQMmC^*B}ln9QRwQ{@t_k^zY%Tp^z(EL0Y! z5vWi`q$z1!-h3|wH;tbRy$5+IT&a+s%z(%cjI|7gIhG!9x~01sB!3V^C;vB|PX511 z=5^tG1y3%LnVZdJ%%hvanWoC*qnVr%zLIOMf>bgtZx>$)@};H`*$tbT5A4Qj|Vj7%H< zCLX!D!>Zl^EKv;w6!}f3FQ&HVHX&-&FRfqI6;9n-_)}+@6cF#^@UL^|mie zP0oJgq|icI3}vO4p0rAq2^&Q5t#64X5=R4y?66 z<;6F9dopqA&ZUIKc|Tc(ZVU~?Py!8h>i7>^BHFlakJFVu6aFA=hzRp9Y0i& zHM$%?FaRpyuG$9F+u|R~p5c0#Q;V91@1U-_GLbgOic!&*)(Z@1PIebR)S}iQDPG04 z3-#9C25iTDTJVxj_iDOO0T*pNk5|qNKN=gJc(<6jbyZARP8Pxm#y5ZLbqnb3E5Gk{ zZfLvi{i<`Du6cMYpX|a>qt|`4@mMRtpDQ{2U|QIFV`w#QDM|l7M literal 6896 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 UmuXw}IWH(c7MmcgiB7lv3lLLlQUCw| literal 8464 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 K>J(`?NB$R18wZsD diff --git a/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow7.png b/Resources/Textures/Structures/Windows/tinted_window.rsi/twindow7.png index 17304ce1044032ee392be2dcc63be90d6580eef0..a422e8c1526371137e017ed0c42b0ec483f2f93f 100644 GIT binary patch delta 966 zcmbQF_M2~lvN2;@rn7T^r?ay{Kv8~LW=<*tgU0!(6Ky>X2Z*%#2QLlMY7!GEJP|Ng zr=zQ5vfDxqQLo8&1+?l{JZL@s+v5G)!?oWToz@;PS)I&tq2#vDF%`qPk)q7&KP;4Y zJhLD?ZJOb9k0Tei?R)pq>}u?k^oR9V*QV*R{cw2{nKr}hBiqL-%W@0usq<}aS|c=H zxPR6ag^$YDMf>ktJdYKtNW0;q`n>b-k)(aCQ^nF)gO%s0^sSiX_tWWC^3?jzV(Du` z5_|1_ayv)Xrp|o5rA^?l(zFQ;9IT=ufla*{Z>==NCY9)I{m8%TAInaWBGH2^YCWFnU~E^T_+-H?i1H{>q{=S(R07vOlZ#ucqaSzMA|RA~nj21*pAq**y7rXvYK1#>bd=d+6nDHNBumX%l~XC&sOr>58{ z=_^fM#O^Tp1-r&%F%I>51$`u)Hu~tM+2~`l7^2Q4wK%ybvjF5?uo)21AQv|v52()y zs53XUBoV~3uP8`N&Q2{+NX-K}p-9Qz?%iYEaA2g=FZOhC45^5FJKK=A!9n1F+!KXH z*+2~k5o@6fhl5xR47S8p6;GCbH);N{^E$7$8Si_v?_BdoQR8bt3~QD$M0hi9n8uW# z%X%P+t6{4ML-x-a{vXxz|9kl}WNR|uP=g|23DNz9@s~c>02E2ET+p!!hF4-dbuSO~ R*8v^O;OXk;vd$@?2>>aBXYBw0 literal 4882 zcmeHLX;c$g77i)|*%W0}gfh5-*%PufkzENIhyfK`W~fvup_D9UAwfV91x0Z~2Nh{V zdk|$56|iM#+-Mg@)OKra8(hFfToKz5RKR`-h-tv*m{di@>kH@oQ-T&c)cWdpO+Cxyz%XwIWy#snkj-7LP*OL=_65226^> z8ScK=u~_}c%O?GP%(-c2vPX`(bSAd=rQOTdk5d~PpX}jZZ}+v^ZZ^~jpOO}S_U*@& zysp5e5b?St`RXuhQ9V@?P`iWokC^MDWSmIfj8`jedz1{#A_WjX{HqA*DcniQZ&h;Bz)@_$EW3&t3>HPUR)R( zw7RmiKHRyvUYDKa87bQ~P2lG1ebjpSyW;eg(!_&sNlSF4{eIdRm&=fWzEIR5Xikui(Rhv^K7Zd+|GlvHQVeUdQx;xOXQ0|z?j zp+DOVRoUmvTQ}a!Oz1f$tlXu{{>)Z8fAi}xgd>oDaRZe7UFeXpkB>2?Q*$F@TpP{0 zE9(6NCuXh^4SXE&=%refs-l@nXam(2HoUE}C+sBLWWiwX0Sf1Y){mtS# z=Jzt~)I}BM8}tpGMUT$m*mdga}>djnj*3 zeycg&Wc8tTJ8o6k@U~?1HuRN)^^)PSK?yOh(Hw`x3!V7*~A77nX^>OS& zpz3t*IdPVeccb04$HRSxD*VFh1h*7dcVK_Yai)hhqpV#sY17}{d*^N3)6v{&t#}yU zmCV|7GNoosgihO~qxD?wvORaS&b3r9PYnid3c7DCHzrq7i zGpJx>DXN9Us0>r^2yNA;2oNUW5#}=m6oD!Tjl)8htI^2i;Zex)r3gnt@SASsYv2L^ zIjV&rgFIfL;Tm`Z6D}8A8^vS-WHQk%q&Y#NvW2RsT>Z6Oreo!G$ODdY7!M%*g#ZhJdF^&7{RCp zQDZ7Crc^*iOjxYcX?X+!&_kc%ldA-Ret3nZj|IR7*#N7^R1$?Omy-v2XtW^-0HiOV zKlRW=fqjZBLN!XA8bL!6P=(fWAcO?z_gCrE@uqYn2pNq><-k+}R;7NiZDjgklO)*h9^-F7g z9BSl=0%n^+CDQ0oG#Z!6;LvQ^vmJ|Kh~gWH4YG0DiqPu)ToY zirl|l^>JpT@h?33YVjAY0H6mK`6_+~=^CW#s~Gqy}O9Ocv+_TL7T$E*ONp|Dg3=5 zSu{u1HcNpnS9nwpWgfkT2jqPHD3A4zp_Kv>ym?p0MIk)$`Y5AE(u>$ake) zKbY8Lc}y6GRBnv9Cd{0i`Q7^BIVb&^OV1{5C|gic+QNHhUCWW9yPlP2Y&lKHfdW&r zyuzl`24*E}bQnFAyE&;7Kkig0Y1g8O6!o-%A&%M2_>Zgamoa}I-K-F??X)NFyuCmf z*pG?-cBYwNbSP4&OD z=jzZl*&9JjL7S81;Y!WY{N^`ip*Id?vreBGPZ1S7*KOA8k6(RpKfk4G1uo5AefU*S zcQSZ5wGhvm8H|$|KeIhJM#*qhXp9DjvmR~yn&EQuT!0X-PO~y4UtJG}3=g$!^GN=doN@d&_xGEFC9o$>`{w_{e-%6G2Y8UwEZ{^S%6C z@4Uyk1J3~m`&j3PmG^81NdCv=^bL*pqvQv}zf`CGR&yc8W(9WV1?Vmujvo>pToM?Y F_6HOSG7bO$ diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/full.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/full.png index f7b6e10f869a9ba3ee1d2f09f066f153b5e21e5e..5695bc0c26c731ad7753c4817a372db5d7479cbb 100644 GIT binary patch delta 406 zcmV;H0crlJ3a|r^B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000ic z000ic0Tn1pfB*miMM*?KR9HvtmtTs)Fc8M;qEP5V(Xvmny@AkUcmuEC89abz@Cx2w z@8J!)?9@CSsfP57~!&FvPZ#nO`PCCZi-t&VQao5rFUe^biCAjYF#_ z3L49@yaOP4mSyx|Xhl&(5ETGkAo=1m+U0o;pOifNR~&|+cUWd?&M5)J`|%DAfcXCV z>J?%>{h;KCovuz5z}xLRD}@6bG2!;EvmTQRNefdeun{X)Cv?_hRYh!6VEbwd2moRT zXf}DL(Nw?3AAcG-Iex1E>J~f+$q}fH>44V)aB{H%{5OnE2coe8ENqR5=}H@5C^-NJ z-~b$e1JDM*F=}GEss-TFO!Nil4UCOX(>gU)fFasgQ*!A4wPeD-N{$KF5Z$CKD6MPB zdQT1^7Gff{kkoBU6|in+a delta 1302 zcmV+x1?l>*1E~s-B!3BTNLh0L01FcU01FcV0GgZ_000ErNklm1cWW=*sk>-1S_6Ke zxx6sKg~{ImcyRMxB1E|()eV579Io5fm?)0(TKYI?-(rChkO~2?c*g1Cp6M;TnEL=6 z1-?KE3tt0DkTro!@bs5+7h!H~2wd8&B(vJ%ld1DSgn#&yzZ?t-+5=1Qp8EoC@f8?B zUjX14V8Y|~KEb;)XCdW-4;!P2;188(5O2Na-lBwyB{g@efOJ%p0Vq@yL|n3qQFd?H z$!y^Zm=~)6A~EnmDFsCjauHs>d>>~9h8sBkZxvVqAQ#?0cj$gT?7c$4bMRCZW_@T+ z13Cn7ZGXPDCV0h6av*yrC%MjT0NbIH7@Jyd0|PotqbUF> zDad^nBsSk(`mQOCmsQX{zy9?bRDWtIyaEsrL0mTaQC!g|?bcCocMX6L zwCN~MZr?{$ug&lE(JmuFR!H`A@2ay005Wizwz52GbyD=I>kc4=z%VS*kqq5#%Nl@C z2_snfnl%XlI-{F{hH2FUgc~PqR$EgXOCjqG;Xl?{ZS4S%ud1d%G*TVFtUb+Db)#t^ zP=Cr}#-3^nkdbk|`QsD-DG{d`>NZ;V{>l$53dM5uWG;6W{R*Oq`JZs(!L?eX<|7zyLw}$h@bOnVp6=hziKC~Ft%t*BUwVp<=7!jo z?4sb6u$QV3Sq~=|)D9-N{B0@T-*AG%GY9G0 z{s=iMsA&~2UcSbHTj1h9mjQTe+rt?E93k)daka&Bi@NXlD8)@O_N{7 ze&OSeK`PP%e-X$cdiwi@MqXb6t$#U`cz}WV3t+~{xltUWRvVObk=v$pG7 z4r4P5+FP-ix=PuEj4v6*f#@_{bTP&l06lMK!x0FJkb&~g!5PsmGh^7S96rL!b>?aw zYtdQJB{dF0fK0MkCm3TMv?i}5#Fjvrj2UB~b0B5_g8KMY9?$;;gjcr_8V_4L!Ty+<)xbo%zAz4P%15|Gt@d zGqYJqN~YWGK5)~E!C)YYL4^Q~M#Hq5&8G2-(C_!_Apn9O4u{-3Kefn!cDrqY-@Ry` zjz%MNr{<4yaK3YO%uO%euvY)m#)Nl__)%lg~*$>0CKb4`kB0c`M;4akU0 zqc(tkW2 zCzHvf^dTVr=e=HUVF3_4sD%JN8Q>DP!zB}k0DEtOp9H_&etNMGaxewa&6nY~+7v?W zEzNUAxPR548kRB%QXw=`3Y$(Pyv7hX;bty2c*=wnRbj360$F$V))2TGJby(MVgc+u zeU{-&Ks#aq=;_Yf*Sl5)5ei!cs=`uM0nJ1K*au4#fPJu(T7`kEH$?%;XB1OdO0lHo ztt{7{f7Rz@=`x4{un(3f0Q+F6i~#nA>8VLkEoOk-O|~-LJ+Q_f^+tULSP}9}ib??} zwefV#NfIpU-2-b<)K!AiH4UDszZZ|u>Q)IZ6#Q$TN&p)?VNQ?dF)1pBK=41E4gSZ| f-1I`00ZH-*6;1wq5j@1C00000NkvXXu0mjfL?cvp delta 1672 zcmV;326y>|2AB%TZkN08pnU9 zE`9ImPG+VvSuc}TNYsuuWK~#W6c;g|E&&ly9~bsb6hs(sciAWkqO!10`XC5KU0e-b zgUhmB5@862WMd{VF49O9c0^Ri1XoI;F8i!9QeB~rhX7{V0&JgG3lEaZ zXBn_cghF5f0e^6;@i`wK{S+w#S6#H8i}Phx8~w`E@eqInw|m2Em@0G6;6K0(AQTwF zCX_&6P_!fzquQ@m_hZjR7BEwKM~OKe0(chKaLZ+zcxHANkPrj`)O{F8@TVh}vwO#Z&TY4=QO837&*2?=ihqZ!99xQIb~4WH9S5+V?ElOE zn|e9h>KP1Su+y8=%c+&^r;vyyv@hn5X{U~d0FKKLDSne50uu%;ecg(O0KgOu?~i?` zoi{cDBt+!#tqIe3?cX{O4*`T=wM_E+OK!l|9Gt~N03*8TKD)>!yF|U!9Vcf+)Y_O< zfQ*>|^nXr*LUldhnv-|k8g{rwYoxl(ezKpF(++Q~`y2O<|CO)9X)4d=l;e3-C`;Yx z=Hm{nLm&uT=A3DrlpUc}fU?=ge?H$0_&{1G^-n@uFjRHVvWSTx1PdD9^PQm00{YD8 ziC2a<=%QQ^vs05?Ki;GFd#p~~DHC=1Yd)aHa4J<&4RW$V1s{Df-K=e5QGZd-K& z!)Au#K}fXg(OalnKt0V`pe8(~&N1zxj2>}KcqF9-i;zu9Mvv@;43Kt!q$<5Klm+A1@56M`@z}+XK zDPSU;=Fueax8wII?9C=Y?L z2O8&;&W-SzV79lgrG!kIDy&CGqdSH-@4M34twJ0JMb7cU!qBe6kV_ zHC;#tu&@UD90*$cB3^^<4nIa9B!}k@@!8~I0DgPHl_W_roGSz11}@{y2_|Z%cz?L> zHTpuEc~R#VA;2A9M*Ej7;ZU-3oRK~+PVK>#DJ&7CvowL4bio!pg(O#8cp23*ufpkg%)iP43_jlc(SHrx=v=$J zb?X&8S2;qhn!tm@Eg;t5_iI z^@MggXcM4fr6~%7t1hnSqFfQQ31A3;X(lNq3Y5KgOn}gXAuyC&8~w22;eQJ&FNmmO z<9#=cjy=4{I;+G#haTg(nU{Fm+D~a)up%dG--WOLTZKO!4tX1nj9lnhKh(wv` z3||DNew}%O1tZD3pM3;CPUy=Wh>ZaC&_(nhZy*)|2qOo;T~}|>&K(N@q&N$JiA7H8 z&ESuP00fdr;gUD?J4o>mpnnaYfCZs9cOV{LjFWY^JsREr)sAtfu# zOk>F+)`~2r%aIZg~{}xv!5na%s SNQM9a002ovPDHLkU;%<4c>$>a diff --git a/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow1.png b/Resources/Textures/Structures/Windows/uranium_window.rsi/uwindow1.png index 9979f28e945787ba4ffab8d70010c70209c7f274..e395832e8e39f6a7f69e6c36c189a1f45bfbbdef 100644 GIT binary patch delta 715 zcmX@f`IvQrNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao>Fr%o3 zR|5kBQ-!CCV@O5Z+gS&*g&jqXsh_Oc9Gj&hdYz4BtK8)^GaBT+Jx~>2Sn=VByn