From 91069b76c6b1b2852f01c3efe73f86da962a697d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 1 Oct 2023 19:54:02 +0200 Subject: [PATCH] Added configuration options to spleef game --- .../compileJava/previous-compilation-data.bin | Bin 63987 -> 64004 bytes .../handler/global/PlayerLoginHandler.java | 4 +--- .../game/stateless/types/spleef/Spleef.java | 15 +++++++------ .../stateless/types/spleef/SpleefFactory.java | 20 ++++++++++++------ 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 0a4cc28353ece1622162bf6da81adadc2d48b77c..98411aa7f38cb904697710f06f115543711f93e3 100644 GIT binary patch delta 445 zcmV;u0Yd)s^8h-jJQ@5HI9f>Xk_yuv# z><~C6)nF(mjhg$wdVoatlVG!33@8B*+S*@I5A2!NreSqzx|?Y&lame35OjkjCmgZ* zt1t;xwbPCKG_!FI6#)=4Fnc6;ek+Rwfs#yl$)shImJcBily_l%C_X3!xci7W=bcBO zv&RpK0T4`_4YbhY1?nl~wVv$NO9-=I5n}-mlh3!LtA!&ho6;w^u5ZzBv(plO0Rj4x zQWQ}P2J{1j1FZsX*aG4Kv#k_E0|^E81B3%^BjN$G_ZN`{2nDSIZrB3i0ke)C0RjdC ngaaeu0ke}JM*#^0gafSt*aG4Kv*95U1_l2C0ReZj@h1Y(lUu(7 delta 428 zcmV;d0aN~j^aJzr1CWXkE{MaVbw9-iti=Ohnl4;Fv6_Sd5KEN_^C`R-jk2HB4CpNdRe|IVY!vJU{W;syT!5E?(0o*KL=P7ffb zmJm;taI^6TcL5Nx%RD|5?8yYrH&HLOQT|P{cnQ}55HZO}ZNM1oKbpvP7!3@pMw4F) z><~-#`9NNPOuYtLsHFRqrc1M13@8B*@8b?{Mw3nxSjW4KE>N~Nlame35Ot)%i06AP zXg@mTp#{KY_Oo#g6#)>|J2jeejXQFkTB416K3gr5mJcBiofLV0`9KG6FV1W(qdTd= zv&RpK0T7%5PWCXl4pER?WPEl~@UXLB5n}-mxdh7iU{D&%uxPzG6R&!^v(plO0Rj1w zQWQ}N1@r@i1FZsX*aEY!6hi|C1oi`j18yU;`xlW01_Z4FZrB2|lpX;B1OkKuBeR { @Override public @NotNull Result run(@NotNull PlayerLoginEvent event) { - Player p = event.getPlayer(); p.setRespawnPoint(Hub.INSTANCE.getSpawn()); - p.sendMessage(p.getUuid().toString()); event.setSpawningInstance(Hub.INSTANCE); - //SkinCache.applySkin(p); + SkinCache.applySkin(p); if(p.getUsername().equalsIgnoreCase("minetec")) diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/Spleef.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/Spleef.java index 5ffcdfd..7078a9e 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/Spleef.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/Spleef.java @@ -19,15 +19,18 @@ import org.jetbrains.annotations.NotNull; import java.util.concurrent.CompletableFuture; public class Spleef extends StatelessGame { - int size = 30; - int stackCount = 3; + int radius; + int stackCount; final int heightPerLevel = 20; final int totalElevation = 50; - public Spleef() { + public Spleef(int radius, int stackCount) { super(Dimension.OVERWORLD.DIMENSION, "Spleef", new LastWinsScore(1)); + this.radius = radius; + this.stackCount = stackCount; + setGenerator(new CircularTerrainGenerator(50, false)); eventNode().addListener(PlayerStartDiggingEvent.class, this::destroyBlock); @@ -38,9 +41,9 @@ public class Spleef extends StatelessGame { AbsoluteBlockBatch circle = new AbsoluteBlockBatch(); for (int level = 0; level < stackCount; level++) { - for(int x = -size; x <= size; x++) { - for(int z = -size; z <= size; z++) { - if(new Pos(x, 0, z).distance(new Pos(0, 0, 0)) > size) continue; + for(int x = -radius; x <= radius; x++) { + for(int z = -radius; z <= radius; z++) { + if(new Pos(x, 0, z).distance(new Pos(0, 0, 0)) > radius) continue; circle.setBlock(x, totalElevation + (level * heightPerLevel), z, BlockPallet.WINTER.rnd()); } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/SpleefFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/SpleefFactory.java index 3c3e1c1..cfa8522 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/SpleefFactory.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spleef/SpleefFactory.java @@ -4,6 +4,7 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame; 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.NumericOption; import eu.mhsl.minenet.minigames.instance.game.stateless.config.restriction.RestrictionHandler; import eu.mhsl.minenet.minigames.instance.game.stateless.config.restriction.common.MinimalPlayeramountGameRestriction; import eu.mhsl.minenet.minigames.message.component.TranslatedComponent; @@ -18,17 +19,24 @@ public class SpleefFactory implements GameFactory { return TranslatedComponent.byId("game_Spleef#name"); } -// @Override -// public RestrictionHandler globalRestrictions() { -// return new RestrictionHandler() -// .addRestriction(new MinimalPlayeramountGameRestriction(2)); -// } + @Override + public RestrictionHandler globalRestrictions() { + return new RestrictionHandler() + .addRestriction(new MinimalPlayeramountGameRestriction(2)); + } @Override public Material symbol() { return Material.DIAMOND_SHOVEL; } + @Override + public ConfigManager configuration() { + return new ConfigManager() + .addOption(new NumericOption("radius", Material.HEART_OF_THE_SEA, TranslatedComponent.byId("game_Spleef#radius"), 10, 20, 30)) + .addOption(new NumericOption("stackCount", Material.SCAFFOLDING, TranslatedComponent.byId("game_Spleef#stackCount"), 1, 2, 3, 4, 5)); + } + @Override public TranslatedComponent description() { return TranslatedComponent.byId("game_Spleef#description"); @@ -36,6 +44,6 @@ public class SpleefFactory implements GameFactory { @Override public StatelessGame manufacture(Map> configuration) throws Exception { - return new Spleef(); + return new Spleef(configuration.get("radius").getAsInt(), configuration.get("stackCount").getAsInt()); } }