Compare commits
28 Commits
fork-20240
...
master
Author | SHA1 | Date | |
---|---|---|---|
c45f002f82 | |||
e1c9bdb8bd | |||
|
a7b5226fd1 | ||
|
f266593f9a | ||
|
02bb99f739 | ||
|
3be317d09f | ||
|
fc7303947d | ||
|
d20d99d19f | ||
|
f1c698c7fa | ||
|
7219590c91 | ||
|
0154742246 | ||
|
cb2ad7f058 | ||
|
d031739c07 | ||
|
5e0e4742b1 | ||
|
658a3cc9e0 | ||
|
9176638f20 | ||
|
4d304e1008 | ||
|
544e9381e6 | ||
|
3c47015b62 | ||
|
6ab735a7a5 | ||
|
7db8f767ca | ||
|
6687482a26 | ||
|
070c7f7bdf | ||
|
89ea214d02 | ||
|
ff1b0dc47a | ||
|
47f1446ec1 | ||
|
fec735ee93 | ||
|
dc5a401d8b |
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5.0.1
|
||||
with:
|
||||
go-version: "1.21"
|
||||
go-version: "1.22"
|
||||
|
||||
- name: Set up nodejs
|
||||
uses: actions/setup-node@v4
|
||||
@ -42,28 +42,12 @@ jobs:
|
||||
run: |
|
||||
go test ./...
|
||||
|
||||
# only on tags or the master branch
|
||||
- name: Docker Login
|
||||
if: success() && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master')
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
# only on tags
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v4
|
||||
uses: goreleaser/goreleaser-action@v6
|
||||
if: success() && startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
version: latest
|
||||
args: release --rm-dist
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# only on the master branch
|
||||
- name: Build and push latest docker image
|
||||
if: success() && github.ref == 'refs/heads/master'
|
||||
run: |
|
||||
CGO_ENABLED=0 go build .
|
||||
docker build . -t minetestmapserver/mapserver:latest
|
||||
docker push minetestmapserver/mapserver:latest
|
||||
|
39
.github/workflows/docker.yml
vendored
Normal file
39
.github/workflows/docker.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
name: docker
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
tags:
|
||||
- 'v*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ghcr.io/minetest-mapserver/mapserver
|
||||
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
@ -1,24 +1,13 @@
|
||||
before:
|
||||
hooks:
|
||||
- go mod tidy
|
||||
builds:
|
||||
- env:
|
||||
- CGO_ENABLED=0
|
||||
targets:
|
||||
- linux_amd64
|
||||
- windows_amd64
|
||||
- darwin_arm64
|
||||
- linux_arm_6
|
||||
goos:
|
||||
- linux
|
||||
- windows
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
ldflags:
|
||||
- -s -w -X mapserver/app.Version={{.Version}}
|
||||
changelog:
|
||||
sort: asc
|
||||
filters:
|
||||
exclude:
|
||||
- '^docs:'
|
||||
- '^test:'
|
||||
dockers:
|
||||
- image_templates:
|
||||
- "minetestmapserver/mapserver:{{ .Version }}"
|
||||
- "minetestmapserver/mapserver:latest"
|
||||
dockerfile: Dockerfile
|
15
Dockerfile
15
Dockerfile
@ -1,5 +1,16 @@
|
||||
FROM scratch
|
||||
COPY mapserver /bin/mapserver
|
||||
FROM node:20.15.0 as bundle-builder
|
||||
COPY public /public
|
||||
WORKDIR /public
|
||||
RUN npm ci && npm run bundle
|
||||
|
||||
FROM golang:1.22.4 as go-builder
|
||||
COPY . /data
|
||||
COPY --from=bundle-builder /public/js/bundle* /data/public/js/
|
||||
WORKDIR /data
|
||||
RUN CGO_ENABLED=0 go build .
|
||||
|
||||
FROM alpine:3.20.1
|
||||
COPY --from=go-builder /data/mapserver /bin/mapserver
|
||||
ENV MT_CONFIG_PATH "mapserver.json"
|
||||
ENV MT_LOGLEVEL "INFO"
|
||||
ENV MT_READONLY "false"
|
||||
|
@ -58,37 +58,38 @@ func ParseConfig(filename string) (*Config, error) {
|
||||
}
|
||||
|
||||
mapobjs := MapObjectConfig{
|
||||
Areas: true,
|
||||
Bones: true,
|
||||
Protector: true,
|
||||
XPProtector: true,
|
||||
PrivProtector: true,
|
||||
TechnicQuarry: true,
|
||||
TechnicSwitch: true,
|
||||
TechnicAnchor: true,
|
||||
TechnicReactor: true,
|
||||
LuaController: true,
|
||||
Digiterms: true,
|
||||
Digilines: true,
|
||||
Travelnet: true,
|
||||
MapserverPlayer: true,
|
||||
MapserverPOI: true,
|
||||
MapserverLabel: true,
|
||||
MapserverTrainline: true,
|
||||
MapserverBorder: true,
|
||||
TileServerLegacy: true,
|
||||
Mission: true,
|
||||
Jumpdrive: true,
|
||||
Smartshop: true,
|
||||
Fancyvend: true,
|
||||
ATM: true,
|
||||
Train: true,
|
||||
TrainSignal: true,
|
||||
Minecart: false,
|
||||
Locator: false,
|
||||
Signs: true,
|
||||
MapserverAirutils: true,
|
||||
Phonograph: true,
|
||||
Areas: true,
|
||||
Bones: true,
|
||||
Protector: true,
|
||||
XPProtector: true,
|
||||
PrivProtector: true,
|
||||
TechnicQuarry: true,
|
||||
TechnicSwitch: true,
|
||||
TechnicAnchor: true,
|
||||
TechnicReactor: true,
|
||||
LuaController: true,
|
||||
Digiterms: true,
|
||||
Digilines: true,
|
||||
Travelnet: true,
|
||||
MapserverPlayer: true,
|
||||
MapserverPOI: true,
|
||||
MapserverLabel: true,
|
||||
MapserverTrainline: true,
|
||||
MapserverBorder: true,
|
||||
TileServerLegacy: true,
|
||||
Mission: true,
|
||||
Jumpdrive: true,
|
||||
Smartshop: true,
|
||||
Fancyvend: true,
|
||||
ATM: true,
|
||||
Train: true,
|
||||
TrainSignal: true,
|
||||
Minecart: false,
|
||||
Locator: false,
|
||||
Signs: true,
|
||||
MapserverAirutils: true,
|
||||
UnifiefMoneyAreaForSale: true,
|
||||
Phonograph: true,
|
||||
}
|
||||
|
||||
mapblockaccessor := MapBlockAccessorConfig{
|
||||
|
63
app/types.go
63
app/types.go
@ -34,37 +34,38 @@ type MapBlockAccessorConfig struct {
|
||||
}
|
||||
|
||||
type MapObjectConfig struct {
|
||||
Areas bool `json:"areas"`
|
||||
Bones bool `json:"bones"`
|
||||
Protector bool `json:"protector"`
|
||||
XPProtector bool `json:"xpprotector"`
|
||||
PrivProtector bool `json:"privprotector"`
|
||||
TechnicQuarry bool `json:"technic_quarry"`
|
||||
TechnicSwitch bool `json:"technic_switch"`
|
||||
TechnicAnchor bool `json:"technic_anchor"`
|
||||
TechnicReactor bool `json:"technic_reactor"`
|
||||
LuaController bool `json:"luacontroller"`
|
||||
Digiterms bool `json:"digiterms"`
|
||||
Digilines bool `json:"digilines"`
|
||||
Travelnet bool `json:"travelnet"`
|
||||
MapserverPlayer bool `json:"mapserver_player"`
|
||||
MapserverPOI bool `json:"mapserver_poi"`
|
||||
MapserverLabel bool `json:"mapserver_label"`
|
||||
MapserverTrainline bool `json:"mapserver_trainline"`
|
||||
MapserverBorder bool `json:"mapserver_border"`
|
||||
TileServerLegacy bool `json:"tileserverlegacy"`
|
||||
Mission bool `json:"mission"`
|
||||
Jumpdrive bool `json:"jumpdrive"`
|
||||
Smartshop bool `json:"smartshop"`
|
||||
Fancyvend bool `json:"fancyvend"`
|
||||
ATM bool `json:"atm"`
|
||||
Train bool `json:"train"`
|
||||
TrainSignal bool `json:"trainsignal"`
|
||||
Minecart bool `json:"minecart"`
|
||||
Locator bool `json:"locator"`
|
||||
Signs bool `json:"signs"`
|
||||
MapserverAirutils bool `json:"mapserver_airutils"`
|
||||
Phonograph bool `json:"phonograph"`
|
||||
Areas bool `json:"areas"`
|
||||
Bones bool `json:"bones"`
|
||||
Protector bool `json:"protector"`
|
||||
XPProtector bool `json:"xpprotector"`
|
||||
PrivProtector bool `json:"privprotector"`
|
||||
TechnicQuarry bool `json:"technic_quarry"`
|
||||
TechnicSwitch bool `json:"technic_switch"`
|
||||
TechnicAnchor bool `json:"technic_anchor"`
|
||||
TechnicReactor bool `json:"technic_reactor"`
|
||||
LuaController bool `json:"luacontroller"`
|
||||
Digiterms bool `json:"digiterms"`
|
||||
Digilines bool `json:"digilines"`
|
||||
Travelnet bool `json:"travelnet"`
|
||||
MapserverPlayer bool `json:"mapserver_player"`
|
||||
MapserverPOI bool `json:"mapserver_poi"`
|
||||
MapserverLabel bool `json:"mapserver_label"`
|
||||
MapserverTrainline bool `json:"mapserver_trainline"`
|
||||
MapserverBorder bool `json:"mapserver_border"`
|
||||
TileServerLegacy bool `json:"tileserverlegacy"`
|
||||
Mission bool `json:"mission"`
|
||||
Jumpdrive bool `json:"jumpdrive"`
|
||||
Smartshop bool `json:"smartshop"`
|
||||
Fancyvend bool `json:"fancyvend"`
|
||||
ATM bool `json:"atm"`
|
||||
Train bool `json:"train"`
|
||||
TrainSignal bool `json:"trainsignal"`
|
||||
Minecart bool `json:"minecart"`
|
||||
Locator bool `json:"locator"`
|
||||
Signs bool `json:"signs"`
|
||||
MapserverAirutils bool `json:"mapserver_airutils"`
|
||||
Phonograph bool `json:"phonograph"`
|
||||
UnifiefMoneyAreaForSale bool `json:"um_area_forsale"`
|
||||
}
|
||||
|
||||
type WebApiConfig struct {
|
||||
|
@ -60,7 +60,9 @@
|
||||
"minecart": false,
|
||||
"locator": false,
|
||||
"signs": true,
|
||||
"mapserver_airutils": true
|
||||
"mapserver_airutils": true,
|
||||
"phonograph": true,
|
||||
"um_area_forsale": true
|
||||
},
|
||||
"mapblockaccessor": {
|
||||
"expiretime": "15s",
|
||||
@ -78,5 +80,5 @@
|
||||
},
|
||||
"worldpath": "./",
|
||||
"datapath": "./",
|
||||
"ColorsTxtPath": "./"
|
||||
"colorstxtpath": "./"
|
||||
}
|
@ -1 +1 @@
|
||||
Subproject commit 5f446c016cd27683f09f4b4040119342f57d4e07
|
||||
Subproject commit 1ab5ddd6ba9ac205814f8cc2bb181a212d74ab82
|
@ -14,12 +14,10 @@ For additional infos (lag,time,players => active mode) on the mapserver interfac
|
||||
|
||||
## Docker image
|
||||
|
||||
* Docker-hub: https://hub.docker.com/repository/docker/minetestmapserver/mapserver
|
||||
|
||||
Simple docker run example to run in the world-directory:
|
||||
|
||||
```
|
||||
docker run --rm --it -p 8080:8080 -v $(pwd):/minetest -w /minetest minetestmapserver/mapserver
|
||||
docker run --rm --it -p 8080:8080 -v $(pwd):/minetest -w /minetest ghcr.io/minetest-mapserver/mapserver
|
||||
```
|
||||
|
||||
## Docker compose
|
||||
@ -29,7 +27,7 @@ Examplary `docker-compose` config:
|
||||
```yml
|
||||
services:
|
||||
mapserver:
|
||||
image: minetesttools/mapserver
|
||||
image: ghcr.io/minetest-mapserver/mapserver
|
||||
restart: always
|
||||
networks:
|
||||
- default
|
||||
|
@ -76,3 +76,7 @@
|
||||
* phonograph_node_temp.png
|
||||
* License: CC By-SA 4.0
|
||||
* Source: [phonograph](https://github.com/C-C-Minetest-Server/phonograph/)
|
||||
|
||||
* um_area_forsale_sign_alpha.png
|
||||
* By Gabriel Pérez-Cerezo; AGPL 3.0
|
||||
* Modified from https://github.com/C-C-Minetest-Server/um_area_forsale/blob/main/textures/um_area_forsale_sign.png
|
||||
|
@ -2,7 +2,7 @@ version: "3.6"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16.1
|
||||
image: postgres:16.3
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: enter
|
||||
|
46
go.mod
46
go.mod
@ -1,19 +1,19 @@
|
||||
module mapserver
|
||||
|
||||
require (
|
||||
github.com/golang-migrate/migrate/v4 v4.17.0
|
||||
github.com/golang-migrate/migrate/v4 v4.17.1
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/gorilla/websocket v1.5.1
|
||||
github.com/gorilla/websocket v1.5.3
|
||||
github.com/lib/pq v1.10.9
|
||||
github.com/minetest-go/areasparser v1.0.5
|
||||
github.com/minetest-go/colormapping v1.0.3
|
||||
github.com/minetest-go/mapparser v0.1.8
|
||||
github.com/minetest-go/colormapping v1.0.5
|
||||
github.com/minetest-go/mapparser v0.1.9
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||
github.com/prometheus/client_golang v1.18.0
|
||||
github.com/prometheus/client_golang v1.19.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/yuin/gopher-lua v1.1.1
|
||||
modernc.org/sqlite v1.28.0
|
||||
modernc.org/sqlite v1.30.1
|
||||
)
|
||||
|
||||
require (
|
||||
@ -21,36 +21,32 @@ require (
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/google/go-cmp v0.6.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/klauspost/compress v1.15.11 // indirect
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
||||
github.com/klauspost/compress v1.16.0 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.17 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mattn/go-sqlite3 v1.14.16 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
|
||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_model v0.5.0 // indirect
|
||||
github.com/prometheus/common v0.45.0 // indirect
|
||||
github.com/prometheus/common v0.48.0 // indirect
|
||||
github.com/prometheus/procfs v0.12.0 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
golang.org/x/mod v0.11.0 // indirect
|
||||
golang.org/x/net v0.23.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/tools v0.10.0 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
golang.org/x/sys v0.19.0 // indirect
|
||||
google.golang.org/protobuf v1.33.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
lukechampine.com/uint128 v1.2.0 // indirect
|
||||
modernc.org/cc/v3 v3.40.0 // indirect
|
||||
modernc.org/ccgo/v3 v3.16.13 // indirect
|
||||
modernc.org/libc v1.29.0 // indirect
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
|
||||
modernc.org/libc v1.52.1 // indirect
|
||||
modernc.org/mathutil v1.6.0 // indirect
|
||||
modernc.org/memory v1.7.2 // indirect
|
||||
modernc.org/opt v0.1.3 // indirect
|
||||
modernc.org/strutil v1.1.3 // indirect
|
||||
modernc.org/memory v1.8.0 // indirect
|
||||
modernc.org/strutil v1.2.0 // indirect
|
||||
modernc.org/token v1.1.0 // indirect
|
||||
)
|
||||
|
||||
go 1.21
|
||||
go 1.22
|
||||
|
||||
toolchain go1.22.4
|
||||
|
124
go.sum
124
go.sum
@ -10,12 +10,12 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dhui/dktest v0.4.0 h1:z05UmuXZHO/bgj/ds2bGMBu8FI4WA+Ag/m3ghL+om7M=
|
||||
github.com/dhui/dktest v0.4.0/go.mod h1:v/Dbz1LgCBOi2Uki2nUqLBGa83hWBGFMu5MrgMDCc78=
|
||||
github.com/dhui/dktest v0.4.1 h1:/w+IWuDXVymg3IrRJCHHOkMK10m9aNVMOyD0X12YVTg=
|
||||
github.com/dhui/dktest v0.4.1/go.mod h1:DdOqcUpL7vgyP4GlF3X3w7HbSlz8cEQzwewPveYEQbA=
|
||||
github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
|
||||
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM=
|
||||
github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v24.0.9+incompatible h1:HPGzNmwfLZWdxHqK9/II92pyi1EpYKsAqcl4G0Of9v0=
|
||||
github.com/docker/docker v24.0.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
||||
@ -24,51 +24,47 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp
|
||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang-migrate/migrate/v4 v4.17.0 h1:rd40H3QXU0AA4IoLllFcEAEo9dYKRHYND2gB4p7xcaU=
|
||||
github.com/golang-migrate/migrate/v4 v4.17.0/go.mod h1:+Cp2mtLP4/aXDTKb9wmXYitdrNx2HGs45rbWAo6OsKM=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/golang-migrate/migrate/v4 v4.17.1 h1:4zQ6iqL6t6AiItphxJctQb3cFqWiSpMnX7wLTPnnYO4=
|
||||
github.com/golang-migrate/migrate/v4 v4.17.1/go.mod h1:m8hinFyWBn0SA4QKHuKh175Pm9wjmxj3S2Mia7dbXzM=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
|
||||
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
||||
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
|
||||
github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
|
||||
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
|
||||
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
|
||||
github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c=
|
||||
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
|
||||
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
|
||||
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
|
||||
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
|
||||
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
||||
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
|
||||
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
|
||||
github.com/minetest-go/areasparser v1.0.5 h1:kyfb7mk4S7Gvx5N42uJK8ze3BAbfj8uyLsv2Tuy43MQ=
|
||||
github.com/minetest-go/areasparser v1.0.5/go.mod h1:NvohBk60WBrAbfvgmJccCEblz9I/Ygba4k9V81rwoNc=
|
||||
github.com/minetest-go/colormapping v1.0.3 h1:aQNCORujsKJVqfVBwhrH0T5OLRqW/mN07dAbrhE08+o=
|
||||
github.com/minetest-go/colormapping v1.0.3/go.mod h1:arMBjO6+z8+yhLvrsX4tCnYq5fzGcPFUOj/4Xb78Ktc=
|
||||
github.com/minetest-go/mapparser v0.1.8 h1:tmkno1Qi8nIdjQXJLlnq38uVGygZWA8i3ilre/bB9W8=
|
||||
github.com/minetest-go/mapparser v0.1.8/go.mod h1:TcjEkPY9n0rBM+beSstw+Jje8nGl+LqFhiC00J6ihNw=
|
||||
github.com/minetest-go/colormapping v1.0.5 h1:axZm0xbOz0RQEIFvZmbxr3kuvebYiG0AAADPr8/ZQfg=
|
||||
github.com/minetest-go/colormapping v1.0.5/go.mod h1:6UVusIQTqfWbcru5HTktWwB2BCNHUE3W0VkkRBaMfcw=
|
||||
github.com/minetest-go/mapparser v0.1.9 h1:mGjRwA2twJRyzSrYuJWvyNpEkO469K/Qun327v8rhwE=
|
||||
github.com/minetest-go/mapparser v0.1.9/go.mod h1:zE+JdqiicINR+kzZ4gS6BBh+vLVPQSwkYiEkG0A1Cys=
|
||||
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
||||
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
|
||||
@ -79,12 +75,12 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
|
||||
github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
|
||||
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
|
||||
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
||||
github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
|
||||
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
||||
github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
|
||||
github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
|
||||
github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE=
|
||||
github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
||||
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
||||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||
@ -96,59 +92,53 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=
|
||||
github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
|
||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU=
|
||||
golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
|
||||
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
|
||||
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg=
|
||||
golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
|
||||
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
|
||||
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
|
||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI=
|
||||
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
|
||||
modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw=
|
||||
modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
|
||||
modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
|
||||
modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
|
||||
modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
|
||||
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
|
||||
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
|
||||
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
|
||||
modernc.org/libc v1.29.0 h1:tTFRFq69YKCF2QyGNuRUQxKBm1uZZLubf6Cjh/pVHXs=
|
||||
modernc.org/libc v1.29.0/go.mod h1:DaG/4Q3LRRdqpiLyP0C2m1B8ZMGkQ+cCgOIjEtQlYhQ=
|
||||
modernc.org/cc/v4 v4.21.2 h1:dycHFB/jDc3IyacKipCNSDrjIC0Lm1hyoWOZTRR20Lk=
|
||||
modernc.org/cc/v4 v4.21.2/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
|
||||
modernc.org/ccgo/v4 v4.17.10 h1:6wrtRozgrhCxieCeJh85QsxkX/2FFrT9hdaWPlbn4Zo=
|
||||
modernc.org/ccgo/v4 v4.17.10/go.mod h1:0NBHgsqTTpm9cA5z2ccErvGZmtntSM9qD2kFAs6pjXM=
|
||||
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
||||
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
||||
modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw=
|
||||
modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI=
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
||||
modernc.org/libc v1.52.1 h1:uau0VoiT5hnR+SpoWekCKbLqm7v6dhRL3hI+NQhgN3M=
|
||||
modernc.org/libc v1.52.1/go.mod h1:HR4nVzFDSDizP620zcMCgjb1/8xk2lg5p/8yjfGv1IQ=
|
||||
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
||||
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
||||
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
|
||||
modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
|
||||
modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
|
||||
modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU=
|
||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||
modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ=
|
||||
modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0=
|
||||
modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
|
||||
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
|
||||
modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY=
|
||||
modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c=
|
||||
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
|
||||
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
|
||||
modernc.org/sqlite v1.30.1 h1:YFhPVfu2iIgUf9kuA1CR7iiHdcEEsI2i+yjRYHscyxk=
|
||||
modernc.org/sqlite v1.30.1/go.mod h1:DUmsiWQDaAvU4abhc/N+djlom/L2o8f7gZ95RCvyoLU=
|
||||
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
||||
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY=
|
||||
modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE=
|
||||
|
@ -142,6 +142,9 @@ func (r *MapBlockRenderer) Render(pos1, pos2 *types.MapBlockCoords) (*image.NRGB
|
||||
continue
|
||||
}
|
||||
|
||||
// clamp alpha channel to max
|
||||
c.A = 255
|
||||
|
||||
if r.enableShadow {
|
||||
var left, leftAbove, top, topAbove string
|
||||
|
||||
|
@ -17,7 +17,9 @@ func (this *PoiBlock) onMapObject(mbpos *types.MapBlockCoords, x, y, z int, bloc
|
||||
o := mapobjectdb.NewMapObject(mbpos, x, y, z, "poi")
|
||||
o.Attributes["name"] = md["name"]
|
||||
o.Attributes["category"] = md["category"]
|
||||
o.Attributes["addr"] = md["addr"]
|
||||
o.Attributes["url"] = md["url"]
|
||||
o.Attributes["image"] = md["image"]
|
||||
o.Attributes["owner"] = md["owner"]
|
||||
o.Attributes["icon"] = md["icon"]
|
||||
o.Attributes["color"] = this.Color
|
||||
|
@ -197,5 +197,10 @@ func Setup(ctx *app.App) {
|
||||
l.AddMapObject("phonograph:phonograph", &Phonograph{})
|
||||
}
|
||||
|
||||
//For Sale Sign for Unified Money
|
||||
if ctx.Config.MapObjects.UnifiefMoneyAreaForSale {
|
||||
l.AddMapObject("um_area_forsale:for_sale_sign", &UnifiefMoneyAreaForSale{})
|
||||
}
|
||||
|
||||
ctx.MapBlockAccessor.Eventbus.AddListener(&l)
|
||||
}
|
||||
|
26
mapobject/um_area_forsale.go
Normal file
26
mapobject/um_area_forsale.go
Normal file
@ -0,0 +1,26 @@
|
||||
package mapobject
|
||||
|
||||
import (
|
||||
"mapserver/mapobjectdb"
|
||||
"mapserver/types"
|
||||
|
||||
"github.com/minetest-go/mapparser"
|
||||
)
|
||||
|
||||
type UnifiefMoneyAreaForSale struct{}
|
||||
|
||||
func (this *UnifiefMoneyAreaForSale) onMapObject(mbpos *types.MapBlockCoords, x, y, z int, block *mapparser.MapBlock) *mapobjectdb.MapObject {
|
||||
md := block.Metadata.GetMetadata(x, y, z)
|
||||
|
||||
if _, ok := md["id"]; !ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
o := mapobjectdb.NewMapObject(mbpos, x, y, z, "um_area_forsale")
|
||||
o.Attributes["owner"] = md["owner"]
|
||||
o.Attributes["id"] = md["id"] // ", " seperated
|
||||
o.Attributes["price"] = md["price"]
|
||||
o.Attributes["description"] = md["description"]
|
||||
|
||||
return o
|
||||
}
|
@ -48,3 +48,14 @@ body {
|
||||
.player-popup div.info {
|
||||
grid-area: info;
|
||||
}
|
||||
|
||||
.poi_image_container {
|
||||
width: 100%;
|
||||
max-height: 75vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.poi_image {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
@ -7,9 +7,11 @@ function onchange(e){
|
||||
m.route.set("/map/:layerId/:zoom/:lon/:lat", params);
|
||||
}
|
||||
|
||||
|
||||
export default {
|
||||
view: function(){
|
||||
// Display layer selector only if there is choice
|
||||
if (LayerManager.layers.length <= 1)
|
||||
return null;
|
||||
|
||||
const layers = LayerManager.layers.map(layer => m(
|
||||
"option",
|
||||
|
@ -30,7 +30,8 @@ function search(query){
|
||||
searchFor("locator", "name", query),
|
||||
searchFor("label", "text", query),
|
||||
searchFor("digiterm", "display_text", query),
|
||||
searchFor("digilinelcd", "text", query)
|
||||
searchFor("digilinelcd", "text", query),
|
||||
searchFor("um_area_forsale", "description", query)
|
||||
];
|
||||
|
||||
Promise.all(prom_list)
|
||||
|
@ -88,6 +88,12 @@ export default {
|
||||
]);
|
||||
}
|
||||
|
||||
// For Sale Sign
|
||||
if (obj.type == "um_area_forsale"){
|
||||
description = m("span", obj.attributes.description || "No Description");
|
||||
type = m("img", { src: "pics/um_area_forsale_sign_alpha.png" });
|
||||
}
|
||||
|
||||
//shop
|
||||
if (obj.type == "shop") {
|
||||
if (obj.attributes.stock == 0){
|
||||
|
@ -9,6 +9,7 @@ import RealtimeTileLayer from './RealtimeTileLayer.js';
|
||||
|
||||
import config from '../config.js';
|
||||
|
||||
const BORDER_BOUNDS = 5000;
|
||||
|
||||
export function createMap(node, layerId, zoom, lat, lon){
|
||||
|
||||
@ -21,8 +22,8 @@ export function createMap(node, layerId, zoom, lat, lon){
|
||||
zoom: zoom,
|
||||
crs: SimpleCRS,
|
||||
maxBounds: L.latLngBounds(
|
||||
L.latLng(-31000, -31000),
|
||||
L.latLng(31000, 31000)
|
||||
L.latLng(-31000-BORDER_BOUNDS, -31000-BORDER_BOUNDS),
|
||||
L.latLng(31000+BORDER_BOUNDS, 31000+BORDER_BOUNDS)
|
||||
)
|
||||
});
|
||||
|
||||
|
@ -24,6 +24,7 @@ import TrainsignalOverlay from './overlays/TrainsignalOverlay.js';
|
||||
import SignOverlay from './overlays/SignOverlay.js';
|
||||
import AirUtilsPlanesOverlay from "./overlays/AirUtilsPlanesOverlay.js";
|
||||
import PhonographOverlay from "./overlays/PhonographOverlay.js";
|
||||
import UnifiedMoneyAreaForSaleOverlay from './overlays/UnifiedMoneyAreaForSaleOverlay.js';
|
||||
|
||||
export default function(cfg, map, overlays, wsChannel){
|
||||
|
||||
@ -210,8 +211,15 @@ export default function(cfg, map, overlays, wsChannel){
|
||||
|
||||
if (cfg.mapobjects.phonograph) {
|
||||
overlays.Phonographs = new PhonographOverlay();
|
||||
if (isDefault("phonograph")) {
|
||||
if (isDefault("Phonographs")) {
|
||||
map.addLayer(overlays.Phonographs);
|
||||
}
|
||||
}
|
||||
if (cfg.mapobjects.um_area_forsale) {
|
||||
overlays["Area For Sale"] = new UnifiedMoneyAreaForSaleOverlay();
|
||||
if (isDefault("Area For Sale")) {
|
||||
map.addLayer(overlays["Area For Sale"]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -42,7 +42,10 @@ export default L.TileLayer.extend({
|
||||
tile.id = this.getImageId(coords.x, coords.y, coords.z);
|
||||
|
||||
// trigger callbacks
|
||||
tile.onload = () => done(null, tile);
|
||||
tile.onload = () => {
|
||||
tile.onload = undefined;
|
||||
done(null, tile);
|
||||
};
|
||||
tile.onerror = e => done(e, tile);
|
||||
|
||||
return tile;
|
||||
|
@ -121,6 +121,11 @@ export default L.LayerGroup.extend({
|
||||
popup = self.createPopup(obj);
|
||||
if (popup)
|
||||
marker.bindPopup(popup);
|
||||
|
||||
marker.on('click', function () {
|
||||
self.map.panTo(marker.getLatLng());
|
||||
});
|
||||
|
||||
marker.addTo(self);
|
||||
|
||||
self.currentObjects[hash] = marker;
|
||||
|
@ -20,18 +20,28 @@ export default AbstractIconOverlay.extend({
|
||||
},
|
||||
|
||||
createPopup: function(poi){
|
||||
var innerHTML = "";
|
||||
|
||||
if (poi.attributes.url)
|
||||
{
|
||||
return "<a href=\"" + HtmlSanitizer.SanitizeHtml(poi.attributes.url) + "\">" +
|
||||
"<h4>" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + "</h4></a><hr>" +
|
||||
"<b>Owner: </b> " + HtmlSanitizer.SanitizeHtml(poi.attributes.owner) + "<br>";
|
||||
if (poi.attributes.url) {
|
||||
innerHTML += "<a href=\"" + HtmlSanitizer.SanitizeHtml(poi.attributes.url) + "\">" +
|
||||
"<h4>" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + "</h4></a>";
|
||||
} else {
|
||||
innerHTML += "<h4>" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + "</h4>";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "<h4>" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + "</h4><hr>" +
|
||||
"<b>Owner: </b> " + HtmlSanitizer.SanitizeHtml(poi.attributes.owner) + "<br>";
|
||||
|
||||
if (poi.attributes.image) {
|
||||
innerHTML += "<div class=\"poi_image_container\">" +
|
||||
"<img class=\"poi_image\" src=\"" + HtmlSanitizer.SanitizeHtml(poi.attributes.image) +
|
||||
"\" crossorigin=\"anonymous\" referrerpolicy=\"origin-when-cross-origin\"></div>";
|
||||
}
|
||||
|
||||
innerHTML += "<hr>";
|
||||
if (poi.attributes.addr) {
|
||||
innerHTML += "<b>Address: </b> " + HtmlSanitizer.SanitizeHtml(poi.attributes.addr) + "<br>";
|
||||
}
|
||||
innerHTML += "<b>Owner: </b> " + HtmlSanitizer.SanitizeHtml(poi.attributes.owner) + "<br>";
|
||||
|
||||
return innerHTML;
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,7 +71,7 @@ export default L.LayerGroup.extend({
|
||||
|
||||
|
||||
getMaxDisplayedZoom: function(){
|
||||
return 10;
|
||||
return 7;
|
||||
},
|
||||
|
||||
createMarker: function(train){
|
||||
|
@ -58,6 +58,10 @@ export default AbstractGeoJsonOverlay.extend({
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getMaxDisplayedZoom: function(){
|
||||
return 4;
|
||||
},
|
||||
|
||||
createGeoJson: function(objects){
|
||||
var self = this;
|
||||
|
29
public/js/map/overlays/UnifiedMoneyAreaForSaleOverlay.js
Normal file
29
public/js/map/overlays/UnifiedMoneyAreaForSaleOverlay.js
Normal file
@ -0,0 +1,29 @@
|
||||
import AbstractIconOverlay from './AbstractIconOverlay.js';
|
||||
import {HtmlSanitizer} from '../../lib/HtmlSanitizer.js';
|
||||
|
||||
export default AbstractIconOverlay.extend({
|
||||
initialize: function () {
|
||||
AbstractIconOverlay.prototype.initialize.call(this, "um_area_forsale");
|
||||
},
|
||||
|
||||
getMaxDisplayedZoom: function () {
|
||||
return 8;
|
||||
},
|
||||
|
||||
getIcon: function () {
|
||||
return L.icon({
|
||||
iconUrl: "pics/um_area_forsale_sign_alpha.png",
|
||||
iconSize: [32, 32],
|
||||
iconAnchor: [16, 16],
|
||||
popupAnchor: [0, -16]
|
||||
});
|
||||
},
|
||||
|
||||
createPopup: function (obj) {
|
||||
return "<h4>Area For Sale</h4>" +
|
||||
"<h5>" + HtmlSanitizer.SanitizeHtml(obj.attributes.description || "No Description") + "</h5><hr>" +
|
||||
"<b>Owner:</b> " + HtmlSanitizer.SanitizeHtml(obj.attributes.owner) + "<br>" +
|
||||
"<b>Area ID(s):</b> " + HtmlSanitizer.SanitizeHtml(obj.attributes.id) + "<br>" +
|
||||
"<b>Price:</b> $" + HtmlSanitizer.SanitizeHtml(obj.attributes.price) + "<br>";
|
||||
}
|
||||
});
|
24
public/package-lock.json
generated
24
public/package-lock.json
generated
@ -32,9 +32,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/fontawesome-free": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz",
|
||||
"integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==",
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz",
|
||||
"integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==",
|
||||
"hasInstallScript": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
@ -284,9 +284,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/bootstrap": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz",
|
||||
"integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==",
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
|
||||
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@ -734,9 +734,9 @@
|
||||
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ=="
|
||||
},
|
||||
"@fortawesome/fontawesome-free": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz",
|
||||
"integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw=="
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz",
|
||||
"integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q=="
|
||||
},
|
||||
"@popperjs/core": {
|
||||
"version": "2.11.8",
|
||||
@ -880,9 +880,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"bootstrap": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz",
|
||||
"integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==",
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
|
||||
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
|
||||
"requires": {}
|
||||
},
|
||||
"brace-expansion": {
|
||||
|
BIN
public/pics/um_area_forsale_sign_alpha.png
Normal file
BIN
public/pics/um_area_forsale_sign_alpha.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 239 B |
@ -9,6 +9,7 @@ type Color struct {
|
||||
R uint8 `json:"r"`
|
||||
G uint8 `json:"g"`
|
||||
B uint8 `json:"b"`
|
||||
A uint8 `json:"a"`
|
||||
}
|
||||
|
||||
func (api *Api) GetColorMapping(resp http.ResponseWriter, req *http.Request) {
|
||||
@ -16,7 +17,7 @@ func (api *Api) GetColorMapping(resp http.ResponseWriter, req *http.Request) {
|
||||
cm := make(map[string]Color)
|
||||
|
||||
for k, v := range api.Context.Colormapping.GetColors() {
|
||||
cm[k] = Color{R: v.R, G: v.G, B: v.B}
|
||||
cm[k] = Color{R: v.R, G: v.G, B: v.B, A: v.A}
|
||||
}
|
||||
|
||||
resp.Header().Add("content-type", "application/json")
|
||||
|
Loading…
Reference in New Issue
Block a user