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.renderer.DynmapBlockState;
import org.dynmap.utils.DataBitsPacked; import org.dynmap.utils.DataBitsPacked;
import org.dynmap.Log;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag; import net.minecraft.nbt.ListTag;

View File

@ -1343,13 +1343,13 @@ public class DynmapPlugin
/* Handler for generic console command sender */ /* Handler for generic console command sender */
public class ForgeCommandSender implements DynmapCommandSender public class ForgeCommandSender implements DynmapCommandSender
{ {
private CommandSource sender; private CommandSourceStack sender;
protected ForgeCommandSender() { protected ForgeCommandSender() {
sender = null; sender = null;
} }
public ForgeCommandSender(CommandSource send) public ForgeCommandSender(CommandSourceStack send)
{ {
sender = send; sender = send;
} }
@ -1365,7 +1365,7 @@ public class DynmapPlugin
{ {
if(sender != null) { if(sender != null) {
TextComponent ichatcomponent = new TextComponent(msg); 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) { if(bb != null) {
String id = bb.toString(); String id = bb.toString();
float tmp = bb.getBaseTemperature(), hum = bb.getDownfall(); float tmp = bb.getBaseTemperature(), hum = bb.getDownfall();
int watermult = bb.getWaterColor(); int watermult = bb.getWaterColor() | 0xFF000000;
Log.verboseinfo("biome[" + i + "]: hum=" + hum + ", tmp=" + tmp + ", mult=" + Integer.toHexString(watermult)); Log.info("biome[" + i + "]: hum=" + hum + ", tmp=" + tmp + ", mult=" + Integer.toHexString(watermult));
BiomeMap bmap = BiomeMap.byBiomeID(i); BiomeMap bmap = BiomeMap.byBiomeID(i);
if (bmap.isDefault()) { if (bmap.isDefault()) {
bmap = new BiomeMap(i, id, tmp, hum); bmap = new BiomeMap(i, id, tmp, hum);
Log.verboseinfo("Add custom biome [" + bmap.toString() + "] (" + i + ")"); Log.info("Add custom biome [" + bmap.toString() + "] (" + i + ")");
cnt++; cnt++;
} }
else { else {
@ -1411,7 +1411,7 @@ public class DynmapPlugin
} }
if (watermult != -1) { if (watermult != -1) {
bmap.setWaterColorMultiplier(watermult); 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 */ /* Get MC version */
String mcver = server.getServerVersion(); String mcver = server.getServerVersion();
/* Load extra biomes */ /* Load extra biomes */
loadExtraBiomes(mcver); loadExtraBiomes(mcver);
/* Set up player login/quit event handler */ /* Set up player login/quit event handler */
@ -1605,7 +1604,7 @@ public class DynmapPlugin
} }
else else
{ {
dsender = new ForgeCommandSender(); dsender = new ForgeCommandSender(commandSourceStack);
} }
try { try {
core.processCommand(dsender, cmd, cmd, args); 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.border.WorldBorder;
import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
import org.dynmap.DynmapChunk; import org.dynmap.DynmapChunk;
@ -18,6 +18,7 @@ import org.dynmap.DynmapLocation;
import org.dynmap.DynmapWorld; import org.dynmap.DynmapWorld;
import org.dynmap.utils.MapChunkCache; import org.dynmap.utils.MapChunkCache;
import org.dynmap.utils.Polygon; import org.dynmap.utils.Polygon;
import org.dynmap.Log;
public class ForgeWorld extends DynmapWorld public class ForgeWorld extends DynmapWorld
{ {
@ -37,16 +38,26 @@ public class ForgeWorld extends DynmapWorld
} }
public static String getWorldName(ServerLevelAccessor w) { 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) public ForgeWorld(ServerLevelAccessor w)
{ {
this(getWorldName(w), w.getLevel().getHeight(), this(getWorldName(w),
w.getLevel().getHeight(),
w.getLevel().getSeaLevel(), w.getLevel().getSeaLevel(),
w.getLevel().dimension() == Level.NETHER, w.getLevel().dimension() == Level.NETHER,
w.getLevel().dimension() == Level.END, w.getLevel().dimension() == Level.END,
w.getLevel().serverLevelData.getLevelName()); getWorldName(w));
setWorldLoaded(w); setWorldLoaded(w);
} }
public ForgeWorld(String name, int height, int sealevel, boolean nether, boolean the_end, String deftitle) 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"; env = "normal";
} }
Log.info(getName() + ": skylight=" + skylight + ", height=" + this.worldheight + ", isnether=" + isnether + ", istheend=" + istheend);
} }
/* Test if world is nether */ /* Test if world is nether */
@Override @Override
@ -141,7 +152,9 @@ public class ForgeWorld extends DynmapWorld
this.sealevel = w.getLevel().getSeaLevel(); // Read actual current sealevel from world this.sealevel = w.getLevel().getSeaLevel(); // Read actual current sealevel from world
// Update lighting table // Update lighting table
for (int i = 0; i < 16; i++) { 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 */ /* Get light level of block */