Skip to content
Open
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
15 changes: 7 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'net.fabricmc.fabric-loom-remap' version "${loom_version}"
id 'net.fabricmc.fabric-loom' version "${loom_version}"
id 'maven-publish'
}

Expand All @@ -26,12 +26,11 @@ loom {
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
implementation "net.fabricmc:fabric-loader:${project.loader_version}"

// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "maven.modrinth:midnightlib:${project.midnightlib_version}"
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
implementation "maven.modrinth:midnightlib:${project.midnightlib_version}"
include "maven.modrinth:midnightlib:${project.midnightlib_version}"
}

Expand All @@ -46,7 +45,7 @@ processResources {
tasks.withType(JavaCompile).configureEach {
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
// The new Minecraft 1.20.5 upwards uses Java 21
it.options.release = 21
it.options.release = 25
}

java {
Expand All @@ -55,8 +54,8 @@ java {
// If you remove this line, sources will not be generated.
withSourcesJar()

sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
}

jar {
Expand Down
12 changes: 6 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ org.gradle.configuration-cache=false

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.21.11
loader_version=0.18.2
loom_version=1.14-SNAPSHOT
minecraft_version = 26.1.2
loader_version = 0.19.2
loom_version = 1.16-SNAPSHOT

# Mod Properties
mod_version = 1.8.2-1.21.11
mod_version = 1.8.2-26.1
maven_group = one.pouekdev
archives_base_name = coordinatelist

# Dependencies
fabric_version=0.139.4+1.21.11
midnightlib_version=1.9.2+1.21.11-fabric
fabric_version = 0.146.1+26.1.2
midnightlib_version = 1.9.2+26.1-fabric
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/one/pouekdev/coordinatelist/CListClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.client.keymapping.v1.KeyMappingHelper;
import net.minecraft.client.KeyMapping;
import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.client.multiplayer.ClientLevel;
Expand All @@ -27,19 +27,19 @@ public class CListClient implements ClientModInitializer{

@Override
public void onInitializeClient(){
openWaypointsKeybind = KeyBindingHelper.registerKeyBinding(new KeyMapping(
openWaypointsKeybind = KeyMappingHelper.registerKeyMapping(new KeyMapping(
"keybinds.waypoints.menu",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_M,
MOD_CATEGORY
));
addAWaypoint = KeyBindingHelper.registerKeyBinding(new KeyMapping(
addAWaypoint = KeyMappingHelper.registerKeyMapping(new KeyMapping(
"keybinds.waypoint.add",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_B,
MOD_CATEGORY
));
toggleVisibility = KeyBindingHelper.registerKeyBinding(new KeyMapping(
toggleVisibility = KeyMappingHelper.registerKeyMapping(new KeyMapping(
"keybinds.waypoints.toggle",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_J,
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/one/pouekdev/coordinatelist/CListCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.IntegerArgumentType;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommands;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import net.minecraft.commands.CommandBuildContext;
Expand All @@ -11,10 +11,10 @@
public class CListCommand implements ClientCommandRegistrationCallback{
@Override
public void register(CommandDispatcher<FabricClientCommandSource> dispatcher, @NonNull CommandBuildContext buildContext){
dispatcher.register(ClientCommandManager.literal("clist")
.then(ClientCommandManager.argument("x", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
.then(ClientCommandManager.argument("y", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
.then(ClientCommandManager.argument("z", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
dispatcher.register(ClientCommands.literal("clist")
.then(ClientCommands.argument("x", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
.then(ClientCommands.argument("y", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
.then(ClientCommands.argument("z", IntegerArgumentType.integer(Integer.MIN_VALUE, Integer.MAX_VALUE))
.executes(ctx -> {
int x = IntegerArgumentType.getInteger(ctx, "x");
int y = IntegerArgumentType.getInteger(ctx, "y");
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/one/pouekdev/coordinatelist/CListRenderLayers.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
package one.pouekdev.coordinatelist;

import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.platform.DepthTestFunction;
import com.mojang.blaze3d.pipeline.ColorTargetState;
import com.mojang.blaze3d.pipeline.DepthStencilState;
import com.mojang.blaze3d.platform.CompareOp;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.client.renderer.rendertype.LayeringTransform;
import net.minecraft.client.renderer.rendertype.RenderSetup;
import net.minecraft.client.renderer.rendertype.RenderType;
import net.minecraft.util.Util;
import net.minecraft.resources.Identifier;

import java.util.Optional;
import java.util.function.Function;

public class CListRenderLayers{
private static final RenderPipeline POSITION_TEX_COLOR_PIPELINE = RenderPipelines.register(
RenderPipeline.builder(RenderPipelines.GUI_TEXTURED_SNIPPET)
.withLocation("pipeline/position_tex_color")
.withCull(false)
.withoutBlend()
.withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST)
.withDepthWrite(true)
.withColorTargetState(new ColorTargetState(Optional.empty(), ColorTargetState.WRITE_ALL))
.withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false))
.build()
);
public static final Function<Identifier, RenderType> POSITION_TEX_COLOR = Util.memoize(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.navigation.ScreenRectangle;
import net.minecraft.client.gui.render.state.GuiElementRenderState;
import net.minecraft.client.renderer.state.gui.GuiElementRenderState;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.gui.render.TextureSetup;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import net.minecraft.client.gui.components.AbstractSliderButton;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.gui.layouts.FrameLayout;
import net.minecraft.client.gui.layouts.GridLayout;
import net.minecraft.client.input.MouseButtonEvent;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.input.CharacterEvent;
import net.minecraft.client.input.KeyEvent;
Expand Down Expand Up @@ -158,7 +158,7 @@ private Identifier getHandleSprite() {
}

@Override
public void renderWidget(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){
public void extractWidgetRenderState(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){
GlStateManager._enableBlend();
GlStateManager._enableDepthTest();
// consider the following https://github.com/0x3C50/Renderer
Expand All @@ -168,7 +168,7 @@ public void renderWidget(@NonNull GuiGraphics guiGraphics, int mouseX, int mouse
for(int i = 0; i < this.width; i++){
float hue = i / (float) this.width;
int colorH = Color.HSBtoRGB(hue, colorFloat[1], colorFloat[2]);
guiGraphics.vLine(this.getX() + i, this.getY() - 1, this.getY() + this.height, colorH);
guiGraphics.verticalLine(this.getX() + i, this.getY() - 1, this.getY() + this.height, colorH);
}
}
else{
Expand All @@ -181,10 +181,10 @@ public void renderWidget(@NonNull GuiGraphics guiGraphics, int mouseX, int mouse
colorStart = 0xFF000000;
colorEnd = Color.HSBtoRGB(colorFloat[0], colorFloat[1], 1.0f);
}
guiGraphics.guiRenderState.submitGuiElement(new CListReverseColoredQuadGuiElementRenderState(RenderPipelines.GUI, TextureSetup.noTexture(), new Matrix3x2f(guiGraphics.pose()), this.getX(), this.getY(), this.getX() + this.width, this.getY() + this.height, colorStart, colorEnd, guiGraphics.scissorStack.peek()));
guiGraphics.guiRenderState.addGuiElement(new CListReverseColoredQuadGuiElementRenderState(RenderPipelines.GUI, TextureSetup.noTexture(), new Matrix3x2f(guiGraphics.pose()), this.getX(), this.getY(), this.getX() + this.width, this.getY() + this.height, colorStart, colorEnd, guiGraphics.scissorStack.peek()));
}
guiGraphics.blitSprite(RenderPipelines.GUI_TEXTURED, this.getHandleSprite(), this.getX() + (int)(this.value * (double)(this.width - 8)), this.getY(), 8, this.getHeight(), ARGB.white(this.alpha));
this.renderScrollingStringOverContents(guiGraphics.textRendererForWidget(this, GuiGraphics.HoveredTextEffects.NONE), this.getMessage(), 2);
this.extractScrollingStringOverContents(guiGraphics.textRendererForWidget(this, GuiGraphicsExtractor.HoveredTextEffects.NONE), this.getMessage(), 2);
if(this.isHovered()){
guiGraphics.requestCursor(this.dragging ? CursorTypes.RESIZE_EW : CursorTypes.POINTING_HAND);
}
Expand All @@ -211,7 +211,7 @@ public SpriteButton(int x, int y, int width, int height, OnPress onPress){
}

@Override
public void renderContents(GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){
protected void extractContents(GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){
Identifier icon = Identifier.fromNamespaceAndPath("coordinatelist", "icon/change");
GlStateManager._enableBlend();
guiGraphics.blitSprite(RenderPipelines.GUI_TEXTURED, icon, getX(), getY(), width, height);
Expand All @@ -220,7 +220,7 @@ public void renderContents(GuiGraphics guiGraphics, int mouseX, int mouseY, floa
}

@Override
public void render(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){
public void extractRenderState(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){
int SQUARE_SIZE = 50;
int centerX = this.width / 2;
int centerY = this.height / 2;
Expand All @@ -235,9 +235,9 @@ public void render(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, flo
int top = centerY - SQUARE_SIZE / 2;
int right = centerX + SQUARE_SIZE / 2;
int bottom = centerY + SQUARE_SIZE / 2;
super.render(guiGraphics, mouseX, mouseY, delta);
super.extractRenderState(guiGraphics, mouseX, mouseY, delta);
guiGraphics.fill(left, top, right, bottom, CListClient.variables.colors.get(id).getHex());
changeColor.render(guiGraphics, mouseX, mouseY, delta);
changeColor.extractRenderState(guiGraphics, mouseX, mouseY, delta);
if(renderColorPicker){
this.h.visible = true;
this.s.visible = true;
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/one/pouekdev/coordinatelist/CListWaypointScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import com.mojang.blaze3d.opengl.GlStateManager;
import net.minecraft.client.gui.ActiveTextCollector;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.gui.components.AbstractSelectionList;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.layouts.FrameLayout;
import net.minecraft.client.gui.layouts.GridLayout;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.client.input.MouseButtonEvent;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.narration.NarrationElementOutput;
Expand Down Expand Up @@ -86,8 +86,8 @@ protected void init(){
}

@Override
public void render(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){
super.render(guiGraphics, mouseX, mouseY, delta);
public void extractRenderState(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){
super.extractRenderState(guiGraphics, mouseX, mouseY, delta);
if(selectedWaypointId >= 0){
copyCoordinatesButton.active = true;
editWaypointButton.active = true;
Expand Down Expand Up @@ -145,7 +145,7 @@ public InvisibleButton(int x, int y, int width, int height, OnPress onPress){
}

@Override
public void renderContents(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){}
protected void extractContents(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){}
}

private static class SpriteButton extends Button{
Expand All @@ -157,7 +157,7 @@ public SpriteButton(int x, int y, int width, int height, OnPress onPress, int co
}

@Override
public void renderContents(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta){
protected void extractContents(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float delta){
Identifier eyeIcon;
if(CListClient.variables.waypoints.get(id).render){
eyeIcon = Identifier.fromNamespaceAndPath("coordinatelist", "icon/visible");
Expand Down Expand Up @@ -200,19 +200,19 @@ public ScrollListEntry(int id){
}

@Override
public void renderContent(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, boolean hovered, float deltaTicks){
public void extractContent(@NonNull GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, boolean hovered, float deltaTicks){
int x = this.getX();
int y = this.getY();
visibility.setX(x + 5);
visibility.setY(y + 6);
select.setX(x);
select.setY(y);
visibility.render(guiGraphics, mouseX, mouseY, deltaTicks);
select.render(guiGraphics, mouseX, mouseY, deltaTicks);
visibility.extractRenderState(guiGraphics, mouseX, mouseY, deltaTicks);
select.extractRenderState(guiGraphics, mouseX, mouseY, deltaTicks);
int fontWidth = font.width("The nether");
ActiveTextCollector collector = guiGraphics.textRenderer(GuiGraphics.HoveredTextEffects.TOOLTIP_AND_CURSOR);
ActiveTextCollector collector = guiGraphics.textRenderer(GuiGraphicsExtractor.HoveredTextEffects.TOOLTIP_AND_CURSOR);
collector.acceptScrolling(dimension, x + 183 + fontWidth / 2, x + 183, x + 183 + fontWidth, y + 2, y + font.lineHeight + 12);
guiGraphics.drawString(CListVariables.minecraftClient.font, waypointName.getString(), x + 25, y + 8, CListClient.variables.colors.get(id).getHex());
guiGraphics.text(CListVariables.minecraftClient.font, waypointName.getString(), x + 25, y + 8, CListClient.variables.colors.get(id).getHex());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package one.pouekdev.coordinatelist.mixin;

import net.minecraft.client.gui.components.ChatComponent;
import net.minecraft.client.GuiMessage;
import net.minecraft.client.multiplayer.chat.GuiMessage;
import net.minecraft.network.chat.ClickEvent;
import net.minecraft.network.chat.Component;
import net.minecraft.ChatFormatting;
Expand Down Expand Up @@ -36,7 +36,7 @@ private void getCoordsFromChat(GuiMessage message, CallbackInfo ci){
int y = Math.round(Float.parseFloat(numbersList.get(1)));
int z = Math.round(Float.parseFloat(numbersList.get(2)));
Component clickableMessage = Component.translatable("chat.create.waypoint.message").withStyle(ChatFormatting.GREEN).withStyle(style -> style.withClickEvent(new ClickEvent.RunCommand("/clist " + x + " " + y + " " + z)));
CListVariables.delayedEvents.add(new CListDelayedEvent(0.1f, () -> CListVariables.minecraftClient.gui.getChat().addMessage(clickableMessage)));
CListVariables.delayedEvents.add(new CListDelayedEvent(0.1f, () -> CListVariables.minecraftClient.gui.getChat().addClientSystemMessage(clickableMessage)));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import net.minecraft.client.gui.Font;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.resources.Identifier;
import net.minecraft.util.Mth;
Expand Down Expand Up @@ -140,10 +139,10 @@ private void afterRender(CallbackInfo ci) {
float h = (float) (-textWidth / 2);
MultiBufferSource.BufferSource b = CListVariables.minecraftClient.renderBuffers().bufferSource();
if(CListConfig.waypointTextBackground){
font.drawInBatch(labelText, h, 0, 0xFFFFFFFF, false, positionMatrix, b, Font.DisplayMode.SEE_THROUGH, 0x90000000, LightTexture.FULL_BRIGHT);
font.drawInBatch(labelText, h, 0, 0xFFFFFFFF, false, positionMatrix, b, Font.DisplayMode.SEE_THROUGH, 0x90000000, 15728880);
}
else{
font.drawInBatch(labelText, h, 0, 0xFFFFFFFF, false, positionMatrix, b, Font.DisplayMode.SEE_THROUGH, 0x00000000, LightTexture.FULL_BRIGHT);
font.drawInBatch(labelText, h, 0, 0xFFFFFFFF, false, positionMatrix, b, Font.DisplayMode.SEE_THROUGH, 0x00000000, 15728880);
}
b.endBatch();
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/coordinatelist.accesswidener
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
accessWidener v2 named
accessWidener v2 official
accessible method net/minecraft/client/renderer/rendertype/RenderType create (Ljava/lang/String;Lnet/minecraft/client/renderer/rendertype/RenderSetup;)Lnet/minecraft/client/renderer/rendertype/RenderType;
4 changes: 2 additions & 2 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
"depends": {
"fabricloader": ">=0.18.2",
"fabric-api": "*",
"minecraft": "~1.21.11",
"java": ">=21",
"minecraft": "~26.1",
"java": ">=25",
"midnightlib": ">=1.9.2"
},
"suggests": {
Expand Down