From adab1a4b7c32ed4d0c9af2654e029f9287e29987 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Fri, 1 Jan 2021 17:34:48 +0100 Subject: [PATCH] draw method signature change --- src/main/java/core/general/Master.java | 2 +- src/main/java/core/objects/base/DebugPos.java | 3 ++- .../java/core/physics/hitboxes/Hitbox.java | 7 +------ .../java/core/physics/hitboxes/RectHitBox.java | 11 +---------- src/main/java/core/rendering/Drawable.java | 5 +---- src/main/java/core/rendering/LayerManager.java | 2 +- src/main/java/core/rendering/RenderEngine.java | 18 ++++++++++++++---- .../rendering/renderer/CircleRenderer.java | 2 +- .../rendering/renderer/ComplexRenderer.java | 7 +++---- .../core/rendering/renderer/EmptyRenderer.java | 4 +--- .../core/rendering/renderer/RectRenderer.java | 2 +- .../java/core/rendering/renderer/Renderer.java | 3 +-- .../rendering/renderer/RoundRectRenderer.java | 3 +-- src/main/java/custom/Init.java | 2 +- src/main/java/custom/objects/ships/Turret.java | 3 ++- src/main/java/custom/objects/world/Grid.java | 3 ++- 16 files changed, 34 insertions(+), 43 deletions(-) diff --git a/src/main/java/core/general/Master.java b/src/main/java/core/general/Master.java index 73b9b58..781ce97 100644 --- a/src/main/java/core/general/Master.java +++ b/src/main/java/core/general/Master.java @@ -139,7 +139,7 @@ public class Master { collidablesBuffer.remove(gameObject); if (Init.DEBUG_MODE) { - renderEngine.removeRenderer(((CollGameObject) gameObject).getHitbox()); + //add hitbox renderer } } } diff --git a/src/main/java/core/objects/base/DebugPos.java b/src/main/java/core/objects/base/DebugPos.java index 0738ca2..07f8f6a 100644 --- a/src/main/java/core/objects/base/DebugPos.java +++ b/src/main/java/core/objects/base/DebugPos.java @@ -25,7 +25,8 @@ public class DebugPos extends GameObject { this.setRenderer(new CustomRenderer(Color.GREEN, this) { @Override - public void draw(Graphics2D g2d) { + public void draw() { + Graphics2D g2d = master.getRenderEngine().getG2d(); Vector2D positionAbs = Coordinates.getWorldCoordinates(getMapPosition()); g2d.setColor(color); g2d.setStroke(new BasicStroke((int) Coordinates.getWorldCoordinates(new Vector2D(0.5, 0)).x, BasicStroke.CAP_BUTT, diff --git a/src/main/java/core/physics/hitboxes/Hitbox.java b/src/main/java/core/physics/hitboxes/Hitbox.java index 1dc2bca..2c87f24 100644 --- a/src/main/java/core/physics/hitboxes/Hitbox.java +++ b/src/main/java/core/physics/hitboxes/Hitbox.java @@ -3,7 +3,7 @@ package core.physics.hitboxes; import core.rendering.Drawable; import core.math.Vector2D; -public abstract class Hitbox implements Drawable { +public abstract class Hitbox{ public static final int HITBOX_RENDER_LAYER = 1; @@ -24,9 +24,4 @@ public abstract class Hitbox implements Drawable { public String toString() { return super.toString(); } - - @Override - public int getLayer() { - return HITBOX_RENDER_LAYER; - } } diff --git a/src/main/java/core/physics/hitboxes/RectHitBox.java b/src/main/java/core/physics/hitboxes/RectHitBox.java index e588bf7..22ebb87 100644 --- a/src/main/java/core/physics/hitboxes/RectHitBox.java +++ b/src/main/java/core/physics/hitboxes/RectHitBox.java @@ -1,5 +1,6 @@ package core.physics.hitboxes; +import core.general.Master; import core.math.Coordinates; import core.math.Vector2D; import custom.Init; @@ -171,14 +172,4 @@ public class RectHitBox extends Hitbox { public String toString() { return "RectHitBox{" + x1 + " " + x2 + "\n" + y1 + " " + y2 + "}"; } - - @Override - public void draw(Graphics2D g2d) { - - Vector2D abs = Coordinates.getWorldCoordinates(x1); - Vector2D sizeAbs = Coordinates.getWorldCoordinates(Vector2D.subtract(y2, x1)); - - g2d.setPaint(Color.MAGENTA); - g2d.drawRect((int) abs.x, (int) abs.y, (int) sizeAbs.x, (int) sizeAbs.y); - } } diff --git a/src/main/java/core/rendering/Drawable.java b/src/main/java/core/rendering/Drawable.java index f87a1a9..dd04195 100644 --- a/src/main/java/core/rendering/Drawable.java +++ b/src/main/java/core/rendering/Drawable.java @@ -1,7 +1,5 @@ package core.rendering; -import java.awt.Graphics2D; - /** * This interface has to be implemented by every */ @@ -14,9 +12,8 @@ public interface Drawable { * fine even without this method being called.

*

This function is NOT intended to be called manually.

* - * @param g2d The {@code Graphics2D} object given by the master */ - void draw(Graphics2D g2d); + void draw(); /** * Returns the layer of the Drawable diff --git a/src/main/java/core/rendering/LayerManager.java b/src/main/java/core/rendering/LayerManager.java index fe5aa93..f6b2a88 100644 --- a/src/main/java/core/rendering/LayerManager.java +++ b/src/main/java/core/rendering/LayerManager.java @@ -31,7 +31,7 @@ public class LayerManager { * @param g2d */ public void drawAll(Graphics2D g2d){ - layers.forEach(e -> e.forEach(f -> f.draw(g2d))); + layers.forEach(e -> e.forEach(f -> f.draw())); } /** diff --git a/src/main/java/core/rendering/RenderEngine.java b/src/main/java/core/rendering/RenderEngine.java index a6dd1a9..8b7a234 100644 --- a/src/main/java/core/rendering/RenderEngine.java +++ b/src/main/java/core/rendering/RenderEngine.java @@ -113,6 +113,10 @@ public class RenderEngine extends JPanel { this.currentCamera = currentCamera; } + public Graphics2D getG2d(){ + return g2d; + } + //-------------------------------------- public Vector2D shiftPoint(Vector2D point){ @@ -153,6 +157,15 @@ public class RenderEngine extends JPanel { drawTearDown(); } + public void drawRect(Vector2D position, Vector2D size, Color color, int rotation) { + drawSetup(position, size, color, rotation); + g2d.drawRect( + (int) sdc.abs.x, (int) sdc.abs.y, + (int) sdc.sizeAbs.x, (int) sdc.sizeAbs.y + ); + drawTearDown(); + } + private void drawSetup(Vector2D position, Vector2D size, Color color, double rotation, Object ... args){ Vector2D abs = Coordinates.getWorldCoordinates(shiftPoint(position)); Vector2D sizeAbs = Coordinates.getWorldCoordinates(scaleSize(size)); @@ -169,6 +182,7 @@ public class RenderEngine extends JPanel { sdc = null; //to avoid any drawing errors, might be changed at some point } + /** * Holds all information about a shape to be drawn */ @@ -180,10 +194,6 @@ public class RenderEngine extends JPanel { public double rotation; public Object[] args; - public ShapeDrawContainer(Vector2D abs, Vector2D sizeAbs, Vector2D centerAbs, Color color, double rotation) { - this(abs, sizeAbs, centerAbs, color, rotation, null); - } - public ShapeDrawContainer(Vector2D abs, Vector2D sizeAbs, Vector2D centerAbs, Color color, double rotation, Object ... args) { this.abs = abs; this.sizeAbs = sizeAbs; diff --git a/src/main/java/core/rendering/renderer/CircleRenderer.java b/src/main/java/core/rendering/renderer/CircleRenderer.java index 5dadfd5..a6f49b1 100644 --- a/src/main/java/core/rendering/renderer/CircleRenderer.java +++ b/src/main/java/core/rendering/renderer/CircleRenderer.java @@ -27,7 +27,7 @@ public class CircleRenderer extends Renderer { } @Override - public void draw(Graphics2D g2d) { + public void draw() { re.fillOval(object.getMapPosition(), new Vector2D(2 * radius, 2 * radius), color, object.getRotation()); } } diff --git a/src/main/java/core/rendering/renderer/ComplexRenderer.java b/src/main/java/core/rendering/renderer/ComplexRenderer.java index 76d5a69..5a4d036 100644 --- a/src/main/java/core/rendering/renderer/ComplexRenderer.java +++ b/src/main/java/core/rendering/renderer/ComplexRenderer.java @@ -2,7 +2,6 @@ package core.rendering.renderer; import core.objects.core.GameObject; -import java.awt.*; import java.util.ArrayList; import java.util.Arrays; @@ -12,7 +11,7 @@ import java.util.Arrays; */ public class ComplexRenderer extends Renderer{ - private ArrayList renderers; + private final ArrayList renderers; public ComplexRenderer (GameObject object, Renderer ... renderers){ super(null, object); @@ -20,7 +19,7 @@ public class ComplexRenderer extends Renderer{ } @Override - public void draw(Graphics2D g2d) { - renderers.forEach(e -> e.draw(g2d)); + public void draw() { + renderers.forEach(e -> e.draw()); } } diff --git a/src/main/java/core/rendering/renderer/EmptyRenderer.java b/src/main/java/core/rendering/renderer/EmptyRenderer.java index b9fd586..410cc21 100644 --- a/src/main/java/core/rendering/renderer/EmptyRenderer.java +++ b/src/main/java/core/rendering/renderer/EmptyRenderer.java @@ -2,8 +2,6 @@ package core.rendering.renderer; import core.objects.core.GameObject; -import java.awt.*; - /** * A filler {@code Renderer} that does nothing */ @@ -19,6 +17,6 @@ public class EmptyRenderer extends Renderer{ } @Override - public void draw(Graphics2D g2d) { + public void draw() { } } diff --git a/src/main/java/core/rendering/renderer/RectRenderer.java b/src/main/java/core/rendering/renderer/RectRenderer.java index 814530b..f88a180 100644 --- a/src/main/java/core/rendering/renderer/RectRenderer.java +++ b/src/main/java/core/rendering/renderer/RectRenderer.java @@ -15,7 +15,7 @@ public class RectRenderer extends Renderer{ } @Override - public void draw(Graphics2D g2d) { + public void draw() { re.fillRect(object.getMapPosition(), size, color, object.getRotation()); } } diff --git a/src/main/java/core/rendering/renderer/Renderer.java b/src/main/java/core/rendering/renderer/Renderer.java index bd5c1bf..8645921 100644 --- a/src/main/java/core/rendering/renderer/Renderer.java +++ b/src/main/java/core/rendering/renderer/Renderer.java @@ -30,9 +30,8 @@ public abstract class Renderer implements Drawable { /** * This method is called on every renderer for every {@code GameObject} - * @param g2d the {@code Graphics2D} object */ - public abstract void draw(Graphics2D g2d); + public abstract void draw(); @Override public int getLayer() { diff --git a/src/main/java/core/rendering/renderer/RoundRectRenderer.java b/src/main/java/core/rendering/renderer/RoundRectRenderer.java index 4a7a368..fda9b2b 100644 --- a/src/main/java/core/rendering/renderer/RoundRectRenderer.java +++ b/src/main/java/core/rendering/renderer/RoundRectRenderer.java @@ -1,7 +1,6 @@ package core.rendering.renderer; import core.general.Master; -import core.math.Coordinates; import core.math.Vector2D; import core.objects.core.GameObject; @@ -22,7 +21,7 @@ public class RoundRectRenderer extends Renderer { } @Override - public void draw(Graphics2D g2d) { + public void draw() { re.fillRoundRect(object.getMapPosition(), size, new Vector2D(cornerFactorX, cornerFactorY), color, object.getRotation()); } } diff --git a/src/main/java/custom/Init.java b/src/main/java/custom/Init.java index 8009668..fac5a7d 100644 --- a/src/main/java/custom/Init.java +++ b/src/main/java/custom/Init.java @@ -18,7 +18,7 @@ import java.awt.*; */ public class Init { - public static final boolean DEBUG_MODE = false; + public static final boolean DEBUG_MODE = true; /** * Create a new GameObject diff --git a/src/main/java/custom/objects/ships/Turret.java b/src/main/java/custom/objects/ships/Turret.java index e054172..1abb084 100644 --- a/src/main/java/custom/objects/ships/Turret.java +++ b/src/main/java/custom/objects/ships/Turret.java @@ -33,7 +33,8 @@ public class Turret extends GameObject { setRenderer(new CustomRenderer(mainColor, this) { @Override - public void draw(Graphics2D g2d) { + public void draw() { + Graphics2D g2d = re.getG2d(); g2d.setPaint(mainColor); Vector2D abs = getWorldCoordsFromLocal(position); int sizeAbs = (int) Coordinates.getWorldCoordinates(object.getSize()).x; diff --git a/src/main/java/custom/objects/world/Grid.java b/src/main/java/custom/objects/world/Grid.java index b543fe0..d12cbc6 100644 --- a/src/main/java/custom/objects/world/Grid.java +++ b/src/main/java/custom/objects/world/Grid.java @@ -17,7 +17,8 @@ public class Grid extends GameObject { super(Vector2D.zero(), Vector2D.zero()); setRenderer(new CustomRenderer(mainColor, this) { @Override - public void draw(Graphics2D g2d) { + public void draw() { + Graphics2D g2d = re.getG2d(); g2d.setPaint(Color.LIGHT_GRAY); int w = master.getW();