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;
|
||||
|
||||
public interface Entity extends Placeable, Renderable, Updatable {
|
||||
void setStepSize(float x, float y);
|
||||
|
||||
Vector2i getCoordinates();
|
||||
|
||||
void setCoordinates(Vector2i coordinates);
|
||||
|
||||
@@ -13,4 +13,8 @@ public interface Image extends Placeable, Renderable {
|
||||
int getWidth();
|
||||
|
||||
int getHeight();
|
||||
|
||||
void setOpacity(float opacity);
|
||||
|
||||
float getOpacity();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user