split mapblockrenderer
parent
ec02591720
commit
78fc901ca0
|
@ -7,27 +7,21 @@ import java.awt.image.BufferedImage;
|
|||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.zip.DataFormatException;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import com.google.common.util.concurrent.Striped;
|
||||
import io.prometheus.client.Histogram;
|
||||
import io.rudin.minetest.tileserver.accessor.Coordinate;
|
||||
import io.rudin.minetest.tileserver.config.Layer;
|
||||
import io.rudin.minetest.tileserver.config.TileServerConfig;
|
||||
import io.rudin.minetest.tileserver.qualifier.MapDB;
|
||||
import io.rudin.minetest.tileserver.query.YQueryBuilder;
|
||||
import org.jooq.Condition;
|
||||
import io.rudin.minetest.tileserver.service.MapBlockRenderService;
|
||||
import org.jooq.DSLContext;
|
||||
import org.jooq.Result;
|
||||
import org.jooq.impl.DSL;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -43,7 +37,7 @@ public class TileRenderer {
|
|||
private static final Logger logger = LoggerFactory.getLogger(TileRenderer.class);
|
||||
|
||||
@Inject
|
||||
public TileRenderer(@MapDB DSLContext ctx, TileCache cache, MapBlockRenderer blockRenderer, TileServerConfig cfg, YQueryBuilder yQueryBuilder) {
|
||||
public TileRenderer(@MapDB DSLContext ctx, TileCache cache, MapBlockRenderService blockRenderer, TileServerConfig cfg, YQueryBuilder yQueryBuilder) {
|
||||
this.ctx = ctx;
|
||||
this.cache = cache;
|
||||
this.blockRenderer = blockRenderer;
|
||||
|
@ -61,7 +55,7 @@ public class TileRenderer {
|
|||
|
||||
private final DSLContext ctx;
|
||||
|
||||
private final MapBlockRenderer blockRenderer;
|
||||
private final MapBlockRenderService blockRenderer;
|
||||
|
||||
static final Histogram renderTime = Histogram.build()
|
||||
.name("tileserver_render_time_seconds").help("Render time in seconds.").register();
|
||||
|
|
|
@ -13,9 +13,9 @@ import io.rudin.minetest.tileserver.provider.ExecutorProvider;
|
|||
import io.rudin.minetest.tileserver.provider.LayerConfigProvider;
|
||||
import io.rudin.minetest.tileserver.service.BlocksRecordService;
|
||||
import io.rudin.minetest.tileserver.service.EventBus;
|
||||
import io.rudin.minetest.tileserver.service.MapBlockRenderService;
|
||||
import io.rudin.minetest.tileserver.service.TileCache;
|
||||
import io.rudin.minetest.tileserver.service.impl.*;
|
||||
import org.jooq.util.jaxb.Database;
|
||||
|
||||
public class ServiceModule extends AbstractModule {
|
||||
|
||||
|
@ -44,5 +44,6 @@ public class ServiceModule extends AbstractModule {
|
|||
bind(ScheduledExecutorService.class).toProvider(ExecutorProvider.class);
|
||||
bind(LayerConfig.class).toProvider(LayerConfigProvider.class);
|
||||
bind(BlocksRecordService.class).to(BlocksRecordDatabaseService.class);
|
||||
bind(MapBlockRenderService.class).to(DefaultMapBlockRenderService.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package io.rudin.minetest.tileserver.service;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.zip.DataFormatException;
|
||||
|
||||
public interface MapBlockRenderService {
|
||||
void render(int fromY, int toY, int mapBlockX, int mapBlockZ, Graphics graphics, int scale) throws IllegalArgumentException, DataFormatException, ExecutionException;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package io.rudin.minetest.tileserver;
|
||||
package io.rudin.minetest.tileserver.service.impl;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Optional;
|
||||
|
@ -9,11 +9,11 @@ import javax.inject.Inject;
|
|||
import javax.inject.Singleton;
|
||||
|
||||
import io.prometheus.client.Histogram;
|
||||
import io.rudin.minetest.tileserver.ColorTable;
|
||||
import io.rudin.minetest.tileserver.accessor.Coordinate;
|
||||
import io.rudin.minetest.tileserver.accessor.MapBlockAccessor;
|
||||
import io.rudin.minetest.tileserver.config.Layer;
|
||||
import io.rudin.minetest.tileserver.config.TileServerConfig;
|
||||
import io.rudin.minetest.tileserver.query.YQueryBuilder;
|
||||
import io.rudin.minetest.tileserver.service.MapBlockRenderService;
|
||||
import io.rudin.minetest.tileserver.util.MapBlock;
|
||||
import io.rudin.minetest.tileserver.util.UnknownBlockCollector;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -21,14 +21,14 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
|
||||
@Singleton
|
||||
public class MapBlockRenderer {
|
||||
public class DefaultMapBlockRenderService implements MapBlockRenderService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MapBlockRenderer.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DefaultMapBlockRenderService.class);
|
||||
|
||||
private static final int BLOCK_SIZE = 16;
|
||||
|
||||
@Inject
|
||||
public MapBlockRenderer(ColorTable colorTable, MapBlockAccessor mapBlockAccessor, TileServerConfig cfg, UnknownBlockCollector unknownBlockCollector) {
|
||||
public DefaultMapBlockRenderService(ColorTable colorTable, MapBlockAccessor mapBlockAccessor, TileServerConfig cfg, UnknownBlockCollector unknownBlockCollector) {
|
||||
this.colorTable = colorTable;
|
||||
this.mapBlockAccessor = mapBlockAccessor;
|
||||
this.unknownBlockCollector = unknownBlockCollector;
|
||||
|
@ -47,10 +47,6 @@ public class MapBlockRenderer {
|
|||
|
||||
private final ColorTable colorTable;
|
||||
|
||||
public void render(int fromY, int toY, int x, int z, Graphics graphics) throws IllegalArgumentException, DataFormatException, ExecutionException {
|
||||
render(fromY, toY, x, z, graphics, 1);
|
||||
}
|
||||
|
||||
public void render(int fromY, int toY, int mapBlockX, int mapBlockZ, Graphics graphics, int scale) throws IllegalArgumentException, DataFormatException, ExecutionException {
|
||||
|
||||
logger.debug("Rendering block: x={} z={}", mapBlockX, mapBlockZ);
|
Loading…
Reference in New Issue