Add: pitch meter
adjust back distance
This commit is contained in:
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user