IceWall:
type: world
events:
on player clicks block:
- if <li@ice|packed_ice.contains[<context.location.material.name>].not> queue clear
- if <player.has_flag[element_toggled]> queue clear
- if <player.flag[element].is[==].to[water].not> queue clear
- if <player.flag[waterindex].matches[[1-3]]> {
- define index 1
}
else if <player.flag[waterindex].matches[[4-6]]> {
- define index 2
}
else if <player.flag[waterindex].matches[[7-9]]> {
- define index 3
}
- define material <c.location.material>
- define source <context.location.center.with_pose[0,<player.eye_location.yaw.raw.add[90]>]>
- define blocks li@
- repeat 3 {
- define blocks <def[blocks].include[<def[source].add[<def[source].direction.vector.mul[<def[value]>]>]>]>
- define blocks <def[blocks].include[<def[source].add[<def[source].direction.vector.mul[-<def[value]>]>]>]>
}
- foreach <def[blocks]> {
- modifyblock <def[value].add[0,1,0]> <def[material]>
- modifyblock <def[value].add[0,2,0]> <def[material]>
- if <def[index]> == 1 {
- modifyblock <def[value].add[0,3,0]> <def[material]> 50%
- foreach next
}
- if <def[index]> == 2 {
- modifyblock <def[value].add[0,3,0]> <def[material]>
- modifyblock <def[value].add[0,4,0]> <def[material]> 50%
- foreach next
}
- if <def[index]> == 3 {
- modifyblock <def[value].add[0,3,0]> <def[material]>
- modifyblock <def[value].add[0,4,0]> <def[material]>
- modifyblock <def[value].add[0,5,0]> <def[material]> 50%
- foreach next
}
}
+ - repeat <def[index].add[2]> {
+ - modifyblock <context.location.add[0,<def[value]>,0]> <def[material]>
+ }