Mentalitys | World Web MapСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (7)
release
World Web Map 0.2.2 Forge
0.2.215 авг. 2026 г.70Minecraft: 1.20.1forge
Что нового
0.2.2 improves reliability, rendering safety, incremental full rendering, dimension/storage handling, performance, API/status behavior, and UI caching. Map rendering no longer generates unexplored chunks; unavailable terrain is skipped until normally generated. Validated with automated tests, GitHub CI, and live disposable Fabric/Forge servers. The Leaflet frontend continues to use the documented external CDN.
release
World Web Map 0.2.2 Fabric
0.2.215 авг. 2026 г.34Minecraft: 1.20.1fabric
Что нового
0.2.2 improves reliability, rendering safety, incremental full rendering, dimension/storage handling, performance, API/status behavior, and UI caching. Map rendering no longer generates unexplored chunks; unavailable terrain is skipped until normally generated. Validated with automated tests, GitHub CI, and live disposable Fabric/Forge servers. The Leaflet frontend continues to use the documented external CDN.
release
Mentalitys | WorldWebMap 0.2.1
0.2.11 мая 2026 г.66Minecraft: 1.20.1forge
Что нового
## [0.2.1] - 2026-05-01
### Changed
- Forge and Fabric are now both versioned as `0.2.1`.
- README, changelog, Gradle metadata, jar names, and API-reported `MOD_VERSION` are aligned across both loaders.
- Forge implementation was synchronized with the Fabric port so both loaders ship the same render behavior.
### Fixed
- Chunks disappearing during new-chunk generation: new tiles can render with `loadChunks=true` so chunks are read from disk before debounce-delayed rendering happens.
- Existing tile erased by blank re-render: renderer composites over the previously saved tile during re-renders.
- All-transparent tile written to disk: fully transparent output is skipped when there is no loaded data and no existing tile to preserve.
- Height-shading seam artifacts: neighbor height is used only when that neighbor pixel was confirmed loaded.
release
Mentalitys | WorldWebMap 0.2.0
0.2.01 мая 2026 г.18Minecraft: 1.20.1forge
Что нового
## [0.2.0] - 2026-04-30 / 2026-05-01
### Added
- Biome API endpoint: `GET /api/biome?dim=overworld&x=100&z=200`.
- Biome display in the desktop toolbar and mobile bottom bar.
- Human-readable biome names for vanilla biomes and namespace-prefixed names for modded biomes.
- Initial Fabric port from the Forge codebase, using Fabric lifecycle, tick, chunk-load, and command registration hooks.
- Fabric config and tile paths: `fabricwebmap-common.properties` and `world/fabricwebmap/tiles/`.
### Fixed
- Biome label now updates immediately when the cursor or mobile center moves to another block.
- Fabric port included the render stability fixes that became the shared `0.2.1` behavior.
### Loader Notes
- Forge `0.2.0` introduced biome display on 2026-04-30.
- Fabric `0.2.0` was the initial Fabric port on 2026-05-01.
release
Mentalitys | WorldWebMap 0.2.1
0.2.11 мая 2026 г.77Minecraft: 1.20.1fabric
Что нового
## [0.2.1] — 2026-05-01
### Changed
- Synchronized Fabric release version with Forge 0.2.1.
- Confirmed feature parity with Forge 0.2.1: chunk-load auto-render, robust tile compositing, biome API/display, and transparent-tile write protection are present in both loaders.
release
Mentalitys | WorldWebMap 0.2.0
0.2.01 мая 2026 г.21Minecraft: 1.20.1fabric
Что нового
## [0.2.0] — 2026-05-01
_Initial Fabric port of ForgeWebMap 0.2.1. Functionality is identical to the Forge version; all bug fixes from 0.2.1 are included from the start._
### Added
#### Fabric port
- Ported from Forge 47.x to Fabric Loader 0.15.11, Minecraft 1.20.1
- Replaced Forge event bus (`@SubscribeEvent`) with Fabric event hooks:
- `ServerLifecycleEvents.SERVER_STARTED` / `SERVER_STOPPING` — start/stop HTTP server
- `ServerTickEvents.END_SERVER_TICK` — drive the render queue
- `ServerChunkEvents.CHUNK_LOAD` — trigger chunk-load debounce
- `CommandRegistrationCallback.EVENT` — register `/webmap` command tree
- Config file renamed to `fabricwebmap-common.properties` (read via `FabricLoader.getInstance().getConfigDir()`)
- Tile storage path changed to `world/fabricwebmap/tiles/`
- Mod ID: `fabricwebmap`, group: `com.mentality.fabricwebmap`
#### Biome display (from Forge 0.2.0)
- API endpoint `GET /api/biome?dim=overworld&x=100&z=200` — returns biome name and registry ID
- Biome name shown on desktop toolbar next to coordinates (🌳 Dark Forest)
- Biome name shown on mobile bottom bar below coordinates
- Biome updates instantly as the cursor moves to a different block
- Vanilla biomes formatted as human-readable names (`minecraft:dark_forest` → `Dark Forest`)
- Modded biomes prefixed with mod name (`somemod:custom_biome` → `[somemod] Custom Biome`)
#### Web Server
- Built-in HTTP server (`com.sun.net.httpserver.HttpServer`), port 8123
- Static file serving from classpath (`index.html`, `app.js`, `style.css`)
- Endpoints: `/tiles/`, `/api/status`, `/api/players`, `/api/config`, `/api/biome`
#### Map Renderer
- 2D top-down view with height shading
- Snapshot system: world data read on main thread, PNG rendered in background
- Dimension support: Overworld, Nether, The End
- Atomic tile writing via temp file + `Files.move(ATOMIC_MOVE)`
- CRC32 change check — unchanged tiles are not overwritten
- Compositing: unloaded chunks take pixels from the previous tile version
#### Chunk Auto-Render
- `ChunkLoadListener` hooks `ServerChunkEvents.CHUNK_LOAD`
- Debounce: tiles rendered 5 s after last chunk load in their area
- `chunkRenderDebounceMs` config parameter (default 5000 ms)
#### Commands (operator level 2)
- `/webmap status`, `/webmap render`, `/webmap render-area`, `/webmap fullrender`, `/webmap stoprender`, `/webmap reload`
#### Web Interface
- Leaflet 1.9.4, custom CRS, dimension switcher, player markers, dark theme
- Mobile bottom control panel, safe-area support, touch gestures
### Fixed (relative to Forge 0.2.0 — incorporated directly into this initial release)
- **Chunks disappearing during new-chunk generation** — new tiles rendered with `loadChunks=true` so data is read from disk before the debounce fires.
- **Existing tile erased by blank re-render** — renderer always composites over the previously saved tile.
- **All-transparent tile written to disk** — write skipped when output image has no opaque pixels.
- **Height-shading seam artifacts** — height shading from neighbor chunks only applied when neighbor data is confirmed loaded.
release
Mentalitys | WorldWebMap 1.0
0.1.029 апр. 2026 г.25Minecraft: 1.20.1forge
Что нового
# Changelog
## [0.1.0] — 2026-04-29
### Added
#### Web Server
- Built-in HTTP server based on `com.sun.net.httpserver.HttpServer`, port 8123
- Serving static files (index.html, app.js, style.css) from classpath
- Endpoint `/tiles/{dimension}/{zoom}/{x}/{z}.png` — Serving PNG map tiles
- API `/api/status` — Mod status, queue size, number of rendered tiles
- API `/api/players` — List of online players with coordinates and dimensions
- API `/api/config` — Tile size, zoom range, available dimensions
#### Map Renderer
- Render a 2D top view with height shading (lighter) — higher, darker — lower)
- Snapshot system: world data is read on the main thread, PNG rendering is done in the background
- Dimension support: Overworld, Nether, The End
- Atomic tile writing (via temp file + `Files.move(ATOMIC_MOVE)`) — the browser never receives a corrupted PNG
- CRC32 change check — if the tile hasn't changed, the file is not overwritten
- Compositing: unloaded chunks take pixels from the previous version of the tile during re-rendering; already rendered areas never disappear
- Color palette for 60+ block types (`BlockColorResolver`)
#### Automatic rendering when loading chunks
- `ChunkLoadListener` listens to `ChunkEvent.Load` — new chunks are automatically added to the render queue
- Debounce system: tiles are rendered only via 5 seconds after the last chunk load in its area (avoids rendering with gray spots while the area is still loading)
- `chunkRenderDebounceMs` parameter (default 5000 ms)
#### Commands (for operators only, level 2)
- `/webmap status` — server, queue, and worker status
- `/webmap render <tileX> <tileZ>` — forced rendering of a single tile (loading chunks from disk)
- `/webmap render-area <minX> <minZ> <maxX> <maxZ>` — area render (max 10,000 tiles)
- `/webmap fullrender <radius>` — render a square around the spawn (radius 1–1000)
- `/webmap stoprender` — clear the render queue
- `/webmap reload` — reload the config without restarting Servers
#### Performance Optimizations
- Render worker threads run with priority 'MIN_PRIORITY'
- Tick throttling: the render queue is processed every N ticks (default 20 = 1 time/sec), parameter 'ticksBetweenRenders'
- Queue limit: maximum 100,000 tasks, de-replication by (dimension, tileX, tileZ, zoom)
- Team renderers load chunks from disk ('ChunkStatus.FULL'), automatic renderers do not
#### Configuration (`config/forgewebmap-common.properties`)
| Parameter | Default | Description |
|---|---|---|
| `enabled` | `true` | Enable mod |
| `bindAddress` | `0.0.0.0` | HTTP server address |
| `port` | `8123` | HTTP server port |
| `tileSize` | `256` | Tile size in blocks |
| `renderThreads` | `1` | Number of background rendering threads |
| `maxTilesPerTick` | `1` | Tiles processed per interval |
| `ticksBetweenRenders` | `20` | Ticks between queue processing |
| `enableAutoRender` | `true` | Render when loading chunks |
| `chunkRenderDebounceMs` | `5000` | Chunk debounce delay (ms) |
| `enablePlayerMarkers` | `true` | Player markers on the map |
| `logRenderProgress` | `true` | Log rendering progress |
#### Web Interface
- Leaflet 1.9.4, custom CRS (`scale(zoom) = 2^zoom`)
- Dimension switcher (Overworld / Nether / End)
- Display coordinates under cursor/finger
- Player markers with names, updated every 2 seconds
- Server status indicator (green/red)
- Pixelated tile rendering (`image-rendering: pixelated`)
- Dark theme
#### Mobile Adaptation
- Bottom control panel for screens ≤640px
- Safe-area support (notch, home indicator on iOS)
- Larger buttons for touchscreens (minimum 36–40px)
- `touch-action: none`, `overscroll-behavior: none` — gestures work correctly
- Disable browser scaling (`user-scalable=no`) in favor of zoom Leaflet
- Landscape mode support on phones
- Meta tags for adding to the desktop (iOS/Android)