"Heavens Handler": type: world events: on player right clicks quartz_block with flint_and_steel in prosperus: - if != m@air { - queue clear } - if == m@quartz_block && == m@quartz_block { - define axis-pos l@1,0,0 - define axis-neg l@-1,0,0 - define axis-data 1 } else if == m@quartz_block && == m@quartz_block { - define axis-pos l@0,0,1 - define axis-neg l@0,0,-1 - define axis-data 2 } else { - queue clear } - define origin - define node - define air-list li@ - define y-list li@ - define y-max - define y-min - define x-max - define x-min - define z-max - define z-min - while { - define air-list ]> - define y-list ]> - define y-max ]> - define y-min ]> - define node } - if != m@quartz_block { - queue clear } else { - foreach { - define node - while { - define air-list ]> - if == 1 { - define x-max ]> - define x-min ]> } - if == 2 { - define z-max ]> - define z-min ]> } - define node ]> } - if != m@quartz_block { - queue clear } - define node - while { - define air-list ]> - if == 1 { - define x-max ]> - define x-min ]> } - if == 2 { - define z-max ]> - define z-min ]> } - define node ]> } - if != m@quartz_block { - queue clear } } } - modifyblock m@end_gateway, no_physics - announce to_console "cu@]>,,]>,prosperus|]>,,]>,prosperus as:heavens-portal-" - note cu@]>,,]>,prosperus|]>,,]>,prosperus as:heavens-portal- on player breaks end_gateway: - if { - define notable - modifyblock m@air - note remove as: } on player breaks quartz_block: - if { - define notable - modifyblock m@air - note remove as: } on player enters notable cuboid: - if { # - define final-location # - define final-location # - define final-location # - determine # - determine l@,,,heavens - define target-location l@,,,heavens - if == m@air && != m@air && == m@air { - teleport l@,,,heavens - queue clear } - define size 10 - while ].size> == 0 { - define size } - teleport ].random> - determine cancelled }