mirror of https://github.com/kami-blue/client
[fix] Freecam chunk rendering (#1644)
* [fix] Appropriately modify `renderChunksMany` when toggling Freecam To optimise chunk rendering, minecraft tries to omit (normally) invisible chunks from chunk rendering. However, when the player's head is in an opaque block AND the classic 'block in head' overlay is not drawn, the player should see a sort of x-ray like view of the world. This happens in e.g. spectator mode. The `renderChunksMany` field in Minecraft also controls this behaviour, allowing modders to turn off the optimisation. * [cleanup] Extract Freecam camera entity ID to constant field
This commit is contained in:
parent
526d603ad9
commit
0a80613f9b
|
@ -41,19 +41,26 @@ object Freecam : Module() {
|
||||||
var cameraGuy: EntityPlayer? = null; private set
|
var cameraGuy: EntityPlayer? = null; private set
|
||||||
var resetInput = false
|
var resetInput = false
|
||||||
|
|
||||||
|
private const val ENTITY_ID = -6969420
|
||||||
|
|
||||||
override fun onDisable() {
|
override fun onDisable() {
|
||||||
|
mc.renderChunksMany = true
|
||||||
|
|
||||||
if (mc.player == null) return
|
if (mc.player == null) return
|
||||||
mc.world.removeEntityFromWorld(-6969420)
|
mc.world.removeEntityFromWorld(ENTITY_ID)
|
||||||
mc.setRenderViewEntity(mc.player)
|
mc.setRenderViewEntity(mc.player)
|
||||||
cameraGuy = null
|
cameraGuy = null
|
||||||
if (prevThirdPersonViewSetting != -1) mc.gameSettings.thirdPersonView = prevThirdPersonViewSetting
|
if (prevThirdPersonViewSetting != -1) mc.gameSettings.thirdPersonView = prevThirdPersonViewSetting
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onEnable() {
|
||||||
|
mc.renderChunksMany = false
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
listener<ConnectionEvent.Disconnect> {
|
listener<ConnectionEvent.Disconnect> {
|
||||||
prevThirdPersonViewSetting = -1
|
prevThirdPersonViewSetting = -1
|
||||||
cameraGuy = null
|
cameraGuy = null
|
||||||
mc.renderChunksMany = true
|
|
||||||
if (disableOnDisconnect.value) disable()
|
if (disableOnDisconnect.value) disable()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +102,7 @@ object Freecam : Module() {
|
||||||
// Create a cloned player
|
// Create a cloned player
|
||||||
cameraGuy = FakeCamera(mc.player).also {
|
cameraGuy = FakeCamera(mc.player).also {
|
||||||
// Add it to the world
|
// Add it to the world
|
||||||
mc.world.addEntityToWorld(-6969420, it)
|
mc.world.addEntityToWorld(ENTITY_ID, it)
|
||||||
|
|
||||||
// Set the render view entity to our camera guy
|
// Set the render view entity to our camera guy
|
||||||
mc.setRenderViewEntity(it)
|
mc.setRenderViewEntity(it)
|
||||||
|
|
Loading…
Reference in New Issue