Commit Graph

19531 Commits

Author SHA1 Message Date
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
Acruid
86f74b35d1 Made all overlays compatible with the new Overlay changes in engine. 2020-07-31 14:01:34 -07:00
DrSmugleaf
7a983062a9 Fix disposal units in general (#1552)
* Makes disposal units able to be entered when unpowered

* Make the unit's light turn off when unpowered

* Remove event handlers on component removal

* Make the disposal unit's lever engage when queueing an auto engage

* Autoengaging the lever on insert was a mistake

* Make the engage button active when engaged

* Make the engage button toggleable

* Fix nullable error
2020-07-31 14:50:46 +02:00
Víctor Aguilera Puerto
eb09281a18 Fix wrong prototype ID 2020-07-31 02:35:04 +02:00
Pieter-Jan Briers
448423a0b2 I forgot to fix the bar sign. 2020-07-31 01:29:55 +02:00
Pieter-Jan Briers
d35391c4e8 Fix the map file.
The map got transitioned into postmapinit erroneously. This fixes that.
2020-07-31 01:24:35 +02:00
Pieter-Jan Briers
8fdb9cbe80 Fix potted plant container name. 2020-07-31 01:24:35 +02:00
DrSmugleaf
7c1acf2fe1 Fix disposals anchored test and fix disconnect method (#1545) 2020-07-31 00:12:45 +02:00