Commit Graph

424 Commits

Author SHA1 Message Date
metalgearsloth
4d064abcd7 Physics (#3485)
* Content side new physics structure

* BroadPhase outline done

* But we need to fix WorldAABB

* Fix static pvs AABB

* Fix import

* Rando fixes

* B is for balloon

* Change human mob hitbox to circle

* Decent movement

* Start adding friction to player controller

I think it's the best way to go about it to keep other objects somewhat consistent for physics.

* This baby can fit so many physics bugs in it.

* Slight mob mover optimisations.

* Player mover kinda works okay.

* Beginnings of testbed

* More testbed

* Circlestack bed

* Namespaces

* BB fixes

* Pull WorldAABB

* Joint pulling

* Semi-decent movement I guess.

* Pulling better

* Bullet controller + old movement

* im too dumb for this shit

* Use kinematic mob controller again

It's probably for the best TBH

* Stashed shitcode

* Remove SlipController

* In which movement code is entirely refactored

* Singularity fix

* Fix ApplyLinearImpulse

* MoveRelay fix

* Fix door collisions

* Disable subfloor collisions

Saves on broadphase a fair bit

* Re-implement ClimbController

* Zumzum's pressure

* Laggy item throwing

* Minor atmos change

* Some caching

* Optimise controllers

* Optimise CollideWith to hell and back

* Re-do throwing and tile friction

* Landing too

* Optimise controllers

* Move CCVars and other stuff swept is beautiful

* Cleanup a bunch of controllers

* Fix shooting and high pressure movement controller

* Flashing improvements

* Stuff and things

* Combat collisions

* Combat mode collisions

* Pulling distance joint again

* Cleanup physics interfaces

* More like scuffedularity

* Shit's fucked

* Haha tests go green

* Bigmoneycrab

* Fix dupe pulling

* Zumzum's based fix

* Don't run tile friction for non-predicted bodies

* Experimental pulling improvement

* Everything's a poly now

* Optimise AI region debugging a bit

Could still be better but should improve default performance a LOT

* Mover no updater

* Crazy kinematic body idea

* Good collisions

* KinematicController

* Fix aghost

* Throwing refactor

* Pushing cleanup

* Fix throwing and footstep sounds

* Frametime in ICollideBehavior

* Fix stuff

* Actually fix weightlessness

* Optimise collision behaviors a lot

* Make open lockers still collide with walls

* powwweeerrrrr

* Merge master proper

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Ch ch ch changesss

* SHIP IT

* Fix #if DEBUG

* Fix vaulting and item locker collision

* Fix throwing

* Editing yaml by hand what can go wrong

* on

* Last yaml fixes

* Okay now it's fixed

* Linter

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
DrSmugleaf
b83586095c Fix body component not setting client movement speed on initialize 2021-03-05 13:00:11 +01:00
Paul
73cef00aeb makes prototypeinheritance opt in 2021-03-05 11:13:00 +01:00
Paul
14f2deb47f fixes cargoconsole 2021-03-05 10:25:24 +01:00
Paul Ritter
5c50b1f6ed Serialization v3 content PR (#3491)
* serv3 in shared pt 1

* beginning of deepclone api

* progress in implementing ideepclone & serv3 in content

* adds target

* its cant hurt you it cant hurt you

* more changes to content.server

* adds dataclasses

* almost there

* renamed & edited entry

* finishes refactoring content to use serv3

* gasmixture runtimes, next: reagentunit

* fucin hell that was an annoying one

* adds flags

* fixes some yaml errors

* removes comment

* fixes generic components for now

* removes todo
actually clones values my god paul
fixes bug involving resolving custom data classes from other proj
renames dataclass
fixes spritecomp
adds WithFormat.Constants support

* adds deepclone to ResistanceSet

* adds a bunch of deepclone implementations
adds a deepclone analyzer (TODO)
adds a deep clone fallback for classes & structs

* fixes a bunch of runtimes

* adds deepclone to entityuid

* adds generator to sln

* gets rid of warnings

* fixes

* argh

* componentdata refactors

* more deepclone impl

* heck me i reworked all of content deepclone

* renames custom dataclasstarget

* misc

* reworks prototypes

* deepclone nuke

* renamed customdataclass attribute

* fixes everything

* misc fixed

* the killcommit

* getting there

* changed yamlfieldattribute namespace

* adds back iselfserialize

* renames everything to data(field/definition)

* ouch

* Fix most errors on content

* Fix more errors in content

* Fix some components

* work on tests

* fixes some customdataclasses

* fuggin shit

* yes

* yeas

* Remove data classes

* Data field naming fixes

* arg

* Git resetti RobustToolbox

* Merge fixes

* General fixes

* Fix startup serialization errors

* Fix DamageContainerPrototype when supported classes or types are null

* Implement construction graph step type serializer

* Fix up construction serialization

* Fix up construction serialization part 2

* Fix null list in technology database component

* Fix body serialization

* Fix entity storage serialization

* Fix actions serialization

* Fix AI serialization

* Fix reaction serialization

* Fix body serialization

* Fix grid atmosphere serialization

* Rename IServ3Manager to ISerializationManager

* Convert every non generic serializer to the new format, general fixes

* Serialization and body system fix

* pushinheritance fix

* Update all prototypes to have a parent and have consistent id/parent properties

* Merge fixes

* smh my head

* cuddling slaps

* Content commit for engine PR

* stuff

* more fixes

* argh

* yes even you are fixed

* changelog fixes

* fixes seeds

* argh

* Test fixes

* Add writing for alert order prototype

* Fix alert order writing

* FIX

* its been alot ok

* Fix the rest of the visualizers

* Fix server alerts component tests

* Fix alert prototype tests not using the read value

* Fix alert prototype tests initializing serialization multiple times

* THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA

* Add ImplicitDataDefinitionForInheritors to IMechanismBehavior
Fixes the behaviors not being found

* Fix NRE in strap component
Good night to the 1 buckle optimization

* Fix clothing component slot flags serialization tag

* Fix body component in all components test

* Merge fixes

* ffs

* Make construction graph prototype use serialization hooks

* human yaml linted

* a

* Do the thing for construction

* stuff

* a

* monke see yaml linter

* LINT HARDER

* Remove redundant todo

* yes

* Add skip hook argument to readers and copiers

* we gamin

* test/datafield fixes

* adds more verbose validation

* moves linter to action

* Improve construction graph step type serializer error message

* Fix ammo box component NRE

* gamin

* some updates to the linter

* yes

* removes that test

* misc fixes

* array fix
priority fix
misc fixes

* adds proper info the validation

* adds alwaysrelevant usa

* Make yaml linter take half as long to run (~50% less)

* Make yaml linter 5 times faster (~80% less execution time)

* based vera being based

* fixes mapsaving

* warning cleanup & moves surpressor

* removes old msbuild targets

* Revert "Make yaml linter 5 times faster (~80% less execution time)"

This reverts commit 3e6091359a26252c3e98828199553de668031c63.

* Add -nowarn to yaml linter run configuration

* Improve yaml linter message feedback

* Make dependencies an argument instead of a property on the serialization manager

* yamllinting slaps

* Clean up type serializers

* Move yaml linter code to its own method

* Fix yaml errors

* Change yaml linter action name and remove -nowarn

* yaml linter please shut

* Git resetti robust toolbox

Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-05 01:08:38 +01:00
Acruid
6c081d9d8d Shared Containers (#3331)
* Namespace changes for containers.
Moved ContainerSlot from content to engine.

* Merged client/server ContainerManagerComponents into a single shared version.

* Mapfile and nullability fixes.

* Upgrades map.

* Update engine.
2021-03-01 15:24:46 -08:00
Pieter-Jan Briers
1eb0fbd8d0 Revert "Physics (#3452)"
This reverts commit 3e64fd56a1.
2021-02-28 18:49:48 +01:00
metalgearsloth
3e64fd56a1 Physics (#3452)
* Content side new physics structure

* BroadPhase outline done

* But we need to fix WorldAABB

* Fix static pvs AABB

* Fix import

* Rando fixes

* B is for balloon

* Change human mob hitbox to circle

* Decent movement

* Start adding friction to player controller

I think it's the best way to go about it to keep other objects somewhat consistent for physics.

* This baby can fit so many physics bugs in it.

* Slight mob mover optimisations.

* Player mover kinda works okay.

* Beginnings of testbed

* More testbed

* Circlestack bed

* Namespaces

* BB fixes

* Pull WorldAABB

* Joint pulling

* Semi-decent movement I guess.

* Pulling better

* Bullet controller + old movement

* im too dumb for this shit

* Use kinematic mob controller again

It's probably for the best TBH

* Stashed shitcode

* Remove SlipController

* In which movement code is entirely refactored

* Singularity fix

* Fix ApplyLinearImpulse

* MoveRelay fix

* Fix door collisions

* Disable subfloor collisions

Saves on broadphase a fair bit

* Re-implement ClimbController

* Zumzum's pressure

* Laggy item throwing

* Minor atmos change

* Some caching

* Optimise controllers

* Optimise CollideWith to hell and back

* Re-do throwing and tile friction

* Landing too

* Optimise controllers

* Move CCVars and other stuff swept is beautiful

* Cleanup a bunch of controllers

* Fix shooting and high pressure movement controller

* Flashing improvements

* Stuff and things

* Combat collisions

* Combat mode collisions

* Pulling distance joint again

* Cleanup physics interfaces

* More like scuffedularity

* Shit's fucked

* Haha tests go green

* Bigmoneycrab

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-01 03:11:29 +11:00
collinlunn
2326cb5f3c Piping angle fixes (#3442)
* Moves piping prototypes to own folder

* Fixes pipe direction angles
2021-02-28 22:00:53 +11:00
Visne
9b94d5c195 Added nullable to most Content.Shared files (#3238)
* Add nullable to some Content.Shared files.

* Use [NotNullWhen(true)]

* Undo adding now redundant !'s

* Forgot one

* Add a ton more nullable

* You can guess

* Fix some issues

* It actually compiles now

* Auto stash before merge of "null2" and "origin/master"

* I lied

* enable annotations -> enable

* Revert ActionBlockerSystem.cs to original

* Fix ActionBlockerSystem.cs

* More nullable

* Undo some added exclamation marks

* Fix issues

* Update Content.Shared/Maps/ContentTileDefinition.cs

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

* Resolve some issues

* Remove unused method

* Fix more issues

* Fix more issues

* Fix more issues

* Fix more issues

* Fix issue, rollback SharedGhostComponent.cs

* Update submodule

* Fix issue, invert some if-statements to reduce nesting

* Revert RobustToolbox

* FIx things broken by merge

* Some fixes

- Replaced with string.Empty
- Remove some exclamation marks
- Revert file

* Some fixes

* Trivial #nullable enable

* Fix null ables

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-27 14:12:09 +11:00
Swept
f23e35dc40 Adds tons of new materials + cleans up existing ones (#3413)
* RSIs are now banging

* Sheets

* Hotfix

* Last before PR

* Ready

* Quick

* E

* Updates everything to new stack PR

* Finished off ore, set max stack size to 30 from 50.

* Most materials done

* Donezo

* Adds hides and custom sprited a corgi hide

* Should be good

* suffix

* Bugs

* Giff woodplank

* Profit?
2021-02-26 18:59:24 +11:00
Metal Gear Sloth
0165a525a4 Better stack log warning 2021-02-26 18:20:19 +11:00
Alex Evgrashin
0fa219365e Ghosts do booo (spooky) (#3363)
* Light now use visualizer

* Added ghost actions

* Add hotkey input for ghosts

* no message

* Testing blinking animation

* Better animation

* Better customization

* No abuse

* Reversed sln

* No fun for ghosts

* No fun for ghosts x2

* Cooldown for lights

* Moved to component deps

* This tollist is unnecessary

* Enums to byte

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

* Some lights can ignore ghosts now

Co-authored-by: Alex Evgrashin <evgrashin.adl@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-26 12:31:06 +11:00
DrSmugleaf
fdcbece63d Refactor stacks to use prototypes (#3387)
* Refactor stacks to use prototypes

* Fix not assigned warning

* Add names to stacks

* Make machine baords and material constructions use the name as well

* Remove defaulting stacks to prototype id

* Fix tests

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-25 16:18:29 +11:00
Pieter-Jan Briers
5a7658a13b Update submodule, fix a bunch of warnings. 2021-02-23 22:26:59 +01:00
Swept
1e13c3b265 Fixes lathe stuff (#3383) 2021-02-23 18:53:14 +11:00
Tarlan2
3ee4c5f791 Auto lathe branch (#3284)
* My first contribution in a while.Change AddAccent command to be case insensitive (#3112)

* got rid of the bottle of nothingness. thought it was an empty bottle.

* new correction

* Delete SpaceStation14.sln

I honestly don't know what happened here. I didn't code those lines.

* Revert "Delete SpaceStation14.sln"

This reverts commit 68876841dce9c6e2ce9d21996e4caef3512b1385.

* new attempt at fixing

* Revert "new attempt at fixing"

This reverts commit 780f66fda3d66b6d4d086871d0b2ea2f6d4ee004.

* Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)"

This reverts commit 08041a30365331b82309aedaf2136d7631459887.

* Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""

This reverts commit b2dc76a6683e8df88188d37a836f9ab9a54287b5.

* Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)"""

This reverts commit 478d2bfe5daf6098d2f5665249ce0f161704dd73.

* Revert "Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""""

This reverts commit 23c195143e1e3d05cb5f344329c01754432684a9.

* Revert "Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""""

This reverts commit 23c195143e1e3d05cb5f344329c01754432684a9.

* still having figured what happened with the sln file

* please work

* -Added wood as a material.
-Made a few changes in the material requirements for some of the recipes.

* ok. added a small correction for wood at material_stacks.yml

* ok added another correction for misc.yml because for some reason a : just disappeared.

* -added plastic as a material, complete with a png (credits: tgstation)
-replaced glass with plastic for material requirements for some of the latherecipes

* for some reason the shovel was duplicate, being in both botany.yml and in tools.yml. deleted it from tools

* ok. one last try. noticed that the sprite path for shovel was weird even though it already has its own sprite at Objects/Tools/shovel.rsi . so I decided to fix the path then move the shovel back to tools.yml while deleting it from botany.yml. maybe that was the problem?

* corrected the extra space on the type: material for plastic discovered by Peptide90.

* noticed that wood also had a bad icon path.

* another attempt

* weird. I don't remember messing with the flashlight requirements.

* added plastic in the SharedStakedComponent and the meta.json from materials.rsi is back to how it was

* hopefully this icon is valid.

* small corrections concerning double space.

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-02-23 13:30:50 +11:00
collinlunn
112f7d8346 Pipe visualizers (#3042)
* modifies pipe sprites to look not connected

* pipe connector sprites

* PipeConnectorVisualizer

* Remove pipe visualizer

* Revert "Remove pipe visualizer"

This reverts commit dc8da93f99f20aa55247c6a94d26c7a75a3d1782.

* PipeDirection can be set with the sprite updating correctly

* fixes meta files

* removes unused vent/scrubber directions

* OnConnectedDirectionsNeedsUpdating

* comments + OnConnectedDirectionsNeedsUpdating gets called

* fix connecteddirections bug

* Combines ConnectedDirections sent to visualizer

* fixes unconnected pipe sprites

* Adds PipeConnectorVisualizer to other piping entities

* code cleanup

* Fixed bug with ConnectedDirections not being set correctly

* diff fix

* rotation simplification

* Improves rsi serialization

* enable nullable

* wip

* visualizer cleanup

* nullable cleanup

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-02-23 13:18:30 +11:00
Swept
4a67fc1d22 Fleshes out smoking content (#3295)
* RSIs sorted out

* Bookmark

* Updated packet RSIs for Stacks

* Cigs Packs done

* Cigarette Cartons

* fucking MANUALLY fixed the cigarette inhands, fuck you tgstation

* Pipes work

* Cigars/Cases

* Updates vending machine inventory

* tweaks count

* Adds a cigarette crate

* Fixes RSIs, working on rolling paper

* Adds Tobacco and Cannabis plants

* Cigarettes and Rollies are now craftable

* There

* Fixed crafting recipes

* Reset RobustToolbox

* Netsync'd

* Ready

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-02-22 15:08:17 +11:00
Remie Richards
85916b87b4 Fluent Localisation Fixes (#3344)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2021-02-22 01:07:46 +01:00
Clyybber
c5ab6f191b Spill into containers lying around (#3345)
* Spill into containers lying around

* Make spillability definable in yaml

* Address reviews
2021-02-21 02:14:41 +01:00
DrSmugleaf
3e702723fd Content PR for YAML hot reloading (#3319)
* Content PR for YAML hot reloading

* Add CanAdminReloadPrototypes (host permission)

* IndexedPrototype fixes
2021-02-20 00:05:24 +01:00
DrSmugleaf
0ae4a6792f Add health overlay and a command to toggle it (#3278)
* Add health overlay bar and a command to toggle it

* Remove empty line
2021-02-19 19:31:25 +01:00
DrSmugleaf
5667cffe95 Separate ghost warp message into two (#3310)
* Separate ghost warp message into two

* Remove redundant arguments

* Address reviews

* Move properties up
2021-02-19 19:29:34 +01:00
DrSmugleaf
1477cd4d0a Make component states dependant on the player getting them (#3280)
* Make component states dependant on the player getting them

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>

* Updated submodule to v0.3.7.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Acruid <shatter66@gmail.com>
2021-02-18 00:09:07 -08:00
Ygg01
55d65889ae Stacked sprite visualizer (#3096)
* Add Stack Visualizer

* Add cigarette pack resources

Adds transparent layers for visualizing cigarettes

* Add Bag Open/Close Visualizer

So storage opened in inventory can have different icons when opened
or closed.

* Create a component that only enumerates single item

Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.

* Refactoring stuff

* Fix other usage of stack in Resources

* Add docs

* Apply suggestions from code review

Apply metalgearsloth suggestions

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

* Applied suggestions from metalgearsloth

* Changed SingleItemStorageComponent to StorageCounterComponent

Difference. New component doesn't spawn items, merely counts them.

* Refactored StackVisualizer

* Fix breakage with master

* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml

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

* Update with MGS suggestions

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-18 00:02:36 +11:00
tmtmtl30
2e99ee4fc4 oops (#3268) 2021-02-17 17:39:23 +11:00
DrSmugleaf
78afc2db0f Add make ghost role verb (#3204) 2021-02-16 09:51:27 +01:00
DrSmugleaf
04aa195c91 Add cooldown to shuttle calling (#3225) 2021-02-16 09:31:57 +01:00
DrSmugleaf
237e40e60f Fix the puller not being sent to the client in pullable component (#3228) 2021-02-16 12:52:25 +11:00
DrSmugleaf
9f408945de Make pulled and cuffed players unable to move (#3227) 2021-02-16 12:51:52 +11:00
tmtmtl30
258fdc10ea Airlock / firelock code refactor, pseudo-prediction implementation (#3037)
* splits off airlocks, firelocks

* adds airlock prediction. anims broken though

* fixes animation weirdness

* removes opacity prediction because it looked odd

* Now firelocks don't visually start open. Argh.

* Fixes firelock weirdness, saneifies _state var.

* Documentation changes, code shuffle.

* Lets firelocks crush people.

* Stops open-hand opening/closing firelocks.

* updates serializable, netserializable attributes

* Addresses reviews... hopefully.

* updates submodule?

* nullability

* fuck fuck fuck fuck

* fucking finally
2021-02-12 16:02:14 +01:00
DrSmugleaf
6eb0dd4f50 Remove redundant TryGetComponent call in buckle initialize (#3164) 2021-02-12 13:04:19 +01:00
Vera Aguilera Puerto
4c419f85ce Ghost Roles (#3106)
* Add files for Ghost Roles.

* Work on Ghost Roles

* Improvements

* GHOST ROLES IS DONE

* mmm yes

* auto-update when setting rolename/roledescription

* well

* command graceful error

* Makes UI have a scrollbar when it has too many entries

* fix command fuckup

* Apply suggestions from code review

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

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-12 14:35:56 +11:00
Acruid
ca4fd649fe Massive Namespace Cleanup (#3120)
* Engine namespace changes.

* Automated remove redundant using statements.

* Simplified Graphics namespace.

* Apparently the container system stores full type names in the map file.😞 This updates those names.

* API Changes to LocalizationManager.LoadCulture.

* Update submodule to v0.3.2
2021-02-11 01:13:03 -08:00
DrSmugleaf
96e5e34084 Make DoAfters use DamageChangedMessage instead of an event (#3115) 2021-02-10 12:36:05 +11:00
Vera Aguilera Puerto
9b1142973e Renames phoron to plasma everywhere in the codebase and replaces sprites. (#3110) 2021-02-09 19:05:19 +01:00
Pieter-Jan Briers
c4fe0c904c Merge branch 'master' into expl_int_analyzer 2021-02-08 22:46:28 +01:00
metalgearsloth
7ed07c0cac Cuff enhancements (#3087)
* Cuff enhancements

* Cuffs now have an OnClick for the alert to remove them
* nullables
* Use default interaction range so highlights are accurate
* Cuffing fails more gracely
* Make shared abstract and add component references to client / server
* Don't cache AudioSystem and HandsComponent given cuffs are rarely used

* Fix test

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-05 17:11:21 +01:00
Vera Aguilera Puerto
9884b14e8d Adds a component for ghosting on move. (#3090)
* Adds a component for ghosting on move.
Adds a dummy input mover for IRelayMoveInput to work.

* Add IGhostOnMove

* Fix tests.
2021-02-05 17:02:20 +01:00
Vera Aguilera Puerto
63e1252539 Speech and Emoting components (#3075)
* Add Speech and Emoting components.

* makesentient gives you speech and emoting abilities.

* Ghosts do *not* need a SpeechComponent.

* I hate you all, and I hate shared code as well.
2021-02-05 17:01:54 +01:00
Paul
856b293d87 Merge branch 'master-upstream' into expl_int_analyzer
# Conflicts:
#	Content.Server/GameObjects/Components/Body/Part/BodyPartComponent.cs
#	Content.Server/GameObjects/Components/Botany/PlantHolderComponent.cs
#	Content.Server/GameObjects/Components/Chemistry/PillComponent.cs
#	Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs
#	Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs
#	Content.Server/GameObjects/Components/Medical/HealingComponent.cs
#	Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs
#	Content.Shared/Chemistry/Solution.cs
2021-02-04 17:50:28 +01:00
Paul
d5cd82de60 explicit interface go brrrr 2021-02-04 17:44:49 +01:00
DrSmugleaf
82a97857ac Move TagComponent from server to shared (#3076)
* Move TagComponent to shared

* Fix test

* Not a web edited commit

No sir

* Update Content.Shared/GameObjects/Components/Tag/TagComponentState.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-04 21:04:19 +11:00
Remie Richards
d45835e863 Janitor trashbag upgrade + FANCY ANIMATIONS (#3058)
* Janitor trashbag upgrade + FANCY ANIMATIONS

* Review, Bug fixes and Sounds
- Fixed hand-pickup animation playing if the entity originated from inside a container (e.g. bag on the ground) or from inside ourselves (e.g. something in our own inventory)

* Fix/Change. Just log if AnimateEntityPickup is called with an entity that has no SpriteComponent.

* More explicit log message. Error log.

* Merge. Fix.
2021-02-03 23:07:13 +01:00
Radrark
937e261867 Add Smoke and Foam chemical reaction effects. (#2913)
* Adds smoke reaction effect

* smoke tweaks

* address reviews

* Smoke fix

* Refactor smoke and add foam

* Fix stuff

* Remove thing

* Little things

* Address some comments

* Address more things

* More addressing

* License stuff

* Address refactor request

* Small things

* Add nullability

* Update Content.Server/GameObjects/EntitySystems/SolutionAreaEffectSystem.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2021-02-03 15:26:46 +01:00
Pieter-Jan Briers
c40ac26ced A big hecking chemistry-related refactor. (#3055)
* A big hecking chemistry-related refactor.

Changed SolutionContainerCaps. It now describes "stock" behavior for interacting with solutions that is pre-implemented by SolutionContainerComponent. As such things like syringes do not check it anymore (on themselves) to see "can we remove reagent from ourselves". That's assumed by it... being a syringe.

SolutionContainerCaps now has different flags more accurately describing possible reagent interaction behaviors.

ISolutionInteractionsComponent is the interface that describes the common behaviors like "what happens when injected with a syringe". This is implemented by SolutionContainerComponent but could be implemented by other classes. One notable example that drove me to making this interface was the /vg/station circuit imprinter which splits reagent poured in into its two reservoir beakers. Having this interface allows us to do this "proxying" behavior hack-free. (the hacks in /vg/ code were somewhat dirty...).

PourableComponent has been replaced SolutionTransferComponent. It now describes both give-and-take behavior for the common reagent containers. This is in line with /vg/'s /obj/item/weapon/reagent_containers architecture. "Taking" in this context is ONLY from reagent tanks like fuel tanks.

Oh, should I mention that fuel tanks and such have a proper component now? They do.

Because of this behavioral change, reagent tanks DO NOT have Pourable anymore. Removing from reagent tanks is now in the hands of the item used on them. Welders and fire extinguishers now have code for removing from them. This sounds bad at first but remember that all have quite unique behavior related to this: Welders cause explosions if lit and can ONLY be fueled at fuel tanks. Extinguishers can be filled at any tank, etc... The code for this is also simpler due to ISolutionInteractionsComponent now so...

IAfterInteract now works like IInteractUsing with the Priority levels and "return true to block further handlers" behavior. This was necessary to make extinguishers prioritize taking from tanks over spraying.

Explicitly coded interactions like welders refueling also means they refuse instantly to full now, which they didn't before. And it plays the sound. Etc...

Probably more stuff I'm forgetting.

* Review improvements.
2021-02-04 00:05:31 +11:00
Pieter-Jan Briers
67e1da4cc2 Syringes now automatically switch between draw/inject when emptied/filled up fully. 2021-01-25 02:10:23 +01:00
Pieter-Jan Briers
c947bb75e6 You feel a tiny prick (Hypospray) (#3034) 2021-01-24 14:18:12 +01:00
20kdc
e53ae365a3 Get rid of the OverlayEffectsComponent stuff (#3010)
* Get rid of the OverlayEffectsComponent stuff because it just ended up creating workarounds for it's bugs, without removing any functionality

* Flashes and Flashbangs use the same code now (the Flashable path because it's better)
2021-01-24 19:17:45 +11:00