Add Minecraft 26.x support and version Java artifacts
This commit is contained in:
@@ -3,17 +3,17 @@ import { createServer } from "node:http";
|
||||
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
||||
import { resolve, sep } from "node:path";
|
||||
import sharp from "sharp";
|
||||
import { assetsRoot, prepareAssets } from "../scripts/assets.mjs";
|
||||
import { prepareAssets } from "../scripts/assets.mjs";
|
||||
import { assertTerrainImage } from "./image-validation.mjs";
|
||||
/** @param {import('../shared/protocol').TerrainSnapshot} snapshot
|
||||
* @param {Array<{id:string,x:number,y:number,z:number}>} viewpoints
|
||||
* @param {string} output
|
||||
* @param {{size?:number,signal?:AbortSignal,onProgress?:(event:{percent:number,message:string})=>Promise<void>}} [options] */
|
||||
* @param {{size?:number,minecraftVersion?:string,signal?:AbortSignal,onProgress?:(event:{percent:number,message:string})=>Promise<void>}} [options] */
|
||||
export async function renderSnapshot(
|
||||
snapshot,
|
||||
viewpoints,
|
||||
output,
|
||||
{ size = 1024, signal, onProgress } = {},
|
||||
{ size = 1024, minecraftVersion = "1.21.11", signal, onProgress } = {},
|
||||
) {
|
||||
const start = Date.now();
|
||||
if (signal?.aborted) throw new Error("Rendering cancelled");
|
||||
@@ -21,7 +21,7 @@ export async function renderSnapshot(
|
||||
percent: 22,
|
||||
message: "Checking Minecraft models and textures",
|
||||
});
|
||||
await prepareAssets();
|
||||
const assetsRoot = await prepareAssets(minecraftVersion);
|
||||
await mkdir(output, { recursive: true });
|
||||
const server = createServer(async (req, res) => {
|
||||
try {
|
||||
@@ -207,9 +207,7 @@ export async function renderSnapshot(
|
||||
if (map.data.startsWith("data:image/webp;"))
|
||||
await writeFile(`${output}/map.webp`, mapBytes);
|
||||
else
|
||||
await sharp(mapBytes)
|
||||
.webp({ quality: 92 })
|
||||
.toFile(`${output}/map.webp`);
|
||||
await sharp(mapBytes).webp({ quality: 92 }).toFile(`${output}/map.webp`);
|
||||
stats.map = { width: map.width, height: map.height, cameraY: 320 };
|
||||
await report({
|
||||
percent: 90,
|
||||
|
||||
Reference in New Issue
Block a user