From 15f06e39803df770f9a86096b3ccdb7f7a94a2dc Mon Sep 17 00:00:00 2001 From: Bixilon Date: Sat, 6 May 2023 20:00:29 +0200 Subject: [PATCH] hide arm when player in spectator mode --- .../rendering/camera/view/person/FirstPersonView.kt | 13 +++++++++++-- .../gui/rendering/world/light/RenderLight.kt | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/view/person/FirstPersonView.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/view/person/FirstPersonView.kt index dc846b88b..030601ab1 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/view/person/FirstPersonView.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/view/person/FirstPersonView.kt @@ -15,7 +15,9 @@ package de.bixilon.minosoft.gui.rendering.camera.view.person import de.bixilon.kotlinglm.vec2.Vec2d import de.bixilon.kotlinglm.vec3.Vec3 +import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.entities.EntityRotation +import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.camera.Camera import de.bixilon.minosoft.gui.rendering.camera.view.CameraView @@ -25,7 +27,14 @@ class FirstPersonView(override val camera: Camera) : PersonView { override val context: RenderContext get() = camera.context override val renderSelf: Boolean get() = false - override val renderArm: Boolean get() = true + override val renderArm: Boolean + get() { + val entity = camera.context.connection.camera.entity + if (entity is PlayerEntity && entity.gamemode == Gamemodes.SURVIVAL) { + return false + } + return true + } override val renderOverlays: Boolean get() = true override var eyePosition: Vec3 = Vec3.EMPTY @@ -41,7 +50,7 @@ class FirstPersonView(override val camera: Camera) : PersonView { } private fun update() { - val entity = camera.context.connection.camera.entity + val entity = context.connection.camera.entity this.eyePosition = entity.renderInfo.eyePosition this.rotation = entity.physics.rotation this.front = this.rotation.front diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/light/RenderLight.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/light/RenderLight.kt index 434fa2e26..f4178d22b 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/light/RenderLight.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/light/RenderLight.kt @@ -50,7 +50,7 @@ class RenderLight(val context: RenderContext) { "minosoft:toggle_fullbright".toResourceLocation(), KeyBinding( KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4), - KeyActions.CHANGE to setOf(KeyCodes.KEY_C), + KeyActions.STICKY to setOf(KeyCodes.KEY_C), ), defaultPressed = connection.profiles.rendering.light.fullbright, ) {