Skip to content

Commit 0d6e09e

Browse files
feat: port to 1.21.5
Rendering is complicated :cry;
1 parent 2e2c0d3 commit 0d6e09e

File tree

15 files changed

+186
-184
lines changed

15 files changed

+186
-184
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: CI Build & Release
33
on:
44
push:
55
tags:
6-
- mc/*/*
6+
- v/*
77

88
jobs:
99
build:

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
## [21.4.0]
1+
## [21.5.0]
22

33
### Changes
44

5-
- Ported to 1.21.4
5+
- Ported to 1.21.5

build.gradle

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@ plugins {
22
id 'idea'
33
id 'java-library'
44
id 'maven-publish'
5-
id 'net.neoforged.gradle.userdev' version '7.0.171'
6-
id "me.modmuss50.mod-publish-plugin" version "0.5.1"
5+
id 'net.neoforged.moddev' version '2.0.78'
6+
id "me.modmuss50.mod-publish-plugin" version "0.8.4"
7+
}
8+
9+
tasks.named('wrapper', Wrapper).configure {
10+
distributionType = Wrapper.DistributionType.BIN
711
}
812

913
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
@@ -15,38 +19,30 @@ base {
1519
archivesName = "advanced-xray-neoforge"
1620
}
1721

18-
minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')
19-
20-
runs {
21-
// applies to all the run configs below
22-
configureEach {
23-
systemProperty 'forge.logging.markers', 'REGISTRIES'
24-
systemProperty 'forge.logging.console.level', 'debug'
25-
26-
modSource project.sourceSets.main
27-
}
28-
29-
client {
30-
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
31-
}
22+
neoForge {
23+
version = project.forge_version
24+
accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg')
3225

33-
server {
34-
systemProperty 'forge.enabledGameTestNamespaces', mod_id
35-
programArgument '--nogui'
36-
}
26+
runs {
27+
// applies to all the run configs below
28+
configureEach {
29+
systemProperty 'forge.logging.markers', 'REGISTRIES'
30+
logLevel = org.slf4j.event.Level.DEBUG
31+
}
3732

38-
gameTestServer {
39-
systemProperty 'forge.enabledGameTestNamespaces', mod_id
33+
client {
34+
client()
35+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
36+
}
4037
}
4138

42-
data {
43-
runType "client"
44-
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
39+
mods {
40+
"${mod_id}" {
41+
sourceSet(sourceSets.main)
42+
}
4543
}
4644
}
4745

48-
sourceSets.main.resources { srcDir 'src/generated/resources' }
49-
5046
def replaceProperties = [
5147
minecraft_version: minecraft_version,
5248
minecraft_version_range: minecraft_version_range.replace("[%base]", minecraft_version),
@@ -56,16 +52,17 @@ def replaceProperties = [
5652

5753
processResources {
5854
inputs.properties replaceProperties
59-
replaceProperties.put 'project', project
6055

6156
filesMatching("META-INF/neoforge.mods.toml") {
6257
expand replaceProperties
6358
}
6459
}
6560

66-
dependencies {
67-
implementation "net.neoforged:neoforge:${forge_version}"
61+
configurations {
62+
runtimeClasspath.extendsFrom localRuntime
63+
}
6864

65+
dependencies {
6966
}
7067

7168
repositories {
@@ -74,10 +71,6 @@ repositories {
7471
}
7572
}
7673

77-
compileJava {
78-
options.encoding = "UTF-8"
79-
}
80-
8174
java {
8275
withSourcesJar()
8376
}
@@ -129,8 +122,13 @@ publishMods {
129122
}
130123
}
131124

132-
sourceSets.each {
133-
def dir = layout.buildDirectory.dir("sourcesSets/$it.name")
134-
it.output.resourcesDir = dir
135-
it.java.destinationDirectory = dir
125+
tasks.withType(JavaCompile).configureEach {
126+
options.encoding = 'UTF-8'
127+
}
128+
129+
idea {
130+
module {
131+
downloadSources = true
132+
downloadJavadoc = true
133+
}
136134
}

gradle.properties

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
22
# This is required to provide enough memory for the Minecraft decompilation process.
33
org.gradle.jvmargs=-Xmx4G
4+
org.gradle.daemon=true
5+
org.gradle.parallel=true
6+
org.gradle.caching=true
7+
org.gradle.configuration-cache=true
48

59
# https://parchmentmc.org/docs/getting-started
6-
neogradle.subsystems.parchment.minecraftVersion=1.20.6
7-
neogradle.subsystems.parchment.mappingsVersion=2024.06.02
8-
10+
parchment_minecraft_version=1.21.4
11+
parchment_mappings_version=2025.03.23
912

1013
mod_id=xray
11-
mod_version=21.4.0
12-
minecraft_version=1.21.4
13-
minecraft_version_range=[%base],1.21.5
14+
mod_version=21.5.0
15+
minecraft_version=1.21.5
16+
minecraft_version_range=[%base],1.21.6
1417

1518
# Forge
16-
forge_version=21.4.42-beta
17-
forge_version_range=21.4
19+
forge_version=21.5.7-beta
20+
forge_version_range=21.5
1821
curse_id=256256

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

settings.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
pluginManagement {
22
repositories {
3+
mavenLocal()
34
gradlePluginPortal()
4-
maven {
5-
url "https://maven.neoforged.net/releases"
6-
}
5+
maven { url = 'https://maven.neoforged.net/releases' }
76
}
87
}
98

10-
rootProject.name = 'advanced-xray-neoforge'
9+
plugins {
10+
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0'
11+
}

src/main/java/pro/mikey/xray/ClientController.java

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.neoforged.bus.api.IEventBus;
99
import net.neoforged.fml.ModLoadingContext;
1010
import net.neoforged.fml.config.ModConfig;
11+
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
1112
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
1213
import net.neoforged.fml.event.lifecycle.FMLLoadCompleteEvent;
1314
import net.neoforged.neoforge.common.NeoForge;
@@ -27,29 +28,15 @@ public class ClientController {
2728
// This contains all the games blocks to allow us to reference them
2829
// when needed. This allows us to avoid continually rebuilding
2930
public static GameBlockStore gameBlockStore = new GameBlockStore();
30-
public static DiscoveryStorage blockStore = new DiscoveryStorage();
31+
public static DiscoveryStorage blockStore;
3132

32-
public static void setup(IEventBus eventBus) {
33-
34-
eventBus.addListener(ClientController::onSetup);
35-
eventBus.addListener(ClientController::onLoadComplete);
36-
eventBus.addListener(KeyBindings::registerKeyBinding);
37-
38-
ModLoadingContext.get().getActiveContainer()
39-
.registerConfig(ModConfig.Type.CLIENT, Configuration.SPEC);
40-
41-
// Keybindings
42-
NeoForge.EVENT_BUS.addListener(KeyBindings::eventInput);
43-
NeoForge.EVENT_BUS.addListener(ClientController::onGameJoin);
44-
45-
NeoForge.EVENT_BUS.addListener(Events::tickEnd);
46-
NeoForge.EVENT_BUS.addListener(Events::onWorldRenderLast);
47-
48-
}
49-
50-
private static void onSetup(final FMLCommonSetupEvent event) {
33+
static void onSetup(final FMLClientSetupEvent event) {
5134
XRay.logger.debug(I18n.get("xray.debug.init"));
5235

36+
blockStore = new DiscoveryStorage();
37+
ClientController.gameBlockStore.populate();
38+
Controller.init();
39+
5340
KeyBindings.setup();
5441
List<BlockData.SerializableBlockData> data = ClientController.blockStore.read();
5542
if( data.isEmpty() )
@@ -59,7 +46,7 @@ private static void onSetup(final FMLCommonSetupEvent event) {
5946
Controller.getBlockStore().setStore(map);
6047
}
6148

62-
private static void onGameJoin(final EntityJoinLevelEvent event) {
49+
static void onGameJoin(final EntityJoinLevelEvent event) {
6350
if (!Configuration.firstRun.get()) {
6451
return;
6552
}
@@ -77,8 +64,4 @@ private static void onGameJoin(final EntityJoinLevelEvent event) {
7764
Configuration.firstRun.set(false);
7865
Configuration.firstRun.save();
7966
}
80-
81-
private static void onLoadComplete(FMLLoadCompleteEvent event) {
82-
ClientController.gameBlockStore.populate();
83-
}
8467
}
Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package pro.mikey.xray;
22

33
import net.neoforged.bus.api.IEventBus;
4+
import net.neoforged.fml.ModLoadingContext;
45
import net.neoforged.fml.common.Mod;
6+
import net.neoforged.fml.config.ModConfig;
57
import net.neoforged.fml.loading.FMLEnvironment;
8+
import net.neoforged.neoforge.client.event.RegisterRenderPipelinesEvent;
9+
import net.neoforged.neoforge.common.NeoForge;
610
import org.apache.logging.log4j.LogManager;
711
import org.apache.logging.log4j.Logger;
12+
import pro.mikey.xray.keybinding.KeyBindings;
13+
import pro.mikey.xray.xray.Events;
14+
import pro.mikey.xray.xray.Render;
815

916
@Mod(XRay.MOD_ID)
1017
public class XRay {
@@ -14,8 +21,26 @@ public class XRay {
1421
public static Logger logger = LogManager.getLogger();
1522

1623
public XRay(IEventBus eventBus) {
17-
if (FMLEnvironment.dist.isClient()) {
18-
ClientController.setup(eventBus);
24+
if (!FMLEnvironment.dist.isClient()) {
25+
return;
1926
}
27+
28+
ModLoadingContext.get().getActiveContainer()
29+
.registerConfig(ModConfig.Type.CLIENT, Configuration.SPEC);
30+
31+
eventBus.addListener(ClientController::onSetup);
32+
eventBus.addListener(KeyBindings::registerKeyBinding);
33+
eventBus.addListener(this::registerPipeline);
34+
35+
// Keybindings
36+
NeoForge.EVENT_BUS.addListener(KeyBindings::eventInput);
37+
NeoForge.EVENT_BUS.addListener(ClientController::onGameJoin);
38+
39+
NeoForge.EVENT_BUS.addListener(Events::tickEnd);
40+
NeoForge.EVENT_BUS.addListener(Events::onWorldRenderLast);
41+
}
42+
43+
private void registerPipeline(RegisterRenderPipelinesEvent event) {
44+
event.registerPipeline(Render.LINES_NO_DEPTH);
2045
}
2146
}

src/main/java/pro/mikey/xray/gui/GuiOverlay.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package pro.mikey.xray.gui;
22

3-
import com.mojang.blaze3d.platform.GlDebug;
3+
import com.mojang.blaze3d.systems.GpuDevice;
44
import com.mojang.blaze3d.systems.RenderSystem;
55
import net.minecraft.client.Minecraft;
66
import net.minecraft.client.gui.GuiGraphics;
@@ -31,7 +31,8 @@ public static void RenderGameOverlayEvent(RenderGuiEvent.Post event) {
3131

3232
GuiGraphics guiGraphics = event.getGuiGraphics();
3333

34-
boolean renderDebug = GlDebug.isDebugEnabled();
34+
GpuDevice gpuDevice = RenderSystem.tryGetDevice();
35+
boolean renderDebug = gpuDevice != null && gpuDevice.isDebuggingEnabled();
3536

3637
int x = 5, y = 5;
3738
if (renderDebug) {

src/main/java/pro/mikey/xray/gui/GuiSelectionScreen.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package pro.mikey.xray.gui;
22

3-
import com.mojang.blaze3d.platform.GlStateManager;
4-
import com.mojang.blaze3d.systems.RenderSystem;
53
import com.mojang.blaze3d.vertex.PoseStack;
64
import net.minecraft.client.Minecraft;
75
import net.minecraft.client.gui.Font;
@@ -12,7 +10,6 @@
1210
import net.minecraft.client.renderer.RenderType;
1311
import net.minecraft.client.renderer.entity.ItemRenderer;
1412
import net.minecraft.client.resources.language.I18n;
15-
import net.minecraft.locale.Language;
1613
import net.minecraft.network.chat.Component;
1714
import net.minecraft.resources.ResourceLocation;
1815
import net.minecraft.world.InteractionHand;
@@ -321,14 +318,10 @@ public void render(GuiGraphics guiGraphics, int entryIdx, int top, int left, int
321318

322319
var stack = guiGraphics.pose();
323320
stack.pushPose();
324-
RenderSystem.enableBlend();
325-
RenderSystem.blendFunc(
326-
GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
327321

328322
guiGraphics.blit(RenderType::guiTextured, GuiSelectionScreen.CIRCLE, (left + entryWidth) - 23, (int) (top + (entryHeight / 2f) - 9), 0, 0, 14, 14, 14, 14, 0x7F000000);
329323
guiGraphics.blit(RenderType::guiTextured, GuiSelectionScreen.CIRCLE, (left + entryWidth) - 21, (int) (top + (entryHeight / 2f) - 7), 0, 0, 10, 10, 10, 10, 0xFF000000 | blockData.getColor());
330324

331-
RenderSystem.disableBlend();
332325
stack.popPose();
333326
}
334327

0 commit comments

Comments
 (0)