removed drawable interface

This commit is contained in:
nora 2021-01-01 17:38:17 +01:00
parent adab1a4b7c
commit 667768e100
7 changed files with 13 additions and 37 deletions

View file

@ -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.*;

View file

@ -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.*;

View file

@ -1,6 +1,5 @@
package core.physics.hitboxes;
import core.rendering.Drawable;
import core.math.Vector2D;
public abstract class Hitbox{

View file

@ -1,23 +0,0 @@
package core.rendering;
/**
* This interface has to be implemented by every
*/
public interface Drawable {
/**
* <p>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.</p>
* <p>No general calculations should be made in this method. The game should be able to work just
* fine even without this method being called.</p>
* <p>This function is <i>NOT</i> intended to be called manually.</p>
*
*/
void draw();
/**
* Returns the layer of the Drawable
* @return The render layer
*/
int getLayer();
}

View file

@ -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<List<Drawable>> layers;
private final List<List<Renderer>> layers;
/**
* The buffer of newly added Renderers
*/
private final List<Drawable> buffer = new ArrayList<>();
private final List<Renderer> 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);
}

View file

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

View file

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