From 7ccafa89989f80f66a5e1bfdcf81b2ef4614f395 Mon Sep 17 00:00:00 2001
From: deltanedas <39013340+deltanedas@users.noreply.github.com>
Date: Sun, 24 Nov 2024 04:38:50 +0000
Subject: [PATCH] Revert "upstream merge 15/11" (#2272)
Revert "upstream merge 15/11 (#2205)"
This reverts commit 1b7830a871defd70db517fbc84810a489b0b2ba5.
---
...eler-conflict.yml => conflict-labeler.yml} | 0
.github/workflows/labeler-size.yml | 21 -
.github/workflows/labeler-untriaged.yml | 2 -
.../Administration/UI/Notes/NoteEdit.xaml | 1 -
.../Administration/UI/Notes/NoteEdit.xaml.cs | 53 +-
Content.Client/Alerts/ClientAlertsSystem.cs | 15 +-
.../Clothing/ClientClothingSystem.cs | 24 +-
.../Commands/ShowHealthBarsCommand.cs | 4 +-
.../Effects/ColorFlashEffectSystem.cs | 10 -
.../Inventory/ClientInventorySystem.cs | 16 +-
Content.Client/Overlays/EquipmentHudSystem.cs | 3 +-
.../Overlays/ShowHealthBarsSystem.cs | 7 -
.../Overlays/ShowHealthIconsSystem.cs | 7 -
.../Overlays/ShowThirstIconsSystem.cs | 2 +-
.../Physics/Controllers/MoverController.cs | 16 -
.../Systems/ChameleonProjectorSystem.cs | 8 -
.../Silicons/Borgs/BorgMenu.xaml.cs | 3 +-
.../Silicons/Borgs/BorgModuleControl.xaml.cs | 3 +-
.../Silicons/Borgs/BorgSelectTypeMenu.xaml | 43 -
.../Silicons/Borgs/BorgSelectTypeMenu.xaml.cs | 81 -
.../Borgs/BorgSelectTypeUserInterface.cs | 30 -
.../Borgs/BorgSwitchableTypeSystem.cs | 85 -
Content.Client/Silicons/Borgs/BorgSystem.cs | 14 -
.../Controls/Roles/GhostRoleButtonsBox.xaml | 9 -
.../Controls/Roles/GhostRoleEntryButtons.xaml | 10 +-
.../Controls/Roles/GhostRoleInfoBox.xaml | 8 -
.../Controls/Roles/GhostRoleInfoBox.xaml.cs | 18 -
.../Ghost/Controls/Roles/GhostRolesEntry.xaml | 16 +
...onsBox.xaml.cs => GhostRolesEntry.xaml.cs} | 7 +-
.../Ghost/Controls/Roles/GhostRolesEui.cs | 30 +-
.../Controls/Roles/GhostRolesWindow.xaml.cs | 77 +-
.../Weapons/Ranged/Systems/GunSystem.cs | 2 +-
.../Abilities/Mime/MimePowersSystem.cs | 4 +-
.../Administration/Toolshed/TagCommand.cs | 10 -
Content.Server/Alert/ServerAlertsSystem.cs | 12 -
Content.Server/Antag/AntagSelectionSystem.cs | 4 -
.../Botany/Systems/PlantHolderSystem.cs | 3 -
.../CartridgeLoader/CartridgeLoaderSystem.cs | 1 -
.../Chemistry/EntitySystems/InjectorSystem.cs | 9 +-
.../Clothing/Systems/CursedMaskSystem.cs | 3 +-
Content.Server/Database/ServerDbBase.cs | 23 +-
.../GameTicking/Rules/TraitorRuleSystem.cs | 34 +-
.../EntitySystems/SmokingSystem.Vape.cs | 3 +-
.../Glimmer/PassiveGlimmerReductionSystem.cs | 4 +-
.../Nyanotrasen/Psionics/PsionicsSystem.cs | 4 +-
.../Polymorph/Systems/PolymorphSystem.cs | 6 -
.../DungeonJob/DungeonJob.PostGenBiome.cs | 25 +-
.../Research/Disk/ResearchDiskSystem.cs | 1 -
.../Borgs/BorgSwitchableTypeSystem.cs | 82 -
.../Silicons/Borgs/BorgSystem.Modules.cs | 39 -
.../Silicons/Borgs/BorgSystem.Transponder.cs | 17 -
.../Silicons/Borgs/BorgSystem.Ui.cs | 3 -
Content.Server/Silicons/Borgs/BorgSystem.cs | 15 +-
Content.Server/Silicons/Laws/SiliconLawEui.cs | 6 +-
.../Silicons/Laws/SiliconLawSystem.cs | 22 +-
.../Silicons/StationAi/StationAiSystem.cs | 20 +-
.../EntitySystems/EmitterSystem.cs | 3 +-
.../StationEvents/EventManagerSystem.cs | 3 +-
.../Thief/Systems/ThiefBeaconSystem.cs | 1 +
Content.Server/Voting/Managers/VoteManager.cs | 5 +-
.../Ranged/Systems/GunSystem.AutoFire.cs | 25 +-
Content.Server/Weather/WeatherSystem.cs | 4 +-
Content.Shared/Alert/AlertsComponent.cs | 16 +-
Content.Shared/CCVar/CCVars.Accessibility.cs | 41 -
Content.Shared/CCVar/CCVars.Admin.Ahelp.cs | 39 -
Content.Shared/CCVar/CCVars.Admin.Logs.cs | 42 -
Content.Shared/CCVar/CCVars.Admin.Rules.cs | 18 -
Content.Shared/CCVar/CCVars.Admin.cs | 163 -
Content.Shared/CCVar/CCVars.Atmos.cs | 153 -
Content.Shared/CCVar/CCVars.Audio.cs | 61 -
Content.Shared/CCVar/CCVars.Chat.Looc.cs | 26 -
Content.Shared/CCVar/CCVars.Chat.Ooc.cs | 27 -
Content.Shared/CCVar/CCVars.Chat.cs | 68 -
Content.Shared/CCVar/CCVars.Config.cs | 35 -
Content.Shared/CCVar/CCVars.Console.cs | 15 -
Content.Shared/CCVar/CCVars.Crewmanifest.cs | 24 -
Content.Shared/CCVar/CCVars.Database.cs | 77 -
Content.Shared/CCVar/CCVars.Discord.cs | 61 -
Content.Shared/CCVar/CCVars.Events.cs | 12 -
Content.Shared/CCVar/CCVars.Explosion.cs | 108 -
Content.Shared/CCVar/CCVars.Game.Infolinks.cs | 54 -
Content.Shared/CCVar/CCVars.Game.cs | 336 --
Content.Shared/CCVar/CCVars.Ghost.cs | 24 -
Content.Shared/CCVar/CCVars.Hud.cs | 24 -
Content.Shared/CCVar/CCVars.Ic.cs | 48 -
Content.Shared/CCVar/CCVars.Interactions.cs | 54 -
Content.Shared/CCVar/CCVars.Interface.cs | 24 -
Content.Shared/CCVar/CCVars.Mapping.cs | 24 -
Content.Shared/CCVar/CCVars.Midi.cs | 18 -
Content.Shared/CCVar/CCVars.Misc.cs | 97 -
Content.Shared/CCVar/CCVars.NPC.cs | 16 -
Content.Shared/CCVar/CCVars.Net.cs | 15 -
Content.Shared/CCVar/CCVars.Parallax.cs | 15 -
Content.Shared/CCVar/CCVars.Physics.cs | 27 -
Content.Shared/CCVar/CCVars.Radiation.cs | 32 -
Content.Shared/CCVar/CCVars.Replays.cs | 43 -
Content.Shared/CCVar/CCVars.Salvage.cs | 18 -
Content.Shared/CCVar/CCVars.Server.cs | 43 -
Content.Shared/CCVar/CCVars.Shuttle.cs | 176 --
Content.Shared/CCVar/CCVars.Sounds.cs | 34 -
Content.Shared/CCVar/CCVars.Status.cs | 13 -
Content.Shared/CCVar/CCVars.Tips.cs | 40 -
Content.Shared/CCVar/CCVars.Viewport.cs | 33 -
Content.Shared/CCVar/CCVars.Vote.cs | 180 --
Content.Shared/CCVar/CCVars.Whitelist.cs | 19 -
Content.Shared/CCVar/CCVars.Worldgen.cs | 18 -
Content.Shared/CCVar/CCVars.cs | 2431 +++++++++++++-
.../CartridgeLoader/CartridgeUiMessage.cs | 3 -
.../Chemistry/Components/InjectorComponent.cs | 9 -
Content.Shared/DeltaV/CCVars/DCCVars.cs | 32 -
.../Components/IntellicardComponent.cs | 39 -
.../Interaction/InteractionPopupSystem.cs | 22 -
.../Inventory/InventoryComponent.cs | 10 +-
.../Inventory/InventorySystem.Slots.cs | 49 -
Content.Shared/Jaunt/JauntComponent.cs | 26 -
Content.Shared/Jaunt/JauntSystem.cs | 26 -
.../Systems/SharedMoverController.Input.cs | 6 +-
.../Nutrition/EntitySystems/HungerSystem.cs | 14 +-
.../Nutrition/EntitySystems/ThirstSystem.cs | 27 +-
.../Psionics/Glimmer/GlimmerSystem.cs | 6 +-
.../Overlays/ShowHealthBarsComponent.cs | 10 +-
.../Overlays/ShowHealthIconsComponent.cs | 11 +-
.../Parallax/Biomes/SharedBiomeSystem.cs | 2 +-
.../Components/ChameleonDisguiseComponent.cs | 4 +-
.../Components/ChameleonDisguisedComponent.cs | 13 +-
.../Components/ChameleonProjectorComponent.cs | 19 +
.../Polymorph/PolymorphPrototype.cs | 13 -
.../Systems/SharedChameleonProjectorSystem.cs | 97 +-
.../Procedural/PostGeneration/BiomeDunGen.cs | 7 -
.../Projectiles/ProjectileComponent.cs | 6 -
.../Silicons/Borgs/BorgTypePrototype.cs | 161 -
.../Borgs/Components/BorgChassisComponent.cs | 15 +-
.../Borgs/Components/BorgModuleComponent.cs | 8 -
.../Components/BorgSwitchableTypeComponent.cs | 72 -
.../Borgs/SharedBorgSwitchableTypeSystem.cs | 125 -
.../Silicons/Borgs/SharedBorgSystem.cs | 9 -
.../Components/SiliconLawProviderComponent.cs | 2 +-
.../StationAi/SharedStationAiSystem.Held.cs | 20 +-
.../StationAi/SharedStationAiSystem.cs | 77 +-
.../ChamberMagazineAmmoProviderComponent.cs | 6 -
.../Weapons/Ranged/Components/GunComponent.cs | 33 +-
.../SharedGunSystem.ChamberMagazine.cs | 7 +-
.../Weapons/Ranged/Systems/SharedGunSystem.cs | 58 +-
Content.Shared/Wieldable/WieldableSystem.cs | 7 +-
Resources/Audio/Magic/attributions.yml | 4 +-
Resources/Audio/Magic/ethereal_enter.ogg | Bin 36619 -> 0 bytes
Resources/Audio/Magic/ethereal_exit.ogg | Bin 42980 -> 0 bytes
Resources/Changelog/Admin.yml | 22 -
Resources/Changelog/Changelog.yml | 442 +--
Resources/ConfigPresets/DeltaV/deltav.toml | 20 -
.../en-US/administration/ui/admin-notes.ftl | 14 +-
Resources/Locale/en-US/alerts/alerts.ftl | 3 -
Resources/Locale/en-US/borg/borg.ftl | 37 -
.../components/plant-holder-component.ftl | 1 -
.../chameleon-projector.ftl | 1 -
.../en-US/commands/toolshed-commands.ftl | 4 +-
Resources/Locale/en-US/deltav/borg/borg.ftl | 3 -
.../interaction-popup-component.ftl | 5 +-
Resources/Locale/en-US/ghost/ghost-gui.ftl | 1 -
.../Locale/en-US/intellicard/intellicard.ftl | 3 -
.../Locale/en-US/silicons/station-ai.ftl | 2 -
.../Locale/en-US/store/spellbook-catalog.ftl | 6 -
Resources/Locale/en-US/weather/weather.ftl | 1 -
Resources/Maps/Ruins/abandoned_outpost.yml | 2786 -----------------
.../Shuttles/ShuttleEvent/lambordeere.yml | 8 -
Resources/Migrations/migration.yml | 35 -
Resources/Prototypes/Actions/borgs.yml | 12 -
Resources/Prototypes/Actions/polymorph.yml | 50 -
Resources/Prototypes/Alerts/alerts.yml | 9 -
Resources/Prototypes/Body/Parts/silicon.yml | 47 +-
.../Catalog/Cargo/cargo_vending.yml | 2 +-
.../Prototypes/Catalog/Fills/Lockers/misc.yml | 2 +-
.../Inventories/clothesmate.yml | 40 +-
.../Prototypes/Catalog/spellbook_catalog.yml | 33 -
.../Entities/Mobs/Cyborgs/borg_chassis.yml | 59 +-
.../DeltaV/Entities/Mobs/Player/silicon.yml | 18 +-
.../Specific/Robotics/borg_modules.yml | 14 +
.../Objects/Specific/Robotics/borg_parts.yml | 102 +
.../Structures/Doors/Airlocks/access.yml | 24 +-
.../DeltaV/Recipes/Lathes/robotics.yml | 50 +
Resources/Prototypes/DeltaV/borg_types.yml | 60 -
.../Prototypes/Entities/Clothing/Eyes/hud.yml | 6 +
.../Clothing/OuterClothing/wintercoats.yml | 4 -
.../Entities/Clothing/Shoes/boots.yml | 4 -
.../Clothing/Uniforms/color_jumpskirts.yml | 8 +-
.../Clothing/Uniforms/color_jumpsuits.yml | 8 +-
.../Entities/Clothing/Uniforms/jumpskirts.yml | 30 -
.../Entities/Clothing/Uniforms/jumpsuits.yml | 30 -
.../Mobs/Cyborgs/base_borg_chassis.yml | 7 -
.../Entities/Mobs/Cyborgs/borg_chassis.yml | 328 +-
.../Prototypes/Entities/Mobs/NPCs/animals.yml | 7 +-
.../Entities/Mobs/NPCs/asteroid.yml | 8 +-
.../Entities/Mobs/Player/jaunt_mobs.yml | 40 -
.../Entities/Mobs/Player/silicon.yml | 27 +-
.../Entities/Objects/Consumable/Food/meat.yml | 59 -
.../Objects/Devices/chameleon_projector.yml | 5 -
.../Entities/Objects/Devices/pda.yml | 2 +-
.../Entities/Objects/Misc/paper.yml | 4 -
.../Objects/Specific/Robotics/borg_parts.yml | 503 +++
.../Specific/Robotics/endoskeleton.yml | 200 +-
.../Xenoarchaeology/structure_artifacts.yml | 115 +-
.../Entities/Objects/Specific/chemistry.yml | 1 -
.../Weapons/Guns/Ammunition/Boxes/shotgun.yml | 95 +-
.../Guns/Ammunition/Cartridges/shotgun.yml | 20 -
.../Objects/Weapons/Guns/SMGs/smgs.yml | 13 +-
.../Objects/Weapons/Guns/flare_gun.yml | 76 +-
.../Entities/Objects/Weapons/Melee/knife.yml | 6 -
.../Objects/Weapons/Throwable/bola.yml | 6 +-
.../Prototypes/Entities/Stations/base.yml | 15 +-
.../Structures/Doors/Airlocks/access.yml | 22 -
.../Structures/Lighting/base_lighting.yml | 31 -
.../Entities/Structures/Machines/lathe.yml | 53 +-
.../Structures/Specific/Anomaly/cores.yml | 6 +-
Resources/Prototypes/GameRules/roundstart.yml | 8 +-
.../Hydroponics/randomMutations.yml | 1 -
.../Prototypes/InventoryTemplates/borg.yml | 3 +-
.../Prototypes/Loadouts/loadout_groups.yml | 1 +
Resources/Prototypes/Polymorphs/polymorph.yml | 16 -
.../Construction/Graphs/food/steak.yml | 18 +-
.../Construction/Graphs/machines/cyborg.yml | 225 +-
.../Graphs/structures/lighting.yml | 25 +-
.../Recipes/Construction/structures.yml | 18 -
.../Recipes/Cooking/meal_recipes.yml | 24 -
.../Recipes/Crafting/Graphs/web.yml | 4 +-
.../Prototypes/Recipes/Lathes/robotics.yml | 220 ++
.../Prototypes/Recipes/Lathes/security.yml | 9 -
Resources/Prototypes/Research/arsenal.yml | 2 +
.../Prototypes/Research/civilianservices.yml | 3 +
Resources/Prototypes/Research/industrial.yml | 3 +
.../Prototypes/Roles/Jobs/Science/borg.yml | 2 +-
.../XenoArch/Effects/utility_effects.yml | 7 +
Resources/Prototypes/borg_types.yml | 229 --
Resources/Prototypes/tags.yml | 102 +-
.../ServerInfo/Guidebook/Science/Cyborgs.xml | 16 +-
.../color.rsi/equipped-INNERCLOTHING.png | Bin 1068 -> 518 bytes
.../Uniforms/Jumpskirt/color.rsi/icon.png | Bin 429 -> 300 bytes
.../Jumpskirt/color.rsi/inhand-left.png | Bin 435 -> 391 bytes
.../Jumpskirt/color.rsi/inhand-right.png | Bin 424 -> 408 bytes
.../Uniforms/Jumpskirt/color.rsi/meta.json | 2 +-
.../color.rsi/prisoner-inhand-left.png | Bin 221 -> 258 bytes
.../color.rsi/prisoner-inhand-right.png | Bin 232 -> 259 bytes
.../trinkets-equipped-INNERCLOTHING.png | Bin 292 -> 274 bytes
.../color.rsi/equipped-INNERCLOTHING.png | Bin 1314 -> 540 bytes
.../Uniforms/Jumpsuit/color.rsi/icon.png | Bin 387 -> 293 bytes
.../Jumpsuit/color.rsi/inhand-left.png | Bin 451 -> 391 bytes
.../Jumpsuit/color.rsi/inhand-right.png | Bin 437 -> 408 bytes
.../Uniforms/Jumpsuit/color.rsi/meta.json | 2 +-
.../prisoner-equipped-INNERCLOTHING.png | Bin 413 -> 365 bytes
.../Jumpsuit/color.rsi/prisoner-icon.png | Bin 188 -> 232 bytes
.../color.rsi/prisoner-inhand-left.png | Bin 221 -> 258 bytes
.../trinkets-equipped-INNERCLOTHING.png | Bin 295 -> 265 bytes
.../Jumpsuit/color.rsi/trinkets-icon.png | Bin 206 -> 235 bytes
.../color.rsi/trinkets-inhand-left.png | Bin 198 -> 245 bytes
.../color.rsi/trinkets-inhand-right.png | Bin 212 -> 251 bytes
.../Actions/actions_borg.rsi/meta.json | 5 +-
.../Actions/actions_borg.rsi/select-type.png | Bin 408 -> 0 bytes
.../Interface/Alerts/walking.rsi/meta.json | 14 -
.../Interface/Alerts/walking.rsi/walking.png | Bin 15838 -> 0 bytes
.../Food/meat.rsi/anomalymeat-cooked.png | Bin 618 -> 0 bytes
.../Consumable/Food/meat.rsi/anomalymeat.png | Bin 642 -> 0 bytes
.../Consumable/Food/meat.rsi/meta.json | 8 +-
.../Objects/Magic/magicactions.rsi/jaunt.png | Bin 431 -> 0 bytes
.../Objects/Magic/magicactions.rsi/meta.json | 5 +-
.../Ammunition/Boxes/shotgun.rsi/base.png | Bin 356 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/beanbag.png | Bin 268 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/flare.png | Bin 229 -> 0 bytes
.../Boxes/shotgun.rsi/incendiary.png | Bin 233 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/lethal.png | Bin 263 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/mag-1.png | Bin 107 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/mag-2.png | Bin 134 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/mag-3.png | Bin 142 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/mag-4.png | Bin 155 -> 0 bytes
.../Boxes/shotgun.rsi/mag-alt-1.png | Bin 106 -> 0 bytes
.../Boxes/shotgun.rsi/mag-alt-2.png | Bin 127 -> 0 bytes
.../Boxes/shotgun.rsi/mag-alt-3.png | Bin 135 -> 0 bytes
.../Boxes/shotgun.rsi/mag-alt-4.png | Bin 151 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/meta.json | 62 -
.../Ammunition/Boxes/shotgun.rsi/practice.png | Bin 221 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/slug.png | Bin 257 -> 0 bytes
.../Boxes/shotgun.rsi/tranquilizer.png | Bin 292 -> 0 bytes
.../Ammunition/Boxes/shotgun.rsi/uranium.png | Bin 249 -> 0 bytes
.../flaregun.rsi/{base.png => icon.png} | Bin
.../Guns/Shotguns/flaregun.rsi/meta.json | 2 +-
.../Shotguns/flaregun_security.rsi/base.png | Bin 549 -> 0 bytes
.../flaregun_security.rsi/bolt-open.png | Bin 574 -> 0 bytes
.../flaregun_security.rsi/equipped-BELT.png | Bin 222 -> 0 bytes
.../equipped-SUITSTORAGE.png | Bin 222 -> 0 bytes
.../flaregun_security.rsi/inhand-left.png | Bin 419 -> 0 bytes
.../flaregun_security.rsi/inhand-right.png | Bin 413 -> 0 bytes
.../Shotguns/flaregun_security.rsi/meta.json | 33 -
.../Melee/combat_knife.rsi/inhand-left.png | Bin 352 -> 291 bytes
.../Melee/combat_knife.rsi/inhand-right.png | Bin 349 -> 275 bytes
.../Weapons/Melee/combat_knife.rsi/meta.json | 5 +-
.../Melee/combat_knife.rsi/storage.png | Bin 335 -> 0 bytes
.../Melee/survival_knife.rsi/inhand-left.png | Bin 273 -> 308 bytes
.../Melee/survival_knife.rsi/inhand-right.png | Bin 272 -> 306 bytes
.../Melee/survival_knife.rsi/meta.json | 49 +-
.../Melee/survival_knife.rsi/storage.png | Bin 307 -> 0 bytes
.../Machines/computers.rsi/broken.png | Bin 3542 -> 3576 bytes
.../Windows/clockwork_diagonal.rsi/meta.json | 2 +-
.../Windows/clockwork_diagonal.rsi/state0.png | Bin 2836 -> 1663 bytes
.../Windows/clockwork_diagonal.rsi/state1.png | Bin 2833 -> 1681 bytes
.../Windows/clockwork_window.rsi/cwindow0.png | Bin 2164 -> 1065 bytes
.../Windows/clockwork_window.rsi/cwindow1.png | Bin 2128 -> 1060 bytes
.../Windows/clockwork_window.rsi/cwindow2.png | Bin 2164 -> 1065 bytes
.../Windows/clockwork_window.rsi/cwindow3.png | Bin 2128 -> 1060 bytes
.../Windows/clockwork_window.rsi/cwindow4.png | Bin 2112 -> 1075 bytes
.../Windows/clockwork_window.rsi/cwindow5.png | Bin 2060 -> 983 bytes
.../Windows/clockwork_window.rsi/cwindow6.png | Bin 2112 -> 1075 bytes
.../Windows/clockwork_window.rsi/cwindow7.png | Bin 2065 -> 1005 bytes
.../Windows/clockwork_window.rsi/full.png | Bin 1714 -> 735 bytes
.../Windows/clockwork_window.rsi/meta.json | 2 +-
.../Structures/Windows/mining.rsi/full.png | Bin 1811 -> 837 bytes
.../Structures/Windows/mining.rsi/meta.json | 2 +-
.../Windows/mining.rsi/mwindow0.png | Bin 2248 -> 3765 bytes
.../Windows/mining.rsi/mwindow1.png | Bin 2196 -> 3697 bytes
.../Windows/mining.rsi/mwindow2.png | Bin 2248 -> 3765 bytes
.../Windows/mining.rsi/mwindow3.png | Bin 2196 -> 3697 bytes
.../Windows/mining.rsi/mwindow4.png | Bin 2175 -> 3706 bytes
.../Windows/mining.rsi/mwindow5.png | Bin 2215 -> 3640 bytes
.../Windows/mining.rsi/mwindow6.png | Bin 2175 -> 3706 bytes
.../Windows/mining.rsi/mwindow7.png | Bin 1813 -> 3269 bytes
.../Windows/mining_diagonal.rsi/meta.json | 2 +-
.../Windows/mining_diagonal.rsi/state0.png | Bin 1299 -> 3037 bytes
.../Windows/mining_diagonal.rsi/state1.png | Bin 1333 -> 3076 bytes
.../Windows/plasma_diagonal.rsi/meta.json | 2 +-
.../Windows/plasma_diagonal.rsi/state0.png | Bin 1644 -> 15748 bytes
.../Windows/plasma_diagonal.rsi/state1.png | Bin 1603 -> 15665 bytes
.../Windows/plasma_window.rsi/full.png | Bin 2843 -> 1597 bytes
.../Windows/plasma_window.rsi/meta.json | 2 +-
.../Windows/plasma_window.rsi/pwindow0.png | Bin 3469 -> 2063 bytes
.../Windows/plasma_window.rsi/pwindow1.png | Bin 2334 -> 1099 bytes
.../Windows/plasma_window.rsi/pwindow2.png | Bin 3469 -> 2063 bytes
.../Windows/plasma_window.rsi/pwindow3.png | Bin 2334 -> 1099 bytes
.../Windows/plasma_window.rsi/pwindow4.png | Bin 2402 -> 1161 bytes
.../Windows/plasma_window.rsi/pwindow5.png | Bin 2294 -> 1064 bytes
.../Windows/plasma_window.rsi/pwindow6.png | Bin 2402 -> 1161 bytes
.../Windows/plasma_window.rsi/pwindow7.png | Bin 1240 -> 247 bytes
.../Windows/plastitanium_window.rsi/full.png | Bin 1500 -> 506 bytes
.../Windows/plastitanium_window.rsi/meta.json | 2 +-
.../plastitanium_window.rsi/ptwindow0.png | Bin 2316 -> 1190 bytes
.../plastitanium_window.rsi/ptwindow1.png | Bin 2083 -> 1006 bytes
.../plastitanium_window.rsi/ptwindow2.png | Bin 2316 -> 1190 bytes
.../plastitanium_window.rsi/ptwindow3.png | Bin 2083 -> 1006 bytes
.../plastitanium_window.rsi/ptwindow4.png | Bin 2076 -> 1008 bytes
.../plastitanium_window.rsi/ptwindow5.png | Bin 2114 -> 986 bytes
.../plastitanium_window.rsi/ptwindow6.png | Bin 2076 -> 1008 bytes
.../plastitanium_window.rsi/ptwindow7.png | Bin 1668 -> 641 bytes
.../meta.json | 2 +-
.../state0.png | Bin 1375 -> 3238 bytes
.../state1.png | Bin 1343 -> 3208 bytes
.../reinforced_plasma_diagonal.rsi/meta.json | 2 +-
.../reinforced_plasma_diagonal.rsi/state0.png | Bin 1797 -> 15911 bytes
.../reinforced_plasma_diagonal.rsi/state1.png | Bin 1790 -> 15885 bytes
.../reinforced_plasma_window.rsi/full.png | Bin 3504 -> 2495 bytes
.../reinforced_plasma_window.rsi/meta.json | 2 +-
.../rpwindow0.png | Bin 4096 -> 2930 bytes
.../rpwindow1.png | Bin 2864 -> 1696 bytes
.../rpwindow2.png | Bin 4096 -> 2930 bytes
.../rpwindow3.png | Bin 2864 -> 1696 bytes
.../rpwindow4.png | Bin 2888 -> 1745 bytes
.../rpwindow5.png | Bin 3021 -> 1695 bytes
.../rpwindow6.png | Bin 2888 -> 1745 bytes
.../rpwindow7.png | Bin 2262 -> 910 bytes
.../reinforced_uranium_diagonal.rsi/meta.json | 2 +-
.../state0.png | Bin 1662 -> 15734 bytes
.../state1.png | Bin 1620 -> 15695 bytes
.../reinforced_uranium_window.rsi/full.png | Bin 3028 -> 2067 bytes
.../reinforced_uranium_window.rsi/meta.json | 2 +-
.../ruwindow0.png | Bin 3323 -> 2366 bytes
.../ruwindow1.png | Bin 2130 -> 1169 bytes
.../ruwindow2.png | Bin 3323 -> 2342 bytes
.../ruwindow3.png | Bin 2130 -> 1138 bytes
.../ruwindow4.png | Bin 2102 -> 1133 bytes
.../ruwindow5.png | Bin 2084 -> 1088 bytes
.../ruwindow6.png | Bin 2102 -> 1129 bytes
.../ruwindow7.png | Bin 1240 -> 267 bytes
.../Windows/reinforced_window.rsi/full.png | Bin 3041 -> 2063 bytes
.../Windows/reinforced_window.rsi/meta.json | 2 +-
.../reinforced_window.rsi/rwindow0.png | Bin 3349 -> 2229 bytes
.../reinforced_window.rsi/rwindow1.png | Bin 2163 -> 1148 bytes
.../reinforced_window.rsi/rwindow2.png | Bin 3349 -> 2229 bytes
.../reinforced_window.rsi/rwindow3.png | Bin 2163 -> 1148 bytes
.../reinforced_window.rsi/rwindow4.png | Bin 2172 -> 1130 bytes
.../reinforced_window.rsi/rwindow5.png | Bin 2041 -> 1025 bytes
.../reinforced_window.rsi/rwindow6.png | Bin 2172 -> 1130 bytes
.../reinforced_window.rsi/rwindow7.png | Bin 1239 -> 272 bytes
.../reinforced_window_diagonal.rsi/meta.json | 2 +-
.../reinforced_window_diagonal.rsi/state0.png | Bin 1573 -> 16179 bytes
.../reinforced_window_diagonal.rsi/state1.png | Bin 1550 -> 16152 bytes
.../Windows/shuttle_window.rsi/full.png | Bin 1779 -> 707 bytes
.../Windows/shuttle_window.rsi/meta.json | 2 +-
.../Windows/shuttle_window.rsi/swindow0.png | Bin 2278 -> 1080 bytes
.../Windows/shuttle_window.rsi/swindow1.png | Bin 2146 -> 881 bytes
.../Windows/shuttle_window.rsi/swindow2.png | Bin 2278 -> 1080 bytes
.../Windows/shuttle_window.rsi/swindow3.png | Bin 2146 -> 881 bytes
.../Windows/shuttle_window.rsi/swindow4.png | Bin 2166 -> 912 bytes
.../Windows/shuttle_window.rsi/swindow5.png | Bin 2168 -> 857 bytes
.../Windows/shuttle_window.rsi/swindow6.png | Bin 2166 -> 912 bytes
.../Windows/shuttle_window.rsi/swindow7.png | Bin 1871 -> 412 bytes
.../shuttle_window_diagonal.rsi/meta.json | 2 +-
.../shuttle_window_diagonal.rsi/state0.png | Bin 1475 -> 15523 bytes
.../shuttle_window_diagonal.rsi/state1.png | Bin 1423 -> 15473 bytes
.../Windows/tinted_window.rsi/full.png | Bin 3495 -> 9436 bytes
.../Windows/tinted_window.rsi/meta.json | 2 +-
.../Windows/tinted_window.rsi/twindow0.png | Bin 4035 -> 10814 bytes
.../Windows/tinted_window.rsi/twindow1.png | Bin 2719 -> 8214 bytes
.../Windows/tinted_window.rsi/twindow2.png | Bin 4035 -> 10815 bytes
.../Windows/tinted_window.rsi/twindow3.png | Bin 2719 -> 8477 bytes
.../Windows/tinted_window.rsi/twindow4.png | Bin 2692 -> 8217 bytes
.../Windows/tinted_window.rsi/twindow5.png | Bin 2318 -> 6896 bytes
.../Windows/tinted_window.rsi/twindow6.png | Bin 2692 -> 8464 bytes
.../Windows/tinted_window.rsi/twindow7.png | Bin 1661 -> 4882 bytes
.../Windows/uranium_window.rsi/full.png | Bin 2364 -> 1321 bytes
.../Windows/uranium_window.rsi/meta.json | 2 +-
.../Windows/uranium_window.rsi/uwindow0.png | Bin 2857 -> 1688 bytes
.../Windows/uranium_window.rsi/uwindow1.png | Bin 2288 -> 1225 bytes
.../Windows/uranium_window.rsi/uwindow2.png | Bin 2857 -> 1688 bytes
.../Windows/uranium_window.rsi/uwindow3.png | Bin 2288 -> 1225 bytes
.../Windows/uranium_window.rsi/uwindow4.png | Bin 2251 -> 1216 bytes
.../Windows/uranium_window.rsi/uwindow5.png | Bin 1872 -> 795 bytes
.../Windows/uranium_window.rsi/uwindow6.png | Bin 2251 -> 1229 bytes
.../Windows/uranium_window.rsi/uwindow7.png | Bin 1281 -> 297 bytes
.../uranium_window_diagonal.rsi/meta.json | 2 +-
.../uranium_window_diagonal.rsi/state0.png | Bin 1572 -> 15629 bytes
.../uranium_window_diagonal.rsi/state1.png | Bin 1539 -> 15604 bytes
.../Structures/Windows/window.rsi/full.png | Bin 2279 -> 1224 bytes
.../Structures/Windows/window.rsi/meta.json | 2 +-
.../Structures/Windows/window.rsi/window0.png | Bin 2748 -> 1632 bytes
.../Structures/Windows/window.rsi/window1.png | Bin 2217 -> 1183 bytes
.../Structures/Windows/window.rsi/window2.png | Bin 2748 -> 1632 bytes
.../Structures/Windows/window.rsi/window3.png | Bin 2217 -> 1183 bytes
.../Structures/Windows/window.rsi/window4.png | Bin 2213 -> 1187 bytes
.../Structures/Windows/window.rsi/window5.png | Bin 1810 -> 800 bytes
.../Structures/Windows/window.rsi/window6.png | Bin 2213 -> 1187 bytes
.../Structures/Windows/window.rsi/window7.png | Bin 1240 -> 301 bytes
.../Windows/window_diagonal.rsi/meta.json | 2 +-
.../Windows/window_diagonal.rsi/state0.png | Bin 1329 -> 15988 bytes
.../Windows/window_diagonal.rsi/state1.png | Bin 1285 -> 15966 bytes
.../conveyor_old.rsi/conveyor_loose.png | Bin 0 -> 286 bytes
.../conveyor_old.rsi/conveyor_started_ccw.png | Bin 0 -> 4389 bytes
.../conveyor_started_ccw_r.png | Bin 0 -> 4440 bytes
.../conveyor_old.rsi/conveyor_started_cw.png | Bin 0 -> 4434 bytes
.../conveyor_started_cw_r.png | Bin 0 -> 4464 bytes
.../conveyor_old.rsi/conveyor_stopped_ccw.png | Bin 0 -> 1687 bytes
.../conveyor_old.rsi/conveyor_stopped_cw.png | Bin 0 -> 1689 bytes
.../Structures/conveyor_old.rsi/meta.json | 238 ++
447 files changed, 5259 insertions(+), 8712 deletions(-)
rename .github/workflows/{labeler-conflict.yml => conflict-labeler.yml} (100%)
delete mode 100644 .github/workflows/labeler-size.yml
delete mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml
delete mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs
delete mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs
delete mode 100644 Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs
delete mode 100644 Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml
delete mode 100644 Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml
delete mode 100644 Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml.cs
create mode 100644 Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml
rename Content.Client/UserInterface/Systems/Ghost/Controls/Roles/{GhostRoleButtonsBox.xaml.cs => GhostRolesEntry.xaml.cs} (86%)
delete mode 100644 Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Accessibility.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Admin.Ahelp.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Admin.Logs.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Admin.Rules.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Admin.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Atmos.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Audio.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Chat.Looc.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Chat.Ooc.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Chat.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Config.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Console.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Crewmanifest.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Database.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Discord.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Events.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Explosion.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Game.Infolinks.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Game.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Ghost.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Hud.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Ic.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Interactions.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Interface.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Mapping.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Midi.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Misc.cs
delete mode 100644 Content.Shared/CCVar/CCVars.NPC.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Net.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Parallax.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Physics.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Radiation.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Replays.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Salvage.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Server.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Shuttle.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Sounds.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Status.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Tips.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Viewport.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Vote.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Whitelist.cs
delete mode 100644 Content.Shared/CCVar/CCVars.Worldgen.cs
delete mode 100644 Content.Shared/Intellicard/Components/IntellicardComponent.cs
delete mode 100644 Content.Shared/Jaunt/JauntComponent.cs
delete mode 100644 Content.Shared/Jaunt/JauntSystem.cs
delete mode 100644 Content.Shared/Silicons/Borgs/BorgTypePrototype.cs
delete mode 100644 Content.Shared/Silicons/Borgs/Components/BorgSwitchableTypeComponent.cs
delete mode 100644 Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs
delete mode 100644 Resources/Audio/Magic/ethereal_enter.ogg
delete mode 100644 Resources/Audio/Magic/ethereal_exit.ogg
delete mode 100644 Resources/Locale/en-US/deltav/borg/borg.ftl
delete mode 100644 Resources/Locale/en-US/intellicard/intellicard.ftl
delete mode 100644 Resources/Maps/Ruins/abandoned_outpost.yml
create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Specific/Robotics/borg_parts.yml
delete mode 100644 Resources/Prototypes/DeltaV/borg_types.yml
delete mode 100644 Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml
delete mode 100644 Resources/Prototypes/borg_types.yml
delete mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/select-type.png
delete mode 100644 Resources/Textures/Interface/Alerts/walking.rsi/meta.json
delete mode 100644 Resources/Textures/Interface/Alerts/walking.rsi/walking.png
delete mode 100644 Resources/Textures/Objects/Consumable/Food/meat.rsi/anomalymeat-cooked.png
delete mode 100644 Resources/Textures/Objects/Consumable/Food/meat.rsi/anomalymeat.png
delete mode 100644 Resources/Textures/Objects/Magic/magicactions.rsi/jaunt.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/base.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/beanbag.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/flare.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/incendiary.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/lethal.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-1.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-2.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-3.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-4.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-alt-1.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-alt-2.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-alt-3.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/mag-alt-4.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/meta.json
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/practice.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/slug.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/tranquilizer.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi/uranium.png
rename Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun.rsi/{base.png => icon.png} (100%)
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/base.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/bolt-open.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/equipped-BELT.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/equipped-SUITSTORAGE.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/inhand-left.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/inhand-right.png
delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Shotguns/flaregun_security.rsi/meta.json
delete mode 100644 Resources/Textures/Objects/Weapons/Melee/combat_knife.rsi/storage.png
delete mode 100644 Resources/Textures/Objects/Weapons/Melee/survival_knife.rsi/storage.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_loose.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_started_ccw.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_started_ccw_r.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_started_cw.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_started_cw_r.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_stopped_ccw.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/conveyor_stopped_cw.png
create mode 100644 Resources/Textures/Structures/conveyor_old.rsi/meta.json
diff --git a/.github/workflows/labeler-conflict.yml b/.github/workflows/conflict-labeler.yml
similarity index 100%
rename from .github/workflows/labeler-conflict.yml
rename to .github/workflows/conflict-labeler.yml
diff --git a/.github/workflows/labeler-size.yml b/.github/workflows/labeler-size.yml
deleted file mode 100644
index 418faed79b8..00000000000
--- a/.github/workflows/labeler-size.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: "Labels: Size"
-on: pull_request_target
-jobs:
- size-label:
- runs-on: ubuntu-latest
- steps:
- - name: size-label
- uses: "pascalgn/size-label-action@v0.5.5"
- env:
- GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- with:
- # Custom size configuration
- # DeltaV: changed to powers of 4
- sizes: >
- {
- "0": "XS",
- "16": "S",
- "64": "M",
- "256": "L",
- "1024": "XL"
- }
diff --git a/.github/workflows/labeler-untriaged.yml b/.github/workflows/labeler-untriaged.yml
index ec1d194851c..22554d05650 100644
--- a/.github/workflows/labeler-untriaged.yml
+++ b/.github/workflows/labeler-untriaged.yml
@@ -3,8 +3,6 @@
on:
issues:
types: [opened]
- pull_request_target:
- types: [opened]
jobs:
add_label:
diff --git a/Content.Client/Administration/UI/Notes/NoteEdit.xaml b/Content.Client/Administration/UI/Notes/NoteEdit.xaml
index 72b2c55ce8d..506abac540c 100644
--- a/Content.Client/Administration/UI/Notes/NoteEdit.xaml
+++ b/Content.Client/Administration/UI/Notes/NoteEdit.xaml
@@ -8,7 +8,6 @@
-
diff --git a/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs b/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs
index a412e47396b..6f314f79542 100644
--- a/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs
+++ b/Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs
@@ -17,17 +17,6 @@ public sealed partial class NoteEdit : FancyWindow
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IClientConsoleHost _console = default!;
- private enum Multipliers
- {
- Minutes,
- Hours,
- Days,
- Weeks,
- Months,
- Years,
- Centuries
- }
-
public event Action? SubmitPressed;
public NoteEdit(SharedAdminNote? note, string playerName, bool canCreate, bool canEdit)
@@ -42,20 +31,6 @@ public NoteEdit(SharedAdminNote? note, string playerName, bool canCreate, bool c
ResetSubmitButton();
- // It's weird to use minutes as the IDs, but it works and makes sense kind of :)
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-minutes"), (int) Multipliers.Minutes);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-hours"), (int) Multipliers.Hours);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-days"), (int) Multipliers.Days);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-weeks"), (int) Multipliers.Weeks);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-months"), (int) Multipliers.Months);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-years"), (int) Multipliers.Years);
- ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-centuries"), (int) Multipliers.Centuries);
- ExpiryLengthDropdown.OnItemSelected += OnLengthChanged;
-
- ExpiryLengthDropdown.SelectId((int) Multipliers.Weeks);
-
- ExpiryLineEdit.OnTextChanged += OnTextChanged;
-
TypeOption.AddItem(Loc.GetString("admin-note-editor-type-note"), (int) NoteType.Note);
TypeOption.AddItem(Loc.GetString("admin-note-editor-type-message"), (int) NoteType.Message);
TypeOption.AddItem(Loc.GetString("admin-note-editor-type-watchlist"), (int) NoteType.Watchlist);
@@ -197,9 +172,8 @@ private void UpdatePermanentCheckboxFields()
{
ExpiryLabel.Visible = !PermanentCheckBox.Pressed;
ExpiryLineEdit.Visible = !PermanentCheckBox.Pressed;
- ExpiryLengthDropdown.Visible = !PermanentCheckBox.Pressed;
- ExpiryLineEdit.Text = !PermanentCheckBox.Pressed ? 1.ToString() : string.Empty;
+ ExpiryLineEdit.Text = !PermanentCheckBox.Pressed ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty;
}
private void OnSecretPressed(BaseButton.ButtonEventArgs _)
@@ -213,16 +187,6 @@ private void OnSeverityChanged(OptionButton.ItemSelectedEventArgs args)
SeverityOption.SelectId(args.Id);
}
- private void OnLengthChanged(OptionButton.ItemSelectedEventArgs args)
- {
- ExpiryLengthDropdown.SelectId(args.Id);
- }
-
- private void OnTextChanged(HistoryLineEdit.LineEditEventArgs args)
- {
- ParseExpiryTime();
- }
-
private void OnSubmitButtonPressed(BaseButton.ButtonEventArgs args)
{
if (!ParseExpiryTime())
@@ -299,24 +263,13 @@ private bool ParseExpiryTime()
return true;
}
- if (string.IsNullOrWhiteSpace(ExpiryLineEdit.Text) || !uint.TryParse(ExpiryLineEdit.Text, out var inputInt))
+ if (string.IsNullOrWhiteSpace(ExpiryLineEdit.Text) || !DateTime.TryParse(ExpiryLineEdit.Text, out var result) || DateTime.UtcNow > result)
{
ExpiryLineEdit.ModulateSelfOverride = Color.Red;
return false;
}
- var mult = ExpiryLengthDropdown.SelectedId switch
- {
- (int) Multipliers.Minutes => TimeSpan.FromMinutes(1).TotalMinutes,
- (int) Multipliers.Hours => TimeSpan.FromHours(1).TotalMinutes,
- (int) Multipliers.Days => TimeSpan.FromDays(1).TotalMinutes,
- (int) Multipliers.Weeks => TimeSpan.FromDays(7).TotalMinutes,
- (int) Multipliers.Months => TimeSpan.FromDays(30).TotalMinutes,
- (int) Multipliers.Years => TimeSpan.FromDays(365).TotalMinutes,
- (int) Multipliers.Centuries => TimeSpan.FromDays(36525).TotalMinutes,
- _ => throw new ArgumentOutOfRangeException(nameof(ExpiryLengthDropdown.SelectedId), "Multiplier out of range :(")
- };
- ExpiryTime = DateTime.UtcNow.AddMinutes(inputInt * mult);
+ ExpiryTime = result.ToUniversalTime();
ExpiryLineEdit.ModulateSelfOverride = null;
return true;
}
diff --git a/Content.Client/Alerts/ClientAlertsSystem.cs b/Content.Client/Alerts/ClientAlertsSystem.cs
index c5ec254c0cc..525ef1f018f 100644
--- a/Content.Client/Alerts/ClientAlertsSystem.cs
+++ b/Content.Client/Alerts/ClientAlertsSystem.cs
@@ -2,7 +2,6 @@
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Client.Player;
-using Robust.Shared.GameStates;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
@@ -25,7 +24,8 @@ public override void Initialize()
SubscribeLocalEvent(OnPlayerAttached);
SubscribeLocalEvent(OnPlayerDetached);
- SubscribeLocalEvent(OnHandleState);
+
+ SubscribeLocalEvent(ClientAlertsHandleState);
}
protected override void LoadPrototypes()
{
@@ -47,22 +47,17 @@ public IReadOnlyDictionary? ActiveAlerts
}
}
- private void OnHandleState(Entity alerts, ref ComponentHandleState args)
+ protected override void AfterShowAlert(Entity alerts)
{
- if (args.Current is not AlertComponentState cast)
- return;
-
- alerts.Comp.Alerts = cast.Alerts;
-
UpdateHud(alerts);
}
- protected override void AfterShowAlert(Entity alerts)
+ protected override void AfterClearAlert(Entity alerts)
{
UpdateHud(alerts);
}
- protected override void AfterClearAlert(Entity alerts)
+ private void ClientAlertsHandleState(Entity alerts, ref AfterAutoHandleStateEvent args)
{
UpdateHud(alerts);
}
diff --git a/Content.Client/Clothing/ClientClothingSystem.cs b/Content.Client/Clothing/ClientClothingSystem.cs
index 46f879e8156..3462fc92360 100644
--- a/Content.Client/Clothing/ClientClothingSystem.cs
+++ b/Content.Client/Clothing/ClientClothingSystem.cs
@@ -58,7 +58,6 @@ public override void Initialize()
base.Initialize();
SubscribeLocalEvent(OnGetVisuals);
- SubscribeLocalEvent(OnInventoryTemplateUpdated);
SubscribeLocalEvent(OnVisualsChanged);
SubscribeLocalEvent(OnDidUnequip);
@@ -71,7 +70,11 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref
if (args.Sprite == null)
return;
- UpdateAllSlots(uid, component);
+ var enumerator = _inventorySystem.GetSlotEnumerator((uid, component));
+ while (enumerator.NextItem(out var item, out var slot))
+ {
+ RenderEquipment(uid, item, slot.Name, component);
+ }
// No clothing equipped -> make sure the layer is hidden, though this should already be handled by on-unequip.
if (args.Sprite.LayerMapTryGet(HumanoidVisualLayers.StencilMask, out var layer))
@@ -81,23 +84,6 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref
}
}
- private void OnInventoryTemplateUpdated(Entity ent, ref InventoryTemplateUpdated args)
- {
- UpdateAllSlots(ent.Owner, clothing: ent.Comp);
- }
-
- private void UpdateAllSlots(
- EntityUid uid,
- InventoryComponent? inventoryComponent = null,
- ClothingComponent? clothing = null)
- {
- var enumerator = _inventorySystem.GetSlotEnumerator((uid, inventoryComponent));
- while (enumerator.NextItem(out var item, out var slot))
- {
- RenderEquipment(uid, item, slot.Name, inventoryComponent, clothingComponent: clothing);
- }
- }
-
private void OnGetVisuals(EntityUid uid, ClothingComponent item, GetEquipmentVisualsEvent args)
{
if (!TryComp(args.Equipee, out InventoryComponent? inventory))
diff --git a/Content.Client/Commands/ShowHealthBarsCommand.cs b/Content.Client/Commands/ShowHealthBarsCommand.cs
index 6ea9d06c8c3..0811f966637 100644
--- a/Content.Client/Commands/ShowHealthBarsCommand.cs
+++ b/Content.Client/Commands/ShowHealthBarsCommand.cs
@@ -1,8 +1,6 @@
-using Content.Shared.Damage.Prototypes;
using Content.Shared.Overlays;
using Robust.Client.Player;
using Robust.Shared.Console;
-using Robust.Shared.Prototypes;
using System.Linq;
namespace Content.Client.Commands;
@@ -36,7 +34,7 @@ public override void Execute(IConsoleShell shell, string argStr, string[] args)
{
var showHealthBarsComponent = new ShowHealthBarsComponent
{
- DamageContainers = args.Select(arg => new ProtoId(arg)).ToList(),
+ DamageContainers = args.ToList(),
HealthStatusIcon = null,
NetSyncEnabled = false
};
diff --git a/Content.Client/Effects/ColorFlashEffectSystem.cs b/Content.Client/Effects/ColorFlashEffectSystem.cs
index b584aa9ad1b..956c9465244 100644
--- a/Content.Client/Effects/ColorFlashEffectSystem.cs
+++ b/Content.Client/Effects/ColorFlashEffectSystem.cs
@@ -124,10 +124,6 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
continue;
}
- var targetEv = new GetFlashEffectTargetEvent(ent);
- RaiseLocalEvent(ent, ref targetEv);
- ent = targetEv.Target;
-
EnsureComp(ent, out comp);
comp.NetSyncEnabled = false;
comp.Color = sprite.Color;
@@ -136,9 +132,3 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
}
}
}
-
-///
-/// Raised on an entity to change the target for a color flash effect.
-///
-[ByRefEvent]
-public record struct GetFlashEffectTargetEvent(EntityUid Target);
diff --git a/Content.Client/Inventory/ClientInventorySystem.cs b/Content.Client/Inventory/ClientInventorySystem.cs
index dce401eefda..87cea4e3d2f 100644
--- a/Content.Client/Inventory/ClientInventorySystem.cs
+++ b/Content.Client/Inventory/ClientInventorySystem.cs
@@ -235,23 +235,9 @@ public void UIInventoryAltActivateItem(string slot, EntityUid uid)
EntityManager.RaisePredictiveEvent(new InteractInventorySlotEvent(GetNetEntity(item.Value), altInteract: true));
}
- protected override void UpdateInventoryTemplate(Entity ent)
- {
- base.UpdateInventoryTemplate(ent);
-
- if (TryComp(ent, out InventorySlotsComponent? inventorySlots))
- {
- foreach (var slot in ent.Comp.Slots)
- {
- if (inventorySlots.SlotData.TryGetValue(slot.Name, out var slotData))
- slotData.SlotDef = slot;
- }
- }
- }
-
public sealed class SlotData
{
- public SlotDefinition SlotDef;
+ public readonly SlotDefinition SlotDef;
public EntityUid? HeldEntity => Container?.ContainedEntity;
public bool Blocked;
public bool Highlighted;
diff --git a/Content.Client/Overlays/EquipmentHudSystem.cs b/Content.Client/Overlays/EquipmentHudSystem.cs
index 502a1f36274..c7578b6793f 100644
--- a/Content.Client/Overlays/EquipmentHudSystem.cs
+++ b/Content.Client/Overlays/EquipmentHudSystem.cs
@@ -14,7 +14,6 @@ public abstract class EquipmentHudSystem : EntitySystem where T : IComponent
{
[Dependency] private readonly IPlayerManager _player = default!;
- [ViewVariables]
protected bool IsActive;
protected virtual SlotFlags TargetSlots => ~SlotFlags.POCKET;
@@ -103,7 +102,7 @@ protected virtual void OnRefreshComponentHud(EntityUid uid, T component, Refresh
args.Components.Add(component);
}
- protected void RefreshOverlay(EntityUid uid)
+ private void RefreshOverlay(EntityUid uid)
{
if (uid != _player.LocalSession?.AttachedEntity)
return;
diff --git a/Content.Client/Overlays/ShowHealthBarsSystem.cs b/Content.Client/Overlays/ShowHealthBarsSystem.cs
index b23209ff202..1eb712a8988 100644
--- a/Content.Client/Overlays/ShowHealthBarsSystem.cs
+++ b/Content.Client/Overlays/ShowHealthBarsSystem.cs
@@ -21,16 +21,9 @@ public override void Initialize()
{
base.Initialize();
- SubscribeLocalEvent(OnHandleState);
-
_overlay = new(EntityManager, _prototype);
}
- private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args)
- {
- RefreshOverlay(ent);
- }
-
protected override void UpdateInternal(RefreshEquipmentHudEvent component)
{
base.UpdateInternal(component);
diff --git a/Content.Client/Overlays/ShowHealthIconsSystem.cs b/Content.Client/Overlays/ShowHealthIconsSystem.cs
index b4d845e4217..8c22c78f17c 100644
--- a/Content.Client/Overlays/ShowHealthIconsSystem.cs
+++ b/Content.Client/Overlays/ShowHealthIconsSystem.cs
@@ -17,7 +17,6 @@ public sealed class ShowHealthIconsSystem : EquipmentHudSystem DamageContainers = new();
public override void Initialize()
@@ -25,7 +24,6 @@ public override void Initialize()
base.Initialize();
SubscribeLocalEvent(OnGetStatusIconsEvent);
- SubscribeLocalEvent(OnHandleState);
}
protected override void UpdateInternal(RefreshEquipmentHudEvent component)
@@ -45,11 +43,6 @@ protected override void DeactivateInternal()
DamageContainers.Clear();
}
- private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args)
- {
- RefreshOverlay(ent);
- }
-
private void OnGetStatusIconsEvent(Entity entity, ref GetStatusIconsEvent args)
{
if (!IsActive)
diff --git a/Content.Client/Overlays/ShowThirstIconsSystem.cs b/Content.Client/Overlays/ShowThirstIconsSystem.cs
index 9fc64165c56..44be1f7a67f 100644
--- a/Content.Client/Overlays/ShowThirstIconsSystem.cs
+++ b/Content.Client/Overlays/ShowThirstIconsSystem.cs
@@ -22,6 +22,6 @@ private void OnGetStatusIconsEvent(EntityUid uid, ThirstComponent component, ref
return;
if (_thirst.TryGetStatusIconPrototype(component, out var iconPrototype))
- ev.StatusIcons.Add(iconPrototype);
+ ev.StatusIcons.Add(iconPrototype!);
}
}
diff --git a/Content.Client/Physics/Controllers/MoverController.cs b/Content.Client/Physics/Controllers/MoverController.cs
index d2ac0cdefdc..c97110b208e 100644
--- a/Content.Client/Physics/Controllers/MoverController.cs
+++ b/Content.Client/Physics/Controllers/MoverController.cs
@@ -1,12 +1,9 @@
-using Content.Shared.Alert;
-using Content.Shared.CCVar;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Movement.Systems;
using Robust.Client.GameObjects;
using Robust.Client.Physics;
using Robust.Client.Player;
-using Robust.Shared.Configuration;
using Robust.Shared.Physics.Components;
using Robust.Shared.Player;
using Robust.Shared.Timing;
@@ -17,8 +14,6 @@ public sealed class MoverController : SharedMoverController
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
- [Dependency] private readonly AlertsSystem _alerts = default!;
- [Dependency] private readonly IConfigurationManager _cfg = default!;
public override void Initialize()
{
@@ -140,15 +135,4 @@ protected override bool CanSound()
{
return _timing is { IsFirstTimePredicted: true, InSimulation: true };
}
-
- public override void SetSprinting(Entity entity, ushort subTick, bool walking)
- {
- // Logger.Info($"[{_gameTiming.CurTick}/{subTick}] Sprint: {enabled}");
- base.SetSprinting(entity, subTick, walking);
-
- if (walking && _cfg.GetCVar(CCVars.ToggleWalk))
- _alerts.ShowAlert(entity, WalkingAlert, showCooldown: false, autoRemove: false);
- else
- _alerts.ClearAlert(entity, WalkingAlert);
- }
}
diff --git a/Content.Client/Polymorph/Systems/ChameleonProjectorSystem.cs b/Content.Client/Polymorph/Systems/ChameleonProjectorSystem.cs
index 8ba09c66170..4acbf540f06 100644
--- a/Content.Client/Polymorph/Systems/ChameleonProjectorSystem.cs
+++ b/Content.Client/Polymorph/Systems/ChameleonProjectorSystem.cs
@@ -1,10 +1,8 @@
-using Content.Client.Effects;
using Content.Client.Smoking;
using Content.Shared.Chemistry.Components;
using Content.Shared.Polymorph.Components;
using Content.Shared.Polymorph.Systems;
using Robust.Client.GameObjects;
-using Robust.Shared.Player;
namespace Content.Client.Polymorph.Systems;
@@ -26,7 +24,6 @@ public override void Initialize()
SubscribeLocalEvent(OnStartup);
SubscribeLocalEvent(OnShutdown);
- SubscribeLocalEvent(OnGetFlashEffectTargetEvent);
}
private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args)
@@ -55,9 +52,4 @@ private void OnShutdown(Entity ent, ref ComponentSh
if (_spriteQuery.TryComp(ent, out var sprite))
sprite.Visible = ent.Comp.WasVisible;
}
-
- private void OnGetFlashEffectTargetEvent(Entity ent, ref GetFlashEffectTargetEvent args)
- {
- args.Target = ent.Comp.Disguise;
- }
}
diff --git a/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs b/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs
index b8f0e69c022..f6a861aa057 100644
--- a/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs
+++ b/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs
@@ -131,8 +131,7 @@ private void UpdateModulePanel()
_modules.Clear();
foreach (var module in chassis.ModuleContainer.ContainedEntities)
{
- var moduleComponent = _entity.GetComponent(module);
- var control = new BorgModuleControl(module, _entity, !moduleComponent.DefaultModule);
+ var control = new BorgModuleControl(module, _entity);
control.RemoveButtonPressed += () =>
{
RemoveModuleButtonPressed?.Invoke(module);
diff --git a/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs b/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs
index 245425524ca..d5cf05ba63e 100644
--- a/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs
+++ b/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs
@@ -9,7 +9,7 @@ public sealed partial class BorgModuleControl : PanelContainer
{
public Action? RemoveButtonPressed;
- public BorgModuleControl(EntityUid entity, IEntityManager entityManager, bool canRemove)
+ public BorgModuleControl(EntityUid entity, IEntityManager entityManager)
{
RobustXamlLoader.Load(this);
@@ -20,7 +20,6 @@ public BorgModuleControl(EntityUid entity, IEntityManager entityManager, bool ca
{
RemoveButtonPressed?.Invoke();
};
- RemoveButton.Visible = canRemove;
}
}
diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml
deleted file mode 100644
index f51c2f53fd0..00000000000
--- a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs
deleted file mode 100644
index e1fbd376b54..00000000000
--- a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using System.Linq;
-using Content.Client.UserInterface.Controls;
-using Content.Client.UserInterface.Systems.Guidebook;
-using Content.Shared.Guidebook;
-using Content.Shared.Silicons.Borgs;
-using Content.Shared.Silicons.Borgs.Components;
-using Robust.Client.AutoGenerated;
-using Robust.Client.UserInterface.Controls;
-using Robust.Client.UserInterface.XAML;
-using Robust.Shared.Prototypes;
-
-namespace Content.Client.Silicons.Borgs;
-
-///
-/// Menu used by borgs to select their type.
-///
-///
-///
-[GenerateTypedNameReferences]
-public sealed partial class BorgSelectTypeMenu : FancyWindow
-{
- [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
-
- private BorgTypePrototype? _selectedBorgType;
-
- public event Action>? ConfirmedBorgType;
-
- [ValidatePrototypeId]
- private static readonly List> GuidebookEntries = new() { "Cyborgs", "Robotics" };
-
- public BorgSelectTypeMenu()
- {
- RobustXamlLoader.Load(this);
- IoCManager.InjectDependencies(this);
-
- var group = new ButtonGroup();
- foreach (var borgType in _prototypeManager.EnumeratePrototypes().OrderBy(PrototypeName))
- {
- var button = new Button
- {
- Text = PrototypeName(borgType),
- Group = group,
- };
- button.OnPressed += _ =>
- {
- _selectedBorgType = borgType;
- UpdateInformation(borgType);
- };
- SelectionsContainer.AddChild(button);
- }
-
- ConfirmTypeButton.OnPressed += ConfirmButtonPressed;
- HelpGuidebookIds = GuidebookEntries;
- }
-
- private void UpdateInformation(BorgTypePrototype prototype)
- {
- _selectedBorgType = prototype;
-
- InfoContents.Visible = true;
- InfoPlaceholder.Visible = false;
- ConfirmTypeButton.Disabled = false;
-
- NameLabel.Text = PrototypeName(prototype);
- DescriptionLabel.Text = Loc.GetString($"borg-type-{prototype.ID}-desc");
- ChassisView.SetPrototype(prototype.DummyPrototype);
- }
-
- private void ConfirmButtonPressed(BaseButton.ButtonEventArgs obj)
- {
- if (_selectedBorgType == null)
- return;
-
- ConfirmedBorgType?.Invoke(_selectedBorgType);
- }
-
- private static string PrototypeName(BorgTypePrototype prototype)
- {
- return Loc.GetString($"borg-type-{prototype.ID}-name");
- }
-}
diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs b/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs
deleted file mode 100644
index 8c76fade8c9..00000000000
--- a/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Content.Shared.Silicons.Borgs.Components;
-using JetBrains.Annotations;
-using Robust.Client.UserInterface;
-
-namespace Content.Client.Silicons.Borgs;
-
-///
-/// User interface used by borgs to select their type.
-///
-///
-///
-///
-[UsedImplicitly]
-public sealed class BorgSelectTypeUserInterface : BoundUserInterface
-{
- [ViewVariables]
- private BorgSelectTypeMenu? _menu;
-
- public BorgSelectTypeUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
- {
- }
-
- protected override void Open()
- {
- base.Open();
-
- _menu = this.CreateWindow();
- _menu.ConfirmedBorgType += prototype => SendMessage(new BorgSelectTypeMessage(prototype));
- }
-}
diff --git a/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs b/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs
deleted file mode 100644
index d94562e374b..00000000000
--- a/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using Content.Shared.Movement.Components;
-using Content.Shared.Silicons.Borgs;
-using Content.Shared.Silicons.Borgs.Components;
-using Robust.Client.GameObjects;
-
-namespace Content.Client.Silicons.Borgs;
-
-///
-/// Client side logic for borg type switching. Sets up primarily client-side visual information.
-///
-///
-///
-public sealed class BorgSwitchableTypeSystem : SharedBorgSwitchableTypeSystem
-{
- [Dependency] private readonly BorgSystem _borgSystem = default!;
- [Dependency] private readonly AppearanceSystem _appearance = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(AfterStateHandler);
- SubscribeLocalEvent(OnComponentStartup);
- }
-
- private void OnComponentStartup(Entity ent, ref ComponentStartup args)
- {
- UpdateEntityAppearance(ent);
- }
-
- private void AfterStateHandler(Entity ent, ref AfterAutoHandleStateEvent args)
- {
- UpdateEntityAppearance(ent);
- }
-
- protected override void UpdateEntityAppearance(
- Entity entity,
- BorgTypePrototype prototype)
- {
- // Begin DeltaV Code
- if (prototype.ClientComponents is {} add)
- EntityManager.AddComponents(entity, add);
- // End DeltaV Code
- if (TryComp(entity, out SpriteComponent? sprite))
- {
- sprite.LayerSetState(BorgVisualLayers.Body, prototype.SpriteBodyState);
- sprite.LayerSetState(BorgVisualLayers.LightStatus, prototype.SpriteToggleLightState);
- }
-
- if (TryComp(entity, out BorgChassisComponent? chassis))
- {
- _borgSystem.SetMindStates(
- (entity.Owner, chassis),
- prototype.SpriteHasMindState,
- prototype.SpriteNoMindState);
-
- if (TryComp(entity, out AppearanceComponent? appearance))
- {
- // Queue update so state changes apply.
- _appearance.QueueUpdate(entity, appearance);
- }
- }
-
- if (prototype.SpriteBodyMovementState is { } movementState)
- {
- var spriteMovement = EnsureComp(entity);
- spriteMovement.NoMovementLayers.Clear();
- spriteMovement.NoMovementLayers["movement"] = new PrototypeLayerData
- {
- State = prototype.SpriteBodyState,
- };
- spriteMovement.MovementLayers.Clear();
- spriteMovement.MovementLayers["movement"] = new PrototypeLayerData
- {
- State = movementState,
- };
- }
- else
- {
- RemComp(entity);
- }
-
- base.UpdateEntityAppearance(entity, prototype);
- }
-}
diff --git a/Content.Client/Silicons/Borgs/BorgSystem.cs b/Content.Client/Silicons/Borgs/BorgSystem.cs
index 387a56384e9..e92ce5cc777 100644
--- a/Content.Client/Silicons/Borgs/BorgSystem.cs
+++ b/Content.Client/Silicons/Borgs/BorgSystem.cs
@@ -92,18 +92,4 @@ private void OnMMIAppearanceChanged(EntityUid uid, MMIComponent component, ref A
sprite.LayerSetState(MMIVisualLayers.Base, state);
}
}
-
- ///
- /// Sets the sprite states used for the borg "is there a mind or not" indication.
- ///
- /// The entity and component to modify.
- /// The state to use if the borg has a mind.
- /// The state to use if the borg has no mind.
- ///
- ///
- public void SetMindStates(Entity borg, string hasMindState, string noMindState)
- {
- borg.Comp.HasMindState = hasMindState;
- borg.Comp.NoMindState = noMindState;
- }
}
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml
deleted file mode 100644
index 32d611e7717..00000000000
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleEntryButtons.xaml b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleEntryButtons.xaml
index 05c52deef16..ffde5d69f76 100644
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleEntryButtons.xaml
+++ b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleEntryButtons.xaml
@@ -1,15 +1,15 @@
+ Orientation="Horizontal">
+ HorizontalAlignment="Left"
+ SetWidth="300"/>
+ HorizontalAlignment="Right"
+ SetWidth="150"/>
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml
deleted file mode 100644
index e24455bdf52..00000000000
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml.cs b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml.cs
deleted file mode 100644
index 705a9f0bb8c..00000000000
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleInfoBox.xaml.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Robust.Client.AutoGenerated;
-using Robust.Client.UserInterface.Controls;
-using Robust.Client.UserInterface.XAML;
-
-namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
-{
- [GenerateTypedNameReferences]
- public sealed partial class GhostRoleInfoBox : BoxContainer
- {
- public GhostRoleInfoBox(string name, string description)
- {
- RobustXamlLoader.Load(this);
-
- Title.Text = name;
- Description.SetMessage(description);
- }
- }
-}
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml
new file mode 100644
index 00000000000..d9ed1728107
--- /dev/null
+++ b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml.cs b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml.cs
similarity index 86%
rename from Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml.cs
rename to Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml.cs
index 7df02434160..fc53cc72ae6 100644
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRoleButtonsBox.xaml.cs
+++ b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEntry.xaml.cs
@@ -10,17 +10,20 @@
namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
{
[GenerateTypedNameReferences]
- public sealed partial class GhostRoleButtonsBox : BoxContainer
+ public sealed partial class GhostRolesEntry : BoxContainer
{
private SpriteSystem _spriteSystem;
public event Action? OnRoleSelected;
public event Action? OnRoleFollow;
- public GhostRoleButtonsBox(bool hasAccess, FormattedMessage? reason, IEnumerable roles, SpriteSystem spriteSystem)
+ public GhostRolesEntry(string name, string description, bool hasAccess, FormattedMessage? reason, IEnumerable roles, SpriteSystem spriteSystem)
{
RobustXamlLoader.Load(this);
_spriteSystem = spriteSystem;
+ Title.Text = name;
+ Description.SetMessage(description);
+
foreach (var role in roles)
{
var button = new GhostRoleEntryButtons(role);
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEui.cs b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEui.cs
index 1cf1e55103d..6b183362e56 100644
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEui.cs
+++ b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesEui.cs
@@ -5,6 +5,7 @@
using Content.Shared.Ghost.Roles;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
+using Robust.Shared.Utility;
namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
{
@@ -76,13 +77,6 @@ public override void HandleState(EuiStateBase state)
if (state is not GhostRolesEuiState ghostState)
return;
-
- // We must save BodyVisible state, so all Collapsible boxes will not close
- // on adding new ghost role.
- // Save the current state of each Collapsible box being visible or not
- _window.SaveCollapsibleBoxesStates();
-
- // Clearing the container before adding new roles
_window.ClearEntries();
var entityManager = IoCManager.Resolve();
@@ -90,32 +84,28 @@ public override void HandleState(EuiStateBase state)
var spriteSystem = sysManager.GetEntitySystem();
var requirementsManager = IoCManager.Resolve();
- // TODO: role.Requirements value doesn't work at all as an equality key, this must be fixed
- // Grouping roles
var groupedRoles = ghostState.GhostRoles.GroupBy(
role => (role.Name, role.Description, role.Requirements));
-
- // Add a new entry for each role group
foreach (var group in groupedRoles)
{
var name = group.Key.Name;
var description = group.Key.Description;
- var hasAccess = requirementsManager.CheckRoleRequirements(
- group.Key.Requirements,
- null,
- out var reason);
+ bool hasAccess = true;
+ FormattedMessage? reason;
+
+ if (!requirementsManager.CheckRoleRequirements(group.Key.Requirements, null, out reason))
+ {
+ hasAccess = false;
+ }
- // Adding a new role
_window.AddEntry(name, description, hasAccess, reason, group, spriteSystem);
}
- // Restore the Collapsible box state if it is saved
- _window.RestoreCollapsibleBoxesStates();
-
- // Close the rules window if it is no longer needed
var closeRulesWindow = ghostState.GhostRoles.All(role => role.Identifier != _windowRulesId);
if (closeRulesWindow)
+ {
_windowRules?.Close();
+ }
}
}
}
diff --git a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesWindow.xaml.cs b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesWindow.xaml.cs
index 627ecfe987a..2e7c99641b7 100644
--- a/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesWindow.xaml.cs
+++ b/Content.Client/UserInterface/Systems/Ghost/Controls/Roles/GhostRolesWindow.xaml.cs
@@ -1,10 +1,7 @@
-using System.Linq;
using Content.Shared.Ghost.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
-using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
-using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility;
namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
@@ -15,86 +12,20 @@ public sealed partial class GhostRolesWindow : DefaultWindow
public event Action? OnRoleRequestButtonClicked;
public event Action? OnRoleFollow;
- private Dictionary<(string name, string description), Collapsible> _collapsibleBoxes = new();
- private HashSet<(string name, string description)> _uncollapsedStates = new();
-
- public GhostRolesWindow()
- {
- RobustXamlLoader.Load(this);
- }
-
public void ClearEntries()
{
NoRolesMessage.Visible = true;
EntryContainer.DisposeAllChildren();
- _collapsibleBoxes.Clear();
- }
-
- public void SaveCollapsibleBoxesStates()
- {
- _uncollapsedStates.Clear();
- foreach (var (key, collapsible) in _collapsibleBoxes)
- {
- if (collapsible.BodyVisible)
- {
- _uncollapsedStates.Add(key);
- }
- }
- }
-
- public void RestoreCollapsibleBoxesStates()
- {
- foreach (var (key, collapsible) in _collapsibleBoxes)
- {
- collapsible.BodyVisible = _uncollapsedStates.Contains(key);
- }
}
public void AddEntry(string name, string description, bool hasAccess, FormattedMessage? reason, IEnumerable roles, SpriteSystem spriteSystem)
{
NoRolesMessage.Visible = false;
- var ghostRoleInfos = roles.ToList();
- var rolesCount = ghostRoleInfos.Count;
-
- var info = new GhostRoleInfoBox(name, description);
- var buttons = new GhostRoleButtonsBox(hasAccess, reason, ghostRoleInfos, spriteSystem);
- buttons.OnRoleSelected += OnRoleRequestButtonClicked;
- buttons.OnRoleFollow += OnRoleFollow;
-
- EntryContainer.AddChild(info);
-
- if (rolesCount > 1)
- {
- var buttonHeading = new CollapsibleHeading(Loc.GetString("ghost-roles-window-available-button", ("rolesCount", rolesCount)));
-
- buttonHeading.AddStyleClass(ContainerButton.StyleClassButton);
- buttonHeading.Label.HorizontalAlignment = HAlignment.Center;
- buttonHeading.Label.HorizontalExpand = true;
-
- var body = new CollapsibleBody
- {
- Margin = new Thickness(0, 5, 0, 0),
- };
-
- // TODO: Add Requirements to this key when it'll be fixed and work as an equality key in GhostRolesEui
- var key = (name, description);
-
- var collapsible = new Collapsible(buttonHeading, body)
- {
- Orientation = BoxContainer.LayoutOrientation.Vertical,
- Margin = new Thickness(0, 0, 0, 8),
- };
-
- body.AddChild(buttons);
-
- EntryContainer.AddChild(collapsible);
- _collapsibleBoxes.Add(key, collapsible);
- }
- else
- {
- EntryContainer.AddChild(buttons);
- }
+ var entry = new GhostRolesEntry(name, description, hasAccess, reason, roles, spriteSystem);
+ entry.OnRoleSelected += OnRoleRequestButtonClicked;
+ entry.OnRoleFollow += OnRoleFollow;
+ EntryContainer.AddChild(entry);
}
}
}
diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
index 710ee7c7cbf..1af471f28a3 100644
--- a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
+++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
@@ -157,7 +157,7 @@ public override void Update(float frameTime)
var useKey = gun.UseKey ? EngineKeyFunctions.Use : EngineKeyFunctions.UseSecondary;
- if (_inputSystem.CmdStates.GetState(useKey) != BoundKeyState.Down && !gun.BurstActivated)
+ if (_inputSystem.CmdStates.GetState(useKey) != BoundKeyState.Down)
{
if (gun.ShotCounter != 0)
EntityManager.RaisePredictiveEvent(new RequestStopShootEvent { Gun = GetNetEntity(gunUid) });
diff --git a/Content.Server/Abilities/Mime/MimePowersSystem.cs b/Content.Server/Abilities/Mime/MimePowersSystem.cs
index 9467b72fcab..2839952e165 100644
--- a/Content.Server/Abilities/Mime/MimePowersSystem.cs
+++ b/Content.Server/Abilities/Mime/MimePowersSystem.cs
@@ -165,8 +165,8 @@ public void RetakeVow(EntityUid uid, MimePowersComponent? mimePowers = null)
mimePowers.ReadyToRepent = false;
mimePowers.VowBroken = false;
AddComp(uid);
- _alertsSystem.ClearAlert(uid, mimePowers.VowBrokenAlert);
- _alertsSystem.ShowAlert(uid, mimePowers.VowAlert);
+ _alertsSystem.ClearAlert(uid, mimePowers.VowAlert);
+ _alertsSystem.ShowAlert(uid, mimePowers.VowBrokenAlert);
_actionsSystem.AddAction(uid, ref mimePowers.InvisibleWallActionEntity, mimePowers.InvisibleWallAction, uid);
}
}
diff --git a/Content.Server/Administration/Toolshed/TagCommand.cs b/Content.Server/Administration/Toolshed/TagCommand.cs
index 4c6f790e493..e1cf53e1b1a 100644
--- a/Content.Server/Administration/Toolshed/TagCommand.cs
+++ b/Content.Server/Administration/Toolshed/TagCommand.cs
@@ -25,16 +25,6 @@ public IEnumerable> List([PipedArgument] IEnumerable With(
- [CommandInvocationContext] IInvocationContext ctx,
- [PipedArgument] IEnumerable entities,
- [CommandArgument] ValueRef> tag)
- {
- _tag ??= GetSys();
- return entities.Where(e => _tag.HasTag(e, tag.Evaluate(ctx)!));
- }
-
[CommandImplementation("add")]
public EntityUid Add(
[CommandInvocationContext] IInvocationContext ctx,
diff --git a/Content.Server/Alert/ServerAlertsSystem.cs b/Content.Server/Alert/ServerAlertsSystem.cs
index 5af2b062188..b7b80f73210 100644
--- a/Content.Server/Alert/ServerAlertsSystem.cs
+++ b/Content.Server/Alert/ServerAlertsSystem.cs
@@ -1,19 +1,7 @@
using Content.Shared.Alert;
-using Robust.Shared.GameStates;
namespace Content.Server.Alert;
internal sealed class ServerAlertsSystem : AlertsSystem
{
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnGetState);
- }
-
- private void OnGetState(Entity alerts, ref ComponentGetState args)
- {
- args.State = new AlertComponentState(alerts.Comp.Alerts);
- }
}
diff --git a/Content.Server/Antag/AntagSelectionSystem.cs b/Content.Server/Antag/AntagSelectionSystem.cs
index 610c0ad182a..224629ff2e5 100644
--- a/Content.Server/Antag/AntagSelectionSystem.cs
+++ b/Content.Server/Antag/AntagSelectionSystem.cs
@@ -55,8 +55,6 @@ public override void Initialize()
{
base.Initialize();
- Log.Level = LogLevel.Debug;
-
SubscribeLocalEvent(OnTakeGhostRole);
SubscribeLocalEvent(OnObjectivesTextGetInfo);
@@ -362,8 +360,6 @@ public void MakeAntag(Entity ent, ICommonSession? sessi
_role.MindAddRoles(curMind.Value, def.MindRoles, null, true);
ent.Comp.SelectedMinds.Add((curMind.Value, Name(player)));
SendBriefing(session, def.Briefing);
-
- Log.Debug($"Selected {ToPrettyString(curMind)} as antagonist: {ToPrettyString(ent)}");
}
var afterEv = new AfterAntagEntitySelectedEvent(session, player, ent, def);
diff --git a/Content.Server/Botany/Systems/PlantHolderSystem.cs b/Content.Server/Botany/Systems/PlantHolderSystem.cs
index 271acb606a4..34d6a75bf25 100644
--- a/Content.Server/Botany/Systems/PlantHolderSystem.cs
+++ b/Content.Server/Botany/Systems/PlantHolderSystem.cs
@@ -680,10 +680,7 @@ public bool DoHarvest(EntityUid plantholder, EntityUid user, PlantHolderComponen
if (TryComp(user, out var hands))
{
if (!_botany.CanHarvest(component.Seed, hands.ActiveHandEntity))
- {
- _popup.PopupCursor(Loc.GetString("plant-holder-component-ligneous-cant-harvest-message"), user);
return false;
- }
}
else if (!_botany.CanHarvest(component.Seed))
{
diff --git a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs
index 81f60d41faf..cd422328c3e 100644
--- a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs
+++ b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs
@@ -422,7 +422,6 @@ private void OnUiMessage(EntityUid uid, CartridgeLoaderComponent component, Cart
{
var cartridgeEvent = args.MessageEvent;
cartridgeEvent.LoaderUid = GetNetEntity(uid);
- cartridgeEvent.Actor = args.Actor;
RelayEvent(component, cartridgeEvent, true);
}
diff --git a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs
index eb2039604af..c5c45daa5bd 100644
--- a/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs
+++ b/Content.Server/Chemistry/EntitySystems/InjectorSystem.cs
@@ -13,7 +13,6 @@
using Content.Shared.Interaction;
using Content.Shared.Mobs.Components;
using Content.Shared.Stacks;
-using Content.Shared.Nutrition.EntitySystems;
namespace Content.Server.Chemistry.EntitySystems;
@@ -21,7 +20,6 @@ public sealed class InjectorSystem : SharedInjectorSystem
{
[Dependency] private readonly BloodstreamSystem _blood = default!;
[Dependency] private readonly ReactiveSystem _reactiveSystem = default!;
- [Dependency] private readonly OpenableSystem _openable = default!;
public override void Initialize()
{
@@ -33,14 +31,13 @@ public override void Initialize()
private bool TryUseInjector(Entity injector, EntityUid target, EntityUid user)
{
- var isOpenOrIgnored = injector.Comp.IgnoreClosed || !_openable.IsClosed(target);
// Handle injecting/drawing for solutions
if (injector.Comp.ToggleState == InjectorToggleMode.Inject)
{
- if (isOpenOrIgnored && SolutionContainers.TryGetInjectableSolution(target, out var injectableSolution, out _))
+ if (SolutionContainers.TryGetInjectableSolution(target, out var injectableSolution, out _))
return TryInject(injector, target, injectableSolution.Value, user, false);
- if (isOpenOrIgnored && SolutionContainers.TryGetRefillableSolution(target, out var refillableSolution, out _))
+ if (SolutionContainers.TryGetRefillableSolution(target, out var refillableSolution, out _))
return TryInject(injector, target, refillableSolution.Value, user, true);
if (TryComp(target, out var bloodstream))
@@ -61,7 +58,7 @@ private bool TryUseInjector(Entity injector, EntityUid target
}
// Draw from an object (food, beaker, etc)
- if (isOpenOrIgnored && SolutionContainers.TryGetDrawableSolution(target, out var drawableSolution, out _))
+ if (SolutionContainers.TryGetDrawableSolution(target, out var drawableSolution, out _))
return TryDraw(injector, target, drawableSolution.Value, user);
Popup.PopupEntity(Loc.GetString("injector-component-cannot-draw-message",
diff --git a/Content.Server/Clothing/Systems/CursedMaskSystem.cs b/Content.Server/Clothing/Systems/CursedMaskSystem.cs
index 86d4e801a8b..825e85e2c60 100644
--- a/Content.Server/Clothing/Systems/CursedMaskSystem.cs
+++ b/Content.Server/Clothing/Systems/CursedMaskSystem.cs
@@ -51,8 +51,7 @@ protected override void TryTakeover(Entity ent, EntityUid w
}
var npcFaction = EnsureComp(wearer);
- ent.Comp.OldFactions.Clear();
- ent.Comp.OldFactions.UnionWith(npcFaction.Factions);
+ ent.Comp.OldFactions = npcFaction.Factions;
_npcFaction.ClearFactions((wearer, npcFaction), false);
_npcFaction.AddFaction((wearer, npcFaction), ent.Comp.CursedMaskFaction);
diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs
index 3806241e345..c85b774e381 100644
--- a/Content.Server/Database/ServerDbBase.cs
+++ b/Content.Server/Database/ServerDbBase.cs
@@ -512,23 +512,16 @@ public abstract Task> GetServerRoleBansAsync(IPAddress? a
public async Task EditServerRoleBan(int id, string reason, NoteSeverity severity, DateTimeOffset? expiration, Guid editedBy, DateTimeOffset editedAt)
{
await using var db = await GetDb();
- var roleBanDetails = await db.DbContext.RoleBan
- .Where(b => b.Id == id)
- .Select(b => new { b.BanTime, b.PlayerUserId })
- .SingleOrDefaultAsync();
- if (roleBanDetails == default)
+ var ban = await db.DbContext.RoleBan.SingleOrDefaultAsync(b => b.Id == id);
+ if (ban is null)
return;
-
- await db.DbContext.RoleBan
- .Where(b => b.BanTime == roleBanDetails.BanTime && b.PlayerUserId == roleBanDetails.PlayerUserId)
- .ExecuteUpdateAsync(setters => setters
- .SetProperty(b => b.Severity, severity)
- .SetProperty(b => b.Reason, reason)
- .SetProperty(b => b.ExpirationTime, expiration.HasValue ? expiration.Value.UtcDateTime : (DateTime?)null)
- .SetProperty(b => b.LastEditedById, editedBy)
- .SetProperty(b => b.LastEditedAt, editedAt.UtcDateTime)
- );
+ ban.Severity = severity;
+ ban.Reason = reason;
+ ban.ExpirationTime = expiration?.UtcDateTime;
+ ban.LastEditedById = editedBy;
+ ban.LastEditedAt = editedAt.UtcDateTime;
+ await db.DbContext.SaveChangesAsync();
}
#endregion
diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
index 950795fc05e..1987613763b 100644
--- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
+++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
@@ -41,8 +41,6 @@ public override void Initialize()
{
base.Initialize();
- Log.Level = LogLevel.Debug;
-
SubscribeLocalEvent(AfterEntitySelected);
SubscribeLocalEvent(OnObjectivesTextPrepend);
}
@@ -55,7 +53,6 @@ protected override void Added(EntityUid uid, TraitorRuleComponent component, Gam
private void AfterEntitySelected(Entity ent, ref AfterAntagEntitySelectedEvent args)
{
- Log.Debug($"AfterAntagEntitySelected {ToPrettyString(ent)}");
MakeTraitor(args.EntityUid, ent);
}
@@ -81,22 +78,14 @@ public string[] GenerateTraitorCodewords(TraitorRuleComponent component)
public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
{
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - start");
-
//Grab the mind if it wasn't provided
if (!_mindSystem.TryGetMind(traitor, out var mindId, out var mind))
- {
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - failed, no Mind found");
return false;
- }
var briefing = "";
if (component.GiveCodewords)
- {
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - added codewords flufftext to briefing");
briefing = Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", component.Codewords)));
- }
var issuer = _random.Pick(_prototypeManager.Index(component.ObjectiveIssuers).Values);
@@ -105,7 +94,6 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
if (component.GiveUplink)
{
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink start");
// Calculate the amount of currency on the uplink.
var startingBalance = component.StartingBalance;
if (_jobs.MindTryGetJob(mindId, out var prototype))
@@ -117,27 +105,18 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
}
// Choose and generate an Uplink, and return the uplink code if applicable
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink request start");
var uplinkParams = RequestUplink(traitor, startingBalance, briefing);
code = uplinkParams.Item1;
briefing = uplinkParams.Item2;
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink request completed");
}
string[]? codewords = null;
if (component.GiveCodewords)
- {
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - set codewords from component");
codewords = component.Codewords;
- }
if (component.GiveBriefing)
- {
_antag.SendBriefing(traitor, GenerateBriefing(codewords, code, issuer), null, component.GreetSoundNotification);
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Sent the Briefing");
- }
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Adding TraitorMind");
component.TraitorMinds.Add(mindId);
// Assign briefing
@@ -147,14 +126,9 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
_roleSystem.MindHasRole(mindId, out var traitorRole);
if (traitorRole is not null)
{
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Add traitor briefing components");
AddComp(traitorRole.Value.Owner);
Comp(traitorRole.Value.Owner).Briefing = briefing;
}
- else
- {
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - did not get traitor briefing");
- }
// Send codewords to only the traitor client
var color = TraitorCodewordColor; // Fall back to a dark red Syndicate color if a prototype is not found
@@ -163,11 +137,9 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
_roleCodewordSystem.SetRoleCodewords(codewordComp, "traitor", component.Codewords.ToList(), color);
// Change the faction
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Change faction");
_npcFaction.RemoveFaction(traitor, component.NanoTrasenFaction, false);
_npcFaction.AddFaction(traitor, component.SyndicateFaction);
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Finished");
return true;
}
@@ -176,12 +148,10 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
var pda = _uplink.FindUplinkTarget(traitor);
Note[]? code = null;
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink add");
var uplinked = _uplink.AddUplink(traitor, startingBalance, pda, true);
if (pda is not null && uplinked)
{
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink is PDA");
// Codes are only generated if the uplink is a PDA
code = EnsureComp(pda.Value).Code;
@@ -193,7 +163,6 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
}
else if (pda is null && uplinked)
{
- Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink is implant");
briefing += "\n" + Loc.GetString("traitor-role-uplink-implant-short");
}
@@ -203,8 +172,7 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component)
// TODO: AntagCodewordsComponent
private void OnObjectivesTextPrepend(EntityUid uid, TraitorRuleComponent comp, ref ObjectivesTextPrependEvent args)
{
- if(comp.GiveCodewords)
- args.Text += "\n" + Loc.GetString("traitor-round-end-codewords", ("codewords", string.Join(", ", comp.Codewords)));
+ args.Text += "\n" + Loc.GetString("traitor-round-end-codewords", ("codewords", string.Join(", ", comp.Codewords)));
}
// TODO: figure out how to handle this? add priority to briefing event?
diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs
index 26fa5ca3cc8..c3d41cead6d 100644
--- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs
+++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Vape.cs
@@ -122,7 +122,8 @@ private void OnVapeInteraction(Entity entity, ref AfterInteractEv
private void OnVapeDoAfter(Entity entity, ref VapeDoAfterEvent args)
{
- if (args.Cancelled || args.Handled || args.Args.Target == null)
+ if (args.Handled
+ || args.Args.Target == null)
return;
var environment = _atmos.GetContainingMixture(args.Args.Target.Value, true, true);
diff --git a/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs b/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs
index 27769721ffd..f0da85ce453 100644
--- a/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs
+++ b/Content.Server/Nyanotrasen/Psionics/Glimmer/PassiveGlimmerReductionSystem.cs
@@ -1,7 +1,7 @@
using Robust.Shared.Random;
using Robust.Shared.Timing;
using Robust.Shared.Configuration;
-using Content.Shared.DeltaV.CCVars;
+using Content.Shared.CCVar;
using Content.Shared.Psionics.Glimmer;
using Content.Shared.GameTicking;
using Content.Server.CartridgeLoader.Cartridges;
@@ -34,7 +34,7 @@ public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnRoundRestartCleanup);
- _cfg.OnValueChanged(DCCVars.GlimmerLostPerSecond, UpdatePassiveGlimmer, true);
+ _cfg.OnValueChanged(CCVars.GlimmerLostPerSecond, UpdatePassiveGlimmer, true);
}
private void OnRoundRestartCleanup(RoundRestartCleanupEvent args)
diff --git a/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs b/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs
index fa078159741..6519d519aa9 100644
--- a/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs
+++ b/Content.Server/Nyanotrasen/Psionics/PsionicsSystem.cs
@@ -4,8 +4,8 @@
using Content.Shared.Psionics.Glimmer;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared.Damage.Events;
-using Content.Shared.DeltaV.CCVars;
using Content.Shared.IdentityManagement;
+using Content.Shared.CCVar;
using Content.Server.Abilities.Psionics;
using Content.Server.Chat.Systems;
using Content.Server.Electrocution;
@@ -137,7 +137,7 @@ public bool TryMakePsionic(Entity ent)
if (HasComp(ent))
return false;
- if (!_cfg.GetCVar(DCCVars.PsionicRollsEnabled))
+ if (!_cfg.GetCVar(CCVars.PsionicRollsEnabled))
return false;
var warn = CompOrNull(ent)?.Warn ?? true;
diff --git a/Content.Server/Polymorph/Systems/PolymorphSystem.cs b/Content.Server/Polymorph/Systems/PolymorphSystem.cs
index c9a71c53584..daff200982d 100644
--- a/Content.Server/Polymorph/Systems/PolymorphSystem.cs
+++ b/Content.Server/Polymorph/Systems/PolymorphSystem.cs
@@ -199,9 +199,6 @@ private void OnDestruction(Entity ent, ref Destructi
var targetTransformComp = Transform(uid);
- if (configuration.PolymorphSound != null)
- _audio.PlayPvs(configuration.PolymorphSound, targetTransformComp.Coordinates);
-
var child = Spawn(configuration.Entity, _transform.GetMapCoordinates(uid, targetTransformComp), rotation: _transform.GetWorldRotation(uid));
MakeSentientCommand.MakeSentient(child, EntityManager);
@@ -291,9 +288,6 @@ private void OnDestruction(Entity ent, ref Destructi
var uidXform = Transform(uid);
var parentXform = Transform(parent);
- if (component.Configuration.ExitPolymorphSound != null)
- _audio.PlayPvs(component.Configuration.ExitPolymorphSound, uidXform.Coordinates);
-
_transform.SetParent(parent, parentXform, uidXform.ParentUid);
_transform.SetCoordinates(parent, parentXform, uidXform.Coordinates, uidXform.LocalRotation);
diff --git a/Content.Server/Procedural/DungeonJob/DungeonJob.PostGenBiome.cs b/Content.Server/Procedural/DungeonJob/DungeonJob.PostGenBiome.cs
index fdadcb7849d..65f6d2d14f9 100644
--- a/Content.Server/Procedural/DungeonJob/DungeonJob.PostGenBiome.cs
+++ b/Content.Server/Procedural/DungeonJob/DungeonJob.PostGenBiome.cs
@@ -1,6 +1,5 @@
using System.Threading.Tasks;
using Content.Server.Parallax;
-using Content.Shared.Maps;
using Content.Shared.Parallax.Biomes;
using Content.Shared.Procedural;
using Content.Shared.Procedural.PostGeneration;
@@ -16,35 +15,27 @@ public sealed partial class DungeonJob
///
private async Task PostGen(BiomeDunGen dunGen, DungeonData data, Dungeon dungeon, HashSet reservedTiles, Random random)
{
- if (!_prototype.TryIndex(dunGen.BiomeTemplate, out var indexedBiome))
+ if (_entManager.TryGetComponent(_gridUid, out BiomeComponent? biomeComp))
return;
+ biomeComp = _entManager.AddComponent(_gridUid);
var biomeSystem = _entManager.System();
-
+ biomeSystem.SetTemplate(_gridUid, biomeComp, _prototype.Index(dunGen.BiomeTemplate));
var seed = random.Next();
var xformQuery = _entManager.GetEntityQuery();
- var tiles = _maps.GetAllTilesEnumerator(_gridUid, _grid);
- while (tiles.MoveNext(out var tileRef))
+ foreach (var node in dungeon.RoomTiles)
{
- var node = tileRef.Value.GridIndices;
-
if (reservedTiles.Contains(node))
continue;
-
- if (dunGen.TileMask is not null)
- {
- if (!dunGen.TileMask.Contains(((ContentTileDefinition) _tileDefManager[tileRef.Value.Tile.TypeId]).ID))
- continue;
- }
// Need to set per-tile to override data.
- if (biomeSystem.TryGetTile(node, indexedBiome.Layers, seed, _grid, out var tile))
+ if (biomeSystem.TryGetTile(node, biomeComp.Layers, seed, _grid, out var tile))
{
_maps.SetTile(_gridUid, _grid, node, tile.Value);
}
- if (biomeSystem.TryGetDecals(node, indexedBiome.Layers, seed, _grid, out var decals))
+ if (biomeSystem.TryGetDecals(node, biomeComp.Layers, seed, _grid, out var decals))
{
foreach (var decal in decals)
{
@@ -52,7 +43,7 @@ private async Task PostGen(BiomeDunGen dunGen, DungeonData data, Dungeon dungeon
}
}
- if (tile is not null && biomeSystem.TryGetEntity(node, indexedBiome.Layers, tile.Value, seed, _grid, out var entityProto))
+ if (biomeSystem.TryGetEntity(node, biomeComp, _grid, out var entityProto))
{
var ent = _entManager.SpawnEntity(entityProto, new EntityCoordinates(_gridUid, node + _grid.TileSizeHalfVector));
var xform = xformQuery.Get(ent);
@@ -70,5 +61,7 @@ private async Task PostGen(BiomeDunGen dunGen, DungeonData data, Dungeon dungeon
if (!ValidateResume())
return;
}
+
+ biomeComp.Enabled = false;
}
}
diff --git a/Content.Server/Research/Disk/ResearchDiskSystem.cs b/Content.Server/Research/Disk/ResearchDiskSystem.cs
index 4d65c19f6e2..d32c49ce6fe 100644
--- a/Content.Server/Research/Disk/ResearchDiskSystem.cs
+++ b/Content.Server/Research/Disk/ResearchDiskSystem.cs
@@ -31,7 +31,6 @@ private void OnAfterInteract(EntityUid uid, ResearchDiskComponent component, Aft
_research.ModifyServerPoints(args.Target.Value, component.Points, server);
_popupSystem.PopupEntity(Loc.GetString("research-disk-inserted", ("points", component.Points)), args.Target.Value, args.User);
EntityManager.QueueDeleteEntity(uid);
- args.Handled = true;
}
private void OnMapInit(EntityUid uid, ResearchDiskComponent component, MapInitEvent args)
diff --git a/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs b/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs
deleted file mode 100644
index d1a32a6a5ba..00000000000
--- a/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using Content.Server.Inventory;
-using Content.Server.Radio.Components;
-using Content.Shared.Inventory;
-using Content.Shared.Silicons.Borgs;
-using Content.Shared.Silicons.Borgs.Components;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Utility;
-
-namespace Content.Server.Silicons.Borgs;
-
-///
-/// Server-side logic for borg type switching. Handles more heavyweight and server-specific switching logic.
-///
-public sealed class BorgSwitchableTypeSystem : SharedBorgSwitchableTypeSystem
-{
- [Dependency] private readonly BorgSystem _borgSystem = default!;
- [Dependency] private readonly ServerInventorySystem _inventorySystem = default!;
-
- protected override void SelectBorgModule(Entity ent, ProtoId borgType)
- {
- var prototype = Prototypes.Index(borgType);
-
- // Assign radio channels
- string[] radioChannels = [.. ent.Comp.InherentRadioChannels, .. prototype.RadioChannels];
- if (TryComp(ent, out IntrinsicRadioTransmitterComponent? transmitter))
- transmitter.Channels = [.. radioChannels];
-
- if (TryComp(ent, out ActiveRadioComponent? activeRadio))
- activeRadio.Channels = [.. radioChannels];
-
- // Borg transponder for the robotics console
- if (TryComp(ent, out BorgTransponderComponent? transponder))
- {
- _borgSystem.SetTransponderSprite(
- (ent.Owner, transponder),
- new SpriteSpecifier.Rsi(new ResPath("Mobs/Silicon/chassis.rsi"), prototype.SpriteBodyState));
-
- _borgSystem.SetTransponderName(
- (ent.Owner, transponder),
- Loc.GetString($"borg-type-{borgType}-transponder"));
- }
-
- // Configure modules
- if (TryComp(ent, out BorgChassisComponent? chassis))
- {
- var chassisEnt = (ent.Owner, chassis);
- _borgSystem.SetMaxModules(
- chassisEnt,
- prototype.ExtraModuleCount + prototype.DefaultModules.Length);
-
- _borgSystem.SetModuleWhitelist(chassisEnt, prototype.ModuleWhitelist);
-
- foreach (var module in prototype.DefaultModules)
- {
- var moduleEntity = Spawn(module);
- var borgModule = Comp(moduleEntity);
- _borgSystem.SetBorgModuleDefault((moduleEntity, borgModule), true);
- _borgSystem.InsertModule(chassisEnt, moduleEntity);
- }
- }
-
- // Configure special components
- if (Prototypes.TryIndex(ent.Comp.SelectedBorgType, out var previousPrototype))
- {
- if (previousPrototype.AddComponents is { } removeComponents)
- EntityManager.RemoveComponents(ent, removeComponents);
- }
-
- if (prototype.AddComponents is { } addComponents)
- {
- EntityManager.AddComponents(ent, addComponents);
- }
-
- // Configure inventory template (used for hat spacing)
- if (TryComp(ent, out InventoryComponent? inventory))
- {
- _inventorySystem.SetTemplateId((ent.Owner, inventory), prototype.InventoryTemplateId);
- }
-
- base.SelectBorgModule(ent, borgType);
- }
-}
diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs
index f95a5807360..d5a429db030 100644
--- a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs
+++ b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs
@@ -2,7 +2,6 @@
using Content.Shared.Hands.Components;
using Content.Shared.Interaction.Components;
using Content.Shared.Silicons.Borgs.Components;
-using Content.Shared.Whitelist;
using Robust.Shared.Containers;
namespace Content.Server.Silicons.Borgs;
@@ -301,24 +300,6 @@ public bool CanInsertModule(EntityUid uid, EntityUid module, BorgChassisComponen
return true;
}
- ///
- /// Check if a module can be removed from a borg.
- ///
- /// The borg that the module is being removed from.
- /// The module to remove from the borg.
- /// The user attempting to remove the module.
- /// True if the module can be removed.
- public bool CanRemoveModule(
- Entity borg,
- Entity module,
- EntityUid? user = null)
- {
- if (module.Comp.DefaultModule)
- return false;
-
- return true;
- }
-
///
/// Installs and activates all modules currently inside the borg's module container
///
@@ -388,24 +369,4 @@ public void UninstallModule(EntityUid uid, EntityUid module, BorgChassisComponen
var ev = new BorgModuleUninstalledEvent(uid);
RaiseLocalEvent(module, ref ev);
}
-
- ///
- /// Sets .
- ///
- /// The borg to modify.
- /// The new max module count.
- public void SetMaxModules(Entity ent, int maxModules)
- {
- ent.Comp.MaxModules = maxModules;
- }
-
- ///
- /// Sets .
- ///
- /// The borg to modify.
- /// The new module whitelist.
- public void SetModuleWhitelist(Entity ent, EntityWhitelist? whitelist)
- {
- ent.Comp.ModuleWhitelist = whitelist;
- }
}
diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs
index b4ba1400441..781f847be35 100644
--- a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs
+++ b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs
@@ -8,7 +8,6 @@
using Content.Server.DeviceNetwork.Components;
using Content.Server.DeviceNetwork.Systems;
using Content.Server.Explosion.Components;
-using Robust.Shared.Utility;
namespace Content.Server.Silicons.Borgs;
@@ -135,20 +134,4 @@ private bool CheckEmagged(EntityUid uid, string name)
return false;
}
-
- ///
- /// Sets .
- ///
- public void SetTransponderSprite(Entity ent, SpriteSpecifier sprite)
- {
- ent.Comp.Sprite = sprite;
- }
-
- ///
- /// Sets .
- ///
- public void SetTransponderName(Entity ent, string name)
- {
- ent.Comp.Name = name;
- }
}
diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs
index 40c2c3bf332..d0e9f80e364 100644
--- a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs
+++ b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs
@@ -82,9 +82,6 @@ private void OnRemoveModuleBuiMessage(EntityUid uid, BorgChassisComponent compon
if (!component.ModuleContainer.Contains(module))
return;
- if (!CanRemoveModule((uid, component), (module, Comp(module)), args.Actor))
- return;
-
_adminLog.Add(LogType.Action, LogImpact.Medium,
$"{ToPrettyString(args.Actor):player} removed module {ToPrettyString(module)} from borg {ToPrettyString(uid)}");
_container.Remove(module, component.ModuleContainer);
diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs
index ff204bfa8ce..bd85282a0f5 100644
--- a/Content.Server/Silicons/Borgs/BorgSystem.cs
+++ b/Content.Server/Silicons/Borgs/BorgSystem.cs
@@ -129,7 +129,7 @@ private void OnChassisInteractUsing(EntityUid uid, BorgChassisComponent componen
if (module != null && CanInsertModule(uid, used, component, module, args.User))
{
- InsertModule((uid, component), used);
+ _container.Insert(used, component.ModuleContainer);
_adminLog.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(args.User):player} installed module {ToPrettyString(used)} into borg {ToPrettyString(uid)}");
args.Handled = true;
@@ -137,19 +137,6 @@ private void OnChassisInteractUsing(EntityUid uid, BorgChassisComponent componen
}
}
- ///
- /// Inserts a new module into a borg, the same as if a player inserted it manually.
- ///
- ///
- /// This does not run checks to see if the borg is actually allowed to be inserted, such as whitelists.
- ///
- /// The borg to insert into.
- /// The module to insert.
- public void InsertModule(Entity ent, EntityUid module)
- {
- _container.Insert(module, ent.Comp.ModuleContainer);
- }
-
// todo: consider transferring over the ghost role? managing that might suck.
protected override void OnInserted(EntityUid uid, BorgChassisComponent component, EntInsertedIntoContainerMessage args)
{
diff --git a/Content.Server/Silicons/Laws/SiliconLawEui.cs b/Content.Server/Silicons/Laws/SiliconLawEui.cs
index 9fd639e9b3d..d5a5c4f4091 100644
--- a/Content.Server/Silicons/Laws/SiliconLawEui.cs
+++ b/Content.Server/Silicons/Laws/SiliconLawEui.cs
@@ -1,4 +1,4 @@
-using Content.Server.Administration.Managers;
+using Content.Server.Administration.Managers;
using Content.Server.EUI;
using Content.Shared.Administration;
using Content.Shared.Eui;
@@ -52,8 +52,8 @@ public override void HandleMessage(EuiMessageBase msg)
return;
var player = _entityManager.GetEntity(message.Target);
- if (_entityManager.TryGetComponent(player, out var playerProviderComp))
- _siliconLawSystem.SetLaws(message.Laws, player, playerProviderComp.LawUploadSound);
+
+ _siliconLawSystem.SetLaws(message.Laws, player);
}
private bool IsAllowed()
diff --git a/Content.Server/Silicons/Laws/SiliconLawSystem.cs b/Content.Server/Silicons/Laws/SiliconLawSystem.cs
index 9a361132a5c..0070beb6ef9 100644
--- a/Content.Server/Silicons/Laws/SiliconLawSystem.cs
+++ b/Content.Server/Silicons/Laws/SiliconLawSystem.cs
@@ -21,8 +21,6 @@
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Toolshed;
-using Robust.Shared.Audio;
-using Robust.Shared.GameObjects;
namespace Content.Server.Silicons.Laws;
@@ -115,7 +113,7 @@ private void OnIonStormLaws(EntityUid uid, SiliconLawProviderComponent component
component.Lawset = args.Lawset;
// gotta tell player to check their laws
- NotifyLawsChanged(uid, component.LawUploadSound);
+ NotifyLawsChanged(uid);
// new laws may allow antagonist behaviour so make it clear for admins
if (TryComp(uid, out var emag))
@@ -151,11 +149,14 @@ protected override void OnGotEmagged(EntityUid uid, EmagSiliconLawComponent comp
return;
base.OnGotEmagged(uid, component, ref args);
- NotifyLawsChanged(uid, component.EmaggedSound);
+ NotifyLawsChanged(uid);
EnsureEmaggedRole(uid, component);
_stunSystem.TryParalyze(uid, component.StunTime, true);
+ if (!_mind.TryGetMind(uid, out var mindId, out _))
+ return;
+ _roles.MindPlaySound(mindId, component.EmaggedSound);
}
private void OnEmagMindAdded(EntityUid uid, EmagSiliconLawComponent component, MindAddedMessage args)
@@ -236,7 +237,7 @@ public SiliconLawset GetLaws(EntityUid uid, SiliconLawBoundComponent? component
return ev.Laws;
}
- public void NotifyLawsChanged(EntityUid uid, SoundSpecifier? cue = null)
+ public void NotifyLawsChanged(EntityUid uid)
{
if (!TryComp(uid, out var actor))
return;
@@ -244,9 +245,6 @@ public void NotifyLawsChanged(EntityUid uid, SoundSpecifier? cue = null)
var msg = Loc.GetString("laws-update-notify");
var wrappedMessage = Loc.GetString("chat-manager-server-wrap-message", ("message", msg));
_chatManager.ChatMessageToOne(ChatChannel.Server, msg, wrappedMessage, default, false, actor.PlayerSession.Channel, colorOverride: Color.Red);
-
- if (cue != null && _mind.TryGetMind(uid, out var mindId, out _))
- _roles.MindPlaySound(mindId, cue);
}
///
@@ -271,7 +269,7 @@ public SiliconLawset GetLawset(ProtoId lawset)
///
/// Set the laws of a silicon entity while notifying the player.
///
- public void SetLaws(List newLaws, EntityUid target, SoundSpecifier? cue = null)
+ public void SetLaws(List newLaws, EntityUid target)
{
if (!TryComp(target, out var component))
return;
@@ -280,7 +278,7 @@ public void SetLaws(List newLaws, EntityUid target, SoundSpecifier?
component.Lawset = new SiliconLawset();
component.Lawset.Laws = newLaws;
- NotifyLawsChanged(target, cue);
+ NotifyLawsChanged(target);
}
protected override void OnUpdaterInsert(Entity ent, ref EntInsertedIntoContainerMessage args)
@@ -294,7 +292,9 @@ protected override void OnUpdaterInsert(Entity ent,
while (query.MoveNext(out var update))
{
- SetLaws(lawset, update, provider.LawUploadSound);
+ SetLaws(lawset, update);
+ if (provider.LawUploadSound != null && _mind.TryGetMind(update, out var mindId, out _))
+ _roles.MindPlaySound(mindId, provider.LawUploadSound);
}
}
}
diff --git a/Content.Server/Silicons/StationAi/StationAiSystem.cs b/Content.Server/Silicons/StationAi/StationAiSystem.cs
index a10833dc63b..846497387d2 100644
--- a/Content.Server/Silicons/StationAi/StationAiSystem.cs
+++ b/Content.Server/Silicons/StationAi/StationAiSystem.cs
@@ -1,11 +1,10 @@
using System.Linq;
using Content.Server.Chat.Managers;
+using Content.Server.Chat.Systems;
using Content.Shared.Chat;
-using Content.Shared.Mind;
-using Content.Shared.Roles;
using Content.Shared.Silicons.StationAi;
using Content.Shared.StationAi;
-using Robust.Shared.Audio;
+using Robust.Shared.Audio.Systems;
using Robust.Shared.Map.Components;
using Robust.Shared.Player;
@@ -15,8 +14,6 @@ public sealed class StationAiSystem : SharedStationAiSystem
{
[Dependency] private readonly IChatManager _chats = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
- [Dependency] private readonly SharedMindSystem _mind = default!;
- [Dependency] private readonly SharedRoleSystem _roles = default!;
private readonly HashSet> _ais = new();
@@ -46,19 +43,6 @@ public override bool SetWhitelistEnabled(Entity ent
return true;
}
- public override void AnnounceIntellicardUsage(EntityUid uid, SoundSpecifier? cue = null)
- {
- if (!TryComp(uid, out var actor))
- return;
-
- var msg = Loc.GetString("ai-consciousness-download-warning");
- var wrappedMessage = Loc.GetString("chat-manager-server-wrap-message", ("message", msg));
- _chats.ChatMessageToOne(ChatChannel.Server, msg, wrappedMessage, default, false, actor.PlayerSession.Channel, colorOverride: Color.Red);
-
- if (cue != null && _mind.TryGetMind(uid, out var mindId, out _))
- _roles.MindPlaySound(mindId, cue);
- }
-
private void AnnounceSnip(EntityUid entity)
{
var xform = Transform(entity);
diff --git a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs
index f828139ed6f..1ada60e1d64 100644
--- a/Content.Server/Singularity/EntitySystems/EmitterSystem.cs
+++ b/Content.Server/Singularity/EntitySystems/EmitterSystem.cs
@@ -196,8 +196,7 @@ public void SwitchOn(EntityUid uid, EmitterComponent component)
if (TryComp(uid, out var apcReceiver))
{
apcReceiver.Load = component.PowerUseActive;
- if (apcReceiver.Powered)
- PowerOn(uid, component);
+ PowerOn(uid, component);
}
// Do not directly PowerOn().
// OnReceivedPowerChanged will get fired due to DrawRate change which will turn it on.
diff --git a/Content.Server/StationEvents/EventManagerSystem.cs b/Content.Server/StationEvents/EventManagerSystem.cs
index 49059deeefe..cde25d2762b 100644
--- a/Content.Server/StationEvents/EventManagerSystem.cs
+++ b/Content.Server/StationEvents/EventManagerSystem.cs
@@ -3,7 +3,6 @@
using Content.Server.RoundEnd;
using Content.Server.StationEvents.Components;
using Content.Shared.CCVar;
-using Content.Shared.DeltaV.CCVars; // DeltaV
using Robust.Server.Player;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
@@ -273,7 +272,7 @@ private bool CanRun(EntityPrototype prototype, StationEventComponent stationEven
// Nyano - Summary: - Begin modified code block: check for glimmer events.
// This could not be cleanly done anywhere else.
- if (_configurationManager.GetCVar(DCCVars.GlimmerEnabled) &&
+ if (_configurationManager.GetCVar(CCVars.GlimmerEnabled) &&
prototype.TryGetComponent(out var glimmerEvent) &&
(_glimmer.Glimmer < glimmerEvent.MinimumGlimmer ||
_glimmer.Glimmer > glimmerEvent.MaximumGlimmer))
diff --git a/Content.Server/Thief/Systems/ThiefBeaconSystem.cs b/Content.Server/Thief/Systems/ThiefBeaconSystem.cs
index 4c65ba5c449..de1c3d2e6d1 100644
--- a/Content.Server/Thief/Systems/ThiefBeaconSystem.cs
+++ b/Content.Server/Thief/Systems/ThiefBeaconSystem.cs
@@ -20,6 +20,7 @@ public sealed class ThiefBeaconSystem : EntitySystem
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly MindSystem _mind = default!;
[Dependency] private readonly SharedRoleSystem _roles = default!;
+
public override void Initialize()
{
base.Initialize();
diff --git a/Content.Server/Voting/Managers/VoteManager.cs b/Content.Server/Voting/Managers/VoteManager.cs
index 10b975fdcac..04e31916482 100644
--- a/Content.Server/Voting/Managers/VoteManager.cs
+++ b/Content.Server/Voting/Managers/VoteManager.cs
@@ -24,6 +24,7 @@
using Robust.Shared.Timing;
using Robust.Shared.Utility;
+
namespace Content.Server.Voting.Managers
{
public sealed partial class VoteManager : IVoteManager
@@ -39,7 +40,7 @@ public sealed partial class VoteManager : IVoteManager
[Dependency] private readonly IGameMapManager _gameMapManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
- [Dependency] private readonly ISharedPlaytimeManager _playtimeManager = default!;
+ [Dependency] private readonly ISharedPlaytimeManager _playtimeManager = default!;
private int _nextVoteId = 1;
@@ -281,7 +282,7 @@ private void SendSingleUpdate(VoteReg v, ICommonSession player)
}
// Admin always see the vote count, even if the vote is set to hide it.
- if (v.DisplayVotes || _adminMgr.HasAdminFlag(player, AdminFlags.Moderator))
+ if (_adminMgr.HasAdminFlag(player, AdminFlags.Moderator))
{
msg.DisplayVotes = true;
}
diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs
index 06051d9d2ff..8b993245948 100644
--- a/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs
+++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs
@@ -1,4 +1,3 @@
-using Content.Shared.Damage;
using Content.Shared.Weapons.Ranged.Components;
using Content.Server.Power.Components; // Frontier
using Content.Server.Power.EntitySystems; // Frontier
@@ -6,7 +5,6 @@
using Content.Shared.Examine; // Frontier
using Content.Shared.Power; // Frontier
using Content.Server.Popups; // Frontier
-using Robust.Shared.Map;
namespace Content.Server.Weapons.Ranged.Systems;
@@ -22,28 +20,17 @@ public override void Update(float frameTime)
*/
// Automatic firing without stopping if the AutoShootGunComponent component is exist and enabled
- var query = EntityQueryEnumerator();
+ var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out var gun))
+ while (query.MoveNext(out var uid, out var autoShoot, out var gun))
{
+ if (!autoShoot.Enabled)
+ continue;
+
if (gun.NextFire > Timing.CurTime)
continue;
- if (TryComp(uid, out AutoShootGunComponent? autoShoot))
- {
- if (!autoShoot.Enabled)
- continue;
-
- AttemptShoot(uid, gun);
- }
- else if (gun.BurstActivated)
- {
- var parent = _transform.GetParentUid(uid);
- if (HasComp(parent))
- AttemptShoot(parent, uid, gun, gun.ShootCoordinates ?? new EntityCoordinates(uid, gun.DefaultDirection));
- else
- AttemptShoot(uid, gun);
- }
+ AttemptShoot(uid, gun);
}
}
diff --git a/Content.Server/Weather/WeatherSystem.cs b/Content.Server/Weather/WeatherSystem.cs
index ec377809133..dbee62a72fc 100644
--- a/Content.Server/Weather/WeatherSystem.cs
+++ b/Content.Server/Weather/WeatherSystem.cs
@@ -4,7 +4,6 @@
using Robust.Shared.Console;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
-using System.Linq;
namespace Content.Server.Weather;
@@ -86,7 +85,6 @@ private CompletionResult WeatherCompletion(IConsoleShell shell, string[] args)
return CompletionResult.FromHintOptions(CompletionHelper.MapIds(EntityManager), "Map Id");
var a = CompletionHelper.PrototypeIDs(true, ProtoMan);
- var b = a.Concat(new[] { new CompletionOption("null", Loc.GetString("cmd-weather-null")) });
- return CompletionResult.FromHintOptions(b, Loc.GetString("cmd-weather-hint"));
+ return CompletionResult.FromHintOptions(a, Loc.GetString("cmd-weather-hint"));
}
}
diff --git a/Content.Shared/Alert/AlertsComponent.cs b/Content.Shared/Alert/AlertsComponent.cs
index 16827e9cdff..05b11e19efb 100644
--- a/Content.Shared/Alert/AlertsComponent.cs
+++ b/Content.Shared/Alert/AlertsComponent.cs
@@ -1,5 +1,4 @@
using Robust.Shared.GameStates;
-using Robust.Shared.Serialization;
namespace Content.Shared.Alert;
@@ -7,23 +6,12 @@ namespace Content.Shared.Alert;
/// Handles the icons on the right side of the screen.
/// Should only be used for player-controlled entities.
///
-// Component is not AutoNetworked due to supporting clientside-only alerts.
-// Component state is handled manually to avoid the server overwriting the client list.
-[RegisterComponent, NetworkedComponent]
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
public sealed partial class AlertsComponent : Component
{
[ViewVariables]
+ [AutoNetworkedField]
public Dictionary Alerts = new();
public override bool SendOnlyToOwner => true;
}
-
-[Serializable, NetSerializable]
-public sealed class AlertComponentState : ComponentState
-{
- public Dictionary Alerts { get; }
- public AlertComponentState(Dictionary alerts)
- {
- Alerts = alerts;
- }
-}
diff --git a/Content.Shared/CCVar/CCVars.Accessibility.cs b/Content.Shared/CCVar/CCVars.Accessibility.cs
deleted file mode 100644
index 8eb61f0806d..00000000000
--- a/Content.Shared/CCVar/CCVars.Accessibility.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Chat window opacity slider, controlling the alpha of the chat window background.
- /// Goes from to 0 (completely transparent) to 1 (completely opaque)
- ///
- public static readonly CVarDef ChatWindowOpacity =
- CVarDef.Create("accessibility.chat_window_transparency", 0.85f, CVar.CLIENTONLY | CVar.ARCHIVE);
-
- ///
- /// Toggle for visual effects that may potentially cause motion sickness.
- /// Where reasonable, effects affected by this CVar should use an alternate effect.
- /// Please do not use this CVar as a bandaid for effects that could otherwise be made accessible without issue.
- ///
- public static readonly CVarDef ReducedMotion =
- CVarDef.Create("accessibility.reduced_motion", false, CVar.CLIENTONLY | CVar.ARCHIVE);
-
- public static readonly CVarDef ChatEnableColorName =
- CVarDef.Create("accessibility.enable_color_name",
- true,
- CVar.CLIENTONLY | CVar.ARCHIVE,
- "Toggles displaying names with individual colors.");
-
- ///
- /// Screen shake intensity slider, controlling the intensity of the CameraRecoilSystem.
- /// Goes from 0 (no recoil at all) to 1 (regular amounts of recoil)
- ///
- public static readonly CVarDef ScreenShakeIntensity =
- CVarDef.Create("accessibility.screen_shake_intensity", 1f, CVar.CLIENTONLY | CVar.ARCHIVE);
-
- ///
- /// A generic toggle for various visual effects that are color sensitive.
- /// As of 2/16/24, only applies to progress bar colors.
- ///
- public static readonly CVarDef AccessibilityColorblindFriendly =
- CVarDef.Create("accessibility.colorblind_friendly", false, CVar.CLIENTONLY | CVar.ARCHIVE);
-}
diff --git a/Content.Shared/CCVar/CCVars.Admin.Ahelp.cs b/Content.Shared/CCVar/CCVars.Admin.Ahelp.cs
deleted file mode 100644
index 48f3965bb5c..00000000000
--- a/Content.Shared/CCVar/CCVars.Admin.Ahelp.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Ahelp rate limit values are accounted in periods of this size (seconds).
- /// After the period has passed, the count resets.
- ///
- ///
- public static readonly CVarDef AhelpRateLimitPeriod =
- CVarDef.Create("ahelp.rate_limit_period", 2f, CVar.SERVERONLY);
-
- ///
- /// How many ahelp messages are allowed in a single rate limit period.
- ///
- ///
- public static readonly CVarDef AhelpRateLimitCount =
- CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY);
-
- ///
- /// Should the administrator's position be displayed in ahelp.
- /// If it is is false, only the admin's ckey will be displayed in the ahelp.
- ///
- ///
- ///
- public static readonly CVarDef AhelpAdminPrefix =
- CVarDef.Create("ahelp.admin_prefix", false, CVar.SERVERONLY);
-
- ///
- /// Should the administrator's position be displayed in the webhook.
- /// If it is is false, only the admin's ckey will be displayed in webhook.
- ///
- ///
- ///
- public static readonly CVarDef AhelpAdminPrefixWebhook =
- CVarDef.Create("ahelp.admin_prefix_webhook", false, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Admin.Logs.cs b/Content.Shared/CCVar/CCVars.Admin.Logs.cs
deleted file mode 100644
index 862456ddfdd..00000000000
--- a/Content.Shared/CCVar/CCVars.Admin.Logs.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Controls if admin logs are enabled. Highly recommended to shut this off for development.
- ///
- public static readonly CVarDef AdminLogsEnabled =
- CVarDef.Create("adminlogs.enabled", true, CVar.SERVERONLY);
-
- public static readonly CVarDef AdminLogsQueueSendDelay =
- CVarDef.Create("adminlogs.queue_send_delay_seconds", 5f, CVar.SERVERONLY);
-
- ///
- /// When to skip the waiting time to save in-round admin logs, if no admin logs are currently being saved
- ///
- public static readonly CVarDef AdminLogsQueueMax =
- CVarDef.Create("adminlogs.queue_max", 5000, CVar.SERVERONLY);
-
- ///
- /// When to skip the waiting time to save pre-round admin logs, if no admin logs are currently being saved
- ///
- public static readonly CVarDef AdminLogsPreRoundQueueMax =
- CVarDef.Create("adminlogs.pre_round_queue_max", 5000, CVar.SERVERONLY);
-
- ///
- /// When to start dropping logs
- ///
- public static readonly CVarDef AdminLogsDropThreshold =
- CVarDef.Create("adminlogs.drop_threshold", 20000, CVar.SERVERONLY);
-
- ///
- /// How many logs to send to the client at once
- ///
- public static readonly CVarDef AdminLogsClientBatchSize =
- CVarDef.Create("adminlogs.client_batch_size", 1000, CVar.SERVERONLY);
-
- public static readonly CVarDef AdminLogsServerName =
- CVarDef.Create("adminlogs.server_name", "unknown", CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Admin.Rules.cs b/Content.Shared/CCVar/CCVars.Admin.Rules.cs
deleted file mode 100644
index 7385104364b..00000000000
--- a/Content.Shared/CCVar/CCVars.Admin.Rules.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Time that players have to wait before rules can be accepted.
- ///
- public static readonly CVarDef RulesWaitTime =
- CVarDef.Create("rules.time", 45f, CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Don't show rules to localhost/loopback interface.
- ///
- public static readonly CVarDef RulesExemptLocal =
- CVarDef.Create("rules.exempt_local", true, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Admin.cs b/Content.Shared/CCVar/CCVars.Admin.cs
deleted file mode 100644
index 28bebfbe8a6..00000000000
--- a/Content.Shared/CCVar/CCVars.Admin.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- public static readonly CVarDef AdminAnnounceLogin =
- CVarDef.Create("admin.announce_login", true, CVar.SERVERONLY);
-
- public static readonly CVarDef AdminAnnounceLogout =
- CVarDef.Create("admin.announce_logout", true, CVar.SERVERONLY);
-
- ///
- /// The token used to authenticate with the admin API. Leave empty to disable the admin API. This is a secret! Do not share!
- ///
- public static readonly CVarDef AdminApiToken =
- CVarDef.Create("admin.api_token", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// Should users be able to see their own notes? Admins will be able to see and set notes regardless
- ///
- public static readonly CVarDef SeeOwnNotes =
- CVarDef.Create("admin.see_own_notes", false, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// Should the server play a quick sound to the active admins whenever a new player joins?
- ///
- public static readonly CVarDef AdminNewPlayerJoinSound =
- CVarDef.Create("admin.new_player_join_sound", false, CVar.SERVERONLY);
-
- ///
- /// The amount of days before the note starts fading. It will slowly lose opacity until it reaches stale. Set to 0 to disable.
- ///
- public static readonly CVarDef NoteFreshDays =
- CVarDef.Create("admin.note_fresh_days", 91.31055, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// The amount of days before the note completely fades, and can only be seen by admins if they press "see more notes". Set to 0
- /// if you want the note to immediately disappear without fading.
- ///
- public static readonly CVarDef NoteStaleDays =
- CVarDef.Create("admin.note_stale_days", 365.2422, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// How much time does the user have to wait in seconds before confirming that they saw an admin message?
- ///
- public static readonly CVarDef MessageWaitTime =
- CVarDef.Create("admin.message_wait_time", 3f, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// Default severity for role bans
- ///
- public static readonly CVarDef RoleBanDefaultSeverity =
- CVarDef.Create("admin.role_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Default severity for department bans
- ///
- public static readonly CVarDef DepartmentBanDefaultSeverity =
- CVarDef.Create("admin.department_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Default severity for server bans
- ///
- public static readonly CVarDef ServerBanDefaultSeverity =
- CVarDef.Create("admin.server_ban_default_severity", "High", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Whether a server ban will ban the player's ip by default.
- ///
- public static readonly CVarDef ServerBanIpBanDefault =
- CVarDef.Create("admin.server_ban_ip_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Whether a server ban will ban the player's hardware id by default.
- ///
- public static readonly CVarDef ServerBanHwidBanDefault =
- CVarDef.Create("admin.server_ban_hwid_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Whether to use details from last connection for ip/hwid in the BanPanel.
- ///
- public static readonly CVarDef ServerBanUseLastDetails =
- CVarDef.Create("admin.server_ban_use_last_details", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Whether to erase a player's chat messages and their entity from the game when banned.
- ///
- public static readonly CVarDef ServerBanErasePlayer =
- CVarDef.Create("admin.server_ban_erase_player", false, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Minimum players sharing a connection required to create an alert. -1 to disable the alert.
- ///
- ///
- /// If you set this to 0 or 1 then it will alert on every connection, so probably don't do that.
- ///
- public static readonly CVarDef AdminAlertMinPlayersSharingConnection =
- CVarDef.Create("admin.alert.min_players_sharing_connection", -1, CVar.SERVERONLY);
-
- ///
- /// Minimum explosion intensity to create an admin alert message. -1 to disable the alert.
- ///
- public static readonly CVarDef AdminAlertExplosionMinIntensity =
- CVarDef.Create("admin.alert.explosion_min_intensity", 60, CVar.SERVERONLY);
-
- ///
- /// Minimum particle accelerator strength to create an admin alert message.
- ///
- public static readonly CVarDef AdminAlertParticleAcceleratorMinPowerState =
- CVarDef.Create("admin.alert.particle_accelerator_min_power_state", 5, CVar.SERVERONLY); // strength 4
-
- ///
- /// Should the ban details in admin channel include PII? (IP, HWID, etc)
- ///
- public static readonly CVarDef AdminShowPIIOnBan =
- CVarDef.Create("admin.show_pii_onban", false, CVar.SERVERONLY);
-
- ///
- /// If an admin joins a round by reading up or using the late join button, automatically
- /// de-admin them.
- ///
- public static readonly CVarDef AdminDeadminOnJoin =
- CVarDef.Create("admin.deadmin_on_join", false, CVar.SERVERONLY);
-
- ///
- /// Overrides the name the client sees in ahelps. Set empty to disable.
- ///
- public static readonly CVarDef AdminAhelpOverrideClientName =
- CVarDef.Create("admin.override_adminname_in_client_ahelp", string.Empty, CVar.SERVERONLY);
-
- ///
- /// The threshold of minutes to appear as a "new player" in the ahelp menu
- /// If 0, appearing as a new player is disabled.
- ///
- public static readonly CVarDef NewPlayerThreshold =
- CVarDef.Create("admin.new_player_threshold", 0, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// How long an admin client can go without any input before being considered AFK.
- ///
- public static readonly CVarDef AdminAfkTime =
- CVarDef.Create("admin.afk_time", 600f, CVar.SERVERONLY);
-
- ///
- /// If true, admins are able to connect even if
- /// would otherwise block regular players.
- ///
- public static readonly CVarDef AdminBypassMaxPlayers =
- CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY);
-
- ///
- /// Determine if custom rank names are used.
- /// If it is false, it'd use the actual rank name regardless of the individual's title.
- ///
- ///
- ///
- public static readonly CVarDef AdminUseCustomNamesAdminRank =
- CVarDef.Create("admin.use_custom_names_admin_rank", true, CVar.SERVERONLY);
-
- public static readonly CVarDef BanHardwareIds =
- CVarDef.Create("ban.hardware_ids", true, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Atmos.cs b/Content.Shared/CCVar/CCVars.Atmos.cs
deleted file mode 100644
index cc1069b4fc8..00000000000
--- a/Content.Shared/CCVar/CCVars.Atmos.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Whether gas differences will move entities.
- ///
- public static readonly CVarDef SpaceWind =
- CVarDef.Create("atmos.space_wind", false, CVar.SERVERONLY);
-
- ///
- /// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects.
- ///
- public static readonly CVarDef SpaceWindPressureForceDivisorThrow =
- CVarDef.Create("atmos.space_wind_pressure_force_divisor_throw", 15f, CVar.SERVERONLY);
-
- ///
- /// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects.
- ///
- public static readonly CVarDef SpaceWindPressureForceDivisorPush =
- CVarDef.Create("atmos.space_wind_pressure_force_divisor_push", 2500f, CVar.SERVERONLY);
-
- ///
- /// The maximum velocity (not force) that may be applied to an object by atmospheric pressure differences.
- /// Useful to prevent clipping through objects.
- ///
- public static readonly CVarDef SpaceWindMaxVelocity =
- CVarDef.Create("atmos.space_wind_max_velocity", 30f, CVar.SERVERONLY);
-
- ///
- /// The maximum force that may be applied to an object by pushing (i.e. not throwing) atmospheric pressure differences.
- /// A "throwing" atmospheric pressure difference ignores this limit, but not the max. velocity limit.
- ///
- public static readonly CVarDef SpaceWindMaxPushForce =
- CVarDef.Create("atmos.space_wind_max_push_force", 20f, CVar.SERVERONLY);
-
- ///
- /// Whether monstermos tile equalization is enabled.
- ///
- public static readonly CVarDef MonstermosEqualization =
- CVarDef.Create("atmos.monstermos_equalization", true, CVar.SERVERONLY);
-
- ///
- /// Whether monstermos explosive depressurization is enabled.
- /// Needs to be enabled to work.
- ///
- public static readonly CVarDef MonstermosDepressurization =
- CVarDef.Create("atmos.monstermos_depressurization", true, CVar.SERVERONLY);
-
- ///
- /// Whether monstermos explosive depressurization will rip tiles..
- /// Needs and to be enabled to work.
- /// WARNING: This cvar causes MAJOR contrast issues, and usually tends to make any spaced scene look very cluttered.
- /// This not only usually looks strange, but can also reduce playability for people with impaired vision. Please think twice before enabling this on your server.
- /// Also looks weird on slow spacing for unrelated reasons. If you do want to enable this, you should probably turn on instaspacing.
- ///
- public static readonly CVarDef MonstermosRipTiles =
- CVarDef.Create("atmos.monstermos_rip_tiles", false, CVar.SERVERONLY);
-
- ///
- /// Whether explosive depressurization will cause the grid to gain an impulse.
- /// Needs and to be enabled to work.
- ///
- public static readonly CVarDef AtmosGridImpulse =
- CVarDef.Create("atmos.grid_impulse", false, CVar.SERVERONLY);
-
- ///
- /// What fraction of air from a spaced tile escapes every tick.
- /// 1.0 for instant spacing, 0.2 means 20% of remaining air lost each time
- ///
- public static readonly CVarDef AtmosSpacingEscapeRatio =
- CVarDef.Create("atmos.mmos_spacing_speed", 0.15f, CVar.SERVERONLY);
-
- ///
- /// Minimum amount of air allowed on a spaced tile before it is reset to 0 immediately in kPa
- /// Since the decay due to SpacingEscapeRatio follows a curve, it would never reach 0.0 exactly
- /// unless we truncate it somewhere.
- ///
- public static readonly CVarDef AtmosSpacingMinGas =
- CVarDef.Create("atmos.mmos_min_gas", 2.0f, CVar.SERVERONLY);
-
- ///
- /// How much wind can go through a single tile before that tile doesn't depressurize itself
- /// (I.e spacing is limited in large rooms heading into smaller spaces)
- ///
- public static readonly CVarDef AtmosSpacingMaxWind =
- CVarDef.Create("atmos.mmos_max_wind", 500f, CVar.SERVERONLY);
-
- ///
- /// Whether atmos superconduction is enabled.
- ///
- /// Disabled by default, superconduction is awful.
- public static readonly CVarDef Superconduction =
- CVarDef.Create("atmos.superconduction", false, CVar.SERVERONLY);
-
- ///
- /// Heat loss per tile due to radiation at 20 degC, in W.
- ///
- public static readonly CVarDef SuperconductionTileLoss =
- CVarDef.Create("atmos.superconduction_tile_loss", 30f, CVar.SERVERONLY);
-
- ///
- /// Whether excited groups will be processed and created.
- ///
- public static readonly CVarDef ExcitedGroups =
- CVarDef.Create("atmos.excited_groups", true, CVar.SERVERONLY);
-
- ///
- /// Whether all tiles in an excited group will clear themselves once being exposed to space.
- /// Similar to , without none of the tile ripping or
- /// things being thrown around very violently.
- /// Needs to be enabled to work.
- ///
- public static readonly CVarDef ExcitedGroupsSpaceIsAllConsuming =
- CVarDef.Create("atmos.excited_groups_space_is_all_consuming", false, CVar.SERVERONLY);
-
- ///
- /// Maximum time in milliseconds that atmos can take processing.
- ///
- public static readonly CVarDef AtmosMaxProcessTime =
- CVarDef.Create("atmos.max_process_time", 3f, CVar.SERVERONLY);
-
- ///
- /// Atmos tickrate in TPS. Atmos processing will happen every 1/TPS seconds.
- ///
- public static readonly CVarDef AtmosTickRate =
- CVarDef.Create("atmos.tickrate", 15f, CVar.SERVERONLY);
-
- ///
- /// Scale factor for how fast things happen in our atmosphere
- /// simulation compared to real life. 1x means pumps run at 1x
- /// speed. Players typically expect things to happen faster
- /// in-game.
- ///
- public static readonly CVarDef AtmosSpeedup =
- CVarDef.Create("atmos.speedup", 8f, CVar.SERVERONLY);
-
- ///
- /// Like atmos.speedup, but only for gas and reaction heat values. 64x means
- /// gases heat up and cool down 64x faster than real life.
- ///
- public static readonly CVarDef AtmosHeatScale =
- CVarDef.Create("atmos.heat_scale", 8f, CVar.SERVERONLY);
-
- ///
- /// Maximum explosion radius for explosions caused by bursting a gas tank ("max caps").
- /// Setting this to zero disables the explosion but still allows the tank to burst and leak.
- ///
- public static readonly CVarDef AtmosTankFragment =
- CVarDef.Create("atmos.max_explosion_range", 26f, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Audio.cs b/Content.Shared/CCVar/CCVars.Audio.cs
deleted file mode 100644
index 4d9e7c44315..00000000000
--- a/Content.Shared/CCVar/CCVars.Audio.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// How long we'll wait until re-sampling nearby objects for ambience. Should be pretty fast, but doesn't have to match the tick rate.
- ///
- public static readonly CVarDef AmbientCooldown =
- CVarDef.Create("ambience.cooldown", 0.1f, CVar.ARCHIVE | CVar.CLIENTONLY);
-
- ///
- /// How large of a range to sample for ambience.
- ///
- public static readonly CVarDef AmbientRange =
- CVarDef.Create("ambience.range", 8f, CVar.REPLICATED | CVar.SERVER);
-
- ///
- /// Maximum simultaneous ambient sounds.
- ///
- public static readonly CVarDef MaxAmbientSources =
- CVarDef.Create("ambience.max_sounds", 16, CVar.ARCHIVE | CVar.CLIENTONLY);
-
- ///
- /// The minimum value the user can set for ambience.max_sounds
- ///
- public static readonly CVarDef MinMaxAmbientSourcesConfigured =
- CVarDef.Create("ambience.min_max_sounds_configured", 16, CVar.REPLICATED | CVar.SERVER | CVar.CHEAT);
-
- ///
- /// The maximum value the user can set for ambience.max_sounds
- ///
- public static readonly CVarDef MaxMaxAmbientSourcesConfigured =
- CVarDef.Create("ambience.max_max_sounds_configured", 64, CVar.REPLICATED | CVar.SERVER | CVar.CHEAT);
-
- ///
- /// Ambience volume.
- ///
- public static readonly CVarDef AmbienceVolume =
- CVarDef.Create("ambience.volume", 1.5f, CVar.ARCHIVE | CVar.CLIENTONLY);
-
- ///
- /// Ambience music volume.
- ///
- public static readonly CVarDef AmbientMusicVolume =
- CVarDef.Create("ambience.music_volume", 1.5f, CVar.ARCHIVE | CVar.CLIENTONLY);
-
- ///
- /// Lobby / round end music volume.
- ///
- public static readonly CVarDef LobbyMusicVolume =
- CVarDef.Create("ambience.lobby_music_volume", 0.50f, CVar.ARCHIVE | CVar.CLIENTONLY);
-
- ///
- /// UI volume.
- ///
- public static readonly CVarDef InterfaceVolume =
- CVarDef.Create("audio.interface_volume", 0.50f, CVar.ARCHIVE | CVar.CLIENTONLY);
-
-}
diff --git a/Content.Shared/CCVar/CCVars.Chat.Looc.cs b/Content.Shared/CCVar/CCVars.Chat.Looc.cs
deleted file mode 100644
index 84ee2c28072..00000000000
--- a/Content.Shared/CCVar/CCVars.Chat.Looc.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- public static readonly CVarDef LoocEnabled =
- CVarDef.Create("looc.enabled", true, CVar.NOTIFY | CVar.REPLICATED);
-
- public static readonly CVarDef AdminLoocEnabled =
- CVarDef.Create("looc.enabled_admin", true, CVar.NOTIFY);
-
- ///
- /// True: Dead players can use LOOC
- /// False: Dead player LOOC gets redirected to dead chat
- ///
- public static readonly CVarDef DeadLoocEnabled =
- CVarDef.Create("looc.enabled_dead", false, CVar.NOTIFY | CVar.REPLICATED);
-
- ///
- /// True: Crit players can use LOOC
- /// False: Crit player LOOC gets redirected to dead chat
- ///
- public static readonly CVarDef CritLoocEnabled =
- CVarDef.Create("looc.enabled_crit", false, CVar.NOTIFY | CVar.REPLICATED);
-}
diff --git a/Content.Shared/CCVar/CCVars.Chat.Ooc.cs b/Content.Shared/CCVar/CCVars.Chat.Ooc.cs
deleted file mode 100644
index ba5e41053b6..00000000000
--- a/Content.Shared/CCVar/CCVars.Chat.Ooc.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- public static readonly CVarDef
- OocEnabled = CVarDef.Create("ooc.enabled", true, CVar.NOTIFY | CVar.REPLICATED);
-
- public static readonly CVarDef AdminOocEnabled =
- CVarDef.Create("ooc.enabled_admin", true, CVar.NOTIFY);
-
- ///
- /// If true, whenever OOC is disabled the Discord OOC relay will also be disabled.
- ///
- public static readonly CVarDef DisablingOOCDisablesRelay =
- CVarDef.Create("ooc.disabling_ooc_disables_relay", true, CVar.SERVERONLY);
-
- ///
- /// Whether or not OOC chat should be enabled during a round.
- ///
- public static readonly CVarDef OocEnableDuringRound =
- CVarDef.Create("ooc.enable_during_round", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER);
-
- public static readonly CVarDef ShowOocPatronColor =
- CVarDef.Create("ooc.show_ooc_patron_color", true, CVar.ARCHIVE | CVar.REPLICATED | CVar.CLIENT);
-}
diff --git a/Content.Shared/CCVar/CCVars.Chat.cs b/Content.Shared/CCVar/CCVars.Chat.cs
deleted file mode 100644
index 139a82372a2..00000000000
--- a/Content.Shared/CCVar/CCVars.Chat.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Chat rate limit values are accounted in periods of this size (seconds).
- /// After the period has passed, the count resets.
- ///
- ///
- public static readonly CVarDef ChatRateLimitPeriod =
- CVarDef.Create("chat.rate_limit_period", 2f, CVar.SERVERONLY);
-
- ///
- /// How many chat messages are allowed in a single rate limit period.
- ///
- ///
- /// The total rate limit throughput per second is effectively
- /// divided by .
- ///
- ///
- public static readonly CVarDef ChatRateLimitCount =
- CVarDef.Create("chat.rate_limit_count", 10, CVar.SERVERONLY);
-
- ///
- /// Minimum delay (in seconds) between notifying admins about chat message rate limit violations.
- /// A negative value disables admin announcements.
- ///
- public static readonly CVarDef ChatRateLimitAnnounceAdminsDelay =
- CVarDef.Create("chat.rate_limit_announce_admins_delay", 15, CVar.SERVERONLY);
-
- public static readonly CVarDef ChatMaxMessageLength =
- CVarDef.Create("chat.max_message_length", 1000, CVar.SERVER | CVar.REPLICATED);
-
- public static readonly CVarDef ChatMaxAnnouncementLength =
- CVarDef.Create("chat.max_announcement_length", 256, CVar.SERVER | CVar.REPLICATED);
-
- public static readonly CVarDef ChatSanitizerEnabled =
- CVarDef.Create("chat.chat_sanitizer_enabled", true, CVar.SERVERONLY);
-
- public static readonly CVarDef ChatShowTypingIndicator =
- CVarDef.Create("chat.show_typing_indicator", true, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
-
- public static readonly CVarDef ChatEnableFancyBubbles =
- CVarDef.Create("chat.enable_fancy_bubbles",
- true,
- CVar.CLIENTONLY | CVar.ARCHIVE,
- "Toggles displaying fancy speech bubbles, which display the speaking character's name.");
-
- public static readonly CVarDef ChatFancyNameBackground =
- CVarDef.Create("chat.fancy_name_background",
- false,
- CVar.CLIENTONLY | CVar.ARCHIVE,
- "Toggles displaying a background under the speaking character's name.");
-
- ///
- /// A message broadcast to each player that joins the lobby.
- /// May be changed by admins ingame through use of the "set-motd" command.
- /// In this case the new value, if not empty, is broadcast to all connected players and saved between rounds.
- /// May be requested by any player through use of the "get-motd" command.
- ///
- public static readonly CVarDef MOTD =
- CVarDef.Create("chat.motd",
- "",
- CVar.SERVER | CVar.SERVERONLY | CVar.ARCHIVE,
- "A message broadcast to each player that joins the lobby.");
-}
diff --git a/Content.Shared/CCVar/CCVars.Config.cs b/Content.Shared/CCVar/CCVars.Config.cs
deleted file mode 100644
index 4e11f09ee7c..00000000000
--- a/Content.Shared/CCVar/CCVars.Config.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- // These are server-only for now since I don't foresee a client use yet,
- // and I don't wanna have to start coming up with like .client suffixes and stuff like that.
-
- ///
- /// Configuration presets to load during startup.
- /// Multiple presets can be separated by comma and are loaded in order.
- ///
- ///
- /// Loaded presets must be located under the ConfigPresets/ resource directory and end with the .toml extension.
- /// Only the file name (without extension) must be given for this variable.
- ///
- public static readonly CVarDef ConfigPresets =
- CVarDef.Create("config.presets", "", CVar.SERVERONLY);
-
- ///
- /// Whether to load the preset development CVars.
- /// This disables some things like lobby to make development easier.
- /// Even when true, these are only loaded if the game is compiled with DEVELOPMENT set.
- ///
- public static readonly CVarDef ConfigPresetDevelopment =
- CVarDef.Create("config.preset_development", true, CVar.SERVERONLY);
-
- ///
- /// Whether to load the preset debug CVars.
- /// Even when true, these are only loaded if the game is compiled with DEBUG set.
- ///
- public static readonly CVarDef ConfigPresetDebug =
- CVarDef.Create("config.preset_debug", true, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Console.cs b/Content.Shared/CCVar/CCVars.Console.cs
deleted file mode 100644
index e670b9f836e..00000000000
--- a/Content.Shared/CCVar/CCVars.Console.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- public static readonly CVarDef ConsoleLoginLocal =
- CVarDef.Create("console.loginlocal", true, CVar.ARCHIVE | CVar.SERVERONLY);
-
- ///
- /// Automatically log in the given user as host, equivalent to the promotehost command.
- ///
- public static readonly CVarDef ConsoleLoginHostUser =
- CVarDef.Create("console.login_host_user", "", CVar.ARCHIVE | CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Crewmanifest.cs b/Content.Shared/CCVar/CCVars.Crewmanifest.cs
deleted file mode 100644
index d6251886b95..00000000000
--- a/Content.Shared/CCVar/CCVars.Crewmanifest.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Setting this allows a crew manifest to be opened from any window
- /// that has a crew manifest button, and sends the correct message.
- /// If this is false, only in-game entities will allow you to see
- /// the crew manifest, if the functionality is coded in.
- /// Having administrator priveledge ignores this, but will still
- /// hide the button in UI windows.
- ///
- public static readonly CVarDef CrewManifestWithoutEntity =
- CVarDef.Create("crewmanifest.no_entity", true, CVar.REPLICATED);
-
- ///
- /// Setting this allows the crew manifest to be viewed from 'unsecure'
- /// entities, such as the PDA.
- ///
- public static readonly CVarDef CrewManifestUnsecure =
- CVarDef.Create("crewmanifest.unsecure", true, CVar.REPLICATED);
-}
diff --git a/Content.Shared/CCVar/CCVars.Database.cs b/Content.Shared/CCVar/CCVars.Database.cs
deleted file mode 100644
index c549bd7e033..00000000000
--- a/Content.Shared/CCVar/CCVars.Database.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
-#if DEBUG
- private const int DefaultSqliteDelay = 1;
-#else
- private const int DefaultSqliteDelay = 0;
-#endif
-
- public static readonly CVarDef DatabaseEngine =
- CVarDef.Create("database.engine", "sqlite", CVar.SERVERONLY);
-
- public static readonly CVarDef DatabaseSqliteDbPath =
- CVarDef.Create("database.sqlite_dbpath", "preferences.db", CVar.SERVERONLY);
-
- ///
- /// Milliseconds to asynchronously delay all SQLite database acquisitions with.
- ///
- ///
- /// Defaults to 1 on DEBUG, 0 on RELEASE.
- /// This is intended to help catch .Result deadlock bugs that only happen on postgres
- /// (because SQLite is not actually asynchronous normally)
- ///
- public static readonly CVarDef DatabaseSqliteDelay =
- CVarDef.Create("database.sqlite_delay", DefaultSqliteDelay, CVar.SERVERONLY);
-
- ///
- /// Amount of concurrent SQLite database operations.
- ///
- ///
- /// Note that SQLite is not a properly asynchronous database and also has limited read/write concurrency.
- /// Increasing this number may allow more concurrent reads, but it probably won't matter much.
- /// SQLite operations are normally ran on the thread pool, which may cause thread pool starvation if the concurrency is too high.
- ///
- public static readonly CVarDef DatabaseSqliteConcurrency =
- CVarDef.Create("database.sqlite_concurrency", 3, CVar.SERVERONLY);
-
- public static readonly CVarDef DatabasePgHost =
- CVarDef.Create("database.pg_host", "localhost", CVar.SERVERONLY);
-
- public static readonly CVarDef DatabasePgPort =
- CVarDef.Create("database.pg_port", 5432, CVar.SERVERONLY);
-
- public static readonly CVarDef DatabasePgDatabase =
- CVarDef.Create("database.pg_database", "ss14", CVar.SERVERONLY);
-
- public static readonly CVarDef DatabasePgUsername =
- CVarDef.Create("database.pg_username", "postgres", CVar.SERVERONLY);
-
- public static readonly CVarDef DatabasePgPassword =
- CVarDef.Create("database.pg_password", "", CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// Max amount of concurrent Postgres database operations.
- ///
- public static readonly CVarDef DatabasePgConcurrency =
- CVarDef.Create("database.pg_concurrency", 8, CVar.SERVERONLY);
-
- ///
- /// Milliseconds to asynchronously delay all PostgreSQL database operations with.
- ///
- ///
- /// This is intended for performance testing. It works different from ,
- /// as the lag is applied after acquiring the database lock.
- ///
- public static readonly CVarDef DatabasePgFakeLag =
- CVarDef.Create("database.pg_fake_lag", 0, CVar.SERVERONLY);
-
- ///
- /// Basically only exists for integration tests to avoid race conditions.
- ///
- public static readonly CVarDef DatabaseSynchronous =
- CVarDef.Create("database.sync", false, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Discord.cs b/Content.Shared/CCVar/CCVars.Discord.cs
deleted file mode 100644
index a6c4ada7454..00000000000
--- a/Content.Shared/CCVar/CCVars.Discord.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// The role that will get mentioned if a new SOS ahelp comes in.
- ///
- public static readonly CVarDef DiscordAhelpMention =
- CVarDef.Create("discord.on_call_ping", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// URL of the discord webhook to relay unanswered ahelp messages.
- ///
- public static readonly CVarDef DiscordOnCallWebhook =
- CVarDef.Create("discord.on_call_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// URL of the Discord webhook which will relay all ahelp messages.
- ///
- public static readonly CVarDef DiscordAHelpWebhook =
- CVarDef.Create("discord.ahelp_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// The server icon to use in the Discord ahelp embed footer.
- /// Valid values are specified at https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure.
- ///
- public static readonly CVarDef DiscordAHelpFooterIcon =
- CVarDef.Create("discord.ahelp_footer_icon", string.Empty, CVar.SERVERONLY);
-
- ///
- /// The avatar to use for the webhook. Should be an URL.
- ///
- public static readonly CVarDef DiscordAHelpAvatar =
- CVarDef.Create("discord.ahelp_avatar", string.Empty, CVar.SERVERONLY);
-
- ///
- /// URL of the Discord webhook which will relay all custom votes. If left empty, disables the webhook.
- ///
- public static readonly CVarDef DiscordVoteWebhook =
- CVarDef.Create("discord.vote_webhook", string.Empty, CVar.SERVERONLY);
-
- ///
- /// URL of the Discord webhook which will relay all votekick votes. If left empty, disables the webhook.
- ///
- public static readonly CVarDef DiscordVotekickWebhook =
- CVarDef.Create("discord.votekick_webhook", string.Empty, CVar.SERVERONLY);
-
- ///
- /// URL of the Discord webhook which will relay round restart messages.
- ///
- public static readonly CVarDef DiscordRoundUpdateWebhook =
- CVarDef.Create("discord.round_update_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
-
- ///
- /// Role id for the Discord webhook to ping when the round ends.
- ///
- public static readonly CVarDef DiscordRoundEndRoleWebhook =
- CVarDef.Create("discord.round_end_role", string.Empty, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Events.cs b/Content.Shared/CCVar/CCVars.Events.cs
deleted file mode 100644
index 48797b8438c..00000000000
--- a/Content.Shared/CCVar/CCVars.Events.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Controls if the game should run station events
- ///
- public static readonly CVarDef
- EventsEnabled = CVarDef.Create("events.enabled", true, CVar.ARCHIVE | CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Explosion.cs b/Content.Shared/CCVar/CCVars.Explosion.cs
deleted file mode 100644
index 51d93456b7e..00000000000
--- a/Content.Shared/CCVar/CCVars.Explosion.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// How many tiles the explosion system will process per tick
- ///
- ///
- /// Setting this too high will put a large load on a single tick. Setting this too low will lead to
- /// unnaturally "slow" explosions.
- ///
- public static readonly CVarDef ExplosionTilesPerTick =
- CVarDef.Create("explosion.tiles_per_tick", 100, CVar.SERVERONLY);
-
- ///
- /// Upper limit on the size of an explosion before physics-throwing is disabled.
- ///
- ///
- /// Large nukes tend to generate a lot of shrapnel that flies through space. This can functionally cripple
- /// the server TPS for a while after an explosion (or even during, if the explosion is processed
- /// incrementally.
- ///
- public static readonly CVarDef ExplosionThrowLimit =
- CVarDef.Create("explosion.throw_limit", 400, CVar.SERVERONLY);
-
- ///
- /// If this is true, explosion processing will pause the NodeGroupSystem to pause updating.
- ///
- ///
- /// This only takes effect if an explosion needs more than one tick to process (i.e., covers more than tiles). If this is not enabled, the node-system will rebuild its graph
- /// every tick as the explosion shreds the station, causing significant slowdown.
- ///
- public static readonly CVarDef ExplosionSleepNodeSys =
- CVarDef.Create("explosion.node_sleep", true, CVar.SERVERONLY);
-
- ///
- /// Upper limit on the total area that an explosion can affect before the neighbor-finding algorithm just
- /// stops. Defaults to a 60-rile radius explosion.
- ///
- ///
- /// Actual area may be larger, as it currently doesn't terminate mid neighbor finding. I.e., area may be that of a ~51 tile radius circle instead.
- ///
- public static readonly CVarDef ExplosionMaxArea =
- CVarDef.Create("explosion.max_area", (int)3.14f * 256 * 256, CVar.SERVERONLY);
-
- ///
- /// Upper limit on the number of neighbor finding steps for the explosion system neighbor-finding algorithm.
- ///
- ///
- /// Effectively places an upper limit on the range that any explosion can have. In the vast majority of
- /// instances, will likely be hit before this becomes a limiting factor.
- ///
- public static readonly CVarDef ExplosionMaxIterations =
- CVarDef.Create("explosion.max_iterations", 500, CVar.SERVERONLY);
-
- ///
- /// Max Time in milliseconds to spend processing explosions every tick.
- ///
- ///
- /// This time limiting is not perfectly implemented. Firstly, a significant chunk of processing time happens
- /// due to queued entity deletions, which happen outside of the system update code. Secondly, explosion
- /// spawning cannot currently be interrupted & resumed, and may lead to exceeding this time limit.
- ///
- public static readonly CVarDef ExplosionMaxProcessingTime =
- CVarDef.Create("explosion.max_tick_time", 7f, CVar.SERVERONLY);
-
- ///
- /// If the explosion is being processed incrementally over several ticks, this variable determines whether
- /// updating the grid tiles should be done incrementally at the end of every tick, or only once the explosion has finished processing.
- ///
- ///
- /// The most notable consequence of this change is that explosions will only punch a hole in the station &
- /// create a vacumm once they have finished exploding. So airlocks will no longer slam shut as the explosion
- /// expands, just suddenly at the end.
- ///
- public static readonly CVarDef ExplosionIncrementalTileBreaking =
- CVarDef.Create("explosion.incremental_tile", false, CVar.SERVERONLY);
-
- ///
- /// This determines for how many seconds an explosion should stay visible once it has finished expanding.
- ///
- public static readonly CVarDef ExplosionPersistence =
- CVarDef.Create("explosion.persistence", 1.0f, CVar.SERVERONLY);
-
- ///
- /// If an explosion covers a larger area than this number, the damaging/processing will always start during
- /// the next tick, instead of during the same tick that the explosion was generated in.
- ///
- ///
- /// This value can be used to ensure that for large explosions the area/tile calculation and the explosion
- /// processing/damaging occurs in separate ticks. This helps reduce the single-tick lag if both and are large. I.e., instead of
- /// a single tick explosion, this cvar allows for a configuration that results in a two-tick explosion,
- /// though most of the computational cost is still in the second tick.
- ///
- public static readonly CVarDef ExplosionSingleTickAreaLimit =
- CVarDef.Create("explosion.single_tick_area_limit", 400, CVar.SERVERONLY);
-
- ///
- /// Whether or not explosions are allowed to create tiles that have
- /// set to true.
- ///
- public static readonly CVarDef ExplosionCanCreateVacuum =
- CVarDef.Create("explosion.can_create_vacuum", true, CVar.SERVERONLY);
-}
diff --git a/Content.Shared/CCVar/CCVars.Game.Infolinks.cs b/Content.Shared/CCVar/CCVars.Game.Infolinks.cs
deleted file mode 100644
index fa8332b497e..00000000000
--- a/Content.Shared/CCVar/CCVars.Game.Infolinks.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using Robust.Shared.Configuration;
-
-namespace Content.Shared.CCVar;
-
-public sealed partial class CCVars
-{
- ///
- /// Link to Discord server to show in the launcher.
- ///
- public static readonly CVarDef InfoLinksDiscord =
- CVarDef.Create("infolinks.discord", "", CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Link to website to show in the launcher.
- ///
- public static readonly CVarDef InfoLinksForum =
- CVarDef.Create("infolinks.forum", "", CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Link to GitHub page to show in the launcher.
- ///
- public static readonly CVarDef InfoLinksGithub =
- CVarDef.Create("infolinks.github", "", CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Link to website to show in the launcher.
- ///
- public static readonly CVarDef InfoLinksWebsite =
- CVarDef.Create("infolinks.website", "", CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Link to wiki to show in the launcher.
- ///
- public static readonly CVarDef InfoLinksWiki =
- CVarDef.Create("infolinks.wiki", "", CVar.SERVER | CVar.REPLICATED);
-
- ///
- /// Link to Patreon. Not shown in the launcher currently.
- ///
- public static readonly CVarDef InfoLinksPatreon =
- CVarDef.Create("infolinks.patreon", "", CVar.SERVER | CVar.REPLICATED);
-
- ///