Commit Graph

36638 Commits

Author SHA1 Message Date
Víctor Aguilera Puerto f924997c03 Update submodule. 2020-08-09 14:52:21 +02:00
metalgearsloth 8f9cdccfc9
Fix do_after cancel test (#1628)
TFW local tests work.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-09 00:59:25 -07:00
Víctor Aguilera Puerto 0c419cc448 Proper DoAfterEventArgs refactor 2020-08-09 02:04:15 +02:00
Víctor Aguilera Puerto a57883e363 Refactor doAfterEventArgs 2020-08-09 01:44:44 +02:00
Acruid 622b9243de Gives the Saltern station grid a name. 2020-08-08 16:35:02 -07:00
Víctor Aguilera Puerto 30d78938fd Fix atmos bug 2020-08-08 20:11:47 +02:00
Víctor Aguilera Puerto 6963bb86cf Fix typo 2020-08-08 19:45:38 +02:00
Víctor Aguilera Puerto bb08367700 Fix tritium fires looking weird. 2020-08-08 19:44:56 +02:00
Víctor Aguilera Puerto b5a976b173
Adds tritium fire reaction and water vapor, fix gas reactions (#1623)
hehe Tritfire go BRRRR
2020-08-08 19:16:24 +02:00
Exp cc9f16e738
Adds Gas Analyzer (#1591)
* -Started Gas Analyzer
-TemperatureHelpers

* Formatting

* Adds PopupTooltip to NotifyManager

* Revert Tooltip fuckery

* Gas Analyzer gives proper error messages

* Localization

* Added a very wip gas analyzer ui

* UI works, doesn't look good but hey

* Safety checks

* Fancy WIP gas mix bar

* Gas Color

* Gas Amount shows only 2 decimal places

* -Made bar full width
-Moved gas list into a table
-Some gas bar things

* IDropped something

* Description

* -Percentage
-Padding

* ItemStatus

* -Proper Danger Warnings
-Added Warning danger state

* Pressure unit

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-08 18:24:41 +02:00
metalgearsloth 5b3b2e3207
do_after (#1616)
* do_after

Ports (most of) do_after from SS13.
Callers are expected to await the DoAfter task from the DoAfterSystem.
I had a dummy component for in-game testing which I removed for the PR so nothing in game uses do_after at the moment.
Currently only the movement cancellation is predicted client-side.

* Minor do_after doc cleanup

* do_the_shuffle

Fix nullable build errors.

* The last nullable

* Implement NeedHand

Thanks zum.

* nullable dereference

* Adjust the system query

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-08 18:16:13 +02:00
DrSmugleaf ee14d67756
Make devastation the only explosion type that removes tiles entirely (#1612)
* Make light and heavy explosions not destroy tiles to space

* Change welding fuel tank and grenade explosion values
2020-08-08 18:14:22 +02:00
Víctor Aguilera Puerto 9681907006 Fix bug where atmos could get stuck processing certain states for a long time 2020-08-08 16:55:36 +02:00
Víctor Aguilera Puerto a9a6438d74 Ignore Barotrauma component on the client. 2020-08-08 15:35:20 +02:00
py01 7f0ab2e03b
Removes obsolete PhysicsComponent from power prototypes (#1542)
* Removes obsolete PhysicsComponent from wire and power prototypes

* Updates anchorable to use CollidableCOmponent

* Map update

* map update again

* Fixes generators starting unanchored

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-08-08 14:41:12 +02:00
Exp b4f08811eb
Adds Spray Bottles (#1522)
* Spray Bottle

* -"Proper" wall detection
-Removed some using
-Fixed sound

* Just don't add it

* -Removed spill sound
-Added sound parameter to SpillHelper.SpillAt

* Now spawns Vapor instead of Puddles instantly

* -Review
-Nullable

* Reworkkkk

* AABB shittery

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-08 14:33:36 +02:00
metalgearsloth 322c2261b6
Conveyors now tickrate agnostic (#1618)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-08 12:34:28 +02:00
DrSmugleaf 228702c9e1
Fix ghosts being able to play instruments to themselves (#1611) 2020-08-07 22:30:48 +02:00
DrSmugleaf ce02bf1ca1
Fix missing component error with disposal units (#1610) 2020-08-07 22:16:47 +02:00
Víctor Aguilera Puerto ffc9a24ea0
Adds barotrauma (pressure damage) (#1605)
* Adds barotrauma, disables it for now

* At least show status effect, but don't damage the mobs

* Fix switch misuse
2020-08-07 16:23:16 +02:00
Víctor Aguilera Puerto 079937a9fe
Wall slams - Damage on high velocity impact. (#1600)
* Wallslammed!

* Removes debug logging

* Buff damage to 5 by default
2020-08-07 16:22:32 +02:00
FrostMando 8a66bf0284
Updated clothing descriptions for prototypes. (#1607)
* Updated clothing descriptions for prototypes #1597

* Update Resources/Prototypes/Entities/Clothing/Back/courier.yml

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-08-07 16:20:27 +02:00
Acruid 801c48fba8 Added a turf helper function IsBlockedTurf() for Ike. 2020-08-06 22:02:13 -07:00
Swept 85d8051bf1
Removes "spawn entities" and "spawn tiles" from the escape menu (#1606) 2020-08-07 03:46:01 +02:00
lajolico 03bc04d962
Added descriptions to prototypes (#1597)
* Girder.YML Description Addition

* Added descriptions to prototypes

* Update Resources/Prototypes/Entities/Constructible/Power/computers.yml

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-07 03:45:07 +02:00
ShadowCommander cf45beb7dc
Fix OpenCentered by setting size before position (#1604) 2020-08-06 18:06:24 -07:00
py01 01b10cb687
Node serialization change (#1497)
* NodeContainerComponent serializes a set of Nodes with ExposeData

* Fixes Nodes to work when being created by serializer

* ConduitNode

* ConduitPlacer to replace WirePlacer

* ConduitNode ConduitLayer setter

* Map update

* Comments

* Map update again

* Method ordering by privacy

* Removes conduits

* ignored component

* reorg

* map update

* readd wireplacer

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-08-07 02:47:54 +02:00
Víctor Aguilera Puerto 551c204a9f Fix GetGridAtmosphere crash 2020-08-07 02:33:08 +02:00
Víctor Aguilera Puerto aa0c8c067e Fix fillgas too, make both case insensitive 2020-08-06 15:41:17 +02:00
Víctor Aguilera Puerto d2d103fdd0 Fix addgas bug where you couldn't input the gas name instead of the Id 2020-08-06 15:37:39 +02:00
Víctor Aguilera Puerto b7c595ef36 Fix crime against humanity 2020-08-06 15:28:37 +02:00
Swept 54c0264f01
Adds "Quit Game" and "Disconnect" button to Escape Menu (#1602) 2020-08-06 13:35:32 +02:00
metalgearsloth 140f8f7647
AI reachable improvements (#1595)
Deleted regions in some instances were being retained indefinitely.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-05 16:19:00 +02:00
Víctor Aguilera Puerto c5d3bff266 Fix server crash 2020-08-04 16:11:41 +02:00
Víctor Aguilera Puerto 4546fffe70 Use IGridAtmosphereComponent interface in AtmosphereSystem 2020-08-04 15:42:24 +02:00
Víctor Aguilera Puerto a8fcaf9bb3 Trying to set temperature below TCMB sets it to TCMB. 2020-08-02 20:38:10 +02:00
Víctor Aguilera Puerto 082a5945e3 Fix missing null conditional 2020-08-02 20:19:01 +02:00
Víctor Aguilera Puerto c52d5a65f8 Fix command typo 2020-08-02 20:14:28 +02:00
Víctor Aguilera Puerto 85df48a700
Adds atmos (#1389)
* Add initial atmospherics framework

* Make walls and airlocks airtight

* Add the basic atmosphere gas system

* Atmos: move CardinalToIntVec and Offset into extention methods in EntityNetworkUtils

* Optimize vending machine code a bit.

* Address feedback from Atmos PR, make code compile

Fix use of OnMove -> SnapGridComponent.OnPositionChanged.
Added pause checking to atmos simulations.

* Improvements to the existing ZAS prototype (#996)

* Rename Volume -> Quantity in GasProperty

This makes the name consistent with the rest of the code, given that
it's meant to be a mol value.

* Replace Gas enum with GasPrototype

Unused as of yet, but laying the groundwork for future changes.

* Update AtmosphereMap, improving maths

Adds a temporary default atmosphere, hardcoded in for testing. It will
be replaced eventually.

Fixed a maths mistake in the original code involving unit conversions.

Added the Take() method to IAtmosphere, for taking some volume of
mixture out of a gas mix. This will be pretty handy in the future, but
for now it's used by walls to delete air where they are built.

* Fix merging, splitting logic for zones

Removing a cell from a zone now correctly reduces its volume.
Adding a cell to a zone now correctly increases its volume.

* Improvements to atmos code, reorganising of types

Moved GasPrototype to shared, because it's going to be used by the
client later.

Split up the atmosphere code. Now zones are explicitly their own kind of
atmosphere, which should speed up some loops and also solve
inconsistencies in the volume calculation.
GasMixtures are another type of atmosphere, for more general use.

Try to fix the splitting/merging code, which was quite cryptic and not
clear at all. It *should* work now.

* Switch zones back to MapIndices

Turns out I'm an idiot who misunderstood the code. MapIndices can be
used as one-per-tile, which is what is needed for atmos. GridCoordinates
are many-per-tile, and were causing lots of problems.

* Add zone debugging overlay

This is the first example of zone information being sent to a client.

It adds the `togglezoneinfo` command, which overlays the tiles and gas
information for the zone currently occupied by the user on the screen.
This was helpful for debugging the GridCoordinates problem.

* Fix position of atmos zone debug text

* Make AirtightComponent only activate on MapInit

This should stop it splitting atmospheres in mapping.

* Doc comments improvements to AtmosphereMap

Fix some malformed comments, inherit some useful docs, document some
more functions.

* Add zone logic for changing tiles to/from space

Zones are now correctly created when all the tiles in a room are built,
and destroyed when one of the tiles is destroyed.

* update engine

* right

* Cleanup code

* Port GasMixture, further cleanup

* Fix windows not being airtight, some other stuff

* Work on atmos

* Difference between ZoneBlocked and AirBlocked

* Big GridAtmosphereManager cleanup, zones are broken now oops

* Remove zones, add excited group implementation

* Further cleanup

* Further work on atmos

* Work on gas overlay.

* PumpGasTo and ReleaseGasTo methods for GasMixture.

* Adds Tile Overlay System.

* More work on atmos

* Gasses spread, equalize and all that

* Fix a few crashes

* Gas can actually spread from room to room after opening airlocks

* Add explosive depressurization, tile prying on depressurization, gas spreading on wall break. Etc.

* More work

* Remove atmoschem, add "performant" gas overlays

* what the fuck git

* More work I guess?

* Fix stuff, create a few (empty) components for future work

* Fix temperature

* Fix tile air sharing

* Atmos optimizations

* Further atmos optimizations

* Even more optimizations!

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Address a few reviews

* Oops, forgot to remove this

* Update Content.Server/Atmos/AtmosphereMap.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Fix compile

* Improved client gas tile overlays

* Less allocations

* Even less allocations!

* some stuff dunno

* Big refactor time, oh yeah

* it truly is 1 AM

* bruh

* No idea why now it doesn't work.
Oh well! I'll fix this on thursday 😌

* Basic atmos serialization

* Fix bugs, add VV attributes

* Start adding stuff for gas reactions

* Add a few atmos commands

* Fill gas command

* Changes to gas opacity

* Fixes I guess

* Fixes, add space wind sound

* High pressure movement!

* Better high pressure movements.

* Fix direction, maybe?

* And now it works great

* Science!

* and this is why you don't trust people

* remove logging

* Turns out I'm fucking dumb

* Work on hotspots and reactions, add tritium gas

* IGridAtmosphereComponent interface! For future unsimulated grids.

* Makes atmos updates NoGC.

* C E A S E

* Add settemp atmos command

* Important reminder.

* Remove useless AtmosCooldown.

* More work on hotspots

* Overlays for hotspots. Fire works!

* Turns out I suck at coding

* Fire texture change

* Yeah let's make that an absolute value, hmm?

* Support for atmos after teleporting grid (more or less)

* fix attempt (doesn't actually fix it)

* Make static variable not static

* Remove magic numbers

* Stopwatch moment

* Slight cleanup.

* More cleanup.

* Atmos optimizations

* Fix build

* Remove useless ghost atmos shit

* Adds CanSeeGases component for gas overlay stuff

* Component and prototype ignores

* ExcitedGroups now dispose on being merged with others

* Some tweaking.

* Atmos now uses frame time for updates.

* Nullable boogaloo

* IExamine fix

* Fix build

* Fix restartround

* Atmos tweaking, use invalid direction

* Increase high pressure movement force

* Better sort

* Update submodule.

* NULLABILITY AAAAH

Special thanks to monster860 and all monstermos contributors!

Co-authored-by: Campbell Suter <znix@znix.xyz>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-08-02 20:08:20 +02:00
Víctor Aguilera Puerto 15f31b654e Update submodule 2020-08-02 19:52:51 +02:00
Exp a73c5ba323
Fix removehand throwing exception when no hand exists (#1570)
* Fix removehand throwing exception when no hand exists

* Message when you have no hands
2020-08-02 17:31:43 +02:00
Exp c61e6d541b
Moves ExamineSystem to Shared & adds next step info to construction examine (#1567) 2020-08-01 17:37:12 +02:00
metalgearsloth 7f0c379e87
Fix reachable merges (#1550)
Turns out the last PR revealed another issue but this will fix #1547

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-01 14:13:44 +02:00
DrSmugleaf 808791f498
Fix disposal unit power issues (#1564)
* Fix being forever eaten by an unpowered unit

* Add 0 hands check to getting out of an unit

* Add engage check when the power is changed

* Remove redundant serializable field

* Add queueing an autoengage when power is turned back on, the unit is engaged and it doesnt flush with items inside

* Make TryQueueEngage check for no contained entities

* Remove redundant check

* Fix flushing animation not being played when powering an engaged unit
2020-08-01 14:10:24 +02:00
Exp d7d36f090a
Fixed Construction Zip Sound Path (#1565) 2020-08-01 12:45:38 +02:00
Víctor Aguilera Puerto 07de9b4014 Update submodule. 2020-08-01 12:30:30 +02:00
DrSmugleaf 9277ed5248
Stop caching connected tubes and discover them on each step (#1554) 2020-08-01 03:45:40 +02:00
Víctor Aguilera Puerto bf30a68a5e Fixes RD and sec officer as well. 2020-08-01 02:37:34 +02:00
Víctor Aguilera Puerto 1614714232 Fix HoP job being broken due to clothing prototype ID issues 2020-08-01 02:33:00 +02:00
DrSmugleaf 9063379af9
Fix build (#1551)
* Fix conveyor and conveyor switch serialization

* SS14 in reactive when

* Fix new test fail with units being able to accept items when unpowered
2020-08-01 01:20:41 +02:00