From c68177f5f5f3a5526ee30fb36fe61786310f7923 Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii Date: Fri, 1 Oct 2021 06:06:46 +0000 Subject: [PATCH] Resolved bottoming out edge cases with collisions. No more empty block bugs. Co-authored-by: sigonasr2 --- Meteo_Engine.jar | Bin 18260 -> 19257 bytes src/sig/BlockClump.java | 4 +- src/sig/Board.java | 51 +++++++++++++++++--------- src/sig/CollisionRangeIdentifier.java | 16 ++++++++ 4 files changed, 52 insertions(+), 19 deletions(-) create mode 100644 src/sig/CollisionRangeIdentifier.java diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index 07711eab04ad4dd4b7c79a49e04ae6bf1835d09f..8ace3164180500b02cdfb868a957b133640df40f 100644 GIT binary patch delta 11265 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 diff --git a/src/sig/BlockClump.java b/src/sig/BlockClump.java index 3dd5898..cb0b160 100644 --- a/src/sig/BlockClump.java +++ b/src/sig/BlockClump.java @@ -72,8 +72,8 @@ public class BlockClump { g.setColor(new Color(0,255,0,128)); for (int i=0;i ranges = new ArrayList(); + for (int k=0;ka.range[0]-b.range[0]).collect(Collectors.toList()); + //System.out.println(ranges); + for (int l=0;lblocks2.y+(blocks2.collisionColumnRanges[x][0]+1)*block_height) { - HandleBlockLand(blocks, x, blocks2.y+(blocks2.collisionColumnRanges[x][0]+1)*block_height); - continue outerloop; - } - } else { - if (FUTURE_FALL_POSITION+blocks.collisionColumnRanges[x][0]*block_height0) { + if (blocks2.y+(blocks2.collisionColumnRanges[x][0])*block_height>FUTURE_FALL_POSITION+(blocks.collisionColumnRanges[x][1])*block_height) { + if (FUTURE_FALL_POSITION+(blocks.collisionColumnRanges[x][1])*block_height>blocks2.y+(blocks2.collisionColumnRanges[x][0])*block_height) { + HandleBlockLand(blocks, x, blocks2.y+(blocks2.collisionColumnRanges[x][0])*block_height-blocks.maxBlockHeight*block_height); + continue outerloop; + } + } + } else { + if (FUTURE_FALL_POSITION+(blocks.collisionColumnRanges[x][0])*block_height<=0) { //Handle reaching the ground. + HandleBlockLand(blocks, x, 0); + continue outerloop; + } else + if (blocks2.y0; diff --git a/src/sig/CollisionRangeIdentifier.java b/src/sig/CollisionRangeIdentifier.java new file mode 100644 index 0000000..9f7cd21 --- /dev/null +++ b/src/sig/CollisionRangeIdentifier.java @@ -0,0 +1,16 @@ +package sig; + +import java.util.Arrays; + +public class CollisionRangeIdentifier { + int index; + int[] range; + CollisionRangeIdentifier(int index,int[] range) { + this.index=index; + this.range=range; + } + @Override + public String toString() { + return "CollisionRangeIdentifier [index=" + index + ", range=" + Arrays.toString(range) + "]"; + } +}