truncated_tetrahedron: type: procedure definitions: center|scale[Multiplies the square's total size.]|density[Distance between each point.] debug: false script: - define 000 ]> - define hexagon:->:<[000].forward[1.00000084].with_yaw[120]> - repeat 5: - if <[value].mod[2]> == 1: - define forward 1.00000168 - else: - define forward 1 - define hexagon:->:<[hexagon].last.forward[<[forward]>].with_yaw[<[hexagon].last.yaw.add[60]>]> - foreach <[hexagon]> as:current_point: - define next_point <[hexagon].get[<[loop_index].add[1]>].if_null[<[hexagon].first>]> - define face0:|:<[current_point].points_between[<[next_point]>].distance[<[density]>]> # .proc[rotate_list_around_xyz] - define face1 <[face0]> - define centroid ,<[face1].parse[y].average>,<[face1].parse[z].average>,<[face1].first.world>]> - define face1 <[face1].parse[sub[<[centroid]>]]> - define face1 <[face1].parse[rotate_around_z[].add[-0.57735092,0.81649750,0]]> - define face1 <[face1].parse[add[<[centroid]>]]> - define face2 <[face1].parse[rotate_around_y[]]> - define face3 <[face2].parse[rotate_around_y[]]> - define truncated_tetrahedron |<[face1]>|<[face2]>|<[face3]>].combine> - determine <[truncated_tetrahedron].parse[mul[<[scale]>].add[<[center]>]]> truncated_tetrahedron_test_task: type: task debug: false script: - define loc - define truncated_tetrahedron <[loc].proc[truncated_tetrahedron].context[6|0.05]> - repeat 10: - playeffect effect:redstone quantity:1 offset:0 visibility:999 at:<[truncated_tetrahedron]> special_data:1|<&b> - wait 10t