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