4 mesecon
.rules
.default
=
21 mesecon
.rules
.alldirs
=
29 mesecon
.rules
.pplate
=
30 {{x
= 1, y
= 0, z
= 0},
31 {x
=-1, y
= 0, z
= 0},
32 {x
= 0, y
= 1, z
= 0},
33 {x
= 0, y
=-1, z
= 0, spread
= true},
34 {x
= 0, y
= 0, z
= 1},
35 {x
= 0, y
= 0, z
=-1}}
37 mesecon
.rules
.buttonlike
=
38 {{x
= 0, y
= 0, z
=-1},
39 {x
= 0, y
= 0, z
= 1},
40 {x
= 0, y
=-1, z
= 0},
41 {x
= 0, y
= 1, z
= 0},
42 {x
=-1, y
= 0, z
= 0},
43 {x
= 1, y
= 0, z
= 0, spread
= true}}
46 {{x
= 1, y
= 0, z
= 0},
47 {x
=-1, y
= 0, z
= 0},
48 {x
= 0, y
= 1, z
= 0},
49 {x
= 0, y
=-1, z
= 0, spread
= true},
50 {x
= 0, y
= 0, z
= 1},
51 {x
= 0, y
= 0, z
=-1}}
54 {{x
= 1, y
= 0, z
= 0},
55 {x
=-1, y
= 0, z
= 0},
56 {x
= 0, y
= 0, z
= 1},
57 {x
= 0, y
= 0, z
=-1}}
61 -- NOT IN ORIGNAL MESECONS
62 mesecon
.rules
.mcl_alldirs_spread
=
63 {{x
= 1, y
= 0, z
= 0, spread
= true},
64 {x
=-1, y
= 0, z
= 0, spread
= true},
65 {x
= 0, y
= 1, z
= 0, spread
= true},
66 {x
= 0, y
=-1, z
= 0, spread
= true},
67 {x
= 0, y
= 0, z
= 1, spread
= true},
68 {x
= 0, y
= 0, z
=-1, spread
= true}}
70 -- END OF UNOFFICIAL RULES
72 local rules_buttonlike
= {
73 xp
= mesecon
.rules
.buttonlike
,
74 xn
= mesecon
.rotate_rules_right(mesecon
.rotate_rules_right(mesecon
.rules
.buttonlike
)),
75 yp
= mesecon
.rotate_rules_down(mesecon
.rules
.buttonlike
),
76 yn
= mesecon
.rotate_rules_up(mesecon
.rules
.buttonlike
),
77 zp
= mesecon
.rotate_rules_right(mesecon
.rules
.buttonlike
),
78 zn
= mesecon
.rotate_rules_left(mesecon
.rules
.buttonlike
),
81 local rules_wallmounted
= {
82 xp
= mesecon
.rotate_rules_down(mesecon
.rules
.floor),
83 xn
= mesecon
.rotate_rules_up(mesecon
.rules
.floor),
84 yp
= mesecon
.rotate_rules_up(mesecon
.rotate_rules_up(mesecon
.rules
.floor)),
85 yn
= mesecon
.rules
.floor,
86 zp
= mesecon
.rotate_rules_left(mesecon
.rotate_rules_up(mesecon
.rules
.floor)),
87 zn
= mesecon
.rotate_rules_right(mesecon
.rotate_rules_up(mesecon
.rules
.floor)),
90 local function rules_from_dir(ruleset
, dir
)
91 if dir
.x
== 1 then return ruleset
.xp
end
92 if dir
.y
== 1 then return ruleset
.yp
end
93 if dir
.z
== 1 then return ruleset
.zp
end
94 if dir
.x
== -1 then return ruleset
.xn
end
95 if dir
.y
== -1 then return ruleset
.yn
end
96 if dir
.z
== -1 then return ruleset
.zn
end
99 mesecon
.rules
.buttonlike_get
= function(node
)
100 local dir
= minetest
.facedir_to_dir(node
.param2
)
101 return rules_from_dir(rules_buttonlike
, dir
)
104 mesecon
.rules
.wallmounted_get
= function(node
)
105 local dir
= minetest
.wallmounted_to_dir(node
.param2
)
106 return rules_from_dir(rules_wallmounted
, dir
)
109 mesecon
.state
.on
= "on"
110 mesecon
.state
.off
= "off"