mirror of
https://github.com/Noratrieb/Java2DGame.git
synced 2026-01-14 14:05:01 +01:00
removed drawable interface
This commit is contained in:
parent
adab1a4b7c
commit
667768e100
7 changed files with 13 additions and 37 deletions
|
|
@ -8,6 +8,7 @@ import core.physics.Collision;
|
||||||
import core.objects.base.DebugPos;
|
import core.objects.base.DebugPos;
|
||||||
import core.objects.core.GameObject;
|
import core.objects.core.GameObject;
|
||||||
import custom.Init;
|
import custom.Init;
|
||||||
|
import core.rendering.renderer.Renderer;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
package core.objects.core;
|
package core.objects.core;
|
||||||
|
|
||||||
import core.math.Coordinates;
|
import core.math.Coordinates;
|
||||||
import core.rendering.Drawable;
|
|
||||||
import core.general.Master;
|
import core.general.Master;
|
||||||
import core.math.Vector2D;
|
import core.math.Vector2D;
|
||||||
import core.rendering.RenderEngine;
|
|
||||||
import core.rendering.renderer.Renderer;
|
import core.rendering.renderer.Renderer;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package core.physics.hitboxes;
|
package core.physics.hitboxes;
|
||||||
|
|
||||||
import core.rendering.Drawable;
|
|
||||||
import core.math.Vector2D;
|
import core.math.Vector2D;
|
||||||
|
|
||||||
public abstract class Hitbox{
|
public abstract class Hitbox{
|
||||||
|
|
|
||||||
|
|
@ -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();
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package core.rendering;
|
package core.rendering;
|
||||||
|
|
||||||
|
import core.rendering.renderer.Renderer;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -12,12 +14,12 @@ public class LayerManager {
|
||||||
/**
|
/**
|
||||||
* A {@code List} of the {@code Lists} which are the layers
|
* 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
|
* 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}
|
* Create a new {@code LayerManager}
|
||||||
|
|
@ -31,14 +33,14 @@ public class LayerManager {
|
||||||
* @param g2d
|
* @param g2d
|
||||||
*/
|
*/
|
||||||
public void drawAll(Graphics2D 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
|
* Add a new {@code Renderer} to the buffer
|
||||||
* @param d
|
* @param d
|
||||||
*/
|
*/
|
||||||
public void addToRendererBuffer(Drawable d){
|
public void addToRendererBuffer(Renderer d){
|
||||||
buffer.add(d);
|
buffer.add(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,7 +49,7 @@ public class LayerManager {
|
||||||
* Creates new render layers if the requested layer doesn't exist
|
* Creates new render layers if the requested layer doesn't exist
|
||||||
* @param d The Renderer
|
* @param d The Renderer
|
||||||
*/
|
*/
|
||||||
private void addRenderer(Drawable d) {
|
private void addRenderer(Renderer d) {
|
||||||
|
|
||||||
int layer = d.getLayer();
|
int layer = d.getLayer();
|
||||||
|
|
||||||
|
|
@ -72,7 +74,7 @@ public class LayerManager {
|
||||||
* @param d The {@code Renderer}
|
* @param d The {@code Renderer}
|
||||||
* @return {@code true} if the element exists in its layer
|
* @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);
|
return layers.get(d.getLayer()).remove(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import core.general.Master;
|
||||||
import core.math.Coordinates;
|
import core.math.Coordinates;
|
||||||
import core.math.Vector2D;
|
import core.math.Vector2D;
|
||||||
import core.objects.base.Camera;
|
import core.objects.base.Camera;
|
||||||
|
import core.rendering.renderer.Renderer;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
@ -68,7 +69,7 @@ public class RenderEngine extends JPanel {
|
||||||
* Add a {@code Renderer} to the scene. Gets added to the buffer
|
* Add a {@code Renderer} to the scene. Gets added to the buffer
|
||||||
* @param d The {@code Renderer}
|
* @param d The {@code Renderer}
|
||||||
*/
|
*/
|
||||||
public void addRenderer(Drawable d){
|
public void addRenderer(Renderer d){
|
||||||
layerManager.addToRendererBuffer(d);
|
layerManager.addToRendererBuffer(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,7 +79,7 @@ public class RenderEngine extends JPanel {
|
||||||
* @param d
|
* @param d
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean removeRenderer(Drawable d){
|
public boolean removeRenderer(Renderer d){
|
||||||
return layerManager.removeRenderer(d);
|
return layerManager.removeRenderer(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package core.rendering.renderer;
|
||||||
|
|
||||||
import core.general.Master;
|
import core.general.Master;
|
||||||
import core.objects.core.GameObject;
|
import core.objects.core.GameObject;
|
||||||
import core.rendering.Drawable;
|
|
||||||
import core.rendering.RenderEngine;
|
import core.rendering.RenderEngine;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
@ -10,7 +9,7 @@ import java.awt.*;
|
||||||
/**
|
/**
|
||||||
* The base renderer class for all renderers
|
* The base renderer class for all renderers
|
||||||
*/
|
*/
|
||||||
public abstract class Renderer implements Drawable {
|
public abstract class Renderer{
|
||||||
|
|
||||||
protected RenderEngine re;
|
protected RenderEngine re;
|
||||||
|
|
||||||
|
|
@ -33,7 +32,6 @@ public abstract class Renderer implements Drawable {
|
||||||
*/
|
*/
|
||||||
public abstract void draw();
|
public abstract void draw();
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getLayer() {
|
public int getLayer() {
|
||||||
return object.getLayer();
|
return object.getLayer();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue