From 075db7a91b70f8b2fa75f56c8ca4e06f9d9363b9 Mon Sep 17 00:00:00 2001
From: lars <larslukasneuhaus@gmx.de>
Date: Tue, 22 Oct 2024 21:21:00 +0200
Subject: [PATCH] added border around next and hold tetromino

---
 .../game/stateless/types/tetris/Tetris.java     |  7 +++----
 .../stateless/types/tetris/game/Playfield.java  | 17 +++++++++++++++--
 .../stateless/types/tetris/game/TetrisGame.java |  2 +-
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
index adfab17..827b4c9 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java
@@ -5,7 +5,6 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.types.tetris.game.Tetri
 import eu.mhsl.minenet.minigames.instance.Dimension;
 import eu.mhsl.minenet.minigames.instance.game.stateless.types.tetris.game.Tetromino;
 import eu.mhsl.minenet.minigames.score.PointsWinScore;
-import eu.mhsl.minenet.minigames.world.generator.terrain.CircularPlateTerrainGenerator;
 import net.kyori.adventure.text.Component;
 import net.minestom.server.coordinate.Pos;
 import net.minestom.server.coordinate.Vec;
@@ -25,7 +24,7 @@ class Tetris extends StatelessGame {
 
     public Tetris() {
         super(Dimension.THE_END.key, "Tetris", new PointsWinScore());
-        this.setGenerator(new CircularPlateTerrainGenerator(30).setPlateHeight(0));
+//        this.setGenerator(new CircularPlateTerrainGenerator(20));
 
         eventNode()
             .addListener(PlayerUseItemEvent.class, this::onPlayerInteract)
@@ -119,7 +118,7 @@ class Tetris extends StatelessGame {
         p.setSprinting(false);
 
         if(this.tetrisGames.get(p) == null) {
-            this.tetrisGames.put(p, new TetrisGame(this, getSpawn().sub(6, 8, 15).add(this.tetrisGames.size()*23, 0, 0)));
+            this.tetrisGames.put(p, new TetrisGame(this, getSpawn().sub(6, 8, 15).add(this.tetrisGames.size()*27, 0, 0)));
             this.tetrisGames.get(p).generate();
         }
         TetrisGame tetrisGame = this.tetrisGames.get(p);
@@ -132,6 +131,6 @@ class Tetris extends StatelessGame {
 
     @Override
     public Pos getSpawn() {
-        return new Pos(-50, 50, 15).withView(180, 0);
+        return new Pos(0, 30, 15).withView(180, 0);
     }
 }
diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/Playfield.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/Playfield.java
index 819f013..8eac64c 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/Playfield.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/Playfield.java
@@ -28,11 +28,11 @@ public class Playfield {
     }
 
     public Pos getHoldPosition() {
-        return this.lowerLeftCorner.add(-4, 19, 0);
+        return this.lowerLeftCorner.add(-4, 18, 1);
     }
 
     public Pos getNextPosition() {
-        return this.lowerLeftCorner.add(14, 19, 0);
+        return this.lowerLeftCorner.add(14, 18, 1);
     }
 
     public void generate() {
@@ -50,6 +50,19 @@ public class Playfield {
             }
         }
 
+        for(int x = 0; x < 6; x++) {
+            for(int y = 0; y < 6; y++) {
+                if(x==0 || x==5 || y==0 || y==5) {
+                    batch.setBlock(this.getHoldPosition().add(x-2, y-2, 0), Block.BLACK_CONCRETE);
+                    batch.setBlock(this.getNextPosition().add(x-2, y-2, 0), Block.BLACK_CONCRETE);
+                    batch.setBlock(this.getHoldPosition().add(x-2, y-2, -1), Block.BLACK_CONCRETE);
+                    batch.setBlock(this.getNextPosition().add(x-2, y-2, -1), Block.BLACK_CONCRETE);
+                }
+                batch.setBlock(this.getHoldPosition().add(x-2, y-2, -1), Block.QUARTZ_BLOCK);
+                batch.setBlock(this.getNextPosition().add(x-2, y-2, -1), Block.QUARTZ_BLOCK);
+            }
+        }
+
         batch.setBlock(getPlayerSpawnPosition().sub(0, 1, 0), Block.STONE);
 
 //        batch.setBlock(getPlayerSpawnPosition(), Block.IRON_TRAPDOOR.withProperty("half", "bottom"));
diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/TetrisGame.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/TetrisGame.java
index 928469f..6b8f921 100644
--- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/TetrisGame.java
+++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/game/TetrisGame.java
@@ -97,7 +97,7 @@ public class TetrisGame {
         this.playfield.generate();
 
         this.currentTetromino.setPosition(this.tetrominoSpawnPosition);
-        this.currentTetromino.draw();
+        this.currentTetromino.draw(false);
     }
 
     public void tick() {