Provide grayscale and graytone in default lighting

This commit is contained in:
Mike Primm 2020-05-02 14:11:52 -05:00
parent 2c3adfb451
commit 28f2935fc5
3 changed files with 19 additions and 19 deletions

View File

@ -10,11 +10,26 @@ import static org.dynmap.JSONUtils.s;
public class DefaultHDLighting implements HDLighting {
private String name;
protected final boolean grayscale;
protected final Color graytone;
public DefaultHDLighting(DynmapCore core, ConfigurationNode configuration) {
name = (String) configuration.get("name");
grayscale = configuration.getBoolean("grayscale", false);
graytone = configuration.getColor("graytone", null);
}
protected void checkGrayscale(Color[] outcolor) {
if (grayscale) {
outcolor[0].setGrayscale();
if (graytone != null) outcolor[0].blendColor(graytone);
if (outcolor.length > 1) {
outcolor[1].setGrayscale();
if (graytone != null) outcolor[1].blendColor(graytone);
}
}
}
/* Get lighting name */
public String getName() { return name; }
@ -22,6 +37,7 @@ public class DefaultHDLighting implements HDLighting {
public void applyLighting(HDPerspectiveState ps, HDShaderState ss, Color incolor, Color[] outcolor) {
for(int i = 0; i < outcolor.length; i++)
outcolor[i].setColor(incolor);
checkGrayscale(outcolor);
}
/* Test if Biome Data is needed for this renderer */

View File

@ -15,8 +15,6 @@ public class ShadowHDLighting extends DefaultHDLighting {
protected final int lightscale[]; /* scale skylight level (light = lightscale[skylight] */
protected final boolean night_and_day; /* If true, render both day (prefix+'-day') and night (prefix) tiles */
protected final boolean smooth;
protected final boolean grayscale;
protected final Color graytone;
protected final boolean useWorldBrightnessTable;
public ShadowHDLighting(DynmapCore core, ConfigurationNode configuration) {
@ -46,8 +44,6 @@ public class ShadowHDLighting extends DefaultHDLighting {
lightscale[i] = i - (15-v);
}
smooth = configuration.getBoolean("smooth-lighting", MapManager.mapman.getSmoothLighting());
grayscale = configuration.getBoolean("grayscale", false);
graytone = configuration.getColor("graytone", null);
}
private void applySmoothLighting(HDPerspectiveState ps, HDShaderState ss, Color incolor, Color[] outcolor, int[] shadowscale) {
@ -219,18 +215,7 @@ public class ShadowHDLighting extends DefaultHDLighting {
}
return lightlevel;
}
private void checkGrayscale(Color[] outcolor) {
if (grayscale) {
outcolor[0].setGrayscale();
if (graytone != null) outcolor[0].blendColor(graytone);
if (outcolor.length > 1) {
outcolor[1].setGrayscale();
if (graytone != null) outcolor[1].blendColor(graytone);
}
}
}
/* Apply lighting to given pixel colors (1 outcolor if normal, 2 if night/day) */
public void applyLighting(HDPerspectiveState ps, HDShaderState ss, Color incolor, Color[] outcolor) {
int[] shadowscale = null;

View File

@ -93,11 +93,10 @@ lightings:
grayscale: true
graytone: '#C09A53'
smooth-lighting: true
# No shadows day mode - grayscale parchment
- class: org.dynmap.hdmap.ShadowHDLighting
# Default day mode - grayscale parchment
- class: org.dynmap.hdmap.DefaultHDLighting
name: parchment-noshadow
grayscale: true
graytone: '#C09A53'
shadowstrength: 0.0