From 667768e100e0272aea614726b6f0407c307a3799 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Fri, 1 Jan 2021 17:38:17 +0100 Subject: [PATCH] removed drawable interface --- src/main/java/core/general/Master.java | 1 + .../java/core/objects/core/GameObject.java | 2 -- .../java/core/physics/hitboxes/Hitbox.java | 1 - src/main/java/core/rendering/Drawable.java | 23 ------------------- .../java/core/rendering/LayerManager.java | 14 ++++++----- .../java/core/rendering/RenderEngine.java | 5 ++-- .../core/rendering/renderer/Renderer.java | 4 +--- 7 files changed, 13 insertions(+), 37 deletions(-) delete mode 100644 src/main/java/core/rendering/Drawable.java diff --git a/src/main/java/core/general/Master.java b/src/main/java/core/general/Master.java index 781ce97..3a3684e 100644 --- a/src/main/java/core/general/Master.java +++ b/src/main/java/core/general/Master.java @@ -8,6 +8,7 @@ import core.physics.Collision; import core.objects.base.DebugPos; import core.objects.core.GameObject; import custom.Init; +import core.rendering.renderer.Renderer; import javax.swing.*; import java.awt.*; diff --git a/src/main/java/core/objects/core/GameObject.java b/src/main/java/core/objects/core/GameObject.java index 7e18525..6964bf9 100644 --- a/src/main/java/core/objects/core/GameObject.java +++ b/src/main/java/core/objects/core/GameObject.java @@ -1,10 +1,8 @@ package core.objects.core; import core.math.Coordinates; -import core.rendering.Drawable; import core.general.Master; import core.math.Vector2D; -import core.rendering.RenderEngine; import core.rendering.renderer.Renderer; import java.awt.*; diff --git a/src/main/java/core/physics/hitboxes/Hitbox.java b/src/main/java/core/physics/hitboxes/Hitbox.java index 2c87f24..73390e4 100644 --- a/src/main/java/core/physics/hitboxes/Hitbox.java +++ b/src/main/java/core/physics/hitboxes/Hitbox.java @@ -1,6 +1,5 @@ package core.physics.hitboxes; -import core.rendering.Drawable; import core.math.Vector2D; public abstract class Hitbox{ diff --git a/src/main/java/core/rendering/Drawable.java b/src/main/java/core/rendering/Drawable.java deleted file mode 100644 index dd04195..0000000 --- a/src/main/java/core/rendering/Drawable.java +++ /dev/null @@ -1,23 +0,0 @@ -package core.rendering; - -/** - * This interface has to be implemented by every - */ -public interface Drawable { - - /** - *

The draw method is called every frame after the update by the master object on each object. Everything - * about drawing should be handled here in this method.

- *

No general calculations should be made in this method. The game should be able to work just - * fine even without this method being called.

- *

This function is NOT intended to be called manually.

- * - */ - void draw(); - - /** - * Returns the layer of the Drawable - * @return The render layer - */ - int getLayer(); -} diff --git a/src/main/java/core/rendering/LayerManager.java b/src/main/java/core/rendering/LayerManager.java index f6b2a88..1f003e3 100644 --- a/src/main/java/core/rendering/LayerManager.java +++ b/src/main/java/core/rendering/LayerManager.java @@ -1,5 +1,7 @@ package core.rendering; +import core.rendering.renderer.Renderer; + import java.awt.*; import java.util.ArrayList; import java.util.List; @@ -12,12 +14,12 @@ public class LayerManager { /** * A {@code List} of the {@code Lists} which are the layers */ - private final List> layers; + private final List> layers; /** * The buffer of newly added Renderers */ - private final List buffer = new ArrayList<>(); + private final List buffer = new ArrayList<>(); /** * Create a new {@code LayerManager} @@ -31,14 +33,14 @@ public class LayerManager { * @param g2d */ public void drawAll(Graphics2D g2d){ - layers.forEach(e -> e.forEach(f -> f.draw())); + layers.forEach(e -> e.forEach(Renderer::draw)); } /** * Add a new {@code Renderer} to the buffer * @param d */ - public void addToRendererBuffer(Drawable d){ + public void addToRendererBuffer(Renderer d){ buffer.add(d); } @@ -47,7 +49,7 @@ public class LayerManager { * Creates new render layers if the requested layer doesn't exist * @param d The Renderer */ - private void addRenderer(Drawable d) { + private void addRenderer(Renderer d) { int layer = d.getLayer(); @@ -72,7 +74,7 @@ public class LayerManager { * @param d The {@code Renderer} * @return {@code true} if the element exists in its layer */ - public boolean removeRenderer(Drawable d) { + public boolean removeRenderer(Renderer d) { return layers.get(d.getLayer()).remove(d); } diff --git a/src/main/java/core/rendering/RenderEngine.java b/src/main/java/core/rendering/RenderEngine.java index 8b7a234..2bd82d8 100644 --- a/src/main/java/core/rendering/RenderEngine.java +++ b/src/main/java/core/rendering/RenderEngine.java @@ -4,6 +4,7 @@ import core.general.Master; import core.math.Coordinates; import core.math.Vector2D; import core.objects.base.Camera; +import core.rendering.renderer.Renderer; import javax.swing.*; import java.awt.*; @@ -68,7 +69,7 @@ public class RenderEngine extends JPanel { * Add a {@code Renderer} to the scene. Gets added to the buffer * @param d The {@code Renderer} */ - public void addRenderer(Drawable d){ + public void addRenderer(Renderer d){ layerManager.addToRendererBuffer(d); } @@ -78,7 +79,7 @@ public class RenderEngine extends JPanel { * @param d * @return */ - public boolean removeRenderer(Drawable d){ + public boolean removeRenderer(Renderer d){ return layerManager.removeRenderer(d); } diff --git a/src/main/java/core/rendering/renderer/Renderer.java b/src/main/java/core/rendering/renderer/Renderer.java index 8645921..c733d6c 100644 --- a/src/main/java/core/rendering/renderer/Renderer.java +++ b/src/main/java/core/rendering/renderer/Renderer.java @@ -2,7 +2,6 @@ package core.rendering.renderer; import core.general.Master; import core.objects.core.GameObject; -import core.rendering.Drawable; import core.rendering.RenderEngine; import java.awt.*; @@ -10,7 +9,7 @@ import java.awt.*; /** * The base renderer class for all renderers */ -public abstract class Renderer implements Drawable { +public abstract class Renderer{ protected RenderEngine re; @@ -33,7 +32,6 @@ public abstract class Renderer implements Drawable { */ public abstract void draw(); - @Override public int getLayer() { return object.getLayer(); }