small fixes to tree generator new tree cutter
This commit is contained in:
@@ -315,8 +315,6 @@ public class LodDimension
|
||||
LevelPos levelPos;
|
||||
LodRegion region;
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("cutting tree : \n");
|
||||
for (int x = 0; x < regions.length; x++)
|
||||
{
|
||||
for (int z = 0; z < regions.length; z++)
|
||||
@@ -331,10 +329,8 @@ public class LodDimension
|
||||
if(DetailDistanceUtil.getDistanceCut(index + 1) > levelPos.minDistance(playerPosX, playerPosZ)){
|
||||
region = regions[x][z];
|
||||
|
||||
byte cutDetailLevel = (byte) (DetailDistanceUtil.getCutLodDetail(index).detailLevel);
|
||||
byte cutDetailLevel = DetailDistanceUtil.getCutLodDetail(index).detailLevel;
|
||||
|
||||
stringBuilder.append(cutDetailLevel);
|
||||
stringBuilder.append("\t");
|
||||
if(region != null && cutDetailLevel > 0)
|
||||
{
|
||||
region.cutTree(cutDetailLevel);
|
||||
@@ -344,9 +340,7 @@ public class LodDimension
|
||||
}
|
||||
}
|
||||
}
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
System.out.println(stringBuilder);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -359,8 +353,6 @@ public class LodDimension
|
||||
RegionPos regionPos;
|
||||
LodRegion region;
|
||||
byte targetDetailLevel;
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("generating tree : \n");
|
||||
for (int x = 0; x < regions.length; x++)
|
||||
{
|
||||
for (int z = 0; z < regions.length; z++)
|
||||
@@ -377,43 +369,31 @@ public class LodDimension
|
||||
|
||||
region = regions[x][z];
|
||||
//We require that the region we are checking is loaded with at least this level
|
||||
targetDetailLevel = (byte) (DetailDistanceUtil.getLodDetail(index).detailLevel);
|
||||
targetDetailLevel = DetailDistanceUtil.getLodDetail(index).detailLevel;
|
||||
|
||||
if (region == null)
|
||||
{
|
||||
//First case, region has to be initialized
|
||||
|
||||
//We check if there is a file at the target level
|
||||
region = getRegionFromFile(regionPos, targetDetailLevel);
|
||||
regions[x][z] = getRegionFromFile(regionPos, targetDetailLevel);
|
||||
|
||||
//if there is no file we initialize the region
|
||||
if (region == null)
|
||||
if (regions[x][z] == null)
|
||||
{
|
||||
regions[x][z] = new LodRegion(targetDetailLevel, regionPos);
|
||||
stringBuilder.append(targetDetailLevel);
|
||||
stringBuilder.append("i");
|
||||
stringBuilder.append("\t");
|
||||
}else{
|
||||
stringBuilder.append(targetDetailLevel);
|
||||
stringBuilder.append("l");
|
||||
stringBuilder.append("\t");
|
||||
}
|
||||
|
||||
}else if(region.getMinDetailLevel() > targetDetailLevel){
|
||||
//Second case, region has been initialized but at a higher level
|
||||
//We expand the region by introducing the missing layer
|
||||
stringBuilder.append(targetDetailLevel);
|
||||
stringBuilder.append("e");
|
||||
stringBuilder.append("\t");
|
||||
region.expand(targetDetailLevel);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
System.out.println(stringBuilder);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -746,11 +726,32 @@ public class LodDimension
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
String s = "";
|
||||
int regionX;
|
||||
int regionZ;
|
||||
LevelPos levelPos;
|
||||
LodRegion region;
|
||||
|
||||
s += "dim: " + dimension.toString() + "\t";
|
||||
s += "(" + center.x + "," + center.z + ")";
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("Dimension : \n");
|
||||
for (int x = 0; x < regions.length; x++)
|
||||
{
|
||||
for (int z = 0; z < regions.length; z++)
|
||||
{
|
||||
region = regions[x][z];
|
||||
if(region == null)
|
||||
{
|
||||
stringBuilder.append("n");
|
||||
stringBuilder.append("\t");
|
||||
|
||||
return s;
|
||||
}else
|
||||
{
|
||||
stringBuilder.append(region.getMinDetailLevel());
|
||||
stringBuilder.append("\t");
|
||||
}
|
||||
}
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
System.out.println(stringBuilder);
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,9 +99,14 @@ public class ClientProxy
|
||||
LodDimension lodDim = lodWorld.getLodDimension(mc.player.level.dimensionType());
|
||||
if (lodDim == null)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
playerMoveEvent(lodDim);
|
||||
|
||||
//System.out.println("memory needed " + lodDim.getMinMemoryNeeded() + " byte");
|
||||
|
||||
lodDim.treeCutter((int) mc.player.getX(),(int) mc.player.getZ());
|
||||
lodDim.treeGenerator((int) mc.player.getX(),(int) mc.player.getZ());
|
||||
System.out.println(lodDim);
|
||||
|
||||
// comment out when creating a release
|
||||
applyConfigOverrides();
|
||||
@@ -243,7 +248,7 @@ public class ClientProxy
|
||||
{
|
||||
lodWorld.saveAllDimensions();
|
||||
lodDim.move(worldRegionOffset);
|
||||
//LOGGER.info("offset: " + worldRegionOffset.x + "," + worldRegionOffset.z + "\t center: " + lodDim.getCenterX() + "," + lodDim.getCenterZ());
|
||||
LOGGER.info("offset: " + worldRegionOffset.x + "," + worldRegionOffset.z + "\t center: " + lodDim.getCenterX() + "," + lodDim.getCenterZ());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -439,8 +439,8 @@ public class LodRenderer
|
||||
|
||||
if (fogQuality == FogQuality.FANCY)
|
||||
{
|
||||
RenderSystem.fogStart(farPlaneBlockDistance * 1.5f);
|
||||
RenderSystem.fogEnd(farPlaneBlockDistance * 2.0f);
|
||||
RenderSystem.fogStart(farPlaneBlockDistance * 0.9f);
|
||||
RenderSystem.fogEnd(farPlaneBlockDistance * 1f);
|
||||
} else if (fogQuality == FogQuality.FAST)
|
||||
{
|
||||
// for the far fog of the normal chunks
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.seibel.lod.handlers.LodConfig;
|
||||
|
||||
public class DetailDistanceUtil
|
||||
{
|
||||
private static double genMultiplier = 1.25;
|
||||
private static double genMultiplier = 1;
|
||||
private static double cutMultiplier = 1.5;
|
||||
private static int minDetail = LodConfig.CLIENT.maxGenerationDetail.get().detailLevel;
|
||||
private static int maxDetail = LodUtil.REGION_DETAIL_LEVEL + 1;
|
||||
@@ -38,7 +38,6 @@ public class DetailDistanceUtil
|
||||
LodDetail.SINGLE};
|
||||
|
||||
private static LodDetail[] lodDetailsCut = {
|
||||
LodDetail.FULL,
|
||||
LodDetail.FULL,
|
||||
LodDetail.HALF,
|
||||
LodDetail.QUAD,
|
||||
@@ -48,13 +47,14 @@ public class DetailDistanceUtil
|
||||
LodDetail.SINGLE,
|
||||
LodDetail.SINGLE,
|
||||
LodDetail.SINGLE,
|
||||
LodDetail.SINGLE,
|
||||
LodDetail.SINGLE};
|
||||
|
||||
public static int getDistanceRendering(int detail)
|
||||
{
|
||||
int distance = 0;
|
||||
int initial = LodConfig.CLIENT.lodQuality.get() * 256;
|
||||
if(detail == minDetail)
|
||||
int initial = LodConfig.CLIENT.lodQuality.get() * 128;
|
||||
if(detail <= minDetail)
|
||||
return minDistance;
|
||||
if(detail == maxDetail)
|
||||
return maxDistance;
|
||||
|
||||
Reference in New Issue
Block a user