diff --git a/src/main/java/io/rudin/minetest/tileserver/TileServer.java b/src/main/java/io/rudin/minetest/tileserver/TileServer.java
index 2fd3860..fe61181 100644
--- a/src/main/java/io/rudin/minetest/tileserver/TileServer.java
+++ b/src/main/java/io/rudin/minetest/tileserver/TileServer.java
@@ -18,10 +18,7 @@
import io.rudin.minetest.tileserver.module.ServiceModule;
import io.rudin.minetest.tileserver.listener.PoiMapBlockListener;
import io.rudin.minetest.tileserver.listener.TravelNetBlockListener;
-import io.rudin.minetest.tileserver.route.ConfigRoute;
-import io.rudin.minetest.tileserver.route.PlayerRoute;
-import io.rudin.minetest.tileserver.route.PoiRoute;
-import io.rudin.minetest.tileserver.route.TileRoute;
+import io.rudin.minetest.tileserver.route.*;
import io.rudin.minetest.tileserver.transformer.JsonTransformer;
import io.rudin.minetest.tileserver.ws.WebSocketHandler;
import io.rudin.minetest.tileserver.ws.WebSocketUpdater;
@@ -55,7 +52,9 @@ public static void main(String[] args) throws Exception {
get("/tiles/:z/:x/:y", injector.getInstance(TileRoute.class));
get("/player", injector.getInstance(PlayerRoute.class), json);
get("/config", injector.getInstance(ConfigRoute.class), json);
- get("/listener", injector.getInstance(PoiRoute.class), json);
+
+ get("/travelnet", injector.getInstance(TravelnetRoute.class), json);
+ get("/poi", injector.getInstance(PoiRoute.class), json);
//Initialize web server
init();
diff --git a/src/main/java/io/rudin/minetest/tileserver/blockdb/DefaultSchema.java b/src/main/java/io/rudin/minetest/tileserver/blockdb/DefaultSchema.java
index 1930e83..081df2e 100644
--- a/src/main/java/io/rudin/minetest/tileserver/blockdb/DefaultSchema.java
+++ b/src/main/java/io/rudin/minetest/tileserver/blockdb/DefaultSchema.java
@@ -82,7 +82,7 @@ public class DefaultSchema extends SchemaImpl {
public final PlayerMetadata PLAYER_METADATA = io.rudin.minetest.tileserver.blockdb.tables.PlayerMetadata.PLAYER_METADATA;
/**
- * The table listener
.
+ * The table poi
.
*/
public final Poi POI = io.rudin.minetest.tileserver.blockdb.tables.Poi.POI;
diff --git a/src/main/java/io/rudin/minetest/tileserver/blockdb/Tables.java b/src/main/java/io/rudin/minetest/tileserver/blockdb/Tables.java
index a0a9b30..9ad2747 100644
--- a/src/main/java/io/rudin/minetest/tileserver/blockdb/Tables.java
+++ b/src/main/java/io/rudin/minetest/tileserver/blockdb/Tables.java
@@ -66,7 +66,7 @@ public class Tables {
public static final PlayerMetadata PLAYER_METADATA = io.rudin.minetest.tileserver.blockdb.tables.PlayerMetadata.PLAYER_METADATA;
/**
- * The table listener
.
+ * The table poi
.
*/
public static final Poi POI = io.rudin.minetest.tileserver.blockdb.tables.Poi.POI;
diff --git a/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/Poi.java b/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/Poi.java
index 629f5e7..5a72af6 100644
--- a/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/Poi.java
+++ b/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/Poi.java
@@ -41,7 +41,7 @@ public class Poi extends TableImpl {
private static final long serialVersionUID = -1911319382;
/**
- * The reference instance of listener
+ * The reference instance of poi
*/
public static final Poi POI = new Poi();
@@ -54,81 +54,81 @@ public Class getRecordType() {
}
/**
- * The column listener.id
.
+ * The column poi.id
.
*/
public final TableField ID = createField("id", org.jooq.impl.SQLDataType.INTEGER.nullable(false).defaultValue(org.jooq.impl.DSL.field("nextval('poi_id_seq'::regclass)", org.jooq.impl.SQLDataType.INTEGER)), this, "");
/**
- * The column listener.name
.
+ * The column poi.name
.
*/
public final TableField NAME = createField("name", org.jooq.impl.SQLDataType.VARCHAR.nullable(false), this, "");
/**
- * The column listener.category
.
+ * The column poi.category
.
*/
public final TableField CATEGORY = createField("category", org.jooq.impl.SQLDataType.VARCHAR.nullable(false), this, "");
/**
- * The column listener.owner
.
+ * The column poi.owner
.
*/
public final TableField OWNER = createField("owner", org.jooq.impl.SQLDataType.VARCHAR.nullable(false), this, "");
/**
- * The column listener.active
.
+ * The column poi.active
.
*/
public final TableField ACTIVE = createField("active", org.jooq.impl.SQLDataType.BOOLEAN.nullable(false), this, "");
/**
- * The column listener.x
.
+ * The column poi.x
.
*/
public final TableField X = createField("x", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.y
.
+ * The column poi.y
.
*/
public final TableField Y = createField("y", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.z
.
+ * The column poi.z
.
*/
public final TableField Z = createField("z", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.posx
.
+ * The column poi.posx
.
*/
public final TableField POSX = createField("posx", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.posy
.
+ * The column poi.posy
.
*/
public final TableField POSY = createField("posy", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.posz
.
+ * The column poi.posz
.
*/
public final TableField POSZ = createField("posz", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
/**
- * The column listener.mtime
.
+ * The column poi.mtime
.
*/
public final TableField MTIME = createField("mtime", org.jooq.impl.SQLDataType.BIGINT.nullable(false), this, "");
/**
- * Create a listener
table reference
+ * Create a poi
table reference
*/
public Poi() {
- this(DSL.name("listener"), null);
+ this(DSL.name("poi"), null);
}
/**
- * Create an aliased listener
table reference
+ * Create an aliased poi
table reference
*/
public Poi(String alias) {
this(DSL.name(alias), POI);
}
/**
- * Create an aliased listener
table reference
+ * Create an aliased poi
table reference
*/
public Poi(Name alias) {
this(alias, POI);
diff --git a/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/records/PoiRecord.java b/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/records/PoiRecord.java
index 3a473b1..7fa2dbe 100644
--- a/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/records/PoiRecord.java
+++ b/src/main/java/io/rudin/minetest/tileserver/blockdb/tables/records/PoiRecord.java
@@ -30,168 +30,168 @@ public class PoiRecord extends TableRecordImpl implements Record12listener.id.
+ * Setter for poi.id
.
*/
public void setId(Integer value) {
set(0, value);
}
/**
- * Getter for listener.id
.
+ * Getter for poi.id
.
*/
public Integer getId() {
return (Integer) get(0);
}
/**
- * Setter for listener.name
.
+ * Setter for poi.name
.
*/
public void setName(String value) {
set(1, value);
}
/**
- * Getter for listener.name
.
+ * Getter for poi.name
.
*/
public String getName() {
return (String) get(1);
}
/**
- * Setter for listener.category
.
+ * Setter for poi.category
.
*/
public void setCategory(String value) {
set(2, value);
}
/**
- * Getter for listener.category
.
+ * Getter for poi.category
.
*/
public String getCategory() {
return (String) get(2);
}
/**
- * Setter for listener.owner
.
+ * Setter for poi.owner
.
*/
public void setOwner(String value) {
set(3, value);
}
/**
- * Getter for listener.owner
.
+ * Getter for poi.owner
.
*/
public String getOwner() {
return (String) get(3);
}
/**
- * Setter for listener.active
.
+ * Setter for poi.active
.
*/
public void setActive(Boolean value) {
set(4, value);
}
/**
- * Getter for listener.active
.
+ * Getter for poi.active
.
*/
public Boolean getActive() {
return (Boolean) get(4);
}
/**
- * Setter for listener.x
.
+ * Setter for poi.x
.
*/
public void setX(Integer value) {
set(5, value);
}
/**
- * Getter for listener.x
.
+ * Getter for poi.x
.
*/
public Integer getX() {
return (Integer) get(5);
}
/**
- * Setter for listener.y
.
+ * Setter for poi.y
.
*/
public void setY(Integer value) {
set(6, value);
}
/**
- * Getter for listener.y
.
+ * Getter for poi.y
.
*/
public Integer getY() {
return (Integer) get(6);
}
/**
- * Setter for listener.z
.
+ * Setter for poi.z
.
*/
public void setZ(Integer value) {
set(7, value);
}
/**
- * Getter for listener.z
.
+ * Getter for poi.z
.
*/
public Integer getZ() {
return (Integer) get(7);
}
/**
- * Setter for listener.posx
.
+ * Setter for poi.posx
.
*/
public void setPosx(Integer value) {
set(8, value);
}
/**
- * Getter for listener.posx
.
+ * Getter for poi.posx
.
*/
public Integer getPosx() {
return (Integer) get(8);
}
/**
- * Setter for listener.posy
.
+ * Setter for poi.posy
.
*/
public void setPosy(Integer value) {
set(9, value);
}
/**
- * Getter for listener.posy
.
+ * Getter for poi.posy
.
*/
public Integer getPosy() {
return (Integer) get(9);
}
/**
- * Setter for listener.posz
.
+ * Setter for poi.posz
.
*/
public void setPosz(Integer value) {
set(10, value);
}
/**
- * Getter for listener.posz
.
+ * Getter for poi.posz
.
*/
public Integer getPosz() {
return (Integer) get(10);
}
/**
- * Setter for listener.mtime
.
+ * Setter for poi.mtime
.
*/
public void setMtime(Long value) {
set(11, value);
}
/**
- * Getter for listener.mtime
.
+ * Getter for poi.mtime
.
*/
public Long getMtime() {
return (Long) get(11);
diff --git a/src/main/java/io/rudin/minetest/tileserver/config/TileServerConfig.java b/src/main/java/io/rudin/minetest/tileserver/config/TileServerConfig.java
index bd61e7b..19733cc 100644
--- a/src/main/java/io/rudin/minetest/tileserver/config/TileServerConfig.java
+++ b/src/main/java/io/rudin/minetest/tileserver/config/TileServerConfig.java
@@ -67,11 +67,11 @@ public interface TileServerConfig extends Config {
*/
@Key("block.parser.poi.enable")
- @DefaultValue("false")
+ @DefaultValue("true")
boolean parserPoiEnable();
@Key("block.parser.travelnet.enable")
- @DefaultValue("false")
+ @DefaultValue("true")
boolean parserTravelnetEnable();
@Key("block.parser.smartshop.enable")
diff --git a/src/main/java/io/rudin/minetest/tileserver/listener/PoiMapBlockListener.java b/src/main/java/io/rudin/minetest/tileserver/listener/PoiMapBlockListener.java
index fc6bda2..435087d 100644
--- a/src/main/java/io/rudin/minetest/tileserver/listener/PoiMapBlockListener.java
+++ b/src/main/java/io/rudin/minetest/tileserver/listener/PoiMapBlockListener.java
@@ -17,7 +17,7 @@
@Singleton
public class PoiMapBlockListener {
- private static final String POIBLOCK_NAME = "tileserver:listener";
+ private static final String POIBLOCK_NAME = "tileserver:poi";
@Inject
public PoiMapBlockListener(EventBus eventBus, DSLContext ctx){
diff --git a/src/main/java/io/rudin/minetest/tileserver/route/ConfigRoute.java b/src/main/java/io/rudin/minetest/tileserver/route/ConfigRoute.java
index 8c03cbc..f91735b 100644
--- a/src/main/java/io/rudin/minetest/tileserver/route/ConfigRoute.java
+++ b/src/main/java/io/rudin/minetest/tileserver/route/ConfigRoute.java
@@ -27,6 +27,8 @@ public class ConfigRoute implements Route {
public ConfigRoute(TileServerConfig cfg){
config.put("matomo.id", cfg.matomoTrackerId());
config.put("matomo.url", cfg.matomoTrackerUrl());
+ config.put("parser.poi", cfg.parserPoiEnable());
+ config.put("parser.travelnet", cfg.parserTravelnetEnable());
}
private final Map config = new HashMap<>();
diff --git a/src/main/java/io/rudin/minetest/tileserver/route/TravelnetRoute.java b/src/main/java/io/rudin/minetest/tileserver/route/TravelnetRoute.java
new file mode 100644
index 0000000..10e882f
--- /dev/null
+++ b/src/main/java/io/rudin/minetest/tileserver/route/TravelnetRoute.java
@@ -0,0 +1,34 @@
+package io.rudin.minetest.tileserver.route;
+
+import io.rudin.minetest.tileserver.blockdb.tables.pojos.Travelnet;
+import org.jooq.DSLContext;
+import spark.Request;
+import spark.Response;
+import spark.Route;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import static io.rudin.minetest.tileserver.blockdb.tables.Travelnet.TRAVELNET;
+
+@Singleton
+public class TravelnetRoute implements Route {
+
+ @Inject
+ public TravelnetRoute(DSLContext ctx) {
+ this.ctx = ctx;
+ }
+
+ private final DSLContext ctx;
+
+ @Override
+ public Object handle(Request request, Response response) throws Exception {
+ response.header("Content-Type", "application/json");
+
+ return ctx
+ .selectFrom(TRAVELNET)
+ .fetch()
+ .into(Travelnet.class);
+ }
+
+}
diff --git a/src/main/resources/public/index.html b/src/main/resources/public/index.html
index ad23f1c..90172ba 100644
--- a/src/main/resources/public/index.html
+++ b/src/main/resources/public/index.html
@@ -23,7 +23,9 @@
-
+
+
+
diff --git a/src/main/resources/public/js/player.js b/src/main/resources/public/js/layer.player.js
similarity index 85%
rename from src/main/resources/public/js/player.js
rename to src/main/resources/public/js/layer.player.js
index ed8375d..9de13b0 100644
--- a/src/main/resources/public/js/player.js
+++ b/src/main/resources/public/js/layer.player.js
@@ -1,6 +1,13 @@
(function(tileserver){
+ var PlayerIcon = L.icon({
+ iconUrl: 'pics/sam.png',
+
+ iconSize: [16, 32],
+ iconAnchor: [8, 16],
+ popupAnchor: [0, -16]
+ });
var playerMarkers = {}; // name -> L.Marker
@@ -30,8 +37,8 @@
if (!marker){
//Create marker
- marker = L.marker(latLng);
- marker.bindPopup(popup).addTo(tileserver.map);
+ marker = L.marker(latLng, {icon: PlayerIcon});
+ marker.bindPopup(popup).addTo(tileserver.playerLayer);
playerMarkers[player.name] = marker;
} else {
diff --git a/src/main/resources/public/js/layer.poi.js b/src/main/resources/public/js/layer.poi.js
new file mode 100644
index 0000000..42b3106
--- /dev/null
+++ b/src/main/resources/public/js/layer.poi.js
@@ -0,0 +1,34 @@
+
+(function(tileserver){
+
+
+ var playerMarkers = {}; // name -> L.Marker
+
+ function updatePoi(poi) {
+ if (!poi.active)
+ return;
+
+ var marker = L.marker([poi.z - 15, poi.x]);
+
+ var popup = "" + poi.name + "
" +
+ "X: " + poi.x + "
" +
+ "Y: " + poi.y + "
" +
+ "Z: " + poi.z + "
" +
+ "Category: " + poi.category + "
" +
+ "Owner: " + poi.owner + "
";
+
+ marker.bindPopup(popup).addTo(tileserver.poiLayer);
+
+ }
+
+ function update(){
+ m.request({ url: "poi" })
+ .then(function(list){
+ list.forEach(updatePoi);
+ });
+ }
+
+ //initial update
+ update();
+
+})(window.tileserver);
\ No newline at end of file
diff --git a/src/main/resources/public/js/layer.travelnet.js b/src/main/resources/public/js/layer.travelnet.js
new file mode 100644
index 0000000..9253e2a
--- /dev/null
+++ b/src/main/resources/public/js/layer.travelnet.js
@@ -0,0 +1,37 @@
+
+(function(tileserver){
+
+
+ var TravelnetIcon = L.icon({
+ iconUrl: 'pics/travelnet_inv.png',
+
+ iconSize: [64, 64],
+ iconAnchor: [32, 32],
+ popupAnchor: [0, -32]
+ });
+
+ function updateTravelnet(travelnet) {
+ var marker = L.marker([travelnet.z - 16, travelnet.x], {icon: TravelnetIcon});
+
+ var popup = "" + travelnet.name + "
" +
+ "X: " + travelnet.x + "
" +
+ "Y: " + travelnet.y + "
" +
+ "Z: " + travelnet.z + "
" +
+ "Network: " + travelnet.network + "
" +
+ "Owner: " + travelnet.owner + "
";
+
+ marker.bindPopup(popup).addTo(tileserver.travelnetLayer);
+
+ }
+
+ function update(){
+ m.request({ url: "travelnet" })
+ .then(function(list){
+ list.forEach(updateTravelnet);
+ });
+ }
+
+ //initial update
+ update();
+
+})(window.tileserver);
\ No newline at end of file
diff --git a/src/main/resources/public/js/map.js b/src/main/resources/public/js/map.js
index 03a1ecf..736659f 100644
--- a/src/main/resources/public/js/map.js
+++ b/src/main/resources/public/js/map.js
@@ -55,12 +55,6 @@
}
});
- var tileLayer = new RealtimeTileLayer();
- tileLayer.addTo(map);
-
- //L.tileLayer('tiles/{z}/{x}/{y}').addTo(map);
- //L.marker([-207, 7]).bindPopup("Spawn").addTo(map);
-
function updateTile(data){
var id = getImageId(data.x, data.y, data.zoom);
@@ -72,8 +66,31 @@
}
}
+
+ var tileLayer = new RealtimeTileLayer();
+ tileLayer.addTo(map);
+
+ var playerLayer = L.layerGroup();
+ var poiLayer = L.layerGroup();
+ var travelnetLayer = L.layerGroup();
+
+ L.control.layers({
+ "Base": tileLayer
+ }, {
+ "Player": playerLayer,
+ "POI": poiLayer,
+ "Travelnet": travelnetLayer
+ }).addTo(map);
+
+ map.addLayer(poiLayer);
+ map.addLayer(travelnetLayer);
+ map.addLayer(playerLayer);
+
//Export
tileserver.map = map;
+ tileserver.poiLayer = poiLayer;
+ tileserver.travelnetLayer = travelnetLayer;
+ tileserver.playerLayer = playerLayer;
tileserver.updateTile = updateTile;
})(window.tileserver);
\ No newline at end of file
diff --git a/src/main/resources/public/pics/sam.png b/src/main/resources/public/pics/sam.png
new file mode 100644
index 0000000..44500cd
Binary files /dev/null and b/src/main/resources/public/pics/sam.png differ
diff --git a/src/main/resources/public/pics/travelnet_elevator_inv.png b/src/main/resources/public/pics/travelnet_elevator_inv.png
new file mode 100644
index 0000000..a390d75
Binary files /dev/null and b/src/main/resources/public/pics/travelnet_elevator_inv.png differ
diff --git a/src/main/resources/public/pics/travelnet_inv.png b/src/main/resources/public/pics/travelnet_inv.png
new file mode 100644
index 0000000..6f7df22
Binary files /dev/null and b/src/main/resources/public/pics/travelnet_inv.png differ
diff --git a/tileserver.properties b/tileserver.properties
index 3e93f17..3a2f4a7 100644
--- a/tileserver.properties
+++ b/tileserver.properties
@@ -1,10 +1,5 @@
#tilerenderer.initialrendering.enable=true
#log.tile.updatetimings=true
-tilerenderer.updateinterval=1500
+tilerenderer.updateinterval=30
#log.query.performance=true
-block.parser.poi.enable=true
-block.parser.travelnet.enable=true
-debug.mapblock.dumpinvalid=true
-block.parser.smartshop.enable=true
-block.parser.fancyvend.enable=true
\ No newline at end of file