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) {
|
if (b) {
|
||||||
var text = Text.literal("");
|
var text = Text.literal("");
|
||||||
text.append(generateDurabilityMeter(f, player));
|
text.append(generateDurabilityMeter(f, player));
|
||||||
|
text.append(genPitchMeter(player.getPitch()));
|
||||||
player.sendMessage(text, true);
|
player.sendMessage(text, true);
|
||||||
} else {
|
} else {
|
||||||
clean((ServerPlayerEntity) player);
|
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) {
|
private Text generateDurabilityMeter(long f, PlayerEntity player) {
|
||||||
var stack = player.getInventory().getArmorStack(PlayerInventory.ARMOR_SLOTS[2]);
|
var stack = player.getInventory().getArmorStack(PlayerInventory.ARMOR_SLOTS[2]);
|
||||||
if (stack.isDamageable() && stack.isDamaged()) {
|
if (stack.isDamageable() && stack.isDamaged()) {
|
||||||
@@ -79,7 +94,7 @@ public class ElytraSpeedMeterModule extends ServerModule {
|
|||||||
var percent = (int) Math.ceil(((double) remaining / stack.getMaxDamage()) * 100);
|
var percent = (int) Math.ceil(((double) remaining / stack.getMaxDamage()) * 100);
|
||||||
return ELYTRA_DURABILITY[Math.max(percent - 1, 0)];
|
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) {
|
private static int getDamageColor(int percent) {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class BackModule extends ServerModule {
|
|||||||
var wld = player.server.getWorld(pos.dimension());
|
var wld = player.server.getWorld(pos.dimension());
|
||||||
var _pos = pos.pos();
|
var _pos = pos.pos();
|
||||||
if (wld == null) return 0;
|
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) {
|
if (nearby != null) {
|
||||||
_pos = nearby.getBlockPos();
|
_pos = nearby.getBlockPos();
|
||||||
Helper.teleportSafely(player, wld, _pos.getX(), _pos.getY(), _pos.getZ(),0,0);
|
Helper.teleportSafely(player, wld, _pos.getX(), _pos.getY(), _pos.getZ(),0,0);
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
package io.ib67.sfcraft.module.compat;
|
package io.ib67.sfcraft.module.compat;
|
||||||
|
|
||||||
import io.ib67.sfcraft.SFEntityType;
|
|
||||||
import io.ib67.sfcraft.ServerModule;
|
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 {
|
public class ModCompatModule extends ServerModule {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class Helper {
|
|||||||
var wld = player.server.getWorld(pos.dimension());
|
var wld = player.server.getWorld(pos.dimension());
|
||||||
var _pos = pos.pos();
|
var _pos = pos.pos();
|
||||||
if (wld == null) return false;
|
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;
|
return nearby != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user