Gecko JS
Use GeckoLib to create animatable block/item/armor by KubeJS
Simple Example
Startup script
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.addAnimation(state => state.setAndContinue(rotating))
})
.defaultGeoModel()
})
Model assets/geckojs/geo/block/example_block.geo.json
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.example_block",
"texture_width": 48,
"texture_height": 48,
"visible_bounds_width": 3,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 8, 0],
"cubes": [
{
"origin": [-7, 1, -7],
"size": [14, 14, 14],
"uv": {
"north": {"uv": [0, 0], "uv_size": [14, 14]},
"east": {"uv": [0, 14], "uv_size": [14, 14]},
"south": {"uv": [14, 0], "uv_size": [14, 14]},
"west": {"uv": [14, 14], "uv_size": [14, 14]},
"up": {"uv": [0, 28], "uv_size": [14, 14]},
"down": {"uv": [28, 14], "uv_size": [14, -14]}
}
}
]
}
]
}
]
}
Animation assets/geckojs/animations/block/example_block.animations.json
{
"format_version": "1.8.0",
"animations": {
"rotating": {
"loop": true,
"animation_length": 3,
"bones": {
"bone": {
"rotation": {
"vector": ["Math.sin(query.anim_time*90)*180", "Math.cos(query.anim_time*90)*180", "Math.sin(query.anim_time*90)*180"]
}
}
}
}
},
"geckolib_format_version": 2
}
Texture assets/geckojs/textures/block/example_block.png
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Compatibility
Minecraft: Java Edition
1.20.1
Platforms
Forge
Supported environments
Links
Creators
Details
Licensed LGPL-3.0-only
Published 8 months ago
Updated 8 months ago