Skip to content

westernat/GeckoJS

Repository files navigation

Gecko JS

Use GeckoLib to create animatable block/item/armor by KubeJS

Simple Example

StartupEvents.registry("block", event => {
    event.create("geckojs:example_block", "animatable")
        .box(1, 1, 1, 15, 15, 15, true)
        .animatableBlockEntity(info => {
            info.addAnimation(state => state.setAndContinue(RawAnimation.begin().thenLoop("rotating")))
        })
        .defaultGeoModel()
})

Model kubejs/assets/geckojs/geo/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 kubejs/assets/geckojs/animations/example_block.animation.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 kubejs/assets/geckojs/textures/example_block.png

example_block.png

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •