branchrust_reboot/main/syncvarscancel

115 Commits over 120 Days - 0.04cph!

2 Days Ago
Remove testing sync
2 Days Ago
Issue a warning if sync vars are an unsupported type
2 Days Ago
Remove unused train sync stuff
2 Days Ago
main -> syncvars
2 Days Ago
Add exact array pool - only returns arrays that are exact sizes. This is needed for serialisation. I cant have anything too big
2 Days Ago
Fix protobuf types being unable to be Autosaved/loaded properly (Trailing empty bits at the end were causing it to be rejected, so im required to use a byte array of exact size) Removed array pool logic, just cache it per class. Should stay similarly sized and only allocate once per object so overall impact should hopefully be low
3 Days Ago
Return old Protobuf SyncVar instances to the pool
3 Days Ago
Swap to partial event hooks. Works with intelisense better than the frankenstein event with matching method
3 Days Ago
Prevent unecessary weaving fires Try without generating the event keyword
3 Days Ago
Minor code cleanup
3 Days Ago
Totally remove hash set used for queue and just encode the whole queue into a single uint. We can just send this as the header(since the current queue perfectly reflects the encoded data) Send DemoTransientEntity once per queue instead of for each item in the queue Move is server check to the queueing rather than sending method (more clear)
3 Days Ago
Update SourceGenerator DLL - better error messages
4 Days Ago
main -> syncvars
4 Days Ago
Optimised SyncAttribute searching on patching step
5 Days Ago
Fix train engine packing options
5 Days Ago
Handle syncvar equality checking in BaseNetworkable: having the method available there makes it easier to use intelisense
7 Days Ago
Remove excess protos on train engine
7 Days Ago
SyncVars (by default) will require a value to be changed before syncing over the network. Turning this off will sync everytime its changed, not every unique change.
7 Days Ago
Fix some logic errors in train sync vars
8 Days Ago
main -> syncvars
10 Days Ago
Try to ensure editor weaving process isn't running on build
11 Days Ago
Try and skip setter injection on the client by checking the subtarget
11 Days Ago
main -> syncvars
11 Days Ago
Ensure build looks in the correct path
11 Days Ago
Call patch assembly anytime scripts reload
11 Days Ago
main -> syncvars
12 Days Ago
Only generate symbols if pdb exists Wrap inside of setter in if server block
12 Days Ago
Ensure SyncVars run first in the build process. Don't create a lock on Rust.Global.dll
12 Days Ago
Ensure injector errors when it cant find sync method (dont bother throwing)
12 Days Ago
Safeguards for client weaving process (dont try to hook setter at at all)
12 Days Ago
Fixed autosave/autoload not using preprocessor directives
12 Days Ago
Fixed Changed event being ran on autoload
12 Days Ago
Convert train line up to unload and train num connected cars to syncvars
12 Days Ago
Set GenerateEvent default to true
12 Days Ago
Use a wrapper method instead of emitting equality comparitor in IL - it was ugly at best
12 Days Ago
Add support for RequireChanged flag - this runs the old and new values through an equality comparison before pushing sync.
13 Days Ago
Swapped train engine fuel amount over to use SyncVars instead of protobufs. First set of testing.
13 Days Ago
Use an autosave buffer as an intermediary when writing to syncvar bytes Prevents byte allocations every autosave
14 Days Ago
Add Autosave system. SyncVars marked as Autosave will automatically be injected into Save/Load methods so no need to write protobufs.
15 Days Ago
Updated source generator to support event generation. Ensured our attribute matches this More tests in the legacy shelter
15 Days Ago
Better weaver symbol logic (to prepare for being built) Downgraded code analysis to 3.8 so it doesnt explode hot reload
15 Days Ago
Safer SyncVar Implementation: Rosyln Source Generator creates: Weaver ID table (managed to make it free), read, write methods and backing fields. Run Weaving step based on the result of source generator, only bother hooking setter IL to run code created during the source generator phase Add source generator dependencies
16 Days Ago
main -> syncvars
17 Days Ago
More test code
17 Days Ago
main -> syncvars
17 Days Ago
Fix strings not parsing correctly in the receive code. Net read strings take an argument (needs to be supported on our end)
17 Days Ago
Properly handle error messages Display more information when something goes wrong Show postive/negative error logs as green and red
17 Days Ago
First set of code cleanup on the new weaving solution Split everything off into smaller areas Injection simplification Seperate build/editor dependency logic
17 Days Ago
SyncVars fully working with weaving. Fixed incorrect stack for WriteSyncVar.
17 Days Ago
Fix malformed WriteSyncVar Setter plumbed up to the correct entry logic for queueing/sending SyncVars