* move DeviceLinking events to shared (#36307)
move events
* move SignalState to shared (#37303)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Port goobstation factorio (#4035)
* Initial port of goobstation factorio, missing disposals integration and faxing. Also ports impstations modification for robotic arms to have static power draw. Also adds automation slots to silos and advanced microwave.
* Ports goobstation factorio fax automation, adds to the guidebook entry info about gas canisters.
* Ported Goob Disposals. Removed part about taking
mats out of storage silo cuz it ain't implemented
yet. Seems to work.
* Adds constructor circuitboard to research cuz I
forgor
* compile ops
* rework hyperlathes into upgrade kits (#3169)
* add codersprite
* add code for upgrade kits
* add upgrade kits
* add recipes for upgrade kits to industrial engineering
* disable funny recipes
* remove RE
* fuck it make it a warning
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Made automation use reasonable amounts of power. (#3564)
* why the fuck did a constructor use 6x the energy a lathe needs?
* chore: Automatically update REUSE headers
* chore: Automatically update REUSE headers
---------
Co-authored-by: GoobBot <uristmchands@proton.me>
* get it not crashing
* chore: automatically update REUSE headers
* fix constructor
* fix upgrade kits
* improve robotic arm animation
* chore: automatically update REUSE headers
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: AlgisAlphonse <94876543+AlgisAlphonse@users.noreply.github.com>
Co-authored-by: cheetah1984 <152602630+cheetah1984@users.noreply.github.com>
Co-authored-by: GoobBot <uristmchands@proton.me>
Co-authored-by: monolith8319 <195513600+monolith8319@users.noreply.github.com>
* Predict some power PowerReceiver stuff (#33834)
* Predict some power PowerReceiver stuff
Need it for some atmos device prediction.
* Also this
* Predict dumping (#32394)
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* shared fixes
* it compil
* chore: automatically update REUSE headers
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: monolith8319 <195513600+monolith8319@users.noreply.github.com>
* Increase benchmark BuildTimeout (#37029)
* Increase benchmark BuildTimeout
* Add RaiseEvent benchmark
* a
* More benchmarks
* It just gets optimised away
* IComponent event
* cleanup bench
* Update b2dynamictree (#30630)
* v249.0.0
* Make MappingDataNode use string keys (#36111)
* MappingDataNode string keys
* a
* poke
* v254.0.0
* fixes
* chore: automatically update REUSE headers
* v255.0.0
* Predict virtual hands and co (#36617)
These are the easy ones anything else gets slightly spicier.
* chore: automatically update REUSE headers
* Update submodule to 254.1.0 (#36711)
* Update submodule to 254.1.0
* API update
* chore: automatically update REUSE headers
* v256.0.0
* v257.0.0
* Add AssertMultiple to ContrabandTest (#35662)
* add AssertMultiple to ContrabandTest
* do the same for magazine visuals test
* :trollface:
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Fix MagazineVisualsSpritesExist for engine PR (#36761)
* chore: automatically update REUSE headers
* aaaa
* I'm silly
* aaaaaaaaaaaaaaaaaa
* test
* bawk
* chore: automatically update REUSE headers
* v258.0.0
* v259.0.0
* Content changes for SetTiles change (#37229)
* Content changes for SetTiles change
* Retest with new engine changes
* Derp
* Update for new engine PR changes
* chore: automatically update REUSE headers
* v260.2.0
* CompFactory updates (#37559)
* aaa
* chore: automatically update REUSE headers
* more removals
* chore: automatically update REUSE headers
* another gone
* component factory begoneth
* chore: automatically update REUSE headers
* odd fix
* Cleanup BiomeSystem.Commands (#36084)
* _mapManager.GetMapEntityId -> _mapSystem.GetMapOrInvalid
* _mapManager.MapExists -> _mapSystem.MapExists
* Unused using
* manager fixes
* chore: automatically update REUSE headers
* wizden shuttle collision
* Add sun shadows (planet lighting stage 2) (#35145)
* Implements a Dynamic Lighting System on maps.
* Edit: the night should be a little bit brighter and blue now.
* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.
* Edit: The offset is now serverside, this makes the time accurate in all situations.
* Removing ununsed import
* Minor tweaks
* Tweak in time precision
* Minor tweak + Unused import removed
* Edit: apparently RealTime is better for what I'm looking for
* Fix: Now the time is calculated correctly.
* Minor tweaks
* Adds condition for when the light should be updated
* Add planet lighting
* she
* close-ish
* c
* bittersweat
* Fixes
* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"
This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.
* Europa and day-night
* weh
* rooves working
* Clean
* Remove Europa
* Fixes
* fix
* Update
* Fix caves
* Update for engine
* Add sun shadows (planet lighting v2)
For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.
* Documentation
* a
* Fixes
* Move blur to an overlay
* Slughands
* Fixes
* Apply RoofOverlay per-grid not per-map
* Fix light render scales
* sangas
* Juice it a bit
* Better angle
* Fixes
* Add color support
* Rounding bandaid
* Wehs
* Better
* Remember I forgot to do this when writing docs
---------
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
* chore: automatically update REUSE headers
* Optimize parallax VRAM usage (#37180)
* Disable parallax texture preloading
Many parallax layers are specific to a single map and will likely never be loaded for the duration of the game. Save VRAM by not loading them always.
Requires engine master
* Put generated parallax identifier in texture name
Makes it show up properly in debugging tools
* Don't load generated parallaxes multiple times
Many parallax prototypes re-use the same generated parallax configs. These generated parallaxes were being loaded multiple times at once, which was a massive waste of VRAM.
We now move these into a separate cache for deduplication. I had to write a lot of logic to handle loading cancellation and ref counting. Yay.
Also fixes some spaghetti with the previous parallax loading system: cancellation didn't work properly, give proper names to generated texture names, etc.
This saves like 100+ MB of VRAM.
* chore: automatically update REUSE headers
* Fixes server error spam from bad wizden code
* better name
* formatting
* fixes it but better
* comments
* oh god
* oh god
* Sloth's subfloor vismask adventure (#35347)
* Add a subfloor vismask
Significantly cuts down on sent entity count.
* More optimisations
* Fix command
* Fixes
* namespace cleanup
* Review
* Vismasks
* Content update
* Bandaid
* awewa
* Revert these
* reh
* Update Content.Shared/SubFloor/TrayScannerComponent.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Fix TrayScannerUser (#35959)
* Fix TrayScannerUser
* Ignore
* Update Content.Shared/SubFloor/TrayScannerUserComponent.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Fix gas mixers and pneumatic valves being hidden by floor tiles (#36428)
fix gas mixers and pneumatics valves being hidden by floor tiles
* Remove unused PowerConsumer from grilles (#36077)
This caused tons of completely wasted processing in the power system. Incredible.
* Remove update from DeviceLinkSystem (#37152)
The tick updates were purely used to decrease the invoke counter once per tick. Now instead we just calculate the effective counter value with some trivial math on the tick number. This completely removes the need for an update function.
The relative tick is not stored to map files. If we really need this, we can add a TickOffsetSerializer (similar to TimeOffsetSerializer), but I doubt it matters.
* Use approx NPC steering checks (#36110)
Much faster lookup and shouldn't affect final result.
* Fix the sensor monitoring console forcing a GC every 3 seconds (#38146)
* Optimize sensor monitoring window graph drawing
* Add shared static Vector2 pool for all GraphView instances
* Address requested changes
* remove lock
* chore: automatically update REUSE headers
* whoops
* Predict pipe anchoring and unanchroing (#35977)
* yay prediction
* Added cool popups
* bruh
* this is better!
* Fix tile-events returns (#37502)
* Fix tile-events returns
Should really be continues.
* More
* More optimisations
---------
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: monolith8319 <195513600+monolith8319@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Ilya246 <57039557+Ilya246@users.noreply.github.com>
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Dinner <180707738+DinnerCalzone@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
* Add sun shadows (planet lighting stage 2) (#35145)
* Implements a Dynamic Lighting System on maps.
* Edit: the night should be a little bit brighter and blue now.
* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.
* Edit: The offset is now serverside, this makes the time accurate in all situations.
* Removing ununsed import
* Minor tweaks
* Tweak in time precision
* Minor tweak + Unused import removed
* Edit: apparently RealTime is better for what I'm looking for
* Fix: Now the time is calculated correctly.
* Minor tweaks
* Adds condition for when the light should be updated
* Add planet lighting
* she
* close-ish
* c
* bittersweat
* Fixes
* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"
This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.
* Europa and day-night
* weh
* rooves working
* Clean
* Remove Europa
* Fixes
* fix
* Update
* Fix caves
* Update for engine
* Add sun shadows (planet lighting v2)
For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.
* Documentation
* a
* Fixes
* Move blur to an overlay
* Slughands
* Fixes
* Apply RoofOverlay per-grid not per-map
* Fix light render scales
* sangas
* Juice it a bit
* Better angle
* Fixes
* Add color support
* Rounding bandaid
* Wehs
* Better
* Remember I forgot to do this when writing docs
---------
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
* Various system spring cleaning (#36206)
* Various systems warnings cleanup
* Last changes before submitting PR
* Add guard for transform component, fix failing test
* Small corrections
* Audio params to specifiers datafields
* Using audio params on components and configs
* Update `SharedBiomeSystem` methods to use `Entity<T>` (#37698)
* Fix warning in TryGetBiomeTile
* Overload TryGetBiomeTile
* Overload more methods, fix internal warnings
* Update TryGetEntity uses
* Update TryGetTile uses
* Cleanup TryGetDecals use
* Formatting
* Two more warnings while we're here
* fixes formatting
* fixes
* chore: automatically update REUSE headers
* Revert "Add sun shadows (planet lighting stage 2) (#35145)"
This reverts commit e955b65c56.
* chore: automatically update REUSE headers
* random warning cleanup
* chore: automatically update REUSE headers
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
Co-authored-by: J <billsmith116@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: monolith8319 <195513600+monolith8319@users.noreply.github.com>
* Implements a Dynamic Lighting System on maps.
* Edit: the night should be a little bit brighter and blue now.
* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.
* Edit: The offset is now serverside, this makes the time accurate in all situations.
* Removing ununsed import
* Minor tweaks
* Tweak in time precision
* Minor tweak + Unused import removed
* Edit: apparently RealTime is better for what I'm looking for
* Fix: Now the time is calculated correctly.
* Minor tweaks
* Adds condition for when the light should be updated
* Add planet lighting
* she
* close-ish
* c
* bittersweat
* Fixes
* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"
This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.
* Europa and day-night
* weh
* rooves working
* Clean
* Remove Europa
* Fixes
* fix
* Update
* Fix caves
* Update for engine
* Add sun shadows (planet lighting v2)
For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.
* Documentation
* a
* Fixes
* Move blur to an overlay
* Slughands
* Fixes
* Remove v2 work
* Finalise
---------
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
* Station AI overlay
* implement
* Bunch of ports
* Fix a heap of bugs and basic scouting
* helldivers
* Shuffle interactions a bit
* navmap stuff
* Revert "navmap stuff"
This reverts commit d1f89dd4be83233e22cf5dd062b2581f3c6da062.
* AI wires implemented
* Fix examines
* Optimise the overlay significantly
* Back to old static
* BUI radial working
* lots of work
* Saving work
* thanks fork
* alright
* pc
* AI upload console
* AI upload
* stuff
* Fix copy-paste shitcode
* AI actions
* navmap work
* Fixes
* first impressions
* a
* reh
* Revert "navmap work"
This reverts commit 6f63fea6e9245e189f368f97be3e32e9b210580e.
# Conflicts:
# Content.Client/Silicons/StationAi/StationAiOverlay.cs
* OD
* radar
* weh
* Fix examines
* scoop mine eyes
* fixes
* reh
* Optimise
* Final round of optimisations
* Fixes
* fixes
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* Everything but the submodule
* stuff I forgot
* heat
* missed lights
* behonky
* LocId
* I guess it was a skill issue?
* predicted audio
* It works with lights now
* Borg equality
* Gorilla gauntlet grants protection from anomaly returned damage when attacking it
* woops, there we go
* NONE
* Use DamageModifierSets, remove Behonker damage
* Reviews dealt with
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Allow Flares to light cigarettes
* !IsHot check
* nicer looking(and I think the right way to do that...)
* heh, whoops
* Adds IgnitionEvent, IgnitionSource now functions as IsHot when Ignited
* Fixes + remove redundancy
* Hows this?
* press enter
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Flare is not forever hot anymore
* Formatting fixes
* Make IgnitionEvent readonly
---------
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Emergency Lights now change color depending on alert level and whether or not they are powered.
* Made a condition for null alert level, added summary doc.
* Refactored uid and emergencylightcomponent into Entity<EmergencyLightComponent>
* Replaced uses of Dirty(Component) with Dirty(Uid, Component)
Modified some systems (notably pulling-related) to use uids.
* Missed a few
* Revert changes to pulling
* No
* Merge BreakOnWeightlessMove and BreakOnMove. Provide different theshold for weightless movement.
* Adjust WeightlessMovementThresholds. Put a thing I forgot to put in the doafterargs.
* Make DoAfterArgs only use OnMove to determine whether to check for
movement and MoveThreshold to determine the threshold regardless of
weightlessness. Gave DistanceThreshold a default value which will always
be checked now.
* Fix issue introduced by merge.
* Use interaction system for determining whether a distance is within range
* Fix incorrect doafter args introduced by previous merge.
Forgor to commit these.
* Exorcise ghost.
The execution system should have been deleted when I merged previously.
For a reason I cannot comprehend it came back, but only the execution
system.
* Exorcise ghost Pt. 2
* Allow for movement check to be overriden in zero g and adjust doafter args where needed.
You can now override checking for movement in zero g with the BreakOnWeightlessMove bool. By default it will check.
The following doafters were made to ignore the movement check in zero g:
- Healing yourself with healing items,
- Removing embedded projectiles,
- Using tools like welders and crowbars
* Adjust distance for cuffing/uncuffing to work. Make injections not break on weightless movement.
* Fix evil incorrect and uneeded comments
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix outdated component name in assaultbelt whitelist
RangedMagazine was replaced with BallisticAmmoProvider in the Gun
refactor (#8301)
* Move FlashOnTrigger, SmokeOnTrigger, Flash components to Shared
* Move LightReplacerComponent to Shared
* Move Utensil, Mousetrap components to Shared
* Move SprayPainterComponent to Shared
The PaintableAirlock tag has also been removed, as it was unused &
unnecessary, likely a vestige of spray painter development when the
PaintableAirlock component wasn't in Content.Shared.
* Add trivial Produce and Seed components to Client
This allows the plant bag and botanical belt whitelists to correctly
match produce and seeds on the client, fixing the extraneous "Can't
insert" message that previously appeared.
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Raise `StationPostInitEvent` broadcast
* Basic variation pass handling
* standardize names + rule entities
* why does it work like that?
* add to defaults
* light break variation pass
* ent spawn entry
* move some stationevent utility functions to gamerule + add one for finding random tile on specified station
* forgot how statistics works
* powered light variation pass is good now
* station tile count function
* public method to ensure all solutions (for procedural use before mapinit)
* move gamerulesystem utility funcs to partial
* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit
* trash & puddle variation passes!
* oh yeah
* ehh lets live a little
* std
* utility for game rule check based on comp
* entprotoid the trash spawner oops
* generalize trash variation
* use added instead of started for secret rule
* random cleanup
* generic replacement variation system
* Wall rusting variation rule
* account for modifying while enumerating
* use localaabb
* fix test
* minor tweaks
* reinforced wall replacer + puddletweaker
* Initial prediction
* new group handling
* groups for all examines that use multiple rn
* compile
* why was it doing this??
* handle newlines with sorting properly
* AutoCompState + ItemToggle fixes
Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.
* Also catch these