
星座核心
一个可复用的路径、运动、力场与冲击引擎,专为Minecraft 1.7.10打造,旨在支持流畅的脚本化能力,适用于Mod开发者、过场动画及CustomNPC+项目。
星座核心(Constellation Core)
适用于 Minecraft 1.7.10 的可复用移动、路径、力场与碰撞引擎。
专为脚本和 Java 模组构建,提供平滑的数学运动、可复用的碰撞行为及运行时控制,无需为每个项目重复编写相同的移动系统。
🌠 什么是星座核心?
星座核心(Constellation Core) 是一个 Forge 库/模组,专为在 Minecraft 1.7.10 上构建高级内容的创作者设计。
可通过以下方式使用:
- CustomNPC+ JavaScript 脚本;
- 用 Java 编写的 Forge 模组;
- 共享库与附属模组;
- 脚本化 RPG 系统;
- 自定义 Boss、技能与过场系统。
创作者无需手动移动每个对象或在每个项目中重复创建相同的物理/路径系统,只需描述路径或物理行为,核心即可执行。
它提供了以下可复用 API:
- 数学路径;
- 平滑物品与实体运动;
- 虚拟方块路径;
- 运行时目标重定向;
- 物理力场;
- 重力井;
- 碰撞与冲击处理;
- 弹跳、穿透、滑动及其他冲击响应;
- 生命周期事件;
- 运动状态检查;
- 可复用的运动/冲击预设;
- 清理与性能预算。
🧭 路径引擎
路径引擎允许脚本和模组使用可复用的数学原语来描述完整轨迹。
支持的路径类型包括:
- 保持(Hold)
- 直线(Line)
- 三次贝塞尔曲线(Cubic Bézier)
- Catmull-Rom 样条
- 圆弧(Arc)
- 椭圆(Ellipse)
- 螺旋线(Helix)
- 8 字形(Figure Eight)
- 轨道(Orbit)
可用的缓动类型包括:
- 线性(Linear)
- 缓入(Ease In)
- 缓出(Ease Out)
- 缓入/缓出(Ease In/Out)
- 平滑步进(Smoothstep)
- 更平滑步进(Smootherstep)
- 指数缓入(Exponential In)
- 指数缓出(Exponential Out)
- 回退(Back)
🌀 路径修改器
无需创建全新的移动系统即可修改路径。
可用的控制项包括:
- 正弦运动;
- 摆动;
- 速度倍率;
- 重复路径;
- 乒乓播放;
- 切线方向;
- 固定方向;
- 注视方向;
- 倾斜;
- 持续旋转;
- 物理引导。
这使得一个引擎适用于各种不同的运动,例如:
- 流星;
- 仪式物品;
- 轨道旋转的遗物;
- 蛇形弹射物;
- 旋转刀刃;
- 过场方块;
- 魔法物体。
🧱 虚拟方块路径
BlockPathAPI 可以通过相同的数学路径系统渲染和动画化基于方块的对象。
视觉控制项包括:
- 缩放;
- 独立 XYZ 缩放;
- 基础旋转;
- 实时旋转;
- 路径对齐;
- 亮度;
- 可选发光;
- 预热;
- 冲击保持。
适用于:
- 流星;
- 飞行碎片;
- 魔法水晶;
- 过场方块;
- 基于方块的弹射物。
💥 冲击引擎
星座核心 1.6 版本新增了可复用的冲击引擎。
路径可以检测与实体和方块的碰撞,并通过 ImpactProfile(冲击配置文件)进行响应。
可用的响应类型包括:
STOP(停止)BOUNCE(弹跳)SLIDE(滑动)PIERCE(穿透)STICK(粘附)SHATTER(粉碎)REFLECT(反射)TRANSFER(转移)IGNORE(忽略)
冲击配置文件可以配置:
- 碰撞半径;
- 质量;
- 作用力;
- 能量比例;
- 弹跳系数;
- 摩擦力;
- 命中冷却;
- 最大命中次数;
- 最大弹跳次数;
- 最大穿透次数;
- 生命周期;
- 延迟连锁径向冲击。
🛡 世界安全
地形修改并非隐式执行。
冲击引擎提供了明确的安全模式:
- 视觉(Visual)
- 物理(Physical)
- 世界(World)
真实世界方块破坏需要显式启用 WORLD 模式 以及 worldDamage(true)。
这允许创作者在不意外损坏地图的情况下使用过场方块冲击。
🕳 力场与重力
核心包含适用于生物实体的可复用物理场。
示例:
- 吸引场;
- 可控重力井;
- 重力捕获;
- 黑洞式力场。
该系统可以应用径向拉力、轨道运动、捕获行为及速度控制,而无需每个脚本或模组手动对附近每个实体施加运动。
🎛 运行时运动控制
活动中的运动可以在运行时进行修改。
运行时控制项包括:
- 目标;
- 速度;
- 最大速度;
- 物理主导权;
- 旋转;
- 倾斜;
- 注视;
- 缩放;
- 力场中心;
- 作用力;
- 半径;
- 涡旋;
- 垂直影响。
适用于动态技能,例如:
- 弹射物目标重定向;
- 移动重力场;
- 过场编排;
- 执行过程中变化的 Boss 攻击。
📡 运动状态与事件
脚本和模组无需猜测路径何时结束,可以直接查询引擎。
状态信息包括:
- 活动状态;
- 类型;
- 阶段;
- 进度;
- XYZ 坐标;
- 速度;
- 最大速度;
- 开始刻(tick);
- 持续时间;
- 最后错误;
- 完成状态。
生命周期事件包括:
FINISHED(完成)IMPACTED(发生冲击)CANCELLED(已取消)EXPIRED(已过期)
冲击事件可以暴露一个 ImpactContext(冲击上下文),其中包含位置、速度、表面法线、速率、能量、被冲击的实体/方块以及命中索引。
🧩 脚本 API
简单虚拟方块路径示例:
var Path = Java.type("com.dad.constellation.api.PathEngineAPI");
var Block = Java.type("com.dad.constellation.api.BlockPathAPI");function rightClick(event) {
var p = event.player;
var sx = p.getX();
var sy = p.getY() + 2.0;
var sz = p.getZ();
Block.block(
p,
"example/block",
"minecraft:diamond_block",
0,
sx,
sy,
sz
)
.scale(0.65)
.rotation(90, 160, 40)
.lineTo(
sx + 8.0,
sy + 2.0,
sz,
70,
Path.EASE_IN_OUT
)
.play();
}
冲击示例:
var Impact = Java.type("com.dad.constellation.api.ImpactAPI");var profile = Impact.profile("PROJECTILE")
.entityCollision(true)
.blockCollision(true)
.radius(0.35)
.onEntity(Impact.PIERCE)
.onBlock(Impact.STOP)
.maxPierces(3)
.maxHits(4)
.worldMode(Impact.PHYSICAL)
.worldDamage(false)
.build();
☕ Java / Forge 模组 API
星座核心不仅限于 CustomNPC+ 脚本。
它也可以直接作为 Java 库依赖用于另一个 Forge 模组中。
例如,另一个模组可以导入公共 API 类:
import com.dad.constellation.api.PathEngineAPI;
import com.dad.constellation.api.BlockPathAPI;
import com.dad.constellation.api.ImpactAPI;
import com.dad.constellation.api.MotionAPI;
import com.dad.constellation.api.ForceFieldAPI;
并直接从 Java 创建路径:
BlockPathAPI.block(
player,
"examplemod/meteor",
"minecraft:obsidian",
0,
startX,
startY,
startZ
)
.scale(0.75)
.rotation(120.0, 180.0, 60.0)
.lineTo(
targetX,
targetY,
targetZ,
50,
PathEngineAPI.EASE_IN
)
.play();
模组还可以创建可复用的冲击配置文件:
ImpactProfile impact = ImpactAPI.profile("EXAMPLE_PROJECTILE")
.entityCollision(true)
.blockCollision(true)
.radius(0.35)
.onEntity(ImpactAPI.PIERCE)
.onBlock(ImpactAPI.STOP)
.maxPierces(3)
.worldMode(ImpactAPI.PHYSICAL)
.worldDamage(false)
.build();
将星座核心用作依赖项
在开发期间,可以将 Core JAR 文件添加到 ForgeGradle 项目的 libs/ 目录中:
libs/
└── ConstellationCore-1.6.0.jar
Gradle 依赖示例:
dependencies {
compile files("libs/ConstellationCore-1.6.0.jar")
}
在运行时,星座核心作为普通 Forge 模组安装:
mods/
├── ConstellationCore-1.6.0.jar
└── YourMod.jar
这意味着多个模组可以共享同一个 Core 安装,而无需嵌入各自的移动引擎副本。
🧱 构建为可复用的模组开发基础
星座核心可以用作其他模组的移动/物理基础。
例如:
你的模组
│
├── 物品
├── 技能
├── 实体
├── Boss
└── 星座核心
├── 路径引擎
├── 方块路径
├── 冲击引擎
├── 力场
├── 运动 API
└── 状态 / 事件
或者多个模组可以依赖一个共享的 Core:
模组 A ─┐
模组 B ─┼──> 星座核心
模组 C ─┘
这使得星座核心不仅适用于脚本化内容,也适用于 Forge 1.7.10 模组开发的通用移动和冲击库。
📚 完整文档
已准备好发布到 GitHub 的文档包括:
- 完整公共 API 参考;
- 路径引擎;
- 所有路径原语;
- 缓动;
- 方向;
- 路径修改器;
- BlockPath API;
- 路径引擎 v4 兼容 API;
- 冲击引擎;
- 冲击配置文件;
- 冲击上下文;
- 状态 API;
- 运动 API;
- 运行时编辑;
- 运动生命周期事件;
- 力场 API;
- 浮空物品 API;
- 过场物品 API;
- 预设;
- 性能配置;
- 生命周期清理;
- Java/Forge 模组集成;
- 精确公共 Java 签名;
- 可直接复制的脚本物品示例。
📦 要求
- Minecraft 1.7.10
- 适用于 1.7.10 的 Minecraft Forge
星座核心可由以下用户使用:
- CustomNPC+ 脚本项目;
- Forge Java 模组;
- 附属/库模组;
- 自定义 RPG 系统;
- 独立脚本系统。
直接使用 Core API 的 Java 模组不需要 CustomNPC+。
⚙️ 性能与安全
星座核心具有以下可配置的限制:
- 活动路径;
- 活动力场;
- 活动冲击体;
- 每刻冲击检查次数;
- 碰撞扫描步数;
- 事件队列;
- 搜索半径;
- 网络范围。
这些限制旨在防止大型脚本和模组意外创建无限持续的负载。
🌌 专为高级脚本内容与模组开发而构建
星座核心适用于:
- RPG 技能;
- 魔法系统;
- Boss 攻击;
- 过场仪式;
- 移动遗物;
- 流星系统;
- 重力技能;
- 自定义弹射物;
- 脚本化遭遇战;
- 冒险地图;
- Forge 模组技能;
- 自定义实体;
- 可复用移动库;
- 附属 API。
如果您的项目需要一个对象来移动、碰撞或物理影响世界,星座核心旨在成为脚本和完整 Forge 模组的可复用基础。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。