aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Mining.java7
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/GlaciteMineshaftWaypoints.kt61
2 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Mining.java b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Mining.java
index c3d9b88d..2228aa64 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Mining.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Mining.java
@@ -940,4 +940,11 @@ public class Mining {
@ConfigEditorBoolean
public boolean mithrilSounds = false;
+ @Expose
+ @ConfigOption(
+ name = "Mineshaft Exit Waypoint",
+ desc = "Show a waypoint towards the exit of a Glacite Mineshaft"
+ )
+ @ConfigEditorBoolean
+ public boolean mineshaftExitWaypoint = true;
}
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/GlaciteMineshaftWaypoints.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/GlaciteMineshaftWaypoints.kt
new file mode 100644
index 00000000..d8e39daa
--- /dev/null
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/GlaciteMineshaftWaypoints.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2024 NotEnoughUpdates contributors
+ *
+ * This file is part of NotEnoughUpdates.
+ *
+ * NotEnoughUpdates is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * NotEnoughUpdates is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package io.github.moulberry.notenoughupdates.miscfeatures
+
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates
+import io.github.moulberry.notenoughupdates.autosubscribe.NEUAutoSubscribe
+import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils
+import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.LocationChangeEvent
+import net.minecraft.client.Minecraft
+import net.minecraft.util.BlockPos
+import net.minecraftforge.client.event.RenderWorldLastEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+@NEUAutoSubscribe
+class GlaciteMineshaftWaypoints {
+
+ var entrance: BlockPos? = null
+ fun isEnabled() = NotEnoughUpdates.INSTANCE.config.mining.mineshaftExitWaypoint
+
+ @SubscribeEvent
+ fun onLocationChange(event: LocationChangeEvent) {
+ entrance = if (event.newLocation == "mineshaft") {
+ Minecraft.getMinecraft().thePlayer?.position
+ } else {
+ null
+ }
+ }
+
+ @SubscribeEvent
+ fun onRenderLast(event: RenderWorldLastEvent) {
+ if (!isEnabled()) return
+ val pos = entrance ?: return
+ RenderUtils.renderBoundingBox(
+ pos,
+ 0x7020CC00,
+ event.partialTicks,
+ true
+ )
+ RenderUtils.renderWayPoint(
+ "§aExit", pos.up(1),
+ event.partialTicks
+ )
+ }
+}