Add: pitch meter

adjust back distance
This commit is contained in:
iceBear67 committed 2024-08-14 12:04:00 +08:00
1 parent 4dbc691d93
commit 933a92e76c
4 files changed
+18 -11

No files matched your search

@@ -60,6 +60,7 @@ public class ElytraSpeedMeterModule extends ServerModule {
if (b) {
var text = Text.literal("");
text.append(generateDurabilityMeter(f, player));
text.append(genPitchMeter(player.getPitch()));
player.sendMessage(text, true);
} else {
clean((ServerPlayerEntity) player);
@@ -72,6 +73,20 @@ public class ElytraSpeedMeterModule extends ServerModule {
}
}
private Text genPitchMeter(float pitch) {
MutableText text;
var display = (Math.ceil(Math.abs(pitch) * 100) / 100);
if (pitch < 0) { // 朝上
text = Text.literal(" 🡹 " + display + "°");
} else {
text = Text.literal(" 🡻 " + display + "°");
}
if (pitch > 75) {
text.withColor(Colors.LIGHT_RED);
}
return text;
}
private Text generateDurabilityMeter(long f, PlayerEntity player) {
var stack = player.getInventory().getArmorStack(PlayerInventory.ARMOR_SLOTS[2]);
if (stack.isDamageable() && stack.isDamaged()) {
@@ -79,7 +94,7 @@ public class ElytraSpeedMeterModule extends ServerModule {
var percent = (int) Math.ceil(((double) remaining / stack.getMaxDamage()) * 100);
return ELYTRA_DURABILITY[Math.max(percent - 1, 0)];
}
return Text.literal(" ELYTRA: INFINITY").withColor(Colors.BLUE);
return Text.literal("ELYTRA: INFINITY").withColor(Colors.BLUE);
}
private static int getDamageColor(int percent) {
@@ -39,7 +39,7 @@ public class BackModule extends ServerModule {
var wld = player.server.getWorld(pos.dimension());
var _pos = pos.pos();
if (wld == null) return 0;
var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 20, true);
var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 100, true);
if (nearby != null) {
_pos = nearby.getBlockPos();
Helper.teleportSafely(player, wld, _pos.getX(), _pos.getY(), _pos.getZ(),0,0);
@@ -1,14 +1,6 @@
package io.ib67.sfcraft.module.compat;
import io.ib67.sfcraft.SFEntityType;
import io.ib67.sfcraft.ServerModule;
import io.ib67.sfcraft.entity.SFGuiderEntity;
import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.entity.Entity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.world.ServerWorld;
public class ModCompatModule extends ServerModule {
@Override
@@ -35,7 +35,7 @@ public class Helper {
var wld = player.server.getWorld(pos.dimension());
var _pos = pos.pos();
if (wld == null) return false;
var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 20, true);
var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 100, true);
return nearby != null;
}