Skip to content
Snippets Groups Projects
WorldEntity.java 904 B
package lab.game;

import java.io.Serial;
import java.io.Serializable;

import javafx.scene.canvas.GraphicsContext;

public abstract  class WorldEntity implements DrawableSimulable, Serializable {

	@Serial
	private static final long serialVersionUID = 2626363250832813659L;
	
	protected transient final Level level;
	protected MyPoint position;
	private int zIndex;

	public WorldEntity(Level level, MyPoint position) {
		this.level = level;
		this.position = position;
		zIndex = 0;
	}

	public WorldEntity(Level level, MyPoint position, int zIndex) {
		this.level = level;
		this.position = position;
		this.zIndex = zIndex;
	}

	@Override
	public final void draw(GraphicsContext gc) {
		gc.save();
		drawInternal(gc);
		gc.restore();
	}

	public abstract void drawInternal(GraphicsContext gc);

	public MyPoint getPosition() {
		return position;
	}

	public int getZIndex() {
		return zIndex;
	}
	
}