diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index fc7b577..fdfb1e4 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,9 +7,9 @@
-
-
+
+
@@ -22,9 +22,10 @@
-
+
+
@@ -37,7 +38,7 @@
-
+
@@ -48,7 +49,7 @@
-
+
@@ -58,8 +59,8 @@
-
-
+
+
@@ -70,8 +71,8 @@
-
-
+
+
@@ -79,6 +80,15 @@
+
+
+
+
+
+
+
+
+
@@ -97,11 +107,11 @@
-
+
-
-
+
+
@@ -112,7 +122,7 @@
-
+
@@ -121,7 +131,7 @@
-
+
@@ -222,11 +232,9 @@
-
-
@@ -234,6 +242,8 @@
+
+
@@ -263,7 +273,7 @@
-
+
@@ -274,12 +284,13 @@
-
+
+
@@ -290,7 +301,7 @@
-
+
@@ -303,7 +314,7 @@
-
+
@@ -372,7 +383,8 @@
-
+
+
1570710866817
@@ -472,17 +484,24 @@
1571639621923
-
+
+ 1571675332363
+
+
+
+ 1571675332364
+
+
-
+
-
+
@@ -491,7 +510,7 @@
-
+
@@ -502,7 +521,7 @@
-
+
@@ -568,7 +587,8 @@
-
+
+
@@ -719,13 +739,6 @@
-
-
-
-
-
-
-
@@ -816,27 +829,34 @@
-
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
@@ -860,27 +880,27 @@
-
+
-
-
+
+
-
+
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
diff --git a/src/io/meowtype/homeorback/Tpr.scala b/src/io/meowtype/homeorback/Tpr.scala
index f26170d..19c023f 100644
--- a/src/io/meowtype/homeorback/Tpr.scala
+++ b/src/io/meowtype/homeorback/Tpr.scala
@@ -88,7 +88,7 @@ object Tpr {
val is: Boolean = if(self.back_random.never_water) a.getType.isSolid && a1.getType == Material.AIR && a2.getType == Material.AIR
else if ((a.getType.isSolid || a.getType == Material.WATER || a.getType == Material.STATIONARY_WATER) &&
- (a1.getType == Material.AIR || a1.getType == Material.WATER || a1.getType == Material.STATIONARY_WATER) &&
+ (a1.getType == Material.AIR || a1.getType == Material.WATER || a1.getType == Material.STATIONARY_WATER || !a1.getType.isOccluding) &&
a2.getType == Material.AIR)
if(self.back_random.try_to_land) if(a.getType.isSolid && a1.getType == Material.AIR && a2.getType == Material.AIR) true else {
in_water = loc
@@ -121,14 +121,23 @@ object Tpr {
val lloc = new Location(world, loc.getX, y, loc.getZ)
if(!lloc.getBlock.getType.name.toLowerCase.contains("leaves")) break(loc)
else {
+ var lloc = loc
y -= 2
- if(y <=0 ) break(loc)
- loop(()=> y > 0, ()=> y -= 1) { _ =>
+ if(y <=5 ) break(lloc)
+ loop(()=> y > 5, ()=> y -= 1) { _ =>
val nloc = new Location(world, loc.getX, y, loc.getZ)
- //todo
- if(toCheck(nloc) && !lloc.getBlock.getType.name.toLowerCase.contains("leaves")) break(nloc)
+ val down = new Location(world, loc.getX, y - 1, loc.getZ)
+ if(down.getBlock.getType.name.toLowerCase.contains("leaves")) {
+ if(toCheck(nloc)) {
+ lloc = nloc
+ }
+ } else if(down.getBlock.getType.isSolid || down.getBlock.getType == Material.WATER || down.getBlock.getType == Material.STATIONARY_WATER) {
+ if(toCheck(nloc)) {
+ break(nloc)
+ } else break(lloc)
+ }
}
- break(loc)
+ break(lloc)
}
}
}
diff --git a/src/io/meowtype/package.scala b/src/io/meowtype/package.scala
index b598140..f239a13 100644
--- a/src/io/meowtype/package.scala
+++ b/src/io/meowtype/package.scala
@@ -87,7 +87,7 @@ package object meowtype {
while (c()) {
try { a(break) }
catch {
- case break: Break => if(break.uid == uid) return
+ case break: Break => if(break.uid == uid) return else throw break
}
after()
}
@@ -122,7 +122,7 @@ package object meowtype {
while (c()) {
try { a(break) }
catch {
- case break: BreakR[R] => if(break.uid == uid) return break.r
+ case break: BreakR[R] => if(break.uid == uid) return break.r else throw break
}
after()
}