Commit graph

5425 commits

Author SHA1 Message Date
Perry Fraser
f762b4b23f
Slightly rework pathfinding obstacle avoidance and handling (#38056)
* fix: fix NPC route cost overlay mode

* feat: adjust pathfinding weights

Plus drive-by import trim.

* feat: rework pathfinding obstacle avoidance

* review by Pok

* fix merge

* Update NPCSteeringSystem.Obstacles.cs

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-05 17:46:47 +11:00
metalgearsloth
408ac85084
Stop overlays resetting world transforms (#45547)
* Stop overlays resetting world transforms

* oop
2026-10-05 17:43:35 +11:00
metalgearsloth
55961aa603
Update for new render API (#45883)
* Update for new render API

- Fix mob movement incorrectly causing rotation lerps sometimes.
- Update API calls to use the new render-specific methods.

* Thanks rider

* augh wrong event

* Buckle, vehicle, and mover fixes

* Rename render poses to render transforms

* garbage
2026-10-05 17:31:10 +11:00
metalgearsloth
1f1c5aba10
Hotfix codeword nullability (#46327) 2026-10-05 05:25:26 +00:00
Whatstone
763186613f
Bugfix: Fix floating firelock pressure/temp warning lights (#46007)
* Firelock: temp/pressure layers in the component

* edge firelock too

* simplify

* mm inconsistent spacing
2026-10-05 02:44:27 +00:00
Whatstone
07f97fffa6
Cleanup: Resolve/suppress many obsolete warnings, delete EntityPrototypeHelpers. (#46141)
* Resolve warnings, mostly obsolete

* resolve via the entitymanager directly, not wref

* Ent<T>, why not

* minimize test diff

* StorageTest: consistent print order

* ChameleonProj: use Disguised value consistently

* GasArrayTest: TryComp

* OrganPickingMarker: cache ILocalizationManager

avoids warning from Loc.TryGetString, and avoids multiple IoCManager hits

* FormattedMessage.FromMarkup to FromMarkupOrThrow

* rerun tests 🙏
2026-10-05 01:58:03 +00:00
Whatstone
e91add1eae
Bugfix: Global comms consoles work without a station check. (#45836)
* Comms console consistency

* alert-level-unknown is kill

* Address Pok's suggestions

Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>

* Remove unneeded string interpolation from AlertLevelSystem.cs

1 char webedit gang

---------

Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>
2026-10-05 01:42:07 +00:00
Whatstone
838aecdccc
Allow secondary/tertiary config atmos entities to be copied in the map editor (#45950)
Add SandboxCopyableComponent
2026-10-05 01:41:31 +00:00
Whatstone
d9ffbf1d03
Cleanup: AppearanceSystem.TryGetData to AppearanceChangeEvent.TryGetData (#45373)
* First impl. of appearance TryGetData cleanup

* Handful of fixes

* DamageVisuals: fix HandleDamage call, inheritdoc

* bunch of unused AppearanceSystem instances

* Handful more unused appearance systems, inheritdoc

* JetpackSystem: Ent<T>

* cleanup roundup, more Ent<T>

* a few lingering AppearanceSystem.TryGetData calls

* more lingering AppearanceData access

* Remove unnecessary inheritdoc

* once again, with feeling
2026-10-05 00:45:37 +00:00
Whatstone
601cf7928f
Bugfix: Direction in SandboxSystem copy is grid-local if possible. (#45982)
* Fix SandboxSystem rotation

* format

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-05 00:41:18 +00:00
portfiend
b9b794deef
Microwave Refactor and Prediction (#43129)
* adjust fields of meal recipe prototype

* document microwave recipe datafields

* use file scoped namespace for microwave recipes

* more of this

* localize every microwave recipe

* make microwave system shared

* refactor recipe reagent contents

* refactor recipe solids + add material ingredient datafield

* im making this a bit less silly

* awa

* move this shit out

* move this shit out also

* refactor Wzhzhzh

* im gonna shorten this parameter by 1 actually

* move this into recipes

* make processcontents a little better(?)

* clean imports

* rename a struct

* use cooking ingredients struct

* comment

* use whitelist for this

* unused dependency

* rearranged the parameters of get recipe portions

* rearrange some stuff

* clean up more imports

* move container related functions into separate file

* move this function out of ProcessContents

* prevent microwaves from having items inserted while active

* use IsPowered in microwave system

* use byref syntax and Entity<>

* moving the override up
sorry i like it being up here

* refactor microwave updating

* clean up recipe finish logic

* im renaming this function actually

* move some functions around

* move more stuff around

* some comments

* fix compiler error

* fix the yml of all microwave recipes

* use materials instead of solids for this stuff

* oops

* fix this

* turn microwave sparks into datafield

* move activelymicrowaved events into separate folder

* make UpdateUserInterfaceState use entity only

* rearrange some functions

* move UI functions out

* comment microwave UI stuff

* more comments

* comment recipe functions

* refactor GetTotalIngredients to use an operator

* give CookingIngredients addition methods

* comment the rest of CookingIngredients

* make subtraction functions clearer?

* remove redundant comment

* handle zero/negative ingredient cases

* simplify subtract contents logic

* fix these comments

* typo

* add microwave recipe test

* move active microwave methods

* comment active microwave methods

* comment cooking methods

* comment microwave methods

* change setappearance to use entity<>

* add some public api decorators

* comment all of MicrowaveComponent

* use file-scoped namespace for MicrowaveComponent

* comment

* fix baguette sword

* maybe...?

* oh oops

* document the rest of the owl

* kill the massive YML breaking change

* fix protoman dependency

* move shared microwave stuff to SharedMicrowaveSystem

* fix usings

* move microwave components to shared

* fix up microwave datafields

* move APIs to shared

* move activemicrowave methods to shared

* initialize on shared

* move ui functions to shared

* add actor here

* stuff

* predict microwave update loop

* make clientside microwave system

* adjust the update loop for microwaves

* clean up

* add field deltas to microwaves

* dirty fields instead of whole component

* move this to the partial

* move GetRecipesForMicrowave to shared

* comments

* predict microwave BUI

* oops

* refactor microwave bui update

* move UI messages to shared

* move messages to UI file

* move init to shared

* move container methosd to shared

* oops my using

* move cooking functions into partial

* move cooking methods to shared

* move microwave recipe methods to shared

* move the rest of the microwave events to shared

* update imports

* remove custom type serializer

* better (?) microwave UI prediction

* fix list notations

* OK IT WAS THE DATAFIELDS

* add IOC inject

* dont use IOC for htis

* sealed

* prediction fixes pt1

* make microwave cooking updates more consistent

* datafield tweaks

* test for multiple portions in microwave recipes

* test for multiple recipe portions

* better(?) prediction for malfunctions

* remove redundant comment

* prevent solution reactions in microwave

* cleanup some microwave stuff

* eh i think this should be container actually

* this can be API i think

* reduce system redundancy

* this has to be public

* use resolve pattern for explode

* use GetMicrowaveContents in microwave system

* this can be an API too

* add conversion script for unlocalized recipes

* use EnsureComp instead of AddComp

* suffering

* fix recipe prediction

* fix the audio

* reduce redundant networking

* i think this should be autopaused?

* nevermind we use dynamic portions in the test

* oops i wrote the test wrong

* make lemoon cake take 2 lemoons again
sorry test fail

* rename "materials" to "stacks"
realized theyre different

* add stack guidebook quantities

* Kill audio

* fix lemoon cake recipe for real?

* mark PortionedRecipe as a datadefinition

* fix the microwave timer

* review

* cleanup

* Update SharedMicrowaveSystem.Recipes.cs

* update

* add audio params

* review: inject microwavesystem

* review: named variable

* review: move dependencies

* review: use gametest for recipe test

* review: make access attributes standalone

* rename prototypes and datafields

* review: rename this var

* review: move this function down

* review: remove these scripts

* actually this should stay

* refactor cook time buttons

* review: use a color name for this

* fix timer reset

* Dirty

* review: make ActivelyMicrowavedComponent networked

* review: slarti comments part 1

* review: remove serializable attribute from CookingIngredients

* rename file

* review: more microwave audio boilerplate. yippee!

* review: use resolve pattern for TryGetStackId
i dont like the way this makes the rest of the code look but we ball maybe. i dont know what else to do here

* review: move ui update to constructor

* review: kill LastCookUpdated

* actually i do this instead

* fixed up the PR

* cleanup

* ///

* Update microwave.yml

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-04 23:38:48 +00:00
Whatstone
09ac03b932
Door/FirelockComponent cleanup + nullable layer states + firelock panel fix (#44714)
* destroy firelock empty sprites with fury

* fix the meta.json

* remove unused states

* we need all the layers

* string? never heard of it

* DoorSystem cleanup, FirelockSystem layer checks

* DoorComponent cleanup

* FirelockComponent cleanup

* firelock panel animation

* fix offset (-15/16, bad math)

* component cleanup and comments

* door cleanup

* 9-state firelock animations, no locked/deny state

* "comments"

* dedicated edge firelock panel, null airlock states

* screw it, subscriptions for airlocksystem too

* format

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-04 22:47:04 +00:00
InsoPL
cfd925d9e7
Vacuum shader (#46038)
* init

* slider

* fixes

* fixes

* vacuum

* toggle

* turned on be default lol

* typo

* mediump

* marker thingis

* GetWorldPositionRotationMatrixWithInv

* cvar dynamic

* fixes

* magic numbers bad

* discard

* refactors will continue until clean code improves

* format

* comm

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-10-04 12:58:17 +00:00
SlamBamActionman
64381ef101
[Stable -> Master] Hotfix: Fix melee wideswing damage exploit (#46299) (#46312)
Hotfix: Fix melee wideswing damage exploit (#46299)

* Initial commit

* TrimExcess to Take
2026-10-04 12:11:29 +02:00
SlamBamActionman
94087a918a
Hotfix: Fix melee wideswing damage exploit (#46299)
* Initial commit

* TrimExcess to Take
2026-10-04 11:50:25 +02:00
Whatstone
06ebdd462b
Cleanup: Rewrite TextScreenSystem. Timers now wrap the text screen. (#45784)
* Half the way to making the text screen less jank

* quarter-assed timer

* partial update

* fleshing out timing & scrolling in update

* common IGameTiming

* Back to AppearanceData

* partial appearance data system

* funny timer states

* mostly working timer scroll (damned edge pixels)

* screen: scroll offset + hide

* SignalTimer: remove time set on text update

* extend for timer

* TextScreenVisuals: cleanup

* restore old names

* Return old names, write more comments

* fix textscreensystem ref, consistent timer frame

* comments, "TextScreenVisualsComponent"

* TextScreenTimerVisualsComponent, diff reduction

* region

* system order

* no "client-side" comments

* small bugfixes & cleanup with devicenet refactor

* consolidate string formatting

* Restore ETA/ETD text

* No need for DefaultText for regular screen text

* Address Pok's suggestions

Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>

* formatting

* pok suggesto round 2, blyatin-1

also clean up the string vs. display value mess

* TextScreenSystem.GetString -> TimerDisplay.ToStr

* D2 begone!

* constants to component values

* comment update + SignalTimerWindow whitespace

* a touch of numerical safety

fixes a few errors from pasting huge text

* fields aren't properties :^)

* DataDef time

* Update TextScreenSystem.cs

* Update TextScreenTimerVisualsComponent.cs

* return the pause, bunch of comments, missed a comp

---------

Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>
2026-10-02 22:36:32 +00:00
ProPeperos
101560b382
In gas mixer, the Primary port is now called Back port (#46271) 2026-10-02 18:48:34 +00:00
Princess Cheeseballs
09b80ab993
Make codewords mind role based (#46167)
* make codewords mind role based

* whoop
2026-09-30 06:53:09 +00:00
Absotively
f61de36a2e
Minor gas device UI tweaks (#42710)
* Use FancyWindow, margin of 10 for most gas devices

* Use FancyWindow, margin of 10 for gas analyzer, gas canister UI

* Adjust gas UI min sizes, resizeability, keyboard handling

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
2026-09-30 05:52:07 +00:00
Whatstone
e78c18669a
Fix spawn entity guidebook text, missing admin shuttle window fluent keys (#45416)
* fix fluent bugs

* too much space at end of file
2026-09-30 05:20:32 +00:00
nekokiwa
e01d0f9dfa
Increase Station Beacon UI size to show apply button (#46238)
* increase beacon window MinSize and default size to show apply button

* reduce margins so apply button is closer, thanks to whatston3

* Update minimum size, remove unecessary SetSize

---------

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
2026-09-29 14:06:11 +00:00
Absotively
e0f899b9e0
Switch buttons for more power switches (#42631)
* Switch buttons for battery breakers

* Switch button for PowerCharge UI

* Switch button for particle accelerator power

* Remove strings used by removed control

* Remove now-unused button group
2026-09-29 05:08:09 +00:00
AftrLite
340a74f453
Sharedify more of GlobalSoundSystem (#46120)
* initial commit

* documentation

* inheritdoc

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-09-28 15:05:56 +00:00
āda
b924dedb4f
Upgrades to attribution UI (#45523)
* mega commit

* small commit

* better generic

* comment

* fix annoyance

* refactor: remove unused using

* refactor the control

* reset scroll

* refactor: reorder members of IntegerLineEdit

* refactor: whitespaces and members ordering

* Update Content.Client/UserInterface/Controls/IntegerLineEdit.cs

Swap private fields for value fields

Co-authored-by: Fildrance <fildrance@gmail.com>

* this is why you never commit through github

* revert list attribution for source

* oops

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: Fildrance <fildrance@gmail.com>
2026-09-27 19:18:31 +00:00
NotSoDamn
7e6d2b28d2
Move edit button in PermissionsEui (#45420)
Move edit button to first column in PermissionsEui admin list

Compute combined flags earlier so we can create the edit button before other columns.
2026-09-25 15:21:45 +00:00
Jessica M
696eda3c8a
Fix ID card names can use markup in PDAs (#44426)
remove markup
2026-09-25 12:08:00 +00:00
SlamBamActionman
19bc31aef7
Add "new player label" over the head of players joining the game for the first time (#44709)
* Initial commit

* RMC? I 'ardly know 'er

* Sprout

* Rework it to use job icons

* Revert the one change

* Always the one yaml

* Easy review changes

* We do a little salami

* Review changes

* NIGHTMARE NIGHTMARE NIGHTMARE

* Update to use StatusIconPrototype only

* Remove async

* Aaaand remove the comment, bah

* Review fixes

* Update master

* Add the ability for ghosts to see

* Byte backing

* Review fix + comment

* Update to 90 min

* Add todo message
2026-09-24 15:34:37 +00:00
Pok
95ff69598b
Text black outline (part 2) (#45717)
* textoutline-2

* Update AdminNameOverlay.cs
2026-09-23 21:18:43 +00:00
āda
86e633be6e
Disposal Units tag their contents + UI comp state (#45613)
* commit

* also flipped

* oops

* fuck it added to the UI

* fix micro annoyance

* Unify components also doesn't work yet

* reuse the existing UI also clean up the UI also applying state headache

* cheat code

* flippy

* More interface changes

* yaml ;p

* private tagger

* betterer tagger

* private unit window

* limit tagger window

* access blocked

* typo

* validate

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2026-09-22 08:55:54 +00:00
AftrLite
3d022fff3d
Move RuleGridSystem to Shared (#46116)
* wow i wonder if this works

* fix my own stupidity
2026-09-22 04:18:31 +00:00
Whatstone
fb181f12d0
Bugfix: Fix error in rules shown on connect from TextLinkTag ChatSystem resolution (#46115)
* TextLinkLabel/Tag: function without valid ChatSys

* hang on that comment was fine
2026-09-22 04:05:34 +00:00
Whatstone
ad593c8396
LatheMenu: cache where possible in PopulateRecipes (#46110)
* LatheMenu: cache where possible in PopulateRecipes

* Princess Cheeseballs' review + protected HasRecipe

Co-authored-by: Princess-Cheeseballs <66055347+Princess-Cheeseballs@users.noreply@github.com>

* private HasMaterials with comment

---------

Co-authored-by: Princess-Cheeseballs <66055347+Princess-Cheeseballs@users.noreply@github.com>
2026-09-21 23:18:14 +00:00
cashew
cc588dc278
Fix chat name colors (#46109)
* actual name color

* doc update
2026-09-21 18:09:30 +00:00
Whatstone
dabda1f8a5
StealthSystem: disable InteractionOutline when turning the stealth shader on. (#45694)
* StealthSystem: return InteractionOutline interact

* scamboni

---------

Co-authored-by: Fildrance <fildrance@gmail.com>
2026-09-21 13:09:25 +00:00
JiyuSoftware
e2b66e0318
Slime inventory bugfix (#46014) 2026-09-21 10:17:21 +00:00
eoineoineoin
1a22fc0228
Fix empty popup texts being raised (#45728)
* Don't raise empty popups

* Discard whitespace popups, for good measure
2026-09-19 21:20:12 +00:00
cashew
86adeec6db
Fix OnAttachedChanged Lag when having a long chat history (#46050)
* I fucking hate chat code and UI code

* while I'm at it I'll make this prettier

* docs

* typo

* testfail

* reset chat upon joining game

* move code

* remove unused imports and add doc

* doc

* final commit

* oop

* Revert "reset chat upon joining game"

This reverts commit a851319521193d099b6d1571631b63917500bc47.

* review stuff

* testfail
2026-09-19 21:10:03 +00:00
little-meow-meow
b9a1650d4e
feat: ambience volume controls weather sfx volume (#45880)
* feat: weather volume slider

Signed-off-by: little-meow-meow <204685920+little-meow-meow@users.noreply.github.com>

* use ambience volume

---------

Signed-off-by: little-meow-meow <204685920+little-meow-meow@users.noreply.github.com>
2026-09-19 21:02:03 +00:00
AndrewFenriz
70cd75a247
Standardize UI separators (#45820)
* remove unused using

* move VSeparator

* remove unused using

* move HSeparator

* remove BOM

* add Separator

* migrate

* fix separator migration

* remove old separators

* clean separator migration

* clean separator formatting

* cleanup

* update SeparatorSheetlet
2026-09-19 20:16:18 +00:00
AndrewFenriz
6763364c10
Clean up obsolete chat styles (#45868)
* migrate

* upd

* update!
2026-09-19 18:23:51 +00:00
AndrewFenriz
020112bf99
Migrate legacy UI colors and fix green button styling (#45889)
* migrate

* update ReplayLoadingFailedControl

* remove BOM
2026-09-19 18:11:23 +00:00
AndrewFenriz
06ee56e042
Migrate legacy font helpers and remove unused StyleNano font rules (#45888)
* migrate fonts

* remove old code
2026-09-19 18:09:18 +00:00
AndrewFenriz
ce3fe97a58
Migrate grid panel backgrounds to the Navy palette (#45891)
update
2026-09-19 18:08:52 +00:00
Whatstone
b062b7305d
Small lights flicker on ghost boo, make a quiet noise when turning on, and light flickering is now quieter. (#46077)
* Add SpookyPoweredLight to PoweredSmallLightEmpty

* small light makes the flicker noise >:)

* SHUT UP

* reduce light_tube_on.ogg by 4 dB, no small tonk

small light no longer makes the flicker noise <:(

* hang on a minute

* fix the other instance of AnimationTrackPlaySound

* there is... another...
2026-09-19 14:15:43 +00:00
AndrewFenriz
c48d77c0d2
Predict SpriteMovement visuals (#45930)
* small cleanup

* predict
2026-09-19 07:21:57 +00:00
Whatstone
f8b96b3b17
Add unshaded positronic brain & MMI layers (#45655)
* unshaded positronic brain/mmi lights

* posibrain-occupied: partial alpha on trail

* Use var, not specific types

* peaceful-joules' comments + MMIVisuals comments

* slightly more accurate copyright

* return the slab

* Apply suggestion from @Pok27

0 reading

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* hate

---------

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
2026-09-19 02:55:23 +00:00
Whatstone
a1c0002721
TimerTriggerStatusControl: respect Examinable, less needless precision (#45630)
mystery timers + precision
2026-09-19 02:04:02 +00:00
AndrewFenriz
53e29ab962
Move admin smites to prototypes (#45550)
* Add prototype-backed admin verb framework

* Add reusable admin verb operations

* Add smite-specific admin operations

* Migrate admin smites to prototypes

* More docs for god of docs

* We dont have prediction here, so...

* Final cleanup

* Fix adminSmite

* Add segment display control

* Add generic thermoregulator

* Add thermobath systems

* Replace hotplate with thermobath

* Refine thermobath layout

* move simple smites to effects

* move comps to effects

* move add action to effect

* move add mind role to effect

* move add user interfaces to effect

* move godmode to effect

* move eye zoom to effect

* move speed swap to effect

* move spill bloodstream to effect

* move remove organs to effect

* move cream pie to effect

* move slip to effect

* fix server effect usings

* move homing rod to effect

* move locker stuff to effect

* move tabletop dimension to effect

* move pinball to effect

* move yeet to effect

* move silicon laws to effect

* move ghost kick to effect

* remove admin operations

* revert sht

* remove BOM

* use admin verb prototypes for smites

* add heart attack smite prototype

* docs update

* fix AdminSmiteVomitOrgans

* split and move to shared

* move to shared

* move to shared and predict

* PredictedQueueDel

* fix Popup

* fix HomingRod

* port DeleteEntityEntityEffectSystem

* fix StuffIntoLockerEntityEffectSystem

* upd

* fix eye

* fix movement

* fix!!

* fix and doc

* Add admin verb category prototype

* upd AdminVerbPrototype

* split verbs

* SuperSuperSuperBonk

* Update PopupMessageEntityEffectSystem.cs

* fields

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-09-18 19:01:16 +00:00
Whatstone
2d25896763
InstrumentMenu: Channels panel expands with the window (#46033)
* Vertically expanding channels, -pointless Controls

* scamboni

* XAML control for the base midi CFG item
2026-09-18 04:54:08 +00:00
Whatstone
a023e5784c
Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00