diff options
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 + ) + } +} |