Use interfaces wherever it's possible in :api and :engine
This commit is contained in:
@@ -6,6 +6,8 @@ import com.bartlomiejpluta.base.api.internal.render.Renderable;
|
|||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
|
|
||||||
public interface Entity extends Placeable, Renderable, Updatable {
|
public interface Entity extends Placeable, Renderable, Updatable {
|
||||||
|
void setStepSize(float x, float y);
|
||||||
|
|
||||||
Vector2i getCoordinates();
|
Vector2i getCoordinates();
|
||||||
|
|
||||||
void setCoordinates(Vector2i coordinates);
|
void setCoordinates(Vector2i coordinates);
|
||||||
|
|||||||
@@ -13,4 +13,8 @@ public interface Image extends Placeable, Renderable {
|
|||||||
int getWidth();
|
int getWidth();
|
||||||
|
|
||||||
int getHeight();
|
int getHeight();
|
||||||
|
|
||||||
|
void setOpacity(float opacity);
|
||||||
|
|
||||||
|
float getOpacity();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
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.mesh.Mesh;
|
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||||
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
import com.bartlomiejpluta.base.engine.util.mesh.MeshManager;
|
||||||
@@ -19,7 +20,7 @@ public class DefaultEntityManager implements EntityManager {
|
|||||||
private final EntitySpriteConfiguration configuration;
|
private final EntitySpriteConfiguration configuration;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DefaultEntity createEntity(String entitySetUid) {
|
public Entity createEntity(String entitySetUid) {
|
||||||
var material = entitySetManager.loadObject(entitySetUid);
|
var material = entitySetManager.loadObject(entitySetUid);
|
||||||
return new DefaultEntity(buildMesh(material), material, configuration);
|
return new DefaultEntity(buildMesh(material), material, configuration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
package com.bartlomiejpluta.base.engine.world.entity.manager;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.game.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
|
||||||
|
|
||||||
public interface EntityManager extends Cleanable {
|
public interface EntityManager extends Cleanable {
|
||||||
DefaultEntity createEntity(String entitySetUid);
|
Entity createEntity(String entitySetUid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ 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.core.gl.object.mesh.Mesh;
|
||||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class DefaultImage extends Sprite implements Image {
|
public class DefaultImage extends Sprite implements Image {
|
||||||
@@ -14,7 +15,7 @@ public class DefaultImage extends Sprite implements Image {
|
|||||||
private final int width;
|
private final int width;
|
||||||
private final int height;
|
private final int height;
|
||||||
|
|
||||||
public DefaultImage(Mesh mesh, Material texture, int primaryWidth, int primaryHeight, int factor) {
|
public DefaultImage(@NonNull Mesh mesh, @NonNull Material texture, int primaryWidth, int primaryHeight, int factor) {
|
||||||
super(mesh, texture);
|
super(mesh, texture);
|
||||||
this.primaryWidth = primaryWidth;
|
this.primaryWidth = primaryWidth;
|
||||||
this.primaryHeight = primaryHeight;
|
this.primaryHeight = primaryHeight;
|
||||||
@@ -23,4 +24,14 @@ public class DefaultImage extends Sprite implements Image {
|
|||||||
this.width = primaryWidth * factor;
|
this.width = primaryWidth * factor;
|
||||||
this.height = primaryHeight * factor;
|
this.height = primaryHeight * factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOpacity(float opacity) {
|
||||||
|
material.setAlpha(opacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getOpacity() {
|
||||||
|
return material.getColor().w;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import com.bartlomiejpluta.base.api.game.map.layer.image.ImageLayerMode;
|
|||||||
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.window.Window;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.image.model.DefaultImage;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -18,7 +17,7 @@ public class DefaultImageLayer implements ImageLayer {
|
|||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Getter
|
@Getter
|
||||||
private DefaultImage image;
|
private Image image;
|
||||||
private float imagePrimaryWidth;
|
private float imagePrimaryWidth;
|
||||||
private float imagePrimaryHeight;
|
private float imagePrimaryHeight;
|
||||||
|
|
||||||
@@ -66,13 +65,13 @@ public class DefaultImageLayer implements ImageLayer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setImage(Image image) {
|
public void setImage(Image image) {
|
||||||
this.image = (DefaultImage) image;
|
this.image = image;
|
||||||
this.imagePrimaryWidth = image.getPrimaryWidth();
|
this.imagePrimaryWidth = image.getPrimaryWidth();
|
||||||
this.imagePrimaryHeight = image.getPrimaryHeight();
|
this.imagePrimaryHeight = image.getPrimaryHeight();
|
||||||
|
|
||||||
this.image.setPosition(x, y);
|
this.image.setPosition(x, y);
|
||||||
|
|
||||||
this.image.getMaterial().setAlpha(opacity);
|
this.image.setOpacity(opacity);
|
||||||
|
|
||||||
recalculate();
|
recalculate();
|
||||||
}
|
}
|
||||||
@@ -81,7 +80,7 @@ public class DefaultImageLayer implements ImageLayer {
|
|||||||
public void setOpacity(float opacity) {
|
public void setOpacity(float opacity) {
|
||||||
this.opacity = opacity;
|
this.opacity = opacity;
|
||||||
|
|
||||||
this.image.getMaterial().setAlpha(opacity);
|
this.image.setOpacity(opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
|
|||||||
import com.bartlomiejpluta.base.api.game.map.layer.object.PassageAbility;
|
import com.bartlomiejpluta.base.api.game.map.layer.object.PassageAbility;
|
||||||
import com.bartlomiejpluta.base.api.game.window.Window;
|
import com.bartlomiejpluta.base.api.game.window.Window;
|
||||||
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
|
||||||
import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
@@ -37,7 +36,7 @@ public class DefaultObjectLayer implements ObjectLayer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addEntity(Entity entity) {
|
public void addEntity(Entity entity) {
|
||||||
((DefaultEntity) entity).setStepSize(stepSize.x, stepSize.y);
|
entity.setStepSize(stepSize.x, stepSize.y);
|
||||||
entities.add(entity);
|
entities.add(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user