Commit Graph

329 Commits

Author SHA1 Message Date
metalgearsloth 1d63b4cfcb
Content update for UI prediction (#27214)
* Content update for UI refactor

* Big update

* Sharing

* Remaining content updates

* First big update

* Prototype updates

* AUGH

* Fix UI comp ref

* Cleanup

- Fix predicted message, fix item slots, fix interaction range check.

* Fix regressions

* Make this predictive

idk why it wasn't.

* Fix slime merge

* Merge conflict

* Fix merge

(cherry picked from commit 5896e6875266b22c565009b5d45f60ceb981d90a)
2024-05-03 00:15:32 +02:00
Whisper a87ea50246
lower max firestacks to 10, refactor flammable (#27159)
* lower max firestacks to 10, refactor flammable

* fix

* uncap fire stack damage, lower fire stack damage

(cherry picked from commit eee056eaf063caa690516bf8b4eb7e65a0199e9c)
2024-05-02 23:59:27 +02:00
deltanedas 2155f79512
make fire spreading scale with mass (#27202)
* make fire spreading scale with mass

* realer

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit fcf5057b61321920826b630384e0dc6ff5de55e8)
2024-05-02 23:52:52 +02:00
Leon Friedrich a2b5b0c3b7
Fix fixgridatmos command (#27113)
(cherry picked from commit 6ec40900ef18dc5cd61fd172354d3b55acad97e8)
2024-04-21 23:18:15 +02:00
chromiumboy 4fd43751ce
Navmap rework (#26713)
* Optimized the drawing of lines and tracked entities

* Optimized nav map updating and added thin wall support

* Added support for thin doors

* Removed floor tile seams, more line drawing optimizations

* Fixed split grids not updating correctly

* Cleaned up NavMapControl code

* Fix nav map header

* Converted nav map updates from system network messages to delta-states

* Addressed review comments

* Fixed timing issue where NavMapSystem would update before AirtightSystem did

(cherry picked from commit 009d06d97833b7700bcfaa534b20575fdbbd7db5)
2024-04-21 22:05:45 +02:00
slarticodefast a2e1dc8107
Show volume on the gas analyzer (#25720)
The gas analyzer now shows the volume of pipes, tanks, canisters and the environment.

Adjust gas analyzers so that the volume and number of moles shown corresponds to only the scanned element, e.g. a canister or single pipe in a pipenet.

(cherry picked from commit 5a5efa11cf1d68708a70d48a286cb97fde96afdf)
2024-04-21 22:05:43 +02:00
Leon Friedrich 89ac535f6c
Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly

(cherry picked from commit d2bee7ec91fef6cb2a1ee9b2aada98ae1ba136f3)
2024-04-07 14:22:09 +02:00
Leon Friedrich 01e6149cc1
Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile

(cherry picked from commit 888a3bda515a214733bf748c5d6a7e7c923a301e)
2024-04-07 14:14:34 +02:00
Leon Friedrich 01dd82ee0d
Split GasTileOverlaySystem update over two ticks (#26542)
Split GasTileOverlaySystem update over ticks

(cherry picked from commit bb5ca720fccd035e310c12b266f71081f85edf47)
2024-04-07 14:13:02 +02:00
Jake Huxell 7be31aab33
Reduced Warning Count By 130 For Full Rebuilds (#26518)
* remove deprecated entity coordinate extension functions. Reduces warning count by approximately 50

* final toCoords Removed

* Remove all unused variables and dead code paths

* remove always true variable, should be a cvar or something instead

* remove superfluous variables from tests

(cherry picked from commit 59e46aab93ca38f8d57fcad4e3a2c893737d9ad4)
2024-04-07 14:11:06 +02:00
Leon Friedrich 480c59499f
Remove atmos method events (#26402)
* Remove HasAtmosphereMethodEvent

* Remove GetTileMixturesMethodEvent

* Remove GetTileMixtureMethodEvent

* Remove GetAdjacentTilesMethodEvent

* Add TileMixtureEnumerator

* Remove GetAdjacentTileMixturesMethodEvent

* Remove IsTileSpaceMethodEvent

* Remove HotspotExposeMethodEvent

* Remove pipe net method events

* Remove device method events

* Use Entity<T>

* Misc fixes

* A

* Theres probably a few more of these

* Fix other resolve errors

(cherry picked from commit 77e029d4ca787485152dec5a4aaafd4589f9ad43)
2024-04-07 14:04:38 +02:00
Leon Friedrich 097ff5284d
Fix atmos NaN error (#26441)
* Fix atmos NAN error

* Remove redundant yaml entries

(cherry picked from commit fdb4a61487db9fc67714c913832427063abdea42)
2024-03-27 18:38:23 +01:00
Tayrtahn aa766da2c5
Code cleanup: Purge obsoleted SharedPhysicsSystem methods (#26287)
Updated calls to SharedPhysicsSystem methods

(cherry picked from commit 964c6d54caae45b205a326143f56d6458a1bbc8a)
2024-03-27 18:35:38 +01:00
Leon Friedrich 7ecc968f8c
Run `fixgridatmos` for cargo & emergency shuttle (#26382)
Fix cargo & emergency shuttle

(cherry picked from commit ec761114eacdeed6e68f9c94dddfdbec8a6e26be)
2024-03-27 18:32:40 +01:00
Leon Friedrich 239fd1d654
Partial atmos refactor (#22521)
* Reduce atmos component queries

* Remove method events

* Cache airtight data

* Make MolesArchived nullable

* Fix airtight cache

* only get tile def once

* Immutable mixtures

* firelock queries

* misc

* misc cleanup

* Trim disconnected tiles

* Fix merge issues and bugs

* Why does the PR keep increasing in scope

* debug overlay

* Fix bugs

* Fix test, remove unused events

* Add setmapatmos command

* Fix overlays

* Add map check

* A

* Resolve conflicts with #26102

* Remove some obsolete methods

(cherry picked from commit 18a35e7e83b2b71ee84b054d44d9ed5e595dd618)
2024-03-24 00:14:24 +01:00
Tayrtahn 3dd5dcadc5
Code cleanup: Purge calls to obsolete EntityCoordinates methods (#26292)
* Purge calls to obsolete EntityCoordinates methods

* Pizza defruited; rerun those tests!

(cherry picked from commit f4cb02fb0ca385c858569c07c51afb0d24ade949)
2024-03-24 00:07:58 +01:00
Tayrtahn 11eff87687
Code cleanup: Dirty(Comp) (#26238)
* Replaced uses of Dirty(Component) with Dirty(Uid, Component)
Modified some systems (notably pulling-related) to use uids.

* Missed a few

* Revert changes to pulling

* No

(cherry picked from commit 4a83c365858830e3b2ff2b94fff501256422c20e)
2024-03-24 00:04:13 +01:00
Pieter-Jan Briers 45c8c4f0b5
Fix barotrauma pressure protection (#26236)
Oops

In #26217 I re-organized the logic for the calculation. Part of that was moving the logic for GetFeltLowPressure and GetFeltHighPressure to be done before we actually check the hazard thresholds. What I didn't realize is that, with how our pressure protection is set up, these functions can return values so extreme they rebound into the other category.

For example, according to the math, when you're wearing a hardsuit in a low-pressure environment you have "felt" pressure of 1000 kPa. Yeah that's not right.

Now these functions clamp their result to OneAtmosphere, in the appropriate direction (101.3 kPa).

Fixes #26234

(cherry picked from commit db81438d30f83a542abe6c81c2ce4a5040aa3ddb)
2024-03-23 23:58:12 +01:00
Pieter-Jan Briers 00beb141ca
Fix barotrauma calculations
The math for our pressure damage (barotrauma) system is directly taken from TG. The constants are the same and the math is almost the same. However there are two errors.

1. Pressure damage started being applied within the WARNING bounds, rather than the HAZARD bounds. This means you started taking low pressure damage at 50 kPa instead of the intended 20 kPa, and also the HUD icon didn't show "danger" like it should even if you were already taking damage.

2. The calculations for high pressure damage were wrong. These are supposed to be linearly scaled, but the function was wrong so the scaling didn't actually work properly (especially when considering the fixed bounds above). This appears to be the case because the function was taken from an incorrect comment in the original source, rather than the real math.

Both of these issues are now fixed to match the TG behavior. Note that this somewhat nerfs pressure damage in non-extreme circumstances. e.g. a room at 40 kPa now gives NO pressure damage, whereas previously it would do full space damage.

The description of the pressure alerts is wrong for "low" severity, but I can't be arsed to fix that right now. Alerts don't have a way to change the description depending on severity...

(cherry picked from commit b5138b245e1782cc062b9bdf165600b7974e9ed7)
2024-03-23 23:51:54 +01:00
LordCarve f8ea31a192
Obsolete `Logger` cleanup for `EntitySystem`s part 2 (#26159)
* Kill the static InRangeUnOccluded

* Adjusted 4 more EntitySystems that were missed.

(cherry picked from commit 7d275a4b5e4188db424cc417c609dced3f9aca89)
2024-03-17 15:11:33 +01:00
LordCarve 60f2c8376d
Obsolete `Logger` cleanup for `EntitySystem`s (#25941)
* Small obsolete Logger cleanup

* Fixed three EntitySystem logs that weren't doing it right.

(cherry picked from commit aafe81512258b5a80776ada1f471b58e7507ca2d)
2024-03-17 14:46:35 +01:00
LankLTE e7d8f5e080
Diona Nymphs & Splitting (#24630)
* Porting & implementation

* Fix two stupid errors

* Human not humans

* fix audio path

* Fix test fails & update cooldown

* Work on reviews & test fail

* Rework nymph organ system.

* Make the nymph organs nospawn.

* IsDeadIC

(cherry picked from commit 407d4aed586a5143dc1dd0d31e7898f6df07a411)
2024-02-18 23:34:45 +01:00
Nemanja c3f420815f
Add events for TemperatureProtection and PressureProtection (#25165)
(cherry picked from commit 8ed32a1e42d768322ccb6dc6f5311bd58fd0dea3)
2024-02-18 23:11:15 +01:00
Pieter-Jan Briers ccea85136b
Random spontaneous cleanup PR (#25131)
* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17985876d6d112b764b2144964a9f42e)
2024-02-18 23:02:29 +01:00
metalgearsloth 2a839fcb94
Remove obsolete transform call (#24217)
* Remove obsolete transform call

Shrimple PR also fixed bad flatpack call that would break on non-standard tilesizes.

* Update calls

* weh

(cherry picked from commit 52808694e0a479c162930a0aae20e91b68bc67a4)
2024-02-08 12:23:11 +01:00
Ed 25dbae8f9c
Lock Anomaly generator to research access (#24464)
* small patch

* fix

* remove garbage

* fix

* moved to shared events

* fix

* LocId

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 498ad2d5d714c73d9212bda9d3d89d53b2001e04)
2024-02-08 12:11:07 +01:00
metalgearsloth 36e28ecfcf
Firestarter fixes (#24647)
* Firestarter fixes

- Actually networks the action.
- Namespace fixes.

* No networky for you

(cherry picked from commit a6ea8b210db079d30823e7b4d8faa32aefa17582)
2024-02-08 12:04:52 +01:00
Pieter-Jan Briers bc2f079029
Make some damage sources not cancel do afters (#24635)
- poison chemicals (HealthChange effect)
- being on fire
- guardians transferring damage to owner

(cherry picked from commit 3e3cb10a96993b711ea8aeb696f157f40c728e49)
2024-02-08 11:49:23 +01:00
Nemanja 48ad5ea014
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 <kevinz5000@gmail.com>
(cherry picked from commit c29896f505db28bf3dca9af9e6f0430dcf0f4629)
2024-01-26 22:55:53 +01:00
Pieter-Jan Briers 1c54b75da5
Dependency update / fixes / skrungle bungle (#23745)
* Give .props files 2-space indents.

* Move to Central Package Management.

Allows us to store NuGet package versions all in one place. Yay!

* Update NuGet packages and fix code for changes.

Notable:

Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.

* Remove dotnet-eng NuGet package source.

I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.

* Remove Robust.Physics project.

Never used.

* Remove erroneous NVorbis reference.

Should be VorbisPizza and otherwise wasn't used.

* Sandbox fixes

* Remove unused unit test package references.

Castle.Core and NUnit.ConsoleRunner.

* Update NUnit to 4.0.1

This requires replacing all the old assertion methods because they removed them 🥲

* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.

* Add Robust.Analyzers.Test

* Update submodule

* commit to re-run CI

(cherry picked from commit a6c9c36b688a1ba78ff4c12502e81661cf607b6c)
2024-01-26 22:33:46 +01:00
Arendian 0bb967bcfd
Incendiary projectiles and lava firestack reduction (#23479)
* Firestack reduction and FireStackOnHit added

* Slight lava tweak

* Remove component and tweaked incendiary pellets

* Incendiary grenade tweak

* Now ignites on projectile fixture or ignition fixture + incendiary grenade tweak

* flare shells now  ignite entities again

* Comment

* undo flare gun ignite

(cherry picked from commit 6bf699429818c15a72ea5bb073a98ca0559b59a7)
2024-01-26 22:11:45 +01:00
Kara 03b3e36d43
Examine prediction (#23565)
* Initial prediction

* new group handling

* groups for all examines that use multiple rn

* compile

* why was it doing this??

* handle newlines with sorting properly

(cherry picked from commit 0ae3858b69b695697ea9300609460f8ddb70ebbf)
2024-01-26 21:48:02 +01:00
metalgearsloth 5fd454608f
Small adjustment for elookup api (#22447)
* Small adjustment for elookup api

* fix

(cherry picked from commit a3516e60e753d9b05982a00b4c9be6b737dec43f)
2024-01-26 21:35:47 +01:00
AJCM-git 6b7e8b4f5b
UseDelay + ItemCooldown merge (#22502)
(cherry picked from commit 9c522c8b19f7a6f6b396c66342413572a22d7845)
2024-01-26 21:32:09 +01:00
Nemanja 150c8cd817
Buff heat and flame damage (#23238)
(cherry picked from commit cfb129c5a4fcdf996ab16defd35e24ed909ca663)
2024-01-22 21:07:51 +01:00
qwerltaz 2028184ee2
flammable entities hotfix (#23113)
* flammable fix

* move air check and ignition to if statement

(cherry picked from commit 2fe1164a03c212095aa383461335b016f9d7fb47)
2024-01-22 18:57:52 +01:00
qwerltaz cd5c92d818
Fix flammables air ignition (#23063)
* Fix welder ignition

* fix mobs on fire hotspot expose frequency

* fix shotgun pellets ignition

* ensure ignitionComp on flammable init

* \n

* Revert "ensure ignitionComp on flammable init"

This reverts commit 6915dcdc

(cherry picked from commit 3f9102839579506e8bf71f5fbf48c92328104e58)
2024-01-22 18:45:42 +01:00
Debug 6afde59998
Hopefully fix atmos issues (#656)
* Check for divide by near zero (#22876)

* Clamp after AdjustMoles() (#22907)

Clamping is needed because x - x can be negative with floating point
numbers. If we don't clamp here, the caller always has to call
GetMoles(), clamp, then SetMoles(), which makes this function not very
useful.

* Add maximum atmos temperature limit (#22882)

* Add Tmax

* Increase Tmax

* Revert "Add YAML gas reactions (#22803)" (#22939)

This reverts commit 054321d2c2c17eb55a1640150131c61c29a3eb2b.

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>

---------

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-01-07 22:10:35 +00:00
Kevin Zheng 67d3f2b94d Add YAML gas reactions (#22803)
* Add YAML gas reactions

* Convert more reactions

* Use enum names

* Convert more names

* Add migration for MiasmaCanister

* Prevent reactants from going negative

* Fix energy conservation, lift energy calculation

* Fix comment

* Comment

* Add rate multiplier
2023-12-22 23:25:34 +01:00
Kara 7decaa29e7 Convert atmos device events to ref events (#22843) 2023-12-22 23:25:05 +01:00
qwerltaz 8e25e7a1f4 Improve gas analyzer interface (#22779) 2023-12-22 23:04:49 +01:00
Leon Friedrich c51891c65f Fix index out of range exception in atmosphere system (#22770) 2023-12-22 23:04:49 +01:00
Leon Friedrich 6cefcb9930 Stop AtmosphereSystem from logging errors if an atmosphere gets deleted. (#22761)
Stop AtmosphereSystem from logging errors if a atmosphere gets deleted.
2023-12-22 23:04:47 +01:00
Leon Friedrich 05ed1723fa Rebalance fireaxe (#22731)
* Rebalance Fireaxe

* Nerf it a bit
2023-12-22 22:59:07 +01:00
Leon Friedrich e1edf78308 Add more centcomm spawning logs (#22726) 2023-12-22 22:57:03 +01:00
Leon Friedrich 23b09d6b33 Add atmos error log (#22696) 2023-12-22 22:55:22 +01:00
Leon Friedrich d0ea0a8b31 Improve atmos debug overlay (#22520) 2023-12-16 20:31:51 +01:00
Leon Friedrich b065a0a817 Atmos scaling cvar changes (#22501) 2023-12-16 20:31:51 +01:00
tgrkzus f2258e2611 tanks only produce noise with sufficient valve pressure (#22401) 2023-12-16 20:30:32 +01:00
Kevin Zheng a85bad56bc Fix heat capacity scaling (#22464)
* Correctly apply HeatScale

* Apply HeatScale on InitializeGases()

* Re-add conservative heat scaling and speedup
2023-12-16 20:19:56 +01:00