From 8033c2a4ba29448662e87e53e662bebc389dfbca Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii Date: Thu, 2 Jun 2022 20:13:34 +0000 Subject: [PATCH] Draw a grid to separate every screen Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- src/sig/engine/Object.java | 4 ++++ src/sig/map/Tile.java | 4 ++-- src/sig/objects/EditorRenderer.java | 32 +++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/sig/engine/Object.java b/src/sig/engine/Object.java index a0753db..493e847 100644 --- a/src/sig/engine/Object.java +++ b/src/sig/engine/Object.java @@ -50,6 +50,10 @@ public abstract class Object implements GameEntity{ public void drawOverlay(byte[] p) { } + protected void Draw(byte[] canvas, int index, PaletteColor col, Alpha alpha) { + DrawLoop.Draw(canvas, index, (byte)col.ordinal(), alpha); + } + protected void Draw_Sprite(double x, double y, Sprite sprite){ DrawLoop.Draw_Sprite(x,y,sprite); } diff --git a/src/sig/map/Tile.java b/src/sig/map/Tile.java index 08ad072..a06ac4f 100644 --- a/src/sig/map/Tile.java +++ b/src/sig/map/Tile.java @@ -13,8 +13,8 @@ public enum Tile { final public static int TILE_WIDTH=32; final public static int TILE_HEIGHT=32; - final public static int TILE_SCREEN_COUNT_X=RabiClone.BASE_WIDTH/TILE_WIDTH; - final public static int TILE_SCREEN_COUNT_Y=RabiClone.BASE_HEIGHT/TILE_HEIGHT; + final public static int TILE_SCREEN_COUNT_X=Map.MAP_WIDTH/TILE_WIDTH; + final public static int TILE_SCREEN_COUNT_Y=Map.MAP_HEIGHT/TILE_HEIGHT; int spriteSheetX,spriteSheetY; boolean invisible; diff --git a/src/sig/objects/EditorRenderer.java b/src/sig/objects/EditorRenderer.java index 89edd96..d194d93 100644 --- a/src/sig/objects/EditorRenderer.java +++ b/src/sig/objects/EditorRenderer.java @@ -104,9 +104,41 @@ public class EditorRenderer extends LevelRenderer{ drawMapTileForEditorMode(x,y); } } + for (int y=(int)(this.getY()/Tile.TILE_HEIGHT);y<(int)(RabiClone.BASE_HEIGHT/Tile.TILE_HEIGHT+this.getY()/Tile.TILE_HEIGHT+1);y++) { + if (y<0||y>Map.MAP_HEIGHT) { + continue; + } + for (int x=(int)(0+this.getX()/Tile.TILE_WIDTH);x<(int)(RabiClone.BASE_WIDTH/Tile.TILE_WIDTH+this.getX()/Tile.TILE_WIDTH+1);x++) { + if (x<0||x>Map.MAP_WIDTH) { + continue; + } + drawTileGrid(p,x,y); + } + } Draw_Text(4,0,messageLog,Font.PROFONT_12); } + private void drawTileGrid(byte[] p, int x, int y) { + if (x%Tile.TILE_SCREEN_COUNT_X==0) { + for (int yy=0;yy=p.length) { + return; + } + Draw(p,index,PaletteColor.BLACK,Alpha.ALPHA0); + } + } + if (y%Tile.TILE_SCREEN_COUNT_Y==0) { + for (int xx=0;xx=p.length) { + return; + } + Draw(p,index,PaletteColor.BLACK,Alpha.ALPHA0); + } + } + } + @Override protected void drawMapTileForEditorMode(int x, int y) { if (x==RabiClone.p.highlightedSquare.getX()&&y==RabiClone.p.highlightedSquare.getY()) {