SuperAPI AI 工具集

tinyworld-island-viewer

设计与创作

查看项目

更新于 10-30 12:08

技能介绍

TinyWorld Island Viewer 是 TinyWorld 项目中“已生成岛屿”的专用查看界面,与建造屏幕分离。其入口页面为 island-viewer.html,配套样式 styles/island-viewer.css,核心脚本包括顺序生成器 scripts/island-viewer-sequential-generator.js、渲染适配器 scripts/island-viewer-engine-runtime.js 和控制器 scripts/island-viewer.js;random-island-preview.html 作为兼容性重定向存在。

用途与定位:查看器用于展示生成的岛屿,界面保持简洁,可见控件仅限 New Island、Load、Save 等查看操作;网格/种子和图形选项应放在本地或开发者默认值辅助工具中,而非主工具栏。archetype 不作为查看器面向用户的经济或卡牌概念暴露,仅在调用方显式传入时作为隐藏的生成器输入。

主要能力:生成器保持“仅查看器、顺序执行”,island-viewer.html 加载 island-viewer-sequential-generator.js,而不是复制自 random-island 的庞大 scripts/tinyworld-island-core.js。生成器须输出符合 v:4 架构的世界单元格,公共路径使用 terrain: "path",并暴露 TinyWorldIslandGenerator.generate(...) 与 .profile(...)。

分层生成顺序为:全草地、首个房屋、角塔、道路、额外房屋、围栏作物、围栏动物、岩石斑块、水路、桥梁检测、策略性灯柱、普通岩石露头、树木/灌木,最后是加权填充。初始围栏作物地块保留四个泥土格与围栏门,每格独立以 25% 概率为空,其余在 小麦、玉米、胡萝卜、南瓜、向日葵 之间均匀选择。采石场/岩石斑块为矿展示核心,四格分别以 appearance.oreMetal 覆盖铜、铁、银、金各一次;优先 2x2 布局,若无合法 2x2 空间则放置紧凑连通的四格采石场,且不得覆盖路径、水、围栏、结构或预留庄园占地。

桥梁只允许通过本地检测器生成:水路雕刻后扫描局部交叉(一个轴为路径格、垂直轴为水格),只把中心水格变为普通 kind: "bridge",不输出 water-bridge 或 bridgeAxis 元数据。策略性灯柱为原生 kind: "lamp-post",置于恰好接触两个垂直路径格的空草地上,且每对灯柱曼哈顿距离大于 3。庄园为罕见的原生房屋(buildingType: "manor"),在至少存在三座普通房屋后按 25% 概率生成,需预留占地并在作物、岩石、水、灯柱之前连通门前路径。树木/灌木在功能层之后放置,仅用空草地,保持树木间距,灌木填充剩余边角且不占路径。树木/灌木稀疏处理后,对可建造空格运行加权填充循环,选项限于原生经济对象:作物、普通石头、矿石、羊/牛、灌木、树木;普通石头由专用露头层生成,可在加权阶段围绕石头/采石场地形聚集,不加事后强制石头修正。

使用方式:查看器运行时对 64 格岛屿只应用一次,使用 window.__tinyworldIslandViewerLoading 守卫抑制交错渲染,岛屿稳定后渲染一次,不再执行旧的 clearViewerWorld() 加完整重应用的两次过程,初始加载不强制重建每个瓦片。查看器方向光默认值为 10.0(1000%),仅在旧默认 1.1 看似未被修改时迁移,用户编辑过的值保持不变。查看器默认值只持久化在 tinyworld:island-viewer:* 下,不写入建造器的 tinyworld:render:* 键。

验证与统计:运行 npm test、npm run build,以及 npm run stats:island-viewer -- --count 1000 进行按需顺序生成器扫描;该 CLI 加载共享 Raw Yield 经济辅助与查看器生成器,校验架构与不变量,报告分数/稀有度/领先者/资源摘要,并将报告写入 stats-runs/island-viewer-sequential/。访问 /island-viewer 或 /island-viewer.html 时,页面应通过 builder-engine 渲染器加载,生成存档不含旧桥梁元数据,且不请求 scripts/tinyworld-island-core.js 或 scripts/island-viewer-renderer.js。

适用场景:需要查看、生成和保存 TinyWorld 8x8 岛屿的开发者或项目使用者。限制:固定 8x8;作为查看器而非建造器,不提供建造控件;渲染器采用当前 builder-engine 栈,暂不启用 scripts/island-viewer-renderer.js。具体收费、平台支持等信息暂未提供。