From 1922be6cd5d0c3460e96908a20f69a8ed32278e2 Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Sat, 13 Nov 2021 01:14:28 +0900 Subject: [PATCH] Fix staircase rooftop collisions. --- src/sig/models/Staircase.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/sig/models/Staircase.java b/src/sig/models/Staircase.java index 684cf11..f99d625 100644 --- a/src/sig/models/Staircase.java +++ b/src/sig/models/Staircase.java @@ -97,8 +97,8 @@ public class Staircase extends Mesh{ public boolean handleCollision(Block b,float x,float z) { if (SigRenderer.currentStaircase!=null&& SigRenderer.currentStaircase==this) { - float diffX=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.x-b.pos.x)); - float diffZ=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.z-b.pos.z)); + float diffX=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.x+x-b.pos.x)); + float diffZ=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.z+z-b.pos.z)); switch (b.getFacingDirection()) { case EAST: { if (checkCollision(SigRenderer.vCamera.x+x, b.pos.y+diffX+1.3f, SigRenderer.vCamera.z+z)) { @@ -141,26 +141,24 @@ public class Staircase extends Mesh{ if (SigRenderer.vCamera.y>=b.pos.y+3f) { valid=true; } else { - float diffX=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.x-b.pos.x)); - float diffZ=Math.min(1,Math.max(0.3f,SigRenderer.vCamera.z-b.pos.z)); switch (b.getFacingDirection()) { case EAST: { - if (SigRenderer.vCamera.xb.pos.z+0.5f&&checkCollision(SigRenderer.vCamera.x+x, b.pos.y+(1-diffZ)+1.3f, SigRenderer.vCamera.z+z)) { + if (SigRenderer.vCamera.z>b.pos.z+0.5f) { valid=true; } }break; case SOUTH: { - if (SigRenderer.vCamera.zb.pos.x+0.5f&&checkCollision(SigRenderer.vCamera.x+x, b.pos.y+(1-diffX)+1.3f, SigRenderer.vCamera.z+z)) { + if (SigRenderer.vCamera.x>b.pos.x+0.5f) { valid=true; } }break;