From 4adb954e344d88226b61d4895083fcf0b0ded8dd Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Thu, 23 Sep 2021 00:05:45 +0000 Subject: [PATCH] Add debug drawing mode --- Meteo_Engine.jar | Bin 10541 -> 11542 bytes src/sig/Block.java | 9 +++++++-- src/sig/BlockClump.java | 17 +++++++++++++++-- src/sig/Board.java | 33 ++++++++++++++++++++------------- src/sig/DebugMode.java | 6 ++++++ src/sig/Meteo.java | 1 + 6 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 src/sig/DebugMode.java diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index da32060f189877d0ac6a3dbf135e9f0ec8483c3b..f455f1b63d67ea6f01b0f1fc735c77d8dd3d4bec 100644 GIT binary patch literal 11542 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 O`_R9UXNLOMxBmy(b420* literal 10541 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 Rf&x4r-=9BnCfZ+D{{yq>PLBWp diff --git a/src/sig/Block.java b/src/sig/Block.java index c0f6dc0..c22b409 100644 --- a/src/sig/Block.java +++ b/src/sig/Block.java @@ -1,6 +1,7 @@ package sig; import java.awt.Graphics; +import java.awt.Color; public class Block{ BlockState state; @@ -21,8 +22,12 @@ public class Block{ public String toString() { return "Block [state=" + state + ", x=" + x + ", y=" + y + "]"; } - public void draw(Graphics g, double x, double y, int block_width, int block_height) { - g.setColor(state.getCol()); + public void draw(Graphics g, double x, double y, int block_width, int block_height,int launched) { + if (Meteo.DEBUG_DRAWING==DebugMode.MODE0&&launched<=-1) { + g.setColor(Color.BLACK); + } else { + g.setColor(state.getCol()); + } g.fill3DRect((int)x+this.x*block_width,(int)y-this.y*block_height, block_width, block_height, true); } } \ No newline at end of file diff --git a/src/sig/BlockClump.java b/src/sig/BlockClump.java index fd02e05..2f3099a 100644 --- a/src/sig/BlockClump.java +++ b/src/sig/BlockClump.java @@ -4,6 +4,7 @@ import java.awt.Graphics; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.awt.Color; public class BlockClump { private List blocks; @@ -14,7 +15,7 @@ public class BlockClump { Negative is for when block clumps are divided into smaller columns for re-sorting. Positive is used for how much landing launch time before being split and falling.*/ - public BlockClump(List blockList, double x, double y, double startspd, int width) { + public BlockClump(List blockList, double x, double y, double startspd, int width, int launched) { this.blocks = new ArrayList(); this.blocks.addAll(blockList); collisionColumnRanges = new int[width][]; @@ -27,6 +28,7 @@ public class BlockClump { this.x=x; this.y=y; this.yspd=startspd; + this.launched=launched; } public void updateBlockCollision() { //Call this whenever the block structure changes. This will define what the top and bottom positions @@ -44,7 +46,18 @@ public class BlockClump { } public void drawBlocks(Graphics g, int originX, int originY, int block_width, int block_height) { for (Block b : blocks) { - b.draw(g,originX+x*block_width,originY-y,block_width,block_height); + b.draw(g,originX+x*block_width,originY-y,block_width,block_height,launched); + } + } + public void drawClumpOutlines(Graphics g, int originX, int originY, int block_width, int block_height) { + if (Meteo.DEBUG_DRAWING==DebugMode.MODE0) { + g.setColor(new Color(0,255,0,128)); + for (int i=0;i initialBlocks2 = new ArrayList(); for (int x=0;xblocks2.y+(blocks2.collisionColumnRanges[x][0]+1)*block_height) { HandleBlockLand(blocks, x, blocks2.y+(blocks2.collisionColumnRanges[x][0]+1)*block_height); + handleCollision=true; continue outerloop; } } else { if (FUTURE_FALL_POSITION+blocks.collisionColumnRanges[x][0]*block_height0) { - blocks.yspd=Math.max(blocks.yspd+gravity,max_fall_spd); - blocks.y+=blocks.yspd; - } else { - //We have hit the bottom. - blocks.yspd=0; - blocks.y=0; + if (!handleCollision) { + if (FUTURE_FALL_POSITION>0) { + blocks.yspd=Math.max(blocks.yspd+gravity,max_fall_spd); + blocks.y+=blocks.yspd; + } else { + //We have hit the bottom. + HandleBlockLand(blocks, x, 0); + } } //System.out.println(blocks.y); } @@ -107,7 +111,7 @@ public class Board { private void HandleBlockLand(BlockClump blocks, int x, double yset) { blocks.yspd=0; blocks.y=yset; - if (blocks.launched--==-1) { + if (blocks.launched--==0) { SplitBlockClump(blocks); } } @@ -118,7 +122,7 @@ public class Board { blockClumpAddList.add( new BlockClump( blocks.getBlocks().stream().filter((block)->block.x==column).collect(Collectors.toList()), - 0,blocks.y,blocks.yspd,width) + 0,blocks.y,blocks.yspd,width,blocks.launched) ); } } @@ -134,5 +138,8 @@ public class Board { } g.setColor(Color.BLACK); g.fillRoundRect(DRAW_STARTX, DRAW_STARTY+block_height, DRAW_ENDX-DRAW_STARTX, 3, 3, 1); + for (BlockClump bc : blockData) { + bc.drawClumpOutlines(g,DRAW_STARTX,DRAW_STARTY,block_width,block_height); + } } } diff --git a/src/sig/DebugMode.java b/src/sig/DebugMode.java new file mode 100644 index 0000000..37de187 --- /dev/null +++ b/src/sig/DebugMode.java @@ -0,0 +1,6 @@ +package sig; + +public enum DebugMode { + OFF, + MODE0, //Displays blocks ready for connecting in black and block clumps with green rectangles. +} diff --git a/src/sig/Meteo.java b/src/sig/Meteo.java index a505a0d..36fa7dd 100644 --- a/src/sig/Meteo.java +++ b/src/sig/Meteo.java @@ -15,6 +15,7 @@ public class Meteo { public static Board b; public final static long TIMEPERTICK = 16666667l; + public static DebugMode DEBUG_DRAWING = DebugMode.MODE0; public static void runGameLoop() { FRAMECOUNT++;