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