Skip to content

Commit

Permalink
[Upstream] Master merge 25/02/25 (#26)
Browse files Browse the repository at this point in the history
* move a colon to the localization string (#35192)

* move the colon to the localization string

* remove a redundancy

* beck suggested this per how its done elsewhere.

* comply with requested changes.

* remove usages of obsolete EntityUid method variants (#35106)

eughhhhh

* Update Credits (#35196)

Co-authored-by: PJBot <[email protected]>

* Docking allocs reduc (#34965)

Stuff I had unstaged.

* Update submodule to 245.1.0 (#35198)

Reh

* fix relic

* Update submodule to 245.1.0 (#35198)

Reh

* Add planet lighting (#32522)

* Implements a Dynamic Lighting System on maps.

* Edit: the night should be a little bit brighter and blue now.

* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.

* Edit: The offset is now serverside, this makes the time accurate in all situations.

* Removing ununsed import

* Minor tweaks

* Tweak in time precision

* Minor tweak + Unused import removed

* Edit: apparently RealTime is better for what I'm looking for

* Fix: Now the time is calculated correctly.

* Minor tweaks

* Adds condition for when the light should be updated

* Add planet lighting

* she

* close-ish

* c

* bittersweat

* Fixes

* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"

This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.

* Europa and day-night

* weh

* rooves working

* Clean

* Remove Europa

* Fixes

* fix

* Update

* Fix caves

* Update for engine

* Add sun shadows (planet lighting v2)

For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.

* Documentation

* a

* Fixes

* Move blur to an overlay

* Slughands

* Fixes

* Remove v2 work

* Finalise

---------

Co-authored-by: DoutorWhite <[email protected]>

* Automatic changelog update

* Update submodule to 246.0.0 (#35202)

* Add ability for admins to change certain cvars via command. (#35105)

* Add ability for admins to change certain cvars via command.

* Cleanup

* More cleanup.

* Even more cleanup.

* WAITER! WAITER! ONE MORE COMMIT PLEASE!

* Remove requirement for Admin AdminFlag

Not needed as the command checks for the perms.

* Add search function to CVars and help text

* Move to controller instead.

* Add another cvar for testing

* Remove unused comment

* Move to Post Server Initialize

LoC does not work at the earlier stages of server initalization

* Remove unneeded comment

We clear out list so its no longer needed

* Update engine to v247.0.0

* Fix merge conflict

* Expand whitelist

* Apply RoofOverlay per-grid not per-map + fix lighting quality (#35207)

* Apply RoofOverlay per-grid not per-map

* Fix light render scales

* Automatic changelog update

* Uncomment blur (#35213)

Was used for debug but stable now.

* Automatic changelog update

* Ignore weather on rooved tiles (#35214)

Might want more flexibility in future but weather needs some polish and this is fine for now.

* Automatic changelog update

* Fix hitscan visuals (#34515)

* Fix hitscan visuals

* remove unnecessary changes

* rename `mapDirection`

* Automatic changelog update

* fix sync issue with paramed siren (#35203)

fix sync issue with paramed siren

Co-authored-by: ElectroJr <[email protected]>

* Automatic changelog update

* fix use in hand for uplink items (#35218)

* Automatic changelog update

* Change `visualize` command perms to VarEdit instead of Admin (#35221)

People with VarEdit can use VV but can't use visualize, makes no sense. 

Has headmin approval here: https://canary.discord.com/channels/310555209753690112/1193403928096821358/1340756276371787827

* Wizard Fix - Summon Ghost Event no longer shows Admin Ghosts or Revenants (#34994)

* Prevents admin ghosts from being shown with ghost event

* Changes summon ghost tooltip to permanently visible

* Adds AllowGhostShownByEvent tag, adds it to regular observers, removes ghost hands check & revenant check and replaces it with a tag check.

* Update ContentLocalizationManager.cs

* I'm gonna do something drastic I swear.

* [ADMIN] Adds missing accesses to universal access config (#35229)

init

* Automatic changelog update

* Replaced Bulldog beanbag drum with lethals drum (#34945)

* Replaced Bulldog beanbag drum with lethals drum

* Update Resources/Locale/en-US/store/uplink-catalog.ftl

Co-authored-by: ArtisticRoomba <[email protected]>

* Update duffelbag.yml bulldog bundle description.

---------

Co-authored-by: ArtisticRoomba <[email protected]>

* Automatic changelog update

* Fix debug assert in ScoopableSolution (#35225)

* Fix debug assert in ScoopableSolution

* Don't stomp the old Handled value

* Update ContentLocalizationManager.cs

* ConfirmableAction for DNA Scrambler implant (#35232)

* Automatic changelog update

* made requested changes.

* General storage fixes (#34845)

* Fix storage stars

* Fix some more storage bugs

- Fix positions not saving.
- Fix the 1-tick delay between parent and child storage UIs opening / closing.
- Fix BackButton being visible sometimes when it shouldn't be.

* milon is a furry

* Don't count lobby players for latejoin antag ratio (#35209)

pass playercount to midround antag calculation

* Centcomm 3: Beyond Thunderdome (#35240)

centcomm update

* Automatic changelog update

* centcomm fix (#35244)

* init

* slightly lighter

* i cant decide

* Re-implement world gen (space debris) across all servers (#34795)

* Re-implement world gen (space debris) across all servers

* Move server-specific worldgen config change to base config

---------

Co-authored-by: Simon <[email protected]>

* Automatic changelog update

* Centcomm 3: Beyond Thunderdome Update (#35251)

* centcomm update

* eef freef

* blue

* New Feature: Votekick bans distinguish themselves as votekicks (#35258)

* Feature

* Localization

* Automatic changelog update

* Fix SuperSlippery And StepTriggers persisting when UpdateSlip is called (#34525)

* Fix superSlippery and stepTrigger values persist

- made values in SpillTileReaction's public so we can query the
prototype

- made the default values for slippery component and
StepTriggerComponent based on default constants
for easier resetting

- added a calculation and check in UpdateSlips to check
if a super slip is present as well as Update
relevant steptrigger and slip values based on the contents of the
solution

* The worlds biggest change

---------

Co-authored-by: Myra <[email protected]>

* Automatic changelog update

* Make AllowedEmotes bypass whitelists and fix syndiborg ability to laugh (#31510)

* Automatic changelog update

* Magical contraband type (#35254)

* init

* really ponderous

* Minor station AI code cleanup (#34476)

* Add ability for +VVEDIT users to scale damage/healing in the game (#35255)

* Initial commit

* Add universal modifier for all damage/heals, make guidebooks work.

* help text

* Automatic changelog update

* Automatic changelog update

* [ChangeCVarCommand] Mapping Command (#35239)

[ChangeCVarCommand] MappingCommand

* Automatic changelog update

* [Bugfix] ContrabandSystem checks jobs correctly (#35228)

* make it work lol

* index protos only once

* Automatic changelog update

* Fix MappingCommand grid loading (#35233)

* UseInHandEvent cleanup (#35231)

* fix observer ghost spawn error (#35253)

* Added a test for the MagazineVisualsComponent and fixed found issues (#34491)

* Automatic changelog update

* Fix build ghosts not being placeable on a new round. (#35097)

* Small loadout window improvement (#35171)

Co-authored-by: Tayrtahn <[email protected]>
Co-authored-by: ArtisticRoomba <[email protected]>

* Make ``ShuttleGunBase`` child of ``BaseStructure`` (#35085)

* Remove unnecessary prototype reloading in integration tests (#35199)

* Add radiation shielding to metal crates (#35168)

* Automatic changelog update

* Remove inaccessible code from SharedDoAfterSystem (#35089)

* Fix contraband parenting defaulting to security. (#35281)

Fix an issue with contraband parenting that made janitor restricted gear available to security.

* Automatic changelog update

* Crusher Dagger Knife Component (#35259)

* Added Knife Component to Crusher dagger, allowing
it to be used in a few new crafting recipes such
as baseball bats.

* Changed BaseKnife to CombatKnife, reordered parents

* now inherits from baseknife, throwing and disarm added manually

* Automatic changelog update

* add ShowJobIcons to AiHeldIntellicard (#35282)

so crew is still crew when you are icard

* Automatic changelog update

* Wizard Recall shows Disappearing text at Coordinate (#35272)

* Add prediction for coordinate based popups

* Remove use of deprecated EntityCoordinates.ToMap

* RecallItem displays disppearing text at entity coordinates

* Update Content.Shared/ItemRecall/SharedItemRecallSystem.cs

Co-authored-by: slarticodefast <[email protected]>

* Update Content.Shared/Popups/SharedPopupSystem.cs

Co-authored-by: slarticodefast <[email protected]>

* Add ItemRecall message for witnesses

* Update Content.Shared/ItemRecall/SharedItemRecallSystem.cs

Co-authored-by: slarticodefast <[email protected]>

* Update Resources/Locale/en-US/item-recall/item-recall.ftl

Co-authored-by: slarticodefast <[email protected]>

* Fix namespace issues

* Fix Loc string

* Dont fixstuff tired..

* Prefix THE

* Filter around the entity, and remove recipient if needed

* Alphabetical imports

* Update Content.Client/Popups/PopupSystem.cs

Co-authored-by: slarticodefast <[email protected]>

* fixup

* Better handling.

---------

Co-authored-by: Cooper Wallace <[email protected]>
Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* loop latejoin hotfix (#35260)

latejoin

* centcomm update (#35293)

* Fix some emotes not respecting pronounces (#35289)

* guys let's not allow those things

* fix those too

* Saxophone fix (#35257)

Saxophone-Fix

* Automatic changelog update

* Make CharacterPickerButton the same height for dwarves as for non-dwarves (#35297)

Character picker button height equality for dwarves

* Returns Explosive Technology recipes to Protolathes (#35303)

add scienceexplosives to dynamic pack

* Automatic changelog update

* Make OuterClothing hide PDA and belt sprites under it. (#33448)

Make OuterClothing hide the PDA sprite

* Automatic changelog update

* Fixing intercom encryption key dropping (#34582)

* Added optional param to PickupOrDrop to allow the item to be moved next to the owner of the hand component

* cleanup placement code

* Automatic changelog update

* Fix ExaminableHunger spelling (#35309)

Fix ExaminableHunger spelling mistake

* ports two barsigns from frontier (#35296)

* adds two new barsigns

* webedit to fix a typo

* the typo was in two locations

* reformatted meta.json and added attribution links

* Automatic changelog update

* Space Lizard Plushie In-hands (#35295)

* space lizard

* attributions

* attribution fix

* Removed Contraband Status from Flares (#34705)

* Update shotgun.yml

* Update shotgun.yml

* Update shotgun.yml

* Automatic changelog update

* Fix: Toys sounds (#33449)

Co-authored-by: Winkarst <[email protected]>
Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Update engine to v247.1.0 (#35324)

* Added a component that lets ranged weapons make melee attacks. (#29484)

* General storage fixes (#34845)

* Fix storage stars

* Fix some more storage bugs

- Fix positions not saving.
- Fix the 1-tick delay between parent and child storage UIs opening / closing.
- Fix BackButton being visible sometimes when it shouldn't be.

* milon is a furry

* Fix missing errorOnMissing arg being passed thru (#35328)

* Replace obsolete FromMap calls with ToCoordinates (#35304)

* Purge uses of TransformComponent.Anchored.set. Also adds parentheses. (#34938)

* Revert "Purge uses of TransformComponent.Anchored.set. Also adds parentheses." (#35332)

* Fix to make all corpses butcher able and better disposable (#33727)

* Made all corpses disposable. Argocytes, Mimics, Butterflies, Bees, Space Kangaroos, Laser Raptors and Watchers their corpses can now be butchered.

* Accidentally removed a line break. restored it.

* Removed a dash that did not belong there.

* Changed mimic giving a "Changeling Sting Can" when butchered instead of normal meat.

* Automatic changelog update

* Remove storage hotbar GUI bandaid (#35054)

* Remove storage hotbar GUI bandaid

With BUI deferred opens it also happened to fix this issue which is nice.

* Update Content.Client/Storage/StorageBoundUserInterface.cs

* Automatic changelog update

* Require hwid (#35331)

* Make cvar to require that the client has a modern hwid

* Ignore guests and don't disable cvar on dev

* Rename and add docs

* 2 lines yaml cleanup (#35338)

* fix migration.yml (#35339)

space-wizards/space-station-14#34293

* Mjollnir and Singularity Hammer for Wizard (#34446)

* Fixed Veggie pizza slice having 40u of reagent space (#35343)

* Fixed Veg pizza slice having 40u of reagent space

* Changed FoodPizzaVegetableSlice to hold 10u rather than 6u

* Fixed donk pocket slice having 50u reagent space.

* fix rubber hammer attack rotation (#35357)

* Adds Colored Light Bulbs (#35333)

* goober

* changes parenting

* Automatic changelog update

* make the detailed examine verb predicted (#35362)

can we stop predicting things

* Fix prying shut unpowered doors (#35380)

* Fix sink draining sound (#34173)

* Automatic changelog update

* Minor SpriteFade stuff (#35385)

* Wizard: Repulse Spell (#35377)

* Comment out broken guidebook test speech code (#35398)

This code blatantly doesn't work and causes compile failures with space-wizards/RobustToolbox#5540. It's only used for testing purposes, so we're just removing it.

Basically taken from space-wizards/space-station-14#33610 in another PR, so I can merge this first separately.

* New Feature: Admin Only messages in AHelp (#35283)

* Feature

* Update

* Update

* Update

* Update Resources/Locale/en-US/administration/bwoink.ftl

Co-authored-by: Pieter-Jan Briers <[email protected]>

* Yes

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>

* Automatic changelog update

* Give dogs speech noises (#35383)

* Automatic changelog update

* Wizard: Smoke Spell (#35403)

* Adds smoke spell for wizard

* Adds the actual sprites oops

* Removes repulse attract change

* Removes change again?

* Update Credits (#35410)

Co-authored-by: PJBot <[email protected]>

* [HOTFIX] Borg emag notification and sound fix (#35394)

epic stuff

* [HOTFIX] Altered Silicon removal fails to trigger role update (#35399)

minor sharedrolesystem refactor

* Fixed Guidebook Sorting / Ordering (#34960)

* fixed all yml and cs

* Subjective Rearranging

* fixed my accidentally removed xml endline

* Accidentally included for a different PR

* Added .ThenBy and cleaned up newplayer.yml

* Automatic changelog update

* make opening storage on verb or on interact not silent (#35413)

* make storage make sound

* remove

Co-authored-by: Winkarst <[email protected]>

---------

Co-authored-by: Winkarst <[email protected]>

* Automatic changelog update

* Roof data rework (#35388)

* Amber Station Improvements (#35384)

* Redid TEG, minor fixes around

* Ran fixgridatmos, variantize, fixrotations, tileswalls

* Elkridge Science 2.0 + misc fixes (#35392)

* added radationblockercontainer component to pacman fuel crate so it doesnt leak rads, also more rad suits

* reworked science, misc fixes and changes

* Update submodule (#35411)

* Lattice tiles footsteps now sound like catwalks (#35421)

change lattice from FootstepPlating to FootstepCatwalk

* Automatic changelog update

* Refactor audio system to send collection IDs over the network (#33610)

* Fix window positions not saving (#35055)

Co-authored-by: Kevin Zheng <[email protected]>

* Automatic changelog update

* Swap price of EMAG and AD. (#35354)

init

* Automatic changelog update

* Sentry turrets - Part 2: Basic prototype (#35031)

* Add interaction tests for prying airlocks (#35409)

* Sentry review (#35424)

Co-authored-by: chromiumboy <[email protected]>
Co-authored-by: chromiumboy <[email protected]>

* Remove disablers from emagged lathe (#35423)

* Add microwave recipes to the guidebook (#34105)

* Automatic changelog update

* Fix/Addition - Wizard Survivor Antag Status (#35226)

* Use new engine APIs for setting the scroll target of views (#35401)

* Add a tertiary header parser to the guidebook document parser (#35315)

* Automatic changelog update

* version watermark (#35284)

* version watermark

* force version watermarks on vulture

* Automatic changelog update

* fix chameleon projector ripley bug (#35070)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Automatic changelog update

* Make holoparasite's damage transfer ignore the host's armor (#35418)

Change stuff

* Automatic changelog update

* Fix: Admin-only messages still show "(S)" on Discord (#35431)

Fix

* Cleanup: Use ``SoundSpecifier`` instead of string literals in ``VomitSystem`` (#35426)

* Cleanup

* Update

* Update

* Put Neckwear above Backpacks (#35322)

Puts Neck layer on top of Back.

* Automatic changelog update

* Fix prototypes so they pass analyzer checks (#35435)

* Fix bogus AdminNameOverlay Rider error (#35432)

* Fix admin test arena (#35444)

* Fix admin test arena

* Add to GridsLoadableTest

* QueueDel map, remove nullable

---------

Co-authored-by: ElectroJr <[email protected]>

* Fix arrivals (#35439)

* Automatic changelog update

* Cleanup: Use ``SoundSpecifier`` instead of string literals in ``EyeClosingComponent`` (#35425)

* Cleanup

* Update

* Update

* Update

* GettingUsedAttemptEvent (#35450)

* init

* review

* doc

* Update Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

---------

Co-authored-by: slarticodefast <[email protected]>

* Move FingerprintComponent and FingerprintMaskComponent to shared (#35451)

* init

* review

* whoopsie

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``ChemistryGuideDataSystem`` (#35456)

* Cleanup

* Update

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``FlatpackSystem`` (#35457)

* Cleanup

* Update

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``MaterialStorageSystem`` (#35458)

* Cleanup

* Update

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``EventManagerSystem`` (#35460)

Cleanup

* Cleanup: Fix field naming rule violation in ``GhostComponent`` (#35454)

* Fix

* Update Content.Shared/Ghost/GhostComponent.cs

---------

Co-authored-by: slarticodefast <[email protected]>

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``ImmovableRodRule`` (#35462)

Cleanup

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``SharedMaterialStorageSystem`` (#35463)

Cleanup

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``SharedStackSystem`` (#35464)

Cleanup

* TryGetRandomRecord in StationRecordsSystem (#35452)

* init

* requested changes

* stuff

* Cleanup: Remove redundant checks from ``SharedWieldableSystem`` (#35466)

Cleanup

* Cleanup: Pass in ``IComponentFactory`` in ``EntityPrototype.TryGetComponent`` calls inside ``SharedChameleonProjectorSystem`` (#35465)

* Cleanup

* Yes

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``CargoTest`` (#35467)

* Cleanup

* Update

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``HandTests`` (#35468)

* Cleanup

* Update

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``HumanInventoryUniformSlotsTest`` (#35469)

* Cleanup

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``InteractionTest`` (#35470)

Cleanup

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``MaterialArbitrageTest`` (#35471)

Cleanup

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``MaterialPrototypeSpawnsStackMaterialTest`` (#35472)

* Cleanup

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``MindTests`` (#35473)

* Cleanup

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``StartingGearPrototypeStorageTest`` (#35474)

* Cleanup

* Fix

* Cleanup: Use ``MapSystem.DeleteMap`` instead of ``IMapManager.DeleteMap`` in ``SalvageSystem.Magnet`` (#35475)

Cleanup

* Cleanup: Use ``SoundCollectionSpecifier`` instead of string literals in ``PowerGridCheckRule`` (#35449)

* Cleanup

* Update

* .

* Volume

* Cleanup: Use ``SoundCollectionSpecifier`` instead of string literals in ``BibleSystem`` (#35448)

* Cleanup

* Update

* [ADMIN minor update] Add Autocompletion for Player Usernames in SetMind Command (#35477)

* add(src): Add getCompletion player for setmind command

* tweak(src): Fulfilling review requirements. used CompletionHelper.SessionNames()

* tweak(loc): Add localization

* fix(srs): smail

* Automatic changelog update

* Custom arrivals shuttle for Relic (#35194)

* Custom arrivals shuttle for Relic.

* Added shuttle APU

* Saved it as a grid the way I now see the mapping guide said I was supposed to do it

* Relic arrivals hallway more historically accurate.

* Removed invalid configurator

* Automatic changelog update

* fix ion storm code readability (#35337)

fix ion storm readability

* Cleanup: Make ``EyeCursorOffsetSystem`` sealed (#35481)

Cleanup

* Make the version watermark less annoying (#35484)

* make version watermark less annoying

* skreee

* Automatic changelog update

* Cleanup: Fix formatting in ``CCVars.Game`` (#35483)

Cleanup

* fix mousetraps (#35486)

fix mousetrap

* Automatic changelog update

* borgs don't scream (#33038)

* borgs don't scream

* revert that

* Automatic changelog update

* [ADMIN] Admin IDs now have Agent ID properties (#35345)

init

* Automatic changelog update

* Unbreakable bar sign fix. (#35490)

* Fixed bar signs being indestructable

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Adds new speech bubble opacity sliders to the accessibility menu. (#35346)

* Adds new accessibility slider for speech bubble text opacity.
Adds new accessibility slider for speech bubble background opacity.
Adds new Cvars to track speech bubble text and background opacity settings.

* Adds a separate option slider for the opacity of the speaker's name on speech bubbles.

* Changes text and speaker default opacity to 100%, as it was before.

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Make escape key work as expected with multiple open inventories (#35040)

* Automatic changelog update

* Add species-specific code for ToggleableLightVisuals (#35482)

* WHY DO THE FUCKING GAY SCARFS KEEP BREAKING

* ugh

* robust skill issue?

* whaur

---------

Co-authored-by: Kyle Tyo <[email protected]>
Co-authored-by: Milon <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: ElectroJr <[email protected]>
Co-authored-by: DoutorWhite <[email protected]>
Co-authored-by: Simon <[email protected]>
Co-authored-by: Leon Friedrich <[email protected]>
Co-authored-by: Vasilis The Pikachu <[email protected]>
Co-authored-by: Velken <[email protected]>
Co-authored-by: slarticodefast <[email protected]>
Co-authored-by: keronshb <[email protected]>
Co-authored-by: Kyle Tyo <[email protected]>
Co-authored-by: ScarKy0 <[email protected]>
Co-authored-by: PicklOH <[email protected]>
Co-authored-by: ArtisticRoomba <[email protected]>
Co-authored-by: Tayrtahn <[email protected]>
Co-authored-by: psykana <[email protected]>
Co-authored-by: Errant <[email protected]>
Co-authored-by: Emisse <[email protected]>
Co-authored-by: ScarKy0 <[email protected]>
Co-authored-by: Sparlight <[email protected]>
Co-authored-by: Winkarst <[email protected]>
Co-authored-by: Zachary Higgs <[email protected]>
Co-authored-by: Myra <[email protected]>
Co-authored-by: lzk <[email protected]>
Co-authored-by: chromiumboy <[email protected]>
Co-authored-by: SlamBamActionman <[email protected]>
Co-authored-by: Ignaz "Ian" Kraft <[email protected]>
Co-authored-by: War Pigeon <[email protected]>
Co-authored-by: BramvanZijp <[email protected]>
Co-authored-by: Pronana <[email protected]>
Co-authored-by: lizelive <[email protected]>
Co-authored-by: Cooper Wallace <[email protected]>
Co-authored-by: Cooper Wallace <[email protected]>
Co-authored-by: TytosB <[email protected]>
Co-authored-by: SpaceLizard <[email protected]>
Co-authored-by: Absotively <[email protected]>
Co-authored-by: K-Dynamic <[email protected]>
Co-authored-by: Booblesnoot42 <[email protected]>
Co-authored-by: MilenVolf <[email protected]>
Co-authored-by: robinthedragon <[email protected]>
Co-authored-by: SeamLesss <[email protected]>
Co-authored-by: FungiFellow <[email protected]>
Co-authored-by: Winkarst <[email protected]>
Co-authored-by: Sigil <[email protected]>
Co-authored-by: TemporalOroboros <[email protected]>
Co-authored-by: Zokkie <[email protected]>
Co-authored-by: nikthechampiongr <[email protected]>
Co-authored-by: spderman3333 <[email protected]>
Co-authored-by: Boaz1111 <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: themias <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: GrownSamoyedDog <[email protected]>
Co-authored-by: Southbridge <[email protected]>
Co-authored-by: Deerstop <[email protected]>
Co-authored-by: pathetic meowmeow <[email protected]>
Co-authored-by: Kevin Zheng <[email protected]>
Co-authored-by: chromiumboy <[email protected]>
Co-authored-by: deltanedas <[email protected]>
Co-authored-by: No Elka <[email protected]>
Co-authored-by: Tiniest Shark <[email protected]>
Co-authored-by: Schrödinger <[email protected]>
Co-authored-by: Vortebo <[email protected]>
Co-authored-by: Theodore Lukin <[email protected]>
Co-authored-by: noirogen <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 387 changed files with 16,426 additions and 9,414 deletions.
2 changes: 1 addition & 1 deletion Content.Client/Administration/AdminNameOverlay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ protected override void Draw(in OverlayDrawArgs args)
{
args.ScreenHandle.DrawString(_font, screenCoordinates + (lineoffset * 2), _antagLabelClassic, uiScale, _antagColorClassic);
}
else if (!classic && _filter.Contains(playerInfo.RoleProto.ID))
else if (!classic && _filter.Contains(playerInfo.RoleProto))
{
var label = Loc.GetString(playerInfo.RoleProto.Name).ToUpper();
var color = playerInfo.RoleProto.Color;
Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Administration/Systems/BwoinkSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes
OnBwoinkTextMessageRecieved?.Invoke(this, message);
}

public void Send(NetUserId channelId, string text, bool playSound)
public void Send(NetUserId channelId, string text, bool playSound, bool adminOnly)
{
// Reuse the channel ID as the 'true sender'.
// Server will ignore this and if someone makes it not ignore this (which is bad, allows impersonation!!!), that will help.
RaiseNetworkEvent(new BwoinkTextMessage(channelId, channelId, text, playSound: playSound));
RaiseNetworkEvent(new BwoinkTextMessage(channelId, channelId, text, playSound: playSound, adminOnly: adminOnly));
SendInputTextUpdated(channelId, false);
}

Expand Down
4 changes: 3 additions & 1 deletion Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
<BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<CheckBox Visible="True" Name="PlaySound" Access="Public" Text="{Loc 'admin-bwoink-play-sound'}" Pressed="True" />
<CheckBox Name="AdminOnly" Access="Public" Text="{Loc 'admin-ahelp-admin-only'}" ToolTip="{Loc 'admin-ahelp-admin-only-tooltip'}" />
<Control HorizontalExpand="True" MinWidth="5" />
<CheckBox Name="PlaySound" Access="Public" Text="{Loc 'admin-bwoink-play-sound'}" Pressed="True" />
<Control HorizontalExpand="True" MinWidth="5" />
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
<Control HorizontalExpand="True" />
Expand Down
2 changes: 2 additions & 0 deletions Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ public BwoinkControl()
_adminManager.AdminStatusUpdated += UpdateButtons;
UpdateButtons();

AdminOnly.OnToggled += args => PlaySound.Disabled = args.Pressed;

ChannelSelector.OnSelectionChanged += sel =>
{
_currentPlayer = sel;
Expand Down
28 changes: 2 additions & 26 deletions Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -512,39 +512,15 @@ private void AutoScrollToFocus()
if (scroll == null)
return;

if (!TryGetVerticalScrollbar(scroll, out var vScrollbar))
return;

if (!TryGetNextScrollPosition(out float? nextScrollPosition))
return;

vScrollbar.ValueTarget = nextScrollPosition.Value;
scroll.VScrollTarget = nextScrollPosition.Value;

if (MathHelper.CloseToPercent(vScrollbar.Value, vScrollbar.ValueTarget))
if (MathHelper.CloseToPercent(scroll.VScroll, scroll.VScrollTarget))
_autoScrollActive = false;
}

private bool TryGetVerticalScrollbar(ScrollContainer scroll, [NotNullWhen(true)] out VScrollBar? vScrollBar)
{
vScrollBar = null;

foreach (var child in scroll.Children)
{
if (child is not VScrollBar)
continue;

var castChild = child as VScrollBar;

if (castChild != null)
{
vScrollBar = castChild;
return true;
}
}

return false;
}

private bool TryGetNextScrollPosition([NotNullWhen(true)] out float? nextScrollPosition)
{
nextScrollPosition = null;
Expand Down
24 changes: 2 additions & 22 deletions Content.Client/Atmos/Consoles/AtmosMonitoringConsoleWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -350,35 +350,15 @@ private void AutoScrollToFocus()
if (scroll == null)
return;

if (!TryGetVerticalScrollbar(scroll, out var vScrollbar))
return;

if (!TryGetNextScrollPosition(out float? nextScrollPosition))
return;

vScrollbar.ValueTarget = nextScrollPosition.Value;
scroll.VScrollTarget = nextScrollPosition.Value;

if (MathHelper.CloseToPercent(vScrollbar.Value, vScrollbar.ValueTarget))
if (MathHelper.CloseToPercent(scroll.VScroll, scroll.VScrollTarget))
_autoScrollActive = false;
}

private bool TryGetVerticalScrollbar(ScrollContainer scroll, [NotNullWhen(true)] out VScrollBar? vScrollBar)
{
vScrollBar = null;

foreach (var control in scroll.Children)
{
if (control is not VScrollBar)
continue;

vScrollBar = (VScrollBar)control;

return true;
}

return false;
}

private bool TryGetNextScrollPosition([NotNullWhen(true)] out float? nextScrollPosition)
{
nextScrollPosition = null;
Expand Down
5 changes: 2 additions & 3 deletions Content.Client/Atmos/UI/GasAnalyzerBoundUserInterface.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
using static Content.Shared.Atmos.Components.GasAnalyzerComponent;

namespace Content.Client.Atmos.UI
Expand All @@ -16,9 +17,7 @@ protected override void Open()
{
base.Open();

_window = new GasAnalyzerWindow();
_window.OnClose += OnClose;
_window.OpenCenteredLeft();
_window = this.CreateWindowCenteredLeft<GasAnalyzerWindow>();
}

protected override void ReceiveMessage(BoundUserInterfaceMessage message)
Expand Down
6 changes: 3 additions & 3 deletions Content.Client/Audio/ClientGlobalSoundSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ private void PlayAdminSound(AdminSoundEvent soundEvent)
{
if(!_adminAudioEnabled) return;

var stream = _audio.PlayGlobal(soundEvent.Filename, Filter.Local(), false, soundEvent.AudioParams);
var stream = _audio.PlayGlobal(soundEvent.Specifier, Filter.Local(), false, soundEvent.AudioParams);
_adminAudio.Add(stream?.Entity);
}

Expand All @@ -75,13 +75,13 @@ private void PlayStationEventMusic(StationEventMusicEvent soundEvent)
// Either the cvar is disabled or it's already playing
if(!_eventAudioEnabled || _eventAudio.ContainsKey(soundEvent.Type)) return;

var stream = _audio.PlayGlobal(soundEvent.Filename, Filter.Local(), false, soundEvent.AudioParams);
var stream = _audio.PlayGlobal(soundEvent.Specifier, Filter.Local(), false, soundEvent.AudioParams);
_eventAudio.Add(soundEvent.Type, stream?.Entity);
}

private void PlayGameSound(GameGlobalSoundEvent soundEvent)
{
_audio.PlayGlobal(soundEvent.Filename, Filter.Local(), false, soundEvent.AudioParams);
_audio.PlayGlobal(soundEvent.Specifier, Filter.Local(), false, soundEvent.AudioParams);
}

private void StopStationEventMusic(StopStationEventMusic soundEvent)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Audio/ContentAudioSystem.LobbyMusic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ private void PlayRestartSound(RoundRestartCleanupEvent ev)
return;

var file = _gameTicker.RestartSound;
if (string.IsNullOrEmpty(file))
if (ResolvedSoundSpecifier.IsNullOrEmpty(file))
{
return;
}
Expand Down
22 changes: 22 additions & 0 deletions Content.Client/Changelog/ChangelogManager.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Linq;
using System.Threading.Tasks;
using Content.Shared.CCVar;
using Robust.Shared;
using Robust.Shared.Configuration;
using Robust.Shared.ContentPack;
using Robust.Shared.Serialization.Manager;
Expand Down Expand Up @@ -125,6 +126,27 @@ public void PostInject()
_sawmill = _logManager.GetSawmill(SawmillName);
}

/// <summary>
/// Tries to return a human-readable version number from the build.json file
/// </summary>
public string GetClientVersion()
{
var fork = _configManager.GetCVar(CVars.BuildForkId);
var version = _configManager.GetCVar(CVars.BuildVersion);

// This trimming might become annoying if down the line some codebases want to switch to a real
// version format like "104.11.3" while others are still using the git hashes
if (version.Length > 7)
version = version[..7];

if (string.IsNullOrEmpty(version) || string.IsNullOrEmpty(fork))
return Loc.GetString("changelog-version-unknown");

return Loc.GetString("changelog-version-tag",
("fork", fork),
("version", version));
}

[DataDefinition]
public sealed partial class Changelog
{
Expand Down
17 changes: 1 addition & 16 deletions Content.Client/Changelog/ChangelogWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,22 +70,7 @@ private async void PopulateChangelog()
Tabs.SetTabTitle(i++, Loc.GetString($"changelog-tab-title-{changelog.Name}"));
}

// Try to get the current version from the build.json file
var version = _cfg.GetCVar(CVars.BuildVersion);
var forkId = _cfg.GetCVar(CVars.BuildForkId);

var versionText = Loc.GetString("changelog-version-unknown");

// Make sure these aren't empty, like in a dev env
if (!string.IsNullOrEmpty(version) && !string.IsNullOrEmpty(forkId))
{
versionText = Loc.GetString("changelog-version-tag",
("fork", forkId),
("version", version[..7])); // Only show the first 7 characters
}

// if else statements are ugly, shut up
VersionLabel.Text = versionText;
VersionLabel.Text = _changelog.GetClientVersion();

TabsUpdated();
}
Expand Down
14 changes: 8 additions & 6 deletions Content.Client/Chat/UI/SpeechBubble.cs
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ protected override Control BuildBubble(ChatMessage message, string speechStyleCl
{
StyleClasses = { "speechBox", speechStyleClass },
Children = { label },
ModulateSelfOverride = Color.White.WithAlpha(0.75f)
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.SpeechBubbleBackgroundOpacity))
};

return panel;
Expand Down Expand Up @@ -247,21 +247,23 @@ protected override Control BuildBubble(ChatMessage message, string speechStyleCl
{
StyleClasses = { "speechBox", speechStyleClass },
Children = { label },
ModulateSelfOverride = Color.White.WithAlpha(0.75f)
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.SpeechBubbleBackgroundOpacity)),
};
return unfanciedPanel;
}

var bubbleHeader = new RichTextLabel
{
Margin = new Thickness(1, 1, 1, 1)
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.SpeechBubbleSpeakerOpacity)),
Margin = new Thickness(1, 1, 1, 1),
};

var bubbleContent = new RichTextLabel
{
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.SpeechBubbleTextOpacity)),
MaxWidth = SpeechMaxWidth,
Margin = new Thickness(2, 6, 2, 2),
StyleClasses = { "bubbleContent" }
StyleClasses = { "bubbleContent" },
};

//We'll be honest. *Yes* this is hacky. Doing this in a cleaner way would require a bottom-up refactor of how saycode handles sending chat messages. -Myr
Expand All @@ -273,7 +275,7 @@ protected override Control BuildBubble(ChatMessage message, string speechStyleCl
{
StyleClasses = { "speechBox", speechStyleClass },
Children = { bubbleContent },
ModulateSelfOverride = Color.White.WithAlpha(0.75f),
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.SpeechBubbleBackgroundOpacity)),
HorizontalAlignment = HAlignment.Center,
VerticalAlignment = VAlignment.Bottom,
Margin = new Thickness(4, 14, 4, 2)
Expand All @@ -283,7 +285,7 @@ protected override Control BuildBubble(ChatMessage message, string speechStyleCl
{
StyleClasses = { "speechBox", speechStyleClass },
Children = { bubbleHeader },
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.ChatFancyNameBackground) ? 0.75f : 0f),
ModulateSelfOverride = Color.White.WithAlpha(ConfigManager.GetCVar(CCVars.ChatFancyNameBackground) ? ConfigManager.GetCVar(CCVars.SpeechBubbleBackgroundOpacity) : 0f),
HorizontalAlignment = HAlignment.Center,
VerticalAlignment = VAlignment.Top
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ private void OnPrototypesReloaded(PrototypesReloadedEventArgs? ev)
if (entProto.Abstract || usedNames.Contains(entProto.Name))
continue;

if (!entProto.TryGetComponent<ExtractableComponent>(out var extractableComponent))
if (!entProto.TryGetComponent<ExtractableComponent>(out var extractableComponent, EntityManager.ComponentFactory))
continue;

//these bloat the hell out of blood/fat
Expand All @@ -121,7 +121,7 @@ private void OnPrototypesReloaded(PrototypesReloadedEventArgs? ev)


if (extractableComponent.GrindableSolution is { } grindableSolutionId &&
entProto.TryGetComponent<SolutionContainerManagerComponent>(out var manager) &&
entProto.TryGetComponent<SolutionContainerManagerComponent>(out var manager, EntityManager.ComponentFactory) &&
_solutionContainer.TryGetSolution(manager, grindableSolutionId, out var grindableSolution))
{
var data = new ReagentEntitySourceData(
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Construction/FlatpackSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ private void OnAppearanceChange(Entity<FlatpackComponent> ent, ref AppearanceCha
if (!PrototypeManager.TryIndex<EntityPrototype>(machineBoardId, out var machineBoardPrototype))
return;

if (!machineBoardPrototype.TryGetComponent<SpriteComponent>(out var sprite))
if (!machineBoardPrototype.TryGetComponent<SpriteComponent>(out var sprite, EntityManager.ComponentFactory))
return;

Color? color = null;
Expand Down
3 changes: 1 addition & 2 deletions Content.Client/Crayon/UI/CrayonBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,10 @@ public CrayonBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey
protected override void Open()
{
base.Open();
_menu = this.CreateWindow<CrayonWindow>();
_menu = this.CreateWindowCenteredLeft<CrayonWindow>();
_menu.OnColorSelected += SelectColor;
_menu.OnSelected += Select;
PopulateCrayons();
_menu.OpenCenteredLeft();
}

private void PopulateCrayons()
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Disposal/Systems/DisposalUnitSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ private void UpdateState(EntityUid uid, SharedDisposalUnitComponent unit, Sprite
{
KeyFrames =
{
new AnimationTrackPlaySound.KeyFrame(_audioSystem.GetSound(unit.FlushSound), 0)
new AnimationTrackPlaySound.KeyFrame(_audioSystem.ResolveSound(unit.FlushSound), 0)
}
});
}
Expand Down
3 changes: 2 additions & 1 deletion Content.Client/GameTicking/Managers/ClientGameTicker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using Robust.Client.State;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;
using Robust.Shared.Audio;

namespace Content.Client.GameTicking.Managers
{
Expand All @@ -26,7 +27,7 @@ public sealed class ClientGameTicker : SharedGameTicker

[ViewVariables] public bool AreWeReady { get; private set; }
[ViewVariables] public bool IsGameStarted { get; private set; }
[ViewVariables] public string? RestartSound { get; private set; }
[ViewVariables] public ResolvedSoundSpecifier? RestartSound { get; private set; }
[ViewVariables] public string? LobbyBackground { get; private set; }
[ViewVariables] public bool DisallowedLateJoin { get; private set; }
[ViewVariables] public string? ServerInfoBlob { get; private set; }
Expand Down
Loading

0 comments on commit 8cc5281

Please sign in to comment.