Render textured aerial maps and support legacy recovery links

This commit is contained in:
2026-10-05 18:11:12 +05:00
parent dcc3779262
commit 2cbaf45340
12 changed files with 226 additions and 35 deletions

View File

@@ -12,7 +12,7 @@ Recovery uses Supabase's verified code/token exchange and a ten-minute, HttpOnly
No database migration is needed for these account changes: `profiles.display_name` already exists. Deploy the updated website, and configure `MINEGEO_URL` with its public HTTPS origin.
In Supabase Auth, set the Site URL to that origin and allow its `/auth/callback` URL (plus any development callback URLs you actually use). Keep email confirmation enabled and configure working email delivery. PKCE email redirects use `/auth/callback`; token-hash templates can use `/auth/confirm?token_hash={{ .TokenHash }}&type=email`, or `type=recovery` for password resets. Custom confirmation templates should preserve the appropriate destination when returning to a pairing flow.
In Supabase Auth, set the Site URL to that origin and allow its `/auth/callback` URL (plus any development callback URLs you actually use). Keep email confirmation enabled and configure working email delivery. The recovery email template should link to `{{ .ConfirmationURL }}` so Supabase honors the `redirectTo` URL sent by MineGeo. A custom token-hash link may use `{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery`. Do not append `/code=...` to the Site URL: it skips the callback route. PKCE email redirects use `/auth/callback`; custom confirmation templates should preserve the appropriate destination when returning to a pairing flow.
Set the provider's minimum password length to 12 as well, since direct Auth requests do not pass through application validation. Consider enabling secure password changes and leaked-password protection where your plan supports it. Provider hardening and SMTP settings are configured in Supabase; this change does not alter them automatically. See [password security](https://supabase.com/docs/guides/auth/password-security) and [redirect URL configuration](https://supabase.com/docs/guides/auth/redirect-urls).

View File

@@ -1,15 +1,18 @@
# Surface maps
Plugin exports now produce a flat, north-up map rather than a textured aerial
render. The map uses up to 128 cells along its longest side, chooses the dominant
surface material in each cell, shades slopes and water depth, and retains the
original world bounds. Transparent glass and small vegetation do not hide the
ground. Unknown blocks use stone gray; material colors are approximations.
Plugin exports produce a north-up, textured aerial view of the same Minecraft
terrain used for panoramas. An orthographic camera looks straight down from
Y=320. An angled sun adds shadows that show mountain slopes and structures;
panorama lighting is unchanged. Vanilla block models, textures, biome tints,
buildings, trees and water appear in the map. The image keeps one world block
square, including rectangular exports, so the guessing pin still matches X/Z
coordinates. Exports up to 256 blocks across render at eight pixels per block;
larger exports are capped at 2048 pixels along their longest side.
Uncaptured terrain appears as parchment. The saved WebP uses lossless compression
and nearest-neighbor scaling, with a subtle grid. Fabric maps retain their
client-captured colors and are also compressed losslessly. The web preview,
player guessing map and results share a parchment frame.
Uncaptured terrain appears as parchment. The saved WebP uses high-quality
compression. Fabric maps retain their client-captured colors and are compressed
losslessly. The web preview, player guessing map and results share a parchment
frame.
New plugin uploads automatically use the new renderer. Existing processed images
are not regenerated merely by restarting the web server. For an unpublished
@@ -24,4 +27,6 @@ panoramas or changing stored data:
npm run render:map -- path/to/terrain.json.gz path/to/map.webp
```
The parchment is a local SVG UI asset; no remote textures are required.
The parchment frame is a local SVG UI asset. Textured plugin maps use the
verified vanilla Minecraft asset cache prepared by `npm run setup` or by the
worker on demand.