Extract ImageLayer interface to :api
This commit is contained in:
@@ -2,11 +2,14 @@ package com.bartlomiejpluta.base.api.game.context;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
|
|
||||||
public interface Context {
|
public interface Context {
|
||||||
void openMap(String mapUid);
|
void openMap(String mapUid);
|
||||||
|
|
||||||
Entity createEntity(String entitySetUid);
|
Entity createEntity(String entitySetUid);
|
||||||
|
|
||||||
|
Image getImage(String imageUid);
|
||||||
|
|
||||||
Camera getCamera();
|
Camera getCamera();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,20 @@ import com.bartlomiejpluta.base.api.game.entity.Movement;
|
|||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
public interface GameMap {
|
public interface GameMap {
|
||||||
|
float getWidth();
|
||||||
|
|
||||||
|
float getHeight();
|
||||||
|
|
||||||
|
int getRows();
|
||||||
|
|
||||||
|
int getColumns();
|
||||||
|
|
||||||
Vector2f getSize();
|
Vector2f getSize();
|
||||||
|
|
||||||
TileLayer getTileLayer(int layerIndex);
|
TileLayer getTileLayer(int layerIndex);
|
||||||
|
|
||||||
|
ImageLayer getImageLayer(int layerIndex);
|
||||||
|
|
||||||
void addEntity(int objectLayerIndex, Entity entity);
|
void addEntity(int objectLayerIndex, Entity entity);
|
||||||
|
|
||||||
void removeEntity(int objectLayerIndex, Entity entity);
|
void removeEntity(int objectLayerIndex, Entity entity);
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.internal.object.Placeable;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
|
|
||||||
|
public interface Image extends Placeable, Renderable {
|
||||||
|
int getPrimaryWidth();
|
||||||
|
|
||||||
|
int getPrimaryHeight();
|
||||||
|
|
||||||
|
int getFactor();
|
||||||
|
|
||||||
|
int getWidth();
|
||||||
|
|
||||||
|
int getHeight();
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
|
public interface ImageLayer extends Layer {
|
||||||
|
void setImage(Image image);
|
||||||
|
|
||||||
|
void setOpacity(float opacity);
|
||||||
|
|
||||||
|
void setPosition(float x, float y);
|
||||||
|
|
||||||
|
void setMode(ImageLayerMode mode);
|
||||||
|
|
||||||
|
void setScale(float scaleX, float scaleY);
|
||||||
|
|
||||||
|
void setParallax(boolean parallax);
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.image;
|
package com.bartlomiejpluta.base.api.game.map;
|
||||||
|
|
||||||
public enum ImageLayerMode {
|
public enum ImageLayerMode {
|
||||||
NORMAL,
|
NORMAL,
|
||||||
@@ -3,6 +3,7 @@ package com.bartlomiejpluta.base.engine.project.model;
|
|||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
import com.bartlomiejpluta.base.api.game.map.MapHandler;
|
import com.bartlomiejpluta.base.api.game.map.MapHandler;
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.window.Window;
|
||||||
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
@@ -57,6 +58,11 @@ public class RenderableContext implements Context, Updatable, Renderable {
|
|||||||
return entityManager.createEntity(entitySetUid);
|
return entityManager.createEntity(entitySetUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Image getImage(String imageUid) {
|
||||||
|
return imageManager.loadObject(imageUid);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Camera getCamera() {
|
public Camera getCamera() {
|
||||||
return camera;
|
return camera;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.image.manager;
|
package com.bartlomiejpluta.base.engine.world.image.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.texture.TextureManager;
|
import com.bartlomiejpluta.base.engine.core.gl.object.texture.TextureManager;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
@@ -7,7 +8,7 @@ import com.bartlomiejpluta.base.engine.project.config.ProjectConfiguration;
|
|||||||
import com.bartlomiejpluta.base.engine.util.math.MathUtil;
|
import com.bartlomiejpluta.base.engine.util.math.MathUtil;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
import com.bartlomiejpluta.base.engine.world.image.model.DefaultImage;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -51,7 +52,7 @@ public class DefaultImageManager implements ImageManager {
|
|||||||
var material = Material.textured(texture);
|
var material = Material.textured(texture);
|
||||||
log.info("Creating new image on asset with UID: [{}]", uid);
|
log.info("Creating new image on asset with UID: [{}]", uid);
|
||||||
|
|
||||||
return new Image(mesh, material, initialWidth, initialHeight, gcd);
|
return new DefaultImage(mesh, material, initialWidth, initialHeight, gcd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.image.manager;
|
package com.bartlomiejpluta.base.engine.world.image.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
import com.bartlomiejpluta.base.engine.common.manager.AssetManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
import com.bartlomiejpluta.base.engine.world.image.asset.ImageAsset;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
|
||||||
|
|
||||||
public interface ImageManager extends AssetManager<ImageAsset, Image>, Cleanable {
|
public interface ImageManager extends AssetManager<ImageAsset, Image>, Cleanable {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.bartlomiejpluta.base.engine.world.image.model;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
|
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||||
|
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||||
|
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class DefaultImage extends Sprite implements Image {
|
||||||
|
private final int primaryWidth;
|
||||||
|
private final int primaryHeight;
|
||||||
|
private final int factor;
|
||||||
|
private final int width;
|
||||||
|
private final int height;
|
||||||
|
|
||||||
|
public DefaultImage(Mesh mesh, Material texture, int primaryWidth, int primaryHeight, int factor) {
|
||||||
|
super(mesh, texture);
|
||||||
|
this.primaryWidth = primaryWidth;
|
||||||
|
this.primaryHeight = primaryHeight;
|
||||||
|
this.factor = factor;
|
||||||
|
|
||||||
|
this.width = primaryWidth * factor;
|
||||||
|
this.height = primaryHeight * factor;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.image.model;
|
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
public class Image extends Sprite {
|
|
||||||
private final int initialWidth;
|
|
||||||
private final int initialHeight;
|
|
||||||
private final int gcd;
|
|
||||||
|
|
||||||
public Image(Mesh mesh, Material texture, int initialWidth, int initialHeight, int gcd) {
|
|
||||||
super(mesh, texture);
|
|
||||||
this.initialWidth = initialWidth;
|
|
||||||
this.initialHeight = initialHeight;
|
|
||||||
this.gcd = gcd;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
package com.bartlomiejpluta.base.engine.world.map.layer.image;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.GameMap;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.Image;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.ImageLayer;
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.ImageLayerMode;
|
||||||
|
import com.bartlomiejpluta.base.api.game.window.Window;
|
||||||
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
|
import com.bartlomiejpluta.base.engine.world.image.model.DefaultImage;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
public class DefaultImageLayer implements ImageLayer {
|
||||||
|
private final float mapWidth;
|
||||||
|
private final float mapHeight;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Getter
|
||||||
|
private DefaultImage image;
|
||||||
|
private float imagePrimaryWidth;
|
||||||
|
private float imagePrimaryHeight;
|
||||||
|
|
||||||
|
private float x;
|
||||||
|
private float y;
|
||||||
|
private float scaleX;
|
||||||
|
private float scaleY;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private ImageLayerMode mode;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private float opacity;
|
||||||
|
|
||||||
|
@Setter
|
||||||
|
private boolean parallax;
|
||||||
|
|
||||||
|
public DefaultImageLayer(GameMap map, Image image, float opacity, float x, float y, float scaleX, float scaleY, ImageLayerMode mode, boolean parallax) {
|
||||||
|
this.mapWidth = map.getWidth();
|
||||||
|
this.mapHeight = map.getHeight();
|
||||||
|
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
|
||||||
|
this.scaleX = scaleX;
|
||||||
|
this.scaleY = scaleY;
|
||||||
|
|
||||||
|
this.mode = mode;
|
||||||
|
this.parallax = parallax;
|
||||||
|
this.opacity = opacity;
|
||||||
|
|
||||||
|
setImage(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void recalculate() {
|
||||||
|
switch (mode) {
|
||||||
|
case NORMAL -> image.setScale(image.getWidth() * scaleX, image.getHeight() * scaleY);
|
||||||
|
case FIT_MAP -> image.setScale(mapWidth / imagePrimaryWidth, mapHeight / imagePrimaryHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode == ImageLayerMode.NORMAL) {
|
||||||
|
System.out.printf("%d * %f, %d * %f", image.getWidth(), scaleX, image.getHeight(), scaleY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setImage(Image image) {
|
||||||
|
this.image = (DefaultImage) image;
|
||||||
|
this.imagePrimaryWidth = image.getPrimaryWidth();
|
||||||
|
this.imagePrimaryHeight = image.getPrimaryHeight();
|
||||||
|
|
||||||
|
this.image.setPosition(x, y);
|
||||||
|
|
||||||
|
this.image.getMaterial().setAlpha(opacity);
|
||||||
|
|
||||||
|
recalculate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOpacity(float opacity) {
|
||||||
|
this.opacity = opacity;
|
||||||
|
|
||||||
|
this.image.getMaterial().setAlpha(opacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPosition(float x, float y) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMode(ImageLayerMode mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
|
||||||
|
recalculate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScale(float scaleX, float scaleY) {
|
||||||
|
this.x = scaleX;
|
||||||
|
this.y = scaleY;
|
||||||
|
|
||||||
|
recalculate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(float dt) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
||||||
|
if (image != null) {
|
||||||
|
if (parallax) {
|
||||||
|
var cameraPosition = camera.getPosition();
|
||||||
|
image.setPosition(cameraPosition.x + x, cameraPosition.y + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode == ImageLayerMode.FIT_SCREEN) {
|
||||||
|
image.setScale(window.getWidth() / imagePrimaryWidth, window.getHeight() / imagePrimaryHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
image.render(window, camera, shaderManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.layer.image;
|
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
|
||||||
import com.bartlomiejpluta.base.api.game.map.Layer;
|
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
|
||||||
import lombok.NonNull;
|
|
||||||
|
|
||||||
public class ImageLayer implements Layer {
|
|
||||||
private final float mapWidth;
|
|
||||||
private final float mapHeight;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
private Image image;
|
|
||||||
private float imageInitialWidth;
|
|
||||||
private float imageInitialHeight;
|
|
||||||
private float gcd;
|
|
||||||
|
|
||||||
private float x;
|
|
||||||
private float y;
|
|
||||||
private float scaleX;
|
|
||||||
private float scaleY;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
private ImageLayerMode mode;
|
|
||||||
|
|
||||||
private boolean parallax;
|
|
||||||
|
|
||||||
public ImageLayer(DefaultGameMap map, Image image, float opacity, float x, float y, float scaleX, float scaleY, ImageLayerMode mode, boolean parallax) {
|
|
||||||
this.mapWidth = map.getWidth();
|
|
||||||
this.mapHeight = map.getHeight();
|
|
||||||
|
|
||||||
this.image = image;
|
|
||||||
this.imageInitialWidth = image.getInitialWidth();
|
|
||||||
this.imageInitialHeight = image.getInitialHeight();
|
|
||||||
this.gcd = image.getGcd();
|
|
||||||
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.scaleX = scaleX;
|
|
||||||
this.scaleY = scaleY;
|
|
||||||
this.mode = mode;
|
|
||||||
this.parallax = parallax;
|
|
||||||
|
|
||||||
this.image.getMaterial().setAlpha(opacity);
|
|
||||||
this.image.setPosition(x, y);
|
|
||||||
|
|
||||||
switch (mode) {
|
|
||||||
case NORMAL -> image.setScale(mapWidth / imageInitialWidth, mapHeight / imageInitialHeight);
|
|
||||||
case FIT_MAP -> image.setScale(image.getGcd() * imageInitialWidth * scaleX, image.getGcd() * imageInitialHeight * scaleY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render(Window window, Camera camera, ShaderManager shaderManager) {
|
|
||||||
if (image != null) {
|
|
||||||
if (parallax) {
|
|
||||||
var cameraPosition = camera.getPosition();
|
|
||||||
image.setPosition(cameraPosition.x + x, cameraPosition.y + y);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == ImageLayerMode.FIT_SCREEN) {
|
|
||||||
image.setScale(window.getWidth() / imageInitialWidth, window.getHeight() / imageInitialHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
image.render(window, camera, shaderManager);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(float dt) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,20 +3,15 @@ package com.bartlomiejpluta.base.engine.world.map.model;
|
|||||||
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
import com.bartlomiejpluta.base.api.game.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
import com.bartlomiejpluta.base.api.game.entity.Movement;
|
||||||
import com.bartlomiejpluta.base.api.game.map.GameMap;
|
import com.bartlomiejpluta.base.api.game.map.*;
|
||||||
import com.bartlomiejpluta.base.api.game.map.Layer;
|
|
||||||
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
|
||||||
import com.bartlomiejpluta.base.api.game.map.TileLayer;
|
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.window.Window;
|
||||||
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.Image;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.color.ColorLayer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.color.ColorLayer;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.image.ImageLayer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.image.DefaultImageLayer;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.image.ImageLayerMode;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.tile.DefaultTileLayer;
|
import com.bartlomiejpluta.base.engine.world.map.layer.tile.DefaultTileLayer;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
import com.bartlomiejpluta.base.engine.world.tileset.model.TileSet;
|
||||||
@@ -88,6 +83,11 @@ public class DefaultGameMap implements Renderable, Updatable, GameMap {
|
|||||||
return (TileLayer) layers.get(layerIndex);
|
return (TileLayer) layers.get(layerIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ImageLayer getImageLayer(int layerIndex) {
|
||||||
|
return (ImageLayer) layers.get(layerIndex);
|
||||||
|
}
|
||||||
|
|
||||||
public int createObjectLayer() {
|
public int createObjectLayer() {
|
||||||
var passageMap = new PassageAbility[rows][columns];
|
var passageMap = new PassageAbility[rows][columns];
|
||||||
for (int i = 0; i < rows; ++i) {
|
for (int i = 0; i < rows; ++i) {
|
||||||
@@ -112,10 +112,11 @@ public class DefaultGameMap implements Renderable, Updatable, GameMap {
|
|||||||
return layers.size() - 1;
|
return layers.size() - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int createImageLayer(Image image, float opacity, float x, float y, float scaleX, float scaleY, ImageLayerMode mode, boolean parallax) {
|
public ImageLayer createImageLayer(Image image, float opacity, float x, float y, float scaleX, float scaleY, ImageLayerMode mode, boolean parallax) {
|
||||||
layers.add(new ImageLayer(this, image, opacity, x, y, scaleX, scaleY, mode, parallax));
|
var layer = new DefaultImageLayer(this, image, opacity, x, y, scaleX, scaleY, mode, parallax);
|
||||||
|
layers.add(layer);
|
||||||
|
|
||||||
return layers.size() - 1;
|
return layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.map.serial;
|
package com.bartlomiejpluta.base.engine.world.map.serial;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.map.ImageLayerMode;
|
||||||
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.map.layer.image.ImageLayerMode;
|
|
||||||
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
import com.bartlomiejpluta.base.engine.world.map.model.DefaultGameMap;
|
||||||
import com.bartlomiejpluta.base.engine.world.tileset.manager.TileSetManager;
|
import com.bartlomiejpluta.base.engine.world.tileset.manager.TileSetManager;
|
||||||
import com.bartlomiejpluta.base.proto.GameMapProto;
|
import com.bartlomiejpluta.base.proto.GameMapProto;
|
||||||
|
|||||||
Reference in New Issue
Block a user