* Laws
* positronic brain and PAI rewrite
* MMI
* MMI pt. 2
* borg brain transfer
* Roleban support, Borg job (WIP), the end of mind shenaniganry
* battery drain, item slot cleanup, alerts
* visuals
* fix this pt1
* fix this pt2
* Modules, Lingering Stacks, Better borg flashlight
* Start on UI, fix battery alerts, expand activation/deactivation, low movement speed on no power.
* sprotes
* no zombie borgs
* oh fuck yeah i love a good relay
* charger
* fix the tiniest of sprite issues
* adjustable names
* a functional UI????
* foobar
* more modules
* this shit for some reason
* upstream
* genericize selectable borg modules
* upstream again
* holy fucking shit
* i love christ
* proper construction
* da job
* AA borgs
* and boom more shit
* admin logs
* laws redux
* ok just do this rq
* oh boy that looks like modules
* oh shit research
* testos passo
* so much shit holy fuck
* fuckit we SHIP
* last minute snags
* should've gotten me on a better day
* DNA component
* Commit numba 2
* Added DNA into Station Records Computer
* commit numba 3
* commit numba 4
* Vomit also contain DNA component now
* fixed DNA field not clearing after scanning another item
* commit numba 10
Drinking leaves DNA on an object. Breaking glasses, bottles and beakers leave DNA and leave fingerprints/fibers with 40% chance on glass shards. + lotta fixes
* 11
* 12
* 14
* Added DNA guide entry
* FIX
* add types to explosion logs
* make explosions logged by default
* add cause parameter to IThresholdBehavior
* add cause to ExplodeBehaviors
* add cause to power cell explosions
* remove useless log
* add triggerer to triggers
* add logs for damage from explosions
* sneaky power cell update
* Explosions
* fix yaml typo
and prevent silly UI inputs
* oop
* Use modified contains() checks
And remove IEnumerable
* Buff nuke, nerf meteors
* optimize the entity lookup stuff a bit
* fix tile (0,0) error
forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile.
* remove celebration
* byte -> int
* remove diag edge tile dict
* fix one bug
but there is another
* fix the other bug
turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place.
* improve edge map
* fix minor bug
If the initial-explosion tile had an airtight entity on it, the tile was processed twice.
* some reviews (transform queries, eye.mapid, and tilesizes in overlays)
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* is map paused
* GetAllTiles ignores space by default
* WriteLine -> WriteError
* First -> FirstOrDefault()
* default prototype const string
* entity query
* misc review changes
* grid edge max distance
* fix fire texture defn
bad use of type serializer and ioc-resolves
* Remove ExplosionLaunched
And allow nukes to throw items towards the outer part of an explosion
* no hot-reload disclaimer
* replace prototype id string with int index
* optimise damage a tiiiiny bit.
* entity queries
* comments
* misc mirror comments
* cvars
* admin logs
* move intensity-per-state to prototype
* update tile event to ECS event
* git mv
* Tweak rpg & minibomb
also fix merge bug
* you don't exist anymore go away
* Fix build
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Move entity solution entity systems to shared
* Move SolutionComponents to Server
* Fix namespaces
* Remove Networked Component.
* Fixes
* Add components to ignore list
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
- The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
- This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
- This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
- This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes#4892 and fixes#4857
Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀