Jonas Herzig
8d3d705fed
Switch to commons-lang Pair instead of the ViaVersion one
...
Cause that one will be removed in a future version, and the lang one is just
fine.
2021-06-28 14:35:57 +02:00
Jonas Herzig
766d3346ee
Pin FG5 version because its maintainers cannot be trusted
...
Versions after 5.0.5 emit tsrg2 instead of tsrg, breaking anything which reads
those files (e.g. Mixin and the preprocessor), later versions even bump the
required Gradle version.
2021-06-27 14:44:16 +02:00
Jonas Herzig
08165252d5
Switch to new Quick Mode backend
2021-06-06 10:42:16 +02:00
Jonas Herzig
1802b1a7d0
Port to 1.17-pre1
2021-06-06 10:42:16 +02:00
Jonas Herzig
5f2dca08d1
Fix "Cannot register receiver while client is not logging in!"
...
Since MC provides no reliable way to get the connection while still in the login
phase, Fabric API tries to determine it either from MinecraftClient's connection
field (for the integrated server) or from the ConnectScreen (for multiplayer).
However, neither is present during a replay, leading to the aforementioned
error.
To fix this, we store our ClientConnection in MinecraftClient's connection
field. This should have no significant effect on vanilla behavior.
Also remove the dead Forge 1.14 code which was in the same place.
2021-06-05 23:01:16 +02:00
Jonas Herzig
25a6cdc502
Fix RenderSettings (de)serialization with Java 16 ( fixes #520 )
...
Turns out we were relying on the implementation detail of the File class, and
Java 16 ensures we cannot do that.
2021-06-05 23:01:16 +02:00
Jonas Herzig
9d3583293b
Bundle Gson on 1.11.2 and below ( fixes #421 )
...
Decided to go with 1.11.2 because the Gson from that version is the first to not
have the JsonAdapter annotiation, which we want for fixing #520 .
2021-06-05 23:01:16 +02:00
Jonas Herzig
e380907334
Switch preprocessor config to flat style
2021-06-05 23:01:16 +02:00
Jonas Herzig
4cdbfb7c46
Update Gradle to 7.0.2
2021-06-05 23:01:16 +02:00
Jonas Herzig
59fb58c6fc
Disable 1.7.10 for now
...
Continued support would require porting FG1.2 to Gradle 7 / Java 16.
2021-06-05 22:57:46 +02:00
Jonas Herzig
3440b8d8a8
Update loom to 0.6
2021-03-14 12:13:06 +01:00
Jonas Herzig
537795f9ca
Backport contextual key bindings to 1.12.2 and below ( closes #478 )
2021-03-14 12:12:53 +01:00
Jonas Herzig
dda6bd41b6
Implement ffmpeg-independent PNGWriter ( closes #476 )
...
Creates a dedicated folder for each video and does not depend on ffmpeg, just
like the EXRWriter (but supporting all MC versions).
Also does 32 bit depth export by chunking the 32-bit float into the 8-bit BGRA
component channels.
2021-03-14 12:12:53 +01:00
Jonas Herzig
8ff27437af
Add configurable, small Replay Viewer button ( closes #471 )
2021-03-14 12:12:53 +01:00
Jonas Herzig
c6b41d76fa
Document valid values for MultipleChoiceSettings in config file
2021-03-14 12:12:53 +01:00
Jonas Herzig
4ca4f2def6
Auto-reload config file on changes (Fabric only)
2021-03-14 12:12:53 +01:00
Jonas Herzig
61d67a5e80
Remove OpenEye ( closes #465 )
...
It is not available for Fabric and we stopped using it.
2021-03-14 12:12:53 +01:00
Jonas Herzig
b7309283e9
Rename MixinRendererLivingEntity -> Mixin_HideNameTags_LivingEntity
2021-03-14 12:12:53 +01:00
Jonas Herzig
a97190de1e
Move MixinRendererLivingEntity into 1.8.9 project
2021-03-14 12:12:53 +01:00
Jonas Herzig
c17fc79ab2
Rename MixinRender -> Mixin_HideNameTags
2021-03-14 12:12:53 +01:00
Jonas Herzig
1924963d75
Move MixinOpenGlHelper into 1.7.10 project
2021-03-14 12:12:53 +01:00
Jonas Herzig
aba34d6c6f
Rename Mixin_CubicRotation -> Mixin_Omnidirectional_Rotation
2021-03-14 12:12:53 +01:00
Jonas Herzig
db5708f338
Rename MixinFrustum -> Mixin_Omnidirectional_DisableFrustumCulling
2021-03-14 12:12:53 +01:00
Jonas Herzig
6974f8e60c
Rename MixinCamera -> Mixin_StabilizeCamera
2021-03-14 12:12:53 +01:00
Jonas Herzig
3ec81d5c35
Split MixinEntityRenderer into multiple, more focused files
2021-03-14 12:12:53 +01:00
Jonas Herzig
fad89626e5
Move 1.7.10 code from MixinEntityRenderer to Mixin_ForceChunkLoading
2021-03-14 12:12:53 +01:00
Jonas Herzig
e7a1fafdf9
Extract Mixin_ChromaKeyDisableFog from other mixins
2021-03-14 12:12:53 +01:00
Jonas Herzig
cf1d7537e8
Move MixinEffectRenderer into 1.8.9 project
2021-03-14 12:12:53 +01:00
Jonas Herzig
10426f9d39
Move MixinChunkRenderWorker into 1.14.4 project
2021-03-14 12:12:53 +01:00
Jonas Herzig
2fb4f73ae4
Move ChunkRenderDispatcherAccessor into 1.14.4 project
2021-03-14 12:12:53 +01:00
Jonas Herzig
6289545d84
Remove forge/fml event bus from MCVer
2021-03-14 12:12:53 +01:00
Jonas Herzig
cfb9e15b8a
Make use of new @Pattern feature to centralize version-aware code
...
That is, most of the business code should not be aware that it is being compiled
to multiple versions even when it heavily interacts with MC, preprocessor
statements should be an escape hatch, not the norm.
Similarly, code should not be forced to do `MCVer.getWindow(mc)` instead of the
much more intuitive `mc.getWindow()`, and a new preprocessor (technically remap)
feature makes this possible by defining "search and replace"-like patterns (but
smarter in that they are type-aware) in one or more central places (the
"Patterns.java" files) which then are applied all over the code base.
In a way, this is another step in the automatic back-porting process where
preprocessor statements are used when we cannot yet do something automatically.
Previously we "merely" automatically converted between different mapping, this
new feature now also allows us to automatically perform simple refactoring
tasks like changing field access to a getter+setter (e.g. `mc.getWindow()`), or
changing how a method is called (e.g. `BufferBuilder.begin`), or changing a
method call chain (e.g. `dispatcher.camera.getYaw()`), or most other
search-and-replace-like changes and any combination of those.
The only major limitation is that the replacement itself is not smart, so
arguments must be kept in same order (or be temporarily assigned to local
variables which then can be used in any order).
2021-03-14 12:12:51 +01:00
Jonas Herzig
06a46e6f38
Use callback-style events for crosshair and hotbar render events
2021-02-28 09:52:19 +01:00
Jonas Herzig
da16b0fb78
Add 1.14.4 <> 1.12.2 mapping for Option <> GameSettings.Options
2021-02-28 09:52:19 +01:00
Jonas Herzig
f34b88cf7e
Move MixinShader into 1.7.10 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
d7dde42add
Move HideInvisibleEntities into 1.12.2 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
5f652ec7f2
Move DisableBetterSprinting into 1.12.2 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
05d7971332
Move mapwriter.MixinMinecraft into 1.12.2 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
4eeaca5af1
Use MainWindowAccessor across all versions
2021-02-28 09:52:19 +01:00
Jonas Herzig
e4da7f331b
DRY main MC window resizing
2021-02-28 09:52:19 +01:00
Jonas Herzig
3fbb4b50ea
Rename ChunkLoadingRenderGlobal → ForceChunkLoadingHook
...
More descriptive, less MCP.
2021-02-28 09:52:19 +01:00
Jonas Herzig
ab5b101f96
Add stub ChunkLoadingRenderGlobal for 1.7.10
...
Allows us to get rid of all preprocessor guards around its usages.
2021-02-28 09:52:19 +01:00
Jonas Herzig
c729654f04
Split off 1.14.4 overwrite from ChunkLoadingRenderGlobal
2021-02-28 09:52:19 +01:00
Jonas Herzig
f19ee8ba63
Split off 1.14.4 overwrite from Mixin_ForceChunkLoading
2021-02-28 09:52:19 +01:00
Jonas Herzig
90bbc68443
Replace reflection in ChunkLoadingRenderGlobal with mixin
2021-02-28 09:52:19 +01:00
Jonas Herzig
4b4d18026b
Move GLStateTracker into 1.7.10 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
74580e6649
Remove redundant preprocessor statements
2021-02-28 09:52:19 +01:00
Jonas Herzig
87b55e187c
Replace a few //#if statements with mapping file entries
2021-02-28 09:52:19 +01:00
Jonas Herzig
026bc1fdcb
Move MixinWorldClient into 1.12.2 project
2021-02-28 09:52:19 +01:00
Jonas Herzig
470669b1f7
Move MixinRenderManager into 1.12.2 project
2021-02-23 01:21:44 +01:00
Jonas Herzig
b8bcb4967f
Move MixinFMLClientHandler into 1.7.10 project
2021-02-23 01:05:48 +01:00
Jonas Herzig
6fa746a2e3
Move MixinEntityRenderer into 1.7.10 project
2021-02-23 01:01:55 +01:00
Jonas Herzig
01d47279fd
Split off 1.12.2 overwrite from MixinCamera
2021-02-23 00:59:56 +01:00
Jonas Herzig
06db2ebb92
Move MixinS26PacketMapChunkBulk into 1.7.10 project
2021-02-23 00:47:01 +01:00
Jonas Herzig
6068aabea7
Move MixinPlayerControllerMP into 1.12.2 project
2021-02-23 00:45:12 +01:00
Jonas Herzig
6bc130312a
Move MixinNetworkDispatcher into 1.12.2 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
ba7c478da1
Split off 1.12.2 overwrite from MixinNetHandlerLoginClient
2021-02-23 00:41:22 +01:00
Jonas Herzig
25247a2371
Move MixinGuiScreen into 1.7.10 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
22d1048999
Move FMLHandshakeFilter into 1.12.2 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
6094422792
Split off highly version-dependent code from ModCompat
2021-02-23 00:41:22 +01:00
Jonas Herzig
029b228b26
Move ReplayModTweaker into 1.12.2 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
9bde5fae49
Move ResourcePackRepositoryAccessor into 1.7.10 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
f15eaf95c1
Split off 1.12.2 overwrite from MixinKeyboardListener
2021-02-23 00:41:22 +01:00
Jonas Herzig
9e152f2655
Move GLStateTrackerTransformer into 1.7.10 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
1329f2d703
Move GLErrorTransformer into 1.7.10 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
66c1f63219
Move GuiFactory into 1.12.2 project
2021-02-23 00:41:22 +01:00
Jonas Herzig
633bc19650
Use callback-style events throughout all versions
...
Removes the need for //#if statements on each and every event handler.
Instead we now always use the equivalent Callback and have one central 1.12.2
class which forwards Forge events to the callbacks.
2021-02-23 00:41:22 +01:00
Jonas Herzig
0be2082fe7
Split off highly version dependent code from ReplayMod
2021-02-20 00:43:49 +01:00
Jonas Herzig
bc9d8cb3d1
Split off highly version dependent code from SettingsRegistry
2021-02-20 00:43:46 +01:00
Jonas Herzig
9a67a64555
Drop server-side restrictions implementation
...
I don't think this sees sufficient use to justify updating.
Especially because it's non-trivial with forge's network changes.
Ping me if you actually used this.
2021-02-20 00:43:46 +01:00
Jonas Herzig
1a35234b0a
Move LoadingPlugin into 1.12.2 project
2021-02-19 23:02:39 +01:00
Jonas Herzig
9d81265213
Update preprocessor plugin
2021-02-19 23:01:43 +01:00
Jonas Herzig
bcde675775
Update jGui
2021-02-19 17:32:41 +01:00
Jonas Herzig
8c2d7d096c
Merge branch 'stable' into develop
2021-02-19 11:58:28 +01:00
Jonas Herzig
ff47174fd6
Release 2.5.2
2021-02-17 21:56:30 +01:00
Jonas Herzig
c0a95d278e
Add toString implementation to RenderSettings
...
We print them to the log in a few places, that's fairly useless without a
toString implementation.
2021-02-17 21:53:07 +01:00
Jonas Herzig
fed90b5597
Update ReplayStudio
...
a1f82a7 Properly handle same-dimension respawns in squash and quick mode (fixes #139 , fixes #455 )
7b84461 Fix NPE if there is a block change at time 0 (fixes #446 )
ee9d7d5 Switch to LGPLv3+ as primary license
2021-02-17 18:20:48 +01:00
Jonas Herzig
51a4ade37e
Fix slow drifting in FullReplaySender replay time ( fixes #451 )
2021-02-17 15:16:33 +01:00
Jonas Herzig
2f0160c4f6
Update loom to 0.5 ( closes #453 )
2021-02-17 11:39:57 +01:00
Jonas Herzig
56e5df65d5
Use vanilla sound engine to play render success sound ( fixes #286 )
2021-02-17 11:27:09 +01:00
Jonas Herzig
5f0218929b
Process sub-selection of render jobs in displayed order ( fixes #488 )
2021-02-17 03:33:14 +01:00
Jonas Herzig
6d0d50f5b3
Fix "Render All" button in render queue ( fixes #447 )
2021-02-17 03:06:52 +01:00
Jonas Herzig
c54638db30
Update ReplayStudio ( fixes #368 )
...
e7d5bf5 Fix wrap around for LinearInterpolator
2021-02-17 02:57:10 +01:00
Jonas Herzig
cdb93a1716
Fix spectating via clicking on forge ( fixes #432 )
2021-02-17 02:55:49 +01:00
Jonas Herzig
02a731e018
Update jGui ( fixes #429 )
...
3596f15 Improve timeline time indicators for really long (1h+) timelines
2021-02-17 01:39:38 +01:00
Jonas Herzig
ae0b0e3f13
Allow any entity to be spectated on 1.8+ ( fixes #382 )
...
Idk why this was restricted in the first place, ask Marius: 163faddd
2021-02-17 01:19:29 +01:00
Jonas Herzig
a9a0c2ddc3
Update jGui ( fixes #428 )
...
e3cd741 Re-open GuiOverlay if externally closed while `!closeable`
5a90b8b Fix GuiOverlay.closeable not being respected on 1.14+
2021-02-17 01:19:29 +01:00
Jonas Herzig
72d5d43ad2
Suppress CancellationException when stopping camera path
2021-02-17 01:19:29 +01:00
Jonas Herzig
a5f874e571
Fix crash with certain render output file values ( fixes #396 )
2021-02-17 01:19:29 +01:00
Jonas Herzig
9dfdfd6fe3
Update bundled mixin version ( fixes #438 )
2021-02-17 01:19:29 +01:00
Jonas Herzig
d8cae487c2
Rename build scripts: build -> root and common -> build
...
This way it's easier for people not familiar with the preprocessor setup to find
what they are looking for.
2021-02-17 00:13:42 +01:00
Jonas Herzig
7e5734067f
Remove jcenter repo, it will be shutting down
...
We have only been using it for the shadow plugin which is also available in the
plugins.gradle.org repo.
2021-02-17 00:13:42 +01:00
Jonas Herzig
19ff1ef38b
Do not bother recovering useless replays ( fixes #444 )
...
Useless replays being those for which auto-recording was disabled and Start
never pressed.
2021-02-16 22:38:39 +01:00
Jonas Herzig
57c7362e34
Merge branch 'stable' into develop
2020-11-22 17:10:27 +01:00
Jonas Herzig
dabb64340e
Release 2.5.1
2020-11-22 16:19:28 +01:00
Jonas Herzig
99b1528dcc
Update doRelease task for current branching model
2020-11-22 16:18:22 +01:00
Jonas Herzig
673964ea6a
Hide Saving Replay popup when no output is produced ( fixes #420 )
...
I.e. if the had Auto-Recording disabled and never pressed start, there won't be
any replays and it would just be the Done button, which is pointless.
2020-11-22 16:04:14 +01:00
Jonas Herzig
c3c59ec1c0
Trim video file extension from glb file name ( fixes #422 )
2020-11-22 15:18:41 +01:00
Jonas Herzig
d06ef47f1c
Update ReplayStudio ( fixes #426 )
2020-11-22 15:15:41 +01:00
Jonas Herzig
68ca92e8a2
Update changelog URL
2020-11-22 15:06:28 +01:00