From 928fde6c5d3f685531fc7353c490cc946445d7e4 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Fri, 4 Mar 2022 13:27:22 +0100 Subject: [PATCH 1/2] - Very important commit --- src/main/java/com/yes/yes/ui/BuildItem.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/yes/yes/ui/BuildItem.java b/src/main/java/com/yes/yes/ui/BuildItem.java index b621933..6d2927d 100644 --- a/src/main/java/com/yes/yes/ui/BuildItem.java +++ b/src/main/java/com/yes/yes/ui/BuildItem.java @@ -1,6 +1,5 @@ package com.yes.yes.ui; -import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.EntityRegistry; import com.yes.yes.world.Chunk; import javafx.scene.Node; From 1ad3cca09f97d31e87886a534c12c31666626258 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Fri, 4 Mar 2022 19:12:37 +0100 Subject: [PATCH 2/2] Add ability to change the amount of loaded chunks more easily --- .../com/yes/yes/managers/PlayerManager.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/yes/yes/managers/PlayerManager.java b/src/main/java/com/yes/yes/managers/PlayerManager.java index f31ccc4..adcbb23 100644 --- a/src/main/java/com/yes/yes/managers/PlayerManager.java +++ b/src/main/java/com/yes/yes/managers/PlayerManager.java @@ -1,6 +1,5 @@ package com.yes.yes.managers; -import com.yes.yes.entities.machines.TestMachine; import com.yes.yes.ui.BuildBox; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Coordinate; @@ -14,14 +13,12 @@ import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; -import java.lang.reflect.InvocationTargetException; - public class PlayerManager { - final KeyCombination leftKey = new KeyCodeCombination(KeyCode.A); - final KeyCombination rightKey = new KeyCodeCombination(KeyCode.D); - final KeyCombination upKey = new KeyCodeCombination(KeyCode.W); - final KeyCombination downKey = new KeyCodeCombination(KeyCode.S); + static final KeyCombination LEFT_KEY = new KeyCodeCombination(KeyCode.A); + static final KeyCombination RIGHT_KEY = new KeyCodeCombination(KeyCode.D); + static final KeyCombination UP_KEY = new KeyCodeCombination(KeyCode.W); + static final KeyCombination DOWN_KEY = new KeyCodeCombination(KeyCode.S); World world; BuildBox buildBox; @@ -61,54 +58,57 @@ public class PlayerManager { } void ProcessKeyPress(KeyEvent key) { - if (leftKey.match(key)) { + if (LEFT_KEY.match(key)) { world.setTranslateX(world.getTranslateX() + 45); } - if (rightKey.match(key)) { + if (RIGHT_KEY.match(key)) { world.setTranslateX(world.getTranslateX() - 45); } - if (upKey.match(key)) { + if (UP_KEY.match(key)) { world.setTranslateY(world.getTranslateY() + 45); } - if (downKey.match(key)) { + if (DOWN_KEY.match(key)) { world.setTranslateY(world.getTranslateY() - 45); } double offset = Chunk.CHUNK_SIZE * Chunk.ENTITY_SIZE; - //NOTE: WHAT??? + //TODO: Calculate amount of chunks based on window size + + int loadedChunksX = 5; + int loadedChunksY = 5; int chunkX = -(int) Math.floor((world.getTranslateX() + offset) / Chunk.CHUNK_SIZE / Chunk.ENTITY_SIZE); int chunkY = -(int) Math.floor((world.getTranslateY() + offset) / Chunk.CHUNK_SIZE / Chunk.ENTITY_SIZE); if (chunkX < chunkPos.x) { - for (int i = 0; i < 6; i++) { + for (int i = 0; i < loadedChunksY; i++) { world.load(new Coordinate(chunkX, chunkY + i)); - world.unload(new Coordinate(chunkPos.x + 5, chunkY + i)); + world.unload(new Coordinate(chunkPos.x + loadedChunksX - 1, chunkY + i)); } } if (chunkX > chunkPos.x) { - for (int i = 0; i < 6; i++) { - world.load(new Coordinate(chunkX + 5, chunkY + i)); + for (int i = 0; i < loadedChunksY; i++) { + world.load(new Coordinate(chunkX + loadedChunksX - 1, chunkY + i)); world.unload(new Coordinate(chunkPos.x, chunkY + i)); } } if (chunkY > chunkPos.y) { - for (int i = 0; i < 6; i++) { - world.load(new Coordinate(chunkX + i, chunkY + 5)); + for (int i = 0; i < loadedChunksX; i++) { + world.load(new Coordinate(chunkX + i, chunkY + loadedChunksY - 1)); world.unload(new Coordinate(chunkX + i, chunkPos.y)); } } if (chunkY < chunkPos.y) { - for (int i = 0; i < 6; i++) { + for (int i = 0; i < loadedChunksX; i++) { world.load(new Coordinate(chunkX + i, chunkY)); - world.unload(new Coordinate(chunkX + i, chunkPos.y + 5)); + world.unload(new Coordinate(chunkX + i, chunkPos.y + loadedChunksY - 1)); } }