* 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>
Github will cuck me no more.
I tried the old google machine to find if there's a way to inherit these but it was failing me.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Make IInteractUsing async, make tools use DoAfter.
* Disable warning 1998 in Content.Server
* Update Content.Server/GameObjects/Components/AnchorableComponent.cs
* 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>
* added Character Setup
* whoops
* reverted unrelated changes
* Made everything work post-rebase
* Removed unused PreferencesChanged event
* nope, don't need this
* HumanoidProfileEditorPanel -> HumanoidProfileEditor
* Set initial data for hair pickers
* Fixed nullable warning
* Renamed LooksComponent -> HumanoidAppearanceComponent
* Renamed LooksComponentState -> HumanoidAppearanceComponentState
* Final renaming maybe
* Use a human-like dummy instead of a real human
* Change preferences structs back to classes
* initial explosiveComponent
* remove garbagee
* assets
* tile mass deletion baby
* grenades
* tweaks
* Update Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs
Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Ex_act based on damage, fixes and tweaks
* One finishing touch
Done the most cringe way
* ex_act explosions, tables are destructible now
also adds fuel tanks
* adds ex_act to mobs
* Demonstrated map init working with guns, toolboxes, tool lockers.
* Refactored EntityStorage and ServerStorage to have a common interface.
* EntityStorage no longer uses ServerStorage PURELY for visuals.
Use an appearance visualizer instead.
* Recipe stuff.
* Lathe GUI and stuff
* god dammit
* Lathe menu works, yay.
* EventArgs henk
* Some work
* SS14 -> Robust
* More SS14 -> Robust
* Lathe materials
* Lathe works, Lathe GUI, Queue GUI, etc
too many changes to name them here
* Remove materials button, add ViewVariables and update lathe on connect
* Add Autolathe RSI
* Adds new recipes, fixes a few bugs.
* Remove unused ScrollContainers
* Use same delegate for spawn.
* Removes client-side LatheComponent in favor of BoundUserInterface
* Remove GetMaterial and TryGetMaterial
* Use auto-properties in a few places.
* Adds LatheDatabase, and a bunch of other changes
* Remove useless log.
* Remove lathetype from prototypes.
* Turns Storage, Lathe and Database into autoproperties
* Remove Hacked property from LatheRecipePrototype
* Remove unneeded dependency injection from components
* Refactors LatheDatabaseComponent to use ComponentState
* Refactors MaterialStorageComponent to use ComponentState
* Oopsie
* Another oopsie
* Last oopsie, I hope
* Fix missing Close call.
Added BurnTemperature to bulbs.
Added HeatResistance to clothing and species.
Added HeatResistanceComponent which resolves armor vs skin.
Made the hand burn on lamps only happen when heat resistance is too poor.