Commit Graph

303 Commits

Author SHA1 Message Date
Paul
d4d85b663f fixes a bunch of warnings 2021-12-20 13:58:30 +01:00
Paul Ritter
cc57d1380c Revert Rich text (#5848) 2021-12-20 12:42:42 +01:00
Leon Friedrich
7f81f0b8b8 Add more pretty strings to logs (#5768) 2021-12-13 12:22:58 +01:00
E F R
b2da936848 Everything: Rich text redux (#5625)
* lord save me

* UI/ChatBox: Use the new `defStyle` param for `RenderMarkup`

The previous iteration didn't work because `AddMessage` can't inherit
its color from the PushColor (since we're not doing actual tag stacks
anymore).

* rebase touchup
2021-12-12 18:25:42 -08:00
Vera Aguilera Puerto
f6371c6e62 Make all current admin logs use ToPrettyString 2021-12-11 16:00:10 +01:00
Vera Aguilera Puerto
cdc8336695 Even more resolve removals. 2021-12-08 17:41:14 +01:00
Vera Aguilera Puerto
c8b65be747 Replace IEntityManager resolves in systems for cached EntityManager 2021-12-08 13:00:43 +01:00
Vera Aguilera Puerto
3f79e3754f Merge branch 'master' into 2021-12-03-remove-IEntity-komm-süsser-todd
# Conflicts:
#	Content.Client/Crayon/CrayonDecalVisualizer.cs
#	Content.Client/Tabletop/TabletopSystem.cs
#	Content.IntegrationTests/Tests/InventoryHelpersTest.cs
#	Content.Server/AI/EntitySystems/AiSystem.cs
#	Content.Server/AI/Utility/AiLogic/UtilityAI.cs
#	Content.Server/AME/AMENodeGroup.cs
#	Content.Server/Administration/AdminVerbSystem.cs
#	Content.Server/Body/Systems/RespiratorSystem.cs
#	Content.Server/Chemistry/Components/InjectorComponent.cs
#	Content.Server/Chemistry/TileReactions/CleanTileReaction.cs
#	Content.Server/Chemistry/TileReactions/SpillTileReaction.cs
#	Content.Server/Crayon/CrayonComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Explosion/EntitySystems/TriggerSystem.cs
#	Content.Server/Fluids/Components/MopComponent.cs
#	Content.Server/Fluids/Components/SpillExtensions.cs
#	Content.Server/Fluids/EntitySystems/PuddleSystem.cs
#	Content.Server/Instruments/InstrumentSystem.cs
#	Content.Server/Nutrition/EntitySystems/DrinkSystem.cs
#	Content.Server/Nutrition/EntitySystems/FoodSystem.cs
#	Content.Server/PneumaticCannon/PneumaticCannonSystem.cs
#	Content.Server/Storage/Components/EntityStorageComponent.cs
#	Content.Server/Storage/Components/StorageFillComponent.cs
#	Content.Server/Stunnable/StunbatonSystem.cs
#	Content.Server/Throwing/ThrowHelper.cs
#	Content.Server/Weapon/Ranged/Barrels/BarrelSystem.cs
#	Content.Server/Weapon/Ranged/Barrels/Components/ServerBatteryBarrelComponent.cs
#	Content.Server/Weapon/Ranged/ServerRangedWeaponComponent.cs
#	Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs
#	Content.Shared/Damage/Components/DamageableComponent.cs
#	Content.Shared/Damage/Systems/DamageableSystem.cs
#	Content.Shared/MobState/Components/MobStateComponent.cs
#	Content.Shared/Slippery/SharedSlipperySystem.cs
2021-12-07 17:48:49 +01:00
metalgearsloth
8af335097f More (IComponent) shenanigans and also some contaminated IoCManager.Resolve<IEntityManager>() very long yes calls 2021-12-07 22:22:34 +11:00
Leon Friedrich
bd8acc5b6b Fix food & do-after bugs (#5716) 2021-12-06 23:19:26 -07:00
DrSmugleaf
af4eb3c7cd Fix more errors, client and server now build 2021-12-06 14:00:39 +01:00
DrSmugleaf
2a3b7d809d Fix 3000 errors 2021-12-05 18:09:01 +01:00
Ygg01
d1ab9592aa Minor spill refactors (#5569) 2021-12-05 14:18:30 +11:00
Leon Friedrich
bfff21ea73 Add IngestionBlocker component (#5692) 2021-12-04 11:56:27 -07:00
Vera Aguilera Puerto
f386b57148 Inline OwnerUid 2021-12-03 16:30:34 +01:00
Vera Aguilera Puerto
5cd42c9ad6 Inline UID 2021-12-03 15:53:09 +01:00
Vera Aguilera Puerto
ee4ff9cfe8 Inline Name 2021-12-03 15:25:51 +01:00
Vera Aguilera Puerto
a5b57c8e10 Inline Transform 2021-12-03 14:20:34 +01:00
Vera Aguilera Puerto
69b270017b Inline TryGetComponent completely, for real 2021-12-03 14:17:01 +01:00
Vera Aguilera Puerto
e3227546b3 Inline Delete 2021-12-03 11:43:03 +01:00
Vera Aguilera Puerto
5e177ae734 Inline EntityManager 2021-12-03 11:18:05 +01:00
Leon Friedrich
a9c3153a55 Make masks & some helmets block eating/drinkling (#5656) 2021-12-02 15:51:05 +01:00
mirrorcult
ccf01d7431 Remove LungBehavior and replace with LungComponent/System (#5630) 2021-11-30 18:25:02 -07:00
mirrorcult
e3af2b5727 ECS BloodstreamComponent (#5629) 2021-11-30 16:47:21 -07:00
FoLoKe
6f455346b2 Fixes mouse self-eating (#5622) 2021-11-30 21:45:33 +11:00
FoLoKe
9db2fbefe1 Moves Sliceable to ECS (#5552) 2021-11-30 21:20:13 +11:00
Leon Friedrich
d0c5d72d47 Forcefeed DoAfters, again. (#5582) 2021-11-29 14:27:15 +11:00
FoLoKe
e94bd5698d Fixes EatVerb interaction range (#5505) 2021-11-25 13:16:56 +11:00
Acruid
fa0ec5cbd9 AppearanceComponent API Changes (#5446) 2021-11-23 18:22:59 +11:00
mirrorcult
e40c9bc427 Reactive 3.0 (#5443)
* probably scrapping this

* reimpl old behavior

* misc fixes and initial yaml

* works basically first try
2021-11-22 10:17:35 +01:00
FoLoKe
24aca21eb6 Moved Food and Utensil to ECS (#5380)
* Food and Utensil to ECS, Made utensil less restrictive, no more soup eating with a knife...

* AltVerb "can eat" check

* removed HasFlag calls

* AltActionVerb -> InteractionVerb

* "required utensil" filed
2021-11-21 00:35:09 -07:00
mirrorcult
457e8c64ee Convert StomachBehavior to a component/system + rejig body namespaces (#5249)
* Convert StomachBehavior to a component/system + rejig body namespaces

* test

* slightly more namespace changes

* remove

* Hello?????

* fuck you github test runner

* reviews

* oobsy!
2021-11-11 16:10:57 -07:00
Vera Aguilera Puerto
1a177f7479 DrinkSystem uses EntityUid instead of IEntity 2021-11-09 11:28:27 +01:00
Ephememory
418e3eaef8 fix drink examine text (#5170) 2021-11-04 21:16:28 -07:00
mirrorcult
3ab4a30a0f Generalize ReagentUnit into FixedPoint2 and use it for damage calculations (#5151)
* Damage units

* sum ext method
2021-11-03 16:48:03 -07:00
mirrorcult
3f51ffbd3c Pneumatic cannons (#4560)
* basics & visuals

* pneumatic cannon works perf

* loc + popups

* gas tank does stuff + queue changes

* updates

* b

* forcefeeding

* inhand

* crafting!

* pie cannon now is a pneumatic cannon

* oopy

* fix for entman + verbs

* pie

* change for tools

* actual

* combat mode + better sounds

* reviews
2021-11-03 14:33:36 -07:00
Ygg01
fc5fa67a56 Refactor Resolve and IEntity in SolutionContainerSystem (#5083)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-11-02 12:03:23 +11:00
Fortune117
76bc00b218 Changed drinks to use ECS (#4948)
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-11-02 11:40:55 +11:00
Ygg01
b2aca94586 Refactor Solution from Shared -> Server (#5078)
* Move entity solution entity systems to shared

* Move SolutionComponents to Server

* Fix namespaces

* Remove Networked Component.

* Fixes

* Add components to ignore list
2021-10-29 23:40:15 +11:00
20kdc
6c6bde8743 FoodComponent solution un-hardcoding, rehydratable solution name fixes, monkey cubes edible again, slicable food preserves poisons (#4942) 2021-10-19 00:13:43 -07:00
Vera Aguilera Puerto
b904efb942 Makes many thing that update on paused *not* do that. (#4938) 2021-10-18 23:58:34 +11:00
Galactic Chimp
61f1c8a05c #3898 open sprite field for drink comp (#4235)
* temp

* #3898 some progress on DrinkCanVisualizer

* Fixed implementation

* Moved drink can sprite layer definition to abstract parent

* Added open drink can sprites

* #3898 - fixes for drink cans' sprite field after merge + moved UpdateAppeareance from DrinkComponent to DrinkSystem

* Update Content.Server/Nutrition/EntitySystems/DrinkSystem.cs

* #3898 removed obsolete comment

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
2021-10-03 15:56:29 +11:00
Vera Aguilera Puerto
0be5ff829b Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
Vera Aguilera Puerto
f913d8361d Refactors smoking to ECS, smoking actually makes you inhale reagents. (#4678) 2021-09-26 15:19:00 +02:00
Vera Aguilera Puerto
0767bd3777 Popup ECS Refactor (#4692) 2021-09-26 15:18:45 +02:00
Vera Aguilera Puerto
6cea9cb973 Refactor Flammable to be ECS. (#4671)
- Refactor IHotItem into IsHotEvent.
- Refactor IFireAct into TileFireEvent.
2021-09-22 11:05:33 +02:00
metalgearsloth
f301e45163 Remove ILand (#4582)
* Remove ILand

* Make land not handleable

* Rename ILand
2021-09-12 16:22:58 +10:00
Ygg01
c209e3f29b Solution refactor (#4407)
* Rename SolutionContainerCaps -> Capability

* Move IExamine event to Chemistry System.

* ECS the ISolutionChange into SolutionChangeEvent

* Unify SolutionContainer into a single shared component

* Replace ISolutionInteraction with SolutionContainerComponent

* Move all methods from SolutionContainer to ChemistrySystem

* Refactor EntitySystem calls to Dependencies

* Refactor SolutionContainer to SolutionManager

* Fix yamls

* Fix test fails

* Fix post merge issues

* Fix various issues with SolutionManager

* More fixes

* Fix more components

* Fix events not being directed

* Fixes for Hypospray

* Separate removal and iteration on Metabolism

* Fix creampie problems

* Address some of sloth's issues

* Refactors for Systems

* Refactored solution location

* Fix tests

* Address more sloth issues

* Fix dependency

* Fix merge conflicts

* Add xmldocs for Capabilities components

* Remove HasSolution/TryGetDefaultSolution and Add/Remove Drainable/Refillable

* Replace Grindable/Juiceable with Extractable

* Refactor field names

* Fix Drainable

* Fix some issues with spillable and injector

* Fix issues with Grinder

* Fix Beaker having duplicate solutions

* Fix foaming

* Address some MGS issues

* Fix Uid issues

* Fix errors in solution Tranfer

* Fixed some extra values constant values

* Cola is drinkable now
2021-09-06 23:49:44 +10:00
Leon Friedrich
32d99eaba9 Damageable Refactor 3: Revenge of the Instamerge (#4524)
* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* Fix Merge issues

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Fix merge issues

Co-authored-by: Silver <Silvertorch5@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
2021-08-24 11:06:27 -06:00
Silver
e708091518 Revert "Refactor Damage to use Protoypes (#4262)"
This reverts commit 20bf5739a9.
2021-08-24 01:06:32 -06:00