Commit Graph

45 Commits

Author SHA1 Message Date
James Lyne
40ee948d91 Replace MapProvider.getTilesUrl with LiveAtlasMapDefinition baseUrl option 2022-02-23 22:32:59 +00:00
James Lyne
1c5351313f LiveAtlasMapDefinition cleanup
- Reorganise options for improved readability
- Make options with defaults optional
- Add baseUrl option for later TileLayer use
2022-02-23 22:31:50 +00:00
James Lyne
88f81efcf5 Update copyright headers 2022-02-21 21:53:49 +00:00
James Lyne
b3e593897b Replace MapProvider.getPlayerHeadUrl method with imageUrl property in players component
- imageUrl expects a function taking a HeadQueueEntry and returning a string
- The dynmap provider has fixed logic for image URLs, but squaremap can vary per world.
- Changes to imageUrl do not yet trigger image updates or head cache clearing
2022-02-05 17:31:07 +00:00
James Lyne
80fe8916f3 Refactor config loading
- Move config validation into map providers
- Move TileLayer creation into map providers
- Simplify config loading logic
2022-01-21 20:20:01 +00:00
James Lyne
42e553bda7 Marker storage/display improvements
- Store markers of all types for a marker set in a single map
- Merge all marker type components into a single Markers component
- Add marker type prefixes to dynmap marker ids to ensure they remain unique
- Add id and type properties to marker objects
- Remove now-unused update handler for specific marker types
2022-01-15 15:45:59 +00:00
James Lyne
9abd96ccb1 Overhaul marker update handling
- Renamed pendingSetUpdates to pendingMarkerUpdates
- pendingMarkerUpdates is now a simple array of LiveAtlasMarkerUpdates
- Added separate ADD_MARKER_UPDATES mutation for marker updates
- Set updates via ADD_MARKER_SET_UPDATES are applied immediately and not stored in state
- Removed all marker pop actions and mutations except POP_MARKER_UPDATES, which now returns all marker types
- Added centralised markup update handler in markers.ts, replacing much of the logic in the individual marker type components. Allows additional handlers to be registered for specific marker sets and types
2022-01-15 00:07:25 +00:00
James Lyne
7cd21a19e2 Rename marker types for clarity
- Add "Marker" suffix
- Rename regular marker to "PointMarker"
2022-01-13 14:14:11 +00:00
James Lyne
ff77f09025 Move marker set contents outside the store, other small optimisations.
Improves marker set creation performance by avoiding traversal of all markers when watching the marker set.

Various other small changes to reduce allocations when creating markers
2022-01-11 16:08:30 +00:00
James Lyne
27231ff5ff Fix config hash handling in update response 2021-12-23 21:53:38 +00:00
James Lyne
0c87849356 Use @types/dynmap where possible (Closes #224) 2021-11-12 00:22:52 +00:00
James Lyne
6c0837deae Improve session expiry handling
- Reload configuration and show login dialog when any request fails with "login required"
- Current map position etc is lost, more work needed here
2021-09-30 20:13:23 +01:00
James Lyne
66355dfe38 Decouple player image pixel size from PlayerMarker.
- Use single template image and set size after cloning
- Use util method to retrieve pixel size when needed
- Use LiveAtlasPlayerImageSize in getMinecraftHead
2021-09-29 14:33:52 +01:00
James Lyne
bfd2b4083f Fix type errors 2021-09-12 20:37:51 +01:00
James Lyne
8bf0fe04a7 Split DynmapMapProvider build methods into their own file 2021-09-10 15:30:29 +01:00
James Lyne
63a00d0681 Move loginEnabled logic to store getter 2021-09-08 15:23:21 +01:00
James Lyne
0e57a50e0c Cleanup redundant useStore calls 2021-09-08 15:21:27 +01:00
James Lyne
12632004d1 Move loginRequired state into store, reset login related state in RESET 2021-09-07 23:10:57 +01:00
James Lyne
76f151a64c First attempt at login/register 2021-08-30 22:28:20 +01:00
James Lyne
b426ed3cae Refactor fetch logic
- Add credentials: include
- Allow passing arbitrary options to fetch, and rename existing simple get to getJSON
2021-08-30 22:28:19 +01:00
James Lyne
6aa9aaf2bd Only set config hash if present in update response
Prevents infinite reloading if the update response doesn't contain a hash for some reason
2021-08-03 02:26:43 +01:00
James Lyne
eba8a5b7e1 Fix incorrect player head URL (Fixes #2) 2021-08-02 17:12:29 +01:00
James Lyne
f4aca39975 Fix incorrect Dynmap player head URL generation 2021-07-29 19:05:33 +01:00
James Lyne
8151dfaab5 Make followZoom optional 2021-07-28 23:52:51 +01:00
James Lyne
b3f186a197 Move grayHiddenPlayers to playerMarkers component 2021-07-28 23:52:03 +01:00
James Lyne
7bff12b729 Move maxPlayers to separate field in store, add mutation 2021-07-28 23:50:59 +01:00
James Lyne
4feb46c641 Move player count/max into playersHeading 2021-07-28 22:27:43 +01:00
James Lyne
d04226e3ec Refactor popup handling
- Merge label and popupContent properties for vector layers, as only one is ever used
- Move common vector methods to separate file and remove duplicates
- Rename isHTML properties to be clearer
2021-07-28 17:49:38 +01:00
James Lyne
2a216dd4e8 Path performance improvements
- Avoid intermediate objects when creating leaflet objects to reduce allocations
- Make individual path objects non-reactive
- Avoid projecting path points twice during updates
2021-07-28 04:04:47 +01:00
James Lyne
9517de0760 Path point handling changes
- Store path points as {x,y,z} objects instead of separate arrays
- Project point objects right before layer creation
- A bit slower overall but matches the format of Pl3xmap path points.
2021-07-28 04:04:46 +01:00
James Lyne
c69aeb8f5f Make map definitions non-reactive to improve projection performance 2021-07-27 04:31:43 +01:00
James Lyne
0aa61517dc Set the correct world object in map definitions 2021-07-26 01:05:08 +01:00
James Lyne
5cf353cd8a Update license headers 2021-07-26 01:05:08 +01:00
James Lyne
9e2caa6f63 More type renaming 2021-07-26 01:05:08 +01:00
James Lyne
355c0c71cf Restructure LiveAtlasServerDefinition 2021-07-26 01:05:07 +01:00
James Lyne
e61d0def04 Replace serverConfig getter with MapProvider url methods 2021-07-26 01:05:07 +01:00
James Lyne
e4e7dfcd5f Move fetchJSON to abstract MapProvider 2021-07-26 01:05:07 +01:00
James Lyne
ad9af04e9e Rename world/map title to displayName 2021-07-26 01:05:05 +01:00
James Lyne
c202def955 Move login from configuration to components 2021-07-26 01:04:18 +01:00
James Lyne
bc38af3254 Use generic names for more types 2021-07-26 01:04:18 +01:00
James Lyne
cba4b33e1a Refactor DynmapMapProvider.ts 2021-07-26 01:04:18 +01:00
James Lyne
e809f28455 (Re)move some config store properties 2021-07-26 01:04:18 +01:00
James Lyne
1d27e05f7c Rename DynmapPlayer to LiveAtlasPlayer, rename some fields, add uuid field 2021-07-26 01:04:18 +01:00
James Lyne
44b3a7e276 Remove updateInterval from store 2021-07-26 01:04:18 +01:00
James Lyne
33b5b305e2 Add MapProvider, move dynmap api handling to DynmapMapProvider 2021-07-26 01:04:17 +01:00