Virtual stick cursor steered through the gun reticle, server-side virtual pilot using measured control responses, client cursor/camera handling with look-ahead, free look and scroll zoom. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YVREx3uo7nz1FEhzveWTUh
35 lines
1.5 KiB
Java
35 lines
1.5 KiB
Java
package dev.lumareth.improvedAerodynamics.client.aim;
|
|
|
|
import com.mojang.blaze3d.platform.InputConstants;
|
|
import dev.lumareth.improvedAerodynamics.ImprovedAerodynamics;
|
|
import net.minecraft.client.KeyMapping;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
|
|
import net.minecraftforge.client.settings.KeyConflictContext;
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
import net.minecraftforge.fml.common.Mod;
|
|
import org.lwjgl.glfw.GLFW;
|
|
|
|
/** Keys of cursor aim. The free look key is not shift: in a seat, shift gets the player out of it. */
|
|
public final class AimKeys {
|
|
public static final KeyMapping TOGGLE = new KeyMapping("key.improved_aerodynamics.toggle_cursor_aim",
|
|
KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_K, "key.categories.improved_aerodynamics");
|
|
public static final KeyMapping FREE_LOOK = new KeyMapping("key.improved_aerodynamics.cursor_aim_free_look",
|
|
KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_LEFT_ALT, "key.categories.improved_aerodynamics");
|
|
|
|
private AimKeys() {
|
|
}
|
|
|
|
@Mod.EventBusSubscriber(modid = ImprovedAerodynamics.MOD_ID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
|
|
public static final class Registration {
|
|
private Registration() {
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public static void onRegisterKeyMappings(RegisterKeyMappingsEvent event) {
|
|
event.register(TOGGLE);
|
|
event.register(FREE_LOOK);
|
|
}
|
|
}
|
|
}
|