Bedrock Snippets

Precise Rotation

View Source

precise_rotation > bp > blocks > shell.json

{
    "format_version": "1.21.90",
    "minecraft:block": {
        "description": {
            "identifier": "wiki:shell",
            "menu_category": {
                "category": "nature"
            },
            "traits": {
                "minecraft:placement_position": {
                    "enabled_states": ["minecraft:block_face"]
                }
            },
            "states": {
                "wiki:rotation": {
                    "values": { "min": 0, "max": 15 }
                }
            }
        },
        "components": {
            "minecraft:collision_box": {
                "origin": [-3, 0, -3],
                "size": [6, 3, 6]
            },
            "minecraft:selection_box": {
                "origin": [-3, 0, -3],
                "size": [6, 3, 6]
            },
            "minecraft:geometry": {
                "identifier": "geometry.shell",
                "bone_visibility": {
                    "up_0": "q.block_state('minecraft:block_face') == 'up' && math.mod(q.block_state('wiki:rotation'), 4) == 0",
                    "up_22_5": "q.block_state('minecraft:block_face') == 'up' && math.mod(q.block_state('wiki:rotation'), 4) == 1",
                    "up_45": "q.block_state('minecraft:block_face') == 'up' && math.mod(q.block_state('wiki:rotation'), 4) == 2",
                    "up_67_5": "q.block_state('minecraft:block_face') == 'up' && math.mod(q.block_state('wiki:rotation'), 4) == 3",
                    "side": "q.block_state('minecraft:block_face') != 'up'"
                }
            },
            "minecraft:material_instances": {
                "*": {
                    "texture": "wiki:shell"
                }
            },
            "minecraft:placement_filter": {
                "conditions": [
                    {
                        "allowed_faces": ["up", "side"]
                    }
                ]
            },
            "wiki:shell_rotation": {}
        },
        "permutations": [
            {
                "condition": "q.block_state('wiki:rotation') >= 4 || q.block_state('minecraft:block_face') == 'east'",
                "components": {
                    "minecraft:transformation": { "rotation": [0, -90, 0] }
                }
            },
            {
                "condition": "q.block_state('wiki:rotation') >= 8 || q.block_state('minecraft:block_face') == 'south'",
                "components": {
                    "minecraft:transformation": { "rotation": [0, 180, 0] }
                }
            },
            {
                "condition": "q.block_state('wiki:rotation') >= 12 || q.block_state('minecraft:block_face') == 'west'",
                "components": {
                    "minecraft:transformation": { "rotation": [0, 90, 0] }
                }
            },
            {
                "condition": "q.block_state('minecraft:block_face') != 'up'",
                "components": {
                    "minecraft:collision_box": {
                        "origin": [-3, 5, 5],
                        "size": [6, 6, 3]
                    },
                    "minecraft:selection_box": {
                        "origin": [-3, 5, 5],
                        "size": [6, 6, 3]
                    }
                }
            }
        ]
    }
}
Copied to Clipboard