https://github.com/2003scape/rsc-world-map
🗺️ interactive world map for runescape classic
https://github.com/2003scape/rsc-world-map
landscape map rsc rsps runescape
Last synced: 7 months ago
JSON representation
🗺️ interactive world map for runescape classic
- Host: GitHub
- URL: https://github.com/2003scape/rsc-world-map
- Owner: 2003scape
- License: agpl-3.0
- Created: 2021-01-03T21:06:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-12T17:06:08.000Z (over 4 years ago)
- Last Synced: 2024-08-09T12:48:03.070Z (about 1 year ago)
- Topics: landscape, map, rsc, rsps, runescape
- Language: JavaScript
- Homepage: https://2003scape.github.io/map.html
- Size: 1.85 MB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# rsc-world-map
interactive world map for runescape classic.
*[Watch a video demonstration](https://www.youtube.com/watch?v=9F10vvMgC-o)*
features:
* mobile and tablet support with touch controls (still WIP)
* works with any *height x width* >= `300px x 300px`
* four levels of zoom with crisp, pixelated landscape and anti-aliased text
* overview box for quick navigation across ends of the map
* go up and down plane levels to view dungeons and upstairs areas
* search box with automatic suggestions
* toggle labels, object and points of interest
* native javascript with zero framework dependencies, just import and specify a
block container element
* zero additional HTTP requests - everything packed inside the javascript## install
$ npm install @2003scape/rsc-world-map
## usage
```javascript
const WorldMap = require('@2003scape/rsc-world-map');const container = document.createElement('div');
container.style.height = '300px';
container.style.width = '300px';
container.style.border = '1px solid #f0f';const worldMap = new WorldMap({ container });
worldMap.init().then(() => {
console.log('loaded');
});document.body.style.background = '#000';
document.body.appendChild(container);
```## api
### worldMap = new WorldMap({ container, labels?, points?, objects? })
create a new worldMap instance.`container` is any block element.
the rest of the properties are optional, and defaulted to official runescape
classic entries (located in `./res`):`labels` are used for the text overlay on the map:
```javascript
{
"text": "Kingdom of\nKandarin",
"x": 7705,
"y": 6821,
"size": 12,
"align": "center" || "left",
"bold": true, // optional
"colour": "rgb(254, 165, 0)" || "#ff00ff" || "red" // optional
}
````points` are used for the point-of-interest symbols on the map. there's a list
of point types in [`./res/key.json`](/res/key.json):```javascript
{ "type": "altar", "x": 7253, "y": 7272 }
```the coordinates for points and labels are absolute.
`objects` are used for the *+* symbols peppered over the map:
```javascript
{ "id": 0, "x": 345, "y": 538 }
```the coordinates for objects are in-game coordinates from
[@2003scape/rsc-data](https://github.com/2003scape/rsc-data/blob/master/locations/objects.json)
(note that `direction` is not needed here). trees (id 0) are coloured green
while the rest are orange.### worldMap.init()
load the images, attach the event handlers and populate the container element.## static map images
to generate a static PNG of the world map, use the CLI tool in
[@2003scape/rsc-landscape](https://github.com/2003scape/rsc-landscape#cli-usage)you can also use this to generate the `plane-x.png` images in [`./res/`](/res/).
## license
Copyright (C) 2021 2003Scape TeamThis program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.You should have received a copy of the GNU Affero General Public License
along with this program. If not, see http://www.gnu.org/licenses/.