started random snack generation

This commit is contained in:
2025-10-03 19:32:52 +02:00
parent abcb23d96a
commit f2fc4835c3
3 changed files with 15 additions and 1 deletions

View File

@@ -15,11 +15,13 @@ import net.minestom.server.item.Material;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
import java.util.Random;
import java.util.WeakHashMap;
class TurtleGame extends StatelessGame {
private final boolean firstPerson;
private final Map<Player, TurtleGameInstance> gameInstances = new WeakHashMap<>();
private final Random random = new Random();
public TurtleGame(boolean firstPerson) {
super(Dimension.OVERWORLD.key, "Turtle Game", new PointsWinScore());
@@ -39,6 +41,7 @@ class TurtleGame extends StatelessGame {
protected boolean onPlayerJoin(Player p) {
p.getInventory().setItemStack(0, ItemStack.builder(Material.BARRIER).customName(Component.text("Reset Snack")).build());
// TODO: instance auflösen, ein großer Kreis
if(this.gameInstances.get(p) == null) {
this.gameInstances.put(p, new TurtleGameInstance(
this,

View File

@@ -5,6 +5,7 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.config.ConfigManager;
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.game.stateless.config.common.BoolOption;
import eu.mhsl.minenet.minigames.instance.game.stateless.config.common.NumericOption;
import eu.mhsl.minenet.minigames.instance.room.Room;
import eu.mhsl.minenet.minigames.message.component.TranslatedComponent;
import net.minestom.server.item.Material;
@@ -26,7 +27,8 @@ public class TurtleGameFactory implements GameFactory {
@Override
public ConfigManager configuration() {
return new ConfigManager()
.addOption(new BoolOption("firstPerson", Material.SPYGLASS, TranslatedComponent.byId("game_TurtleGame#firstPerson")));
.addOption(new BoolOption("firstPerson", Material.SPYGLASS, TranslatedComponent.byId("game_TurtleGame#firstPerson")))
.addOption(new NumericOption("radius", Material.HEART_OF_THE_SEA, TranslatedComponent.byId("optionCommon#radius"), 10, 20, 30, 40));
}
@Override

View File

@@ -27,6 +27,15 @@ public class TurtleGameInstance {
this.turtle.setVelocity(targetDirection);
}
// TODO: kleine display entities, die rotieren und so
// public void generateNewSnack() {
// int z, x;
// do {
// z = random.nextInt(0, 66);
// x = random.nextInt(0, 44);
// } while (!this.instance.getBlock(this.startPosition.add(x, 1, z)).isAir());
// }
public void generate() {
AbsoluteBlockBatch batch = new AbsoluteBlockBatch();