NeoGeckoJS

NeoGeckoJS

现在使用KubeJS在NeoForge上通过GeckoLib创建可动画的方块/物品/盔甲!

基础库

Gecko JS

使用 GeckoLib 通过 KubeJS 创建可动画化的方块/物品/盔甲!

该模组最初为 Forge 1.20.1 制作,且没有 Modrinth 版本,但此版本将其移植并更新至 NeoForge 1.21.1,实现了近乎完美的 1:1 复制,因此所有原始脚本和资产都能几乎相同地运行!

有哪些示例?

所有原始示例都应能几乎完全一致地运行,再次强调,这是约 1:1 的复制。

启动脚本:

StartupEvents.registry("block", event => {

    const rotating = RawAnimation.begin().thenLoop("rotating");

    event.create("geckojs:example_block", "animatable")

        .box(1, 1, 1, 15, 15, 15, true)

        .animatableBlockEntity(blockEntity => {

            blockEntity.addController(state => state.setAndContinue(rotating))

        })

        .defaultGeoModel()

})

物品示例:

StartupEvents.registry('item', event => {
    event.create('cool_sword', 'anim_sword')
        .tier('diamond')
        .defaultGeoModel()
        .addController(controller => {
            controller.addAnimation(state => {
                if (state.isMoving()) {
                    return state.setAndContinue(RawAnimation.begin().thenLoop("walk"))
                }
                return state.setAndContinue(RawAnimation.begin().thenLoop("idle"))
            })
        })
})

盔甲示例:

event.create('fancy_helmet', 'anim_helmet')
    .material('iron')
    .defaultGeoModel()
    .armorItemUseGeoModel() // 使物品图标使用3D模型
    .boneVisibility((renderer, slot) => {
        // 隐藏盔甲模型上的特定骨骼
        renderer.hideBone("extra_antenna") 
    })

方块示例:

StartupEvents.registry('block', event => {
    event.create('animated_pillar', 'animatable')
        .defaultGeoModel()
        .addController(controller => {
            controller.addAnimation(state => {
                return state.setAndContinue(RawAnimation.begin().thenLoop("spin"))
            })
        })
})