Skip to content

Ultra optimizations#72

Open
WeirdPhrog wants to merge 6 commits into
rust-app-io:3.0.0from
WeirdPhrog:Ultra-optimizations
Open

Ultra optimizations#72
WeirdPhrog wants to merge 6 commits into
rust-app-io:3.0.0from
WeirdPhrog:Ultra-optimizations

Conversation

@WeirdPhrog

@WeirdPhrog WeirdPhrog commented Jun 21, 2026

Copy link
Copy Markdown
Contributor
  • Optimize building auth detection by checking auth state during spatial query and stopping on the first matching block
  • Restrict signage destroy handling to supported paintable entities
  • Add shared IsPaintable helper for signage hooks
  • Filter OnEntityBuilt signage updates by supported paintable types
  • Refactored state update payload structure and removed duplicated server_info
  • Added custom JSON serialization for Vector3, Quaternion, and ulong values - no more ToString() allocs
  • Replaced string-based position, rotation, and team payload fields with typed values
  • Cached map grid coordinate strings to reduce repeated allocations
  • Added Execute overloads for common success/error callback combinations
  • Refactored response deserialization into TryDeserializeResponse
  • Preserved previous behavior on parse errors by skipping typed success callback
  • Simplified API request call sites and removed unused error parameters
  • Replace coroutine-based UnityWebRequest execution with UniTask and a local cancellation timeout. This manually aborts hanging requests before the underlying curl timeout, preventing the native crashes observed when many requests time out simultaneously, while keeping existing callbacks and error handling behavior

WeirdPhrog and others added 6 commits June 21, 2026 21:40
- Optimize building auth detection by checking auth state during spatial query and stopping on the first matching block

Co-authored-by: DezLife <69988794+DezLife@users.noreply.github.com>
- Restrict signage destroy handling to supported paintable entities
- Add shared IsPaintable helper for signage hooks
- Filter OnEntityBuilt signage updates by supported paintable types
- Refactored state update payload structure and removed duplicated server_info
- Added custom JSON serialization for Vector3, Quaternion, and ulong values - no more ToString() allocs
- Replaced string-based position, rotation, and team payload fields with typed values
- Cached map grid coordinate strings to reduce repeated allocations
- Added Execute overloads for common success/error callback combinations
- Refactored response deserialization into TryDeserializeResponse
- Preserved previous behavior on parse errors by skipping typed success callback
- Simplified API request call sites and removed unused error parameters

Serialization optimizations by Bombardir
Co-authored-by: Bombardir <10889246+Bombardir@users.noreply.github.com>
- Replace coroutine-based UnityWebRequest execution with UniTask and a local cancellation timeout. This manually aborts hanging requests before the underlying curl timeout, preventing the native crashes observed when many requests time out simultaneously, while keeping existing callbacks and error handling behavior
- Replace SleepingBag position string with Vector3 + Vector3Converter
- Send signage destroyed net IDs as ulong list with item converter
- Serialize signage create net_id through UlongConverter
- Remove extra ToString() calls for position/net ID payload fields
- Keep API payload format consistent for large numeric IDs
- Reduce Vector3/Quaternion converter precision from F3 to F2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant