* Implement hot reloading for entity prototypes
* Implement automatic prototype hot-reloading
* Merge fixes
* Add yaml hot reloading and a message to notify the client
* Add reloading only changed files, remove cooldown, add retries and remove IPrototype
* Remove reload command
* Make the client listen for reloads instead and only when focused
* Fix errors
* Only queue a reload when the queue has items in it
* Make fails after 10 retries log instead of throw if reloading
Co-authored-by: Jackson Lewis <inquisitivepenguin@protonmail.com>
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
It's now parallelized which cuts off ~200ms on its own for me.
Config is now shared between multiple loads which saves a lot as well.
All in all, pretty good.
Makes it not a "temporary todo remove" API since it has merits in e.g. assembly loading performance (.NET can mmap the assembly if it has a disk path which is better).
Removed duplicated IResourceManagerInternal APIs in IResourceCache.
Added Open() method that takes in FileMode, FileAccess AND FileShare.
Added extra extension method helpers and made use of better FileAccess/FileShare modes.
* implements shared string dictionary and handshake from net-code-2
* fix unit test
switch to szr sawmill
* try to silence some warnings around ZipEntry
* rebase and use system zip instead of icsharplib
fix rebase artifacts
* Update Robust.Shared/Interfaces/GameObjects/IComponentFactory.cs
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
* Apply suggestions from code review
* Apply suggestions from code review
* Update Robust.Shared/Serialization/RobustSerializer.cs
* since no longer gathering from paths, make string splitting more robust
* make string gathering ignore strings under 4 chars long
make string gathering yet more robust
* add limit to size of mapped strings
* add more string data to feed into shared string dictionary from YAML files
add JSON importer but don't parse RSI metadata yet
fix typo that breaks nulls in MappedStringSerializer
minor refactoring
make string splitting more robust
add WriteUnsignedInt / ReadUnsignedInt for validating WriteCompressedUnsignedInt / ReadCompressedUnsignedInt aren't bogus
* comment out some log statements
* minor refactor, reorder logging
add null check due to smart typing NRT checks
* Add doc comments, readability improvements to MappedStringSerializer
The protocol, handshake, and internal logic are now more documented.
The main area that could still be improved is the documentation of how
the cache system works, but the code is readable enough for now that it
isn't immediately necessary.
* add documentation, organization
* update some more doc comments
* add flows to doc comment for NetworkInitialize
* more documentation and organization
* more docs
* instead of retrieving INetManager by IoC, assign when NetworkInitialize is invoked
* "document" the regex
* Update Robust.Shared/Network/NetManager.cs
* add missing check for LockMappedStrings
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
Co-authored-by: ComicIronic <comicironic@gmail.com>
* change to warning instead of throw for unlocked string mapping
Co-authored-by: ComicIronic <comicironic@gmail.com>
* merged in shader automatic reloading, remove internal shader reloading
add support for includes to shader reloading, modified includes reload shaders that depends upon them
* add some fault tolerance to allow playing with the file a bit
* prevent multiple watch attempts
* fix spacing
* revert project change
* add cancellation to Reload with a default of 30s
fix case sensitivity comparison
assume windows & mac are case insensitive