forked from minetest-mods/mesecons
		
	New branch: Move mesecon to node definition instead of functions like register_conductor; first steps: move everything to legacy
This commit is contained in:
		@@ -3,7 +3,7 @@
 | 
			
		||||
-- |  \/  | |___ ____  |___ |      |    | | \  | |____
 | 
			
		||||
-- |      | |        | |    |      |    | |  \ |     |
 | 
			
		||||
-- |      | |___ ____| |___ |____  |____| |   \| ____|
 | 
			
		||||
-- by Jeija and Minerd247
 | 
			
		||||
-- by Jeija, Uberi (Temperest), sfan5, VanessaE, 
 | 
			
		||||
--
 | 
			
		||||
--
 | 
			
		||||
--
 | 
			
		||||
@@ -21,110 +21,29 @@ mesecon.actions_off={} -- Saves registered function callbacks for mesecon off
 | 
			
		||||
mesecon.actions_change={} -- Saves registered function callbacks for mesecon change
 | 
			
		||||
mesecon.receptors={}
 | 
			
		||||
mesecon.effectors={}
 | 
			
		||||
mesecon.rules={}
 | 
			
		||||
mesecon.conductors={}
 | 
			
		||||
 | 
			
		||||
-- INCLUDE SETTINGS
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/settings.lua")
 | 
			
		||||
 | 
			
		||||
--Presets (eg default rules)
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/presets.lua");
 | 
			
		||||
 | 
			
		||||
--Internal API
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/internal.lua");
 | 
			
		||||
 | 
			
		||||
--Deprecated stuff
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/legacy.lua");
 | 
			
		||||
 | 
			
		||||
-- API API API API API API API API API API API API API API API API API API
 | 
			
		||||
 | 
			
		||||
function mesecon:register_receptor(onstate, offstate, rules, get_rules)
 | 
			
		||||
	if get_rules == nil and rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.receptors, 
 | 
			
		||||
		{onstate = onstate, 
 | 
			
		||||
		 offstate = offstate, 
 | 
			
		||||
		 rules = rules,
 | 
			
		||||
		 get_rules = get_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_effector(onstate, offstate, input_rules, get_input_rules)
 | 
			
		||||
	if get_input_rules==nil and input_rules==nil then
 | 
			
		||||
		rules=mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.effectors, 
 | 
			
		||||
		{onstate = onstate, 
 | 
			
		||||
		 offstate = offstate, 
 | 
			
		||||
		 input_rules = input_rules, 
 | 
			
		||||
		 get_input_rules = get_input_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:receptor_on(pos, rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for i, rule in ipairs(rules) do
 | 
			
		||||
		local np = {
 | 
			
		||||
		x = pos.x + rule.x,
 | 
			
		||||
		y = pos.y + rule.y,
 | 
			
		||||
		z = pos.z + rule.z}
 | 
			
		||||
		if mesecon:rules_link(pos, np, rules) then
 | 
			
		||||
			mesecon:turnon(np, pos)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:receptor_off(pos, rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for i, rule in ipairs(rules) do
 | 
			
		||||
		local np = {
 | 
			
		||||
		x = pos.x + rule.x,
 | 
			
		||||
		y = pos.y + rule.y,
 | 
			
		||||
		z = pos.z + rule.z}
 | 
			
		||||
		if mesecon:rules_link(pos, np, rules) and not mesecon:connected_to_pw_src(np) then
 | 
			
		||||
			mesecon:turnoff(np, pos)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_on(action)
 | 
			
		||||
	table.insert(mesecon.actions_on, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_off(action)
 | 
			
		||||
	table.insert(mesecon.actions_off, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_change(action)
 | 
			
		||||
	table.insert(mesecon.actions_change, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_conductor (onstate, offstate, rules, get_rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.conductors, {onstate = onstate, offstate = offstate, rules = rules, get_rules = get_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
mesecon:add_rules("default", 
 | 
			
		||||
{{x=0,  y=0,  z=-1},
 | 
			
		||||
{x=1,  y=0,  z=0},
 | 
			
		||||
{x=-1, y=0,  z=0},
 | 
			
		||||
{x=0,  y=0,  z=1},
 | 
			
		||||
{x=1,  y=1,  z=0},
 | 
			
		||||
{x=1,  y=-1, z=0},
 | 
			
		||||
{x=-1, y=1,  z=0},
 | 
			
		||||
{x=-1, y=-1, z=0},
 | 
			
		||||
{x=0,  y=1,  z=1},
 | 
			
		||||
{x=0,  y=-1, z=1},
 | 
			
		||||
{x=0,  y=1,  z=-1},
 | 
			
		||||
{x=0,  y=-1, z=-1}})
 | 
			
		||||
 | 
			
		||||
print("[MESEcons] Main mod Loaded!")
 | 
			
		||||
print("[OK] mesecons")
 | 
			
		||||
 | 
			
		||||
--The actual wires
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/wires.lua");
 | 
			
		||||
 | 
			
		||||
--Services like turnoff receptor on dignode and so on
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/services.lua");
 | 
			
		||||
--Deprecated stuff
 | 
			
		||||
dofile(minetest.get_modpath("mesecons").."/legacy.lua");
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,11 @@
 | 
			
		||||
 | 
			
		||||
--Receptors
 | 
			
		||||
function mesecon:is_receptor_node(nodename)
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.receptor
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.receptor.state == mesecon.state.on then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	for _, receptor in ipairs(mesecon.receptors) do
 | 
			
		||||
		if receptor.onstate == nodename then
 | 
			
		||||
			return true
 | 
			
		||||
@@ -11,6 +16,11 @@ function mesecon:is_receptor_node(nodename)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_receptor_node_off(nodename, pos, ownpos)
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.receptor
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.receptor.state == mesecon.state.off then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	for _, receptor in ipairs(mesecon.receptors) do
 | 
			
		||||
		if receptor.offstate == nodename then
 | 
			
		||||
			return true
 | 
			
		||||
@@ -20,7 +30,16 @@ function mesecon:is_receptor_node_off(nodename, pos, ownpos)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:receptor_get_rules(node)
 | 
			
		||||
	for i, receptor in ipairs(mesecon.receptors) do
 | 
			
		||||
	if  minetest.registered_nodes[node.name].mesecons
 | 
			
		||||
	and minetest.registered_nodes[node.name].mesecons.receptor then
 | 
			
		||||
		local rules = minetest.registered_nodes[node.name].mesecons.receptor.rules
 | 
			
		||||
		if type(rules) == 'function' then
 | 
			
		||||
			return rules(node)
 | 
			
		||||
		else
 | 
			
		||||
			return rules
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for i, receptor in ipairs(mesecon.receptors) do --TODO
 | 
			
		||||
		if receptor.onstate == node.name or receptor.offstate == node.name then
 | 
			
		||||
			if receptor.get_rules ~= nil then
 | 
			
		||||
				return receptor.get_rules(node.param2)
 | 
			
		||||
@@ -36,28 +55,51 @@ end
 | 
			
		||||
 | 
			
		||||
-- Effectors
 | 
			
		||||
function mesecon:is_effector_on(nodename)
 | 
			
		||||
	for i, effector in ipairs(mesecon.effectors) do
 | 
			
		||||
	for i, effector in ipairs(mesecon.effectors) do --TODO
 | 
			
		||||
		if effector.onstate == nodename then
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.effector
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.effector.state == mesecon.state.on then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_effector_off(nodename)
 | 
			
		||||
	for i, effector in ipairs(mesecon.effectors) do
 | 
			
		||||
	for i, effector in ipairs(mesecon.effectors) do --TODO
 | 
			
		||||
		if effector.offstate == nodename then
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.effector
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.effector.state == mesecon.state.off then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_effector(nodename)
 | 
			
		||||
	return mesecon:is_effector_on(nodename) or mesecon:is_effector_off(nodename)
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.effector then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	return mesecon:is_effector_on(nodename) or mesecon:is_effector_off(nodename) --TODO
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:effector_get_input_rules(node)
 | 
			
		||||
	if  minetest.registered_nodes[node.name].mesecons
 | 
			
		||||
	and minetest.registered_nodes[node.name].mesecons.effector then
 | 
			
		||||
		local rules = minetest.registered_nodes[node.name].mesecons.effector.rules
 | 
			
		||||
		if type(rules) == 'function' then
 | 
			
		||||
			return rules(node)
 | 
			
		||||
		else
 | 
			
		||||
			return rules
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for i, effector in ipairs(mesecon.effectors) do
 | 
			
		||||
		if effector.onstate  == node.name 
 | 
			
		||||
		or effector.offstate == node.name then
 | 
			
		||||
@@ -74,21 +116,21 @@ end
 | 
			
		||||
 | 
			
		||||
--Signals
 | 
			
		||||
 | 
			
		||||
function mesecon:activate(pos)
 | 
			
		||||
function mesecon:activate(pos) --TODO
 | 
			
		||||
	local node = minetest.env:get_node(pos)	
 | 
			
		||||
	for i, action in ipairs(mesecon.actions_on) do
 | 
			
		||||
		action(pos, node) 
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:deactivate(pos)
 | 
			
		||||
function mesecon:deactivate(pos) --TODO
 | 
			
		||||
	local node = minetest.env:get_node(pos)	
 | 
			
		||||
	for i, action in ipairs(mesecon.actions_off) do
 | 
			
		||||
		action(pos, node) 
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:changesignal(pos)
 | 
			
		||||
function mesecon:changesignal(pos) --TODO
 | 
			
		||||
	local node = minetest.env:get_node(pos)	
 | 
			
		||||
	for i, action in ipairs(mesecon.actions_change) do
 | 
			
		||||
		action(pos, node) 
 | 
			
		||||
@@ -112,7 +154,11 @@ end
 | 
			
		||||
--Conductor system stuff
 | 
			
		||||
 | 
			
		||||
function mesecon:get_conductor_on(offstate)
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor then
 | 
			
		||||
		return minetest.registered_nodes[nodename].mesecons.conductor.onstate
 | 
			
		||||
	end
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do --TODO
 | 
			
		||||
		if conductor.offstate == offstate then
 | 
			
		||||
			return conductor.onstate
 | 
			
		||||
		end
 | 
			
		||||
@@ -121,7 +167,11 @@ function mesecon:get_conductor_on(offstate)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:get_conductor_off(onstate)
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor then
 | 
			
		||||
		return minetest.registered_nodes[nodename].mesecons.conductor.offstate
 | 
			
		||||
	end
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do --TODO
 | 
			
		||||
		if conductor.onstate == onstate then
 | 
			
		||||
			return conductor.offstate
 | 
			
		||||
		end
 | 
			
		||||
@@ -130,7 +180,12 @@ function mesecon:get_conductor_off(onstate)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_conductor_on(name)
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor.state == mesecon.state.on then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do --TODO
 | 
			
		||||
		if conductor.onstate == name then
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
@@ -139,7 +194,12 @@ function mesecon:is_conductor_on(name)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_conductor_off(name)
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do
 | 
			
		||||
	if  minetest.registered_nodes[nodename].mesecons
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor
 | 
			
		||||
	and minetest.registered_nodes[nodename].mesecons.condcutor.state == mesecon.state.off then
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do --TODO
 | 
			
		||||
		if conductor.offstate == name then
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
@@ -148,11 +208,21 @@ function mesecon:is_conductor_off(name)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:is_conductor(name)
 | 
			
		||||
	--TODO: simplify
 | 
			
		||||
	return mesecon:is_conductor_on(name) or mesecon:is_conductor_off(name)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:conductor_get_rules(node)
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do
 | 
			
		||||
	if  minetest.registered_nodes[node.name].mesecons
 | 
			
		||||
	and minetest.registered_nodes[node.name].mesecons.condcutor then
 | 
			
		||||
		local rules = minetest.registered_nodes[node.name].mesecons.condcutor.rules
 | 
			
		||||
		if type(rules) == 'function' then
 | 
			
		||||
			return rules(node)
 | 
			
		||||
		else
 | 
			
		||||
			return rules
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for i, conductor in ipairs(mesecon.conductors) do --TODO
 | 
			
		||||
		if conductor.onstate  == node.name 
 | 
			
		||||
		or conductor.offstate == node.name then
 | 
			
		||||
			if conductor.get_rules ~= nil then
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
--very old:
 | 
			
		||||
 | 
			
		||||
function mesecon:add_receptor_node(name, rules, get_rules)
 | 
			
		||||
	if get_rules==nil and rules==nil then
 | 
			
		||||
		rules=mesecon:get_rules("default")
 | 
			
		||||
@@ -11,3 +13,81 @@ function mesecon:add_receptor_node_off(name, rules, get_rules)
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.receptors, {offstate = name, rules = rules, get_rules = get_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--old:
 | 
			
		||||
 | 
			
		||||
function mesecon:register_receptor(onstate, offstate, rules, get_rules)
 | 
			
		||||
	if get_rules == nil and rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	table.insert(mesecon.receptors, 
 | 
			
		||||
		{onstate = onstate, 
 | 
			
		||||
		 offstate = offstate, 
 | 
			
		||||
		 rules = rules,
 | 
			
		||||
		 get_rules = get_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_effector(onstate, offstate, input_rules, get_input_rules)
 | 
			
		||||
	if get_input_rules==nil and input_rules==nil then
 | 
			
		||||
		rules=mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.effectors, 
 | 
			
		||||
		{onstate = onstate, 
 | 
			
		||||
		 offstate = offstate, 
 | 
			
		||||
		 input_rules = input_rules, 
 | 
			
		||||
		 get_input_rules = get_input_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:receptor_on(pos, rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for i, rule in ipairs(rules) do
 | 
			
		||||
		local np = {
 | 
			
		||||
		x = pos.x + rule.x,
 | 
			
		||||
		y = pos.y + rule.y,
 | 
			
		||||
		z = pos.z + rule.z}
 | 
			
		||||
		if mesecon:rules_link(pos, np, rules) then
 | 
			
		||||
			mesecon:turnon(np, pos)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:receptor_off(pos, rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for i, rule in ipairs(rules) do
 | 
			
		||||
		local np = {
 | 
			
		||||
		x = pos.x + rule.x,
 | 
			
		||||
		y = pos.y + rule.y,
 | 
			
		||||
		z = pos.z + rule.z}
 | 
			
		||||
		if mesecon:rules_link(pos, np, rules) and not mesecon:connected_to_pw_src(np) then
 | 
			
		||||
			mesecon:turnoff(np, pos)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_on(action)
 | 
			
		||||
	table.insert(mesecon.actions_on, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_off(action)
 | 
			
		||||
	table.insert(mesecon.actions_off, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_on_signal_change(action)
 | 
			
		||||
	table.insert(mesecon.actions_change, action)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function mesecon:register_conductor (onstate, offstate, rules, get_rules)
 | 
			
		||||
	if rules == nil then
 | 
			
		||||
		rules = mesecon:get_rules("default")
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(mesecon.conductors, {onstate = onstate, offstate = offstate, rules = rules, get_rules = get_rules})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
mesecon:add_rules("default", mesecon.rules.default)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								mesecons/presets.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mesecons/presets.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
mesecon.rules={}
 | 
			
		||||
mesecon.state = {}
 | 
			
		||||
 | 
			
		||||
mesecon.rules.default = 
 | 
			
		||||
{{x=0,  y=0,  z=-1},
 | 
			
		||||
{x=1,  y=0,  z=0},
 | 
			
		||||
{x=-1, y=0,  z=0},
 | 
			
		||||
{x=0,  y=0,  z=1},
 | 
			
		||||
{x=1,  y=1,  z=0},
 | 
			
		||||
{x=1,  y=-1, z=0},
 | 
			
		||||
{x=-1, y=1,  z=0},
 | 
			
		||||
{x=-1, y=-1, z=0},
 | 
			
		||||
{x=0,  y=1,  z=1},
 | 
			
		||||
{x=0,  y=-1, z=1},
 | 
			
		||||
{x=0,  y=1,  z=-1},
 | 
			
		||||
{x=0,  y=-1, z=-1}}
 | 
			
		||||
 | 
			
		||||
mesecon.state.on = "on"
 | 
			
		||||
mesecon.state.off = "off"
 | 
			
		||||
		Reference in New Issue
	
	Block a user