⬆ 设置服务器端的配置文件.
- 删除部分在服务器上不启用的mod配置.
1192
pl3xmap/colors.yml
Normal file
176
pl3xmap/config.yml
Normal file
@@ -0,0 +1,176 @@
|
||||
settings:
|
||||
# Extra logger/console output. (can be spammy)
|
||||
debug-mode: false
|
||||
# The language file to use from the locale folder.
|
||||
language-file: lang-en.yml
|
||||
# Set the web address players use to connect to your map. This
|
||||
# is only used for the client mod to know where to connect.
|
||||
web-address: http://localhost:25580
|
||||
web-directory:
|
||||
# The directory that houses the website and world tiles.
|
||||
# This is a relative path from Pl3xMap's plugin directory,
|
||||
# unless it starts with / in which case it will be treated
|
||||
# as an absolute path.
|
||||
path: web/
|
||||
# Set to true if you don't want Pl3xMap to overwrite
|
||||
# the website files on startup. (Good for servers that
|
||||
# customize these files)
|
||||
# Note: Be sure this is false when upgrading.
|
||||
read-only: false
|
||||
# The image format for tile images.
|
||||
# Built in types: bmp, gif, jpg, jpeg, png
|
||||
tile-format: png
|
||||
# The quality for image tiles (0.0 - 1.0)
|
||||
# 0.0 is low quality, high compression, small file size
|
||||
# 1.0 is high quality, no compression, large file size
|
||||
# Note: Not all image formats honor this setting.
|
||||
tile-quality: 0.0
|
||||
map:
|
||||
zoom:
|
||||
# Forces the map's zoom level to always be a multiple of this.
|
||||
# By default, the zoom level snaps to the nearest integer; lower
|
||||
# values (e.g. 0.5 or 0.1) allow for greater granularity. A
|
||||
# value of 0 means the zoom level will not be snapped.
|
||||
snap: 0.25
|
||||
# Controls how much the map's zoom level will change after a zoom in,
|
||||
# zoom out, pressing + or - on the keyboard, or using the zoom controls.
|
||||
# Values smaller than 1 (e.g. 0.5) allow for greater granularity.
|
||||
delta: 0.25
|
||||
# How many scroll pixels (as reported by L.DomEvent.getWheelDelta) mean
|
||||
# a change of one full zoom level. Smaller values will make wheel-zooming
|
||||
# faster (and vice versa).
|
||||
wheel: 120
|
||||
internal-webserver:
|
||||
# Enable the built-in web server.
|
||||
# Disable this if you want to use a standalone web server
|
||||
# such as apache or nginx.
|
||||
enabled: true
|
||||
# The interface the built-in web server should bind to.
|
||||
# This is NOT always the same as your public facing IP.
|
||||
# If you don't understand what this is,
|
||||
# leave it set to 0.0.0.0
|
||||
bind: 0.0.0.0
|
||||
# The port the built-in web server listens to.
|
||||
# Make sure the port is allocated if using Pterodactyl.
|
||||
port: 25580
|
||||
# Allows the built-in web server to follow symlinks.
|
||||
# It is generally advised against enabling this,
|
||||
# for security reasons. But you do you, boo boo.
|
||||
follow-symlinks: false
|
||||
performance:
|
||||
live-update:
|
||||
# Whether or not the real-time marker system should run.
|
||||
enabled: true
|
||||
# The number of process-threads to use for real-time marker updates on the map.
|
||||
# Value of -1 will use 50% of the available cpu-threads. (recommended)
|
||||
threads: -1
|
||||
# The number of process-threads to use for loading and scanning chunks.
|
||||
# Value of -1 will use 50% of the available cpu-threads. (recommended)
|
||||
render-threads: -1
|
||||
gc:
|
||||
# Runs the JVM GC after a render job stops to free up memory immediately.
|
||||
when-finished: true
|
||||
# Runs the JVM GC aggressively while a render is running
|
||||
# CAUTION: this _will_ slow down your renders!
|
||||
when-running: false
|
||||
world-settings:
|
||||
default:
|
||||
# Enables this world to be rendered on the map.
|
||||
enabled: true
|
||||
render:
|
||||
# Renderers to use. Each renderer will render a different
|
||||
# type of map. The built-in renderers include:
|
||||
# vintage_story, basic, biomes, flowermap, inhabited, night, nether_roof, and vanilla
|
||||
renderers:
|
||||
vintage_story: overworld_basic
|
||||
# World skylight value. This is used for the day/night cycle
|
||||
# map (not yet implemented) .Values are clamped to 0-15
|
||||
# with 0 being darkest and 15 being full bright.
|
||||
skylight: 15
|
||||
# Enables blending of biome grass/foliage/water colors similar to
|
||||
# the client's biome blending option.
|
||||
# Values are clamped to 0-7
|
||||
biome-blend: 3
|
||||
# Enable translucent fluids.
|
||||
# This will make the fluids look fancier and translucent,
|
||||
# so you can see the blocks below in shallow fluids.
|
||||
translucent-fluids: true
|
||||
# Enable translucent glass.
|
||||
# This will make the glass look fancier and translucent,
|
||||
# so you can see the blocks below.
|
||||
translucent-glass: true
|
||||
# Type of heightmap to render.
|
||||
# NONE has no heightmap drawn.
|
||||
# EVEN_ODD makes every other Y layer darker, like Dynmap.
|
||||
# HIGH_CONTRAST same as MODERN, but darker.
|
||||
# LOW_CONTRAST same as MODERN, but lighter.
|
||||
# MODERN is a clearer, more detailed view.
|
||||
# OLD_SCHOOL is the old type from v1.
|
||||
# VANILLA matches the in-game vanilla maps.
|
||||
# EVEN_ODD_HIGH_CONTRAST mix of EVEN_ODD and HIGH_CONTRAST.
|
||||
# EVEN_ODD_LOW_CONTRAST mix of EVEN_ODD and LOW_CONTRAST.
|
||||
# EVEN_ODD_MODERN mix of EVEN_ODD and MODERN.
|
||||
# EVEN_ODD_OLD_SCHOOL mix of EVEN_ODD and OLD_SCHOOL.
|
||||
# EVEN_ODD_VANILLA mix of EVEN_ODD and VANILLA.
|
||||
heightmap-type: MODERN
|
||||
# Visible areas of the world.
|
||||
visible-areas:
|
||||
- type: world-border
|
||||
ui:
|
||||
# The display name of the world in the world list.
|
||||
# Use <world> to use the official world name.
|
||||
display-name: <world>
|
||||
# The order of the world in the world list
|
||||
order: 0
|
||||
# Shows the footer attributes
|
||||
attribution: true
|
||||
# The display position for the blockinfo box
|
||||
blockinfo: bottomleft
|
||||
# The display position for the coordinates box
|
||||
coords: bottomcenter
|
||||
# The display position for the link box
|
||||
link: bottomright
|
||||
center:
|
||||
# The x coordinate for the map to load at.
|
||||
# A value of -1 will default to world spawn.
|
||||
x: -1
|
||||
# The z coordinate for the map to load at.
|
||||
# A value of -1 will default to world spawn.
|
||||
z: -1
|
||||
zoom:
|
||||
# The default zoom when loading the map in browser.
|
||||
# Normal sized tiles (1 pixel = 1 block) are
|
||||
# always at zoom level 0.
|
||||
default: 0
|
||||
# The maximum zoom out you can do on the map.
|
||||
# Each additional level requires a new set of tiles
|
||||
# to be rendered, so don't go too wild here.
|
||||
max-out: 3
|
||||
# Extra zoom in layers will stretch the original
|
||||
# tile images so you can zoom in further without
|
||||
# the extra cost of rendering more tiles.
|
||||
max-in: 2
|
||||
minecraft:overworld:
|
||||
enabled: true
|
||||
render:
|
||||
renderers:
|
||||
vintage_story: overworld_basic
|
||||
ui:
|
||||
display-name: Overworld
|
||||
order: 0
|
||||
minecraft:the_nether:
|
||||
render:
|
||||
renderers:
|
||||
basic: nether_basic
|
||||
skylight: 0
|
||||
ui:
|
||||
display-name: The Nether
|
||||
order: 1
|
||||
minecraft:the_end:
|
||||
render:
|
||||
renderers:
|
||||
basic: the_end_basic
|
||||
skylight: 0
|
||||
ui:
|
||||
display-name: The End
|
||||
order: 2
|
||||
91
pl3xmap/layers/players.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
settings:
|
||||
# Show online players on the map and sidebar.
|
||||
enabled: true
|
||||
hide:
|
||||
# Should invisible players be hidden from the map.
|
||||
invisible: true
|
||||
# Should spectators be hidden from the map.
|
||||
spectators: true
|
||||
layer:
|
||||
# How often (in seconds) to update the marker.
|
||||
update-interval: 0
|
||||
# Whether to push this layer through SSE or not.
|
||||
live-update: true
|
||||
# Whether the players layer control shows up in the layers list or not.
|
||||
show-controls: true
|
||||
# Whether the players layer should be hidden (toggled off) by default.
|
||||
default-hidden: false
|
||||
# Priority order players layer shows up in the layers list.
|
||||
# (lower values = higher in the list)
|
||||
priority: 20
|
||||
# Z-Index order players layer shows up in the map.
|
||||
# (higher values are drawn on top of lower values)
|
||||
z-index: 999
|
||||
# The player icon.
|
||||
# Icon must be in the web/images/icon/ directory.
|
||||
icon: players
|
||||
# Tooltip for player markers.
|
||||
# Variables: uuid, name, decoratedName, health, armor
|
||||
tooltip: |-
|
||||
<ul>
|
||||
<li><img src='images/skins/2D/<uuid>.png' class='head' alt='<name>' /></li>
|
||||
<li>
|
||||
<name>
|
||||
<img src='images/clear.png' class='health' style='background-position:0 calc(-<health>px * 9);' alt='Health <health>' />
|
||||
<img src='images/clear.png' class='armor' style='background-position:0 calc(-<armor>px * 9);' alt='Armor <armor>' />
|
||||
</li>
|
||||
</ul>
|
||||
# The custom pane layer for the player tracker.
|
||||
# This is used to make custom css styled tooltips.
|
||||
# (see css setting below)
|
||||
pane: nameplates
|
||||
# Custom css for players marker layer.
|
||||
# Class names use the pane name set above.
|
||||
css: |-
|
||||
div.leaflet-nameplates-pane div img.head {
|
||||
image-rendering: pixelated;
|
||||
image-rendering: -moz-crisp-edges;
|
||||
-ms-interpolation-mode: nearest-neighbor;
|
||||
}
|
||||
div.leaflet-nameplates-pane div {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #ffffff;
|
||||
font-weight: 700;
|
||||
line-height: 1rem;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-color: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
div.leaflet-nameplates-pane div ul {
|
||||
padding: 3px;
|
||||
}
|
||||
div.leaflet-nameplates-pane div:before {
|
||||
border-color: transparent;
|
||||
}
|
||||
div.leaflet-nameplates-pane div img.head {
|
||||
vertical-align: middle;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
div.leaflet-nameplates-pane div img.health {
|
||||
margin-top: 3px;
|
||||
}
|
||||
div.leaflet-nameplates-pane div img.armor,
|
||||
div.leaflet-nameplates-pane div img.health {
|
||||
display: block;
|
||||
width: 81px;
|
||||
height: 9px;
|
||||
background-position: 0 0;
|
||||
}
|
||||
div.leaflet-nameplates-pane div img.armor {
|
||||
background: url('images/armor.png') no-repeat;
|
||||
}
|
||||
div.leaflet-nameplates-pane div img.health {
|
||||
background: url('images/health.png') no-repeat;
|
||||
}
|
||||
div.leaflet-nameplates-pane div,
|
||||
div.leaflet-marker-pane img {
|
||||
transition: all 0.25s;
|
||||
}
|
||||
21
pl3xmap/layers/spawn.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
settings:
|
||||
# Show spawn icon on the map.
|
||||
enabled: true
|
||||
layer:
|
||||
# How often (in seconds) to update the marker.
|
||||
update-interval: 30
|
||||
# Whether to push this layer through SSE or not.
|
||||
live-update: true
|
||||
# Whether the spawn layer control shows up in the layers list or not.
|
||||
show-controls: true
|
||||
# Whether the spawn layer should be hidden (toggled off) by default.
|
||||
default-hidden: false
|
||||
# Priority order spawn layer shows up in the layers list.
|
||||
# (lower values = higher in the list)
|
||||
priority: 10
|
||||
# Z-Index order spawn layer shows up in the map.
|
||||
# (higher values are drawn on top of lower values)
|
||||
z-index: 500
|
||||
# The spawn icon.
|
||||
# Icon must be in the web/images/icon/ directory.
|
||||
icon: spawn
|
||||
24
pl3xmap/layers/worldborder.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
settings:
|
||||
# Shows vanilla world border on the map.
|
||||
enabled: true
|
||||
layer:
|
||||
# How often (in seconds) to update the marker.
|
||||
update-interval: 30
|
||||
# Whether to push this layer through SSE or not.
|
||||
live-update: true
|
||||
# Whether the vanilla world border layer control shows up in the layers list or not.
|
||||
show-controls: true
|
||||
# Whether the vanilla world border layer should be hidden (toggled off) by default.
|
||||
default-hidden: false
|
||||
# Priority order vanilla world border layer shows up in the layers list.
|
||||
# (lower values = higher in the list)
|
||||
priority: 30
|
||||
# Z-Index order vanilla world border layer shows up in the map.
|
||||
# (higher values are drawn on top of lower values)
|
||||
z-index: 500
|
||||
style:
|
||||
stroke:
|
||||
# Stroke color (#AARRGGBB)
|
||||
color: '#FFFF0000'
|
||||
# Stroke weight (thickness)
|
||||
weight: 3
|
||||
139
pl3xmap/locale/lang-en.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
prefix:
|
||||
command: '<grey>[<gradient:#C028FF:#5B00FF>Pl3xMap</gradient>]</grey> '
|
||||
command:
|
||||
base: View the map at '<grey><click:open_url:'<web-address>'><web-address></click></grey>'
|
||||
event:
|
||||
click-for-help: Click for help
|
||||
click-to-confirm: Click to confirm
|
||||
argument:
|
||||
optional-player: Defaults to the executing player if unspecified (console must
|
||||
specify a player)
|
||||
optional-center: Defaults to (<white>0<gray>,</gray> 0</white>) if unspecified
|
||||
optional-zoom: Map zoom level
|
||||
required-renderer: Renderer is required
|
||||
required-world: World is required
|
||||
confirm:
|
||||
description: Confirm a pending command
|
||||
not-rendering: <red>Confirmation required. Confirm using <grey>/map confirm
|
||||
success: <red>You don't have any pending confirmations
|
||||
fullrender:
|
||||
description: Fully render a world
|
||||
starting: <green>Full render starting. Check <grey>/map status</grey> for more
|
||||
info
|
||||
no-region-files-found: <red>No region files found for <world>. Please either pregenerate
|
||||
your world using <u><click:open_url:'https://modrinth.com/plugin/chunky'>Chunky</click></u>
|
||||
or wait for the loaded chunks to save.
|
||||
help:
|
||||
description: Get help for Pl3xmap commands
|
||||
argument:
|
||||
query: Help Query
|
||||
hide:
|
||||
description: Hide a player from the map
|
||||
already-hidden: <grey><player> <red>is already hidden from the map
|
||||
success: <grey><player> <green>is now hidden from the map
|
||||
pause:
|
||||
description: Pause renderers
|
||||
paused: <green>Renderers are now paused
|
||||
already-paused: <grey>Renderers are already paused
|
||||
resume:
|
||||
description: Resume renderers
|
||||
resumed: <green>Renderers have now resumed
|
||||
already-resumed: <grey>Renderers have already resumed
|
||||
radiusrender:
|
||||
description: Render a section of a world
|
||||
starting: <green>Radius render starting. Check <grey>/map status</grey> for more
|
||||
info
|
||||
reload:
|
||||
description: Reloads the plugin
|
||||
success: <green>Pl3xMap <grey>v<version></grey> reloaded
|
||||
resetmap:
|
||||
description: Cancel active render of a world
|
||||
begin: <green>Map reset for <grey><world></grey> has begun
|
||||
success: <green>Successfully reset map for <grey><world>
|
||||
failed: <red>Could not reset map for <grey><world>
|
||||
show:
|
||||
description: Show a player on the map
|
||||
not-hidden: <grey><player> <red>is not hidden from the map
|
||||
success: <grey><player> <green>is no longer hidden from the map
|
||||
status:
|
||||
description: View the render status
|
||||
stitch:
|
||||
description: Stitches tiles into one image
|
||||
missing-directory: <red>Unable to find tiles directory.
|
||||
error-reading-directory: <red>There was a problem reading the tiles directory.
|
||||
empty-directory: <red>There are no tiles to stitch.
|
||||
starting: |-
|
||||
<green>Started stitching <count> tiles..
|
||||
<green><italic>(min: <min-x>,<min-z> max: <max-x>,<max-z> size: <size-x>,<size-z>)
|
||||
finished: |-
|
||||
<green>Finished stitching <count> tiles!
|
||||
<green>You can find it at <grey>/tiles/<world>/stitched/<filename>
|
||||
version:
|
||||
description: Get version information
|
||||
please-wait: <italic>Checking version, please wait...
|
||||
still-checking: <italic>Still checking...
|
||||
error:
|
||||
not-array: '<red>Error: response not an array'
|
||||
corrupt-json: '<red>Error: response is corrupt json'
|
||||
unknown-version: '<red>Error: response has unknown version'
|
||||
unable-to-determine: '<red>Error: Unable to determine latest build'
|
||||
success: Pl3xMap v3 <version> (<italic><platform></italic>) git-<commit>
|
||||
snapshot: <yellow><italic>You are running a snapshot
|
||||
latest-build-is: <yellow><italic>Latest build is <build>
|
||||
running-latest-build: <green><italic>You are running the latest build.
|
||||
builds-behind: <yellow><italic>You are <number> builds behind.
|
||||
download: '<yellow><italic>Download new build at: <gold><link>'
|
||||
time-traveler: <yellow><italic>Are you a time traveler?
|
||||
httpd:
|
||||
started:
|
||||
success: <green>Internal webserver running on <yellow><bind></yellow>:<yellow><port></yellow>
|
||||
error: <red>Internal webserver could not start
|
||||
stopped:
|
||||
success: <green>Internal webserver stopped
|
||||
error: <red>An error occurred with the internal webserver
|
||||
disabled: <green>Internal webserver is disabled
|
||||
progress:
|
||||
eta:
|
||||
unknown: Unknown
|
||||
error:
|
||||
must-specify-player: <red>You must specify the player
|
||||
no-such-player: <red>No such player <grey><player>
|
||||
must-specify-renderer: <red>You must specify the renderer
|
||||
no-such-renderer: <red>No such renderer <grey><renderer>
|
||||
must-specify-world: <red>You must specify the world
|
||||
no-such-world: <red>No such world <grey><world>
|
||||
world-disabled: <red>Pl3xMap is disabled for world <grey><world>
|
||||
not-valid-zoom-level: <red>Not a valid zoom level
|
||||
point-invalid-format: '''<point>'' is not a valid location. Required format is ''<x>
|
||||
<z>'''
|
||||
ui:
|
||||
layer:
|
||||
players: Players
|
||||
spawn: Spawn
|
||||
worldborder: World Border
|
||||
title: Pl3xMap
|
||||
block-and-biome-lang-file: en_us.json
|
||||
blockinfo:
|
||||
label: BlockInfo
|
||||
value: <block><br /><biome>
|
||||
unknown:
|
||||
block: Unknown block
|
||||
biome: Unknown biome
|
||||
coords:
|
||||
label: Coordinates
|
||||
value: <x>, <y>, <z>
|
||||
link:
|
||||
label: Sharable Link
|
||||
value: ''
|
||||
markers:
|
||||
label: Markers
|
||||
value: No markers have been configured
|
||||
players:
|
||||
label: Players (<online>/<max>)
|
||||
value: No players are currently online
|
||||
worlds:
|
||||
label: Worlds
|
||||
value: No worlds have been configured
|
||||
layers:
|
||||
label: Layers
|
||||
value: No layers have been configured
|
||||
136
pl3xmap/locale/lang-pl.yml
Normal file
@@ -0,0 +1,136 @@
|
||||
prefix:
|
||||
command: '<grey>[<gradient:#C028FF:#5B00FF>Pl3xMap</gradient>]</grey> '
|
||||
command:
|
||||
base: Zobacz mapę na '<grey><click:open_url:'<web-address>'><web-address></click></grey>'
|
||||
event:
|
||||
click-for-help: Kliknij, aby uzyskać pomoc
|
||||
click-to-confirm: Kliknij, aby potwierdzić
|
||||
argument:
|
||||
optional-player: Domyślnie dla wykonującego gracza, jeśli nieokreślony (konsola musi
|
||||
określić gracza)
|
||||
optional-center: Domyślnie dla (<white>0<gray>,</gray> 0</white>), jeśli nieokreślony
|
||||
optional-zoom: Poziom przybliżenia mapy
|
||||
required-renderer: Wymagany jest renderer
|
||||
required-world: Wymagany jest świat
|
||||
confirm:
|
||||
description: Potwierdź oczekujące polecenie
|
||||
not-rendering: <red>Wymagane potwierdzenie. Potwierdź za pomocą <grey>/map confirm
|
||||
success: <red>Nie masz żadnych oczekujących potwierdzeń
|
||||
fullrender:
|
||||
description: W pełni renderuj świat
|
||||
starting: <green>Rozpoczęcie pełnego renderowania. Sprawdź <grey>/map status</grey> dla
|
||||
więcej informacji
|
||||
help:
|
||||
description: Uzyskaj pomoc dotyczącą poleceń Pl3xmap
|
||||
argument:
|
||||
query: Zapytanie o pomoc
|
||||
hide:
|
||||
description: Ukryj gracza na mapie
|
||||
already-hidden: <grey><player> <red>jest już ukryty na mapie
|
||||
success: <grey><player> <green>jest teraz ukryty na mapie
|
||||
pause:
|
||||
description: Wstrzymaj renderery
|
||||
paused: <green>Renderery są teraz wstrzymane
|
||||
already-paused: <grey>Renderery już są wstrzymane
|
||||
resume:
|
||||
description: Wznów renderery
|
||||
resumed: <green>Renderery są teraz wznowione
|
||||
already-resumed: <grey>Renderery już są wznowione
|
||||
radiusrender:
|
||||
description: Renderuj sekcję świata
|
||||
starting: <green>Rozpoczęcie renderowania promienia. Sprawdź <grey>/map status</grey>
|
||||
dla więcej informacji
|
||||
reload:
|
||||
description: Przeładuj wtyczkę
|
||||
success: <green>Pl3xMap <grey>v<version></grey> został przeładowany
|
||||
resetmap:
|
||||
description: Anuluj aktywne renderowanie świata
|
||||
begin: <green>Rozpoczęto resetowanie mapy dla <grey><world></grey>
|
||||
success: <green>Pomyślnie zresetowano mapę dla <grey><world>
|
||||
failed: <red>Nie można zresetować mapy dla <grey><world>
|
||||
show:
|
||||
description: Pokaż gracza na mapie
|
||||
not-hidden: <grey><player> <red>nie jest ukryty na mapie
|
||||
success: <grey><player> <green>nie jest już ukryty na mapie
|
||||
status:
|
||||
description: Wyświetl status renderowania
|
||||
stitch:
|
||||
description: Połącz kafelki w jedno zdjęcie
|
||||
missing-directory: <red>Nie można znaleźć katalogu z kafelkami.
|
||||
error-reading-directory: <red>Wystąpił problem podczas odczytu katalogu z kafelkami.
|
||||
empty-directory: <red>Brak kafelków do połączenia.
|
||||
starting: |-
|
||||
<green>Rozpoczęcie łączenia <count> kafelków..
|
||||
<green><italic>(min: <min-x>,<min-z> max: <max-x>,<max-z> rozmiar: <size-x>,<size-z>)
|
||||
finished: |-
|
||||
<green>Zakończono łączenie <count> kafelków!
|
||||
<green>Znajdziesz je tutaj: <grey>/tiles/<world>/stitched/<filename>
|
||||
version:
|
||||
description: Uzyskaj informacje o wersji
|
||||
please-wait: <italic>Sprawdzanie wersji, proszę czekać...
|
||||
still-checking: <italic>Wersja wciąż jest sprawdzana...
|
||||
error:
|
||||
not-array: '<red>Błąd: odpowiedź nie jest tablicą'
|
||||
corrupt-json: '<red>Błąd: odpowiedź to uszkodzony JSON'
|
||||
unknown-version: '<red>Błąd: odpowiedź zawiera nieznany numer wersji'
|
||||
unable-to-determine: '<red>Błąd: Nie można określić najnowszej kompilacji'
|
||||
success: Pl3xMap v3 <version> (<italic><platform></italic>) git-<commit>
|
||||
snapshot: <yellow><italic>Uruchamiasz wersję testową
|
||||
latest-build-is: <yellow><italic>Najnowsza kompilacja to <build>
|
||||
running-latest-build: <green><italic>Uruchamiasz najnowszą kompilację.
|
||||
builds-behind: <yellow><italic>Jesteś <number> kompilacji za aktualną wersją.
|
||||
download: '<yellow><italic>Pobierz nową kompilację tutaj: <gold><link>'
|
||||
time-traveler: <yellow><italic>Jesteś podróżnikiem w czasie?
|
||||
httpd:
|
||||
started:
|
||||
success: <green>Wewnętrzny serwer WWW działa na <yellow><bind></yellow>:<yellow><port></yellow>
|
||||
error: <red>Wewnętrzny serwer WWW nie mógł wystartować
|
||||
stopped:
|
||||
success: <green>Wewnętrzny serwer WWW zatrzymany
|
||||
error: <red>Wystąpił błąd z wewnętrznym serwerem WWW
|
||||
disabled: <green>Wewnętrzny serwer WWW jest wyłączony
|
||||
progress:
|
||||
eta:
|
||||
unknown: Nieznane
|
||||
error:
|
||||
must-specify-player: <red>Musisz określić gracza
|
||||
no-such-player: <red>Gracz <grey><player> <red> nie istnieje
|
||||
must-specify-renderer: <red>Musisz określić renderer
|
||||
no-such-renderer: <red>Renderer <grey><renderer> <red>nie istnieje
|
||||
must-specify-world: <red>Musisz określić świat
|
||||
no-such-world: <red>Świat <grey><world> <red>nie istnieje
|
||||
world-disabled: <red>Pl3xMap jest wyłączony dla świata <grey><world>
|
||||
not-valid-zoom-level: <red>Nieprawidłowy poziom przybliżenia
|
||||
point-invalid-format: '''<point>'' nie jest prawidłową lokalizacją. Wymagany format to ''<x>
|
||||
<z>'''
|
||||
ui:
|
||||
layer:
|
||||
players: Gracze
|
||||
spawn: Spawn
|
||||
worldborder: Granica świata
|
||||
title: Pl3xMap
|
||||
block-and-biome-lang-file: pl_pl.json # webmap/public/lang/
|
||||
blockinfo:
|
||||
label: BlockInfo
|
||||
value: <block><br /><biome>
|
||||
unknown:
|
||||
block: Nieznany blok
|
||||
biome: Nieznany biom
|
||||
coords:
|
||||
label: Współrzędne
|
||||
value: <x>, <y>, <z>
|
||||
link:
|
||||
label: Udostępnialny link
|
||||
value: ''
|
||||
markers:
|
||||
label: Znaczniki
|
||||
value: Nie skonfigurowano żadnych znaczników
|
||||
players:
|
||||
label: Gracze (<online>/<max>)
|
||||
value: Obecnie nie ma żadnych graczy online
|
||||
worlds:
|
||||
label: Światy
|
||||
value: Nie skonfigurowano żadnych światów
|
||||
layers:
|
||||
label: Warstwy
|
||||
value: Nie skonfigurowano żadnych warstw
|
||||
BIN
pl3xmap/web/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
pl3xmap/web/images/armor.png
Normal file
|
After Width: | Height: | Size: 507 B |
BIN
pl3xmap/web/images/clear.png
Normal file
|
After Width: | Height: | Size: 95 B |
BIN
pl3xmap/web/images/foliage.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
pl3xmap/web/images/grass.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
pl3xmap/web/images/health.png
Normal file
|
After Width: | Height: | Size: 502 B |
BIN
pl3xmap/web/images/icon/flowermap.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
pl3xmap/web/images/icon/inhabited.png
Normal file
|
After Width: | Height: | Size: 865 B |
BIN
pl3xmap/web/images/icon/marker-icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
pl3xmap/web/images/icon/marker-shadow.png
Normal file
|
After Width: | Height: | Size: 618 B |
BIN
pl3xmap/web/images/icon/nether_basic.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
pl3xmap/web/images/icon/nether_biomes.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
pl3xmap/web/images/icon/nether_night.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
pl3xmap/web/images/icon/nether_roof.png
Normal file
|
After Width: | Height: | Size: 780 B |
BIN
pl3xmap/web/images/icon/overworld_basic.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
pl3xmap/web/images/icon/overworld_biomes.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
pl3xmap/web/images/icon/overworld_night.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
pl3xmap/web/images/icon/players.png
Normal file
|
After Width: | Height: | Size: 142 B |
BIN
pl3xmap/web/images/icon/registered/nether_basic.png
Normal file
|
After Width: | Height: | Size: 680 B |
BIN
pl3xmap/web/images/icon/registered/overworld_basic.png
Normal file
|
After Width: | Height: | Size: 734 B |
BIN
pl3xmap/web/images/icon/registered/players.png
Normal file
|
After Width: | Height: | Size: 193 B |
BIN
pl3xmap/web/images/icon/registered/spawn.png
Normal file
|
After Width: | Height: | Size: 193 B |
BIN
pl3xmap/web/images/icon/registered/the_end_basic.png
Normal file
|
After Width: | Height: | Size: 669 B |
BIN
pl3xmap/web/images/icon/spawn.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
pl3xmap/web/images/icon/the_end_basic.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
pl3xmap/web/images/icon/the_end_biomes.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
pl3xmap/web/images/icon/the_end_night.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
pl3xmap/web/images/icon/vanilla.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
pl3xmap/web/images/og.png
Normal file
|
After Width: | Height: | Size: 668 KiB |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
BIN
pl3xmap/web/images/skins/steve.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
pl3xmap/web/images/sky/nether.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
pl3xmap/web/images/sky/overworld.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
pl3xmap/web/images/sky/the_end.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
54
pl3xmap/web/index.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
|
||||
<!-- disable darkreader browser extension on this site -->
|
||||
<meta name="darkreader-lock"/>
|
||||
|
||||
<!-- title set in language file -->
|
||||
<title></title>
|
||||
|
||||
<meta name="description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
|
||||
<meta name="keywords" content="Minecraft, Mod, Plugin, Map, Pl3x, Pl3xMap, Dynamic, Live, LiveMap, BlueMap, Dynmap, SquareMap, Bukkit, BukkitMC, Spigot, SpigotMC, Paper, PaperMC, Purpur, PurpurMC, Fabric, FabricMC, Forge, ForgeMC, Quilt, QuiltMC"/>
|
||||
|
||||
<!-- facebook meta tags -->
|
||||
<meta property="og:url" content="https://modrinth.com/plugin/pl3xmap"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:title" content="Pl3xMap"/>
|
||||
<meta property="og:description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
|
||||
<meta property="og:image" content="https://raw.githubusercontent.com/granny/Pl3xMap/v3/webmap/public/images/og.png"/>
|
||||
|
||||
<!-- twitter meta tags -->
|
||||
<meta name="twitter:card" content="summary_large_image"/>
|
||||
<meta property="twitter:domain" content="modrinth.com/plugin/pl3xmap"/>
|
||||
<meta property="twitter:url" content="https://modrinth.com/plugin/pl3xmap"/>
|
||||
<meta name="twitter:title" content="Pl3xMap"/>
|
||||
<meta name="twitter:description" content="Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style"/>
|
||||
<meta name="twitter:image" content="https://raw.githubusercontent.com/granny/Pl3xMap/v3/webmap/public/images/og.png"/>
|
||||
|
||||
<!-- browser support -->
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"/>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
|
||||
<meta name="theme-color" content="#222222"/>
|
||||
|
||||
<!-- favicon -->
|
||||
<link rel="shortcut icon" href="favicon.ico" sizes="16x16 32x32 48x48" crossOrigin="anonymous"/>
|
||||
|
||||
<!-- modern-normalize -->
|
||||
<link rel="stylesheet" href="modern-normalize.css">
|
||||
|
||||
<!-- leaflet -->
|
||||
<link rel="stylesheet" href="leaflet.css"/>
|
||||
<script src="leaflet.js"></script>
|
||||
|
||||
<!-- pl3xmap -->
|
||||
<link rel="stylesheet" href="styles.css" type="text/css"/>
|
||||
<script src="pl3xmap.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="map" class="map"></div>
|
||||
</body>
|
||||
</html>
|
||||
1123
pl3xmap/web/lang/en_pt.json
Normal file
1122
pl3xmap/web/lang/en_us.json
Normal file
1778
pl3xmap/web/lang/pl_pl.json
Normal file
1
pl3xmap/web/leaflet.css
Normal file
1
pl3xmap/web/leaflet.js
Normal file
1
pl3xmap/web/leaflet.js.map
Normal file
1
pl3xmap/web/modern-normalize.css
Normal file
@@ -0,0 +1 @@
|
||||
/* modern-normalize 1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */progress,sub,sup{vertical-align:baseline}*,::after,::before{box-sizing:border-box}html{-moz-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:ButtonText dotted 1px}:-moz-ui-invalid{box-shadow:none}legend{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}
|
||||
2
pl3xmap/web/pl3xmap.js
Normal file
1
pl3xmap/web/pl3xmap.js.map
Normal file
489
pl3xmap/web/styles.css
Normal file
@@ -0,0 +1,489 @@
|
||||
.menu input + label, button, .leaflet-control-button, #sidebar #sidebar__buttons button, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle, .leaflet-bar a,
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
display: inline-block;
|
||||
appearance: none;
|
||||
box-shadow: var(--ui-box-shadow);
|
||||
white-space: nowrap;
|
||||
background-color: var(--ui-background);
|
||||
color: var(--ui-text);
|
||||
border-radius: var(--ui-border-radius);
|
||||
border: var(--ui-border);
|
||||
background-clip: padding-box;
|
||||
position: relative;
|
||||
padding: 0.5rem;
|
||||
line-height: 2rem;
|
||||
cursor: pointer;
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
.menu input + label > a:only-child, button > a:only-child, .leaflet-control-button > a:only-child, #sidebar #sidebar__buttons button > a:only-child, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > a:only-child,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle > a:only-child, .leaflet-bar a > a:only-child {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.menu input + label > img:only-child, button > img:only-child, .leaflet-control-button > img:only-child, #sidebar #sidebar__buttons button > img:only-child, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > img:only-child,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle > img:only-child, .leaflet-bar a > img:only-child,
|
||||
.menu input + label > svg:only-child,
|
||||
button > svg:only-child,
|
||||
.leaflet-control-button > svg:only-child,
|
||||
#sidebar #sidebar__buttons button > svg:only-child,
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle > svg:only-child,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle > svg:only-child,
|
||||
.leaflet-bar a > svg:only-child {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
margin: auto;
|
||||
width: calc(100% - 1.6rem);
|
||||
height: calc(100% - 1.6rem);
|
||||
pointer-events: none;
|
||||
}
|
||||
.menu input + label:visited, button:visited, .leaflet-control-button:visited, #sidebar #sidebar__buttons button:visited, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:visited,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:visited, .leaflet-bar a:visited, .menu input + label:link, button:link, .leaflet-control-button:link, #sidebar #sidebar__buttons button:link, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:link,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:link, .leaflet-bar a:link {
|
||||
color: var(--ui-text);
|
||||
}
|
||||
.menu input + label:hover, button:hover, .leaflet-control-button:hover, #sidebar #sidebar__buttons button:hover, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:hover,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:hover, .leaflet-bar a:hover {
|
||||
background-color: var(--ui-background-hover);
|
||||
color: var(--ui-text-hover);
|
||||
}
|
||||
.menu input + label:focus, button:focus, .leaflet-control-button:focus, #sidebar #sidebar__buttons button:focus, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:focus,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:focus, .leaflet-bar a:focus {
|
||||
outline: var(--ui-outline);
|
||||
}
|
||||
.menu input + label:focus:not(:focus-visible), button:focus:not(:focus-visible), .leaflet-control-button:focus:not(:focus-visible), #sidebar #sidebar__buttons button:focus:not(:focus-visible),
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:focus:not(:focus-visible), .leaflet-bar a:focus:not(:focus-visible) {
|
||||
outline-style: none;
|
||||
}
|
||||
.menu input + label:active, button:active, .leaflet-control-button:active, #sidebar #sidebar__buttons button:active, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle:active,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle:active, .leaflet-bar a:active {
|
||||
background-color: var(--ui-background-active);
|
||||
color: var(--ui-text-active);
|
||||
}
|
||||
.menu input + label[disabled], button[disabled], [disabled].leaflet-control-button, #sidebar #sidebar__buttons button[disabled], .leaflet-touch .leaflet-control-layers [disabled].leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers [disabled].leaflet-control-layers-toggle, .leaflet-bar a[disabled], .menu input + label.leaflet-disabled, button.leaflet-disabled, .leaflet-disabled.leaflet-control-button, #sidebar #sidebar__buttons button.leaflet-disabled, .leaflet-touch .leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle, .leaflet-bar a.leaflet-disabled {
|
||||
background-color: var(--ui-background-disabled);
|
||||
color: var(--ui-text-disabled);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.menu input + label[disabled]:hover, button[disabled]:hover, [disabled].leaflet-control-button:hover, #sidebar #sidebar__buttons button[disabled]:hover,
|
||||
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:hover, .leaflet-bar a[disabled]:hover, .menu input + label[disabled]:active, button[disabled]:active, [disabled].leaflet-control-button:active, #sidebar #sidebar__buttons button[disabled]:active,
|
||||
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:active, .leaflet-bar a[disabled]:active, .menu input + label[disabled]:focus, button[disabled]:focus, [disabled].leaflet-control-button:focus, #sidebar #sidebar__buttons button[disabled]:focus,
|
||||
.leaflet-control-layers [disabled].leaflet-control-layers-toggle:focus, .leaflet-bar a[disabled]:focus, .menu input + label.leaflet-disabled:hover, button.leaflet-disabled:hover, .leaflet-disabled.leaflet-control-button:hover, #sidebar #sidebar__buttons button.leaflet-disabled:hover,
|
||||
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:hover, .leaflet-bar a.leaflet-disabled:hover, .menu input + label.leaflet-disabled:active, button.leaflet-disabled:active, .leaflet-disabled.leaflet-control-button:active, #sidebar #sidebar__buttons button.leaflet-disabled:active,
|
||||
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:active, .leaflet-bar a.leaflet-disabled:active, .menu input + label.leaflet-disabled:focus, button.leaflet-disabled:focus, .leaflet-disabled.leaflet-control-button:focus, #sidebar #sidebar__buttons button.leaflet-disabled:focus,
|
||||
.leaflet-control-layers .leaflet-disabled.leaflet-control-layers-toggle:focus, .leaflet-bar a.leaflet-disabled:focus {
|
||||
background-color: var(--ui-background-disabled);
|
||||
color: var(--ui-text-disabled);
|
||||
}
|
||||
.menu input + label[aria-pressed=true], button[aria-pressed=true], [aria-pressed=true].leaflet-control-button, #sidebar #sidebar__buttons button[aria-pressed=true], .leaflet-touch .leaflet-control-layers [aria-pressed=true].leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers [aria-pressed=true].leaflet-control-layers-toggle, .leaflet-bar a[aria-pressed=true], .menu input + label[aria-expanded=true], button[aria-expanded=true], [aria-expanded=true].leaflet-control-button, #sidebar #sidebar__buttons button[aria-expanded=true], .leaflet-touch .leaflet-control-layers [aria-expanded=true].leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers [aria-expanded=true].leaflet-control-layers-toggle, .leaflet-bar a[aria-expanded=true] {
|
||||
background-color: var(--ui-background-selected);
|
||||
color: var(--ui-text-selected);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.leaflet-control-button, #sidebar #sidebar__buttons button, .leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle, .leaflet-bar a,
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
height: var(--ui-button-size);
|
||||
width: var(--ui-button-size);
|
||||
line-height: calc(var(--ui-button-size) - 1.2rem);
|
||||
}
|
||||
|
||||
.leaflet-control-panel, #sidebar #sidebar__content, .leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list,
|
||||
.leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
background-color: var(--ui-background);
|
||||
color: var(--ui-text);
|
||||
border-radius: var(--ui-border-radius);
|
||||
border: var(--ui-border);
|
||||
padding: 0.2rem 0.5rem;
|
||||
}
|
||||
|
||||
/* Overrides for leaflet styles */
|
||||
/* Use CSS grid for control containers to avoid dealing with margins between controls */
|
||||
.leaflet-control-container {
|
||||
font-size: 1.6rem;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
padding: var(--ui-element-spacing);
|
||||
display: grid;
|
||||
grid-auto-rows: 1fr;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.leaflet-control-container-top,
|
||||
.leaflet-control-container-bottom {
|
||||
display: grid;
|
||||
grid-gap: inherit;
|
||||
grid-auto-flow: column;
|
||||
grid-auto-columns: minmax(0, 1fr);
|
||||
align-items: flex-start;
|
||||
position: relative;
|
||||
z-index: 1002;
|
||||
}
|
||||
|
||||
.leaflet-control-container-bottom {
|
||||
align-items: flex-end;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.leaflet-top, .leaflet-left,
|
||||
.leaflet-bottom, .leaflet-right {
|
||||
position: static;
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
grid-gap: var(--ui-element-spacing);
|
||||
justify-content: flex-start;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-top .leaflet-control, .leaflet-left .leaflet-control,
|
||||
.leaflet-bottom .leaflet-control, .leaflet-right .leaflet-control {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.leaflet-bottom {
|
||||
align-content: flex-end;
|
||||
}
|
||||
|
||||
.leaflet-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.leaflet-right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.leaflet-right .leaflet-control {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Use Pl3xmap styling for default leaflet controls */
|
||||
.leaflet-control-attribution {
|
||||
font-size: 1.1rem;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.leaflet-control-attribution a,
|
||||
.leaflet-control-attribution a:visited,
|
||||
.leaflet-control-attribution a:active,
|
||||
.leaflet-control-attribution a:hover {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.leaflet-popup,
|
||||
.leaflet-tooltip {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.leaflet-bar,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.leaflet-bar a,
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
display: block;
|
||||
border: var(--ui-border);
|
||||
border-top: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.leaflet-bar a:first-child,
|
||||
.leaflet-touch .leaflet-bar a:first-child {
|
||||
border-radius: var(--ui-border-radius) var(--ui-border-radius) 0 0;
|
||||
border-top: var(--ui-border);
|
||||
}
|
||||
|
||||
.leaflet-bar a:last-child,
|
||||
.leaflet-touch .leaflet-bar a:last-child {
|
||||
border-radius: 0 0 var(--ui-border-radius) var(--ui-border-radius);
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-control-layers {
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
position: relative;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded,
|
||||
.leaflet-control-layers.leaflet-control-layers-expanded {
|
||||
padding: 0;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list,
|
||||
.leaflet-control-layers.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
position: absolute;
|
||||
left: 100%;
|
||||
top: 0;
|
||||
margin-left: var(--ui-element-spacing);
|
||||
width: max-content;
|
||||
max-width: 30rem;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-toggle,
|
||||
.leaflet-control-layers .leaflet-control-layers-toggle {
|
||||
border-radius: var(--ui-border-radius);
|
||||
border: var(--ui-border);
|
||||
background-image: none;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-separator,
|
||||
.leaflet-control-layers .leaflet-control-layers-separator {
|
||||
margin: 0.5rem 0;
|
||||
border: var(--ui-border);
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector,
|
||||
.leaflet-control-layers .leaflet-control-layers-selector {
|
||||
position: static;
|
||||
margin: 0;
|
||||
font-size: inherit;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: var(--ui-border-radius);
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector span,
|
||||
.leaflet-control-layers .leaflet-control-layers-selector span {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers .leaflet-control-layers-selector + .leaflet-control-layers-selector,
|
||||
.leaflet-control-layers .leaflet-control-layers-selector + .leaflet-control-layers-selector {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
position: relative;
|
||||
transition: 0.2s transform ease-in;
|
||||
transform: none;
|
||||
}
|
||||
#sidebar.sidebar--expanded {
|
||||
--transform: calc(-1 * var(--ui-sidebar-width));
|
||||
transform: translateX(var(--transform));
|
||||
}
|
||||
#sidebar #sidebar__buttons {
|
||||
display: grid;
|
||||
grid-gap: var(--ui-element-spacing);
|
||||
}
|
||||
#sidebar #sidebar__content {
|
||||
padding: 1rem 1.5rem;
|
||||
border-radius: 0;
|
||||
position: absolute;
|
||||
top: calc(-1 * var(--ui-element-spacing));
|
||||
left: calc(var(--ui-button-size) + var(--ui-element-spacing));
|
||||
height: 100vh;
|
||||
width: var(--ui-sidebar-width);
|
||||
transition: 0.5s transform ease-in;
|
||||
overflow-y: auto;
|
||||
}
|
||||
#sidebar #sidebar__content h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--ui-font: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
--ui-button-size: 5rem;
|
||||
--ui-element-spacing: 1rem;
|
||||
--ui-border-radius: 0.4rem;
|
||||
--ui-border: 1px solid #777777;
|
||||
--ui-text-shadow: none;
|
||||
--ui-outline: solid #ffffff 0.3rem;
|
||||
--ui-background: rgba(255, 255, 255, 0.9);
|
||||
--ui-background-disabled: #555555;
|
||||
--ui-background-hover: #aaaaaa;
|
||||
--ui-background-active: #888888;
|
||||
--ui-background-selected: #222222;
|
||||
--ui-text: #222222;
|
||||
--ui-text-hover: var(--ui-text);
|
||||
--ui-text-active: var(--ui-text);
|
||||
--ui-text-selected: rgba(255, 255, 255, 0.8);
|
||||
--ui-text-disabled: #777777;
|
||||
--ui-sidebar-width: 25rem;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--ui-border: 1px solid #333333;
|
||||
--ui-background: #222222;
|
||||
--ui-background-disabled: #555555;
|
||||
--ui-background-hover: #363636;
|
||||
--ui-background-active: #6d6d6d;
|
||||
--ui-background-selected: #BDBDBD;
|
||||
--ui-text: rgba(255, 255, 255, 0.7);
|
||||
--ui-text-hover: var(--ui-text);
|
||||
--ui-text-active: var(--ui-text);
|
||||
--ui-text-selected: #222222;
|
||||
--ui-text-disabled: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #000000;
|
||||
overflow: hidden;
|
||||
text-shadow: var(--ui-text-shadow);
|
||||
font-family: var(--ui-font);
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
:focus {
|
||||
outline: var(--ui-outline);
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2.8rem;
|
||||
line-height: 3.4rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 2rem;
|
||||
line-height: 2.8rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
ul, li {
|
||||
list-style-type: none;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
label:focus-within {
|
||||
outline: var(--ui-outline);
|
||||
}
|
||||
label:focus-within > input:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
appearance: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
fill: currentColor;
|
||||
stroke: none;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background: black;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
img.leaflet-tile {
|
||||
image-rendering: pixelated;
|
||||
image-rendering: -moz-crisp-edges;
|
||||
-ms-interpolation-mode: nearest-neighbor;
|
||||
}
|
||||
|
||||
.leaflet-control-panel {
|
||||
height: var(--ui-button-size);
|
||||
}
|
||||
|
||||
.leaflet-control-link {
|
||||
background-size: 20px 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
|
||||
.leaflet-control-coordinates {
|
||||
text-align: center;
|
||||
min-width: 20rem;
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
letter-spacing: 0.2rem;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
.leaflet-control-coordinates:before {
|
||||
display: block;
|
||||
content: attr(data-label);
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.leaflet-control-blockinfo {
|
||||
font-family: monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
background-size: 20px 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
|
||||
.leaflet-marker-icon {
|
||||
image-rendering: pixelated;
|
||||
image-rendering: -moz-crisp-edges;
|
||||
-ms-interpolation-mode: nearest-neighbor;
|
||||
}
|
||||
|
||||
.menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.menu input {
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
position: absolute;
|
||||
}
|
||||
.menu input + label {
|
||||
margin-bottom: 0.5rem;
|
||||
cursor: pointer;
|
||||
padding: 0.8rem;
|
||||
}
|
||||
.menu input:checked + label {
|
||||
background-color: var(--ui-background-selected);
|
||||
color: var(--ui-text-selected);
|
||||
font-weight: bold;
|
||||
}
|
||||
.menu input:focus + label {
|
||||
outline: var(--ui-outline);
|
||||
}
|
||||
.menu input:focus:not(:focus-visible) + label {
|
||||
outline: none;
|
||||
}
|
||||
.menu input.players + label {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 32px 32px;
|
||||
background-position: 4px center;
|
||||
padding-left: 40px;
|
||||
}
|
||||
.menu input.renderer + label {
|
||||
margin: 0 4px 0 0;
|
||||
padding: 0;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.menu input.renderer:checked + label {
|
||||
border-color: #000000;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=styles.css.map*/
|
||||