chore: moved group to net.moonleay

fix: fixed camera going meyhem when going 3rd person in NoClip
moonleay 2024-04-23 18:12:39 +02:00
parent 0cd271f139
commit 7383fa09e8
Signed by: moonleay
GPG key ID: 82667543CCD715FB
31 changed files with 125 additions and 107 deletions

@ -10,7 +10,7 @@ org.gradle.jvmargs=-Xmx2G
modId=gimble modId=gimble
kotlinx.serialization.version=1.6.2 kotlinx.serialization.version=1.6.2
fabric.kotlin.version=1.10.19+kotlin.1.9.23 fabric.kotlin.version=1.10.19+kotlin.1.9.23
mavenGroup=net.moonleay.mods mavenGroup=net.moonleay
kotlin.code.style=official kotlin.code.style=official
minecraft.version=1.19.2 minecraft.version=1.19.2
modName=Gimble modName=Gimble

@ -1,6 +1,6 @@
package net.moonleay.mods.gimble package net.moonleay.gimble
import net.moonleay.mods.gimble.build.BuildConstants import net.moonleay.gimble.build.BuildConstants
import net.fabricmc.api.ModInitializer import net.fabricmc.api.ModInitializer
import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.LogManager

@ -1,11 +1,10 @@
package net.moonleay.mods.gimble.client package net.moonleay.gimble.client
import net.moonleay.mods.gimble.build.BuildConstants import net.moonleay.gimble.build.BuildConstants
import net.fabricmc.api.ClientModInitializer import net.fabricmc.api.ClientModInitializer
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.keybindings.KeybindingManager
import net.moonleay.mods.gimble.client.keybindings.KeybindingManager import net.moonleay.gimble.client.keybindings.KeybindingRegistrar
import net.moonleay.mods.gimble.client.keybindings.KeybindingRegistrar
import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.LogManager
internal object ClientMain : ClientModInitializer { internal object ClientMain : ClientModInitializer {
@ -15,7 +14,7 @@ internal object ClientMain : ClientModInitializer {
override fun onInitializeClient() { override fun onInitializeClient() {
LOGGER.info("Initializing Gimble on the client side...") LOGGER.info("Initializing Gimble on the client side...")
KeybindingRegistrar.registerKeybindings() KeybindingRegistrar.registerKeybindings()
this.registerEvents() registerEvents()
LOGGER.info("Gimble has been initialized on the client side.") LOGGER.info("Gimble has been initialized on the client side.")
} }

@ -1,9 +1,9 @@
package net.moonleay.mods.gimble.client.editor package net.moonleay.gimble.client.editor
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.moonleay.mods.gimble.client.util.ChatUtil import net.moonleay.gimble.client.util.ChatUtil
import net.moonleay.mods.gimble.client.editor.modes.Mode import net.moonleay.gimble.client.editor.modes.Mode
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier import net.moonleay.gimble.client.editor.modes.ModeModifier
object ClientEditor { object ClientEditor {
var CURRENT_MODE = Mode.NORMAL var CURRENT_MODE = Mode.NORMAL
@ -25,17 +25,19 @@ object ClientEditor {
CURRENT_MODE_MODIFIER.add(mod) CURRENT_MODE_MODIFIER.add(mod)
} }
this.onModifiersUpdated() onModifiersUpdated()
} }
fun onModifiersUpdated() { fun onModifiersUpdated() {
CURRENT_MODE_MODIFIER.sort() CURRENT_MODE_MODIFIER.sort()
this.checkForIncompatibleModeModifiers() checkForIncompatibleModeModifiers()
} }
fun checkForIncompatibleModeModifiers() { fun checkForIncompatibleModeModifiers() {
if (TEMP_DISABLED_MODIFIERS.size > 0) { if (TEMP_DISABLED_MODIFIERS.size > 0) {
CURRENT_MODE_MODIFIER.addAll(TEMP_DISABLED_MODIFIERS) CURRENT_MODE_MODIFIER.addAll(
TEMP_DISABLED_MODIFIERS
)
TEMP_DISABLED_MODIFIERS.clear() TEMP_DISABLED_MODIFIERS.clear()
} }
@ -53,7 +55,7 @@ object ClientEditor {
if(TEMP_DISABLED_MODIFIERS.isNotEmpty()) { if(TEMP_DISABLED_MODIFIERS.isNotEmpty()) {
ChatUtil.addToChatHistory("The following modifiers are not supported by this editor mode and are therefore currently disabled: " + ChatUtil.addToChatHistory("The following modifiers are not supported by this editor mode and are therefore currently disabled: " +
this.getListAsString(TEMP_DISABLED_MODIFIERS), MinecraftClient.getInstance()) getListAsString(TEMP_DISABLED_MODIFIERS), MinecraftClient.getInstance())
} }
} }

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.client.editor.modes package net.moonleay.gimble.client.editor.modes
enum class Mode(val displayName: String, val color: Int, val incompatibleModifiers: List<ModeModifier>){ enum class Mode(val displayName: String, val color: Int, val incompatibleModifiers: List<ModeModifier>){
NORMAL("NORMAL", 0x90a959, listOf(ModeModifier.NO_UPDATES, ModeModifier.BULLDOZER, ModeModifier.FORCE_PLACE)), // Do nothing NORMAL("NORMAL", 0x90a959, listOf(ModeModifier.NO_UPDATES, ModeModifier.BULLDOZER, ModeModifier.FORCE_PLACE)), // Do nothing

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.client.editor.modes package net.moonleay.gimble.client.editor.modes
enum class ModeModifier(val displayName: String) { enum class ModeModifier(val displayName: String) {
// NONE("None"), // No Modifiers - default behavior // NONE("None"), // No Modifiers - default behavior

@ -1,9 +1,8 @@
package net.moonleay.mods.gimble.client.keybindings package net.moonleay.gimble.client.keybindings
import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut
object KeybindingManager { object KeybindingManager {

@ -1,18 +1,18 @@
package net.moonleay.mods.gimble.client.keybindings package net.moonleay.gimble.client.keybindings
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.minecraft.client.util.InputUtil import net.minecraft.client.util.InputUtil
import net.moonleay.mods.gimble.build.BuildConstants import net.moonleay.gimble.build.BuildConstants
import net.moonleay.mods.gimble.client.keybindings.impl.editormode.EnableInsertModeShortcut import net.moonleay.gimble.client.keybindings.impl.editormode.EnableInsertModeShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormode.EnableReplaceModeShortcut import net.moonleay.gimble.client.keybindings.impl.editormode.EnableReplaceModeShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormode.EnableVisualModeShortcut import net.moonleay.gimble.client.keybindings.impl.editormode.EnableVisualModeShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier.ToggleBulldozerModifierShortcut import net.moonleay.gimble.client.keybindings.impl.editormodemodifier.ToggleBulldozerModifierShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier.ToggleForcePlaceModifierShortcut import net.moonleay.gimble.client.keybindings.impl.editormodemodifier.ToggleForcePlaceModifierShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier.ToggleNoClipModifierShortcut import net.moonleay.gimble.client.keybindings.impl.editormodemodifier.ToggleNoClipModifierShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier.ToggleNoUpdatesModifierShortcut import net.moonleay.gimble.client.keybindings.impl.editormodemodifier.ToggleNoUpdatesModifierShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.gamemode.CreativeModeShortcut import net.moonleay.gimble.client.keybindings.impl.gamemode.CreativeModeShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.gamemode.SpectatorModeShortcut import net.moonleay.gimble.client.keybindings.impl.gamemode.SpectatorModeShortcut
import net.moonleay.mods.gimble.client.keybindings.impl.gamemode.SurvivalModeShortcut import net.moonleay.gimble.client.keybindings.impl.gamemode.SurvivalModeShortcut
import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.LogManager
import org.lwjgl.glfw.GLFW import org.lwjgl.glfw.GLFW

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.client.keybindings.impl package net.moonleay.gimble.client.keybindings.impl
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormode package net.moonleay.gimble.client.keybindings.impl.editormode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.Mode import net.moonleay.gimble.client.editor.modes.Mode
class EnableInsertModeShortcut(key: KeyBinding): GimbleShortcut(key) { class EnableInsertModeShortcut(key: KeyBinding): GimbleShortcut(key) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormode package net.moonleay.gimble.client.keybindings.impl.editormode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.Mode import net.moonleay.gimble.client.editor.modes.Mode
class EnableReplaceModeShortcut(key: KeyBinding): GimbleShortcut(key) { class EnableReplaceModeShortcut(key: KeyBinding): GimbleShortcut(key) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormode package net.moonleay.gimble.client.keybindings.impl.editormode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.Mode import net.moonleay.gimble.client.editor.modes.Mode
class EnableVisualModeShortcut(key: KeyBinding): GimbleShortcut(key) { class EnableVisualModeShortcut(key: KeyBinding): GimbleShortcut(key) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier package net.moonleay.gimble.client.keybindings.impl.editormodemodifier
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier import net.moonleay.gimble.client.editor.modes.ModeModifier
class ToggleBulldozerModifierShortcut(key: KeyBinding): GimbleShortcut(key) { class ToggleBulldozerModifierShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier package net.moonleay.gimble.client.keybindings.impl.editormodemodifier
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier import net.moonleay.gimble.client.editor.modes.ModeModifier
class ToggleForcePlaceModifierShortcut(key: KeyBinding): GimbleShortcut(key) { class ToggleForcePlaceModifierShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier package net.moonleay.gimble.client.keybindings.impl.editormodemodifier
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier import net.moonleay.gimble.client.editor.modes.ModeModifier
class ToggleNoClipModifierShortcut(key: KeyBinding): GimbleShortcut(key) { class ToggleNoClipModifierShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,10 +1,10 @@
package net.moonleay.mods.gimble.client.keybindings.impl.editormodemodifier package net.moonleay.gimble.client.keybindings.impl.editormodemodifier
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.editor.ClientEditor import net.moonleay.gimble.client.editor.ClientEditor
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier import net.moonleay.gimble.client.editor.modes.ModeModifier
class ToggleNoUpdatesModifierShortcut(key: KeyBinding): GimbleShortcut(key) { class ToggleNoUpdatesModifierShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,9 +1,9 @@
package net.moonleay.mods.gimble.client.keybindings.impl.gamemode package net.moonleay.gimble.client.keybindings.impl.gamemode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.util.ChatUtil import net.moonleay.gimble.client.util.ChatUtil
class CreativeModeShortcut(key: KeyBinding): GimbleShortcut(key) { class CreativeModeShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,9 +1,9 @@
package net.moonleay.mods.gimble.client.keybindings.impl.gamemode package net.moonleay.gimble.client.keybindings.impl.gamemode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.util.ChatUtil import net.moonleay.gimble.client.util.ChatUtil
class SpectatorModeShortcut(key: KeyBinding): GimbleShortcut(key) { class SpectatorModeShortcut(key: KeyBinding): GimbleShortcut(key) {
override fun onPressed(client: MinecraftClient) { override fun onPressed(client: MinecraftClient) {

@ -1,9 +1,9 @@
package net.moonleay.mods.gimble.client.keybindings.impl.gamemode package net.moonleay.gimble.client.keybindings.impl.gamemode
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.client.option.KeyBinding import net.minecraft.client.option.KeyBinding
import net.moonleay.mods.gimble.client.keybindings.impl.GimbleShortcut import net.moonleay.gimble.client.keybindings.impl.GimbleShortcut
import net.moonleay.mods.gimble.client.util.ChatUtil import net.moonleay.gimble.client.util.ChatUtil
class SurvivalModeShortcut(key: KeyBinding) : GimbleShortcut(key) { class SurvivalModeShortcut(key: KeyBinding) : GimbleShortcut(key) {

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.client.util package net.moonleay.gimble.client.util
import net.minecraft.client.MinecraftClient import net.minecraft.client.MinecraftClient
import net.minecraft.text.Text import net.minecraft.text.Text

@ -1,6 +1,6 @@
package net.moonleay.mods.gimble.datagen package net.moonleay.gimble.datagen
import net.moonleay.mods.gimble.build.BuildConstants import net.moonleay.gimble.build.BuildConstants
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator
import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.LogManager

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.datagen package net.moonleay.gimble.datagen
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator
import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider

@ -1,13 +1,13 @@
package net.moonleay.mods.gimble.mixin; package net.moonleay.gimble.mixin;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.moonleay.mods.gimble.client.editor.ClientEditor; import net.moonleay.gimble.client.editor.ClientEditor;
import net.moonleay.mods.gimble.client.editor.modes.Mode; import net.moonleay.gimble.client.editor.modes.Mode;
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier; import net.moonleay.gimble.client.editor.modes.ModeModifier;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.mixin; package net.moonleay.gimble.mixin;
import net.minecraft.client.Keyboard; import net.minecraft.client.Keyboard;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;

@ -0,0 +1,21 @@
package net.moonleay.gimble.mixin;
import net.minecraft.client.render.Camera;
import net.moonleay.gimble.client.editor.ClientEditor;
import net.moonleay.gimble.client.editor.modes.ModeModifier;
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.CallbackInfoReturnable;
@Mixin(Camera.class)
public class NoClipCameraFix {
@Inject(method = "clipToSpace", at = @At("HEAD"), cancellable = true)
private void fixCameraInNoClip(double desiredCameraDistance, CallbackInfoReturnable<Double> cir) {
if (ClientEditor.INSTANCE.containsModifier(ModeModifier.NO_CLIP)){
cir.setReturnValue(desiredCameraDistance);
cir.cancel();
}
}
}

@ -1,15 +1,9 @@
package net.moonleay.mods.gimble.mixin; package net.moonleay.gimble.mixin;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.NbtCompound; import net.moonleay.gimble.client.editor.ClientEditor;
import net.minecraft.network.Packet; import net.moonleay.gimble.client.editor.modes.ModeModifier;
import net.minecraft.world.World;
import net.minecraft.world.entity.EntityLike;
import net.moonleay.mods.gimble.client.editor.ClientEditor;
import net.moonleay.mods.gimble.client.editor.modes.ModeModifier;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@ -23,11 +17,14 @@ public class NoClipMixin {
@Inject(method = "tick", at = @At(value = "HEAD")) @Inject(method = "tick", at = @At(value = "HEAD"))
private void enoClip(CallbackInfo ci) { private void enoClip(CallbackInfo ci) {
if (!ClientEditor.INSTANCE.containsModifier(ModeModifier.NO_CLIP)) // TODO: Add player check, add multiplayer compat
if(!((Entity)(Object)this instanceof PlayerEntity)) // Only check on player
return; return;
// TODO: Add player check, add multiplayer compat if (!ClientEditor.INSTANCE.containsModifier(ModeModifier.NO_CLIP))
if(!((Entity)(Object)this instanceof PlayerEntity)) return;
PlayerEntity thePlayer = (PlayerEntity)(Object)this;
if (!thePlayer.getAbilities().flying)
return; return;
this.noClip = true; this.noClip = true;

@ -1,9 +1,9 @@
package net.moonleay.mods.gimble.mixin; package net.moonleay.gimble.mixin;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.GameOptions; import net.minecraft.client.option.GameOptions;
import net.moonleay.mods.gimble.client.editor.ClientEditor; import net.moonleay.gimble.client.editor.modes.Mode;
import net.moonleay.mods.gimble.client.editor.modes.Mode; import net.moonleay.gimble.client.editor.ClientEditor;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;

@ -1,4 +1,4 @@
package net.moonleay.mods.gimble.mixin; package net.moonleay.gimble.mixin;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
@ -11,8 +11,8 @@ import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult; import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.moonleay.mods.gimble.client.editor.ClientEditor; import net.moonleay.gimble.client.editor.ClientEditor;
import net.moonleay.mods.gimble.client.editor.modes.Mode; import net.moonleay.gimble.client.editor.modes.Mode;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -44,9 +44,8 @@ public abstract class ReplaceModeMixin {
assert this.interactionManager != null; assert this.interactionManager != null;
if (!this.interactionManager.getCurrentGameMode().isCreative()) if (!this.interactionManager.getCurrentGameMode().isCreative())
return; return;
if (!(this.crosshairTarget instanceof BlockHitResult)) if (!(this.crosshairTarget instanceof BlockHitResult blockHitResult))
return; return;
BlockHitResult blockHitResult = (BlockHitResult)this.crosshairTarget;
if (blockHitResult == null) if (blockHitResult == null)
return; return;

@ -14,19 +14,19 @@
"client": [ "client": [
{ {
"adapter": "kotlin", "adapter": "kotlin",
"value": "net.moonleay.mods.gimble.client.ClientMain" "value": "net.moonleay.gimble.client.ClientMain"
} }
], ],
"main": [ "main": [
{ {
"adapter": "kotlin", "adapter": "kotlin",
"value": "net.moonleay.mods.gimble.Main" "value": "net.moonleay.gimble.Main"
} }
], ],
"fabric-datagen": [ "fabric-datagen": [
{ {
"adapter": "kotlin", "adapter": "kotlin",
"value": "net.moonleay.mods.gimble.datagen.DataGenerator" "value": "net.moonleay.gimble.datagen.DataGenerator"
} }
] ]
}, },

@ -1,13 +1,14 @@
{ {
"required": true, "required": true,
"minVersion": "0.8", "minVersion": "0.8",
"package": "net.moonleay.mods.gimble.mixin", "package": "net.moonleay.gimble.mixin",
"compatibilityLevel": "JAVA_17", "compatibilityLevel": "JAVA_17",
"mixins": [ "mixins": [
"NoClipMixin" "NoClipMixin"
], ],
"client": [ "client": [
"HudMixin", "HudMixin",
"NoClipCameraFix",
"NormalModeMixin", "NormalModeMixin",
"ReplaceModeMixin" "ReplaceModeMixin"
], ],

@ -1,7 +1,7 @@
package net.moonleay.mods.gimble.build package net.moonleay.gimble.build
internal object BuildConstants { internal object BuildConstants {
const val modId = "${modId}" const val modId = "${modId}"
const val modName = "${modName}" const val modName = "${modName}"
const val modVersion = "${modVersion}" const val modVersion = "${modVersion}"
} }