diff --git a/src/main/java/com/seibel/lod/builders/LodChunkBuilder.java b/src/main/java/com/seibel/lod/builders/LodChunkBuilder.java index df85ee083..66b82eac9 100644 --- a/src/main/java/com/seibel/lod/builders/LodChunkBuilder.java +++ b/src/main/java/com/seibel/lod/builders/LodChunkBuilder.java @@ -12,10 +12,13 @@ import com.seibel.lod.objects.LodDimension; import com.seibel.lod.objects.LodWorld; import com.seibel.lod.util.LodUtil; +import net.minecraft.block.AbstractPlantBlock; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.block.BushBlock; import net.minecraft.block.FlowingFluidBlock; import net.minecraft.block.GrassBlock; +import net.minecraft.block.IGrowable; import net.minecraft.block.LeavesBlock; import net.minecraft.world.DimensionType; import net.minecraft.world.IWorld; @@ -312,7 +315,7 @@ public class LodChunkBuilder * each x and z. * @param config_useBiomeColors
* If true use biome foliage, water, and grass colors,
- * otherwise use the + * otherwise only use the block's material color */ private Color generateLodColorForArea(IChunk chunk, LodBuilderConfig config, int startX, int startZ, int endX, int endZ) { @@ -357,9 +360,19 @@ public class LodChunkBuilder Biome biome = chunk.getBiomes().getNoiseBiome(x, y + i * chunkSections.length, z); if (biome.getBiomeCategory() == Biome.Category.OCEAN || - biome.getBiomeCategory() == Biome.Category.RIVER) + biome.getBiomeCategory() == Biome.Category.RIVER) { - colorInt = biome.getWaterColor(); + if (config.useSolidBlocksInColorGen && + blockState != Blocks.WATER.defaultBlockState()) + { + // non-water block + colorInt = getColorForBlock(x, z, blockState, biome); + } + else + { + // water block + colorInt = biome.getWaterColor(); + } } else if (biome.getBiomeCategory() == Biome.Category.EXTREME_HILLS) { @@ -432,12 +445,16 @@ public class LodChunkBuilder colorInt = biome.getGrassColor(x, z); } + else if (blockState.getBlock() instanceof LeavesBlock) { Color leafColor = LodUtil.intToColor(biome.getFoliageColor()).darker(); colorInt = LodUtil.colorToInt(leafColor); } - else if (blockState.getBlock() instanceof GrassBlock) + else if (blockState.getBlock() instanceof GrassBlock || + blockState.getBlock() instanceof AbstractPlantBlock || + blockState.getBlock() instanceof BushBlock || + blockState.getBlock() instanceof IGrowable) { colorInt = biome.getGrassColor(x, z); }