Extract some interfaces from :engine to :api

This commit is contained in:
2021-03-03 13:36:14 +01:00
parent 6d5c9388f7
commit 403453efba
60 changed files with 316 additions and 161 deletions

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.context;
package com.bartlomiejpluta.base.api.game.context;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import org.joml.Vector2f;
public interface Context {

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.entity;
package com.bartlomiejpluta.base.api.game.entity;
import org.joml.Vector2i;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.entity;
package com.bartlomiejpluta.base.api.game.entity;
import org.joml.Vector2f;
import org.joml.Vector2i;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.entity;
package com.bartlomiejpluta.base.api.game.entity;
import org.joml.Vector2i;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.input;
package com.bartlomiejpluta.base.api.game.input;
public enum Key {
KEY_SPACE,

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.input;
package com.bartlomiejpluta.base.api.game.input;
public interface Keyboard {
boolean isKeyPressed(Key key);

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.map;
package com.bartlomiejpluta.base.api.game.map;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.entity.Movement;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import com.bartlomiejpluta.base.api.game.entity.Movement;
import org.joml.Vector2f;
public interface GameMap {

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.map;
package com.bartlomiejpluta.base.api.game.map;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.Keyboard;
import com.bartlomiejpluta.base.api.game.context.Context;
import com.bartlomiejpluta.base.api.game.input.Keyboard;
public interface MapHandler {
void init(Context context, GameMap map);

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.map;
package com.bartlomiejpluta.base.api.game.map;
public enum PassageAbility {
BLOCK,

View File

@@ -0,0 +1,7 @@
package com.bartlomiejpluta.base.api.game.runner;
import com.bartlomiejpluta.base.api.game.context.Context;
public interface GameRunner {
void init(Context context);
}

View File

@@ -0,0 +1,12 @@
package com.bartlomiejpluta.base.api.internal.camera;
import com.bartlomiejpluta.base.api.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.api.internal.window.Window;
import org.joml.Matrix4f;
public interface Camera extends Placeable {
Matrix4f computeViewModelMatrix(Matrix4f modelMatrix);
void render(Window window, ShaderManager shaderManager);
}

View File

@@ -0,0 +1,5 @@
package com.bartlomiejpluta.base.api.internal.gc;
public interface Cleanable {
void cleanUp();
}

View File

@@ -0,0 +1,5 @@
package com.bartlomiejpluta.base.api.internal.gc;
public interface Disposable {
void dispose();
}

View File

@@ -0,0 +1,5 @@
package com.bartlomiejpluta.base.api.internal.logic;
public interface Updatable {
void update(float dt);
}

View File

@@ -0,0 +1,27 @@
package com.bartlomiejpluta.base.api.internal.object;
import org.joml.Matrix4f;
import org.joml.Vector2f;
public interface Placeable {
Vector2f getPosition();
void setPosition(float x, float y);
void setPosition(Vector2f position);
void movePosition(float x, float y);
void movePosition(Vector2f position);
float getRotation();
void setRotation(float rotation);
void moveRotation(float rotation);
float getScaleX();
void setScaleX(float scale);
float getScaleY();
void setScaleY(float scale);
void setScale(float scale);
void setScale(float scaleX, float scaleY);
Matrix4f getModelMatrix();
}

View File

@@ -0,0 +1,8 @@
package com.bartlomiejpluta.base.api.internal.render;
import com.bartlomiejpluta.base.api.internal.camera.Camera;
import com.bartlomiejpluta.base.api.internal.window.Window;
public interface Renderable {
void render(Window window, Camera camera, ShaderManager shaderManager);
}

View File

@@ -0,0 +1,44 @@
package com.bartlomiejpluta.base.api.internal.render;
import com.bartlomiejpluta.base.api.internal.gc.Cleanable;
import org.joml.*;
public interface ShaderManager extends Cleanable {
ShaderManager createShader(String programName, String vertexShaderFilename, String fragmentShaderFilename);
ShaderManager selectShader(String programName);
ShaderManager useSelectedShader();
ShaderManager detachCurrentShader();
ShaderManager createUniform(String uniformName);
ShaderManager createUniform(String uniformName, Uniform uniform);
ShaderManager createUniforms(String uniformName, int size);
ShaderManager createUniforms(String uniformName, int size, Uniform uniform);
ShaderManager setUniform(String uniformName, int value);
ShaderManager setUniform(String uniformName, boolean value);
ShaderManager setUniform(String uniformName, float value);
ShaderManager setUniform(String uniformName, Vector2f value);
ShaderManager setUniform(String uniformName, Vector3f value);
ShaderManager setUniform(String uniformName, Vector4f value);
ShaderManager setUniform(String uniformName, Matrix3f value);
ShaderManager setUniform(String uniformName, Matrix4f value);
ShaderManager setUniform(String uniformName, Uniform uniform);
ShaderManager setUniform(String uniformName, int index, Uniform uniform);
ShaderManager setUniforms(String uniformName, Uniform[] uniforms);
}

View File

@@ -0,0 +1,40 @@
package com.bartlomiejpluta.base.api.internal.render;
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
import org.joml.*;
public interface ShaderProgram extends Disposable {
void createUniform(String uniformName);
void createUniform(String uniformName, Uniform uniform);
void createUniforms(String uniformName, int size);
void createUniforms(String uniformName, int size, Uniform uniform);
void setUniform(String uniformName, int value);
void setUniform(String uniformName, boolean value);
void setUniform(String uniformName, float value);
void setUniform(String uniformName, Vector2f value);
void setUniform(String uniformName, Vector3f value);
void setUniform(String uniformName, Vector4f value);
void setUniform(String uniformName, Matrix3f value);
void setUniform(String uniformName, Matrix4f value);
void setUniform(String uniformName, Uniform uniform);
void setUniform(String uniformName, int index, Uniform uniform);
void setUniforms(String uniformName, Uniform[] uniforms);
void use();
void detach();
}

View File

@@ -0,0 +1,7 @@
package com.bartlomiejpluta.base.api.internal.render;
public interface Uniform {
void createUniform(ShaderProgram shaderProgram, String uniformName);
void setUniform(ShaderProgram shaderProgram, String uniformName);
}

View File

@@ -0,0 +1,25 @@
package com.bartlomiejpluta.base.api.internal.window;
import org.joml.Vector2f;
public interface Window {
void init();
int getWidth();
int getHeight();
Vector2f getSize();
boolean isResized();
void setResized(boolean resized);
boolean shouldClose();
boolean isKeyPressed(int keyCode);
void update();
void clear(float r, float g, float b, float alpha);
}

View File

@@ -1,7 +0,0 @@
package com.bartlomiejpluta.base.api.runner;
import com.bartlomiejpluta.base.api.context.Context;
public interface GameRunner {
void init(Context context);
}