* Dungeon spawn support for grid spawns
* Recursive dungeons working
* Mask approach working
* zack
* More work
* Fix recursive dungeons
* Heap of work
* weh
* the cud
* rar
* Job
* weh
* weh
* weh
* Master merges
* orch
* weh
* vgroid most of the work
* Tweaks
* Tweaks
* weh
* do do do do do do
* Basic layout
* Ore spawning working
* Big breaking changes
* Mob gen working
* weh
* Finalising
* emo
* More finalising
* reverty
* Reduce distance
Separate the environment check from CapSpawnAmount into GetValidEnvironment to make the code a little cleaner, and also makes these two checks independent.
CapSpawnAmount and GetValidEnvironment now both have zero side-effects
Broken renamed Idle to reflect its use. Broken in my mind implies that there's some method for fixing.
---------
Co-authored-by: Partmedia <kevinz5000@gmail.com>
* add more info to entity json in logs
* replace TryGetSessionById
* remove unused dependency
* get admin status from the entity
* group values by component
* alphabetize
* I've discovered that my original plans may be bad for performance
* 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>
* Fixes gravity wells
* thank you slarticodefast
* Minor nitpicks addressed
* NITPICKS UNDONE
* REDO THE NITPICK, WE LOVE MATRIX MULTIPLCATION
* Revert "REDO THE NITPICK, WE LOVE MATRIX MULTIPLCATION"
This reverts commit c782eee1a1c7bda90c7ca686928019cc5f25c8cf.
* NITPICK REDO
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Oh the possibilities
* Merge fixes
* Forgot to remote LavaSystem oops
* Changed EntityEffectArgs to EntityEffectBaseArgs and EntityEffectReagentArgs
* Throw exception for unimplemented effectargs
* Remove Json and overrideable datafields
* Fix test issues
* Actually fix the compiling issue
* Fix comments and remove EntityEffectArgs (no longer used, replaced with EntityEffectBaseArgs)
Miners now can produce a fraction of their SpawnAmount corresponding
to the "remaining space" available in their environment according to
their MaxExternalPressure and MaxExternalAmount.
* add textures
* add SealingCabinet system
* add StoreUnlocker/ObjectiveUnlock system
* add plutonium core and nuke core container
* make nuke deconstructable
* add steal core objective
* add core extraction toolbox to new category
* typo ops wrench fuel
* use queries and resolve, have it resolve instead of using Comp
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
There were TWO bugs here
FIRST, APCs *did* update their visual state on initialization, but at that point the relevant power state hasn't been initialized yet, so it always returns a bogus result. There aren't guaranteed to be subsequent power updates that actually trigger the APC to update so this can get it stuck.
Fixed by just deferring the on-init update to be after the first update tick, which is itself ordered to be after power update.
SECOND: Once I fixed that, I ran into the issue that APCs created at *server startup* also fail to update, because the throttling system (to prevent frequent APC updates) thinks the LastChargeStateTime was at server startup.
Fixed by making that variable nullable so it defaults to null.
Also removed the useless datafields on the "last update" fields. These are all just used to cache and throttle updates, something that should not be persisted to a map file.
Miners' prototype have been changed to reflect this (I read
somewhere that we have about 1 atmos tick/0.5s, my tests show more
like 1/0.53 but that looks close enough).
This also means that miner's spawnAmount is now expressed in mol/s.
See: #18781
This feature should never have been merged, it can be trivially abused to break the entire server.
It's behind a CVar because honestly that's the easiest way to 1984 the feature.
* Spawn dummy entities on client for vending machine UI
* Asked sloth, and we kinda need this pr
---------
Co-authored-by: Vasilis <vasilis@pikachu.systems>
* add LoggingDisabled to AccessReader
* add LogWireAction
* -m give everything besides high-security door a log wire
* make LogAccess public and support string arg
* add log when pulsing
* m
* l
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Implement a new kind of ip range ban that only applies to new players
* Put determining whether a player record exists to its own function
* Make BlacklistedRange bans get bypassed by any ban exemption
* Stop trying to get another DbGuard while already having one
This does break with convention on the functions in that area but
considering the use of this function it's probably fine?
I could alternatively just move the place it's called from.
Also I was suppossed to wait for tests to finish locally just to be
sure, but nah. I am pushing this now
* BlockSolutionAccessComponent now only blocks one specified solution.
* Significant overhaul
Separated spilling when worn functionality into its own component/system.
Removed BlockSolutionAccessComponent.
Added an event for solution access.