Make Core Level Wrappers implement API wrappers

This commit is contained in:
James Seibel
2022-09-16 22:55:37 -05:00
parent cd05d5d811
commit be28eaf122
7 changed files with 48 additions and 26 deletions
@@ -25,7 +25,12 @@ import org.apache.logging.log4j.Logger;
import java.util.List;
import java.util.Random;
public class ClientBlockStateCache {
/**
*
* @version 2022-9-16
*/
public class ClientBlockStateCache
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
@@ -40,7 +45,7 @@ public class ClientBlockStateCache {
public final BlockPos pos;
public ClientBlockStateCache(BlockState blockState, IClientLevelWrapper samplingLevel, DhBlockPos samplingPos) {
state = blockState;
level = (LevelReader) samplingLevel.unwrapLevel();
level = (LevelReader) samplingLevel.getWrappedMcObject_UNSAFE();
pos = McObjectConverter.Convert(samplingPos);
resolveColors();
//LOGGER.info("ClientBlocKCache created for {}", blockState);
@@ -14,7 +14,12 @@ import org.apache.logging.log4j.Logger;
import java.util.Arrays;
public class ServerBlockStateCache {
/**
*
* @version 2022-9-16
*/
public class ServerBlockStateCache
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
public final BlockState state;
@@ -23,7 +28,7 @@ public class ServerBlockStateCache {
public ServerBlockStateCache(BlockState blockState, ILevelWrapper samplingLevel, DhBlockPos samplingPos) {
state = blockState;
level = (LevelReader) samplingLevel.unwrapLevel();
level = (LevelReader) samplingLevel.getWrappedMcObject_UNSAFE();
pos = McObjectConverter.Convert(samplingPos);
resolveShapes();
//LOGGER.info("ServerBlockState created for {}", blockState);
@@ -1,5 +1,7 @@
package com.seibel.lod.common.wrappers.world;
import com.seibel.lod.api.items.enums.worldGeneration.EDhApiLevelType;
import com.seibel.lod.api.items.interfaces.world.IDhApiDimensionTypeWrapper;
import com.seibel.lod.common.wrappers.McObjectConverter;
import com.seibel.lod.common.wrappers.block.BiomeWrapper;
import com.seibel.lod.common.wrappers.block.BlockStateWrapper;
@@ -25,6 +27,10 @@ import org.jetbrains.annotations.Nullable;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* @version 2022-9-16
*/
public class ClientLevelWrapper implements IClientLevelWrapper
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger(ClientLevelWrapper.class.getSimpleName());
@@ -69,12 +75,15 @@ public class ClientLevelWrapper implements IClientLevelWrapper
}
@Override
public DimensionTypeWrapper getDimensionType()
public IDhApiDimensionTypeWrapper getDimensionType()
{
return DimensionTypeWrapper.getDimensionTypeWrapper(level.dimensionType());
}
@Override
@Override
public EDhApiLevelType getLevelType() { return EDhApiLevelType.CLIENT_LEVEL; }
@Override
public int getBlockLight(int x, int y, int z)
{
return level.getBrightness(LightLayer.BLOCK, new BlockPos(x,y,z));
@@ -107,12 +116,12 @@ public class ClientLevelWrapper implements IClientLevelWrapper
}
@Override
public short getMinHeight()
public int getMinHeight()
{
#if PRE_MC_1_17_1
return (short) 0;
return 0;
#else
return (short) level.getMinBuildHeight();
return level.getMinBuildHeight();
#endif
}
@@ -140,7 +149,7 @@ public class ClientLevelWrapper implements IClientLevelWrapper
}
@Override
public ClientLevel unwrapLevel()
public ClientLevel getWrappedMcObject_UNSAFE()
{
return level;
}
@@ -28,7 +28,7 @@ import net.minecraft.world.level.dimension.DimensionType;
/**
* @author James Seibel
* @version 2022-8-23
* @version 2022-9-16
*/
public class DimensionTypeWrapper implements IDimensionTypeWrapper
{
@@ -78,9 +78,9 @@ public class DimensionTypeWrapper implements IDimensionTypeWrapper
{
return dimensionType.hasSkyLight();
}
@Override
public Object getWrappedMcObject()
@Override
public Object getWrappedMcObject_UNSAFE()
{
return this.dimensionType;
}
@@ -22,6 +22,7 @@ package com.seibel.lod.common.wrappers.world;
import java.io.File;
import java.util.concurrent.ConcurrentHashMap;
import com.seibel.lod.api.items.enums.worldGeneration.EDhApiLevelType;
import com.seibel.lod.common.wrappers.McObjectConverter;
import com.seibel.lod.common.wrappers.block.BiomeWrapper;
import com.seibel.lod.common.wrappers.block.BlockStateWrapper;
@@ -48,9 +49,8 @@ import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable;
/**
* @author James Seibel
* @author ??
* @version 11-21-2021
*
* @version 2022-9-16
*/
public class ServerLevelWrapper implements IServerLevelWrapper
{
@@ -103,8 +103,11 @@ public class ServerLevelWrapper implements IServerLevelWrapper
{
return DimensionTypeWrapper.getDimensionTypeWrapper(level.dimensionType());
}
@Override
@Override
public EDhApiLevelType getLevelType() { return EDhApiLevelType.CLIENT_LEVEL; }
@Override
public int getBlockLight(int x, int y, int z)
{
return level.getBrightness(LightLayer.BLOCK, new BlockPos(x,y,z));
@@ -140,12 +143,12 @@ public class ServerLevelWrapper implements IServerLevelWrapper
}
@Override
public short getMinHeight()
public int getMinHeight()
{
#if PRE_MC_1_17_1
return (short) 0;
return 0;
#else
return (short) level.getMinBuildHeight();
return level.getMinBuildHeight();
#endif
}
@Override
@@ -173,7 +176,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper
}
@Override
public ServerLevel unwrapLevel()
public ServerLevel getWrappedMcObject_UNSAFE()
{
return level;
}
@@ -69,7 +69,7 @@ public final class GlobalParameters
{
this.lodLevel = lodLevel;
level = ((ServerLevelWrapper)lodLevel.getServerLevelWrapper()).unwrapLevel();
level = ((ServerLevelWrapper)lodLevel.getServerLevelWrapper()).getWrappedMcObject_UNSAFE();
lightEngine = (ThreadedLevelLightEngine) level.getLightEngine();
MinecraftServer server = level.getServer();
WorldData worldData = server.getWorldData();