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();