Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Upstream synch (#11)
Browse files Browse the repository at this point in the history
* Fix emergency flare not igniting through verb menu. (#24027)

Emergency flare ignites when activated through verb menu

* Automatic changelog update

* fix plushie rouny sprite (#24031)

* Fix oxyburn energy not accounting for heatscale (#24023)

* Remove spacepens (#23970)

* Automatic changelog update

* Updates aspid (#24014)

* Remove AmmoTechFabCircuitboard from Thief objectives (#24037)

* Automatic changelog update

* Makes Eggs drawable with a syringe (#24042)

-Makes Eggs drawable with a syringe

* Automatic changelog update

* Add a check for item size in the microwave system (#24026)

* Add a check for item size in the microwave system

* DataField suggestion

* Merge TryComp with HasComp

* Add datafield changeability for admins

* Automatic changelog update

* Make changelog script able to manage admin changelogs (#24033)

* Make changelog script able to manage admin changelogs

* I forgot to remove the comment

* Yeah that should probably just be an exclusion instead.

* Update Credits (#24057)

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

* Fix vending machine thank you flag timing (#24049)

Fix thank you flag timing

* Desk bells can be rung with activate (#24047)

* Desk bells can be rung with activate

Important

* Remove obsoletions too while I'm at it.

* Colorblind-compatible QM uniform sprites (#24055)

colorblind-compatible qm drip

* Remove archaic accent (#24052)

* Automatic changelog update

* Mayo (#24017)

Mayo

* Automatic changelog update

* Species' melee changes (#24019)

Changes Spider attack type to pierce, and gives them the bite anim. Lizards now have claw anim.

* Automatic changelog update

* Quick dialog fixes (#24046)

Pressing "enter" on the last dialog box now confirms the dialog.

Localize.

* Fix error when switching to a screen without an inventory gui widget (#24059)

* better deconversion (#23315)

* add deconverted window

* show deconverted window when deconverting + remove the role

* webedit ops

* antagonist -> revolutionary

* evil

* oh

* eui ops

---------

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

* Automatic changelog update

* Add admin logs for thermomachines (#24056)

* Automatic changelog update

* Add a neck gaiter into HOS's dresser (#24003)

HOS's dresser now contains a neck gaiter

* Automatic changelog update

* Navmap UI enhancements (#23777)

* label scaling wip

* beacon toggle, cleanup

* weh

* caw

* Smooth scaling, almost-selectable font size, Magnification count, zoom scale accuracy change, opacity

* never asked for individual font sizes

* zoom

* format

* Fixes CrewMonitor and PowerMonitor using the default tile color as text background instead of their custom tile colors

* font customisation, needs UI elements

* Station map rightclick now works

* UI scale will keep the local systems in line

* adjusting font size to UI scale

* typo

* fix RT version

* putting cache back in its place

* toggle labels moved to Examine

* Automatic changelog update

* no time limit on nukie syndicate bomb (#24022)

implement

* Automatic changelog update

* Cvar to allow whitelisted players to bypass panic bunker (#23885)

Among us

* Hackable intercoms (#23984)

* Enable wire interface for intercom

* Implement BlockListening component and system

* Implement ListenWireAction

* Added cooldown/overload to mic wire pulse

* Properly persist voicemask settings when user already has one.

* Addressed requested changes

* Added wire panel open/closed visuals

* Automatic changelog update

* Teleport fixes (#24064)

- Teleport to physics center not transform center.
- Fix NetEntity not being passed in.

* Fix iron ore being called steel ore in the vein descriptions (#24066)

Fix iron ore being called steel ore

* box update (#24065)

* meta update (#24067)

* packed update (#24068)

* Revert "Greyscale decal tweaks + additions" (#24069)

* BUI bugfixes / improvements (#23881)

* Fix ActivatableUIRequiresPowerCellComponent stopping power draw when one of two people closes the UI.

Also fixes it to check UiKey properly.

* Remove unnecessary CrewManifestViewer on PDAs

This is for a pop-up crew manifest UI, which the PDA doesn't use.

* Fix BoundUIClosedEvents that didn't check UI key/not correctly at least.

Uses the new helper method in engine.

* Fix drone (cargo shuttle) pilot console UI breaking if two people open it and one person closes it.

* Fixes for disposal router/tagger UI.

Code was badly copy pasted without changing identifiers, never worked.

Also cleaned up some of the logic (text trimming, sounds).

Also removed the "refuse to work if you have something in your active hand" check like why.

* Avoid running most ActivatableUIComponent logic when closing a UI via toggle

Activating the UI while it's already open closes it via toggle. Except it still ran 99% of the "attempting to open" logic which makes no sense.

This probably fixes a bug or some other dumb behavior somewhere.

* Bitch

* Add greenshift preset (#24029)

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

* Tail wagging (#19573)

* MVP

* Uncomment animated prototypes

* Disable wagging on death

* Move component to server

* Looped tail animation

* Apply front tail template

* Disable animated markings globally

* Add emote sending

* Update documentation

* Move locale

* Use static instantAction & remove action on comp del

* Use fluent POSS-ADJ

* Update docs

* Add copyright

* Update copyright

* Update license & copyright

* Move to main directory & format meta.json

* Fix path

* Change namespace

* Remove empty meta.json

* Update

* REMOVE unnecessary IsNullOrWhiteSpace check

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

* Move animated markings to main file

* Use emotes

* new

* fix

* fix

* Tests, pls

* fix dixel

* Remove networked from wagging comp

* Remove unused import

* Remove unused imports

* Move wagging comp to shared

* Revert the emotes

If we're getting it the action is better.

---------

Co-authored-by: DrSmugleaf <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>

* Entitylookup method renames (#23519)

* Update submodule to 206.0.0 (#24072)

* Add TryGetPrimaryDepartment to jobs system (#23317)

* add primary departments

* make command and station specific secondary

* add a unit test

* fixy

* compile

* webedit ops

---------

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

* Make throwable star damage stamina (#23527)

* feat(star.yml): make throwable star damage stamina

* feat(Components): add new StaminaTresholdDamageOnEmbedComponent

* feat(SharedProjectileSystem): update system with new events to change
stamins treshold on embeed projectile remove / add

* feat(StaminaSystem): update system with new subscriptions

* feat(throwing_stars): update yml with new component

* feat(StaminaDamageOnEmbed): add stamina damage on embeed

* cleanup unused / ajust numbers

* fix(StaminaSystem / OnEmbedComponent ) apply requested changes

* Rest of the review

* another warning

---------

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

* Fix error when the client gets an Eui state message before its open message (#23610)

* Fix error when the client gets an Eui state message before its open message

* Revert "Fix error when the client gets an Eui state message before its open message"

This reverts commit 440e2746ee8d77306f59ddea558eda32ec927f18.

* Make all Eui msgs reliable ordered

* Virtual items cleanup (#23912)

* Virtual items cleanup

* Detail

* Review

---------

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

* Cerberus has AI (#24028)

* Automatic changelog update

* Remove bad Dirty call introduced by PR #20778 (#24076)

The HealOnBuckleHealingComponent is not in Shared/Client code, need not
be networked, and cannot be dirty.

* Fix admins unable to hide the coordinates debug monitor (#24084)

Allow admins to hide the coords monitor

* Suit Storage Visual Change (#23799)

* Revert "New moth antennae and wing pair, Underwing (#23559)"

This reverts commit 1b4f1ac.

* Revert "Revert "New moth antennae and wing pair, Underwing (#23559)""

This reverts commit d2543d566cb398b4d7496e3f189cb638f826bf27.

* dsd

* sdst

* sd

* Plates & Cash gridinv visuals (#24075)

* Automatic changelog update

* Grave digging and decomposition (#23646)

* Grave digging and decomposition

* fix

* update based on review comments

* code review

* remove unused field

* Automatic changelog update

* Nerf and Add More Reagent Slimes (#24087)

* Nerf and Add More Chem Slimes

* Whoops Redundancy

* Automatic changelog update

* decelerator nerf and projectile penetration mini refactor (#24032)

* decelerator nerf and projectile fix

* datafield name difference

* forgot to add component

* missed datafield styling

* comment made summary

* CanPenetrateComponent and CollisionLayer check.

* Small comment changes

* Automatic changelog update

* Cryo Burn Chem - Aloxadone (#23980)

Aloxadone (accidentally exploded first pr oops)

* Automatic changelog update

* Eye opening/closing is now possible while cuffed (#24097)

u can now open and close your eyes while cuffed

* Automatic changelog update

* Nerf lava firestacks (#24100)

* nerf lava firestacks

* dode

* Automatic changelog update

* Cryogenic Sleep Units (#24096)

* Cryogenic sleep units

* pause map support

* no more body deletion

* Cryogenic Storage Units

* boowomp

* no more emag, no more dropping present people

* Automatic changelog update

* Action, Action Container, and Action Upgrade changes (#24005)

* Added TransferActionWithNewAttached and TransferAllActionsWithNewAttached and OnActionAdded event method to ActionContainerSystem. These are needed where the action needs to have a different attached entity for usage.  Fixed a bug with not being able to upgrade actions between levels.  Added a way to grant and remove a singular action.

* adds an action container component to mind on action added to fix tests

* Swaps trycomp for hascomp

* Maybe this will fix the thests

* Grants action container to performer as well

* Wait that makes no sense, removing that

* fixes mind action grant logic

* Changes ent check back to netent check

* Reverts unintended container changes

* fix medhud bounds with 64x64 inhands (#24102)

* aspid update (#24103)

* bagel update (#24104)

* bagel update

* argh

* box update (#24105)

* centcomm update (#24107)

centcomm

* cluster update (#24108)

* fland update (#24109)

* gemini update (#24110)

* marathon update (#24111)

* marathon update

* light

* meta update (#24112)

* omega update (#24113)

* packed update (#24114)

* reach update (#24115)

* Fixes the eye protection requirement of welding tools being inverted (#24106)

After a power outage and a whole hour of fixing a broken .git: fixes welding tools having inverted toggle states for eye protection requirements

* Automatic changelog update

* Reduces stimpack price to 4 TC (#24117)

done

* Automatic changelog update

* Readd core cargo shuttle (#24118)

add

* Update Core (#24121)

add

* Construction Blast door (#24050)

* construction blast door

* fix

* price

* fix2

* hem

* xif

* Static

* Automatic changelog update

* Tropico pet added to thief objective pool (#24119)

* git it's the same stop gaslighting yourself

* tropico added to thief objective pool

* fix damage type for arachnid melee (#24137)

fix damage type

* fix cryo bed dragging (#24125)

* atlas cryosleep (#24126)

* atlas cryosleep

* invalid hunter

---------

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

* saltern cryosleep (#24127)

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

* Flatcaps (#24134)

* Brown and Grey flatcaps added

What it says on the tin is what it is

* Fixed Copyright Jazz, oops

What it says on the tin

* Cossack Visual Change (#24129)

c

* more objective logging + maybe fix the no objective bug (#24139)

* more objective log

* remove hijack from group!!!!

---------

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

* Reinforced glass reacting fix (#24135)

* takeitouttakeitout

* Delete error.glsl

---------

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

* Automatic changelog update

* fix cryosleepers deleting the station (#24143)

* fix cryogenic units deleting the station

* ship it

* terminal update (#24145)

* Cleanup Medicine Descriptions (#24141)

Medicine Cleanup TIme

* medal case sprite (#24147)

medal case no longer cigar case lmao

* Explosion log fix fix (#24136)

* Reaction and Explosion admin log coordinates

* Remove extraneous whitespace

* Automatic changelog update

* fix radiators leaking heat into atmos blocked tiles (#24124)

* fix radiators leaking heat into atmos blocked tiles

* Fix the fix

Pointyhat to: emogarbage

* Remove unused imports

---------

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

* Don't throw on player spawn for playtime failure (#24148)

Still gets logged but won't abort the entire startup process.

* Update Core (#24149)

ya

* Fix flare shell not applying firestacks and makes it embed (#23648)

* Fix flare gun not igniting and small firestack increase.

* Flare shells now embed

* Automatic changelog update

* Fix some closets being not deconstructable (#23054)

* sss

* price change

* Resprite buckets (#23866)

* add

* fix

* tweak

* bucket

* buckt

* bucket'd

* buckt

* bottm roundinger

* Automatic changelog update

* Fix missing [NetSerializable] in SimplePredictReconcileTest (#24161)

This didn't cause any issues because NetSerializer wasn't used in integration tests... until space-wizards/RobustToolbox#4838.

* qol tweak: More context about how to access traitor uplink in character menu (#24163)

Update preset-traitor.ftl

* Fix DragDropHelper not respecting the control.drag_dead_zone cvar (#24166)

Fix regression with the drag_dead_zone cvar not being used

* try and purify cryosleeper code (#24165)

* Hauling shuttle wreck (#24152)

add

* Remove prototypes locale (#24159)

* bagel update (#24168)

* Follow command and ahelp menu follow (#24142)

* Command & ahelp rename

* Reviews

* remove tpto

* Automatic changelog update

* Add a way for bulk abstracting prototypes (#24140)

* Ignored Prototypes

* respath it

* add multi-file support

* box update (#24176)

* meta update (#24177)

* emergency box grid name (#24178)

emergency box

* Fix water gun and spray nozzle projectile collision (#24175)

fix water gun and spray nozzle collision

* Automatic changelog update

* Add 6 new small salvage wrecks (#24179)

* add

* updat

* Executions (#24150)

* Execution (you monster)
not done

* woops

* more stuff

* Melee executions

* Prevent executing those who can interact

* Better checks for if you can execute

* Scale the execution time of a knife with its attack speed

* Translations for fucking up an execution

* rename some functions

* Properly scale execution speed of melee weapons

* Fix checks in CanExecuteWithAny

* Allow executing yourself (funny)

* More versatile localisation

* Suicide with guns

* Popups for successful gun executions

* whoops

* Stop flare guns crashing the game on executions

* Various tweaks

* Remove some old usings

* Pacifists can no longer execute

* Remove unnecessary check

* Use CanShoot in gunsystem

* Capitalisation in ftl string

* Fix melee executions not playing a sound

* localisation tweaks

* Add Mothroach Burger (#24156)

* Add Mothroach Burger

* append copyright

* fix whitespace and metajson ordering

* Automatic changelog update

* Move rotting stages and examine to shared (#24183)

* Robohands glove sprite (#24182)

add

* Automatic changelog update

* WelderRefinable light tubes bulbs and broken bottle (#24184)

s

* Remove obsolete ftl call (#24187)

Nothing burger

* Grindable ores (#24185)

add

* Automatic changelog update

* Reagent grinder jittering (#24190)

* Reagent grinder jittering

* Fix jittering for offset sprites

* Change default lights on devmap to non-LED ones (#24192)

* Automatic changelog update

* bagel update (#24191)

* bagel update

* ok a lot more

* Xenoarch scanning time halved (#24188)

* SALVATION

* Update ArtifactAnalyzerComponent.cs

* Update artifact_analyzer.yml

* Significantly less annoying eating sounds (#24195)

* Automatic changelog update

* Mouse sprite movement states (#24202)

* Add limited-reagent dispensers (#23907)

* Add limited-reagent dispensers

* Add empty versions for all dispensers

* Fix lint

* Set initial window size so all buttons are visible

* Simplify logic, add parenthesis

* Use localized name for initial labels

* Adjust button style

* Avoid touching items before MapInit

* Remove pre-labeling

* Reduce diff

* Clean up YAML

* Fix test

* Really fix test

* Document

* Adjust based on review

* Add labels for obnoxiously long bottles

---------

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

* Automatic changelog update

* localize shuttle timer eta etd (#24204)

* Chicken sprite movement states (#24205)

* Fix comp.Owner (#24206)

* Repairable shuttles (#24193)

* fixable shuttle

* nukie not repairable

* fix

* Automatic changelog update

* Do not log missing components in OpenableSystem (#24208)

Do not log missing components

* fix flippo not igniting plasma (#24207)

Add welder component to FlippoLighter

* Automatic changelog update

* Use old reagent dispenser beaker slot ID (#24209)

Change the slot ID back to what it was to keep old map saves with an item in the slot loading correctly.

This also fixes the "You can't put this in the dispenser!" message not appearing when inserting an item without FitsInDispenserComponent because the whitelisted slot name wasn't changed.

* reach update (#24211)

* Fix error when starting a DoAfter while handling one on the same entity (#24218)

* Fix error when starting a DoAfter while handling one on the same entity

* Reuse array

* Golden honker glow (#24230)

add

* Paramedic void suit is now a soft suit. (#24229)

add

* Carrots now properly contain Oculine (#24228)

* carrot

* add

* quantity

* Automatic changelog update

* Automatic changelog update

* Add pacifism description and clean up traits a little (#24216)

add

* make terminator immune to rev and zombie (#24239)

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

* Fix solution corruption when grinding a stack of items (#24242)

Fix corruption when grinding a stack of items

* Add fill visuals and inhand sprites to water bottle (#24240)

* Add fill visuals and inhand sprites to water bottle

* adjust sprite

* Fix entity menu grouping and sorting (#24243)

* Group entity menu by the displayed name instead of by the prototype

* Sort entity menu by the displayed name (with label) in current culture

* Automatic changelog update

* Wrap objective briefing text (#24244)

* Fix drink examine text (#24241)

* More sprite movement states (#24237)

* More sprite movement states

* what

* Finally fix cryostorage duping (#24251)

* Automatic changelog update

* Spawn guidebooks on random bookshelves (#24036)

* Automatic changelog update

* fix gas canister names (#24252)

fix canister names

* Add trade stations (#23863)

* puters

* Start on fulfillment

* weh

* Smol update

* FTL sound fixes or smth iunno

* Add consoles

* More tweaks

* Make it unanchorable

* final wehs

* weh

* Fix 1 test

* Shrimply bump the distance

* cat

* Automatic changelog update

* Update submodule to 207.0.0 (#24255)

* Title2 (#24254)

* title2

* Update lobby.yml

* Update attributions.yml

* real

* Automatic changelog update

* Botany guide chemicals (#24194)

* Adjust produce (#24220)

* Fix salvage wreck names (#24256)

add

* Rework wheelchairbound (#24173)

* Rework wheelchairbound

Fixes the save/load bug and fixes it being a singleton.

* weh

* Make super bite burger easier to craft (#24231)

* add

* needs space for salt

* Change the station map dot color to cyan (#24082)

Change the station map tracking dot color to cyan

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

* Restart votes check player count and ghost levels (#23453)

* Restarts have max player count

* Now counts ingame ghosts to determine if restart can be called

* consistant cvar name

* Added a player count with state conditional

* Run fixgridatmos on trading outpost (#24264)

* Automatic changelog update

* Add ability to put spesos into cargo console (#24263)

I thought we had it already but maybe it was an unfinished pr or something.

* Automatic changelog update

* Added defib to Brigmed on Box (#24269)

* Moved Gemini's Brigmed defib to the inside (#24273)

* Added defib to Brigmed on Origin (#24272)

* Added defib to Brigmed on Meta (#24271)

* Clear cargo orders on approval (#24278)

* Update Trading Outpost (#24281)

* add

* yes

* Fix gun bolt crash (#24283)

Deleting non-predicted entities moment.

* Automatic changelog update

* Improve light tube sprites (#24270)

* fix

* blocky

* glowier

* darker

* Actually fix carrot oculine this time (#24290)

SEEDS MAN

* Destruction & impact sound rework pass 1 (#24282)

* Various sounds ported

* Replace wall_bonk.ogg

* Metal/metalglass break sound pass

* Replace metalbreak.ogg

* Replace woodhit

* Replcae tap.ogg n some smack uses

* Fix lint

* Replace bang.ogg and some instances of hit_kick.ogg

* couple more

* fix wood sound

* i may be stupid

* le attributing

* bro what

* standardize more destruction sounds

* fix melee hit sound cutting off

* window threshold sounds and remove `destroySound` it literally doesnt exist

* Automatic changelog update

* Can emag artifact crusher (#23957)

* initial commit

* made it emaggable

* removed OnAttemptEmagEvent

* moved emagging to shared

* added local file to git

* Automatic changelog update

* Adds more grindables (#24267)

* Adds more grindables

* fuc

* A

* Fix reagents obtained from grinding iron ore. (#24215)

add

* Mustard, ketchup and mayonnaise now tastes distinct (#24297)

add

* Update Trade Station (#24295)

add

* Update Core (#24294)

add

* Update Rod and Transit evacuation shuttles (#24296)

add

* Lathe Categories (#24247)

* Lathe Categories

* serilog my beloathed

* Automatic changelog update

* Unrevivable trait (#24226)

* unrevivable trait + remove unclonable remnants

* cleanup

* change to hascomp

* Automatic changelog update

* Toolboxes (#24305)

* Added animations for opening toolboxes

* Fix cow toolbox

* Automatic changelog update

* Revert "Adds more grindables (#24267)" (#24311)

This reverts commit 16a1f2f.

* Rebalance of Lobbying bundle (#24303)

* Rebalance of Lobbying bundle

- More money, mickey (5000 -> 30000)
- Added trader`s rubberstump for high iq players
- Phone to call upper managment
- Some fancy and absolutely unsuspicious clothings
- Patriotic Flag for the most valuable lobist of Syndicate

* Thief problem fix

Thief now have have separate lobbying bundle, now it calls bribing bundle

* Fixing

Money count, suffix

* Hi

Fixing money

* Automatic changelog update

* Prevent EntityStorages from being opened while inside another container (#24253)

* Prevent EntityStorages from being opened while inside a mech.

* compressed into few lines

* unneeded line

* Popup client

---------

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

* Automatic changelog update

* Add netserializable to test doafter (#24313)

Might fix the test failure

* Fixes round restart audio clipping (#24044)

* Fix round end audio clipping

* weh

---------

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

* Automatic changelog update

* Fix cargo product groups (#24212)

* Cargo fixes (#24318)

Wrong button.

* Change what items can be fultoned while stopping anchored items from fultoning (#20628)

* Check and restrict players from fultoning their equipped items

* Changed fulton whitelist to items and anchorables

* Stop from anchored items being fultoned

* Moved containermanager check to CanFulton function

* review

---------

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

* Automatic changelog update

* Make crushers not craftable/researchable (#24319)

* nomorecrushersci

* nocomment

* Automatic changelog update

* Fix some test warnings (#24324)

Extracted from smug's pr.

* Fix drag-drop buckle sound playing twice (#24321)

Buckle refactor somedayTM.

* Automatic changelog update

* Beacon localization (#24138)

* localize beacons

* No not like that

* Tesla beacons were already depreciated, time to give the reaper their due

* Entity name fallback

* The real treasure was the far easier solution we missed along the way

* weh

* Shared mapinit

* fix RT version

* a single line break

* fix scram implant uplink desc (#24336)

fix

* update locale

---------

Co-authored-by: Arendian <[email protected]>
Co-authored-by: PJBot <[email protected]>
Co-authored-by: Ilya246 <[email protected]>
Co-authored-by: Vasilis <[email protected]>
Co-authored-by: Aexxie <[email protected]>
Co-authored-by: SlamBamActionman <[email protected]>
Co-authored-by: Varen <[email protected]>
Co-authored-by: degradka <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tayrtahn <[email protected]>
Co-authored-by: deathride58 <[email protected]>
Co-authored-by: 21Melkuu <[email protected]>
Co-authored-by: DrSmugleaf <[email protected]>
Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Trevor Day <[email protected]>
Co-authored-by: Errant <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: Nemanja <[email protected]>
Co-authored-by: Emisse <[email protected]>
Co-authored-by: Morb <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: Dakamakat <[email protected]>
Co-authored-by: AJCM-git <[email protected]>
Co-authored-by: Whisper <[email protected]>
Co-authored-by: Magnus Larsen <[email protected]>
Co-authored-by: Kot <[email protected]>
Co-authored-by: Alekshhh <[email protected]>
Co-authored-by: Psychpsyo <[email protected]>
Co-authored-by: themias <[email protected]>
Co-authored-by: Nairod <[email protected]>
Co-authored-by: Skye <[email protected]>
Co-authored-by: Flareguy <[email protected]>
Co-authored-by: keronshb <[email protected]>
Co-authored-by: Boaz1111 <[email protected]>
Co-authored-by: Ubaser <[email protected]>
Co-authored-by: Nim <[email protected]>
Co-authored-by: reverie collection <[email protected]>
Co-authored-by: CrigCrag <[email protected]>
Co-authored-by: Hanz <[email protected]>
Co-authored-by: Kevin Zheng <[email protected]>
Co-authored-by: Arkanic <[email protected]>
Co-authored-by: LankLTE <[email protected]>
Co-authored-by: Veritius <[email protected]>
Co-authored-by: TurboTrackerss14 <[email protected]>
Co-authored-by: Kara <[email protected]>
Co-authored-by: AWF <[email protected]>
Co-authored-by: Ed <[email protected]>
Co-authored-by: Volodius <[email protected]>
Co-authored-by: 0x6273 <[email protected]>
Co-authored-by: lapatison <[email protected]>
Co-authored-by: IlyaElDunaev <[email protected]>
Co-authored-by: iacore <[email protected]>
Co-authored-by: iacore <[email protected]>
Co-authored-by: Repo <[email protected]>
Co-authored-by: Krunklehorn <[email protected]>
Co-authored-by: SpeltIncorrectyl <[email protected]>
Co-authored-by: Scribbles0 <[email protected]>
Co-authored-by: Drayff <[email protected]>
Co-authored-by: Agoichi <[email protected]>
Co-authored-by: Hannah Giovanna Dawson <[email protected]>
Co-authored-by: Kacper Urbańczyk <[email protected]>
Co-authored-by: Alzore <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 3,613 changed files with 1,256,953 additions and 1,160,040 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 4 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,10 @@ dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
resharper_braces_for_ifelse = required_for_multiline
resharper_keep_existing_attribute_arrangement = true

[*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets}]
[*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets,props}]
indent_size = 2

[nuget.config]
indent_size = 2

[{*.yaml,*.yml}]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

steps:
- name: Install dependencies
run: sudo apt-get install -y python3-paramiko
run: sudo apt-get install -y python3-paramiko python3-lxml

- uses: actions/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion Content.Benchmarks/Content.Benchmarks.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<LangVersion>12</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
<PackageReference Include="BenchmarkDotNet" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Content.Client\Content.Client.csproj" />
Expand Down
1 change: 1 addition & 0 deletions Content.Benchmarks/EntityManagerGetAllComponents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public void Setup()
var componentFactory = new Mock<IComponentFactory>();
componentFactory.Setup(p => p.GetComponent<DummyComponent>()).Returns(new DummyComponent());
componentFactory.Setup(p => p.GetRegistration(It.IsAny<DummyComponent>())).Returns(dummyReg);
componentFactory.Setup(p => p.GetAllRegistrations()).Returns(new[] { dummyReg });
componentFactory.Setup(p => p.GetAllRefTypes()).Returns(new[] { CompIdx.Index<DummyComponent>() });

IoCManager.RegisterInstance<IComponentFactory>(componentFactory.Object);
Expand Down
2 changes: 1 addition & 1 deletion Content.Benchmarks/MapLoadBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public async Task Cleanup()
PoolManager.Shutdown();
}

public static IEnumerable<string> MapsSource { get; set; }
public static readonly string[] MapsSource = { "Empty", "Box", "Aspid", "Bagel", "Dev", "CentComm", "Atlas", "Core", "TestTeg", "Saltern", "Packed", "Omega", "Cluster", "Gemini", "Reach", "Origin", "Meta", "Marathon", "Europa", "MeteorArena", "Fland", "Barratry" };

[ParamsSource(nameof(MapsSource))]
public string Map;
Expand Down
7 changes: 0 additions & 7 deletions Content.Benchmarks/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ public static void Main(string[] args)

public static async Task MainAsync(string[] args)
{
PoolManager.Startup(typeof(Program).Assembly);
var pair = await PoolManager.GetServerClient();
var gameMaps = pair.Server.ResolveDependency<IPrototypeManager>().EnumeratePrototypes<GameMapPrototype>().ToList();
MapLoadBenchmark.MapsSource = gameMaps.Select(x => x.ID);
await pair.CleanReturnAsync();
PoolManager.Shutdown();

#if DEBUG
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\nWARNING: YOU ARE RUNNING A DEBUG BUILD, USE A RELEASE BUILD FOR AN ACCURATE BENCHMARK");
Expand Down
187 changes: 187 additions & 0 deletions Content.Benchmarks/PvsBenchmark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.Linq;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Warps;
using Robust.Server.GameObjects;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.Enums;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Network;
using Robust.Shared.Player;
using Robust.Shared.Random;

namespace Content.Benchmarks;

// This benchmark probably benefits from some accidental cache locality. I,e. the order in which entities in a pvs
// chunk are sent to players matches the order in which the entities were spawned.
//
// in a real mid-late game round, this is probably no longer the case.
// One way to somewhat offset this is to update the NetEntity assignment to assign random (but still unique) NetEntity uids to entities.
// This makes the benchmark run noticeably slower.

[Virtual]
public class PvsBenchmark
{
public const string Map = "Maps/box.yml";

[Params(1, 8, 80)]
public int PlayerCount { get; set; }

private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private MapId _mapId = new(10);
private ICommonSession[] _players = default!;
private EntityCoordinates[] _spawns = default!;
public int _cycleOffset = 0;
private SharedTransformSystem _sys = default!;
private EntityCoordinates[] _locations = default!;

[GlobalSetup]
public void Setup()
{
#if !DEBUG
ProgramShared.PathOffset = "../../../../";
#endif
PoolManager.Startup(null);

_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
_pair.Server.CfgMan.SetCVar(CVars.NetPVS, true);
_pair.Server.CfgMan.SetCVar(CVars.ThreadParallelCount, 0);
_pair.Server.CfgMan.SetCVar(CVars.NetPvsAsync, false);
_sys = _entMan.System<SharedTransformSystem>();

// Spawn the map
_pair.Server.ResolveDependency<IRobustRandom>().SetSeed(42);
_pair.Server.WaitPost(() =>
{
var success = _entMan.System<MapLoaderSystem>().TryLoad(_mapId, Map, out _);
if (!success)
throw new Exception("Map load failed");
_pair.Server.MapMan.DoMapInitialize(_mapId);
}).Wait();

// Get list of ghost warp positions
_spawns = _entMan.AllComponentsList<WarpPointComponent>()
.OrderBy(x => x.Component.Location)
.Select(x => _entMan.GetComponent<TransformComponent>(x.Uid).Coordinates)
.ToArray();

Array.Resize(ref _players, PlayerCount);

// Spawn "Players".
_pair.Server.WaitPost(() =>
{
for (var i = 0; i < PlayerCount; i++)
{
var pos = _spawns[i % _spawns.Length];
var uid =_entMan.SpawnEntity("MobHuman", pos);
_pair.Server.ConsoleHost.ExecuteCommand($"setoutfit {_entMan.GetNetEntity(uid)} CaptainGear");
_players[i] = new DummySession{AttachedEntity = uid};
}
}).Wait();

// Repeatedly move players around so that they "explore" the map and see lots of entities.
// This will populate their PVS data with out-of-view entities.
var rng = new Random(42);
ShufflePlayers(rng, 100);

_pair.Server.PvsTick(_players);
_pair.Server.PvsTick(_players);

var ents = _players.Select(x => x.AttachedEntity!.Value).ToArray();
_locations = ents.Select(x => _entMan.GetComponent<TransformComponent>(x).Coordinates).ToArray();
}

private void ShufflePlayers(Random rng, int count)
{
while (count > 0)
{
ShufflePlayers(rng);
count--;
}
}

private void ShufflePlayers(Random rng)
{
_pair.Server.PvsTick(_players);

var ents = _players.Select(x => x.AttachedEntity!.Value).ToArray();
var locations = ents.Select(x => _entMan.GetComponent<TransformComponent>(x).Coordinates).ToArray();

// Shuffle locations
var n = locations.Length;
while (n > 1)
{
n -= 1;
var k = rng.Next(n + 1);
(locations[k], locations[n]) = (locations[n], locations[k]);
}

_pair.Server.WaitPost(() =>
{
for (var i = 0; i < PlayerCount; i++)
{
_sys.SetCoordinates(ents[i], locations[i]);
}
}).Wait();

_pair.Server.PvsTick(_players);
}

/// <summary>
/// Basic benchmark for PVS in a static situation where nothing moves or gets dirtied..
/// This effectively provides a lower bound on "real" pvs tick time, as it is missing:
/// - PVS chunks getting dirtied and needing to be rebuilt
/// - Fetching component states for dirty components
/// - Compressing & sending network messages
/// - Sending PVS leave messages
/// </summary>
[Benchmark]
public void StaticTick()
{
_pair.Server.PvsTick(_players);
}

/// <summary>
/// Basic benchmark for PVS in a situation where players are teleporting all over the place. This isn't very
/// realistic, but unlike <see cref="StaticTick"/> this will actually also measure the speed of processing dirty
/// chunks and sending PVS leave messages.
/// </summary>
[Benchmark]
public void CycleTick()
{
_cycleOffset = (_cycleOffset + 1) % _players.Length;
_pair.Server.WaitPost(() =>
{
for (var i = 0; i < PlayerCount; i++)
{
_sys.SetCoordinates(_players[i].AttachedEntity!.Value, _locations[(i + _cycleOffset) % _players.Length]);
}
}).Wait();
_pair.Server.PvsTick(_players);
}

private sealed class DummySession : ICommonSession
{
public SessionStatus Status => SessionStatus.InGame;
public EntityUid? AttachedEntity {get; set; }
public NetUserId UserId => default;
public string Name => string.Empty;
public short Ping => default;
public INetChannel Channel { get; set; } = default!;
public LoginType AuthType => default;
public HashSet<EntityUid> ViewSubscriptions { get; } = new();
public DateTime ConnectedTime { get; set; }
public SessionState State => default!;
public SessionData Data => default!;
public bool ClientSide { get; set; }
}
}
47 changes: 31 additions & 16 deletions Content.Client/Administration/QuickDialogSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

namespace Content.Client.Administration;

// mfw they ported input() from BYOND

/// <summary>
/// This handles the client portion of quick dialogs.
/// </summary>
Expand All @@ -32,39 +34,48 @@ private void OpenDialog(QuickDialogOpenEvent ev)

var promptsDict = new Dictionary<string, LineEdit>();

foreach (var entry in ev.Prompts)
for (var index = 0; index < ev.Prompts.Count; index++)
{
var entry = ev.Prompts[index];
var entryBox = new BoxContainer()
{
Orientation = BoxContainer.LayoutOrientation.Horizontal
};

entryBox.AddChild(new Label { Text = entry.Prompt, HorizontalExpand = true, SizeFlagsStretchRatio = 0.5f });
var edit = new LineEdit() { HorizontalExpand = true};
var edit = new LineEdit() { HorizontalExpand = true };
entryBox.AddChild(edit);
switch (entry.Type)
{
case QuickDialogEntryType.Integer:
edit.IsValid += VerifyInt;
edit.PlaceHolder = "Integer..";
edit.PlaceHolder = Loc.GetString("quick-dialog-ui-integer");
break;
case QuickDialogEntryType.Float:
edit.IsValid += VerifyFloat;
edit.PlaceHolder = "Float..";
edit.PlaceHolder = Loc.GetString("quick-dialog-ui-float");
break;
case QuickDialogEntryType.ShortText:
edit.IsValid += VerifyShortText;
edit.PlaceHolder = "Short text..";
edit.PlaceHolder = Loc.GetString("quick-dialog-ui-short-text");
break;
case QuickDialogEntryType.LongText:
edit.IsValid += VerifyLongText;
edit.PlaceHolder = "Long text..";
edit.PlaceHolder = Loc.GetString("quick-dialog-ui-long-text");
break;
default:
throw new ArgumentOutOfRangeException();
}

promptsDict.Add(entry.FieldId, edit);
entryContainer.AddChild(entryBox);

if (index == ev.Prompts.Count - 1)
{
// Last text box gets enter confirmation.
// Only the last so you don't accidentally confirm early.
edit.OnTextEntered += _ => Confirm();
}
}

var buttonsBox = new BoxContainer()
Expand All @@ -79,17 +90,10 @@ private void OpenDialog(QuickDialogOpenEvent ev)
{
var okButton = new Button()
{
Text = "Ok",
Text = Loc.GetString("quick-dialog-ui-ok"),
};

okButton.OnPressed += _ =>
{
RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId,
promptsDict.Select(x => (x.Key, x.Value.Text)).ToDictionary(x => x.Key, x => x.Text),
QuickDialogButtonFlag.OkButton));
alreadyReplied = true;
window.Close();
};
okButton.OnPressed += _ => Confirm();

buttonsBox.AddChild(okButton);
}
Expand All @@ -98,7 +102,7 @@ private void OpenDialog(QuickDialogOpenEvent ev)
{
var cancelButton = new Button()
{
Text = "Cancel",
Text = Loc.GetString("quick-dialog-ui-cancel"),
};

cancelButton.OnPressed += _ =>
Expand Down Expand Up @@ -130,6 +134,17 @@ private void OpenDialog(QuickDialogOpenEvent ev)
window.MinWidth *= 2; // Just double it.

window.OpenCentered();

return;

void Confirm()
{
RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId,
promptsDict.Select(x => (x.Key, x.Value.Text)).ToDictionary(x => x.Key, x => x.Text),
QuickDialogButtonFlag.OkButton));
alreadyReplied = true;
window.Close();
}
}

private bool VerifyInt(string input)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Teleport" Text="{Loc 'admin-player-actions-teleport'}" StyleClasses="OpenLeft" />
<Button Visible="False" Name="Follow" Text="{Loc 'admin-player-actions-follow'}" StyleClasses="OpenLeft" />
</BoxContainer>
</BoxContainer>
</SplitContainer>
Expand Down
Loading

0 comments on commit 533393a

Please sign in to comment.