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