Commit Graph

57 Commits

Author SHA1 Message Date
Víctor Aguilera Puerto
cb15ef8ebc Fix atmos bug with gasmixture serialization 2020-09-11 12:53:08 +02:00
Víctor Aguilera Puerto
4c7c7d2f72 Merge branch 'master' into 2020-08-19-firelocks 2020-09-09 22:12:38 +02:00
creadth
7baa0a4391 Fire damage (#2024)
* Moved the uplink creation code to the PresetSuspicion.Start method to ensure uplink created when we give the traitor role
Moved the starting TC balance to cvars

* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature

* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system

* small refactoring for checking on airless tile in MetabolismComponent

* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature

* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system

* small refactoring for checking on airless tile in MetabolismComponent

* Removed Pressure property from BarotraumaComponent
Changed CanShiver method to match style of other CanX method in ActionBlockerSystem

* Merged EntityCoordinates and changed components to reflect the change

* Fix typo

* Wrapped string to Loc.GetString
Added CanSweat
Refactored dead state check
2020-09-09 17:03:27 +02:00
Víctor Aguilera Puerto
2d76fbb3c4 Big optimizations 2020-09-06 18:32:38 +02:00
Víctor Aguilera Puerto
bc972156bb Fix firelocks 2020-09-06 17:34:45 +02:00
Víctor Aguilera Puerto
d58b7f0ebe whoops 2020-09-06 17:15:16 +02:00
Víctor Aguilera Puerto
d758e84e8d Merge branch 'master' into 2020-08-19-firelocks
# Conflicts:
#	Content.Server/GameObjects/Components/Atmos/AirtightComponent.cs
2020-09-06 16:56:43 +02:00
DrSmugleaf
48b61f6bcc Replace every usage of GridCoordinates with EntityCoordinates (#2021)
* Update RobustToolbox

* Transition direct type usages

* More updates

* Fix invalid use of to map

* Update RobustToolbox

* Fix dropping items

* Rename name usages of "GridCoordinates" to "EntityCoordinates"

* Revert "Update RobustToolbox"

This reverts commit 9f334a17c5908ded0043a63158bb671e4aa3f346.

* Revert "Update RobustToolbox"

This reverts commit 3a9c8cfa3606fa501aa84407796d2ad920853a09.

# Conflicts:
#	RobustToolbox

* Fix cursed IMapGrid method usage.

* GridTileLookupTest now uses EntityCoordinates

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
2020-09-06 16:11:53 +02:00
metalgearsloth
b7e18facda Change HighPressureMovements to use GridTileLookup (#2025)
* Change spacewinds to use GridTileLookup

* Add tile lookup tests

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-09-06 15:44:49 +02:00
Víctor Aguilera Puerto
d89188a742 Merge branch 'master' into 2020-08-19-firelocks
# Conflicts:
#	Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs
#	Content.Shared/Maps/TurfHelpers.cs
#	SpaceStation14.sln.DotSettings
2020-09-06 00:17:48 +02:00
Víctor Aguilera Puerto
6969b79c1c Improves atmos even more.
* Adds AtmosCooldown to tiles, so they stop being active after a certain number of cycles without a cooldown reset.
* Fixes adjacentTileLength in ProcessCell. It wasn't being set beforehand, (probably) causing some incorrect air shares.
* Removing a tile from active tiles no longer unexcites every other tile in their excited group. (Basically, Dismantle in ExcitedGroup's Dispose() method no longer unexcites tiles)
2020-09-04 17:40:44 +02:00
DrSmugleaf
97a603b0b6 Add UnsimulatedGridAtmosphereComponent and a command to add it (#2019)
* Add UnsimulatedGridAtmosphereComponent

* Override prytile, repopulate, invalidate and revalidate

* Attributes
2020-09-04 12:22:33 +02:00
DrSmugleaf
8f9ed2f562 Replace usages of ISharedNotifyManager and IServerNotifyManager with extension methods (#1965)
* Replace usages of ISharedNotifyManager and IServerNotifyManager with extension methods

* Remove redundant code
2020-09-01 12:34:53 +02:00
Víctor Aguilera Puerto
52e98e29d7 Support for non-fulltile firelocks! 2020-08-30 15:00:40 +02:00
Víctor Aguilera Puerto
c137d1bc16 changes dunno 2020-08-30 13:20:08 +02:00
Víctor Aguilera Puerto
16f0eebf15 Merge branch 'master' into 2020-08-19-firelocks
# Conflicts:
#	Content.Server/GameObjects/Components/Atmos/AirtightComponent.cs
#	Content.Server/GameObjects/Components/Atmos/GridAtmosphereComponent.cs
#	SpaceStation14.sln.DotSettings
2020-08-28 14:35:45 +02:00
Víctor Aguilera Puerto
fb0ac3d70e Atmos optimizations (#1944)
* Adds IFireAct, ITemperatureExpose

* Use AtmosDirection instead of Direction for Atmos

* Refactor atmos to heavily rely on arrays and bitflags.
Adds F A S T M O S and reduces atmos tech debt heavily.

* Optimize and fix more stuff

* Kinda improve superconduction

* Pipenet is a word

* T U R B O M O S

* Address reviews

* Small optimization

* Superconduct is also a word

* Remove check

* Cleanup tile atmosphere

* Correct a comment
2020-08-28 14:32:56 +02:00
py01
7b12d4e08c PipeNet (#1626)
* PipeNode

* Pipe prototypes

* Fixes Default NodeGroup not being registered by NodeGroupFactory

* GasNet

* PumpComponent

* IPipeNet

* PipeComponent

* misc naming, yaml

* PipeComponent rework

* PipeNet gas transfer from pipes

* PipeNet correctly combines gas on combining with other group

* Client ignores piping components

* AfterRemake

* PipeNet remake simplification

* IGasMixtureHolder on PipeComponent, IPipeNet

* PipeContainerComponent

* BasePump

* DebugPump

* IgnoredComponent fix

* Pipe LocalAir and Air

* comments

* Pump fix

* PipeNet fix

* name simplification

* PipeDirection name changes

* BaseVentComponent and DebugVentComponent

* Moves Pipe to own file

* DebugVentComponent moved to own file

* BaseScrubberComponent

* DebugScrubberComponent

* IgnoredComponents update

* scrubber prototype

* vent prototype fix

* comments

* Removes vent and scrubber PipeDirection check

* PipeContainer, Pipe, and PipeNode refactor

* Yaml cleanup

* pump prototype fix

* Removes AssumeAir usage from old IGasMixtureHolders

* Simplfies Vent & Scrubber to use AtmosHelper methods

* Vents and scrubbers invalidate the coordinate they changed the gas of

* UpdatedPipingComponent

* ScrubberComponent renamed to SiphonComponent

* Removes PumpSystem

* Removes framTime from UpdatedPiping

* PipeNetDevices

* PipeNetDevice updated by GridAtmosphereComponent

* PipeNets react from update in GridAtmosphereComponent

* GridAtmosphereComponent stores PipeNets/PipeNetDevices to be updated in queue

* diff fix

* Removes debug gas starting in pipes

* type safety in IPipeNet when combining groups

* null checks

* GridAtmos stores PipeNets and PipeNetDevices in List

* comments

* rogue curly bracket

* ProcessPipeNets update fix

* RemovePipeNet fix

* PipeNet update() unique index

* fix diff

* Integration test fixes

* Error Logging

* error fix

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-08-27 17:45:27 +02:00
DrSmugleaf
4f8fbe2749 Fix parallel tests unreliably failing due to statics in Atmospherics (#1914)
* Fix atmospherics statics unreliably failing parallel tests

* Cache getting atmosphere system
2020-08-25 16:14:26 +02:00
SoulSloth
df823d2245 Add Flashlight Visualizer/states (#1861)
* Add art assets for cloning

* Added a 'Scan DNA' button to the medical scanner

* Made the UI update unconditional for the medical scanner until checks for power changes are in place

* Update Medical scanner to reflect powered status and fix #1774

* added a 'scan dna' button the the medical scanner that will add the contained bodies Uid to a list in CloningSystem, fixed an issue with the menu not populating if the scanner starts in an unpowered state

* Add disabling logic to 'Scan DNA' button on medical scanner

* Removed un-used libraries

* Added playing parameter to radiatingLightComponent, changed it's animation key to radiatingLight

* refactored RadiatingLight into a visualizer

* Added different light animations for differnt power states of a flashlight

* split out the radiating light visualizer into two seperate visualizers

* further refactored and tweaked handheldlight animations

* further lantern light tweaks

* removed un-used attributes in flashlight and lantern prototypes

* fix null check in handheldlightcomponent
2020-08-24 12:32:18 +02:00
DrSmugleaf
b9196d0a10 Add a test that puts all components on an entity and checks for no exceptions (#1815)
* Add test that puts all components on an entity and checks for no exceptions

Also fix all the exceptions that happened because of this

* Add comments to the test

* Fix nullable errors

* Fix more nullable errors

* More nullable error fixes

* Unignore basic actor component

* Fix more nullable errors

* NULLABLE ERROR

* Add string interpolation

* Merge if checks

* Remove redundant pragma warning disable 649

* Address reviews

* Remove null wrappers around TryGetComponent

* Merge conflict fixes

* APC battery component error fix

* Fix power test

* Fix atmos mapgrid usages
2020-08-22 22:29:20 +02:00
Víctor Aguilera Puerto
a5fbe0f024 firelock stuff I guess 2020-08-21 18:29:43 +02:00
Víctor Aguilera Puerto
68fb5d4257 Merge branch 'master' into 2020-08-19-firelocks 2020-08-21 16:51:50 +02:00
Pieter-Jan Briers
bf60a4e9fc Merge branch 'master' into mathmerge 2020-08-20 20:33:43 +02:00
Víctor Aguilera Puerto
5190c04944 Some work 2020-08-19 12:23:42 +02:00
SoulSloth
7664b30951 Add a fire extinguisher (#1685)
* added a lantern

* Add A Lantern with radiating light

* Added a GasVapor system and made a base for extinguisher spray.

* switched to using solution component for fire extinguisher

* made it so fire extinguisher's can run out of water vapor

* Added actual Gas to Gas Vapor, now getting atmosphere for touched tiles.

* Made it so gasVapor reacts and dissapates on reacting

* GasVapor now dissapates exponentially while traveling

* Added in-hands for fire extinguisher

* Added Spraysound to gasSprayer and to fire extinguisher prototype

* parameterized GasSprayer and GasVapor

* removed un-used imports in gasSprayer and gasVapor components and systems

* removed accidential threading import into gasmixturecomponent

* add a shared extinguisher component for extinguisher spray rotation instead of piggy-backing on RogueArrow

* paremeterized fuelCost and fuel name in GasSprayerComponent

* Paremeterized gasAmount, removed un-used code from gasVaporComponent

* Removed BaseItem Parent from Extinguisher_spray

* added GasVapor and GasSprayer to Ingored Components list

* reduced offset of spawned extinguisher vapor from player

* Update IgnoredComponents.cs

* renamed SharedExtinguisherComponent to SharedGasSprayerComponent and removed reference to RoguePointingArrow

* renamed shareExtinguisherComponent to SharedGasSprayerComponent

* Update Content.Server/Atmos/GasSprayerComponent.cs

Added check for solution component on GasSprayer.

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

* Update Content.Server/Atmos/GasSprayerComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-08-18 17:45:49 +02:00
DrSmugleaf
bbc01c7e47 Fix NRE in atmos helpers and add tests (#1775) 2020-08-18 13:32:18 +02:00
Víctor Aguilera Puerto
32cf0f4c8e Fix fillgas indentation. 2020-08-17 20:45:48 +02:00
metalgearsloth
f54ba4b6d5 Gas overlay chunking (#1678)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-17 16:12:21 +02:00
Víctor Aguilera Puerto
3e87e24028 Optimizes atmos further by using rented arrays where applicable 2020-08-16 16:24:27 +02:00
Visne
0b448b500d Merge MathHelper and FloatMath
Requires  space-wizards/RobustToolbox#1234
2020-08-16 14:54:52 +02:00
Víctor Aguilera Puerto
a7fc2bccbd Fixes explosive depressurization and improves high pressure movements (#1683) 2020-08-15 22:43:55 +02:00
Víctor Aguilera Puerto
e047262289 Fix TileAtmosInfo pressure direction being east when created. 2020-08-15 17:16:55 +02:00
Víctor Aguilera Puerto
67fbdb96b3 Fix deconstructing walls creating an atmos void.
This caused a lot of high pressure movements.
2020-08-15 16:51:57 +02:00
Víctor Aguilera Puerto
ae1f55656e Fix pressure difference direction being incorrect. 2020-08-15 03:23:57 +02:00
Víctor Aguilera Puerto
fd40c5157b Pressure movements won't affect entities in containers. Use GetCardinalDirection. 2020-08-15 03:20:25 +02:00
Víctor Aguilera Puerto
0d4ae469e3 Optimizes EqualizePressureInZone to use ArrayPool 2020-08-14 13:17:27 +02:00
DrSmugleaf
4a8ed41e3a Fix namespaces and optimize imports (#1651)
* Fix namespaces and optimize imports

* Cleanup fixes

* Merge conflict fixes

* Merge conflict fixes

* Merge conflict fixes
2020-08-13 14:40:27 +02:00
Víctor Aguilera Puerto
ca68fbe818 Add heat conduction (#1653) 2020-08-13 14:18:26 +02:00
DrSmugleaf
fee5ae05bc Add more atmos helpers (#1661) 2020-08-13 13:51:57 +02:00
Pieter-Jan Briers
f182ff5613 Remove CannyFastMath. 2020-08-12 21:19:34 +02:00
Víctor Aguilera Puerto
1fc941b3b3 Removes CannyFastMath usage from Atmos. 2020-08-12 19:37:07 +02:00
Víctor Aguilera Puerto
32e4c24342 Adds atmos helpers, welding tool now lights up fires 2020-08-11 22:34:37 +02:00
Víctor Aguilera Puerto
a96b13f8c7 Fix clearatmos command not working as intended. 2020-08-10 16:21:25 +02:00
Víctor Aguilera Puerto
7293d985a5 Unique gas serialization for atmos (#1629)
* Add unique gas mixture serialization for atmos

* Refactor doAfterEventArgs

* Adds atmos commands

* Roundstard now has correct ratio of gases

* Fixed hashcode for gasmixture, better grid atmos serialization

* Airlocks create gas based on adjacent tiles now.

* Enables barotrauma component damage
2020-08-09 16:52:59 +02: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
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