Links
Tags
Creators
Details
0.7.0
Compatibility
Required content
Changes
The Anti-Jank Update (Part 1)
This update is quite ambitious, so I had to pull a Caves and Cliffs and split it into two. 0.7.0 lays the technical groundwork for 0.8.0, which will be focused on the UI and making a better user experience.
In this update, the world exporter has been almost completely re-written. If you've been following the GitHub repo, this is what's been happening in the async_world_capture branch.
The new exporter is written in a way such that it can be executed off of the main thread, with all block updates during the export being properly accounted for. This works using a proxy, "snapshot" object, which uses a client-side block update detector to create a thread-safe view of the world at a given time, without any overhead upon creation. This means that, along with some internal optimizations, the initial world exporter can now operate concurrently with the frame exporter to improve export times and make the UI more responsive.
Additionally, the export pipeline has been re-written as to not piggyback off of the Replay Mod's render pipeline. A custom pipeline that's built for the unique needs of the replay exporter rather than a video exporter significantly improves code cleanliness and paves the way for better UI clarity (some of which is already implemented.)
I also updated the mod to 1.19.3 because some people were asking for that.
Changes
-
Updated to 1.19.3
-
Removed Joml as a jar-in-jar dependency as that's now provided by Minecraft.
-
Updated model adapters to use Joml types where relevant.
-
-
Overhauled world exporter
-
Wrote
ChunkViewabstract class which represents a block view that declares which chunks are loaded. -
All Vcap capture classes now use this
ChunkViewabstraction, allowing them to be used on things other thanWorldinstances. -
Created
WorldSnapshotclass, a thread-safe view of a world at a specific point in time. -
World exporter works asynchronously, exporting chunks in parallel to drastically improve export time.
-
-
Re-wrote replay export pipeline
-
Created new
ReplayExporter, an adaption ofVideoRendererdesigned specifically for exporting replays. -
Removed all the janky workarounds that were in use to get
VideoRendererto export replays. -
Implemented backend for better UI feedback about export "phases." This replaces the prints to console that were in use before.
-
Fixed an issue where entities wouldn't export properly if the export region started at the very beginning of the replay.
-
Fixed an issue where player skins wouldn't export if the playhead was in the middle of the export region.
-
Moved replay finalization and serialization off of the main thread.
-
-
Small UI update
-
New export progress screen displays world export progress as well as replay export progress.
-
Added warning about the fluid exporter's memory issues to export screen.
-
-
Misc.
- Made the Blender addon camera export start at frame zero, regardless of the starting frame.
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| mc-world-export-0.7.0-sources.jar | Unknown | 267.45 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:iwvovClp:JSYZuXP7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:iwvovClp:JSYZuXP7"
}

