Commit Graph

367 Commits

Author SHA1 Message Date
Janet Blackquill
340f6b02b3 Merge branch 'master' into offmed-staging 2025-11-05 16:52:49 -05:00
Hannah Giovanna Dawson
cdbe92d37d Update DamageableSystem to modern standards (#39417)
* Update DamageableSystem to modern standards

* DamageContainerId -> DamageContainerID with lint flag

* Replace strings with protoids

* Make CVar subscription declarations all consistently whitespaced

* ChangeDamage -> TryChangeDamage, cope with C# jank

* Revert event signature changes

* Restore a comment

* Re-add two queries

* Init the queries

* Use appearanceQuery in DamageChanged

* Use damageableQuery in TryChangeDamage

* Use damageableQuery in SetDamageModifierSetId

* Final cleanup, fix sandboxing

* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage

* Re-organize DamageableSystem

* first big fuck you breaking change.

* THATS A LOT OF DAMAGE!!!

* Fix test fails

* test fixes 2

* push it

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-10-27 19:53:04 +00:00
āda
8d8af1bab7 Stack System Cleanup (#38872)
* eye on the prize

* OnStackInteractUsing, TryMergeStacks, TryMergeToHands, TryMergeToContacts

* namespace

* Use, get count, getMaxCount

* component access

* add regions, mark TODO

* obsolete TryAdd, public TryMergeStacks

* GetMaxCount

* event handlers

* event handlers

* SetCount

* client server event handlers

* move to shared

* Revert "move to shared"

This reverts commit 45540a2d6b8e1e6d2a8f83a584267776c7edcd73.

* misc changes to shared

* split

* spawn and SpawnNextToOrDrop

* SpawnMultipleAtPosition, SpawnMultipleNextToOrDrop, CalculateSpawns, general server cleanup

* Rename Use to TryUse.

* Small misc changes

* Remove obsolete functions

* Remove some SetCount calls

* Partialize

* small misc change

* don't nuke the git dif with the namespace block

* Comments and reordering

* touchup to UpdateLingering

* Summary comment for StackStatusControl

* Last pass

* Actual last pass (for now)

* I know myself too well

* fixup

* goodbye lingering

* fixes

* review

* fix test

* second look

* fix test

* forgot

* remove early comp getting

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-10-25 14:40:48 +00:00
Princess Cheeseballs
4059c29ebc Entity effects ECS refactor (#40580)
* LOCKED THE FUCK IN

* Forgot this little fella

* Crying

* All entity effects ported, needs cleanup still

* Commit

* HEHEHEHAW

* Shelve for now

* fixe

* Big

* First big chunk of changes

* Big if true

* Commit

* IT BUILDS!!!

* Fix LINTER fails

* Cleanup

* Scale working, cut down on some evil code

* Delete old Entity Effects

* Accidentally breaking shit by fixing bugs

* Fix a bunch of effects not working

* Fix reagent thresholds

* Update damage

* Wait don't change the gas metabolisms A

* Cleanup

* more fixes

* Eh

* Misc fixes and jank

* Remove two things, add bullshit, change condition to inverted

* Remove unused "Shared" system structure

* Namespace fix

* merge conflicts/cleanup

* More fixes

* Guidebook text begins

* Shelve

* Push

* More shit to push

* Fix

* Fix merg conflicts

* BLOOD FOR THE BLOOD GOD!!!

* Mild cleanup and lists

* Fix localization and comments

* Shuffle localization around a bit.

* All done?

* Nearly everything

* Is this the end?

* Whoops forgot to remove that TODO

* Get rid of some warnings for good measure...

* It's done

* Should make those virtual in case we want to override them tbqh...

* Update Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeeds.cs

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

* Fix test fails real

* Add to codeowners

* Documentation to everything

* Forgot to push whoops

* Standardize Condition names

* Fix up metabolism a little as a treat

* review

* add IsServer checks

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
2025-10-12 21:23:42 +00:00
Janet Blackquill
52b6146afb fix construction getting stuck on edges 2025-10-11 00:56:31 -04:00
Janet Blackquill
fd18a985b7 Merge branch 'master' into offmed-staging 2025-10-05 14:12:34 -04:00
slarticodefast
5227489360 Predict EMPs (#39802)
* predicted emps

* fixes

* fix

* review
2025-10-04 11:24:42 +00:00
Janet Blackquill
579ea90d49 thusd refactoring 2025-10-03 12:21:48 -04:00
pathetic meowmeow
8894eca118 Offbrand medical (#3366)
* Offbrand medical

* what if we regrade

* zombies are mostly there thats it thats a wrap xd

* here's changeling

* some bonus gut punches

* start working on the guidebook

* fix rsi and yaml lints

* my agrichem so fits

* we stay rejuvenated

* my china so laked

* debrute

* fix suicide

* fix the suicide tests

* my surgery so requires laying down

* the guidebook continues

* READ KEB PAGES

* keb vascular recoupler

* read keb medicine

* fix yaml lint

* fix the EntityRemoveConstructionGraphStep

* fix overlay init

* scalpels are not a food tool

* return of the programmer art

* my line so nieuw

* boxes deserve veins too

* mrrrp yaml

* what if we redid brain damage alerts

* bloot pressure

* kill mannitol drowsiness

* get licensed

* my read so me

* get feedbacked nerd

* fine-tune the heart stoppage conditions

* cryostasis adjustments, guidebook adjustments, fix negative strain issues

* my surgery so table

* fix heart surgery and guidebook

* medicine & defibrillator pass

* iv bags and stands

* prefills

* janet gets very sidetracked

* mostly finished iv stuff

* what if we fixed the guidebook

* halve decapoid cryostasis

* my medicines so IV

* finetune cryostasis

* less logspam

* metabolism-aware iv stands and cryopods

* give people painkillers

* yaml lint real

* fix blood build

* finish rebase

* tidy up localization

* clean up my yaml beasties...

* soft curve after exceeding maximum damage

* husks/bonedeaths

Grabbag of Offmed fixes & improvements (#3461)

* CPR moment

* Mob AI fix

* Fix brain oxygenation not updating on regeneration

* sorry gamers you cannot resist the pull

* Troll combat abilities more in softcrit

praying rn (#3467)

dont have CPR be 50% (#3468)

Make offbrand murder easier to contend with (#3473)

* e

* disrupt people in softcrit when attacking them

* ok gamers we're gaming

* forgor

Hopefully final pass before Offbrand merge (#3475)

First pass of Offbrand adjustments (#3477)

Swap blood pressure values in health analyzer (#3476)

Systolic over diastolic

Co-authored-by: Kip <32859367+kipdotnet@users.noreply.github.com>

Offbrand pass 2: Mostly bugfixes (#3480)

Fix zeds causing PVS reloads (#3482)

Offbrand pass 3: I hate surgery I hate surgery I hate surgery I (#3481)

* set up surgery ui

* test fail real

Pain/braingasps (#3487)

Offmed bundle 5 - the evil one (#3489)

* Evil cavity surgery

* les borgues

* nicotine moment

* epinephrine RNG

* legalese

* test fail real

* ok jamers cope with c4

Pass 6
2025-09-27 22:36:57 -04:00
Pieter-Jan Briers
0c97520276 Fix usages of TryIndex() (#39124)
* Fix usages of TryIndex()

Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)

This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)

This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.

Fixes #39115

Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.

* fix tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-09-09 18:17:56 +02:00
pathetic meowmeow
24f4b40881 Don't enqueue construction events without validation (#39869) 2025-09-03 14:29:50 -07:00
slarticodefast
d4f96fd1c6 predict morgue and crematorium (#39293) 2025-08-21 16:49:50 -07:00
pathetic meowmeow
39cb27fe21 Borg hands & hand whitelisting (#38668)
* Borg hands & hand whitelisting

* yaml linted

* yaml linted (x2)

* yaml linted (x3)

* my storage tests so pass

* no need for SetCount

* ok new stuff you can get fixed too

* oops

* staque

* what if we addressed feedback

* my place so holder

* what if we addresesd feedback

* what if i did it correctly

* terminating or deleted
2025-08-12 15:21:42 -07:00
Tayrtahn
c565b44965 Replace ValidatePrototypeId uses with ProtoId or EntProtoId (#38814)
* The easy ones

* For certain values of easy

* Easy test

* Hair

* Fix sandbox violations

* Sort usings
2025-07-07 21:57:05 +02:00
Tayrtahn
75db49f9c0 Clean up all missing EntitySystem proxy method uses (#38353) 2025-06-26 16:50:49 -07:00
Nemanja
524725d378 HandsSystem Refactor (#38438)
* checkpoint

* pt 2

* pt... i forgot

* pt 4

* patch

* More test fixes

* optimization!!!

* the REAL hand system

* fix RetractableItemActionSystem.cs oversight

* the review

* test

* remove test usage of body prototype

* Update Content.IntegrationTests/Tests/Interaction/InteractionTest.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* hellcode

* hellcode 2

* Minor cleanup

* test

* Chasing the last of the bugs

* changes

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-06-25 15:13:03 +02:00
TemporalOroboros
d4876be6f0 Kills TurfHelpers (#37939)
* Create TurfSystem equivalent for and obsolete TurfHelpers.GetTileRef

* Fix EntitySystem uses of TurfHelpers.GetTileRef

* Fix EntitySystem uses of TurfHelpers.TryGetTileRef

* Fix construction condition uses of TurfHelpers.GetTileRef

* Fix last use of TurfHelpers.IsBlockedTurf

* Create TurfSystem equivalent to and obsolete TurfHelpers.GetContentTileDefinition

* Fix uses of TurfHelpers.GetContentTileDefinition(TileRef)

* Fix uses of TurfHelpers.GetContentTileDefinition(Tile)

* Create TurfSystem equivalent to and obsolete TurfHelpers.IsSpace

* Fix EntitySystem uses of TurfHelpers.IsSpace(Tile)

* Fix EntitySystem uses of TurfHelpers.IsSpace(TileRef)

* Fix remaining uses of TurfHelpers.IsSpace

* Fix uses of TurfHelpers.GetEntitiesInTile

* Delete TurfHelpers.cs

* Add GetEntitiesInTile lookup methods

* Convert some GetEntitiesInTile methods to LookupSystem extension methods

* Use new GetEntitiesInTile methods

* Recycle spiderweb hashset

* Recycle floor tile hashset
2025-06-21 11:23:19 -04:00
BarryNorfolk
b2d0f7ed28 Add multipart machines system (#35969) 2025-06-02 17:02:41 +03:00
metalgearsloth
0d4f9640b5 CompFactory updates (#37559) 2025-05-20 01:08:55 -04:00
Velcroboy
d5ef9b7345 Wall inheritance cleanup (#37436)
* Cleanup walls.yml

* quick check

* Fix tilewall cmd

* More Cleanup

* Arrnrtrayiage

* Remove double parenting

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-05-16 09:17:21 -04:00
Errant
68d0a41bb4 fix unremovable items used in construction (#37292) 2025-05-09 15:43:38 +03:00
Ertanic
81507b9d52 Localizable craftmenu (#32339)
* Now the name of the target craft items is taken directly from the prototypes

* Deleting unnecessary fields

* Deleting unnecessary fields

* Added suffix field

* Added override via localization keys

* My favorite ItemList and TextureRect have been replaced with ListContainer and EntityPrototypeView

* Fix suffix

* Fix construction ghosts... maybe

* Remove suffix from UI

* Suffixes have been removed from prototypes

* Added a description for the secret door

* Fix search..?

* The Icon field of ConstructionPrototype has been removed

* StackPrototypes used in the construction menu have been localized

* TagConstructionGraphStep used in the construction menu have been localized

* The search bar has been localized

* Fix localization and prototypes

* Recipes are now only loaded when the crafting window is opened.

* Fix crooked merge grid of the crafting menu.

* Localization update

* Fix cyborg graph

* Revert "Recipes are now only loaded when the crafting window is opened."

This reverts commit 97749483542c2d6272bda16edf49612c69a0761a.

* Fix loc

* fix merge

* Fix upstream

* Some of the logic has been moved to Shared

* fix

* Small adjustments

* Very small change

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-05-01 10:21:16 -04:00
J
2a80540b70 Construction spring cleaning (#36163)
* Construction warnings cleanup

* More construction warnings cleanup

* Fix failing ITests - Remove unnecessary casts and dodgy anchroing implementation.

* Checking anchor status before setting

* Reusing shared system call

* inlining anchor setting
2025-04-16 13:02:41 +02:00
J
af9526197a Extracts magic strings from Tag calls (#36305)
* Extracts magic strings from Tag calls

When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!

* Adds missing libraries

* Remove not yet implemented TagSystem changes

* Fix tag spelling error

Genuinely surprised there was only 1!

* Styling and proper type changes

* Styling

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-04 20:20:19 -04:00
SlamBamActionman
43d08100b9 "New player" admin logging improvements (#35961)
* Initial commit

* Adjust a whoooole bunch of logs

* Also spears

* Track going crit

* Review fix

* Review fixes
2025-03-20 20:56:51 +01:00
metalgearsloth
fa35c9623d Revert "Purge uses of TransformComponent.Anchored.set. Also adds parentheses." (#35332) 2025-02-21 00:12:12 +11:00
TemporalOroboros
a4001fba1b Purge uses of TransformComponent.Anchored.set. Also adds parentheses. (#34938) 2025-02-20 23:06:39 +11:00
TemporalOroboros
f37d5c9f0f Purge uses of TransformComponent.AttachToGridOrMap (#34940)
Switches over all extant uses of TransformComponent.AttachToGridOrMap to use SharedTransformSystem.AttachToGridOrMap
2025-02-07 12:49:22 +01:00
Southbridge
bbad147973 fixrotations - Modified Targetted Entities (#34638) 2025-01-27 18:48:16 +11:00
Fildrance
4bcf3c3c0e Station AI ability to electricute doors (#32012)
* Boom! Emergency access!

* Emergency access sound

* locale

* Updated sounds

* bleh

* Door electrify base

* feat: popups on attempt to activate AI action when wires cut

* refactor: use SharedApcPowerReceiverComponent to check if AI can interact with door

* refactor: added icon and sound for door overcharge

* meta.json should use tabs not spaces

* refactor: extracted sounds for airlock overcharge to static field in system

* refactor: cleanup, ScarKy0 mentions for resources

* refactor: removed unused textures

* feat: now notification is displayed when AI attempting to interact with door which have wire cut

* StationAiWhitelistComponent is properly gating  BUI OnMessageAttempt, SharedPowerReceiverSystem.IsPowered is now used to check if device powered

* refactor: use PlayLocal to play electrify sound only for AI player

* refactor: SetBoltsDown now uses TrySetBoltDown, checks for power.

* bolts now check for power using SharedPowerReceiverSystem

* electrify localization and louder electrify sounds

* extracted ShowDeviceNotRespondingPopup, reverted airlocks not opening/closing when ai wire was cut

* refactor: cleanup

* New sprites and fixes

* Copyright

* even more sprite changes

* refactore: cleanup, rename overcharge => electrify

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-09-27 17:22:17 +10:00
ShadowCommander
6958789f37 Give prototype refactor (#29697)
* Update GivePrototype

* File scoped namespace

* Change to EntProtoId instead of ProtoId<> for better validation
2024-09-19 10:08:37 +10:00
Cojoke
ef1fadf275 Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem (#30084)
* Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem

* guap

* More fixes

* Wait you can do that?

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-09-02 13:26:04 +02:00
metalgearsloth
a89d4c750b Power stuff (#31314)
* Power stuff

- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.

* big update

* boing
2024-08-25 22:18:42 +10:00
Mervill
35c4e29db9 Remove obsolete functions from tile commands. (#31112)
* first part

* second part - file scope namespaces

* missing peice
2024-08-23 03:10:13 +02:00
themias
db427dc58f Fix cooking sizzle noise (#31096) 2024-08-18 21:01:43 -06:00
blueDev2
b16e57ee94 Add MinHealth Construction Condition (#30892)
* Add Min Health Condition and associated Locale

* Add Comment
2024-08-11 19:14:35 +10:00
Plykiya
190ceda02e Add BreakOnDropItem, update do afters, remove unnecessary declarations (#30361)
* Add BreakOnDropItem, update do afters, remove unnecessary declarations

* bola

* Changed my mind about the nuke

* gennies too

* Make the comments more clear.

* Sorry for the trailing commas

* Revert "Sorry for the trailing commas"

This reverts commit e60fd9a30977393df3344948e6d5c0ce035723cd.

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-08-08 13:39:46 +02:00
Nemanja
b3a64d4bcd Add slowdown to low temperatures (#29692)
* TemperatureSpeed component

* temperature slowdown prediction (done right)

* remove unnecessary changes

* that too

* get in line

* make it readonly

* auto pause
2024-08-05 18:07:02 +10:00
Nemanja
be7ffd89e2 AME Deconstruction Changes (#29317)
* AME deconstruction complexity

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-06-22 14:15:21 +10:00
Nemanja
221cb73d8c Fix construction rotation (#28427) 2024-06-13 10:21:48 -08:00
Leon Friedrich
2c7598fd5b Fix flatpacker (#28736)
* Fix flatpacker

* a
2024-06-08 18:48:23 +10:00
Nemanja
729e67af7f Machine-code cleanup (#28489) 2024-06-05 16:23:23 -04:00
Plykiya
c5ff647ca6 Replace obsolete EntityWhitelist IsValid usages part 2 (#28506) 2024-06-03 17:40:03 -04:00
Verm
31eb3ed62c Welding tweaks (#27959) 2024-06-02 23:28:53 -04:00
AJCM-git
09256cfaa5 Makes machine parts stackable, removes unused field in stack prototypes (#28434)
* Makes machine parts stacks, removes unused field in stack prototypes

* forgor

* Fix tests

* Fixes lathe construction. Yes. This sucks but there's no better way that doesnt involve refactoring machine parts completely

* detail

* a
2024-06-01 13:49:28 -04:00
Nemanja
5d79f897b9 Clean up RefiningSystem (#27904)
cleanup RefiningSystem
2024-05-29 11:06:50 -07:00
Nemanja
44b93e68ee Prevent stacking pipes (#28308)
* prevent stacking pipes

* access

* notafet review

* notafet review pt. 2

* not the actual fix
2024-05-27 16:37:27 -06:00
Kara
855234aa30 Resolve 'TransformComponent.MapPosition' is obsolete in content (#27939)
* Resolve `'TransformComponent.MapPosition' is obsolete: 'Use TransformSystem.GetMapCoordinates'` in content

* build?
2024-05-12 10:31:54 -04:00
Nemanja
783d3a9aa8 Actual fix for lockers and deconstruction (#27431)
actual actual locker construction fix
2024-04-28 15:26:55 +10:00
Łukasz Mędrek
8442a9142c fix: deconstruct verb on undeconstructables (#27387)
Some of prototypes don't specify their deconstructTarget node, which
made them show the deconstruct verb as deconstructTarget is set to
"start" node by default. This patch makes attempt to check if is it even
possible from current construction node to reach specified
deconstructTarget.

Fixes #27330
2024-04-27 16:30:29 +10:00