From e4fff421f54266d7dda3575a23dfc5dea0a2ab2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 19 Sep 2025 21:41:01 +0200 Subject: [PATCH] added fastbridge terrain generator --- build.gradle | 2 +- .../types/fastbridge/Fastbridge.java | 4 +- .../fastbridge/FastbridgeChunkgenerator.java | 38 +++++++++++-------- .../featureEnriched/ValeGenerator.java | 7 +++- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index 2c39fcc..2da2d83 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ dependencies { //Tools implementation 'de.articdive:jnoise:3.0.2' - implementation 'net.md-5:bungeecord-config:1.19-R0.1-SNAPSHOT' + implementation 'net.md-5:bungeecord-config:1.21-R0.3' implementation 'org.apache.commons:commons-text:1.10.0' implementation 'org.spongepowered:configurate-yaml:4.1.2' implementation 'com.sparkjava:spark-core:2.9.4' 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 index bf2659b..2640a6a 100644 --- 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 @@ -27,7 +27,7 @@ public class Fastbridge extends StatelessGame { Player player = playerMoveEvent.getPlayer(); Pos newPos = playerMoveEvent.getNewPosition(); if(this.getScore().hasResult(player)) return; - if(newPos.y() < -65) { + if(newPos.y() < 0) { player.teleport(getSpawn()); if(!isBeforeBeginning) this.resetPlayer(player); } @@ -59,6 +59,6 @@ public class Fastbridge extends StatelessGame { @Override public synchronized Pos getSpawn() { - return new Pos(24, -60, currentSpawn++*Chunk.CHUNK_SIZE_Z*2-8, -90, 0); + return new Pos(24, 1, currentSpawn++*Chunk.CHUNK_SIZE_Z*2-8, -90, 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 index 0b7cdf0..35fd27b 100644 --- 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 @@ -1,23 +1,29 @@ package eu.mhsl.minenet.minigames.instance.game.stateless.types.fastbridge; +import eu.mhsl.minenet.minigames.world.generator.featureEnriched.ValeGenerator; +import eu.mhsl.minenet.minigames.world.generator.terrain.BaseGenerator; 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) { - if (unit.absoluteStart().chunkZ() % 2 == 0) { - unit.modifier().fill(Block.BARRIER); - return; - } - - if (unit.absoluteStart().chunkX() != 1 && unit.absoluteStart().chunkX() != 3) return; - for (int x = 5; x <= 10; x++){ - for (int z = 5; z <= 10; z++){ - unit.modifier().setRelative(x, 2, z, unit.absoluteStart().chunkX() == 3 ? Block.GOLD_BLOCK : Block.GRASS_BLOCK); +public class FastbridgeChunkgenerator extends BaseGenerator { + public FastbridgeChunkgenerator() { + this.addMixIn(unit -> { + if (unit.absoluteStart().chunkZ() % 2 == 0) { + unit.modifier().fill(Block.BARRIER); + return; } - } + + if (unit.absoluteStart().chunkX() != 1 && unit.absoluteStart().chunkX() != 3) return; + for (int x = 5; x <= 10; x++){ + for (int z = 5; z <= 10; z++){ + unit.modifier().setRelative(x, 64, z, unit.absoluteStart().chunkX() == 3 ? Block.GOLD_BLOCK : Block.GRASS_BLOCK); + } + } + }); + + ValeGenerator vale = new ValeGenerator(); + vale.setXShiftMultiplier(integer -> 0.5d); + vale.setHeightNoiseMultiplier(integer -> 2); + vale.setXShiftOffset(integer -> 40d); + this.addMixIn(vale); } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/world/generator/featureEnriched/ValeGenerator.java b/src/main/java/eu/mhsl/minenet/minigames/world/generator/featureEnriched/ValeGenerator.java index 6ece504..af0dcda 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/world/generator/featureEnriched/ValeGenerator.java +++ b/src/main/java/eu/mhsl/minenet/minigames/world/generator/featureEnriched/ValeGenerator.java @@ -21,6 +21,7 @@ public class ValeGenerator extends HeightTerrainGenerator { .build(); private Function xShiftMultiplier = multiplier -> 1d; + private Function xShiftOffset = z -> 0d; public ValeGenerator() { setCalculateHeight(this::calculateY); @@ -32,10 +33,14 @@ public class ValeGenerator extends HeightTerrainGenerator { } public int getXShiftAtZ(int z) { - return (int) ((curves.getNoise(z) * 32 + largeCurves.getNoise(z) * 64) * xShiftMultiplier.apply(z)); + return (int) ((curves.getNoise(z) * 32 + largeCurves.getNoise(z) * 64) * xShiftMultiplier.apply(z) + xShiftOffset.apply(z)); } public void setXShiftMultiplier(Function xShiftMultiplier) { this.xShiftMultiplier = xShiftMultiplier; } + + public void setXShiftOffset(Function xShiftOffset) { + this.xShiftOffset = xShiftOffset; + } }