mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-12-26 18:47:40 +01:00
Add support for 'compass-mode' - handle 1.9 change of proper north
This commit is contained in:
parent
d6b93868a7
commit
5c064eab2b
@ -1,10 +1,7 @@
|
||||
package org.dynmap;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.reflect.Constructor;
|
||||
@ -18,7 +15,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.block.Block;
|
||||
@ -40,7 +36,6 @@ import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.block.BlockSpreadEvent;
|
||||
import org.bukkit.event.block.LeavesDecayEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
@ -54,7 +49,6 @@ import org.bukkit.event.world.ChunkPopulateEvent;
|
||||
import org.bukkit.event.world.SpawnChangeEvent;
|
||||
import org.bukkit.event.world.WorldListener;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
@ -86,6 +80,13 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
boolean swampshading = false;
|
||||
boolean waterbiomeshading = false;
|
||||
boolean fencejoin = false;
|
||||
public CompassMode compassmode = CompassMode.PRE19;
|
||||
|
||||
public enum CompassMode {
|
||||
PRE19, /* Default for 1.8 and earlier (east is Z+) */
|
||||
NEWROSE, /* Use same map orientation, fix rose */
|
||||
NEWNORTH /* Use new map orientation */
|
||||
};
|
||||
|
||||
/* Flag to let code know that we're doing reload - make sure we don't double-register event handlers */
|
||||
public boolean is_reload = false;
|
||||
@ -258,6 +259,14 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
waterbiomeshading = configuration.getBoolean("waterbiomeshaded", !getServer().getVersion().contains("(MC: 1.8"));
|
||||
/* Default fence-to-block-join off for 1.8, on after */
|
||||
fencejoin = configuration.getBoolean("fence-to-block-join", !getServer().getVersion().contains("(MC: 1.8"));
|
||||
/* Default compassmode to pre19, to newrose after */
|
||||
String cmode = configuration.getString("compass-mode", getServer().getVersion().contains("(MC: 1.8")?"pre19":"newrose");
|
||||
if(cmode.equals("newnorth"))
|
||||
compassmode = CompassMode.NEWNORTH;
|
||||
else if(cmode.equals("newrose"))
|
||||
compassmode = CompassMode.NEWROSE;
|
||||
else
|
||||
compassmode = CompassMode.PRE19;
|
||||
|
||||
loadDebuggers();
|
||||
|
||||
|
@ -24,6 +24,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.dynmap.DynmapPlugin.CompassMode;
|
||||
import org.dynmap.DynmapWorld.AutoGenerateOption;
|
||||
import org.dynmap.debug.Debug;
|
||||
import org.dynmap.hdmap.HDMapManager;
|
||||
@ -1166,6 +1167,10 @@ public class MapManager {
|
||||
public boolean getFenceJoin() {
|
||||
return plug_in.fencejoin;
|
||||
}
|
||||
|
||||
public CompassMode getCompassMode() {
|
||||
return plug_in.compassmode;
|
||||
}
|
||||
|
||||
public boolean getHideOres() {
|
||||
return hideores;
|
||||
|
@ -17,6 +17,7 @@ import org.dynmap.Color;
|
||||
import org.dynmap.ColorScheme;
|
||||
import org.dynmap.ConfigurationNode;
|
||||
import org.dynmap.DynmapChunk;
|
||||
import org.dynmap.DynmapPlugin.CompassMode;
|
||||
import org.dynmap.MapManager;
|
||||
import org.dynmap.TileHashManager;
|
||||
import org.dynmap.MapTile;
|
||||
@ -602,7 +603,10 @@ public class FlatMap extends MapType {
|
||||
s(o, "bigmap", this.isBigWorldMap(world));
|
||||
s(o, "mapzoomin", c.getInteger("mapzoomin", 3));
|
||||
s(o, "mapzoomout", world.getExtraZoomOutLevels());
|
||||
s(o, "compassview", "S"); /* Always from south */
|
||||
if(MapManager.mapman.getCompassMode() != CompassMode.PRE19)
|
||||
s(o, "compassview", "E"); /* Always from east */
|
||||
else
|
||||
s(o, "compassview", "S"); /* Always from south */
|
||||
s(o, "image-format", ImageFormat.FORMAT_PNG.getFileExt());
|
||||
a(worldObject, "maps", o);
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ import org.dynmap.Client;
|
||||
import org.dynmap.Color;
|
||||
import org.dynmap.ConfigurationNode;
|
||||
import org.dynmap.DynmapChunk;
|
||||
import org.dynmap.DynmapPlugin.CompassMode;
|
||||
import org.dynmap.Log;
|
||||
import org.dynmap.MapManager;
|
||||
import org.dynmap.MapTile;
|
||||
@ -737,6 +738,10 @@ public class IsoHDPerspective implements HDPerspective {
|
||||
return;
|
||||
}
|
||||
azimuth = configuration.getDouble("azimuth", 135.0); /* Get azimuth (default to classic kzed POV */
|
||||
/* Fix azimuth so that we respect new north, if that is requested (newnorth = oldeast) */
|
||||
if(MapManager.mapman.getCompassMode() == CompassMode.NEWNORTH) {
|
||||
azimuth = (azimuth + 90.0); if(azimuth >= 360.0) azimuth = azimuth - 360.0;
|
||||
}
|
||||
inclination = configuration.getDouble("inclination", 60.0);
|
||||
if(inclination > MAX_INCLINATION) inclination = MAX_INCLINATION;
|
||||
if(inclination < MIN_INCLINATION) inclination = MIN_INCLINATION;
|
||||
@ -1239,7 +1244,9 @@ public class IsoHDPerspective implements HDPerspective {
|
||||
s(mapObject, "scale", scale);
|
||||
s(mapObject, "worldtomap", world_to_map.toJSON());
|
||||
s(mapObject, "maptoworld", map_to_world.toJSON());
|
||||
int dir = ((360 + (int)(22.5+azimuth)) / 45) % 8;;
|
||||
int dir = ((360 + (int)(22.5+azimuth)) / 45) % 8;
|
||||
if(MapManager.mapman.getCompassMode() != CompassMode.PRE19)
|
||||
dir = (dir + 6) % 8;
|
||||
s(mapObject, "compassview", directions[dir]);
|
||||
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ import org.dynmap.ColorScheme;
|
||||
import org.dynmap.ConfigurationNode;
|
||||
import org.dynmap.DynmapWorld;
|
||||
import org.dynmap.MapManager;
|
||||
import org.dynmap.DynmapPlugin.CompassMode;
|
||||
import org.dynmap.MapType.ImageFormat;
|
||||
import org.dynmap.TileHashManager;
|
||||
import org.dynmap.debug.Debug;
|
||||
@ -589,7 +590,10 @@ public class DefaultTileRenderer implements MapTileRenderer {
|
||||
s(o, "bigmap", map.isBigWorldMap(world));
|
||||
s(o, "mapzoomin", c.getInteger("mapzoomin", 2));
|
||||
s(o, "mapzoomout", world.getExtraZoomOutLevels()+1);
|
||||
s(o, "compassview", "SE"); /* Always from southeast */
|
||||
if(MapManager.mapman.getCompassMode() != CompassMode.PRE19)
|
||||
s(o, "compassview", "NE"); /* Always from northeast */
|
||||
else
|
||||
s(o, "compassview", "SE"); /* Always from southeast */
|
||||
s(o, "image-format", ImageFormat.FORMAT_PNG.getFileExt());
|
||||
a(worldObject, "maps", o);
|
||||
}
|
||||
|
@ -266,6 +266,11 @@ enabletilehash: true
|
||||
# Control updating of player faces, once loaded (if faces are being managed by other apps or manually)
|
||||
#refreshskins: false
|
||||
|
||||
# Control behavior for new (1.9+) compass orientation (sunrise moved 90 degrees: east is now what used to be south)
|
||||
# default is 'pre19' for 1.8 server (existing orientation), 'newrose' for 1.9+ (preserve maps, rotate rose)
|
||||
# 'newnorth' is used to rotate maps and rose (requires fullrender of any HDMap map - same as 'newrose' for FlatMap or KzedMap)
|
||||
#compass-mode: newnorth
|
||||
|
||||
render-triggers:
|
||||
#- chunkloaded
|
||||
#- playermove
|
||||
|
Loading…
Reference in New Issue
Block a user