76 lines
2.6 KiB
Java
76 lines
2.6 KiB
Java
package wtf.hak.survivalfabric.features;
|
|
|
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
|
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
|
|
import net.minecraft.client.network.ClientPlayerEntity;
|
|
import net.minecraft.client.option.KeyBinding;
|
|
import net.minecraft.client.util.InputUtil;
|
|
import org.lwjgl.glfw.GLFW;
|
|
|
|
import java.util.concurrent.Executors;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public class AngleViewer {
|
|
|
|
private static final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
|
|
public static boolean PREVENT_HEAD_MOVEMENT = false;
|
|
|
|
public static void register() {
|
|
for(Angle angle : Angle.values()) {
|
|
KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding(
|
|
"key.survivalfabric." + angle.name().toLowerCase(),
|
|
InputUtil.Type.KEYSYM,
|
|
GLFW.GLFW_DONT_CARE,
|
|
"category.survivalfabric.tpangles"
|
|
));
|
|
|
|
ClientTickEvents.END_CLIENT_TICK.register(mc -> {
|
|
while (keyBinding.wasPressed()) {
|
|
ClientPlayerEntity player = mc.player;
|
|
if(player == null) return;
|
|
player.setYaw(angle.yaw);
|
|
player.setPitch(angle.pitch);
|
|
|
|
PREVENT_HEAD_MOVEMENT = true;
|
|
|
|
scheduler.schedule(() -> {
|
|
if(player == null) return;
|
|
PREVENT_HEAD_MOVEMENT = false;
|
|
player.setPitch(-90);
|
|
PREVENT_HEAD_MOVEMENT = true;
|
|
scheduler.schedule(() -> PREVENT_HEAD_MOVEMENT = false, 1500, TimeUnit.MILLISECONDS);
|
|
}, 1500, TimeUnit.MILLISECONDS);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public enum Angle {
|
|
ANGLE0(-65.19f, -54.23f),
|
|
ANGLE1(-24.86f, -54.23f),
|
|
ANGLE2(-65.02f, -41.68f),
|
|
ANGLE3(-25.03f, -41.71f),
|
|
ANGLE4(24.81f, -54.23f),
|
|
ANGLE5(65.14f, -54.23f),
|
|
ANGLE6(24.98f, -41.68f),
|
|
ANGLE7(64.97f, -41.71f),
|
|
ANGLE8(114.81f, -54.23f),
|
|
ANGLE9(155.14f, -54.23f),
|
|
ANGLE10(114.98f, -41.68f),
|
|
ANGLE11(154.97f, -41.71f),
|
|
ANGLE12(204.81f, -54.23f),
|
|
ANGLE13(245.14f, -54.23f),
|
|
ANGLE14(204.98f, -41.68f),
|
|
ANGLE15(244.97f, -41.71f);
|
|
|
|
public final float yaw;
|
|
public final float pitch;
|
|
|
|
Angle(float yaw, float pitch) {
|
|
this.yaw = yaw;
|
|
this.pitch = pitch;
|
|
}
|
|
}
|
|
}
|