From 2cdee181b4c606b059651ac1ca4d4ab0b6e63bf6 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sun, 7 Jan 2024 20:12:10 +0100 Subject: [PATCH] send time per turn and dimensions to the client --- src/games/stendhal/client/StendhalClient.java | 68 ++++++++++++++++++- .../core/engine/StendhalRPRuleProcessor.java | 1 + 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/games/stendhal/client/StendhalClient.java b/src/games/stendhal/client/StendhalClient.java index d785f091da..d2291170b8 100644 --- a/src/games/stendhal/client/StendhalClient.java +++ b/src/games/stendhal/client/StendhalClient.java @@ -109,6 +109,16 @@ public class StendhalClient extends ClientFramework { private JFrame splashScreen; + private int turnTime = 300; + + private int tileWidth = 32; + + private int tileHeight = 32; + + private int gridWidth = 32; + + private int gridHeight = 32; + /** * Get the client instance. * @@ -432,7 +442,17 @@ public class StendhalClient extends ClientFramework { @Override protected void onServerInfo(final String[] info) { - // ignore server response + for (String setting : info) { + if (setting.startsWith("stendhal_protocol")) { + String[] temp = setting.split(";"); + turnTime = Integer.parseInt(temp[1]); + tileWidth = Integer.parseInt(temp[2]); + tileHeight = Integer.parseInt(temp[3]); + gridWidth = Integer.parseInt(temp[4]); + gridHeight = Integer.parseInt(temp[5]); + break; + } + } } @Override @@ -892,4 +912,50 @@ public class StendhalClient extends ClientFramework { + " was not found in pressedStateKeys list"); } } + + /** + * gets the server turn in in milliseconds + * + * @return time per turn + */ + int getTurnTime() { + return turnTime; + } + + /** + * number of pixels per server x coordinate + * + * @return size + */ + int getTileWidth() { + return tileWidth; + } + + /** + * number of pixels per server y coordinate + * + * @return size + */ + int getTileHeight() { + return tileHeight; + } + + /** + * x size in pixel of the server alignment grid + * + * @return size + */ + int getGridWidth() { + return gridWidth; + } + + /** + * y size in pixel of the server alignment grid + * + * @return size + */ + int getGridHeight() { + return gridHeight; + } + } diff --git a/src/games/stendhal/server/core/engine/StendhalRPRuleProcessor.java b/src/games/stendhal/server/core/engine/StendhalRPRuleProcessor.java index e7fef8a150..ee3f14fb22 100644 --- a/src/games/stendhal/server/core/engine/StendhalRPRuleProcessor.java +++ b/src/games/stendhal/server/core/engine/StendhalRPRuleProcessor.java @@ -188,6 +188,7 @@ public class StendhalRPRuleProcessor implements IRPRuleProcessor { } catch (final RuntimeException ep) { logger.info("No server extensions configured in ini file."); } + config.set("server_stendhal_protocol", "stendhal_protocol;" + config.get("turn_length") + ";32;32;32;32"); // Remove online info from database. DAORegister.get().get(StendhalWebsiteDAO.class).clearOnlineStatus();