diff --git a/src/js/net/minecraft/client/entity/PlayerEntity.js b/src/js/net/minecraft/client/entity/PlayerEntity.js index f650293..ca01a0e 100644 --- a/src/js/net/minecraft/client/entity/PlayerEntity.js +++ b/src/js/net/minecraft/client/entity/PlayerEntity.js @@ -73,7 +73,73 @@ export default class PlayerEntity extends EntityLiving { } onLivingUpdate() { + this.prevCameraYaw = this.cameraYaw; + this.prevCameraPitch = this.cameraPitch; + + if (this.sprintToggleTimer > 0) { + --this.sprintToggleTimer; + } + if (this.flyToggleTimer > 0) { + --this.flyToggleTimer; + } + + let prevMoveForward = this.moveForward; + let prevJumping = this.jumping; + + this.updateKeyboardInput(); + + // Toggle jumping + if (!prevJumping && this.jumping) { + if (this.flyToggleTimer === 0) { + this.flyToggleTimer = 7; + } else { + this.flying = !this.flying; + this.flyToggleTimer = 0; + + this.updateFOVModifier(); + } + } + + // Toggle sprint + if (prevMoveForward === 0 && this.moveForward > 0) { + if (this.sprintToggleTimer === 0) { + this.sprintToggleTimer = 7; + } else { + this.sprinting = true; + this.sprintToggleTimer = 0; + + this.updateFOVModifier(); + } + } + + if (this.sprinting && (this.moveForward <= 0 || this.collision || this.isSneaking())) { + this.sprinting = false; + + this.updateFOVModifier(); + } + super.onLivingUpdate(); + + this.jumpMovementFactor = this.speedInAir; + + if (this.sprinting) { + this.jumpMovementFactor = this.jumpMovementFactor + this.speedInAir * 0.3; + } + + let speedXZ = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + let speedY = (Math.atan(-this.motionY * 0.2) * 15.0); + + if (speedXZ > 0.1) { + speedXZ = 0.1; + } + if (!this.onGround || this.health <= 0.0) { + speedXZ = 0.0; + } + if (this.onGround || this.health <= 0.0) { + speedY = 0.0; + } + this.cameraYaw += (speedXZ - this.cameraYaw) * 0.4; + this.cameraPitch += (speedY - this.cameraPitch) * 0.8; } isInWater() { diff --git a/src/js/net/minecraft/client/entity/PlayerEntityMultiplayer.js b/src/js/net/minecraft/client/entity/PlayerEntityMultiplayer.js index 9341ff7..85d93ee 100644 --- a/src/js/net/minecraft/client/entity/PlayerEntityMultiplayer.js +++ b/src/js/net/minecraft/client/entity/PlayerEntityMultiplayer.js @@ -36,76 +36,6 @@ export default class PlayerEntityMultiplayer extends PlayerEntity { this.networkHandler.sendPacket(new ClientSwingArmPacket()); } - onLivingUpdate() { - this.prevCameraYaw = this.cameraYaw; - this.prevCameraPitch = this.cameraPitch; - - if (this.sprintToggleTimer > 0) { - --this.sprintToggleTimer; - } - if (this.flyToggleTimer > 0) { - --this.flyToggleTimer; - } - - let prevMoveForward = this.moveForward; - let prevJumping = this.jumping; - - this.updateKeyboardInput(); - - // Toggle jumping - if (!prevJumping && this.jumping) { - if (this.flyToggleTimer === 0) { - this.flyToggleTimer = 7; - } else { - this.flying = !this.flying; - this.flyToggleTimer = 0; - - this.updateFOVModifier(); - } - } - - // Toggle sprint - if (prevMoveForward === 0 && this.moveForward > 0) { - if (this.sprintToggleTimer === 0) { - this.sprintToggleTimer = 7; - } else { - this.sprinting = true; - this.sprintToggleTimer = 0; - - this.updateFOVModifier(); - } - } - - if (this.sprinting && (this.moveForward <= 0 || this.collision || this.isSneaking())) { - this.sprinting = false; - - this.updateFOVModifier(); - } - - super.onLivingUpdate(); - - this.jumpMovementFactor = this.speedInAir; - - if (this.sprinting) { - this.jumpMovementFactor = this.jumpMovementFactor + this.speedInAir * 0.3; - } - - let speedXZ = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); - let speedY = (Math.atan(-this.motionY * 0.2) * 15.0); - - if (speedXZ > 0.1) { - speedXZ = 0.1; - } - if (!this.onGround || this.health <= 0.0) { - speedXZ = 0.0; - } - if (this.onGround || this.health <= 0.0) { - speedY = 0.0; - } - this.cameraYaw += (speedXZ - this.cameraYaw) * 0.4; - this.cameraPitch += (speedY - this.cameraPitch) * 0.8; - } - onUpdateWalkingPlayer() { // Send sprinting to server let isSprinting = this.isSprinting();