Skip to content

Commit

Permalink
Merge branch '1.19.2' into latest
Browse files Browse the repository at this point in the history
  • Loading branch information
Boxadactle committed Jul 22, 2024
2 parents 539bf96 + d4e1d01 commit 7de769a
Show file tree
Hide file tree
Showing 55 changed files with 981 additions and 887 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,8 @@ jobs:
env:
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}

- name: Create GitHub release
run: ./gradlew githubRelease
env:
GITHUB_TOKEN: ${{ secrets.REPOSITORY_TOKEN }}
20 changes: 20 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
id 'architectury-plugin' version '3.4-SNAPSHOT'
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
id "me.shedaniel.unified-publishing" version "0.1.+"
id "com.github.breadmoirai.github-release" version "2.5.2"
}

architectury {
Expand Down Expand Up @@ -66,3 +67,22 @@ subprojects {
}
}
}

githubRelease {
owner = "Boxadactle"
repo = "coordinates-display"
tagName = "$project.version"
targetCommitish = "latest"
releaseName = "Coordinates Display $project.version"
generateReleaseNotes = true
body = "Coordinates Display $project.version for Minecraft $project.minecraft_version"
authorization = "Token ${System.getenv("GITHUB_TOKEN")}"

var files = [];
for (String platform : project.enabled_platforms.split(',')) {
files += fileTree("$platform/build/libs") {
include "*$project.version*"
}
}
releaseAssets = files
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package dev.boxadactle.coordinatesdisplay;

import com.mojang.blaze3d.platform.InputConstants;
import dev.boxadactle.boxlib.scheduling.Scheduling;
import dev.boxadactle.boxlib.util.ClientUtils;
import dev.boxadactle.boxlib.util.WorldUtils;
import dev.boxadactle.coordinatesdisplay.screen.CoordinatesScreen;
import dev.boxadactle.coordinatesdisplay.screen.config.PositionScreen;
import dev.boxadactle.coordinatesdisplay.position.Position;
import dev.boxadactle.coordinatesdisplay.registry.DisplayMode;
import net.minecraft.client.KeyMapping;
import org.lwjgl.glfw.GLFW;

public class Bindings {

public static final KeyMapping hudEnabled = new KeyMapping("key.coordinatesdisplay.hudenabled", GLFW.GLFW_KEY_H, "category.coordinatesdisplay");

public static final KeyMapping coordinatesGUIKeybind = new KeyMapping("key.coordinatesdisplay.coordinatesgui", GLFW.GLFW_KEY_C, "category.coordinatesdisplay");

public static final KeyMapping copyLocation = new KeyMapping("key.coordinatesdisplay.copypos", -1, "category.coordinatesdisplay");
public static final KeyMapping sendLocation = new KeyMapping("key.coordinatesdisplay.sendpos", -1, "category.coordinatesdisplay");
public static final KeyMapping copyPosTp = new KeyMapping("key.coordinatesdisplay.copypostp", -1, "category.coordinatesdisplay");

public static final KeyMapping changeHudPosition = new KeyMapping("key.coordinatesdisplay.changeHudPos", GLFW.GLFW_KEY_F9, "category.coordinatesdisplay");
public static final KeyMapping cycleDisplayMode = new KeyMapping("key.coordinatesdisplay.cycleDisplayMode", GLFW.GLFW_KEY_M, "category.coordinatesdisplay");

public static void toggleHud() {
CoordinatesDisplay.LOGGER.info("Toggling HUD visibility");
CoordinatesDisplay.CONFIG.get().enabled = !CoordinatesDisplay.CONFIG.get().enabled;
CoordinatesDisplay.CONFIG.save();
}

public static void coordinatesGui() {
Scheduling.nextTick(() -> ClientUtils.setScreen(new CoordinatesScreen(Position.of(WorldUtils.getPlayer()))));
}

public static void copyLocation(Position pos) {
ClientUtils.getKeyboard().setClipboard(ModUtil.parseText(CoordinatesDisplay.CONFIG.get().copyPosMessage, pos));
CoordinatesDisplay.LOGGER.player.info("Copied to clipboard!");
CoordinatesDisplay.LOGGER.info("Copied location to clipboard");
}

public static void sendLocation(Position pos) {
CoordinatesDisplay.LOGGER.player.publicChat(ModUtil.parseText(CoordinatesDisplay.CONFIG.get().posChatMessage, pos));
CoordinatesDisplay.LOGGER.info("Sent position as chat message");
}

public static void copyTeleportCommand(Position pos) {
ClientUtils.getKeyboard().setClipboard(CoordinatesDisplay.getConfig().teleportMode.toCommand(pos));

CoordinatesDisplay.LOGGER.player.info("Copied position as teleport command!");
}

public static void openHudPositionGui() {
Scheduling.nextTick(() -> ClientUtils.setScreen(new PositionScreen(null)));
}

public static void cycleDisplayMode() {
if (!InputConstants.isKeyDown(ClientUtils.getWindow(), 340)) CoordinatesDisplay.getConfig().renderMode = DisplayMode.nextMode(CoordinatesDisplay.getConfig().renderMode);
else CoordinatesDisplay.getConfig().renderMode = DisplayMode.previousMode(CoordinatesDisplay.getConfig().renderMode);

CoordinatesDisplay.CONFIG.save();
}

public static void checkBindings(Position pos) {
if (hudEnabled.consumeClick()) toggleHud();

if (coordinatesGUIKeybind.consumeClick()) coordinatesGui();

if (copyLocation.consumeClick()) copyLocation(pos);

if (sendLocation.consumeClick()) sendLocation(pos);

if (copyPosTp.consumeClick()) copyTeleportCommand(pos);

if (changeHudPosition.consumeClick()) openHudPositionGui();

if (cycleDisplayMode.consumeClick()) cycleDisplayMode();
}

}
Original file line number Diff line number Diff line change
@@ -1,34 +1,19 @@
package dev.boxadactle.coordinatesdisplay;

import com.mojang.blaze3d.platform.InputConstants;
import dev.boxadactle.boxlib.command.BCommandManager;
import dev.boxadactle.boxlib.config.BConfigClass;
import dev.boxadactle.boxlib.config.BConfigHandler;
import dev.boxadactle.boxlib.keybind.KeybindHelper;
import dev.boxadactle.boxlib.scheduling.Scheduling;
import dev.boxadactle.boxlib.util.ClientUtils;
import dev.boxadactle.boxlib.util.ModLogger;
import dev.boxadactle.boxlib.util.WorldUtils;
import dev.boxadactle.coordinatesdisplay.command.CoordinatesCommand;
import dev.boxadactle.coordinatesdisplay.registry.DisplayMode;
import dev.boxadactle.coordinatesdisplay.config.screen.HudPositionScreen;
import dev.boxadactle.coordinatesdisplay.hud.Hud;
import dev.boxadactle.coordinatesdisplay.config.ModConfig;
import dev.boxadactle.coordinatesdisplay.position.Position;
import net.minecraft.client.KeyMapping;
import net.minecraft.core.Holder;
import net.minecraft.world.level.biome.Biome;
import org.lwjgl.glfw.GLFW;

import java.awt.*;

public class CoordinatesDisplay {

public static final String MOD_NAME = "CoordinatesDisplay";

public static final String MOD_ID = "coordinatesdisplay";

public static final String VERSION = "5.1.0";
public static final String VERSION = "6.1.0";

public static final String VERSION_STRING = MOD_NAME + " v" + VERSION;

Expand All @@ -51,104 +36,22 @@ public class CoordinatesDisplay {
public static Hud HUD;

static {
LOGGER.info("Registering client commands");
LOGGER.info("Initializing " + MOD_NAME + " v" + VERSION);

// register commands
BCommandManager.register(CoordinatesCommand.create());
}

public static void init() {
LOGGER.info("Initializing " + MOD_NAME + " v" + VERSION);

LOGGER.info("Loading config file");
// register config
CONFIG = BConfigHandler.registerConfig(ModConfig.class);

LOGGER.info("Initializing hud");
// initialize HUD
HUD = new Hud();
}

public static ModConfig getConfig() {
return CONFIG.get();
}

public static class WorldColors {

@SuppressWarnings("deprecation")
public static int getBiomeColor(Holder<Biome> biome) {
return switch (Biome.getBiomeCategory(biome)) {
case THEEND -> 0xC5BE8B;
case OCEAN, RIVER, SWAMP -> biome.value().getWaterColor();
case NETHER -> new Color(biome.value().getFogColor()).brighter().brighter().getRGB();
case ICY -> 0x84ecf0;
case BEACH -> 0xfade55;
default -> biome.value().getFoliageColor();
};
}

public static int getDimensionColor(String name, int defaultColor) {
return switch (name.toLowerCase()) {
case "overworld" -> 0x00ff00;
case "nether" -> 0xff0000;
case "end" -> 0xC5BE8B;
default -> {
if (name.startsWith("The ")) {
yield getDimensionColor(name.substring(4), defaultColor);
} else {
yield defaultColor;
}
}
};
}

}

public static class Bindings {
public static final KeyMapping hudEnabled = new KeyMapping("key.coordinatesdisplay.hudenabled", GLFW.GLFW_KEY_H, "category.coordinatesdisplay");

public static final KeyMapping coordinatesGUIKeybind = new KeyMapping("key.coordinatesdisplay.coordinatesgui", GLFW.GLFW_KEY_C, "category.coordinatesdisplay");

public static final KeyMapping copyLocation = new KeyMapping("key.coordinatesdisplay.copypos", -1, "category.coordinatesdisplay");
public static final KeyMapping sendLocation = new KeyMapping("key.coordinatesdisplay.sendpos", -1, "category.coordinatesdisplay");
public static final KeyMapping copyPosTp = new KeyMapping("key.coordinatesdisplay.copypostp", -1, "category.coordinatesdisplay");

public static final KeyMapping changeHudPosition = new KeyMapping("key.coordinatesdisplay.changeHudPos", GLFW.GLFW_KEY_F9, "category.coordinatesdisplay");
public static final KeyMapping cycleDisplayMode = new KeyMapping("key.coordinatesdisplay.cycleDisplayMode", GLFW.GLFW_KEY_M, "category.coordinatesdisplay");

public static void toggleHud() {
CoordinatesDisplay.LOGGER.info("Toggling HUD visibility");
CONFIG.get().enabled = !CONFIG.get().enabled;
CONFIG.save();
}

public static void coordinatesGui() {
Scheduling.nextTick(() -> ClientUtils.setScreen(new CoordinatesScreen(Position.of(WorldUtils.getPlayer()))));
}

public static void copyLocation(Position pos) {
ClientUtils.getKeyboard().setClipboard(ModUtil.parseText(CONFIG.get().copyPosMessage, pos));
LOGGER.player.info("Copied to clipboard!");
LOGGER.info("Copied location to clipboard");
}

public static void sendLocation(Position pos) {
LOGGER.player.publicChat(ModUtil.parseText(CONFIG.get().posChatMessage, pos));
LOGGER.info("Sent position as chat message");
}

public static void copyTeleportCommand(Position pos) {
ClientUtils.getKeyboard().setClipboard(getConfig().teleportMode.toCommand(pos));

LOGGER.player.info("Copied position as teleport command!");
}

public static void openHudPositionGui() {
Scheduling.nextTick(() -> ClientUtils.setScreen(new HudPositionScreen(null)));
}

public static void cycleDisplayMode() {
if (!InputConstants.isKeyDown(ClientUtils.getWindow(), 340)) getConfig().renderMode = DisplayMode.nextMode(getConfig().renderMode);
else getConfig().renderMode = DisplayMode.previousMode(getConfig().renderMode);

CONFIG.save();
}
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package dev.boxadactle.coordinatesdisplay.config;
package dev.boxadactle.coordinatesdisplay;

import dev.boxadactle.boxlib.config.BConfig;
import dev.boxadactle.boxlib.config.BConfigFile;
import dev.boxadactle.boxlib.util.GuiUtils;
import dev.boxadactle.coordinatesdisplay.registry.*;
import net.minecraft.ChatFormatting;

import java.lang.reflect.Field;

@BConfigFile("coordinatesdisplay")
public class ModConfig implements BConfig {
Expand Down Expand Up @@ -47,4 +48,18 @@ public class ModConfig implements BConfig {
public boolean includeDecimalsWhenCopying = true;
public TeleportMode teleportMode = TeleportMode.EXECUTE;

public static void checkValidity(ModConfig config) throws NullPointerException {
Class<?> clazz = config.getClass();

for (Field field : clazz.getDeclaredFields()) {
try {
if (field.get(config) == null) {
throw new NullPointerException("Field " + field.getName() + " is null");
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,13 @@ public static Component makeDeathPositionComponent(Position pos) {
int y = (int)Math.round(player.getY());
int z = (int)Math.round(player.getZ());

Component position = new TranslatableComponent("message.coordinatesdisplay.deathlocation", x, y, z, pos.world.getDimension(false)).withStyle((style -> style
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TranslatableComponent("message.coordinatesdisplay.teleport")))
Component position = Component.translatable("message.coordinatesdisplay.deathlocation", x, y, z, pos.world.getDimension(false)).withStyle((style -> style
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.translatable("message.coordinatesdisplay.teleport")))
.withColor(TextColor.fromRgb(CoordinatesDisplay.CONFIG.get().deathPosColor))
.withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, String.format(command, x, y, z)))
));

return GuiUtils.colorize(new TranslatableComponent("message.coordinatesdisplay.deathpos", position), CoordinatesDisplay.CONFIG.get().definitionColor);
return GuiUtils.colorize(Component.translatable("message.coordinatesdisplay.deathpos", position), CoordinatesDisplay.CONFIG.get().definitionColor);
}

@ExpectPlatform
Expand Down Expand Up @@ -154,7 +154,7 @@ public static String getDirectionFromYaw(double degrees) {

public static Component getBiomeComponent(Holder<Biome> biome, boolean colored, int defaultColor) {
if (biome == null) {
return GuiUtils.colorize(new TranslatableComponent("hud.coordinatesdisplay.biome.unknown"), defaultColor);
return GuiUtils.colorize(Component.translatable("hud.coordinatesdisplay.biome.unknown"), defaultColor);
}

Registry<Biome> registry = WorldUtils.getWorld() != null ? WorldUtils.getWorld().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY) : BuiltinRegistries.BIOME;
Expand All @@ -168,9 +168,9 @@ public static Component getBiomeComponent(Holder<Biome> biome, boolean colored,
ResourceLocation key = resource.get().location();

return GuiUtils.colorize(
new TranslatableComponent("biome." + key.getNamespace() + "." + key.getPath()),
Component.translatable("biome." + key.getNamespace() + "." + key.getPath()),
colored ?
CoordinatesDisplay.WorldColors.getBiomeColor(biome):
WorldColors.getBiomeColor(resource.get(), biome):
defaultColor
);
}
Expand All @@ -184,25 +184,13 @@ public static String getNamespace(String id) {
return id.split(":")[0];
}

public static int calculatePointDistance(int x, int y, int x1, int y1) {
public static float calculatePointDistance(int x, int y, int x1, int y1) {
int deltaX = x1 - x;
int deltaY = y1 - y;

double distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);

return (int) Math.abs(distance);
}

public static float calculateMouseScale(int x, int y, int w, int h, int mouseX, int mouseY) {
int value1 = calculatePointDistance(x, y, x + w, y + h);
int value2 = calculatePointDistance(x, y, mouseX, mouseY);
float scaleFactor = (float) value2 / value1;

scaleFactor = Math.max(0.5f, Math.min(2.0f, scaleFactor));

scaleFactor = Math.round(scaleFactor * 100.0f) / 100.0f;

return scaleFactor;
return (float) distance;
}

public static <T> boolean or(T val, T ...compare) {
Expand Down
Loading

0 comments on commit 7de769a

Please sign in to comment.