Commit Graph

207 Commits

Author SHA1 Message Date
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
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
4b4d18026b Move GLStateTracker into 1.7.10 project 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
1a35234b0a Move LoadingPlugin into 1.12.2 project 2021-02-19 23:02:39 +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
Daniel N. Werner
159f0e259f Update common.gradle
Stable and develop are returning 520 from CloudFlare, looks like they've switched the maven repository to use https.
2021-02-16 22:43:55 +01:00
Jonas Herzig
d06ef47f1c Update ReplayStudio (fixes #426) 2020-11-22 15:15:41 +01:00
Jonas Herzig
bcaf946f13 Move .gitkeep from 1.16.3 to 1.16.4 folder (fixup c620e2c) 2020-11-14 09:55:36 +01:00
Jonas Herzig
c620e2cf9e Update to MC 1.16.4 (closes #406) 2020-11-06 18:54:55 +01:00
Jonas Herzig
577e59fd41 Add undo/redo to keyframe timeline (closes #305) 2020-11-06 18:54:55 +01:00
Jonas Herzig
ccb08d37a7 Store server name (in addition to address) in replays (closes #324) 2020-11-06 18:54:54 +01:00
Jonas Herzig
3ce10d4855 Get rid of thumb magic (closes #237) 2020-11-06 18:54:54 +01:00
Jonas Herzig
d3230e1e38 Add camera path export (closes #391) 2020-11-06 18:54:52 +01:00
Jonas Herzig
2b6d1b2359 Add OpenEXR export option
In preparation for depth map export.
2020-11-06 11:41:38 +01:00
Jonas Herzig
9af562957f Merge branch 'stable' into develop 2020-09-27 18:48:54 +02:00
Jonas Herzig
d7788b675a Fix missing blocks pre-1.14 in Quick Mode and Edit (fixes #374) 2020-09-27 17:28:29 +02:00
Jonas Herzig
2c2af8a6a6 Fix outer skin layer when spectating in first person (fixes #363) 2020-09-27 13:11:57 +02:00