Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
63bb3ad
Cache texture UVs (#6894)
metalgearsloth Aug 2, 2026
b19ec9b
Remove redundant MsgEntity data (#6906)
metalgearsloth Aug 3, 2026
05fec54
Make SerializationManager.TryGetTypeNodeSerializer 65 times faster (#…
DrSmugleaf Aug 5, 2026
93dcc21
Fix WordWrap bugs (#6908)
eoineoineoin Aug 5, 2026
375c11a
Use fastpath for RSI state drawing (#6895)
metalgearsloth Aug 5, 2026
3c77ce1
New Feature: `before` and `after` support for subscriptions through a…
Winkarst-cpu Aug 5, 2026
34f3074
Fix GameStateBuffer TryAdd count check (#6917)
metalgearsloth Aug 5, 2026
1d1ffcd
Add and use CopyNoType to MappingDataNode, don't copy in ComponentReg…
DrSmugleaf Aug 5, 2026
9cb27ce
Replace some usages of object reads with generic type reads (#6914)
DrSmugleaf Aug 5, 2026
d4c6e71
Make ComponentRegistrySerializer.Read 3.7 times faster (#6913)
DrSmugleaf Aug 5, 2026
5fdaa2b
Make IHasDependencies injection 6x faster and BuildGraph faster 1.6x …
DrSmugleaf Aug 5, 2026
7ff4fed
Add a field to exclude auto states from replays (#6834)
DrSmugleaf Aug 5, 2026
9cc4af1
Fix Discord RPC resetting playtime on rejoin (#6903)
Winkarst-cpu Aug 5, 2026
3bc751c
Add EnsureCapacity for gamestates (#6919)
metalgearsloth Aug 5, 2026
3fa6f76
IOC fixes (#6918)
metalgearsloth Aug 5, 2026
592be94
Refactor PVS detach queue (#6921)
metalgearsloth Aug 6, 2026
d61a733
Pre-allocate serializer sizes (#6927)
metalgearsloth Aug 6, 2026
956a668
Optimise full state updates (#6920)
metalgearsloth Aug 6, 2026
8c7609e
Add a Code Fix for converting EntitySystem event subscriptions to use…
Tayrtahn Aug 6, 2026
f1db205
Add support for Sun Microsystems Help through Cut keys (#6922)
DoubleHypercube Aug 6, 2026
07924a4
Intern prototype components (#6897)
metalgearsloth Aug 6, 2026
174d8f3
Occluder access change (#6611)
metalgearsloth Aug 6, 2026
2ad281b
Update yamldotnet (#6930)
metalgearsloth Aug 7, 2026
2e38e18
Fix count usages (#6862)
kontakt Aug 7, 2026
8f4558d
Fix animations on DefaultWindow (#6933)
eoineoineoin Aug 7, 2026
7f9d166
Rewrite ReflectionManager, make SerializationManager use it (#6877)
DrSmugleaf Aug 7, 2026
a539a94
Do not serialize components pending removal (#6891)
AndrewFenriz Aug 7, 2026
b057db4
Add polygon occluders (#6831)
metalgearsloth Aug 7, 2026
a088de1
Version: 287.0.0
metalgearsloth Aug 7, 2026
e4859f9
MapSystem iterator cleanups (#6843)
metalgearsloth Aug 8, 2026
fe3e11a
Run TestPair GenerateClient and GenerateServer in parallel (#6936)
DrSmugleaf Aug 8, 2026
3152fe7
Remove ISimulation SpawnEntity (#6868)
SnappingOpossum Aug 8, 2026
a8739e7
Replays: stream replay history from disk instead of holding the whole…
IlyaBokovenko Aug 8, 2026
33459e0
Add `cmd-replay-toggleui-desc` string (#6859)
wixoaGit Aug 8, 2026
9cd71b6
Handle chunt pausing (#6852)
metalgearsloth Aug 8, 2026
ab3d420
Move part of Sprite deserialization hook to component init and optimi…
DrSmugleaf Aug 8, 2026
60c0e1d
Font outline caching + draw batching for outlines (#6892)
metalgearsloth Aug 8, 2026
6ff1acf
Make rect deletion area align with camera rotation instead of world (…
B-Kirill Aug 8, 2026
8bccd07
Fix all warnings from `Dispose` on Controls (#5986)
Tayrtahn Aug 8, 2026
7844134
GridFixtureSystem Optimizations (#6415)
Aidenkrz Aug 8, 2026
e5d7db1
refactor: xml-doc + helper method for audio device display names (#6733)
Fildrance Aug 8, 2026
c56454e
Add CVar to mute on unfocus (#6677)
metalgearsloth Aug 8, 2026
c64d437
Grid-fixture refactor (#6941)
metalgearsloth Aug 8, 2026
1c234be
Release inputs on window focus loss (#6851)
metalgearsloth Aug 8, 2026
8b82ed1
Drop failed runtime prototype uploads. (#6548)
rhailrake Aug 8, 2026
d158a89
Adds two new Component lookup functions to EntitySystem: `WithCompOrN…
Centronias Aug 8, 2026
d9573ca
Fix "spawn tiles" window UIBox2 errors (#6932)
eoineoineoin Aug 8, 2026
3ba6de7
Version: 288.0.0
metalgearsloth Aug 8, 2026
4d5acab
Fix entitydeserializer not dirtying entity (#6942)
metalgearsloth Aug 8, 2026
06298e6
Version: 288.0.1
metalgearsloth Aug 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
<PackageVersion Include="Tracy-CSharp" Version="0.13.1" />
<!-- Intentionally kept back, there is a bug that breaks audio for systems without AVX instructions. And the fix is not yet published. -->
<PackageVersion Include="VorbisPizza" Version="1.3.0" />
<PackageVersion Include="YamlDotNet" Version="16.3.0" />
<PackageVersion Include="YamlDotNet" Version="18.1.0" />
<PackageVersion Include="prometheus-net" Version="8.2.1" />
<PackageVersion Include="prometheus-net.DotNetRuntime" Version="4.4.1" />
<PackageVersion Include="PolySharp" Version="1.15.0" />
Expand Down
8 changes: 4 additions & 4 deletions MSBuild/Robust.Engine.Version.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project>
<!-- This file automatically reset by Tools/version.py -->
<PropertyGroup><Version>286.0.0</Version></PropertyGroup>
</Project>
<Project>
<!-- This file automatically reset by Tools/version.py -->
<PropertyGroup><Version>288.0.1</Version></PropertyGroup>
</Project>
Expand Down
76 changes: 75 additions & 1 deletion RELEASE-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Don't change the format without looking at the script!

### Internal

* Pool sprite post-shader render targets in Clyde. ([#6657](https://github.com/space-wizards/RobustToolbox/pull/6657))
*None yet*


END TEMPLATE-->
Expand Down Expand Up @@ -54,6 +54,80 @@ END TEMPLATE-->
*None yet*


## 288.0.1

### Bugfixes

* Fix server and client getstate not being aligned for ComponentNetworkGenerator.
* Fix components removed on entity deserializer not flagging the entity as dirty.


## 288.0.0

### Breaking changes

* `ReplayData` no longer exposes the `States`/`Messages` lists; use `Count`, `GetState(index)` and `GetMessages(index)` instead. Replay history is now provided lazily through the new `IReplayDataProvider` interface, and `IReplayLoadManager.GenerateCheckpointsAsync` is no longer part of the public API.
* GridFixtureSystem now updates the grid origin for split grids to re-centre them.
* Batch font outline drawing with new API methods.
* SharedMapSystem enumerators can now use struct foreach loops instead of .MoveNext calls and obsoleted the other ones.

### New features

* Added IAudioManager.ConvertAudioDeviceNameForDisplay helper method for decoding OpenAL device names into a more human-readable format.
* The replay client now streams replay history from disk instead of keeping the entire deserialized replay resident in RAM, both while loading (history is streamed block-by-block through checkpoint generation) and during playback (data blocks are lazily re-read through a small LRU window, configurable via the `replay.loaded_block_window` cvar). Measured on an 861 MB, 1h38m replay this halves load time and cuts peak memory from ~22 GB to ~12 GB.
* Added WithCompOrNull helper methods to EntitySystems.
* Fix deletion rectangle rotation
* Added CVar to mute on unfocus.

### Bugfixes

* Failed runtime prototype uploads are now dropped.
* Fix spawn tiles window UIBox2 errors.
* Release all keybinds when window loses focus.
* Fix chunt pausing not aligning with the attached root pausing.

### Internal

* ISimulation no longer has SpawnEntity methods, resolve IEntityManager and call the spawn methods directly instead.
* Run GenerateClient and GenerateServer in parallel.


## 287.0.0

### Breaking changes

* OccluderComponent now supports convex polygons and no longer uses a bounding box. These use the same limitations as convex hulls for physics (no more than 8 points).
* Update Yamldotnet to 18.1.0
* EntityPrototype components are now interned and shared. Any components that have the same datafield data are now shared when stored on PrototypeManager, saving significant amounts of memory.
* RSIStates now store AtlasTexture and not Texture, speeding up RSI rendering by directly passing it through.
* Reverted BUI state queueing.

### New features

* Added a field to `ComponentNetworkGenerator` to exclude components from replays.
* Added support for before and after subscriptions for the new `[SubscribeLocalEvent]` and related attributes.

### Bugfixes

* Make DefaultWindow call base.FrameUpdate to support animations.
* Fix Discord RPC playtime resetting on join.
* Fix some WordWrap bugs.

### Other

* Change `OccluderComponent` access to `ReadExecute`.
* Components that are being removed are no longer serialized.
* Added test workflows for the template repos.

### Internal

* Rewrite ReflectionManager for performance reasons.
* Made many optimizations to GameStates, componentregistryserializer, IoC dependencies, and collection serializers.
* Remove redundant MsgEntity properties.
* Cached texture UVs for rendering atlas textures.
* Pool sprite post-shader render targets in Clyde.


## 286.0.0

### Breaking changes
Expand Down
11 changes: 11 additions & 0 deletions Resources/Locale/en-US/input.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,15 @@ input-key-RSystem-mac = Right ⌘
input-key-LSystem-linux = Left Meta
input-key-RSystem-linux = Right Meta

input-key-Help = Help
input-key-Stop = Stop
input-key-Again = Again
input-key-Prop = Props
input-key-Undo = Undo
input-key-Cut = Cut
input-key-Copy = Copy
input-key-Open = Open
input-key-Paste = Paste
input-key-Find = Find

input-key-unknown = <unknown key>
2 changes: 2 additions & 0 deletions Resources/Locale/en-US/replays.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ cmd-replay-error-no-replay = Not currently playing a replay.
cmd-replay-error-already-loaded = A replay is already loaded.
cmd-replay-error-run-level = You cannot load a replay while connected to a server.

cmd-replay-toggleui-desc = Toggles the replay control UI.

# Recording commands

cmd-replay-recording-start-desc = Starts a replay recording, optionally with some time limit.
Expand Down
Loading
Loading