Commit Graph

113 Commits

Author SHA1 Message Date
py01
b46b890618 Removes half-implemented ConduitLayer from piping (#2957)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-09 10:05:29 +11:00
py01
8fa8de36ed PipeNetDeviceComponent refactor (#2912)
* Removes inheritance of PipeNetDeviceComponent

* Enables nullable in piping

* Piping error messages report the prototype

* Moves PipeNetDevice updating to ComponentMessage

* Build fix

* Review fixes

* review fix 2

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-07 17:37:17 +11:00
py01
1032576a20 Replaces AnchoredChanged C# event with ComponentMessage (#2905)
* Replaces AnchoredChanged C# event with ComponentMessage

* Removes unneeded fields

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-05 15:32:59 +11:00
Swept
cd9e5a590b Fixes remaining renamed chems (#2889) 2021-01-02 18:05:32 +11:00
Vera Aguilera Puerto
f52984553b Fix airblocked space tiles venting air
Fixes part of #2780
2020-12-20 23:05:23 +01:00
DrSmugleaf
fcd52fa90c Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
DrSmugleaf
026d96fd2d Replace MaybeNullWhen(false) with NotNullWhen(true) 2020-12-20 04:14:41 +01:00
DmitriyRubetskoy
9c26e0c5ba Async Interface IAfterInteract() (#2735)
* Async Interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Changed the glassbeaker

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Interaction system fix

* Removed I from the interface

* Changed all implementations of the interface I could find

* all public void implementation fixed

* All built, no errors should remain

* Update Resources/Prototypes/Entities/Objects/Specific/chemistry.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/Portal/TeleporterComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Commit based off Sloth's commentary

* Removed the Rag file from the PR

* Reverted sloth's commentary changes on the publcity of the function

* Injector component properly implemented interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/Fluids/SprayComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

Co-authored-by: BlueberryShortcake <rubetskoy234@mail.ru>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-12-17 18:45:04 +11:00
chairbender
7a3c281f60 Actions System + UI (#2710)
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-12-13 23:28:20 +01:00
20kdc
58af9003e7 Canisters [ Continuation of clement-or #2544 ] (#2628)
* Added atmos sprites from CEV-Eris

* Moved canister sprites to appropriate dir

* Removed unnecessary sprites, edited canisters prototype

* Created Gas Canister UI and release pressure buttons

* Changed GasMixture's pressure calculation (convert liters to cube meters)

* Added relabeling Canisters

* Reverted changes on GasMixture

* Changed my name in the credits

* Added valve opening on canisters

* Change canister visual state when connected to a port

* Added nullable to SharedGasCanisterComponent

* Replaced nullable contexts

* Changed again nullable annotation context

* Moved name in the credits to correct alphabetical order

* Canisters: Fix the most blatant issues with this PR (the added project interdependencies for no reason whatsoever)

* Canisters: Stop crashes when canisters leave atmosphere

* Canisters: Gas released into no atmosphere gets transferred "into space" (deleted)

* Atmos: Nullability annotations on TileAtmosphere, explaination of the states of TileAtmosphere.Air

* Canisters: If in an airblocked tile, do NOT release gas

* Scrubbers: Fix typo leading to them not connecting properly.

* Revert manual changes to credits file (sorry!) (1/2)

This reverts commit 94f3b0e5df8d9c2fa189866a17a231920f99bdaf.

* Revert manual changes to credits file (sorry!) (2/2)

This reverts commit 1986fb094dfaa44060f08d280f36b755258d17a6.

* Canisters: Apply @Zumorica 's reviews

* Canisters: Add missing localization as suggested by PJB

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

* Canisters: Pressure lights!

* Canisters: Light is now unshaded.

* Canisters: Now using IActivate

* Gas canisters (& air canister), now with their numbers properly calibrated (hopefully)

* Canisters: Refactor how their layers are added to be more like ApcVisualizer

* Canisters: Clean up of the tile invalidation/air release logic

* Canisters: Some gas canister window improvements

* Canisters: Clean up release pressure change button label code

Co-authored-by: Clement-O <topy72.mine@gmail.com>
Co-authored-by: Clément <clement.orlandini@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-12-08 20:45:24 +01:00
Vera Aguilera Puerto
2b6964746c Adds Invalidate method to TileAtmosphere, clean up a bunch of tile invalidations 2020-12-08 17:36:59 +01:00
DrSmugleaf
074db878bb Remove redundant null checks for atmos (#2703)
* Remove redundant null checks for atmos

* Remove unnecessary nullability parameter from AtmosphereSystem.GetGridAtmosphere

* Remove more nullability markers

* Bring back null checks for gas tanks

* Remove null checks from GasMixture.Merge and TileAtmosphere.AssumeAir

Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-12-08 12:17:13 +01:00
20kdc
684b942445 FlammableComponent: Fix bug where if an AI ends up on fire an exception occurs because it tries to update status (#2714) 2020-12-06 21:10:56 +01:00
Vera Aguilera Puerto
2b59159363 Actually fix NRE in atmos. 2020-12-05 20:09:22 +01:00
Vera Aguilera Puerto
74e1deba2f Better nullability for GridAtmosphereComponent 2020-12-05 19:10:07 +01:00
Vera Aguilera Puerto
da39d18637 Fix rare NRE in atmos 2020-12-05 18:57:04 +01:00
DrSmugleaf
1b1d050ee7 Update components to use EnsureWarn (#2676)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-12-04 13:26:54 +01:00
DrSmugleaf
de0975c228 Add InvalidateTileAir Transform extension method (#2687)
* Add InvalidateTileAir Transform extension method

* Add extension method for EntityCoordinates as well
2020-12-04 12:21:57 +01:00
ColdAutumnRain
216a47dddc Updated serializer data fields (#2702) 2020-12-04 11:06:53 +01:00
Víctor Aguilera Puerto
6bb1e9fa5d CVars for atmos (#2633)
* Monstermos is a word!

* Atmos CVars

* Cache CVars in AtmosphereSystem.

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-11-27 16:49:12 +01:00
DrSmugleaf
5c0cf1b1a0 Use 'new' expression in places where the type is evident for content (#2590)
* Content.Client

* Content.Benchmarks

* Content.IntegrationTests

* Content.Server

* Content.Server.Database

* Content.Shared

* Content.Tests

* Merge fixes

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-11-27 21:00:49 +11:00
Víctor Aguilera Puerto
b18ee3ec49 SIMD-accelerated gas mixtures. (SIMD atmos) (#2479)
* SIMD atmos

* Moles will always be a multiple of four.

* Component dependencies for grid atmos.

* Let's optimize allocations while we're at it!

* Inline this

* A bunch of atmos optimizations

* Fix crimes against atmos

* Microsoft moment

* Remove nuget.config

* do not reference Robust.UnitTests in Content.Benchmarks as it's unneeded.

* Revert "Remove nuget.config"

This reverts commit 872604ae6a51365af4075bb23687bd005befd8ac.

* Gas overlay optimization and fixes

* Lattice is now spess

* minor atmos tweaks
2020-11-25 10:48:49 +01:00
DrSmugleaf
eb97168e30 Make godmode able to be disabled and more accessible to the rest of the code (#2560)
* Make Godmode able to be disabled and more accessible

* You got a license for that exclamation mark?

* Move restore logic to the entity system

* Make MovedByPressureComponent able to be disabled

* Add extension that gives you the moved by pressure component

* Fix not disabling moved by pressure
2020-11-22 14:45:15 +11:00
Git-Nivrak
6d2882c7cf (Smaller) Construction PR - (IC Construction) (#2575)
* Disable Pulling When Buckling an entity

* Projectile Improvements

If you shoot at a person that is critted now it will only hit if you aim at that person otherwise go "above" him and hit other targets.
- Dead people are still unhitable

* Update Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>

* Firelock In Progress

* Revert "Projectile Improvements"

This reverts commit 5821afc798e49e530d4086d7a9ddbe097805fdc4.

* Firelock Graph

* Revert "Merge branch 'master' into test2"

This reverts commit c69661cc7d9dcdc6d8c0dd45770f9eb94b231463, reversing
changes made to 5f1de8b8d24cd52190addb3df5617cb1012fd52c.

* Bunch of stuff

- Metal Rods
- Reinforced Glass
- SetStackCount Condition
- Tables
- Lattice

* Output2 to FloorTileItemComponent

* Plating, Underplating and Tiles (+FloorTile Improvements)

* Turf Fixes

+ APC Electronics

* Reinforced Glass In-hand textures

* All the fixes

* Final Changes

* (Hopefully) Last commit

* Update Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Server/GameObjects/Components/Atmos/FirelockComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* A Few more things

* Edit FirelockComponent.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-11-20 15:58:06 +01:00
ColdAutumnRain
f5dc62b533 Removed EntityManager member variable from Components and EntitySystems (#2502)
* Removed EntityManager member variable from Components and EntitySystems

* Removed EntityManager with minor corecctions

* Update PathfindingSystem.cs

* Update InteractionSystem.cs

* Update Content.Server/GameObjects/EntitySystems/Click/ExamineSystem.cs

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>

* Update Content.Client/GameObjects/Components/Suspicion/SuspicionRoleComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Client/GameObjects/Components/Suspicion/TraitorOverlay.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/PDA/PDAComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/Singularity/SingularityComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/Singularity/SingularityComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/EntitySystems/AI/Pathfinding/PathfindingSystem.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/EntitySystems/Click/ExamineSystem.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

* Update Content.Server/GameObjects/Components/Stack/StackComponent.cs

Co-authored-by: Clyybber <darkmine956@gmail.com>

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Clyybber <darkmine956@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-11-18 15:45:53 +01:00
DTanxxx
69d709a28f Updated ContainerHelpers to use new extensions (#2530)
Co-authored-by: David Tan <>
2020-11-13 18:25:04 +11:00
Pieter-Jan Briers
9e36ef2202 Fix compiler warnings. 2020-11-11 01:48:54 +01:00
chairbender
5f788c3318 Alerts System and UI (#2529)
* #272 add bordered panel for effects bar

* #272 avoid mouse overlapping tooltip when near edges,
change tooltip colors to match mockups

* #272 WIP defining status effect states as YML and
sending them as encoded integers

* #272 refactor to use new alert system

* #272 refactor to use new alert system

* #272 fix various bugs with new alert system and update
alerts to have color

* #272 WIP

* #272 rename status effects to alerts

* #272 WIP reworking alert internals to avoid code dup
and eliminate enum

* #272 refactor alerts to use
categories and fix various bugs

* #272 more alert bugfixes

* #272 alert ordering

* #272 callback-based approach for alert clicks

* #272 add debug commands for alerts

* #272 utilize new GridContainer capabilities for sizing of alerts tab

* #272 scale alerts height based on
window size

* #272 fix tooltip flicker

* #272 transparent alert panel

* #272 adjust styles to match injazz mockups more, add cooldown info in tooltip

* #272 adjust styles to match injazz mockups more, add cooldown info in tooltip

* #272 alert prototype tests

* #272 alert manager tests

* #272 alert order tests

* #272 simple unit test for alerts component

* #272 integration test for alerts

* #272 rework alerts to use enums instead
of id / category

* #272 various cleanups for PR

* #272 use byte for more compact alert messages

* #272 rename StatusEffects folder to Alerts,
add missing NetSerializable
2020-11-10 15:22:19 +11:00
Víctor Aguilera Puerto
50f03a5b17 Fix firelock occlusion. 2020-11-07 23:58:33 +01:00
DrSmugleaf
37e97ca89f Change components to use timer component (#2426)
* Change components to use timer component

* Fix old usages of tokens
2020-10-30 15:02:49 +11:00
Víctor Aguilera Puerto
870d052354 Gas tanks and masks (#2409)
Co-authored-by: a.rudenko <creadth@gmail.com>
Co-authored-by: creadth <creadth@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-10-27 20:53:44 +01:00
Víctor Aguilera Puerto
48841a274d Remove default grids (content) (#2241)
* Default grids go poof

* Address review

* Update submodule

* Fix DoAfterSystem for entities without grid.

* Fix SubFloorHideSystem for entities without grid.

* Fix ExplosionHelper for coordinates that aren't in a grid

* Fix TurfHelpers' GetWorldTileBox crash in the case of invalid grid

* Fix tile prying component crash when trying to pry space.

* Spill fixes when passing coordinates without grids.

* Are you static'in, son?

* Change SaveLoadSaveTest grid Id hardcoded value
It's still hardcoded, but at least now it's correct!

* Only send debug AI thing if grid is not invalid

* Update submodule.

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-10-21 17:13:41 +02:00
Víctor Aguilera Puerto
b409901806 AtmosphereSystem subscribes to RotateEvent instead of AirtightComponent.
Fixes a crime against humanity
2020-10-20 12:21:13 +02:00
Víctor Aguilera Puerto
19d32eb4ce Removes AtmosCooldown from TileAtmosphere, fixes various atmos issues (#2297)
* Remove AtmosCooldown

* Fix former space tiles always having an immutable gas mixture

* _tile -> _tiles
2020-10-19 14:50:16 +02:00
Víctor Aguilera Puerto
ca923866ff Fix AirBlocked not being taken into account in airflow blocked calculations. 2020-10-17 18:02:56 +02:00
metalgearsloth
be096f7ebf Fix airlock collision (#2265)
* Allow hitscan to go through open doors

So the door itself sets physics.Hard as false although that doesn't seem to include hard which I guess makes sense.

* Do the firelock thing

* Fix saltern

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-10-15 13:37:55 +02:00
Paul Ritter
844e4f6e50 The power of componentdependencies (#2211)
* stuff

* bucklemeup

* powerreceiver

* things

* Update RobustToolbox

* Fix nullability errors

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-10-13 21:51:54 +02:00
py01
77fa796a3b Rotatable Pumps (#2223)
* Pump textures

* PumpVisualizer enabled state

* Pump rotation

* Pump tests fix

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-10-12 13:02:57 +02:00
metalgearsloth
d769661692 Fix some build warnings (#2226)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-10-11 16:42:53 +02:00
DrSmugleaf
b64cb24059 Rename usages of collidable to physics (#2230)
* Rename usages of collidable to physics

* high tier PANIQUE

* aaaaaaaaAAAAAa

* cursed commit dont research

* Fix urist and items being anchored

* Fix the rest
2020-10-11 16:36:58 +02:00
DrSmugleaf
753ca81865 Replace MapIndices with Vector2i (#2228)
* Replace MapIndices with Vector2i

* Update da submodule

* AA EE II OO U U

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2020-10-11 15:21:21 +02:00
Víctor Aguilera Puerto
ffbc4f355e Fix firelocks not having disabled autoclose. 2020-10-10 19:53:18 +02:00
Víctor Aguilera Puerto
03b1a78238 Fixes edge firelock serialization 2020-10-10 19:43:50 +02:00
py01
5aa866548b Gas Canisters and Ports (#2151)
* CanisterComponent start

* GasCanisterPort

* canister

* GasCanister yaml

* More Gas Canisters

* Canister & port fixes

* Placeholder canister and port sprites

* GasMixture serialization

* Component ignores

* Fix duplicate component ignore

Co-authored-by: py01 <pyronetics01@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-10-10 13:37:52 +02:00
Víctor Aguilera Puerto
745401a41e Data-oriented Construction System (#2152)
- Powerful
- Data-oriented
- Approved by PJB
- Powered by node graphs and AI pathfinding
- Coded by the same nerd who brought you atmos

Co-authored-by: Exp <theexp111@gmail.com>
2020-10-08 17:41:23 +02:00
Víctor Aguilera Puerto
31e0dfc10c Adds FlammableComponent, humans can now catch on fire. (#2115) 2020-09-22 15:40:04 +02:00
py01
edebe9036c PressureSiphonComponent (#2118)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-09-22 12:05:06 +02:00
Víctor Aguilera Puerto
759aefee7b Fix saltern's roundstart gas mix 2020-09-22 12:02:44 +02:00
Víctor Aguilera Puerto
69059eac80 Adds new different reaction types. (#2114)
* Adds new different reaction types.
- Adds touch, injection and ingestion reactions for entities.
- Adds tile reactions.
- Removes GasSprayerComponent in favor of SprayComponent.
- Gives fire extinguishers a safety.
- Gives spray puffs a sprite.
- Improved spray and fire extinguisher in general.
- Fire extinguisher now ACTUALLY puts out fires. Amazing, eh?
- Fire extinguisher sprays three 'clouds' at once.
- Spraying flammable chemicals at fire makes them worse. Whoops!
- Gives spray and fire extinguisher their classic sounds.
- Most chemicals now don't make puddles. Too bad!
- Space lube now makes a very slippery puddle. Honk.
- Spraying water (or using a fire extinguisher) on existing puddles makes them bigger.

* Fix solution tests

* food base now has solution container with noexamine caps
2020-09-21 17:51:07 +02:00
Exp
8238a89190 Gives the gas analyzer visual clues that it's open (#2110)
* Gives the gas analyzer visual clues that it's open

* Read Visualizer states from yaml
2020-09-21 11:39:17 +02:00