Commit Graph

142 Commits

Author SHA1 Message Date
Jonas Herzig
5289026313 Bump MC to 1.17 proper 2021-06-28 19:06:26 +02:00
Jonas Herzig
1af4add932 Update ReplayStudio
- MC 1.17
- Updated ViaVersion
- Quick Mode supports multiple worlds now (and no longer needs a manual Respawn)
2021-06-28 19:06:26 +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
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
4cdbfb7c46 Update Gradle to 7.0.2 2021-06-05 23:01:16 +02:00
Jonas Herzig
f5af283492 Update for new forge maven repo 2021-04-22 14:09:58 +02:00
Jonas Herzig
3440b8d8a8 Update loom to 0.6 2021-03-14 12:13:06 +01:00
Jonas Herzig
8ff27437af Add configurable, small Replay Viewer button (closes #471) 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
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
2f0160c4f6 Update loom to 0.5 (closes #453) 2021-02-17 11:39:57 +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
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
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
7b97d9ea85 Use FG1.2 fork with Gradle 4.9 fixes so we can build everything at once 2019-05-08 14:00:46 +02:00
Jonas Herzig
f1527c51fe Fix -dirty suffix of 1.7.10 build on CI 2019-05-07 12:49:53 +02:00
Jonas Herzig
2094c518a0 Fix :shadowJar task. Take 2.
This time, wait for the subprojects to be evaluated before trying
to get their shadowJar tasks (otherwise they won't be there).
2019-05-06 13:31:50 +02:00
Jonas Herzig
1d21002eb0 Run shadowJar and setCoreVersion in same gradle invocation on CI 2019-05-06 11:33:40 +02:00
Jonas Herzig
b55dce280c Fix :shadowJar task
It now copies any shadowed jar in any configured subprojects
instead of requiring all subprojects
2019-05-06 11:05:33 +02:00
Jonas Herzig
a02fe4e985 More FG build classpath workarounds
Though this one seems to have a different cause from the previous
one.
2019-05-05 13:26:53 +02:00
Jonas Herzig
3d009e45c7 Update to MC 1.14 / Fabric 2019-05-04 15:27:03 +02:00
Jonas Herzig
d5b9e60c4d Workaround class loader errors by loading single guava in the root scope
Possibly related to gradle/gradle#4823 as it only appeared after
using evaluationDependsOn (via The Preprocessor and on jGui).
2019-04-25 09:17:07 +02:00
Jonas Herzig
9968f81073 Split source preprocessor into separate gradle plugin 2019-04-21 01:40:39 +02:00
Jonas Herzig
44151876cd Add task which collects shadowed jars in root project build/libs folder 2019-03-15 14:50:56 +01:00
Jonas Herzig
8705bbad9a Re-enable and fix building for older MC versions 2019-03-09 13:08:47 +01:00
Jonas Herzig
9655677972 Start update to 1.13 2019-03-01 17:22:50 +01:00
Jonas Herzig
8314803cda Use "-dirty" for marking dirty builds because Windows doesn't like "*" 2018-06-12 22:24:57 +02:00
Jonas Herzig
fbbca76099 Remove :versions prefix from gradle projects and remove duplicated build code 2018-03-06 12:39:24 +01:00
Jonas Herzig
78ad02bc84 Change from tag-based versioning to commit/file based 2018-03-03 12:33:50 +01:00
Jonas Herzig
da6d9e8167 Only replace FG2.1 when not a reprod build 2018-02-28 21:15:37 +01:00
Jonas Herzig
f0d4d93936 Replace FG 2.1 with custom fork for Gradle 3 compatibility 2018-02-28 19:20:48 +01:00
Jonas Herzig
95877be3e6 Replace FG 2.0 with custom fork for Gradle 3 compatibility 2018-02-28 11:55:59 +01:00
Jonas Herzig
aabc3b52fe Replace reprod patched mixingradle with specific upstream version 2018-02-22 18:25:36 +01:00
Jonas Herzig
748b9da443 Combine all versions into a single tree 2018-02-22 18:25:36 +01:00
Jonas Herzig
5f2366e49d Merge branch '1.12.1-dev' into 1.12.2-dev 2018-01-17 20:46:34 +01:00
Jonas Herzig
638cc59097 Merge branch '1.12-dev' into 1.12.1-dev 2018-01-17 20:02:27 +01:00
Jonas Herzig
dc1bc1ee8e Merge branch '1.11.2-dev' into 1.12-dev 2018-01-17 00:18:04 +01:00
Jonas Herzig
06bebda557 Merge branch '1.11-dev' into 1.11.2-dev 2018-01-16 23:28:46 +01:00
Jonas Herzig
e7ce03e85f Merge branch '1.10.2-dev' into 1.11-dev 2018-01-16 23:15:31 +01:00
Jonas Herzig
2dce4eb54a Merge branch '1.9.4-dev' into 1.10.2-dev 2018-01-16 22:31:31 +01:00
Jonas Herzig
c148076a40 Merge branch '1.8.9-dev' into 1.9.4-dev 2018-01-16 22:22:05 +01:00
Jonas Herzig
604d33d846 Merge branch '1.8-dev' into 1.8.9-dev 2018-01-16 21:52:50 +01:00
Jonas Herzig
f8aa97405a Merge branch '1.8-viaversion' into 1.8-dev 2018-01-16 13:46:57 +01:00
Jonas Herzig
42aa0d9b61 Merge branch '1.12.2-dev' into 1.12.2-reprod 2017-10-28 19:52:54 +02:00
Jonas Herzig
903762f042 Merge branch '1.12.1-dev' into 1.12.1-reprod 2017-10-28 19:34:38 +02:00
Jonas Herzig
9592c6b8ea Merge branch '1.12-dev' into 1.12-reprod 2017-10-28 18:28:19 +02:00
Jonas Herzig
e70ef7a601 Merge branch '1.11.2-dev' into 1.11.2-reprod 2017-10-28 18:06:00 +02:00