界面、环境与库¶
Nernar维护的InnerCore文档还包含旧界面系统、区块源、粒子、维度、库和变更记录资料。本页只整理正文较完整的部分,并明确说明资料不足之处。
世界访问对象¶
InnerCore资料使用BlockSource表示对世界区域的访问。它按维度或上下文取得,适合读取和修改方块、实体与环境。
若已知活动对象,可根据活动对象取得对应维度的区块源:
Callback.addCallback("EntityAdded", function(entity) {
const region = BlockSource.getDefaultForActor(entity);
});
世界生成事件中应使用专门的生成上下文;客户端侧只能使用客户端上下文读取或显示相关信息。资料强调,客户端侧修改不会成为服务端世界状态。
常见操作包括放置方块、读取方块ID、读取方块状态、设置额外方块、生成实体和查询区域。例子使用setBlock、getBlockId、getBlock和setExtraBlock演示了这些能力。
region.setBlock(x, y, z, VanillaTileID.dirt);
const id = region.getBlockId(x, y, z);
const state = region.getBlock(x, y, z);
额外方块与物品额外数据没有关系。资料把它描述为世界中另一层方块,典型用途是液体含水,也可用于旧结构组合,但有自己的破坏和交互限制。
粒子¶
粒子是客户端显示内容。资料建议优先使用全局粒子发射方式,只有复杂需求才考虑更复杂的发射器系统。
Particles.addParticle(type, x, y, z, velX, velY, velZ, data);
Particles.addFarParticle(type, x, y, z, velX, velY, velZ, data);
粒子图案通常通过循环生成,例如圆、线、螺旋或爆炸。由于粒子是客户端内容,多人环境中应由服务端判断结果,再通过客户端包通知需要看到效果的玩家。
旧界面系统¶
InnerCoreUI系统以窗口、背景绘制和元素为核心。元素写在窗口描述对象的elements字段中,每个元素有类型、坐标和交互处理函数。
坐标和尺寸使用旧UI单位,资料说明可理解为窗口宽度的千分比。元素可通过z设置叠放深度,并可处理onClick、onLongClick和onTouchEvent。常见元素包括图片、文本、按钮、槽位和其他交互控件。
旧界面资料仅用于维护
这些UI对象属于InnerCore旧客户端界面系统。它们不等同于官方JSON UI,也不等同于现代Ore UI或附加包界面格式。
维度与世界生成¶
Nernar文档包含自定义维度、生物群系、生成器和矿石生成主题,但英文正文中有多篇仍是“未本地化”占位。可核验的资料只支持以下结论:
- InnerCore变更记录说明,Horizon时代的InnerCore曾改进自定义维度,使维度成为独立世界,而不只是普通世界中的特殊区域。
- 后续版本继续添加维度属性、天气、天空、迷雾颜色、生成器和维度传送相关修复。
- 手动矿石生成资料强调:生成通常需要选择表面、检查条件、放置方块,并注意伪随机、种子相关随机和噪声图之间的差异。
- 生成逻辑必须控制性能开销,避免在生成事件中进行过量计算。
由于缺少完整英文维度教程,本页不提供自定义维度API步骤。需要维护旧项目时,应回到原项目代码和对应InnerCore版本的API参考核对。
库¶
资料源中有大量库页面,包括BackpackAPI、BetterFoliage、RecipeViewer、KernelExtension、Component、DungeonUtility、Fireflies、Timer、Translate、TreeCapitator和VeinMiner等。其中相当一部分英文页面只有“未本地化”占位,俄文页面较完整但与英文正文存在覆盖差异。
这些库更适合作为旧项目依赖清单和迁移线索,而不是本站当前手动维护的API参考。创建新页面前至少需要确认:
- 库是否仍可下载。
- 目标InnerCore版本是否兼容。
- 库许可证是否允许翻译或整理。
- 旧项目是否确实依赖该库。
KernelExtension¶
KernelExtension资料较完整。它是InnerCore的模组库,用于向Java和JavaScript模组暴露InnerCore本体没有直接导出的能力。资料给出两种接入方式:在主脚本中监听ModAPI.addAPICallback,或在launcher.js中监听并在可用时再Launch,从而让模组强依赖该库。
ConfigureMultiplayer({
name: "KEX-Dependent mod",
version: "1.0",
isClientOnly: false
});
ModAPI.addAPICallback("KernelExtension", function(api) {
if (typeof api.getKEXVersionCode === "function" && api.getKEXVersionCode() >= 300) {
Launch({ KEX: api });
}
});
TypeScript项目还可使用相应声明文件获得补全和文档提示。由于该库强依赖旧InnerCore生态,本页仅记录接入模式,不把它整理为本站通用参考。
变更记录的含义¶
变更记录显示,InnerCore曾经历从旧独立应用到Horizon包的转变,并在后期加入或修复多人、64位架构、自定义维度、代码生成API、方块与物品命名空间、Java接口暴露、声音控制和模组浏览器等能力。这些信息有助于判断旧模组为什么依赖某个版本,但不能直接证明这些能力在现代官方基岩版中存在。