mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-11-24 19:25:15 +01:00
Start structuring for shaders and perspectives
This commit is contained in:
parent
ae190b3c57
commit
52f23f5e2d
1
perspectives.txt
Normal file
1
perspectives.txt
Normal file
@ -0,0 +1 @@
|
||||
perspectives:
|
18
shaders.txt
Normal file
18
shaders.txt
Normal file
@ -0,0 +1,18 @@
|
||||
shaders:
|
||||
- class: org.dynmap.hdmap.DefaultHDShader
|
||||
name: classic
|
||||
colorscheme: default
|
||||
|
||||
- class: org.dynmap.hdmap.DefaultHDShader
|
||||
name: night
|
||||
colorscheme: default
|
||||
ambientlight: 4
|
||||
shadowstrength: 1.0
|
||||
|
||||
- class: org.dynmap.hdmap.DefaultHDShader
|
||||
name: daynight
|
||||
colorscheme: default
|
||||
ambientlight: 4
|
||||
shadowstrength: 1.0
|
||||
night-and-day: true
|
||||
|
@ -27,7 +27,9 @@
|
||||
<directory>${project.basedir}</directory>
|
||||
<outputDirectory>/dynmap/</outputDirectory>
|
||||
<includes>
|
||||
<include>configuration.txt</include></includes></fileSet>
|
||||
<include>configuration.txt</include>
|
||||
<include>shaders.txt</include>
|
||||
<include>perspectives.txt</include></includes></fileSet>
|
||||
</fileSets>
|
||||
<files>
|
||||
<file>
|
||||
|
@ -46,6 +46,8 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
public MapManager mapManager = null;
|
||||
public PlayerList playerList;
|
||||
public ConfigurationNode configuration;
|
||||
public ConfigurationNode shaderconfig;
|
||||
public ConfigurationNode perspectiveconfig;
|
||||
public HashSet<String> enabledTriggers = new HashSet<String>();
|
||||
public PermissionProvider permissions;
|
||||
public ComponentManager componentManager = new ComponentManager();
|
||||
@ -77,6 +79,13 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
org.bukkit.util.config.Configuration bukkitConfiguration = new org.bukkit.util.config.Configuration(new File(this.getDataFolder(), "configuration.txt"));
|
||||
bukkitConfiguration.load();
|
||||
configuration = new ConfigurationNode(bukkitConfiguration);
|
||||
/* Load shaders and perspectives */
|
||||
org.bukkit.util.config.Configuration bukkitShaderConfig = new org.bukkit.util.config.Configuration(new File(this.getDataFolder(), "shaders.txt"));
|
||||
bukkitShaderConfig.load();
|
||||
shaderconfig = new ConfigurationNode(bukkitShaderConfig);
|
||||
org.bukkit.util.config.Configuration bukkitPerspectiveConfig = new org.bukkit.util.config.Configuration(new File(this.getDataFolder(), "perspectives.txt"));
|
||||
bukkitPerspectiveConfig.load();
|
||||
perspectiveconfig = new ConfigurationNode(bukkitPerspectiveConfig);
|
||||
|
||||
Log.verbose = configuration.getBoolean("verbose", true);
|
||||
|
||||
@ -90,7 +99,7 @@ public class DynmapPlugin extends JavaPlugin {
|
||||
playerList = new PlayerList(getServer(), getFile("hiddenplayers.txt"), configuration);
|
||||
playerList.load();
|
||||
|
||||
mapManager = new MapManager(this, configuration);
|
||||
mapManager = new MapManager(this, configuration, shaderconfig, perspectiveconfig);
|
||||
mapManager.startRendering();
|
||||
|
||||
loadWebserver();
|
||||
|
@ -21,6 +21,8 @@ import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.dynmap.DynmapWorld.AutoGenerateOption;
|
||||
import org.dynmap.debug.Debug;
|
||||
import org.dynmap.hdmap.HDMapManager;
|
||||
import org.dynmap.hdmap.HDShader;
|
||||
import org.dynmap.utils.LegacyMapChunkCache;
|
||||
import org.dynmap.utils.MapChunkCache;
|
||||
import org.dynmap.utils.NewMapChunkCache;
|
||||
@ -48,7 +50,8 @@ public class MapManager {
|
||||
public static final Object lock = new Object();
|
||||
|
||||
public static MapManager mapman; /* Our singleton */
|
||||
|
||||
public HDMapManager hdmapman;
|
||||
|
||||
/* Thread pool for processing renders */
|
||||
private DynmapScheduledThreadPoolExecutor renderpool;
|
||||
private static final int POOL_SIZE = 3;
|
||||
@ -319,9 +322,13 @@ public class MapManager {
|
||||
}
|
||||
}
|
||||
|
||||
public MapManager(DynmapPlugin plugin, ConfigurationNode configuration) {
|
||||
public MapManager(DynmapPlugin plugin, ConfigurationNode configuration, ConfigurationNode shadercfg, ConfigurationNode perspectivecfg) {
|
||||
plug_in = plugin;
|
||||
mapman = this;
|
||||
/* Initialize HD map manager */
|
||||
hdmapman = new HDMapManager();
|
||||
hdmapman.loadHDShaders(shadercfg);
|
||||
hdmapman.loadHDPerspectives(perspectivecfg);
|
||||
|
||||
this.tileQueue = new AsynchronousQueue<MapTile>(new Handler<MapTile>() {
|
||||
@Override
|
||||
|
@ -38,7 +38,7 @@ public class DefaultHDShader implements HDShader {
|
||||
|
||||
public DefaultHDShader(ConfigurationNode configuration) {
|
||||
this.configuration = configuration;
|
||||
name = (String) configuration.get("prefix");
|
||||
name = (String) configuration.get("name");
|
||||
double shadowweight = configuration.getDouble("shadowstrength", 0.0);
|
||||
if(shadowweight > 0.0) {
|
||||
shadowscale = new int[16];
|
||||
@ -61,7 +61,7 @@ public class DefaultHDShader implements HDShader {
|
||||
lightscale[i] = i - (15-v);
|
||||
}
|
||||
}
|
||||
colorScheme = ColorScheme.getScheme((String)configuration.get("colorscheme"));
|
||||
colorScheme = ColorScheme.getScheme(configuration.getString("colorscheme", "default"));
|
||||
night_and_day = configuration.getBoolean("night-and-day", false);
|
||||
transparency = configuration.getBoolean("transparency", true); /* Default on */
|
||||
String biomeopt = configuration.getString("biomecolored", "none");
|
||||
|
33
src/main/java/org/dynmap/hdmap/HDMapManager.java
Normal file
33
src/main/java/org/dynmap/hdmap/HDMapManager.java
Normal file
@ -0,0 +1,33 @@
|
||||
package org.dynmap.hdmap;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.dynmap.ConfigurationNode;
|
||||
import org.dynmap.Log;
|
||||
|
||||
public class HDMapManager {
|
||||
public HashMap<String, HDShader> shaders = new HashMap<String, HDShader>();
|
||||
public HashMap<String, HDPerspective> perspectives = new HashMap<String, HDPerspective>();
|
||||
|
||||
public void loadHDShaders(ConfigurationNode shadercfg) {
|
||||
Log.verboseinfo("Loading shaders...");
|
||||
for(HDShader shader : shadercfg.<HDShader>createInstances("shaders", new Class<?>[0], new Object[0])) {
|
||||
if(shaders.containsKey(shader.getName())) {
|
||||
Log.severe("Duplicate shader name '" + shader.getName() + "' - shader ignored");
|
||||
}
|
||||
shaders.put(shader.getName(), shader);
|
||||
}
|
||||
Log.info("Loaded " + shaders.size() + " shaders.");
|
||||
}
|
||||
|
||||
public void loadHDPerspectives(ConfigurationNode perspectivecfg) {
|
||||
Log.verboseinfo("Loading perspectives...");
|
||||
for(HDPerspective perspective : perspectivecfg.<HDPerspective>createInstances("perspectives", new Class<?>[0], new Object[0])) {
|
||||
if(perspectives.containsKey(perspective.getName())) {
|
||||
Log.severe("Duplicate perspective name '" + perspective.getName() + "' - perspective ignored");
|
||||
}
|
||||
perspectives.put(perspective.getName(), perspective);
|
||||
}
|
||||
Log.info("Loaded " + perspectives.size() + " perspectives.");
|
||||
}
|
||||
}
|
6
src/main/java/org/dynmap/hdmap/HDPerspective.java
Normal file
6
src/main/java/org/dynmap/hdmap/HDPerspective.java
Normal file
@ -0,0 +1,6 @@
|
||||
package org.dynmap.hdmap;
|
||||
|
||||
public interface HDPerspective {
|
||||
/* Get name of perspective */
|
||||
String getName();
|
||||
}
|
Loading…
Reference in New Issue
Block a user