More Forge 1.17.1 updates (still not shading right)

This commit is contained in:
Mike Primm 2021-07-25 21:15:02 -05:00
parent 83fe113db1
commit fbad9a746a
3 changed files with 28 additions and 15 deletions

View File

@ -4,6 +4,7 @@ import java.util.Arrays;
import org.dynmap.renderer.DynmapBlockState;
import org.dynmap.utils.DataBitsPacked;
import org.dynmap.Log;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;

View File

@ -1343,13 +1343,13 @@ public class DynmapPlugin
/* Handler for generic console command sender */
public class ForgeCommandSender implements DynmapCommandSender
{
private CommandSource sender;
private CommandSourceStack sender;
protected ForgeCommandSender() {
sender = null;
}
public ForgeCommandSender(CommandSource send)
public ForgeCommandSender(CommandSourceStack send)
{
sender = send;
}
@ -1365,7 +1365,7 @@ public class DynmapPlugin
{
if(sender != null) {
TextComponent ichatcomponent = new TextComponent(msg);
sender.sendMessage(ichatcomponent, Util.NIL_UUID);
sender.sendSuccess(ichatcomponent, true);
}
}
@ -1396,13 +1396,13 @@ public class DynmapPlugin
if(bb != null) {
String id = bb.toString();
float tmp = bb.getBaseTemperature(), hum = bb.getDownfall();
int watermult = bb.getWaterColor();
Log.verboseinfo("biome[" + i + "]: hum=" + hum + ", tmp=" + tmp + ", mult=" + Integer.toHexString(watermult));
int watermult = bb.getWaterColor() | 0xFF000000;
Log.info("biome[" + i + "]: hum=" + hum + ", tmp=" + tmp + ", mult=" + Integer.toHexString(watermult));
BiomeMap bmap = BiomeMap.byBiomeID(i);
if (bmap.isDefault()) {
bmap = new BiomeMap(i, id, tmp, hum);
Log.verboseinfo("Add custom biome [" + bmap.toString() + "] (" + i + ")");
Log.info("Add custom biome [" + bmap.toString() + "] (" + i + ")");
cnt++;
}
else {
@ -1411,7 +1411,7 @@ public class DynmapPlugin
}
if (watermult != -1) {
bmap.setWaterColorMultiplier(watermult);
Log.verboseinfo("Set watercolormult for " + bmap.toString() + " (" + i + ") to " + Integer.toHexString(watermult));
Log.info("Set watercolormult for " + bmap.toString() + " (" + i + ") to " + Integer.toHexString(watermult));
}
}
}
@ -1435,7 +1435,6 @@ public class DynmapPlugin
{
/* Get MC version */
String mcver = server.getServerVersion();
/* Load extra biomes */
loadExtraBiomes(mcver);
/* Set up player login/quit event handler */
@ -1605,7 +1604,7 @@ public class DynmapPlugin
}
else
{
dsender = new ForgeCommandSender();
dsender = new ForgeCommandSender(commandSourceStack);
}
try {
core.processCommand(dsender, cmd, cmd, args);

View File

@ -8,9 +8,9 @@ import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.border.WorldBorder;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LightLayer;
import org.dynmap.DynmapChunk;
@ -18,6 +18,7 @@ import org.dynmap.DynmapLocation;
import org.dynmap.DynmapWorld;
import org.dynmap.utils.MapChunkCache;
import org.dynmap.utils.Polygon;
import org.dynmap.Log;
public class ForgeWorld extends DynmapWorld
{
@ -37,16 +38,26 @@ public class ForgeWorld extends DynmapWorld
}
public static String getWorldName(ServerLevelAccessor w) {
return w.getLevel().serverLevelData.getLevelName();
ResourceKey<Level> rk = w.getLevel().dimension();
if (rk == Level.OVERWORLD) { // Overworld?
return w.getLevel().serverLevelData.getLevelName();
} else if (rk == Level.END) {
return "DIM1";
} else if (rk == Level.NETHER) {
return "DIM-1";
} else {
return rk.getRegistryName() + "_" + rk.location();
}
}
public ForgeWorld(ServerLevelAccessor w)
{
this(getWorldName(w), w.getLevel().getHeight(),
this(getWorldName(w),
w.getLevel().getHeight(),
w.getLevel().getSeaLevel(),
w.getLevel().dimension() == Level.NETHER,
w.getLevel().dimension() == Level.END,
w.getLevel().serverLevelData.getLevelName());
getWorldName(w));
setWorldLoaded(w);
}
public ForgeWorld(String name, int height, int sealevel, boolean nether, boolean the_end, String deftitle)
@ -70,7 +81,7 @@ public class ForgeWorld extends DynmapWorld
{
env = "normal";
}
Log.info(getName() + ": skylight=" + skylight + ", height=" + this.worldheight + ", isnether=" + isnether + ", istheend=" + istheend);
}
/* Test if world is nether */
@Override
@ -141,7 +152,9 @@ public class ForgeWorld extends DynmapWorld
this.sealevel = w.getLevel().getSeaLevel(); // Read actual current sealevel from world
// Update lighting table
for (int i = 0; i < 16; i++) {
this.setBrightnessTableEntry(i, w.getLevel().dimensionType().brightness(i));
float light = w.getLevel().dimensionType().brightness(i);
this.setBrightnessTableEntry(i, light);
Log.info(getName() + ": light " + i + " = " + light);
}
}
/* Get light level of block */