From 2a827a28b1b4b30fd68e2010ce75df77a692ad4f Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Tue, 14 Oct 2014 09:09:37 +0200 Subject: [PATCH] Improve /f map by increasing the width and making the height much larger in case its a single view. --- src/main/java/com/massivecraft/factions/Const.java | 4 +++- .../massivecraft/factions/cmd/CmdFactionsMap.java | 14 +++++++++----- .../massivecraft/factions/engine/EngineMain.java | 4 +++- .../com/massivecraft/factions/entity/Board.java | 11 +++++------ .../massivecraft/factions/entity/BoardColl.java | 4 ++-- .../factions/entity/BoardInterface.java | 2 +- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/Const.java b/src/main/java/com/massivecraft/factions/Const.java index 6eb3363d..2f424d19 100644 --- a/src/main/java/com/massivecraft/factions/Const.java +++ b/src/main/java/com/massivecraft/factions/Const.java @@ -16,8 +16,10 @@ public class Const public static final String ASPECT = BASENAME; // ASCII Map + public static final int MAP_WIDTH = 47; public static final int MAP_HEIGHT = 8; - public static final int MAP_WIDTH = 39; + public static final int MAP_HEIGHT_FULL = 17; + public static final char[] MAP_KEY_CHARS = "\\/#?$%=&^ABCDEFGHJKLMNOPQRSTUVWXYZ1234567890abcdeghjmnopqrsuvwxyz".toCharArray(); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsMap.java b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsMap.java index 0e6b5381..32036eb2 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFactionsMap.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFactionsMap.java @@ -1,5 +1,8 @@ package com.massivecraft.factions.cmd; +import java.util.List; + +import com.massivecraft.factions.Const; import com.massivecraft.factions.Perm; import com.massivecraft.factions.entity.BoardColl; import com.massivecraft.massivecore.cmd.arg.ARBoolean; @@ -33,16 +36,16 @@ public class CmdFactionsMap extends FactionsCommand @Override public void perform() { - if (!this.argIsSet(0)) + if ( ! this.argIsSet(0)) { - showMap(); + showMap(Const.MAP_WIDTH, Const.MAP_HEIGHT_FULL); return; } if (this.arg(0, ARBoolean.get(), !msender.isMapAutoUpdating())) { // And show the map once - showMap(); + showMap(Const.MAP_WIDTH, Const.MAP_HEIGHT); // Turn on msender.setMapAutoUpdating(true); @@ -56,9 +59,10 @@ public class CmdFactionsMap extends FactionsCommand } } - public void showMap() + public void showMap(int width, int height) { - sendMessage(BoardColl.get().getMap(msenderFaction, PS.valueOf(me), me.getLocation().getYaw())); + List message = BoardColl.get().getMap(msenderFaction, PS.valueOf(me), me.getLocation().getYaw(), width, height); + sendMessage(message); } } diff --git a/src/main/java/com/massivecraft/factions/engine/EngineMain.java b/src/main/java/com/massivecraft/factions/engine/EngineMain.java index 668eaedf..256b8865 100644 --- a/src/main/java/com/massivecraft/factions/engine/EngineMain.java +++ b/src/main/java/com/massivecraft/factions/engine/EngineMain.java @@ -60,6 +60,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.plugin.Plugin; import org.bukkit.projectiles.ProjectileSource; +import com.massivecraft.factions.Const; import com.massivecraft.factions.Factions; import com.massivecraft.factions.Rel; import com.massivecraft.factions.TerritoryAccess; @@ -425,7 +426,8 @@ public class EngineMain extends EngineAbstract // send host faction info updates if (mplayer.isMapAutoUpdating()) { - mplayer.sendMessage(BoardColl.get().getMap(mplayer, chunkTo, player.getLocation().getYaw())); + List message = BoardColl.get().getMap(mplayer, chunkTo, player.getLocation().getYaw(), Const.MAP_WIDTH, Const.MAP_HEIGHT); + mplayer.sendMessage(message); } else if (factionFrom != factionTo) { diff --git a/src/main/java/com/massivecraft/factions/entity/Board.java b/src/main/java/com/massivecraft/factions/entity/Board.java index ccc46cb2..57889583 100644 --- a/src/main/java/com/massivecraft/factions/entity/Board.java +++ b/src/main/java/com/massivecraft/factions/entity/Board.java @@ -289,7 +289,7 @@ public class Board extends Entity implements BoardInterface // MAP GENERATION @Override - public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees) + public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees, int width, int height) { centerPs = centerPs.getChunkCoords(true); @@ -298,14 +298,13 @@ public class Board extends Entity implements BoardInterface ret.add(Txt.titleize("("+centerPs.getChunkX() + "," + centerPs.getChunkZ()+") "+centerFaction.getName(observer))); - int halfWidth = Const.MAP_WIDTH / 2; - int halfHeight = Const.MAP_HEIGHT / 2; + int halfWidth = width / 2; + int halfHeight = height / 2; + width = halfWidth * 2 + 1; + height = halfHeight * 2 + 1; PS topLeftPs = centerPs.plusChunkCoords(-halfWidth, -halfHeight); - int width = halfWidth * 2 + 1; - int height = halfHeight * 2 + 1; - // Make room for the list of names height--; diff --git a/src/main/java/com/massivecraft/factions/entity/BoardColl.java b/src/main/java/com/massivecraft/factions/entity/BoardColl.java index 7dbefcea..3b0b6028 100644 --- a/src/main/java/com/massivecraft/factions/entity/BoardColl.java +++ b/src/main/java/com/massivecraft/factions/entity/BoardColl.java @@ -184,12 +184,12 @@ public class BoardColl extends Coll implements BoardInterface // MAP GENERATION @Override - public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees) + public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees, int width, int height) { if (centerPs == null) return null; Board board = this.get(centerPs.getWorld()); if (board == null) return null; - return board.getMap(observer, centerPs, inDegrees); + return board.getMap(observer, centerPs, inDegrees, width, height); } // -------------------------------------------- // diff --git a/src/main/java/com/massivecraft/factions/entity/BoardInterface.java b/src/main/java/com/massivecraft/factions/entity/BoardInterface.java index 1a891422..11153625 100644 --- a/src/main/java/com/massivecraft/factions/entity/BoardInterface.java +++ b/src/main/java/com/massivecraft/factions/entity/BoardInterface.java @@ -36,6 +36,6 @@ public interface BoardInterface // MAP // TODO: Could the degrees be embedded in centerPs yaw instead? - public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees); + public ArrayList getMap(RelationParticipator observer, PS centerPs, double inDegrees, int width, int height); }