Date: 2024/08/11 18:52:07 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
truncated_tetrahedron:
type: procedure
definitions: center|scale[Multiplies the square's total size.]|density[Distance between each point.]
debug: false
script:
- define 000 <location[0,0,0].with_pose[0,0].with_world[<[center].world>]>
- 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 <location[<[face1].parse[x].average>,<[face1].parse[y].average>,<[face1].parse[z].average>,<[face1].first.world>]>
- define face1 <[face1].parse[sub[<[centroid]>]]>
- define face1 <[face1].parse[rotate_around_z[<element[70.52877937].to_radians>].add[-0.57735092,0.81649750,0]]>
- define face1 <[face1].parse[add[<[centroid]>]]>
- define face2 <[face1].parse[rotate_around_y[<element[120].to_radians>]]>
- define face3 <[face2].parse[rotate_around_y[<element[120].to_radians>]]>
- define truncated_tetrahedron <list[<[face0]>|<[face1]>|<[face2]>|<[face3]>].combine>
- determine <[truncated_tetrahedron].parse[mul[<[scale]>].add[<[center]>]]>
truncated_tetrahedron_test_task:
type: task
debug: false
script:
- define loc <player.location>
- 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