From b80c5c4687ead70d83a888727ba3ed1474e7e888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Wed, 3 Mar 2021 23:32:10 +0100 Subject: [PATCH] Use interfaces wherever it's possible in :api and :engine --- .../base/api/game/entity/Entity.java | 2 ++ .../bartlomiejpluta/base/api/game/image/Image.java | 4 ++++ .../world/entity/manager/DefaultEntityManager.java | 3 ++- .../engine/world/entity/manager/EntityManager.java | 4 ++-- .../base/engine/world/image/model/DefaultImage.java | 13 ++++++++++++- .../world/map/layer/image/DefaultImageLayer.java | 9 ++++----- .../world/map/layer/object/DefaultObjectLayer.java | 3 +-- 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/entity/Entity.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/entity/Entity.java index 76765ac3..d9efcd77 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/game/entity/Entity.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/entity/Entity.java @@ -6,6 +6,8 @@ import com.bartlomiejpluta.base.api.internal.render.Renderable; import org.joml.Vector2i; public interface Entity extends Placeable, Renderable, Updatable { + void setStepSize(float x, float y); + Vector2i getCoordinates(); void setCoordinates(Vector2i coordinates); diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/image/Image.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/image/Image.java index 06ded747..d3f89334 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/game/image/Image.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/image/Image.java @@ -13,4 +13,8 @@ public interface Image extends Placeable, Renderable { int getWidth(); int getHeight(); + + void setOpacity(float opacity); + + float getOpacity(); } diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/DefaultEntityManager.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/DefaultEntityManager.java index 7aef1ff5..bca85189 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/DefaultEntityManager.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/DefaultEntityManager.java @@ -1,5 +1,6 @@ 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.mesh.Mesh; import com.bartlomiejpluta.base.engine.util.mesh.MeshManager; @@ -19,7 +20,7 @@ public class DefaultEntityManager implements EntityManager { private final EntitySpriteConfiguration configuration; @Override - public DefaultEntity createEntity(String entitySetUid) { + public Entity createEntity(String entitySetUid) { var material = entitySetManager.loadObject(entitySetUid); return new DefaultEntity(buildMesh(material), material, configuration); } diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/EntityManager.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/EntityManager.java index 7656cbd9..6a615da6 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/EntityManager.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/entity/manager/EntityManager.java @@ -1,8 +1,8 @@ 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.engine.world.entity.model.DefaultEntity; public interface EntityManager extends Cleanable { - DefaultEntity createEntity(String entitySetUid); + Entity createEntity(String entitySetUid); } diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/image/model/DefaultImage.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/image/model/DefaultImage.java index 879f393c..e85f229b 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/image/model/DefaultImage.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/image/model/DefaultImage.java @@ -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.world.object.Sprite; import lombok.Getter; +import lombok.NonNull; @Getter 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 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); this.primaryWidth = primaryWidth; this.primaryHeight = primaryHeight; @@ -23,4 +24,14 @@ public class DefaultImage extends Sprite implements Image { this.width = primaryWidth * factor; this.height = primaryHeight * factor; } + + @Override + public void setOpacity(float opacity) { + material.setAlpha(opacity); + } + + @Override + public float getOpacity() { + return material.getColor().w; + } } diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/image/DefaultImageLayer.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/image/DefaultImageLayer.java index c370ccc2..8192ba4e 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/image/DefaultImageLayer.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/image/DefaultImageLayer.java @@ -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.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; @@ -18,7 +17,7 @@ public class DefaultImageLayer implements ImageLayer { @NonNull @Getter - private DefaultImage image; + private Image image; private float imagePrimaryWidth; private float imagePrimaryHeight; @@ -66,13 +65,13 @@ public class DefaultImageLayer implements ImageLayer { @Override public void setImage(Image image) { - this.image = (DefaultImage) image; + this.image = image; this.imagePrimaryWidth = image.getPrimaryWidth(); this.imagePrimaryHeight = image.getPrimaryHeight(); this.image.setPosition(x, y); - this.image.getMaterial().setAlpha(opacity); + this.image.setOpacity(opacity); recalculate(); } @@ -81,7 +80,7 @@ public class DefaultImageLayer implements ImageLayer { public void setOpacity(float opacity) { this.opacity = opacity; - this.image.getMaterial().setAlpha(opacity); + this.image.setOpacity(opacity); } @Override diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/object/DefaultObjectLayer.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/object/DefaultObjectLayer.java index 24d82947..5fe6195b 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/object/DefaultObjectLayer.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/layer/object/DefaultObjectLayer.java @@ -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.window.Window; import com.bartlomiejpluta.base.api.internal.render.ShaderManager; -import com.bartlomiejpluta.base.engine.world.entity.model.DefaultEntity; import lombok.Getter; import lombok.NonNull; import org.joml.Vector2f; @@ -37,7 +36,7 @@ public class DefaultObjectLayer implements ObjectLayer { @Override public void addEntity(Entity entity) { - ((DefaultEntity) entity).setStepSize(stepSize.x, stepSize.y); + entity.setStepSize(stepSize.x, stepSize.y); entities.add(entity); }