mirror of https://github.com/webbukkit/dynmap.git
Merge cd553cfaa1
into ea24554033
This commit is contained in:
commit
438d373371
|
@ -31,6 +31,7 @@ public class MarkersComponent extends ClientComponent {
|
|||
private MarkerSet spawnbedset;
|
||||
private MarkerIcon spawnbedicon;
|
||||
private String spawnbedformat;
|
||||
private boolean removebedonplayerleave;
|
||||
private long maxofflineage;
|
||||
private boolean showSpawn;
|
||||
private boolean showBorder;
|
||||
|
@ -180,7 +181,7 @@ public class MarkersComponent extends ClientComponent {
|
|||
|
||||
spawnbedicon = api.getMarkerIcon(configuration.getString("spawnbedicon", "bed"));
|
||||
spawnbedformat = configuration.getString("spawnbedformat", "%name%'s bed");
|
||||
|
||||
removebedonplayerleave = configuration.getBoolean("spawnbedremoveonplayerleave", true);
|
||||
/* Add listener for players coming and going */
|
||||
core.listenerManager.addListener(EventType.PLAYER_JOIN, new PlayerEventListener() {
|
||||
@Override
|
||||
|
@ -188,15 +189,17 @@ public class MarkersComponent extends ClientComponent {
|
|||
updatePlayer(p);
|
||||
}
|
||||
});
|
||||
core.listenerManager.addListener(EventType.PLAYER_QUIT, new PlayerEventListener() {
|
||||
@Override
|
||||
public void playerEvent(DynmapPlayer p) {
|
||||
Marker m = spawnbedset.findMarker(p.getName()+"_bed");
|
||||
if(m != null) {
|
||||
m.deleteMarker();
|
||||
if (removebedonplayerleave) {
|
||||
core.listenerManager.addListener(EventType.PLAYER_QUIT, new PlayerEventListener() {
|
||||
@Override
|
||||
public void playerEvent(DynmapPlayer p) {
|
||||
Marker m = spawnbedset.findMarker(p.getName() + "_bed");
|
||||
if (m != null) {
|
||||
m.deleteMarker();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
core.listenerManager.addListener(EventType.PLAYER_BED_LEAVE, new PlayerEventListener() {
|
||||
@Override
|
||||
public void playerEvent(final DynmapPlayer p) {
|
||||
|
|
|
@ -364,7 +364,7 @@ public class HDBlockModels {
|
|||
if ((line.length() > 0) && (line.charAt(0) == '[')) { // If version constrained like
|
||||
int end = line.indexOf(']'); // Find end
|
||||
if (end < 0) {
|
||||
Log.severe("Format error - line " + lineNum + " of " + fname + ": bad version limit");
|
||||
Log.severe("Format error - line " + lineNum + " of " + fname + ": bad version limit of file: " + fname);
|
||||
return;
|
||||
}
|
||||
String vertst = line.substring(1, end);
|
||||
|
@ -414,12 +414,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid model block name " + bblk.blockName + " at line " + lineNum);
|
||||
Log.severe("Invalid model block name " + bblk.blockName + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Block model missing required parameters = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
layerbits = 0;
|
||||
}
|
||||
|
@ -444,7 +444,7 @@ public class HDBlockModels {
|
|||
}
|
||||
bsprslt = bsp.getMatchingStates();
|
||||
if (bsprslt.size() != 1) {
|
||||
Log.severe("Missing rotate source on line " + lineNum);
|
||||
Log.severe("Missing rotate source on line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
DynmapBlockState basebs = bsprslt.keySet().iterator().next();
|
||||
|
@ -452,7 +452,7 @@ public class HDBlockModels {
|
|||
/* get old model to be rotated */
|
||||
DynmapBlockState bs = basebs.getState(bits.nextSetBit(0));
|
||||
if (bs.isAir()) {
|
||||
Log.severe("Invalid rotate ID: " + bs + " on line " + lineNum);
|
||||
Log.severe("Invalid rotate ID: " + bs + " on line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
HDBlockModel mod = models_by_id_data.get(bs.globalStateIndex);
|
||||
|
@ -491,7 +491,7 @@ public class HDBlockModels {
|
|||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid rotate error - line " + lineNum + " of " + fname);
|
||||
Log.severe("Invalid rotate error - line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -513,7 +513,7 @@ public class HDBlockModels {
|
|||
}
|
||||
bsprslt = bsp.getMatchingStates();
|
||||
if (bsprslt.size() != 1) {
|
||||
Log.severe("Missing rotate source on line " + lineNum);
|
||||
Log.severe("Missing rotate source on line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
DynmapBlockState basebs = bsprslt.keySet().iterator().next();
|
||||
|
@ -521,7 +521,7 @@ public class HDBlockModels {
|
|||
/* get old model to be rotated */
|
||||
DynmapBlockState bs = basebs.getState(bits.nextSetBit(0));
|
||||
if (bs.isAir()) {
|
||||
Log.severe("Invalid patchrotate ID: " + bs + " on line " + lineNum);
|
||||
Log.severe("Invalid patchrotate ID: " + bs + " on line " + lineNum + "of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
HDBlockModel mod = models_by_id_data.get(bs.globalStateIndex);
|
||||
|
@ -541,7 +541,7 @@ public class HDBlockModels {
|
|||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid rotate error - line " + lineNum + " of " + fname);
|
||||
Log.severe("Invalid rotate error - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -560,7 +560,7 @@ public class HDBlockModels {
|
|||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid update ignore block name " + bbs + " at line " + lineNum);
|
||||
Log.severe("Invalid update ignore block name " + bbs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -584,7 +584,7 @@ public class HDBlockModels {
|
|||
for(int i = 0; i < args.length; i++) {
|
||||
String[] v = args[i].split("=");
|
||||
if(v.length < 2) {
|
||||
Log.severe("Format error - line " + lineNum + " of " + fname);
|
||||
Log.severe("Format error - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
|
@ -592,7 +592,7 @@ public class HDBlockModels {
|
|||
int parmval = config.getInteger(v[0], val); /* Read value, with applied default */
|
||||
varvals.put(v[0], parmval); /* And save value */
|
||||
} catch (NumberFormatException nfx) {
|
||||
Log.severe("Format error - line " + lineNum + " of " + fname);
|
||||
Log.severe("Format error - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -668,7 +668,7 @@ public class HDBlockModels {
|
|||
p_vmax = Double.parseDouble(av[1]);
|
||||
}
|
||||
else if(av[0].equals("UplusVmax")) {
|
||||
Log.warning("UplusVmax deprecated - use VmaxAtUMax - line " + lineNum + " of " + fname);
|
||||
Log.warning("UplusVmax deprecated - use VmaxAtUMax - line " + lineNum + " of file: " + fname);
|
||||
p_uplusvmax = Double.parseDouble(av[1]);
|
||||
}
|
||||
else if(av[0].equals("VmaxAtUMax")) {
|
||||
|
@ -737,11 +737,11 @@ public class HDBlockModels {
|
|||
patchnum1 = Integer.parseInt(ids2[1]);
|
||||
}
|
||||
if (patchnum0 < 0) {
|
||||
Log.severe("Invalid patch index " + patchnum0 + " - line " + lineNum + " of " + fname);
|
||||
Log.severe("Invalid patch index " + patchnum0 + " - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
if (patchnum1 < patchnum0) {
|
||||
Log.severe("Invalid patch index " + patchnum1 + " - line " + lineNum + " of " + fname);
|
||||
Log.severe("Invalid patch index " + patchnum1 + " - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
String patchid = av[1];
|
||||
|
@ -749,7 +749,7 @@ public class HDBlockModels {
|
|||
for (int i = patchnum0; i <= patchnum1; i++) {
|
||||
PatchDefinition pd = pdf.getPatchByName(patchid, i);
|
||||
if (pd == null) {
|
||||
Log.severe("Invalid patch ID " + patchid + " - line " + lineNum + " of " + fname);
|
||||
Log.severe("Invalid patch ID " + patchid + " - line " + lineNum + " of file: " + fname);
|
||||
return;
|
||||
}
|
||||
patches.add(i, pd);
|
||||
|
@ -769,12 +769,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid patchmodel block name " + bs + " at line " + lineNum);
|
||||
Log.severe("Invalid patchmodel block name " + bs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Patch block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Patch block model missing required parameters = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
// Shortcut for defining a patchblock that is a simple rectangular prism, with sidex corresponding to full block sides
|
||||
|
@ -832,12 +832,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid boxmodel block name " + bs + " at line " + lineNum);
|
||||
Log.severe("Invalid boxmodel block name " + bs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Box block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Box block model missing required parameters = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
// Shortcut for defining a patchblock that is a simple rectangular prism, with sidex corresponding to full block sides
|
||||
|
@ -898,12 +898,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid boxlist block name " + bs + " at line " + lineNum);
|
||||
Log.severe("Invalid boxlist block name " + bs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Box list block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Box list block model missing required parameters = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
// Shortcur for building JSON model style
|
||||
|
@ -932,7 +932,7 @@ public class HDBlockModels {
|
|||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid modellist FROM value (" + prms[0] + " at line " + lineNum);
|
||||
Log.severe("Invalid modellist FROM value (" + prms[0] + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
if (prms.length > 1) { // Handle to (to-x/y/z or to-x/y/z/rotx/roty/rotz) or to-x/y/z/rotx/roty/rotz/rorigx/rorigy/rorigz
|
||||
|
@ -953,7 +953,7 @@ public class HDBlockModels {
|
|||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid modellist TO value (" + prms[1] + " at line " + lineNum);
|
||||
Log.severe("Invalid modellist TO value (" + prms[1] + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
// Rest are faces (<side - upnsew>/<txtidx>/umin/vmin/umax/vmax> or <<side - upnsew>/<txtidx>)
|
||||
|
@ -971,14 +971,14 @@ public class HDBlockModels {
|
|||
ModelBoxSide side = new ModelBoxSide();
|
||||
side.rot = null;
|
||||
if ((flds.length != 2) && (flds.length != 6)) {
|
||||
Log.severe("Invalid modellist face '" + v + "' at line " + lineNum);
|
||||
Log.severe("Invalid modellist face '" + v + "' at line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
if (flds.length > 0) {
|
||||
String face = flds[0];
|
||||
side.side = toBlockSide.get(face.substring(0, 1));
|
||||
if (side.side == null) {
|
||||
Log.severe("Invalid modellist side value (" + face + ") in '" + v + "' at line " + lineNum);
|
||||
Log.severe("Invalid modellist side value (" + face + ") in '" + v + "' at line " + lineNum + " of file: " + fname);
|
||||
continue;
|
||||
}
|
||||
if (flds[0].length() > 1) {
|
||||
|
@ -1037,7 +1037,7 @@ public class HDBlockModels {
|
|||
pd.add(patch);
|
||||
}
|
||||
else {
|
||||
Log.severe(String.format("Invalid modellist patch for box %.02f/%.02f/%.02f:%.02f/%.02f/%.02f side %s at line %d", bl.from[0], bl.from[1], bl.from[2], bl.to[0], bl.to[1], bl.to[2], side.side, lineNum));
|
||||
Log.severe(String.format("Invalid modellist patch for box %.02f/%.02f/%.02f:%.02f/%.02f/%.02f side %s at line %d of file: %s", bl.from[0], bl.from[1], bl.from[2], bl.to[0], bl.to[1], bl.to[2], side.side, lineNum, fname));
|
||||
Log.verboseinfo(String.format("line = %s:%s", typeid, line));
|
||||
}
|
||||
}
|
||||
|
@ -1054,12 +1054,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid modellist block name " + bs + " at line " + lineNum);
|
||||
Log.severe("Invalid modellist block name " + bs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Model list block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Model list block model missing required parameters = line " + lineNum + " of " + fname + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
else if (typeid.equals("customblock")) {
|
||||
|
@ -1094,7 +1094,7 @@ public class HDBlockModels {
|
|||
if (bs.isNotAir()) {
|
||||
CustomBlockModel cbm = new CustomBlockModel(bs, bsprslt.get(bs), cls, custargs, blockset);
|
||||
if(cbm.render == null) {
|
||||
Log.severe("Custom block model failed to initialize = line " + lineNum + " of " + fname);
|
||||
Log.severe("Custom block model failed to initialize = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
else {
|
||||
/* Update maximum texture count */
|
||||
|
@ -1106,12 +1106,12 @@ public class HDBlockModels {
|
|||
cnt++;
|
||||
}
|
||||
else {
|
||||
Log.severe("Invalid custommodel block name " + bs + " at line " + lineNum);
|
||||
Log.severe("Invalid custommodel block name " + bs + " at line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Log.severe("Custom block model missing required parameters = line " + lineNum + " of " + fname);
|
||||
Log.severe("Custom block model missing required parameters = line " + lineNum + " of file: " + fname);
|
||||
}
|
||||
}
|
||||
else if (typeid.equals("modname")) {
|
||||
|
@ -1173,11 +1173,11 @@ public class HDBlockModels {
|
|||
if (need_mod_cfg) {
|
||||
Log.severe("Error loading configuration file for " + modname);
|
||||
}
|
||||
Log.verboseinfo("Loaded " + cnt + " block models from " + fname);
|
||||
Log.verboseinfo("Loaded " + cnt + " block models from " + fname + " of file: " + fname);
|
||||
} catch (IOException iox) {
|
||||
Log.severe("Error reading models.txt - " + iox.toString());
|
||||
} catch (NumberFormatException nfx) {
|
||||
Log.severe("Format error - line " + rdr.getLineNumber() + " of " + fname + ": " + nfx.getMessage());
|
||||
Log.severe("Format error - line " + rdr.getLineNumber() + " of file: " + fname + ": " + nfx.getMessage());
|
||||
} finally {
|
||||
if(rdr != null) {
|
||||
try {
|
||||
|
|
|
@ -6,10 +6,7 @@ import java.io.IOException;
|
|||
import java.util.BitSet;
|
||||
import java.util.List;
|
||||
|
||||
import org.dynmap.Color;
|
||||
import org.dynmap.ConfigurationNode;
|
||||
import org.dynmap.DynmapCore;
|
||||
import org.dynmap.MapManager;
|
||||
import org.dynmap.*;
|
||||
import org.dynmap.common.DynmapCommandSender;
|
||||
import org.dynmap.exporter.OBJExport;
|
||||
import org.dynmap.renderer.DynmapBlockState;
|
||||
|
@ -26,15 +23,26 @@ public class TopoHDShader implements HDShader {
|
|||
private final Color watercolor;
|
||||
private BitSet hiddenids;
|
||||
private final int linespacing;
|
||||
|
||||
private int worldheight = 384;
|
||||
public TopoHDShader(DynmapCore core, ConfigurationNode configuration) {
|
||||
name = (String) configuration.get("name");
|
||||
|
||||
fillcolor = new Color[256]; /* Color by Y */
|
||||
/* Load defined colors from parameters */
|
||||
for(int i = 0; i < 256; i++) {
|
||||
fillcolor[i] = configuration.getColor("color" + i, null);
|
||||
|
||||
if (HDBlockModels.checkVersionRange(core.getDynmapPluginPlatformVersion(), "-1.17.0")){
|
||||
worldheight = 256;
|
||||
fillcolor = new Color[worldheight]; /* Color by Y, must be range of total world height, offset by +64*/
|
||||
/* Load defined colors from parameters */
|
||||
for(int i = 0; i < worldheight; i++) {
|
||||
fillcolor[i] = configuration.getColor("color" + (i - 64), null); /* need to substract by 64 because Color does not accept <0 indexes*/
|
||||
}
|
||||
}
|
||||
else{
|
||||
fillcolor = new Color[worldheight]; /* Color by Y, must be range of total world height, offset by +64*/
|
||||
/* Load defined colors from parameters */
|
||||
for(int i = 0; i < worldheight; i++) {
|
||||
fillcolor[i] = configuration.getColor("color" + (i - 64), null); /* need to substract by 64 because Color does not accept <0 indexes*/
|
||||
}
|
||||
}
|
||||
|
||||
linecolor = configuration.getColor("linecolor", null);
|
||||
watercolor = configuration.getColor("watercolor", null);
|
||||
float wateralpha = configuration.getFloat("wateralpha", 1.0F);
|
||||
|
@ -45,11 +53,11 @@ public class TopoHDShader implements HDShader {
|
|||
if(fillcolor[0] == null) {
|
||||
fillcolor[0] = new Color(0, 0, 0);
|
||||
}
|
||||
if(fillcolor[255] == null) {
|
||||
fillcolor[255] = new Color(255, 255, 255);
|
||||
if(fillcolor[worldheight-1] == null) {
|
||||
fillcolor[worldheight-1] = new Color(255, 255, 255);
|
||||
}
|
||||
int starty = 0;
|
||||
for(int i = 1; i < 256; i++) {
|
||||
for(int i = 0; i < worldheight; i++) {
|
||||
if(fillcolor[i] != null) { /* Found color? */
|
||||
int delta = i - starty;
|
||||
Color c0 = fillcolor[starty];
|
||||
|
@ -73,7 +81,7 @@ public class TopoHDShader implements HDShader {
|
|||
}
|
||||
linespacing = configuration.getInteger("linespacing", 1);
|
||||
}
|
||||
|
||||
|
||||
private void setHidden(String bn) {
|
||||
DynmapBlockState bs = DynmapBlockState.getBaseStateByName(bn);
|
||||
for (int i = 0; i < bs.getStateCount(); i++) {
|
||||
|
@ -81,17 +89,17 @@ public class TopoHDShader implements HDShader {
|
|||
hiddenids.set(b.globalStateIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isBiomeDataNeeded() {
|
||||
return false;
|
||||
public boolean isBiomeDataNeeded() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isRawBiomeDataNeeded() {
|
||||
return false;
|
||||
public boolean isRawBiomeDataNeeded() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isHightestBlockYDataNeeded() {
|
||||
return false;
|
||||
|
@ -116,7 +124,7 @@ public class TopoHDShader implements HDShader {
|
|||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
private class OurShaderState implements HDShaderState {
|
||||
private Color color[];
|
||||
private Color tmpcolor[];
|
||||
|
@ -128,7 +136,7 @@ public class TopoHDShader implements HDShader {
|
|||
private int heightshift; /* Divide to keep in 0-127 range of colors */
|
||||
private boolean inWater;
|
||||
final int[] lightingTable;
|
||||
|
||||
|
||||
private OurShaderState(MapIterator mapiter, HDMap map, MapChunkCache cache, int scale) {
|
||||
this.mapiter = mapiter;
|
||||
this.map = map;
|
||||
|
@ -171,14 +179,14 @@ public class TopoHDShader implements HDShader {
|
|||
public HDMap getMap() {
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get our lighting
|
||||
*/
|
||||
public HDLighting getLighting() {
|
||||
return lighting;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reset renderer state for new ray
|
||||
*/
|
||||
|
@ -187,18 +195,18 @@ public class TopoHDShader implements HDShader {
|
|||
color[i].setTransparent();
|
||||
inWater = false;
|
||||
}
|
||||
|
||||
|
||||
private final boolean isHidden(DynmapBlockState blk) {
|
||||
return hiddenids.get(blk.globalStateIndex);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Process next ray step - called for each block on route
|
||||
* @return true if ray is done, false if ray needs to continue
|
||||
*/
|
||||
public boolean processBlock(HDPerspectiveState ps) {
|
||||
DynmapBlockState blocktype = ps.getBlockState();
|
||||
|
||||
|
||||
if (isHidden(blocktype)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -208,56 +216,56 @@ public class TopoHDShader implements HDShader {
|
|||
int[] xyz = ps.getSubblockCoord();
|
||||
// Only color lines when spacing is matched
|
||||
Color lcolor = ((y % linespacing) == 0)?linecolor:null;
|
||||
|
||||
|
||||
/* See which face we're on (only do lines on top face) */
|
||||
switch(ps.getLastBlockStep()) {
|
||||
case Y_MINUS:
|
||||
case Y_PLUS:
|
||||
if((lcolor != null) &&
|
||||
(((xyz[0] == 0) && (isHidden(mapiter.getBlockTypeAt(BlockStep.X_MINUS)))) ||
|
||||
((xyz[0] == (scale-1)) && (isHidden(mapiter.getBlockTypeAt(BlockStep.X_PLUS)))) ||
|
||||
((xyz[2] == 0) && (isHidden(mapiter.getBlockTypeAt(BlockStep.Z_MINUS)))) ||
|
||||
((xyz[2] == (scale-1)) && (isHidden(mapiter.getBlockTypeAt(BlockStep.Z_PLUS)))))) {
|
||||
c.setColor(lcolor);
|
||||
inWater = false;
|
||||
}
|
||||
else if ((watercolor != null) && blocktype.isWater()) {
|
||||
if (!inWater) {
|
||||
c.setColor(watercolor);
|
||||
inWater = true;
|
||||
case Y_MINUS:
|
||||
case Y_PLUS:
|
||||
if((lcolor != null) &&
|
||||
(((xyz[0] == 0) && (isHidden(mapiter.getBlockTypeAt(BlockStep.X_MINUS)))) ||
|
||||
((xyz[0] == (scale-1)) && (isHidden(mapiter.getBlockTypeAt(BlockStep.X_PLUS)))) ||
|
||||
((xyz[2] == 0) && (isHidden(mapiter.getBlockTypeAt(BlockStep.Z_MINUS)))) ||
|
||||
((xyz[2] == (scale-1)) && (isHidden(mapiter.getBlockTypeAt(BlockStep.Z_PLUS)))))) {
|
||||
c.setColor(lcolor);
|
||||
inWater = false;
|
||||
}
|
||||
else if ((watercolor != null) && blocktype.isWater()) {
|
||||
if (!inWater) {
|
||||
c.setColor(watercolor);
|
||||
inWater = true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
c.setColor(fillcolor[y >> heightshift]);
|
||||
inWater = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
c.setColor(fillcolor[y >> heightshift]);
|
||||
inWater = false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if((lcolor != null) && (xyz[1] == (scale-1))) {
|
||||
c.setColor(lcolor);
|
||||
inWater = false;
|
||||
}
|
||||
else if ((watercolor != null) && blocktype.isWater()) {
|
||||
if (!inWater) {
|
||||
c.setColor(watercolor);
|
||||
inWater = true;
|
||||
break;
|
||||
default:
|
||||
if((lcolor != null) && (xyz[1] == (scale-1))) {
|
||||
c.setColor(lcolor);
|
||||
inWater = false;
|
||||
}
|
||||
else if ((watercolor != null) && blocktype.isWater()) {
|
||||
if (!inWater) {
|
||||
c.setColor(watercolor);
|
||||
inWater = true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
c.setColor(fillcolor[y >> heightshift]);
|
||||
inWater = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
c.setColor(fillcolor[y >> heightshift]);
|
||||
inWater = false;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
/* Handle light level, if needed */
|
||||
lighting.applyLighting(ps, this, c, tmpcolor);
|
||||
|
||||
|
||||
/* If no previous color contribution, use new color */
|
||||
if(color[0].isTransparent()) {
|
||||
for(int i = 0; i < color.length; i++)
|
||||
|
@ -272,15 +280,15 @@ public class TopoHDShader implements HDShader {
|
|||
if(talpha > 0)
|
||||
for(int i = 0; i < color.length; i++)
|
||||
color[i].setRGBA((tmpcolor[i].getRed()*alpha2 + color[i].getRed()*alpha) / talpha,
|
||||
(tmpcolor[i].getGreen()*alpha2 + color[i].getGreen()*alpha) / talpha,
|
||||
(tmpcolor[i].getBlue()*alpha2 + color[i].getBlue()*alpha) / talpha, talpha);
|
||||
(tmpcolor[i].getGreen()*alpha2 + color[i].getGreen()*alpha) / talpha,
|
||||
(tmpcolor[i].getBlue()*alpha2 + color[i].getBlue()*alpha) / talpha, talpha);
|
||||
else
|
||||
for(int i = 0; i < color.length; i++)
|
||||
color[i].setTransparent();
|
||||
|
||||
|
||||
return (talpha >= 254); /* If only one short, no meaningful contribution left */
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Ray ended - used to report that ray has exited map (called if renderer has not reported complete)
|
||||
*/
|
||||
|
@ -324,7 +332,7 @@ public class TopoHDShader implements HDShader {
|
|||
public HDShaderState getStateInstance(HDMap map, MapChunkCache cache, MapIterator mapiter, int scale) {
|
||||
return new OurShaderState(mapiter, map, cache, scale);
|
||||
}
|
||||
|
||||
|
||||
/* Add shader's contributions to JSON for map object */
|
||||
public void addClientConfiguration(JSONObject mapObject) {
|
||||
s(mapObject, "shader", name);
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -130,6 +130,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) Show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
|
@ -143,6 +143,7 @@ components:
|
|||
spawnbedhidebydefault: true
|
||||
spawnbedminzoom: 0
|
||||
spawnbedformat: "%name%'s bed"
|
||||
spawnbedremoveonplayerleave: true
|
||||
# (optional) show world border (vanilla 1.8+)
|
||||
showworldborder: true
|
||||
worldborderlabel: "Border"
|
||||
|
|
Loading…
Reference in New Issue