Use interfaces wherever it's possible in :api and :engine

This commit is contained in:
2021-03-03 23:32:10 +01:00
parent 0644815c5f
commit b80c5c4687
7 changed files with 27 additions and 11 deletions

View File

@@ -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);

View File

@@ -13,4 +13,8 @@ public interface Image extends Placeable, Renderable {
int getWidth();
int getHeight();
void setOpacity(float opacity);
float getOpacity();
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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);
}