From 121002231abe8bc41095d8f850d0322b172f1530 Mon Sep 17 00:00:00 2001 From: VitzS7 Date: Thu, 13 Aug 2026 00:03:40 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20adicionada=20op=C3=A7=C3=A3o=20yaw-offs?= =?UTF-8?q?et=20no=20config.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rotação extra de yaw (em graus) somada às display entities no Bedrock. 180 = virar para o outro lado. Lida no ConfigManager e aplicada no bedrockRotation() do ItemDisplayEntity. --- .../geyserdisplayentity/entity/ItemDisplayEntity.java | 2 +- .../geyserdisplayentity/managers/ConfigManager.java | 6 ++++++ src/main/resources/Extension/config.yml | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/geyserextensionists/geyserdisplayentity/entity/ItemDisplayEntity.java b/src/main/java/me/geyserextensionists/geyserdisplayentity/entity/ItemDisplayEntity.java index 67b4272..e3875e9 100644 --- a/src/main/java/me/geyserextensionists/geyserdisplayentity/entity/ItemDisplayEntity.java +++ b/src/main/java/me/geyserextensionists/geyserdisplayentity/entity/ItemDisplayEntity.java @@ -348,7 +348,7 @@ public Vector3f bedrockRotation() { Vector3f fwd = combined.rotate(0f, 0f, 1f); float yawDeg = (float) Math.toDegrees(Math.atan2(-fwd.getX(), fwd.getZ())); float pitchDeg = (float) Math.toDegrees(Math.asin(MathUtils.clamp(fwd.getY(), -1f, 1f))); - yawDeg += getYaw(); + yawDeg += getYaw() + GeyserDisplayEntity.getExtension().getConfigManager().getYawOffset(); yawDeg = MathUtils.wrapDegrees(yawDeg); return Vector3f.from(pitchDeg, yawDeg, yawDeg); } diff --git a/src/main/java/me/geyserextensionists/geyserdisplayentity/managers/ConfigManager.java b/src/main/java/me/geyserextensionists/geyserdisplayentity/managers/ConfigManager.java index c737ddb..ad50e99 100644 --- a/src/main/java/me/geyserextensionists/geyserdisplayentity/managers/ConfigManager.java +++ b/src/main/java/me/geyserextensionists/geyserdisplayentity/managers/ConfigManager.java @@ -22,6 +22,7 @@ public class ConfigManager { private Set hideCustomTypes = Set.of(); private boolean hideUnmappedVanilla = true; private boolean logDisplays = false; + private float yawOffset = 0f; public ConfigManager(GeyserDisplayEntity extension) { this.extension = extension; @@ -38,6 +39,7 @@ public void load() { this.hideCustomTypes = config.contains("hide-custom-types") ? new HashSet<>(config.getStringList("hide-custom-types")) : this.hideTypes; this.hideUnmappedVanilla = !config.contains("hide-unmapped-vanilla-displays") || config.getBoolean("hide-unmapped-vanilla-displays"); this.logDisplays = config.getBoolean("settings.debug.log-displays"); + this.yawOffset = (float) config.getDouble("general.yaw-offset"); if (!Files.exists(GeyserDisplayEntity.getExtension().dataFolder().resolve("Entities"))) { FileUtils.createFiles(GeyserDisplayEntity.getExtension(), "Entities/item-displays.yml"); @@ -109,4 +111,8 @@ public boolean isHideUnmappedVanilla() { public boolean isLogDisplays() { return logDisplays; } + + public float getYawOffset() { + return yawOffset; + } } diff --git a/src/main/resources/Extension/config.yml b/src/main/resources/Extension/config.yml index 120f1ca..89168c7 100644 --- a/src/main/resources/Extension/config.yml +++ b/src/main/resources/Extension/config.yml @@ -4,6 +4,8 @@ general: height: 1.7 # The y-offset of display entity y-offset: -0.5 + # Extra yaw rotation (degrees) added to display entities on Bedrock. 180 = flip to face the other way. + yaw-offset: 180.0 # Use entity scale, instead of entity properties vanilla-scale: false vanilla-scale-multiplier: 1