From 41028e3389502968616a7e00830310c1b9f6548e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 15 Oct 2025 20:36:52 +0200 Subject: [PATCH] SpaceSnake displayBlock to Fallingblock powerup detection via boundingbox --- .../game/stateless/types/spaceSnake/SpaceSnake.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java index 5f8af96..2589e89 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java @@ -11,7 +11,7 @@ import net.kyori.adventure.sound.Sound; import net.minestom.server.MinecraftServer; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.*; -import net.minestom.server.entity.metadata.display.BlockDisplayMeta; +import net.minestom.server.entity.metadata.other.FallingBlockMeta; import net.minestom.server.event.entity.EntityTickEvent; import net.minestom.server.event.player.PlayerBlockPlaceEvent; import net.minestom.server.event.player.PlayerMoveEvent; @@ -140,8 +140,8 @@ public class SpaceSnake extends StatelessGame { private void spawnPowerUp() { Pos spawnPos = new Pos(this.posInBoundsW.get(), this.posInBoundsH.get(), this.posInBoundsW.get()); - Entity display = new Entity(EntityType.BLOCK_DISPLAY); - ((BlockDisplayMeta) display.getEntityMeta()).setBlockState(Block.DIAMOND_BLOCK); + Entity display = new Entity(EntityType.FALLING_BLOCK); + ((FallingBlockMeta) display.getEntityMeta()).setBlock(Block.DIAMOND_BLOCK); display.setGlowing(true); display.setNoGravity(true); display.setInstance(this, spawnPos); @@ -149,7 +149,10 @@ public class SpaceSnake extends StatelessGame { display.eventNode().addListener(EntityTickEvent.class, onTick -> { Player player = this.getPlayers().stream() .filter(p -> !this.getScore().hasResult(p)) - .filter(p -> p.getDistance(onTick.getEntity()) < 2.5) + .filter(p -> p.getBoundingBox() + .grow(1, 1, 1) + .intersectBox(display.getPosition().sub(p.getPosition()), display.getBoundingBox()) + ) .findAny() .orElse(null); if(player == null) return;