From 37a63e10b05bfa2ce6813a2fc8950bc9d53c98d8 Mon Sep 17 00:00:00 2001 From: Hannes Frommann Date: Sat, 9 Aug 2025 00:06:11 +0200 Subject: [PATCH] WIP: Fastbridge --- .../minigames/instance/game/GameList.java | 4 +++- .../types/fastbridge/Fastbridge.java | 19 +++++++++++++++ .../fastbridge/FastbridgeChunkgenerator.java | 23 +++++++++++++++++++ .../types/fastbridge/FastbridgeFactory.java | 22 ++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/Fastbridge.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeChunkgenerator.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeFactory.java diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java index 6fc6d6d..00ab4ac 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/GameList.java @@ -8,6 +8,7 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.types.backrooms.Backroo import eu.mhsl.minenet.minigames.instance.game.stateless.types.bedwars.BedwarsFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.acidRain.AcidRainFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.deathcube.DeathcubeFactory; +import eu.mhsl.minenet.minigames.instance.game.stateless.types.fastbridge.FastbridgeFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.highGround.HighGroundFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.jumpDive.JumpDiveFactory; import eu.mhsl.minenet.minigames.instance.game.stateless.types.minerun.MinerunFactory; @@ -36,7 +37,8 @@ public enum GameList { SPLEEF(new SpleefFactory(), GameType.PVP), JUMPDIVE(new JumpDiveFactory(), GameType.JUMPNRUN), SUMO(new SumoFactory(), GameType.PVP), - HIGHGROUND(new HighGroundFactory(), GameType.PVP); + HIGHGROUND(new HighGroundFactory(), GameType.PVP), + FASTBRIDGE(new FastbridgeFactory(), GameType.PROTOTYPE); private final GameFactory factory; private final GameType type; diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/Fastbridge.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/Fastbridge.java new file mode 100644 index 0000000..aafbdda --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/Fastbridge.java @@ -0,0 +1,19 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.fastbridge; + +import eu.mhsl.minenet.minigames.instance.Dimension; +import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame; +import eu.mhsl.minenet.minigames.score.PointsWinScore; +import net.minestom.server.coordinate.Pos; + +public class Fastbridge extends StatelessGame { + + public Fastbridge() { + super(Dimension.OVERWORLD.key, "Fastbridge", new PointsWinScore()); + this.setGenerator(new FastbridgeChunkgenerator()); + } + + @Override + public Pos getSpawn() { + return new Pos(0, 3, 0); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeChunkgenerator.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeChunkgenerator.java new file mode 100644 index 0000000..484047f --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeChunkgenerator.java @@ -0,0 +1,23 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.fastbridge; + +import net.minestom.server.instance.block.Block; +import net.minestom.server.instance.generator.GenerationUnit; +import net.minestom.server.instance.generator.Generator; +import org.jetbrains.annotations.NotNull; + +public class FastbridgeChunkgenerator implements Generator { + @Override + public void generate(@NotNull GenerationUnit unit) { + //unit.modifier().fill(unit.absoluteStart(), unit.absoluteEnd().withY(2), Block.GRASS_BLOCK); + if (unit.absoluteStart().chunkX() != 1 && unit.absoluteStart().chunkX() != 3) return; + if (unit.absoluteStart().chunkZ() % 2 == 0) { + unit.modifier().fill(Block.BARRIER); + return; + } + for (int x = 5; x <= 10; x++){ + for (int z = 5; z <= 10; z++){ + unit.modifier().setRelative(x, 2, z,Block.GRASS_BLOCK); + } + } + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeFactory.java new file mode 100644 index 0000000..3dde0ce --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/fastbridge/FastbridgeFactory.java @@ -0,0 +1,22 @@ +package eu.mhsl.minenet.minigames.instance.game.stateless.types.fastbridge; + +import eu.mhsl.minenet.minigames.instance.game.Game; +import eu.mhsl.minenet.minigames.instance.game.stateless.config.GameFactory; +import eu.mhsl.minenet.minigames.instance.game.stateless.config.Option; +import eu.mhsl.minenet.minigames.instance.room.Room; +import eu.mhsl.minenet.minigames.message.component.TranslatedComponent; + +import java.util.Map; + +public class FastbridgeFactory implements GameFactory { + + @Override + public TranslatedComponent name() { + return TranslatedComponent.byId("game_Fastbridge#name"); + } + + @Override + public Game manufacture(Room parent, Map> configuration) throws Exception { + return new Fastbridge(); + } +}