Migrate CRLF file endings to LF

This commit is contained in:
2021-02-10 17:16:37 +01:00
parent 98ac49cca0
commit e60add30c5
141 changed files with 4973 additions and 4978 deletions

View File

View File

@@ -1,67 +1,62 @@
package com.bartlomiejpluta.base.game.logic;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.texture.TextureManager;
import com.bartlomiejpluta.base.core.gl.render.Renderer;
import com.bartlomiejpluta.base.core.logic.GameLogic;
import com.bartlomiejpluta.base.core.ui.Window;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.animation.Animator;
import com.bartlomiejpluta.base.core.world.camera.Camera;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.core.world.movement.Direction;
import com.bartlomiejpluta.base.core.world.scene.Scene;
import com.bartlomiejpluta.base.core.world.tileset.manager.TileSetManager;
import com.bartlomiejpluta.base.game.world.entity.Entity;
import com.bartlomiejpluta.base.game.world.entity.EntityManager;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import static org.lwjgl.glfw.GLFW.*;
@Slf4j
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DefaultGameLogic implements GameLogic {
private final Renderer renderer;
private final TileSetManager tileSetManager;
private final MeshManager meshManager;
private final TextureManager textureManager;
private final EntityManager entityManager;
private final Animator animator;
private Camera camera;
private GameMap map;
private Scene scene;
private Entity player;
@Override
public void init(Window window) {
log.info("Initializing game logic");
renderer.init();
}
@Override
public void input(Window window) {
}
@Override
public void update(float dt) {
}
@Override
public void render(Window window) {
renderer.render(window, scene);
}
@Override
public void cleanUp() {
renderer.cleanUp();
scene.cleanUp();
}
}
package com.bartlomiejpluta.base.game.logic;
import com.bartlomiejpluta.base.core.error.AppException;
import com.bartlomiejpluta.base.core.gl.object.texture.TextureManager;
import com.bartlomiejpluta.base.core.gl.render.Renderer;
import com.bartlomiejpluta.base.core.image.ImageManager;
import com.bartlomiejpluta.base.core.logic.GameLogic;
import com.bartlomiejpluta.base.core.profiling.fps.FPSMonitor;
import com.bartlomiejpluta.base.core.ui.Window;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.animation.Animator;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.core.world.tileset.manager.TileSetManager;
import com.bartlomiejpluta.base.game.world.entity.manager.EntityManager;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DefaultGameLogic implements GameLogic {
private final Renderer renderer;
private final TileSetManager tileSetManager;
private final MeshManager meshManager;
private final TextureManager textureManager;
private final EntityManager entityManager;
private final ImageManager imageManager;
private final Animator animator;
private final FPSMonitor fpsMonitor;
private GameMap map;
@Override
public void init(Window window) {
log.info("Initializing game logic");
renderer.init();
throw new AppException("TODO: Everything seems to be working fine. The game engine logic is not implemented yet though...");
}
@Override
public void input(Window window) {
}
@Override
public void update(float dt) {
fpsMonitor.update(dt);
}
@Override
public void render(Window window) {
renderer.render(window, map);
}
@Override
public void cleanUp() {
log.info("There is nothing to clean up here");
}
}

View File

@@ -1,28 +1,28 @@
package com.bartlomiejpluta.base.game.world.entity.config;
import com.bartlomiejpluta.base.core.world.movement.Direction;
import lombok.Data;
import org.joml.Vector2i;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
@Data
@Configuration
@ConfigurationProperties(prefix = "app.sprite.entity")
public class EntitySpriteConfiguration {
private EntitySpriteDimensionConfiguration dimension;
private int defaultSpriteColumn;
private Map<Direction, Integer> spriteDirectionRows;
@Data
public static class EntitySpriteDimensionConfiguration {
private int rows;
private int cols;
public Vector2i asVector() {
return new Vector2i(rows, cols);
}
}
}
package com.bartlomiejpluta.base.game.world.entity.config;
import com.bartlomiejpluta.base.core.world.movement.Direction;
import lombok.Data;
import org.joml.Vector2i;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
@Data
@Configuration
@ConfigurationProperties(prefix = "app.sprite.entity")
public class EntitySpriteConfiguration {
private EntitySpriteDimensionConfiguration dimension;
private int defaultSpriteColumn;
private Map<Direction, Integer> spriteDirectionRows;
@Data
public static class EntitySpriteDimensionConfiguration {
private int rows;
private int cols;
public Vector2i asVector() {
return new Vector2i(rows, cols);
}
}
}

View File

@@ -1,38 +1,38 @@
package com.bartlomiejpluta.base.game.world.entity.manager;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DefaultEntityManager implements EntityManager {
private final MeshManager meshManager;
private final EntitySpriteConfiguration configuration;
@Override
public Entity createEntity(Material material, GameMap map) {
return new Entity(buildMesh(material), material, map.getStepSize(), configuration);
}
private Mesh buildMesh(Material material) {
var texture = material.getTexture();
var dimension = configuration.getDimension().asVector();
var spriteWidth = texture.getWidth() / (float) dimension.y;
var spriteHeight = texture.getHeight() / (float) dimension.x;
return meshManager.createQuad(spriteWidth, spriteHeight, spriteWidth / 2, spriteHeight*0.9f);
}
@Override
public void cleanUp() {
log.info("There is nothing to clean up here");
}
}
package com.bartlomiejpluta.base.game.world.entity.manager;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DefaultEntityManager implements EntityManager {
private final MeshManager meshManager;
private final EntitySpriteConfiguration configuration;
@Override
public Entity createEntity(Material material, GameMap map) {
return new Entity(buildMesh(material), material, map.getStepSize(), configuration);
}
private Mesh buildMesh(Material material) {
var texture = material.getTexture();
var dimension = configuration.getDimension().asVector();
var spriteWidth = texture.getWidth() / (float) dimension.y;
var spriteHeight = texture.getHeight() / (float) dimension.x;
return meshManager.createQuad(spriteWidth, spriteHeight, spriteWidth / 2, spriteHeight*0.9f);
}
@Override
public void cleanUp() {
log.info("There is nothing to clean up here");
}
}

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.game.world.entity.manager;
import com.bartlomiejpluta.base.core.gc.Cleanable;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
public interface EntityManager extends Cleanable {
Entity createEntity(Material material, GameMap map);
}
package com.bartlomiejpluta.base.game.world.entity.manager;
import com.bartlomiejpluta.base.core.gc.Cleanable;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.world.map.GameMap;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
public interface EntityManager extends Cleanable {
Entity createEntity(Material material, GameMap map);
}

View File

@@ -1,79 +1,79 @@
package com.bartlomiejpluta.base.game.world.entity.model;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.world.movement.Direction;
import com.bartlomiejpluta.base.core.world.movement.MovableObject;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.joml.Vector2f;
import java.util.Map;
@EqualsAndHashCode(callSuper = true)
public class Entity extends MovableObject {
private final Map<Direction, Integer> spriteDirectionRows;
private final int defaultSpriteColumn;
@Setter
private int animationSpeed = 100;
@Setter
@Getter
private Direction faceDirection;
@Override
public int getAnimationSpeed() {
return animationSpeed;
}
@Override
public boolean shouldAnimate() {
return isMoving();
}
@Override
public Vector2f[] getSpriteAnimationFramesPositions() {
var row = spriteDirectionRows.get(faceDirection);
var frames = spriteSheetDimension.y;
var array = new Vector2f[frames];
for(int column=0; column<frames; ++column) {
array[column] = new Vector2f(column, row);
}
return array;
}
@Override
protected void setDefaultAnimationFrame() {
setAnimationFrame(new Vector2f(defaultSpriteColumn, spriteDirectionRows.get(faceDirection)));
}
@Override
protected boolean move(Direction direction) {
if(super.move(direction)) {
faceDirection = direction;
return true;
}
return false;
}
public void setMovementSlowness(int slowness) {
framesToCrossOneTile = slowness;
}
public int getMovementSlowness() {
return framesToCrossOneTile;
}
public Entity(Mesh mesh, Material material, Vector2f coordinateStepSize, EntitySpriteConfiguration configuration) {
super(mesh, material, coordinateStepSize, configuration.getDimension().asVector());
this.defaultSpriteColumn = configuration.getDefaultSpriteColumn();
this.spriteDirectionRows = configuration.getSpriteDirectionRows();
this.faceDirection = Direction.DOWN;
}
}
package com.bartlomiejpluta.base.game.world.entity.model;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.world.movement.Direction;
import com.bartlomiejpluta.base.core.world.movement.MovableObject;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.joml.Vector2f;
import java.util.Map;
@EqualsAndHashCode(callSuper = true)
public class Entity extends MovableObject {
private final Map<Direction, Integer> spriteDirectionRows;
private final int defaultSpriteColumn;
@Setter
private int animationSpeed = 100;
@Setter
@Getter
private Direction faceDirection;
@Override
public int getAnimationSpeed() {
return animationSpeed;
}
@Override
public boolean shouldAnimate() {
return isMoving();
}
@Override
public Vector2f[] getSpriteAnimationFramesPositions() {
var row = spriteDirectionRows.get(faceDirection);
var frames = spriteSheetDimension.y;
var array = new Vector2f[frames];
for(int column=0; column<frames; ++column) {
array[column] = new Vector2f(column, row);
}
return array;
}
@Override
protected void setDefaultAnimationFrame() {
setAnimationFrame(new Vector2f(defaultSpriteColumn, spriteDirectionRows.get(faceDirection)));
}
@Override
protected boolean move(Direction direction) {
if(super.move(direction)) {
faceDirection = direction;
return true;
}
return false;
}
public void setMovementSlowness(int slowness) {
framesToCrossOneTile = slowness;
}
public int getMovementSlowness() {
return framesToCrossOneTile;
}
public Entity(Mesh mesh, Material material, Vector2f coordinateStepSize, EntitySpriteConfiguration configuration) {
super(mesh, material, coordinateStepSize, configuration.getDimension().asVector());
this.defaultSpriteColumn = configuration.getDefaultSpriteColumn();
this.spriteDirectionRows = configuration.getSpriteDirectionRows();
this.faceDirection = Direction.DOWN;
}
}

58
game/src/main/resources/application.yml Executable file → Normal file
View File

@@ -1,30 +1,30 @@
app:
window:
title: "Simple Game"
width: 640
height: 480
core:
targetUps: 50 # Updates per second
profiling:
aspects: false
sprite:
entity:
dimension:
rows: 4
cols: 4
default-sprite-column: 0
sprite-direction-rows:
down: 0
left: 1
right: 2
up: 3
logging:
level:
app:
window:
title: "Simple Game"
width: 640
height: 480
core:
targetUps: 50 # Updates per second
profiling:
aspects: false
sprite:
entity:
dimension:
rows: 4
cols: 4
default-sprite-column: 0
sprite-direction-rows:
down: 0
left: 1
right: 2
up: 3
logging:
level:
com.bartlomiejpluta.base.core.profiling.time.aspect.ExecutionTimeAspect: DEBUG