Skip to content

Commit b56e55a

Browse files
committed
Update to Minecraft 1.20.5.
- Update to Minecraft 1.20.5 * Major changes to pano render to accommodate vanilla menu changes
1 parent 6adf94c commit b56e55a

13 files changed

+175
-151
lines changed

.github/workflows/check_build.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,29 @@ jobs:
1111
strategy:
1212
matrix:
1313
# Use these Java versions
14-
java: [17]
14+
java: [21]
1515
os: [ubuntu-20.04]
1616
runs-on: ${{ matrix.os }}
1717
steps:
1818
- name: Checkout repository
19-
uses: actions/checkout@v2
19+
uses: actions/checkout@v4
2020
with:
2121
fetch-depth: 0
2222
- name: Validate Gradle wrapper
2323
uses: gradle/wrapper-validation-action@v1
2424
- name: Setup JDK ${{ matrix.java }}
25-
uses: actions/setup-java@v1
25+
uses: actions/setup-java@v4
2626
with:
27+
distribution: 'zulu'
2728
java-version: ${{ matrix.java }}
2829
- name: Make Gradle wrapper executable
2930
if: ${{ runner.os != 'Windows' }}
3031
run: chmod +x ./gradlew
3132
- name: Build
3233
run: ./gradlew build --stacktrace --parallel
3334
- name: Capture build artifacts
34-
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from LTS java on one OS
35-
uses: actions/upload-artifact@v2
35+
if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from LTS java on one OS
36+
uses: actions/upload-artifact@v4
3637
with:
3738
name: Artifacts
3839
path: build/libs/

.github/workflows/release.yml

+9-8
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ jobs:
1313
strategy:
1414
matrix:
1515
# Use these Java versions
16-
java: [17]
16+
java: [21]
1717
# and run on both Linux and Windows
1818
os: [ubuntu-20.04]
1919
runs-on: ${{ matrix.os }}
2020
steps:
2121
- name: Checkout repository
22-
uses: actions/checkout@v2
22+
uses: actions/checkout@v4
2323
with:
2424
fetch-depth: 0
2525
- name: Create version tag
26-
uses: actions/github-script@v3
26+
uses: actions/github-script@v7
2727
with:
2828
github-token: ${{ github.token }}
2929
script: |
30-
github.git.createRef({
30+
github.rest.git.createRef({
3131
owner: context.repo.owner,
3232
repo: context.repo.repo,
3333
ref: "refs/tags/v${{ github.event.inputs.version }}",
@@ -36,10 +36,11 @@ jobs:
3636
- name: Fetch tags
3737
run: git fetch --tags
3838
- name: Validate Gradle wrapper
39-
uses: gradle/wrapper-validation-action@v1
39+
uses: gradle/wrapper-validation-action@v2
4040
- name: Setup JDK ${{ matrix.java }}
41-
uses: actions/setup-java@v1
41+
uses: actions/setup-java@v4
4242
with:
43+
distribution: 'zulu'
4344
java-version: ${{ matrix.java }}
4445
- name: Make Gradle wrapper executable
4546
if: ${{ runner.os != 'Windows' }}
@@ -55,8 +56,8 @@ jobs:
5556
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
5657
DISCORD_ANNOUNCEMENT_WEBHOOK: ${{ secrets.DISCORD_ANNOUNCEMENT_WEBHOOK }}
5758
- name: Capture build artifacts
58-
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from LTS java on one OS
59-
uses: actions/upload-artifact@v2
59+
if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from LTS java on one OS
60+
uses: actions/upload-artifact@v4
6061
with:
6162
name: Artifacts
6263
path: build/libs/

build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
plugins {
2-
id 'fabric-loom' version '1.4.+'
2+
id 'fabric-loom' version '1.6.+'
33
}
44

55
apply from: 'https://raw.githubusercontent.com/TerraformersMC/GradleScripts/2.6/ferry.gradle'
66

7-
sourceCompatibility = JavaVersion.VERSION_17
8-
targetCompatibility = JavaVersion.VERSION_17
7+
sourceCompatibility = JavaVersion.VERSION_21
8+
targetCompatibility = JavaVersion.VERSION_21
99

1010
dependencies {
1111
minecraft "com.mojang:minecraft:$project.minecraft_version"

gradle.properties

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G
33
maven_group=com.terraformersmc
44
archive_name=vistas
55

6-
minecraft_version=1.20.1
7-
yarn_mappings=1.20.1+build.10
8-
loader_version=0.15.6
9-
fabric_version=0.91.0+1.20.1
10-
modmenu_version=7.2.2
11-
clothconfig_version=11.1.118
6+
minecraft_version=1.20.5
7+
yarn_mappings=1.20.5+build.1
8+
loader_version=0.15.10
9+
fabric_version=0.97.7+1.20.5
10+
modmenu_version=10.0.0-beta.1
11+
clothconfig_version=14.0.126
1212

1313
# Project Metadata
1414
project_name=Vistas
@@ -21,14 +21,14 @@ default_release_type=beta
2121
# CurseForge Metadata
2222
curseforge_slug=vistas
2323
curseforge_id=423659
24-
curseforge_game_versions=1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, Fabric, Quilt
24+
curseforge_game_versions=1.20.5, 1.20.6-Snapshot, Fabric, Quilt
2525
curseforge_required_dependencies=fabric-api
2626
curseforge_optional_dependencies=
2727

2828
# Modrinth Metadata
2929
modrinth_slug=vistas
3030
modrinth_id=itzZXRxq
31-
modrinth_game_versions=1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4
31+
modrinth_game_versions=1.20.5, 1.20.6-rc1
3232
modrinth_mod_loaders=fabric, quilt
3333
modrinth_required_dependencies=fabric-api
3434

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.terraformersmc.vistas.mixin;
2+
3+
import com.terraformersmc.vistas.title.VistasRotatingCubemapRenderer;
4+
import net.minecraft.client.gui.CubeMapRenderer;
5+
import net.minecraft.client.gui.RotatingCubeMapRenderer;
6+
import net.minecraft.client.gui.screen.Screen;
7+
import org.spongepowered.asm.mixin.Final;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Mutable;
10+
import org.spongepowered.asm.mixin.Shadow;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
15+
@Mixin(Screen.class)
16+
public class ScreenMixin {
17+
@Shadow
18+
@Final
19+
protected static CubeMapRenderer PANORAMA_RENDERER;
20+
21+
@Shadow
22+
@Mutable
23+
@Final
24+
protected static RotatingCubeMapRenderer ROTATING_PANORAMA_RENDERER;
25+
26+
@Inject(method = "<clinit>", at = @At("TAIL"))
27+
private static void vistas$useOurRenderer(CallbackInfo ci) {
28+
ROTATING_PANORAMA_RENDERER = new VistasRotatingCubemapRenderer(PANORAMA_RENDERER);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
11
package com.terraformersmc.vistas.mixin;
22

3-
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4-
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5-
import com.mojang.blaze3d.platform.GlStateManager;
6-
import com.mojang.blaze3d.systems.RenderSystem;
73
import com.terraformersmc.vistas.Vistas;
84
import com.terraformersmc.vistas.config.VistasConfig;
95
import com.terraformersmc.vistas.resource.PanoramaResourceReloader;
10-
import com.terraformersmc.vistas.title.BenignCubemapRenderer;
116
import com.terraformersmc.vistas.title.LogoDrawerAccessor;
12-
import com.terraformersmc.vistas.title.PanoramaRenderer;
137
import com.terraformersmc.vistas.title.VistasTitle;
148
import net.fabricmc.api.EnvType;
159
import net.fabricmc.api.Environment;
16-
import net.minecraft.client.gui.DrawContext;
1710
import net.minecraft.client.gui.LogoDrawer;
18-
import net.minecraft.client.gui.RotatingCubeMapRenderer;
1911
import net.minecraft.client.gui.screen.Screen;
2012
import net.minecraft.client.gui.screen.SplashTextRenderer;
2113
import net.minecraft.client.gui.screen.TitleScreen;
2214
import net.minecraft.text.Text;
23-
import net.minecraft.util.Identifier;
24-
import net.minecraft.util.math.MathHelper;
2515
import org.jetbrains.annotations.Nullable;
2616
import org.spongepowered.asm.mixin.Final;
2717
import org.spongepowered.asm.mixin.Mixin;
28-
import org.spongepowered.asm.mixin.Mutable;
2918
import org.spongepowered.asm.mixin.Shadow;
3019
import org.spongepowered.asm.mixin.injection.At;
3120
import org.spongepowered.asm.mixin.injection.Inject;
@@ -37,29 +26,19 @@
3726
@Mixin(TitleScreen.class)
3827
public abstract class TitleScreenMixin extends Screen {
3928
@Shadow
40-
@Mutable
4129
@Final
42-
private RotatingCubeMapRenderer backgroundRenderer;
43-
44-
@Shadow
45-
@Final
46-
private boolean doBackgroundFade;
30+
private LogoDrawer logoDrawer;
4731

4832
@Nullable
4933
@Shadow
5034
private SplashTextRenderer splashText;
5135

52-
@Shadow
53-
@Final
54-
private LogoDrawer logoDrawer;
55-
5636
protected TitleScreenMixin(Text title) {
5737
super(title);
5838
}
5939

6040
@Inject(method = "<init>(Z)V", at = @At("TAIL"))
6141
private void vistas$init(boolean doBackgroundFade, CallbackInfo ci) {
62-
this.backgroundRenderer = new BenignCubemapRenderer();
6342
((LogoDrawerAccessor)this.logoDrawer).vistas$setIsVistas(new Random().nextDouble() < 1.0E-4D && VistasTitle.CURRENT.getValue().equals(VistasTitle.PANORAMAS.get(Vistas.DEFAULT)));
6443
}
6544

@@ -73,30 +52,4 @@ protected TitleScreenMixin(Text title) {
7352
this.splashText = null;
7453
}
7554
}
76-
77-
@WrapOperation(
78-
method = "render",
79-
at = @At(
80-
value = "INVOKE",
81-
target = "Lnet/minecraft/client/gui/RotatingCubeMapRenderer;render(FF)V"
82-
)
83-
)
84-
@SuppressWarnings("unused")
85-
private void vistas$render(RotatingCubeMapRenderer instance, float delta, float fade, Operation<Void> operation, DrawContext context) {
86-
assert this.client != null;
87-
PanoramaRenderer.time += delta;
88-
VistasTitle.CURRENT.getValue().getCubemaps().forEach((cubemap) -> {
89-
PanoramaRenderer panoramaRenderer = new PanoramaRenderer(cubemap);
90-
panoramaRenderer.render(delta, fade);
91-
Identifier overlayId = new Identifier(panoramaRenderer.getCubemap().getCubemapId() + "_overlay.png");
92-
if (this.client.getResourceManager().getResource(overlayId).isPresent()) {
93-
RenderSystem.enableBlend();
94-
RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA);
95-
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, this.doBackgroundFade ? (float) MathHelper.ceil(fade) : 1.0F);
96-
context.drawTexture(overlayId, 0, 0, this.width, this.height, 0.0F, 0.0F, 16, 128, 16, 128);
97-
}
98-
});
99-
100-
operation.call(instance, delta, fade);
101-
}
10255
}

src/main/java/com/terraformersmc/vistas/panorama/RotationControl.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.mojang.serialization.Codec;
44
import com.mojang.serialization.codecs.RecordCodecBuilder;
5+
import net.minecraft.client.MinecraftClient;
56

67
import java.util.Optional;
78

@@ -86,16 +87,25 @@ public double getSpeedMultiplier() {
8687
return speedMultiplier;
8788
}
8889

90+
public double getSpeed() {
91+
MinecraftClient client = MinecraftClient.getInstance();
92+
if (client == null) {
93+
return this.getSpeedMultiplier();
94+
}
95+
96+
return client.options.getPanoramaSpeed().getValue() * this.getSpeedMultiplier();
97+
}
98+
8999
public double getPitch(double time) {
90-
return ((this.isWoozy() ? -time * 0.1D : Math.sin(time * 0.001D) * 5.0D + 25.0D) + this.getAddedPitch()) * this.getSpeedMultiplier();
100+
return ((this.isWoozy() ? -time * 0.1D : Math.sin(time * 0.001D) * 5.0D + 25.0D) + this.getAddedPitch()) * this.getSpeed();
91101
}
92102

93103
public double getYaw(double time) {
94-
return ((-time * 0.1D) + this.getAddedYaw()) * this.getSpeedMultiplier();
104+
return ((-time * 0.1D) + this.getAddedYaw()) * this.getSpeed();
95105
}
96106

97107
public double getRoll(double time) {
98-
return (this.getAddedRoll()) * this.getSpeedMultiplier();
108+
return (this.getAddedRoll()) * this.getSpeed();
99109
}
100110

101111
@Override

src/main/java/com/terraformersmc/vistas/resource/PanoramaResourceReloader.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import com.terraformersmc.vistas.panorama.Panorama;
1313
import com.terraformersmc.vistas.title.VistasTitle;
1414
import net.minecraft.client.MinecraftClient;
15-
import net.minecraft.client.util.Session;
15+
import net.minecraft.client.session.Session;
1616
import net.minecraft.resource.Resource;
1717
import net.minecraft.resource.ResourceManager;
1818
import net.minecraft.resource.SinglePreparationResourceReloader;
@@ -47,7 +47,7 @@ protected HashMap<Identifier, Pair<Panorama, List<String>>> prepare(ResourceMana
4747
profiler.push(namespace);
4848
try {
4949
for (Resource resource : manager.getAllResources(new Identifier(namespace, "panoramas.json"))) {
50-
profiler.push(resource.getResourcePackName());
50+
profiler.push(resource.getPackId());
5151
try {
5252
InputStream inputStream = resource.getInputStream();
5353
try {
@@ -93,7 +93,7 @@ protected HashMap<Identifier, Pair<Panorama, List<String>>> prepare(ResourceMana
9393
}
9494
inputStream.close();
9595
} catch (RuntimeException runtimeBreak) {
96-
Vistas.LOGGER.warn("Invalid panoramas.json in resourcepack: '{}'", resource.getResourcePackName(), runtimeBreak);
96+
Vistas.LOGGER.warn("Invalid panoramas.json in resourcepack: '{}'", resource.getPackId(), runtimeBreak);
9797
}
9898
profiler.pop();
9999
}

src/main/java/com/terraformersmc/vistas/title/BenignCubemapRenderer.java

-15
This file was deleted.

0 commit comments

Comments
 (0)