Initial commit

This commit is contained in:
James Lyne 2020-11-20 21:44:02 +00:00
parent dfa97b698d
commit 307a168b4d
15 changed files with 1741 additions and 87 deletions

95
package-lock.json generated
View File

@ -2385,7 +2385,6 @@
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picomatch": "^2.0.4" "picomatch": "^2.0.4"
@ -2591,6 +2590,15 @@
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
"dev": true "dev": true
}, },
"axios": {
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz",
"integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==",
"dev": true,
"requires": {
"follow-redirects": "^1.10.0"
}
},
"babel-eslint": { "babel-eslint": {
"version": "10.1.0", "version": "10.1.0",
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
@ -2731,8 +2739,7 @@
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
"dev": true, "dev": true
"optional": true
}, },
"bluebird": { "bluebird": {
"version": "3.7.2", "version": "3.7.2",
@ -3251,7 +3258,6 @@
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"anymatch": "~3.1.1", "anymatch": "~3.1.1",
"braces": "~3.0.2", "braces": "~3.0.2",
@ -3268,7 +3274,6 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"fill-range": "^7.0.1" "fill-range": "^7.0.1"
} }
@ -3278,7 +3283,6 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
} }
@ -3287,15 +3291,13 @@
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true, "dev": true
"optional": true
}, },
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"is-number": "^7.0.0" "is-number": "^7.0.0"
} }
@ -6529,7 +6531,6 @@
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"binary-extensions": "^2.0.0" "binary-extensions": "^2.0.0"
} }
@ -6974,6 +6975,12 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true "dev": true
}, },
"klona": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz",
"integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==",
"dev": true
},
"launch-editor": { "launch-editor": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz",
@ -6993,6 +7000,12 @@
"launch-editor": "^2.2.1" "launch-editor": "^2.2.1"
} }
}, },
"leaflet": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz",
"integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==",
"dev": true
},
"levn": { "levn": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@ -8225,8 +8238,7 @@
"version": "2.2.2", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
"dev": true, "dev": true
"optional": true
}, },
"pify": { "pify": {
"version": "4.0.1", "version": "4.0.1",
@ -9148,7 +9160,6 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
} }
@ -9503,6 +9514,58 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true "dev": true
}, },
"sass": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.29.0.tgz",
"integrity": "sha512-ZpwAUFgnvAUCdkjwPREny+17BpUj8nh5Yr6zKPGtLNTLrmtoRYIjm7njP24COhjJldjwW1dcv52Lpf4tNZVVRA==",
"dev": true,
"requires": {
"chokidar": ">=2.0.0 <4.0.0"
}
},
"sass-loader": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.0.tgz",
"integrity": "sha512-ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg==",
"dev": true,
"requires": {
"klona": "^2.0.4",
"loader-utils": "^2.0.0",
"neo-async": "^2.6.2",
"schema-utils": "^3.0.0",
"semver": "^7.3.2"
},
"dependencies": {
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"schema-utils": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
}
},
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
"integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true
}
}
},
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@ -11232,6 +11295,12 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true "dev": true
}, },
"vuex": {
"version": "4.0.0-rc.1",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.0-rc.1.tgz",
"integrity": "sha512-zgXVCQygF1Sm7ezyudEEMynoV2PBxZdcjE12D0BY1xIKZMrA7GFP6xqADTEAzwfVemXboExJ+/KThfxJFtM/5w==",
"dev": true
},
"watchpack": { "watchpack": {
"version": "1.7.5", "version": "1.7.5",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",

View File

@ -16,9 +16,14 @@
"@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0", "@vue/compiler-sfc": "^3.0.0",
"axios": "^0.21.0",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0-0" "eslint-plugin-vue": "^7.0.0-0",
"leaflet": "^1.7.1",
"sass": "^1.29.0",
"sass-loader": "^10.1.0",
"vuex": "^4.0.0-rc.1"
}, },
"eslintConfig": { "eslintConfig": {
"root": true, "root": true,

1019
public/css/dynmap_style.css Normal file

File diff suppressed because it is too large Load Diff

371
public/css/rtgame.css Normal file
View File

@ -0,0 +1,371 @@
/* latin */
@font-face {
font-family: 'Raleway';
font-style: normal;
font-weight: 400;
src: local('Raleway'), local('Raleway-Regular'), url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
html {
font-size: .625em;
}
body {
font-family: Raleway, sans-serif;
color: #cccccc;
text-shadow: 0.1rem 0.1rem #000000;
letter-spacing: 0.02rem;
font-size: 1.2em;
}
.dynmap .sidebar {
background-color: #222222;
border: none;
color: inherit;
width: 21rem;
box-shadow: -2px 0px 4px 1px rgba(17,17,17,0.8);
}
.dynmap .panel {
padding: 1rem 1.5rem;
}
.panel .scrollup,
.panel .scrolldown {
background-color: #111111;
border: none;
cursor: pointer;
height: 2.5rem;
}
.panel .scrollup:hover,
.panel .scrollup:focus ,
.panel .scrolldown:hover,
.panel .scrolldown:focus {
border: none;
height: 2.5rem;
}
.dynmap .sidebar .panel > .pin {
right: 1.5rem;
top: 1.5rem;
width: 2rem;
height: 2rem;
background-size: cover;
}
.dynmap .panel .section {
border: none;
padding: 0;
margin: 0 0 2rem;
}
.dynmap .panel .section legend {
color: #eeeeee;
font-size: 1.4rem;
letter-spacing: 0.04rem;
padding: 0.8rem 0.4rem 0.8rem 0;
margin-bottom: 0.5rem;
}
.dynmap .panel .subsection {
margin-bottom: 1rem;
border-bottom: none;
display: flex;
align-items: center;
}
.dynmap .panel .sublist {
display: flex;
align-items: center;
flex: 0 0 auto;
margin-left: auto;
}
.dynmap .panel .sublist .item {
float: none;
background-color: #111111 !important;
width: 2.6rem;
height: 2.6rem;
border-radius: 0.2rem;
cursor: pointer;
margin: 0;
}
.dynmap .panel .sublist .item + .item {
margin-left: 0.5rem;
}
.dynmap .panel .sublist .item a {
display: block;
width: 100%;
height: 100%;
}
.dynmap .panel .playerlist {
display: flex;
flex-direction: column;
}
.dynmap .playerlist .player {
display: inline-block;
float: none;
width: auto;
padding: 0;
border: none;
padding: 0.5rem 0.2rem;
display: flex;
align-items: center;
cursor: pointer;
}
.dynmap .playerlist .player.following {
border: none;
border-radius: 0;
padding: 0.5rem 0.2rem;
}
.dynmap .playerlist .player .playerIcon {
margin: 0 1rem 0 0;
padding: 0;
}
.dynmap .panel .playerlist .player a {
color: inherit;
}
.dynmap .hitbar {
background-color: #222222;
}
.leaflet-container {
font-family: inherit;
}
.leaflet-left {
display: flex;
flex-direction: column;
height: 50%;
align-items: flex-start;
}
.leaflet-left:before,
.leaflet-left.leaflet-bottom:after {
content: '';
position: absolute;
display: block;
top: 0;
left: 0;
height: 100%;
width: 4rem;
background-color: #222222;
z-index: -1;
box-shadow: 2px -4px 4px 1px rgba(17,17,17,0.8);
}
.leaflet-left.leaflet-bottom:after {
top: auto;
bottom: 0;
left: 4rem;
height: 4rem;
right: 0;
width: auto;
box-shadow: 0 -2px 4px 1px rgba(17,17,17,0.8);
position: fixed;
}
.leaflet-left.leaflet-top {
justify-content: flex-start;
z-index: 2;
}
.leaflet-left.leaflet-bottom {
justify-content: flex-end;
z-index: 1;
box-shadow: 2px 0px 4px 1px rgba(17,17,17,0.8);
}
.leaflet-left .leaflet-control {
margin-left: 0;
position: relative;
z-index: 2;
}
.leaflet-top .leaflet-control {
margin-top: 2rem;
}
.leaflet-container .leaflet-control-zoom {
margin-top: 1rem;
border: none;
order: 1;
}
.leaflet-control-zoom a,
.leaflet-control-zoom a.leaflet-control-zoom-disabled,
.leaflet-control-layers,
.leaflet-control-layers-list,
.dynmap .dynmap-link a {
background-color: #111111;
color: #eeeeee;
}
.leaflet-bar,
.leaflet-control-layers,
.dynmap .dynmap-link a {
box-shadow: none;
}
.leaflet-control-zoom a,
.leaflet-control-layers-toggle,
.dynmap .dynmap-link a {
width: 4rem;
height: 4rem;
border-radius: 0;
}
.leaflet-control-zoom a:hover,
.leaflet-control-zoom a:focus,
.dynmap .dynmap-link a:hover,
.dynmap .dynmap-link a:focus,
.leaflet-control-layers:hover,
.leaflet-control-layers:focus {
background-color: rgba(64,64,64,0.6);
color: #ffffff;
}
.leaflet-control-zoom a {
border: none;
border-radius: 0;
font-size: 2rem;
line-height: 2rem;
padding: 1rem;
box-sizing: border-box;
}
.leaflet-control-zoom a.leaflet-control-zoom-disabled {
opacity: 0.5;
cursor: not-allowed;
}
.leaflet-control-layers {
border-radius: 0;
order: 2;
}
.leaflet-control-layers-list {
position: absolute;
top: 0;
left: 4rem;
width: 15rem;
padding: 1rem;
color: #cccccc;
}
.leaflet-control-layers-expanded {
padding: 0;
}
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: block;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
position: absolute;
}
.dynmap .dynmap-link {
padding: 0;
margin-bottom: 0;
}
.largeclock.digitalclock {
position: fixed;
bottom: 0;
margin: 0;
right: 4rem;
top: auto;
right: auto;
left: 4rem;
background-color: #111111;
height: 4rem;
border: none;
font-size: 3rem;
line-height: 4rem;
box-shadow: none;
}
.dynmap .coord-control {
position: fixed;
bottom: 0;
left: 21rem;
background: none;
border: none;
padding: 0;
color: inherit;
width: auto;
font-size: 2rem;
white-space: nowrap;
margin: 0;
height: 4rem;
line-height: 4rem;
}
.leaflet-container .leaflet-control-attribution {
background-color: transparent;
box-shadow: none;
margin: 0;
width: 4rem;
height: 4rem;
order: 0;
padding: 0;
}
.leaflet-container .leaflet-control-attribution a {
width: 100%;
height: 100%;
display: block;
padding: 1rem 0.5rem;
box-sizing: border-box;
}
.leaflet-container .leaflet-control-attribution img {
display: block;
max-width: 100% !important;
}
.dynmap .mapMarker:hover .markerName,
.dynmap .mapMarker .markerName-show,
.dynmap .playerNameSm {
padding: 0.2rem 0.5rem;
color: #eeeeee;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-control-zoom {
border: none;
}
.leaflet-touch .leaflet-control-layers-toggle,
.leaflet-touch .leaflet-control-zoom a {
width: 4rem;
height: 4rem;
}
.leaflet-touch .leaflet-bar-part {
border: none;
}
.leaflet-touch .leaflet-bar-part-bottom,
.leaflet-touch .leaflet-bar-part-top {
border-radius: 0;
}
/*.leaflet-touch .coord-control {*/
/* display: none;*/
/*}*/
.sidebar .content.worldlist {
min-height: 20rem;
}

View File

@ -3,15 +3,27 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %></title>
<meta name="keywords" content="minecraft, map, dynamic" />
<meta name="description" content="Minecraft Dynamic Map" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="stylesheet" type="text/css" href="css/standalone.css?_=a" media="screen" />
<link rel="stylesheet" type="text/css" href="css/dynmap_style.css?_=a" media="screen" />
<link rel="stylesheet" type="text/css" href="css/rtgame.css?_=a" media="screen" />
<link rel="icon" href="images/dynmap.ico" type="image/ico" />
</head> </head>
<body> <body>
<noscript> <noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript> </noscript>
<div id="app"></div> <div id="mcmap" class="dynmap"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
</body> </body>
</html> </html>

View File

@ -1,26 +1,21 @@
<template> <template>
<img alt="Vue logo" src="./assets/logo.png"> <Map />
<HelloWorld msg="Welcome to Your Vue.js App"/> <Sidebar />
</template> </template>
<script> <script>
import HelloWorld from './components/HelloWorld.vue' import Sidebar from "@/components/Sidebar";
import Map from "@/components/Map";
export default { export default {
name: 'App', name: 'App',
components: { components: {
HelloWorld Map,
Sidebar,
} }
} }
</script> </script>
<style> <style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style> </style>

2
src/api.js Normal file
View File

@ -0,0 +1,2 @@
import axios from 'axios';

View File

@ -1,58 +0,0 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

19
src/components/Map.vue Normal file
View File

@ -0,0 +1,19 @@
<template>
<div class="map"></div>
</template>
<script>
import "leaflet/dist/leaflet.css";
import L from "leaflet";
export default {
name: "Map",
mounted() {
L;
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,29 @@
<template>
<fieldset class="section">
<legend>Players [5/500]</legend>
<div class="scrollup" style="display: block;"></div>
<ul class="list content playerlist" style="height: 65px;">
<li class="player"><span class="playerIcon" title="Follow player"><img src="images/player_face.png"></span><a
href="#" title="Center on player">Blooping2</a></li>
<li class="player otherworld"><span class="playerIcon" title="Follow player"><img
src="images/player_face.png"></span><a href="#" title="Center on player">Clamor_</a></li>
<li class="player"><span class="playerIcon" title="Follow player"><img src="images/player_face.png"></span><a
href="#" title="Center on player">G0rd0nFreeman</a></li>
<li class="player"><span class="playerIcon" title="Follow player"><img src="images/player_face.png"></span><a
href="#" title="Center on player">Ravenpuffe</a></li>
<li class="player"><span class="playerIcon" title="Follow player"><img src="images/player_face.png"></span><a
href="#" title="Center on player">TheGoldenCarts</a></li>
</ul>
<div class="scrolldown" style="display: block;"></div>
</fieldset>
</template>
<script>
export default {
name: "PlayerList"
}
</script>
<style scoped>
</style>

158
src/components/Sidebar.vue Normal file
View File

@ -0,0 +1,158 @@
<template>
<div class="sidebar pinned">
<div class="panel">
<div class="pin"></div>
<fieldset class="section">
<legend>Map Types</legend>
<div class="scrollup" style="display: block;"></div>
<ul class="list content worldlist" style="height: 277px;">
<li class="world subsection">Hub
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">New Earth®
<ul class="maplist sublist">
<li class="map item selected" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">City
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Island
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Train
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Planets
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Single Material - Part 1
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Single Material - Part 2
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Mall
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">Chunks
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">The Netherlands
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_nether_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_nether_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">1.14 Builds
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
<li class="world subsection">1.13 Builds
<ul class="maplist sublist">
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Flat" href="#" class="maptype"
style="background-image: url('images/block_world_flat.png');">Flat</a>
</li>
<li class="map item" style="background: rgb(0, 0, 0);"><a title="Surface" href="#" class="maptype"
style="background-image: url('images/block_world_surface.png');">Surface</a>
</li>
</ul>
</li>
</ul>
<div class="scrolldown" style="display: block;"></div>
</fieldset>
<PlayerList></PlayerList>
<div class="hitbar"></div>
</div>
</div>
</template>
<script>
import PlayerList from "@/components/PlayerList";
export default {
name: "Sidebar",
components: {PlayerList}
}
</script>
<style scoped>
</style>

View File

@ -1,4 +1,6 @@
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.vue' import App from './App.vue'
import store from "@/store";
createApp(App).mount('#app') const app = createApp(App);
app.use(store).mount('#mcmap');

0
src/scss/_variables.scss Normal file
View File

20
src/store.js Normal file
View File

@ -0,0 +1,20 @@
import {createStore} from 'vuex'
const store = createStore({
state() {
return {
servers: [],
worlds: [],
maps: [],
players: [],
following: null,
currentServer: null,
currentWorld: null,
currentMap: null,
}
}
});
export default store;

11
tsconfig.json Normal file
View File

@ -0,0 +1,11 @@
// tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
// this enables stricter inference for data properties on `this`
"strict": true,
"jsx": "preserve",
"moduleResolution": "node"
}
}