Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false
}
architectury {
minecraft = rootProject.minecraft_version
Expand Down Expand Up @@ -39,6 +39,7 @@ allprojects {
name "Modrinth"
url "https://api.modrinth.com/maven"
}
maven { url "https://maven.neoforged.net/releases/" }
}

tasks.withType(JavaCompile).configureEach {
Expand Down
4 changes: 2 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ dependencies {
mappings loom.officialMojangMappings()

implementation "org.xerial:sqlite-jdbc:3.47.0.0"
modCompileOnly "maven.modrinth:voxelmap-updated:1.20.4-1.12.17"
// modCompileOnly "maven.modrinth:voxelmap-updated:1.20.4-1.12.17"
}

architectury {
injectInjectables = false
common()
common(rootProject.enabled_platforms.split(","))
}

processResources {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import gjum.minecraft.civ.snitchmod.common.model.SnitchFieldPreview;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.renderer.CoreShaders;
import net.minecraft.network.chat.Component;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
Expand Down Expand Up @@ -52,7 +52,6 @@ public static void renderOverlays(Matrix4f matrixArg) {
modelViewStack.pushMatrix();
modelViewStack.mul(matrixArg);
modelViewStack.translate((float) -camPos.x, (float) -camPos.y, (float) -camPos.z);
RenderSystem.applyModelViewMatrix();

if (getMod().rangeOverlayVisible) {
int fieldDist = 260;
Expand Down Expand Up @@ -82,7 +81,6 @@ public static void renderOverlays(Matrix4f matrixArg) {
RenderSystem.clearColor(1, 1, 1, 1);

modelViewStack.popMatrix();
RenderSystem.applyModelViewMatrix();
}

private static void renderSnitchFieldPreview(SnitchFieldPreview preview) {
Expand Down Expand Up @@ -119,7 +117,7 @@ private static void renderSnitch(Snitch snitch) {
// inflate/deflate so the box face isn't obscured by adjacent blocks
final boolean playerInRange = range.contains(mc.player.position());
AABB rangeBox = playerInRange ? range.inflate(-.01) : range.inflate(.01);
AABB outlineBox = playerInRange ? range.inflate(-.05) : range.inflate(.05);
AABB outlineBox = playerInRange ? range.inflate(-.01) : range.inflate(.01);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this not result in z fighting?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It didn't for me. It isn't really necessary though, it just always bothered me to have the box that much smaller than the lines.

if (playerInRange) {
snitch.maybeRefreshed = true;
}
Expand Down Expand Up @@ -419,7 +417,7 @@ private static void renderBoxOutline(AABB box, Color color, float a, float lineW
private static void renderFilledBox(AABB box, Color color, float a) {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.TRIANGLE_STRIP, DefaultVertexFormat.POSITION_COLOR);
RenderSystem.setShader(GameRenderer::getPositionColorShader);
RenderSystem.setShader(CoreShaders.POSITION_COLOR);

float r = color.r;
float g = color.g;
Expand Down Expand Up @@ -470,7 +468,7 @@ private static void renderBoxGuides(AABB box, Color color, float a, float lineWi

Tesselator tesselator = Tesselator.getInstance();
BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.TRIANGLE_STRIP, DefaultVertexFormat.POSITION_COLOR);
RenderSystem.setShader(GameRenderer::getPositionColorShader);
RenderSystem.setShader(CoreShaders.POSITION_COLOR);

GL11.glEnable(GL11.GL_LINE_SMOOTH);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package gjum.minecraft.civ.snitchmod.common;

import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.vertex.PoseStack;
import gjum.minecraft.civ.snitchmod.common.model.*;
import gjum.minecraft.civ.snitchmod.common.model.Direction;
import gjum.minecraft.civ.snitchmod.common.model.JalistEntry;
import gjum.minecraft.civ.snitchmod.common.model.Snitch;
import gjum.minecraft.civ.snitchmod.common.model.SnitchAlert;
import gjum.minecraft.civ.snitchmod.common.model.SnitchCreatedChatParser;
import gjum.minecraft.civ.snitchmod.common.model.SnitchFieldPreview;
import gjum.minecraft.civ.snitchmod.common.model.SnitchRename;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ServerData;
Expand All @@ -13,7 +18,11 @@
import org.joml.Matrix4f;
import org.lwjgl.glfw.GLFW;

import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Stream;

public abstract class SnitchMod {
Expand Down
2 changes: 1 addition & 1 deletion common/src/main/resources/mixin.snitchmod.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"required": true,
"minVersion": "0.8",
"package": "gjum.minecraft.civ.snitchmod.common.mixins",
"compatibilityLevel": "JAVA_8",
"compatibilityLevel": "JAVA_21",
"mixins": [],
"client": [
"MixinClientPacketListener",
Expand Down
12 changes: 9 additions & 3 deletions fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,21 @@ dependencies {
implementation "org.xerial:sqlite-jdbc:3.47.0.0"
shadowCommon "org.xerial:sqlite-jdbc:3.47.0.0"

modCompileOnly "curse.maven:journeymap-32274:5457846" // version 1.18.2-5.8.4-fabric
modCompileOnly "maven.modrinth:voxelmap-updated:1.20.4-1.12.17"
// modCompileOnly "curse.maven:journeymap-32274:5457846" // version 1.18.2-5.8.4-fabric
// modCompileOnly "maven.modrinth:voxelmap-updated:1.20.4-1.12.17"
}

processResources {
inputs.property "version", project.version

filesMatching("fabric.mod.json") {
expand "version": project.version
expand (
[
"version": project.version,
"minecraft_version": project.minecraft_version,
"fabric_loader_version": project.fabric_loader_version
]
)
}
}

Expand Down
4 changes: 2 additions & 2 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
]
},
"depends": {
"fabricloader": ">=0.7.4",
"fabricloader": ">=${fabric_loader_version}",
"fabric": "*",
"minecraft": "1.21.x"
"minecraft": "${minecraft_version}"
},
"mixins": [
"mixin.snitchmod.json"
Expand Down
12 changes: 9 additions & 3 deletions forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ architectury {

loom {
forge {
mixinConfig "mixin.snitchmod.json"
mixinConfig "mixin.snitchmod.json", "mixin.snitchmod.forge.json"
}
}

Expand All @@ -33,14 +33,20 @@ dependencies {
implementation "org.xerial:sqlite-jdbc:3.47.0.0"
shadowCommon "org.xerial:sqlite-jdbc:3.47.0.0"

modCompileOnly "curse.maven:journeymap-32274:5457832" // version 1.20.4-5.10.0-forge
//modCompileOnly "curse.maven:journeymap-32274:5457832" // version 1.20.4-5.10.0-forge
}

processResources {
inputs.property "version", project.version

filesMatching("META-INF/mods.toml") {
expand "version": project.version
expand (
[
"version": project.version,
"minecraft_version": project.minecraft_version,
"forge_version": project.forge_version
]
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import gjum.minecraft.civ.snitchmod.common.SnitchMod;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.client.event.RenderLevelStageEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
Expand All @@ -11,8 +10,8 @@

@Mod("snitchmod")
public class ForgeSnitchMod extends SnitchMod {
public ForgeSnitchMod() {
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::registerKeyMappings);
public ForgeSnitchMod(FMLJavaModLoadingContext fmlJavaModLoadingContext) {
fmlJavaModLoadingContext.getModEventBus().addListener(this::registerKeyMappings);
MinecraftForge.EVENT_BUS.register(this);
}

Expand All @@ -24,17 +23,6 @@ public void registerKeyMappings(RegisterKeyMappingsEvent event) {
event.register(toggleSnitchGoneStatusKey);
}

@SubscribeEvent
public void onRenderLevelLast(RenderLevelStageEvent event) {
if (event.getStage() == RenderLevelStageEvent.Stage.AFTER_PARTICLES) { // Forge broke the PoseStack in AFTER_TRANSLUCENT_BLOCKS (???)
try {
handleRenderBlockOverlay(event.getPoseStack()); // Ignore, if Forge removes this it can be replaced with a mixin probably
} catch (Exception e) {
e.printStackTrace();
}
}
}

@SubscribeEvent
public void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase == TickEvent.Phase.START) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package gjum.minecraft.civ.snitchmod.forge.mixins;

import com.mojang.blaze3d.vertex.PoseStack;
import gjum.minecraft.civ.snitchmod.forge.ForgeSnitchMod;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.RenderType;
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(LevelRenderer.class)
public abstract class LevelRenderMixin { // REMINDER: Forge sucks
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would it make sense to use this mixin with all mod loaders? to reduce disparities which may lead to different behavior on different loaders

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could but the mixin is currently just replicating the behaviour provided by the other loaders because Forge removed the event without a replacement.

@Inject(method = "renderSectionLayer", at = @At("RETURN"))
private void onRenderLevelLast(RenderType arg, double d, double e, double f, Matrix4f matrix4f, Matrix4f matrix4f2, CallbackInfo ci) {
if (arg == RenderType.translucent()) {
ForgeSnitchMod.getMod().handleRenderBlockOverlay(new PoseStack().last().pose());
}
}
}
8 changes: 4 additions & 4 deletions forge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
modLoader = "javafml"
loaderVersion = "[52,)"
loaderVersion = "[${forge_version},)"
issueTrackerURL = "https://github.com/Gjum/snitchmod/issues"
license = "GPL-3.0-only"

Expand All @@ -11,18 +11,18 @@ authors = "Gjum"
description = '''
Snitch Mod
'''
#logoFile = ""
logoFile = "assets/snitchmod/icon.png"

[[dependencies.snitchmod]]
modId = "forge"
mandatory = true
versionRange = "[52,)"
versionRange = "[${forge_version},)"
ordering = "NONE"
side = "CLIENT"

[[dependencies.snitchmod]]
modId = "minecraft"
mandatory = true
versionRange = "[1.21.1,)"
versionRange = "[${minecraft_version}]"
ordering = "NONE"
side = "CLIENT"
14 changes: 14 additions & 0 deletions forge/src/main/resources/mixin.snitchmod.forge.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"required": true,
"minVersion": "0.8",
"package": "gjum.minecraft.civ.snitchmod.forge.mixins",
"compatibilityLevel": "JAVA_21",
"mixins": [],
"client": [
"LevelRenderMixin"
],
"server": [],
"injectors": {
"defaultRequire": 1
}
}
2 changes: 1 addition & 1 deletion forge/src/main/resources/pack.mcmeta
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"pack": {
"description": "Snitch Mod",
"pack_format": 34
"pack_format": 42
}
}
11 changes: 7 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ archives_base_name=snitchmod

mod_version=1.4.5-mc1.21.1

minecraft_version=1.21.1
minecraft_version=1.21.3
enabled_platforms=fabric,forge,neoforge

# https://fabricmc.net/versions.html
fabric_loader_version=0.16.2
fabric_api_version=0.102.1+1.21.1
fabric_loader_version=0.16.9
fabric_api_version=0.112.1+1.21.3

forge_version=52.0.4
forge_version=53.0.25

neoforge_version=21.3.58
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading
Loading