Commit Graph

49 Commits

Author SHA1 Message Date
Jonas Herzig
27d5432fff Update to 26.1 2026-04-14 12:39:59 +02:00
Jonas Herzig
b72fad4055 Update to Gradle 9, Loom 1.15, EGT 0.7 2026-04-06 07:48:51 +02:00
TKD_Kedis
caffd41358 Update to 1.21.11 (#1106)
Co-authored-by: Jonas Herzig <me@johni0702.de>
2025-12-16 16:34:53 +01:00
Jonas Herzig
f21fed031c Update to 1.21.4 2024-12-15 10:24:12 +01:00
Jonas Herzig
a4e0abec7f Update to 1.21 2024-06-23 20:33:41 +02:00
Jonas Herzig
5218feb6b6 Update to 1.20.6 2024-06-23 20:24:57 +02:00
Jonas Herzig
9ce25f711f Port to MC 1.19-pre3 2022-05-27 10:05:50 +02:00
Jonas Herzig
6e1febdab8 Port to MC 1.18-pre1 2021-11-14 17:27:35 +01:00
Jonas Herzig
2415a886e2 Update to 1.17.1 2021-07-24 11:05:39 +02:00
Jonas Herzig
1802b1a7d0 Port to 1.17-pre1 2021-06-06 10:42:16 +02: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
d8135d9038 Add depth map export (closes #371) 2020-11-06 11:41:38 +01:00
Jonas Herzig
aee486c4f3 Stop assuming that our render pipeline will only process RGB frames
For one, we have already switched to RGBA some time ago, so the name was
technically incorrect already.
But the main reason is that we'll want to use them for depth maps as well (and
potentially maybe even for HDR images if that's possible with canvas?).
2020-10-03 14:50:44 +02:00
Jonas Herzig
c2f51d41fa ./gradlew :1.16.2:setCoreVersion 2020-08-28 14:55:40 +02:00
Jonas Herzig
9001fdc9de Cleanup 1.15.2 <-> 1.16.2 conversion 2020-08-28 14:50:28 +02:00
Jonas Herzig
f8b22d449c [1.14] Work around bug in mixin causing Accessors to not resolve
This intentionally breaks the mixin in a development environment but makes the
compiled jar work in a live environment (which is probably more useful given the
primary version is 1.15 now).
2020-04-15 19:47:12 +02:00
Jonas Herzig
b119d2d127 ./gradlew :1.15.2:setCoreVersion
Also `./gradlew :jGui:1.15.2:setCoreVersion`.
2020-04-06 13:18:37 +02:00
Jonas Herzig
6113336c37 Disable ContainerLocalRenderInformationAccessor in 1.15 for now
It appears to suffer from https://github.com/SpongePowered/Mixin/issues/390 and
since we don't yet support the ChunkExporter, it's not yet needed anyway.
2020-04-02 10:51:14 +02:00
Jonas Herzig
d6559a21fc Get all 1.15 mixins applying 2020-04-02 00:11:06 +02:00
Jonas Herzig
a3e1792fe7 More 1.15 mapping fixes 2020-04-02 00:11:06 +02:00
Jonas Herzig
5315c66943 Cleanup 1.15.2 → 1.14.4 remapping 2020-04-02 00:11:06 +02:00
Jonas Herzig
527562549b Update 1.14.4 yarn 2020-04-02 00:11:02 +02:00
Jonas Herzig
78ba9bd55e Fix misc preprocessor directives 2020-03-30 15:30:22 +02:00
Jonas Herzig
8b7ef8d1e3 1.13 is dead (followup to 8bc0b0a) 2020-03-30 02:52:47 +02:00
Jonas Herzig
af8803d6b5 WIP 1.15 and ReplayStudio v2 update 2020-03-13 14:18:19 +01:00
Jonas Herzig
8bc0b0a4df Update preprocessor and replace 1.13.2 subproject with 1.14.4-forge
The new preprocessor version brings first-party support for fabric, in
particular for automatically fetching mappings loom and for
automatically remapping between MC versions via intermediary mappings.
This will come in handy when updating to 1.15.

It also supports automatic remapping between fabric and forge on the
same MC version (by going mcp<->srg<->mojang<->intermediary<->yarn).
Therefore this commit replaces the previous 1.13.2 (forge) subproject
with a 1.14.4-forge one. Instead of manually providing full mappings for
1.14.4-fabric to 1.13.2-forge and partial (classes) for 1.13.2-forge to
1.12.2-forge, we now only need partial (classes) for 1.12.2-forge to
1.14.4-forge and preprocessor will take care of the forge to fabric
step (in fact, our mapping file for that is currently completely empty).

In an attempt to write an IDE (IntelliJ) plugin for quicker and easier
working with the preprocessor (e.g. immediately mapping single files
from within the IDE, jumping between different versions for the same
file), the preprocessor gradle plugin declaration now requires you to
explicitly specify variables in the common.gradle and the overall
relationship between projects in the build.gradle (latter is required
anyway, so the plugin can know where it should map between forge and
fabric and which subprojects are which versions).
Since that necessitated some changes to the build.gradle file, I took
the opportunity to convert it to Kotlin. As such we now also use
Gradle's newer plugin-block with the pluginManagement-block instead of
manually declaring buildScript (not for the common.gradle though), which
imo is nicer anyway and comes with various advantages (see gradle docs).

There were also some remapping bugs fixed and some new ones
introduced (e.g. manually declared inner class mappings seem to no
longer function properly under certain conditions).
There's also support for remapping Kotlin now. Just saying.
2020-01-12 23:34:10 +01:00
Jonas Herzig
7241036e61 AWT is forbidden on 1.13+ (this includes BufferedImage)
Instead use NativeImage on 1.13+ via newly introduced Image class.
See Image docs for details.

Also fixes an issue with thumbnail taking on 1.13+: The original
ScreenshotHelper method is now async, luckily there's a sync
variant and as a bonus it directly returns a NativeImage so we can
skip having to read the screenshot from disk.
2019-06-30 12:12:13 +02:00
Jonas Herzig
214da6ba59 Update to MC 1.14.3 2019-06-24 18:36:12 +02:00
Jonas Herzig
d89655e69a Remove some more preprocessor statements in favor of remap 2019-05-28 11:25:46 +02:00
Jonas Herzig
e5ee6a3d94 Update to MC 1.14.1
The ReplayStudio update also fixes an issue with reading the
PlayerListEntryPacket leading to NPEs during Quick Mode.
2019-05-20 14:59:31 +02:00
Jonas Herzig
7cbf7f7c94 Switch core to 1.14 (generated via ./gradlew :1.14:setCoreVersion) 2019-05-10 14:09:22 +02:00
Jonas Herzig
2463e5dbf0 Work around bug in fabric's mapping provider (or Mixin itself?)
See https://github.com/FabricMC/fabric-mixin-compile-extensions/issues/1
2019-05-07 11:21:33 +02:00
Jonas Herzig
bd91d0d3bd Get rid of all the ATs in favor of Mixins 2019-05-06 22:46:21 +02:00
Jonas Herzig
3d009e45c7 Update to MC 1.14 / Fabric 2019-05-04 15:27:03 +02:00
Jonas Herzig
17fe5b345f Replace all ATs with Mixin on 1.13+ in preparation for Fabric 2019-04-26 12:04:33 +02:00
Jonas Herzig
2ee91515f7 Make use of the source remapping feature of The Preprocessor plugin 2019-04-24 15:38:34 +02:00
Jonas Herzig
6127e0a027 Replace dev-only reflection with access transformer entry 2019-04-24 14:03:17 +02:00
Jonas Herzig
fa8f8f52aa Stop using @SneakyThrows since it breaks the JDT used for source remap 2019-04-24 13:41:06 +02:00
Jonas Herzig
7cc62b13c1 Fix blend compilation on pre-1.13 2019-03-14 18:20:17 +01:00
Jonas Herzig
3cb1d8189b Preshadow lwjgl_util instead of copying source of specific classes 2019-03-14 18:20:17 +01:00
Jonas Herzig
dc6de5bd5f Apply rotation and scale to entity (livingbase), not its parts
Reduces amount of keyframes per entity and makes it easier to work with.
2019-03-14 11:30:40 +01:00
Jonas Herzig
cd16e014d1 Vastly improve performance of major block name generation 2019-03-13 22:03:03 +01:00
Jonas Herzig
22ab39c2db Get blend export running on 1.13 2019-03-13 19:10:44 +01:00
Jonas Herzig
106f14d8c7 Merge branch 'johni/1.13-pre' into johni/blend 2019-03-13 16:07:32 +01:00
Jonas Herzig
c48187e784 Disable .blend export for 1.7.10 2018-06-11 00:31:50 +02:00
Jonas Herzig
e7b5ba9e72 Update blend export for all remaining MC versions 2018-03-04 16:28:35 +01:00
Jonas Herzig
40da0d10c8 Parse raw buffer instead of intercepting all BufferBuilder calls 2018-03-04 16:28:35 +01:00
Jonas Herzig
1bdf7da525 Update blend export to 1.12.2 2018-03-04 16:28:29 +01:00
Jonas Herzig
6794b58524 Add .blend export 2018-03-04 15:30:50 +01:00