diff --git a/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java b/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java index 0343714..1b5345e 100644 --- a/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java +++ b/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java @@ -704,26 +704,30 @@ public boolean requiresUpdateEveryTick() { public void tick() { Optional optional = this.findNearbyResource(); - if (HamsterWheelBlock.isOccupied(Hamster.this.getLevel(), optional.get())) { - stop(); - } - - if (!HamsterWheelBlock.isOccupied(Hamster.this.getLevel(), optional.get()) && Hamster.this.getWaitTimeBeforeRunTicks() == 0) { + if (optional.isPresent()) { - Vec3 vec3 = Vec3.atBottomCenterOf(optional.get()); - if (vec3.distanceTo(Hamster.this.position()) > 1.4) { - wheelPos = vec3; - this.setWantedPos(); - return; - } - if (wheelPos == null) { - this.wheelPos = vec3; + if (HamsterWheelBlock.isOccupied(Hamster.this.getLevel(), optional.get())) { + stop(); } - if (Hamster.this.position().distanceTo(this.wheelPos) <= 1.4) { - Hamster.this.setWaitTimeWhenRunningTicks(Hamster.this.random.nextInt(300) + 100); - HamsterWheelBlock.sitDown(Hamster.this.getLevel(), optional.get(), Hamster.this); - this.stop(); + + if (!HamsterWheelBlock.isOccupied(Hamster.this.getLevel(), optional.get()) && Hamster.this.getWaitTimeBeforeRunTicks() == 0) { + + Vec3 vec3 = Vec3.atBottomCenterOf(optional.get()); + if (vec3.distanceTo(Hamster.this.position()) > 1.4) { + wheelPos = vec3; + this.setWantedPos(); + return; + } + if (wheelPos == null) { + this.wheelPos = vec3; + } + if (Hamster.this.position().distanceTo(this.wheelPos) <= 1.4) { + Hamster.this.setWaitTimeWhenRunningTicks(Hamster.this.random.nextInt(300) + 100); + HamsterWheelBlock.sitDown(Hamster.this.getLevel(), optional.get(), Hamster.this); + this.stop(); + } } + } }