Порівняти коміти
	
		
			1 Коміти
		
	
	
		
			d356f901a3
			...
			78b10c505f
		
	
	| Автор | SHA1 | Дата | |
|---|---|---|---|
|  | 78b10c505f | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										сторонній
									
									
								
							
							
						
						| @@ -1 +0,0 @@ | |||||||
| *~ |  | ||||||
							
								
								
									
										0
									
								
								LICENSE.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								README.md
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons/actionqueue.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										2
									
								
								mesecons/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -126,7 +126,7 @@ function mesecon.receptor_off(pos, rules) | |||||||
| end | end | ||||||
|  |  | ||||||
|  |  | ||||||
| print("[OK] Mesecons") | minetest.log("action", "[OK] Mesecons") | ||||||
|  |  | ||||||
| -- Deprecated stuff | -- Deprecated stuff | ||||||
| -- To be removed in future releases | -- To be removed in future releases | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons/internal.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons/legacy.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								mesecons/oldwires.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -10,7 +10,7 @@ minetest.register_node("mesecons:mesecon_off", { | |||||||
| 		type = "fixed", | 		type = "fixed", | ||||||
| 		fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, | 		fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate=3, mesecon=1, mesecon_conductor_craftable=1}, | 	groups = {dig_immediate=2, mesecon=1, mesecon_conductor_craftable=1}, --MFF | ||||||
|     	description="Mesecons", |     	description="Mesecons", | ||||||
| 	mesecons = {conductor={ | 	mesecons = {conductor={ | ||||||
| 		state = mesecon.state.off, | 		state = mesecon.state.off, | ||||||
| @@ -28,7 +28,7 @@ minetest.register_node("mesecons:mesecon_on", { | |||||||
| 		type = "fixed", | 		type = "fixed", | ||||||
| 		fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, | 		fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate=3, not_in_creaive_inventory=1, mesecon=1}, | 	groups = {dig_immediate=2, not_in_creaive_inventory=1, mesecon=1}, --MFF | ||||||
| 	drop = "mesecons:mesecon_off 1", | 	drop = "mesecons:mesecon_off 1", | ||||||
| 	light_source = default.LIGHT_MAX-11, | 	light_source = default.LIGHT_MAX-11, | ||||||
| 	mesecons = {conductor={ | 	mesecons = {conductor={ | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons/presets.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons/services.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										30
									
								
								mesecons/settings.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -1,15 +1,15 @@ | |||||||
| -- SETTINGS | -- SETTINGS | ||||||
| function mesecon.setting(setting, default) | function mesecon.setting(setting, default) | ||||||
| 	if type(default) == "boolean" then | 	if type(default) == "boolean" then | ||||||
| 		local read = minetest.setting_getbool("mesecon."..setting) | 		local read = minetest.setting_getbool("mesecon."..setting) | ||||||
| 		if read == nil then | 		if read == nil then | ||||||
| 			return default | 			return default | ||||||
| 		else | 		else | ||||||
| 			return read | 			return read | ||||||
| 		end | 		end | ||||||
| 	elseif type(default) == "string" then | 	elseif type(default) == "string" then | ||||||
| 		return minetest.setting_get("mesecon."..setting) or default | 		return minetest.setting_get("mesecon."..setting) or default | ||||||
| 	elseif type(default) == "number" then | 	elseif type(default) == "number" then | ||||||
| 		return tonumber(minetest.setting_get("mesecon."..setting) or default) | 		return tonumber(minetest.setting_get("mesecon."..setting) or default) | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons/textures/mesecons_wire_inv.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 204 B Після Ширина: | Висота: | Розмір: 186 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons/textures/mesecons_wire_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 465 B Після Ширина: | Висота: | Розмір: 378 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons/textures/mesecons_wire_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 464 B Після Ширина: | Висота: | Розмір: 366 B | 
							
								
								
									
										0
									
								
								mesecons/util.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										6
									
								
								mesecons/wires.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -197,9 +197,9 @@ register_wires = function() | |||||||
| 			offstate = "mesecons:wire_"..nodeid.."_off" | 			offstate = "mesecons:wire_"..nodeid.."_off" | ||||||
| 		}} | 		}} | ||||||
|  |  | ||||||
| 		local groups_on = {dig_immediate = 3, mesecon_conductor_craftable = 1, | 		local groups_on = {dig_immediate = 2, mesecon_conductor_craftable = 1, | ||||||
| 			not_in_creative_inventory = 1} | 			not_in_creative_inventory = 1} --MFF | ||||||
| 		local groups_off = {dig_immediate = 3, mesecon_conductor_craftable = 1} | 		local groups_off = {dig_immediate = 2, mesecon_conductor_craftable = 1} --MFF | ||||||
| 		if nodeid ~= "00000000" then | 		if nodeid ~= "00000000" then | ||||||
| 			groups_off["not_in_creative_inventory"] = 1 | 			groups_off["not_in_creative_inventory"] = 1 | ||||||
| 		end | 		end | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons_alias/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_alias/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_blinkyplant/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										24
									
								
								mesecons_blinkyplant/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -10,11 +10,25 @@ local toggle_timer = function (pos) | |||||||
| end | end | ||||||
|  |  | ||||||
| local on_timer = function (pos) | local on_timer = function (pos) | ||||||
| 	local node = minetest.get_node(pos) | 	-- DO NOT TOUCH OR.. THREATS! Thanks, MFF | ||||||
| 	if(mesecon.flipstate(pos, node) == "on") then | 	local activate = false | ||||||
| 		mesecon.receptor_on(pos) | 	for _, player in pairs(minetest.get_connected_players()) do | ||||||
| 	else | 		local p = player:getpos() | ||||||
| 		mesecon.receptor_off(pos) | 		local dist = ((p.x-pos.x)^2 + (p.y-pos.y)^2 + (p.z-pos.z)^2)^0.5 | ||||||
|  | 		if dist < 40 then | ||||||
|  | 			activate = true | ||||||
|  | 			break | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	if activate then | ||||||
|  | 		local node = minetest.get_node(pos) | ||||||
|  | 		if(mesecon.flipstate(pos, node) == "on") then | ||||||
|  | 			mesecon.receptor_on(pos) | ||||||
|  | 		else | ||||||
|  | 			mesecon.receptor_off(pos) | ||||||
|  | 		end | ||||||
|  | 	-- Our modification stops there, thank you, @crabman77 | ||||||
| 	end | 	end | ||||||
| 	toggle_timer(pos) | 	toggle_timer(pos) | ||||||
| end | end | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_blinkyplant/textures/jeija_blinky_plant_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 454 B Після Ширина: | Висота: | Розмір: 370 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_blinkyplant/textures/jeija_blinky_plant_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 463 B Після Ширина: | Висота: | Розмір: 395 B | 
							
								
								
									
										0
									
								
								mesecons_button/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_button/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_button/sounds/mesecons_button_pop.ogg
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_button/sounds/mesecons_button_push.ogg
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_button/textures/jeija_wall_button_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 411 B Після Ширина: | Висота: | Розмір: 411 B | 
							
								
								
									
										0
									
								
								mesecons_button/textures/jeija_wall_button_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 449 B Після Ширина: | Висота: | Розмір: 449 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_button/textures/jeija_wall_button_sides.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 434 B Після Ширина: | Висота: | Розмір: 220 B | 
							
								
								
									
										0
									
								
								mesecons_commandblock/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										416
									
								
								mesecons_commandblock/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -1,208 +1,208 @@ | |||||||
| minetest.register_chatcommand("say", { | minetest.register_chatcommand("say", { | ||||||
| 	params = "<text>", | 	params = "<text>", | ||||||
| 	description = "Say <text> as the server", | 	description = "Say <text> as the server", | ||||||
| 	privs = {server=true}, | 	privs = {server=true}, | ||||||
| 	func = function(name, param) | 	func = function(name, param) | ||||||
| 		minetest.chat_send_all(name .. ": " .. param) | 		minetest.chat_send_all(name .. ": " .. param) | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_chatcommand("tell", { | minetest.register_chatcommand("tell", { | ||||||
| 	params = "<name> <text>", | 	params = "<name> <text>", | ||||||
| 	description = "Say <text> to <name> privately", | 	description = "Say <text> to <name> privately", | ||||||
| 	func = function(name, param) | 	func = function(name, param) | ||||||
| 		local found, _, target, message = param:find("^([^%s]+)%s+(.*)$") | 		local found, _, target, message = param:find("^([^%s]+)%s+(.*)$") | ||||||
| 		if found == nil then | 		if found == nil then | ||||||
| 			minetest.chat_send_player(name, "Invalid usage: " .. param) | 			minetest.chat_send_player(name, "Invalid usage: " .. param) | ||||||
| 			return | 			return | ||||||
| 		end | 		end | ||||||
| 		if not minetest.get_player_by_name(target) then | 		if not minetest.get_player_by_name(target) then | ||||||
| 			minetest.chat_send_player(name, "Invalid target: " .. target) | 			minetest.chat_send_player(name, "Invalid target: " .. target) | ||||||
| 		end | 		end | ||||||
| 		minetest.chat_send_player(target, name .. " whispers: " .. message, false) | 		minetest.chat_send_player(target, name .. " whispers: " .. message, false) | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_chatcommand("hp", { | minetest.register_chatcommand("hp", { | ||||||
| 	params = "<name> <value>", | 	params = "<name> <value>", | ||||||
| 	description = "Set health of <name> to <value> hitpoints", | 	description = "Set health of <name> to <value> hitpoints", | ||||||
| 	privs = {ban=true}, | 	privs = {ban=true}, | ||||||
| 	func = function(name, param) | 	func = function(name, param) | ||||||
| 		local found, _, target, value = param:find("^([^%s]+)%s+(%d+)$") | 		local found, _, target, value = param:find("^([^%s]+)%s+(%d+)$") | ||||||
| 		if found == nil then | 		if found == nil then | ||||||
| 			minetest.chat_send_player(name, "Invalid usage: " .. param) | 			minetest.chat_send_player(name, "Invalid usage: " .. param) | ||||||
| 			return | 			return | ||||||
| 		end | 		end | ||||||
| 		local player = minetest.get_player_by_name(target) | 		local player = minetest.get_player_by_name(target) | ||||||
| 		if player then | 		if player then | ||||||
| 			player:set_hp(value) | 			player:set_hp(value) | ||||||
| 		else | 		else | ||||||
| 			minetest.chat_send_player(name, "Invalid target: " .. target) | 			minetest.chat_send_player(name, "Invalid target: " .. target) | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
| local function initialize_data(meta) | local function initialize_data(meta) | ||||||
| 	local commands = minetest.formspec_escape(meta:get_string("commands")) | 	local commands = minetest.formspec_escape(meta:get_string("commands")) | ||||||
| 	meta:set_string("formspec", | 	meta:set_string("formspec", | ||||||
| 		"invsize[9,5;]" .. | 		"invsize[9,5;]" .. | ||||||
| 		"textarea[0.5,0.5;8.5,4;commands;Commands;"..commands.."]" .. | 		"textarea[0.5,0.5;8.5,4;commands;Commands;"..commands.."]" .. | ||||||
| 		"label[1,3.8;@nearest, @farthest, and @random are replaced by the respective player names]" .. | 		"label[1,3.8;@nearest, @farthest, and @random are replaced by the respective player names]" .. | ||||||
| 		"button_exit[3.3,4.5;2,1;submit;Submit]") | 		"button_exit[3.3,4.5;2,1;submit;Submit]") | ||||||
| 	local owner = meta:get_string("owner") | 	local owner = meta:get_string("owner") | ||||||
| 	if owner == "" then | 	if owner == "" then | ||||||
| 		owner = "not owned" | 		owner = "not owned" | ||||||
| 	else | 	else | ||||||
| 		owner = "owned by " .. owner | 		owner = "owned by " .. owner | ||||||
| 	end | 	end | ||||||
| 	meta:set_string("infotext", "Command Block\n" .. | 	meta:set_string("infotext", "Command Block\n" .. | ||||||
| 		"(" .. owner .. ")\n" .. | 		"(" .. owner .. ")\n" .. | ||||||
| 		"Commands: "..commands) | 		"Commands: "..commands) | ||||||
| end | end | ||||||
|  |  | ||||||
| local function construct(pos) | local function construct(pos) | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
|  |  | ||||||
| 	meta:set_string("commands", "tell @nearest Commandblock unconfigured") | 	meta:set_string("commands", "tell @nearest Commandblock unconfigured") | ||||||
|  |  | ||||||
| 	meta:set_string("owner", "") | 	meta:set_string("owner", "") | ||||||
|  |  | ||||||
| 	initialize_data(meta) | 	initialize_data(meta) | ||||||
| end | end | ||||||
|  |  | ||||||
| local function after_place(pos, placer) | local function after_place(pos, placer) | ||||||
| 	if placer then | 	if placer then | ||||||
| 		local meta = minetest.get_meta(pos) | 		local meta = minetest.get_meta(pos) | ||||||
| 		meta:set_string("owner", placer:get_player_name()) | 		meta:set_string("owner", placer:get_player_name()) | ||||||
| 		initialize_data(meta) | 		initialize_data(meta) | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| local function receive_fields(pos, formname, fields, sender) | local function receive_fields(pos, formname, fields, sender) | ||||||
| 	if not fields.submit then | 	if not fields.submit then | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
| 	local owner = meta:get_string("owner") | 	local owner = meta:get_string("owner") | ||||||
| 	if owner ~= "" and sender:get_player_name() ~= owner then | 	if owner ~= "" and sender:get_player_name() ~= owner then | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| 	meta:set_string("commands", fields.commands) | 	meta:set_string("commands", fields.commands) | ||||||
|  |  | ||||||
| 	initialize_data(meta) | 	initialize_data(meta) | ||||||
| end | end | ||||||
|  |  | ||||||
| local function resolve_commands(commands, pos) | local function resolve_commands(commands, pos) | ||||||
| 	local players = minetest.get_connected_players() | 	local players = minetest.get_connected_players() | ||||||
|  |  | ||||||
| 	-- No players online: remove all commands containing | 	-- No players online: remove all commands containing | ||||||
| 	-- @nearest, @farthest and @random | 	-- @nearest, @farthest and @random | ||||||
| 	if #players == 0 then | 	if #players == 0 then | ||||||
| 		commands = commands:gsub("[^\r\n]+", function (line) | 		commands = commands:gsub("[^\r\n]+", function (line) | ||||||
| 			if line:find("@nearest") then return "" end | 			if line:find("@nearest") then return "" end | ||||||
| 			if line:find("@farthest") then return "" end | 			if line:find("@farthest") then return "" end | ||||||
| 			if line:find("@random") then return "" end | 			if line:find("@random") then return "" end | ||||||
| 			return line | 			return line | ||||||
| 		end) | 		end) | ||||||
| 		return commands | 		return commands | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local nearest, farthest = nil, nil | 	local nearest, farthest = nil, nil | ||||||
| 	local min_distance, max_distance = math.huge, -1 | 	local min_distance, max_distance = math.huge, -1 | ||||||
| 	for index, player in pairs(players) do | 	for index, player in pairs(players) do | ||||||
| 		local distance = vector.distance(pos, player:getpos()) | 		local distance = vector.distance(pos, player:getpos()) | ||||||
| 		if distance < min_distance then | 		if distance < min_distance then | ||||||
| 			min_distance = distance | 			min_distance = distance | ||||||
| 			nearest = player:get_player_name() | 			nearest = player:get_player_name() | ||||||
| 		end | 		end | ||||||
| 		if distance > max_distance then | 		if distance > max_distance then | ||||||
| 			max_distance = distance | 			max_distance = distance | ||||||
| 			farthest = player:get_player_name() | 			farthest = player:get_player_name() | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| 	local random = players[math.random(#players)]:get_player_name() | 	local random = players[math.random(#players)]:get_player_name() | ||||||
| 	commands = commands:gsub("@nearest", nearest) | 	commands = commands:gsub("@nearest", nearest) | ||||||
| 	commands = commands:gsub("@farthest", farthest) | 	commands = commands:gsub("@farthest", farthest) | ||||||
| 	commands = commands:gsub("@random", random) | 	commands = commands:gsub("@random", random) | ||||||
| 	return commands | 	return commands | ||||||
| end | end | ||||||
|  |  | ||||||
| local function commandblock_action_on(pos, node) | local function commandblock_action_on(pos, node) | ||||||
| 	if node.name ~= "mesecons_commandblock:commandblock_off" then | 	if node.name ~= "mesecons_commandblock:commandblock_off" then | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_on"}) | 	minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_on"}) | ||||||
|  |  | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
| 	local owner = meta:get_string("owner") | 	local owner = meta:get_string("owner") | ||||||
| 	if owner == "" then | 	if owner == "" then | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local commands = resolve_commands(meta:get_string("commands"), pos) | 	local commands = resolve_commands(meta:get_string("commands"), pos) | ||||||
| 	for _, command in pairs(commands:split("\n")) do | 	for _, command in pairs(commands:split("\n")) do | ||||||
| 		local pos = command:find(" ") | 		local pos = command:find(" ") | ||||||
| 		local cmd, param = command, "" | 		local cmd, param = command, "" | ||||||
| 		if pos then | 		if pos then | ||||||
| 			cmd = command:sub(1, pos - 1) | 			cmd = command:sub(1, pos - 1) | ||||||
| 			param = command:sub(pos + 1) | 			param = command:sub(pos + 1) | ||||||
| 		end | 		end | ||||||
| 		local cmddef = minetest.chatcommands[cmd] | 		local cmddef = minetest.chatcommands[cmd] | ||||||
| 		if not cmddef then | 		if not cmddef then | ||||||
| 			minetest.chat_send_player(owner, "The command "..cmd.." does not exist") | 			minetest.chat_send_player(owner, "The command "..cmd.." does not exist") | ||||||
| 			return | 			return | ||||||
| 		end | 		end | ||||||
| 		local has_privs, missing_privs = minetest.check_player_privs(owner, cmddef.privs) | 		local has_privs, missing_privs = minetest.check_player_privs(owner, cmddef.privs) | ||||||
| 		if not has_privs then | 		if not has_privs then | ||||||
| 			minetest.chat_send_player(owner, "You don't have permission " | 			minetest.chat_send_player(owner, "You don't have permission " | ||||||
| 					.."to run "..cmd | 					.."to run "..cmd | ||||||
| 					.." (missing privileges: " | 					.." (missing privileges: " | ||||||
| 					..table.concat(missing_privs, ", ")..")") | 					..table.concat(missing_privs, ", ")..")") | ||||||
| 			return | 			return | ||||||
| 		end | 		end | ||||||
| 		cmddef.func(owner, param) | 		cmddef.func(owner, param) | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| local function commandblock_action_off(pos, node) | local function commandblock_action_off(pos, node) | ||||||
| 	if node.name == "mesecons_commandblock:commandblock_on" then | 	if node.name == "mesecons_commandblock:commandblock_on" then | ||||||
| 		minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_off"}) | 		minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_off"}) | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| local function can_dig(pos, player) | local function can_dig(pos, player) | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
| 	local owner = meta:get_string("owner") | 	local owner = meta:get_string("owner") | ||||||
| 	return owner == "" or owner == player:get_player_name() | 	return owner == "" or owner == player:get_player_name() | ||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_node("mesecons_commandblock:commandblock_off", { | minetest.register_node("mesecons_commandblock:commandblock_off", { | ||||||
| 	description = "Command Block", | 	description = "Command Block", | ||||||
| 	tiles = {"jeija_commandblock_off.png"}, | 	tiles = {"jeija_commandblock_off.png"}, | ||||||
| 	inventory_image = minetest.inventorycube("jeija_commandblock_off.png"), | 	inventory_image = minetest.inventorycube("jeija_commandblock_off.png"), | ||||||
| 	groups = {cracky=2, mesecon_effector_off=1}, | 	groups = {cracky=2, mesecon_effector_off=1}, | ||||||
| 	on_construct = construct, | 	on_construct = construct, | ||||||
| 	after_place_node = after_place, | 	after_place_node = after_place, | ||||||
| 	on_receive_fields = receive_fields, | 	on_receive_fields = receive_fields, | ||||||
| 	can_dig = can_dig, | 	can_dig = can_dig, | ||||||
| 	sounds = default.node_sound_stone_defaults(), | 	sounds = default.node_sound_stone_defaults(), | ||||||
| 	mesecons = {effector = { | 	mesecons = {effector = { | ||||||
| 		action_on = commandblock_action_on | 		action_on = commandblock_action_on | ||||||
| 	}} | 	}} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("mesecons_commandblock:commandblock_on", { | minetest.register_node("mesecons_commandblock:commandblock_on", { | ||||||
| 	tiles = {"jeija_commandblock_on.png"}, | 	tiles = {"jeija_commandblock_on.png"}, | ||||||
| 	groups = {cracky=2, mesecon_effector_on=1, not_in_creative_inventory=1}, | 	groups = {cracky=2, mesecon_effector_on=1, not_in_creative_inventory=1}, | ||||||
| 	light_source = 10, | 	light_source = 10, | ||||||
| 	drop = "mesecons_commandblock:commandblock_off", | 	drop = "mesecons_commandblock:commandblock_off", | ||||||
| 	on_construct = construct, | 	on_construct = construct, | ||||||
| 	after_place_node = after_place, | 	after_place_node = after_place, | ||||||
| 	on_receive_fields = receive_fields, | 	on_receive_fields = receive_fields, | ||||||
| 	can_dig = can_dig, | 	can_dig = can_dig, | ||||||
| 	sounds = default.node_sound_stone_defaults(), | 	sounds = default.node_sound_stone_defaults(), | ||||||
| 	mesecons = {effector = { | 	mesecons = {effector = { | ||||||
| 		action_off = commandblock_action_off | 		action_off = commandblock_action_off | ||||||
| 	}} | 	}} | ||||||
| }) | }) | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_commandblock/textures/jeija_close_window.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 323 B Після Ширина: | Висота: | Розмір: 191 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_commandblock/textures/jeija_commandblock_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 282 B Після Ширина: | Висота: | Розмір: 183 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_commandblock/textures/jeija_commandblock_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 278 B Після Ширина: | Висота: | Розмір: 183 B | 
							
								
								
									
										0
									
								
								mesecons_delayer/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_delayer/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_bottom.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 438 B Після Ширина: | Висота: | Розмір: 261 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_ends_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 226 B Після Ширина: | Висота: | Розмір: 204 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_ends_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 228 B Після Ширина: | Висота: | Розмір: 204 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_off_1.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 562 B Після Ширина: | Висота: | Розмір: 448 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_off_2.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 558 B Після Ширина: | Висота: | Розмір: 449 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_off_3.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 561 B Після Ширина: | Висота: | Розмір: 448 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_off_4.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 556 B Після Ширина: | Висота: | Розмір: 446 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_on_1.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 635 B Після Ширина: | Висота: | Розмір: 544 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_on_2.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 632 B Після Ширина: | Висота: | Розмір: 544 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_on_3.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 635 B Після Ширина: | Висота: | Розмір: 544 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_on_4.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 630 B Після Ширина: | Висота: | Розмір: 539 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_sides_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 229 B Після Ширина: | Висота: | Розмір: 204 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_delayer/textures/mesecons_delayer_sides_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 234 B Після Ширина: | Висота: | Розмір: 204 B | 
							
								
								
									
										0
									
								
								mesecons_detector/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										48
									
								
								mesecons_detector/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -4,10 +4,12 @@ local GET_COMMAND = "GET" | |||||||
| -- Detects players in a certain radius | -- Detects players in a certain radius | ||||||
| -- The radius can be specified in mesecons/settings.lua | -- The radius can be specified in mesecons/settings.lua | ||||||
|  |  | ||||||
| local function object_detector_make_formspec(pos) | -- The following file was modified to detect multiple players | ||||||
| 	minetest.get_meta(pos):set_string("formspec", "size[9,2.5]" .. | local object_detector_make_formspec = function (pos) | ||||||
| 		"field[0.3,  0;9,2;scanname;Name of player to scan for (empty for any):;${scanname}]".. | 	local meta = minetest.get_meta(pos) | ||||||
| 		"field[0.3,1.5;4,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]".. | 	meta:set_string("formspec", "size[9,2.5]" .. | ||||||
|  | 		"field[0.3,  0;12,2;scanname;Name of player(s) to scan for (empty for any, separate with comma):;${scanname}]".. | ||||||
|  | 		"field[0.3,1.5;4 ,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]".. | ||||||
| 		"button_exit[7,0.75;2,3;;Save]") | 		"button_exit[7,0.75;2,3;;Save]") | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -23,34 +25,36 @@ end | |||||||
| -- returns true if player was found, false if not | -- returns true if player was found, false if not | ||||||
| local function object_detector_scan(pos) | local function object_detector_scan(pos) | ||||||
| 	local objs = minetest.get_objects_inside_radius(pos, mesecon.setting("detector_radius", 6)) | 	local objs = minetest.get_objects_inside_radius(pos, mesecon.setting("detector_radius", 6)) | ||||||
|  | 	for k, obj in pairs(objs) do | ||||||
| 	-- abort if no scan results were found | 		local isname = obj:get_player_name() -- "" is returned if it is not a player; "" ~= nil! | ||||||
| 	if next(objs) == nil then return false end | 		local scanname = minetest.get_meta(pos):get_string("scanname"):gsub(' ', "") | ||||||
|  | 		if (scanname == "" and isname ~= "") then | ||||||
| 	local scanname = minetest.get_meta(pos):get_string("scanname") | 			minetest.get_meta(pos):set_string("scanedname", "") | ||||||
| 	local every_player = scanname == "" | 			return true | ||||||
| 	for _, obj in pairs(objs) do | 		end | ||||||
| 		-- "" is returned if it is not a player; "" ~= nil; so only handle objects with foundname ~= "" | 		local founds = {} | ||||||
| 		local foundname = obj:get_player_name() | 		for _, name in pairs(scanname:split(',')) do | ||||||
|  | 			if (isname == name and isname ~= "") then | ||||||
| 		if foundname ~= "" then | 				table.insert(founds, isname) | ||||||
| 			-- return true if scanning for any player or if specific playername was detected |  | ||||||
| 			if scanname == "" or foundname == scanname then |  | ||||||
| 				return true |  | ||||||
| 			end | 			end | ||||||
| 		end | 		end | ||||||
|  | 		if #founds > 0 then | ||||||
|  | 			minetest.get_meta(pos):set_string("scannedname", table.concat(founds, ',')) | ||||||
|  | 			return true | ||||||
|  | 		end | ||||||
| 	end | 	end | ||||||
|  | 	minetest.get_meta(pos):set_string("scanedname", "") | ||||||
| 	return false | 	return false | ||||||
| end | end | ||||||
|  |  | ||||||
| -- set player name when receiving a digiline signal on a specific channel | -- set player name when receiving a digiline signal on a specific channel | ||||||
| local object_detector_digiline = { | local object_detector_digiline = { | ||||||
| 	effector = { | 	effector = { | ||||||
| 		action = function(pos, node, channel, msg) | 		action = function (pos, node, channel, msg) | ||||||
| 			local meta = minetest.get_meta(pos) | 			local meta = minetest.get_meta(pos) | ||||||
| 			if channel == meta:get_string("digiline_channel") then | 			local active_channel = meta:get_string("digiline_channel") | ||||||
| 				meta:set_string("scanname", msg) | 			if channel == active_channel then | ||||||
|  | 				meta:set_string("scanedname", msg) | ||||||
| 				object_detector_make_formspec(pos) | 				object_detector_make_formspec(pos) | ||||||
| 			end | 			end | ||||||
| 		end, | 		end, | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_detector/textures/jeija_node_detector_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 717 B Після Ширина: | Висота: | Розмір: 680 B | 
							
								
								
									
										0
									
								
								mesecons_detector/textures/jeija_node_detector_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 727 B Після Ширина: | Висота: | Розмір: 727 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_detector/textures/jeija_object_detector_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 712 B Після Ширина: | Висота: | Розмір: 655 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_detector/textures/jeija_object_detector_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 735 B Після Ширина: | Висота: | Розмір: 733 B | 
							
								
								
									
										0
									
								
								mesecons_doors/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										13
									
								
								mesecons_doors/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -74,6 +74,19 @@ meseconify_door("doors:door_steel") | |||||||
| meseconify_door("doors:door_glass") | meseconify_door("doors:door_glass") | ||||||
| meseconify_door("doors:door_obsidian_glass") | meseconify_door("doors:door_obsidian_glass") | ||||||
|  |  | ||||||
|  | --MFF meseconify all doors, crabman 12/06/2016  | ||||||
|  | meseconify_door("doors:door_cherry") | ||||||
|  | meseconify_door("doors:door_tin") | ||||||
|  | meseconify_door("doors:door_prison") | ||||||
|  | meseconify_door("doors:door_gardengate_white") | ||||||
|  | meseconify_door("doors:door3_wood") | ||||||
|  | meseconify_door("doors:door3_steel") | ||||||
|  | meseconify_door("doors:door3_glass") | ||||||
|  | meseconify_door("doors:door3_obsidian_glass") | ||||||
|  | meseconify_door("doors:door3_cherry") | ||||||
|  | meseconify_door("doors:door3_prison") | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Trapdoor | -- Trapdoor | ||||||
| local function trapdoor_switch(pos, node) | local function trapdoor_switch(pos, node) | ||||||
| 	local state = minetest.get_meta(pos):get_int("state") | 	local state = minetest.get_meta(pos):get_int("state") | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								mesecons_extrawires/corner.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -37,7 +37,7 @@ minetest.register_node("mesecons_extrawires:corner_on", { | |||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	selection_box = corner_selectionbox, | 	selection_box = corner_selectionbox, | ||||||
| 	node_box = corner_nodebox, | 	node_box = corner_nodebox, | ||||||
| 	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, | 	groups = {dig_immediate = 2, not_in_creative_inventory = 1}, -- MFF | ||||||
| 	drop = "mesecons_extrawires:corner_off", | 	drop = "mesecons_extrawires:corner_off", | ||||||
| 	mesecons = {conductor = | 	mesecons = {conductor = | ||||||
| 	{ | 	{ | ||||||
| @@ -64,7 +64,7 @@ minetest.register_node("mesecons_extrawires:corner_off", { | |||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	selection_box = corner_selectionbox, | 	selection_box = corner_selectionbox, | ||||||
| 	node_box = corner_nodebox, | 	node_box = corner_nodebox, | ||||||
| 	groups = {dig_immediate = 3}, | 	groups = {dig_immediate = 2}, --MFF | ||||||
| 	mesecons = {conductor = | 	mesecons = {conductor = | ||||||
| 	{ | 	{ | ||||||
| 		state = mesecon.state.off, | 		state = mesecon.state.off, | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								mesecons_extrawires/crossover.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -41,7 +41,7 @@ minetest.register_node("mesecons_extrawires:crossover_off", { | |||||||
| 			{ -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, | 			{ -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate=3, mesecon=3}, | 	groups = {dig_immediate=2, mesecon=3}, --MFF | ||||||
| 	mesecons = { | 	mesecons = { | ||||||
| 		conductor = { | 		conductor = { | ||||||
| 			states = crossover_states, | 			states = crossover_states, | ||||||
| @@ -77,7 +77,7 @@ minetest.register_node("mesecons_extrawires:crossover_01", { | |||||||
| 			{ -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, | 			{ -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 }, | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, | 	groups = {dig_immediate=2, mesecon=3, not_in_creative_inventory=1}, --MFF | ||||||
| 	mesecons = { | 	mesecons = { | ||||||
| 		conductor = { | 		conductor = { | ||||||
| 			states = crossover_states, | 			states = crossover_states, | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons_extrawires/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_extrawires/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_extrawires/mesewire.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								mesecons_extrawires/tjunction.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -38,7 +38,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", { | |||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	selection_box = tjunction_selectionbox, | 	selection_box = tjunction_selectionbox, | ||||||
| 	node_box = tjunction_nodebox, | 	node_box = tjunction_nodebox, | ||||||
| 	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, | 	groups = {dig_immediate = 2, not_in_creative_inventory = 1}, --MFF | ||||||
| 	drop = "mesecons_extrawires:tjunction_off", | 	drop = "mesecons_extrawires:tjunction_off", | ||||||
| 	mesecons = {conductor = | 	mesecons = {conductor = | ||||||
| 	{ | 	{ | ||||||
| @@ -65,7 +65,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", { | |||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	selection_box = tjunction_selectionbox, | 	selection_box = tjunction_selectionbox, | ||||||
| 	node_box = tjunction_nodebox, | 	node_box = tjunction_nodebox, | ||||||
| 	groups = {dig_immediate = 3}, | 	groups = {dig_immediate = 2}, --MFF | ||||||
| 	mesecons = {conductor = | 	mesecons = {conductor = | ||||||
| 	{ | 	{ | ||||||
| 		state = mesecon.state.off, | 		state = mesecon.state.off, | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								mesecons_extrawires/vertical.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -90,7 +90,7 @@ mesecon.register_node("mesecons_extrawires:vertical", { | |||||||
| 	after_dig_node = vertical_update | 	after_dig_node = vertical_update | ||||||
| },{ | },{ | ||||||
| 	tiles = {"mesecons_wire_off.png"}, | 	tiles = {"mesecons_wire_off.png"}, | ||||||
| 	groups = {dig_immediate=3}, | 	groups = {dig_immediate=2}, --MFF | ||||||
| 	mesecons = {conductor = { | 	mesecons = {conductor = { | ||||||
| 		state = mesecon.state.off, | 		state = mesecon.state.off, | ||||||
| 		onstate = "mesecons_extrawires:vertical_on", | 		onstate = "mesecons_extrawires:vertical_on", | ||||||
| @@ -98,7 +98,7 @@ mesecon.register_node("mesecons_extrawires:vertical", { | |||||||
| 	}} | 	}} | ||||||
| },{ | },{ | ||||||
| 	tiles = {"mesecons_wire_on.png"}, | 	tiles = {"mesecons_wire_on.png"}, | ||||||
| 	groups = {dig_immediate=3, not_in_creative_inventory=1}, | 	groups = {dig_immediate=2, not_in_creative_inventory=1}, --MFF | ||||||
| 	mesecons = {conductor = { | 	mesecons = {conductor = { | ||||||
| 		state = mesecon.state.on, | 		state = mesecon.state.on, | ||||||
| 		offstate = "mesecons_extrawires:vertical_off", | 		offstate = "mesecons_extrawires:vertical_off", | ||||||
| @@ -113,7 +113,7 @@ mesecon.register_node("mesecons_extrawires:vertical_top", { | |||||||
| 	walkable = false, | 	walkable = false, | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	groups = {dig_immediate=3, not_in_creative_inventory=1}, | 	groups = {dig_immediate=2, not_in_creative_inventory=1}, --MFF | ||||||
| 	selection_box = top_box, | 	selection_box = top_box, | ||||||
| 	node_box = top_box, | 	node_box = top_box, | ||||||
| 	is_vertical_conductor = true, | 	is_vertical_conductor = true, | ||||||
| @@ -143,7 +143,7 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", { | |||||||
| 	walkable = false, | 	walkable = false, | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, | 	groups = {dig_immediate = 2, not_in_creative_inventory = 1}, --MFF | ||||||
| 	selection_box = bottom_box, | 	selection_box = bottom_box, | ||||||
| 	node_box = bottom_box, | 	node_box = bottom_box, | ||||||
| 	is_vertical_conductor = true, | 	is_vertical_conductor = true, | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons_gates/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								mesecons_gates/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_and.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 233 B Після Ширина: | Висота: | Розмір: 129 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_diode.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 231 B Після Ширина: | Висота: | Розмір: 134 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_nand.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 251 B Після Ширина: | Висота: | Розмір: 133 B | 
| Перед Ширина: | Висота: | Розмір: 251 B Після Ширина: | Висота: | Розмір: 127 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_not.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 241 B Після Ширина: | Висота: | Розмір: 133 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 195 B Після Ширина: | Висота: | Розмір: 105 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 195 B Після Ширина: | Висота: | Розмір: 109 B | 
| Перед Ширина: | Висота: | Розмір: 243 B Після Ширина: | Висота: | Розмір: 127 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_gates/textures/jeija_gate_xor.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 245 B Після Ширина: | Висота: | Розмір: 136 B | 
							
								
								
									
										0
									
								
								mesecons_hydroturbine/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								mesecons_hydroturbine/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -59,7 +59,7 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_off"}, | |||||||
| 	chance = 1, | 	chance = 1, | ||||||
| 	action = function(pos, node, active_object_count, active_object_count_wider) | 	action = function(pos, node, active_object_count, active_object_count_wider) | ||||||
| 		local waterpos={x=pos.x, y=pos.y+1, z=pos.z} | 		local waterpos={x=pos.x, y=pos.y+1, z=pos.z} | ||||||
| 		if minetest.get_node(waterpos).name=="default:water_flowing" then | 		if minetest.get_node(waterpos).name=="default:water_flowing" or minetest.get_node(waterpos).name == "default:river_water_flowing" then | ||||||
| 			minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"}) | 			minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"}) | ||||||
| 			nodeupdate(pos) | 			nodeupdate(pos) | ||||||
| 			mesecon.receptor_on(pos) | 			mesecon.receptor_on(pos) | ||||||
| @@ -73,7 +73,7 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_on"}, | |||||||
| 	chance = 1, | 	chance = 1, | ||||||
| 	action = function(pos, node, active_object_count, active_object_count_wider) | 	action = function(pos, node, active_object_count, active_object_count_wider) | ||||||
| 		local waterpos={x=pos.x, y=pos.y+1, z=pos.z} | 		local waterpos={x=pos.x, y=pos.y+1, z=pos.z} | ||||||
| 		if minetest.get_node(waterpos).name~="default:water_flowing" then | 		if minetest.get_node(waterpos).name~="default:water_flowing" or minetest.get_node(waterpos).name ~= "default:river_water_flowing" then | ||||||
| 			minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"}) | 			minetest.set_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"}) | ||||||
| 			nodeupdate(pos) | 			nodeupdate(pos) | ||||||
| 			mesecon.receptor_off(pos) | 			mesecon.receptor_off(pos) | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								mesecons_hydroturbine/models/jeija_hydro_turbine.obj
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_inv.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 4.8 KiB Після Ширина: | Висота: | Розмір: 4.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 782 B Після Ширина: | Висота: | Розмір: 776 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 758 B Після Ширина: | Висота: | Розмір: 754 B | 
							
								
								
									
										0
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_top_bottom.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 564 B Після Ширина: | Висота: | Розмір: 564 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 820 B Після Ширина: | Висота: | Розмір: 729 B | 
							
								
								
									
										0
									
								
								mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 496 B Після Ширина: | Висота: | Розмір: 496 B | 
							
								
								
									
										0
									
								
								mesecons_insulated/depends.txt
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								mesecons_insulated/init.lua
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| @@ -30,7 +30,7 @@ minetest.register_node("mesecons_insulated:insulated_on", { | |||||||
| 		type = "fixed", | 		type = "fixed", | ||||||
| 		fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } | 		fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate = 3, not_in_creative_inventory = 1}, | 	groups = {dig_immediate = 2, not_in_creative_inventory = 1}, --MFF | ||||||
| 	drop = "mesecons_insulated:insulated_off", | 	drop = "mesecons_insulated:insulated_off", | ||||||
| 	mesecons = {conductor = { | 	mesecons = {conductor = { | ||||||
| 		state = mesecon.state.on, | 		state = mesecon.state.on, | ||||||
| @@ -62,7 +62,7 @@ minetest.register_node("mesecons_insulated:insulated_off", { | |||||||
| 		type = "fixed", | 		type = "fixed", | ||||||
| 		fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } | 		fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } | ||||||
| 	}, | 	}, | ||||||
| 	groups = {dig_immediate = 3}, | 	groups = {dig_immediate = 2}, --MFF | ||||||
| 	mesecons = {conductor = { | 	mesecons = {conductor = { | ||||||
| 		state = mesecon.state.off, | 		state = mesecon.state.off, | ||||||
| 		onstate = "mesecons_insulated:insulated_on", | 		onstate = "mesecons_insulated:insulated_on", | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_01.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 305 B Після Ширина: | Висота: | Розмір: 169 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_10.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 270 B Після Ширина: | Висота: | Розмір: 169 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 293 B Після Ширина: | Висота: | Розмір: 156 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_crossing_tb_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 209 B Після Ширина: | Висота: | Розмір: 156 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_curved_tb_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 253 B Після Ширина: | Висота: | Розмір: 136 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_curved_tb_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 196 B Після Ширина: | Висота: | Розмір: 136 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_01x.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 246 B Після Ширина: | Висота: | Розмір: 173 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_01z.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 252 B Після Ширина: | Висота: | Розмір: 157 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_10x.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 238 B Після Ширина: | Висота: | Розмір: 161 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_10z.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 261 B Після Ширина: | Висота: | Розмір: 161 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 142 B Після Ширина: | Висота: | Розмір: 109 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_ends_on.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 126 B Після Ширина: | Висота: | Розмір: 109 B | 
							
								
								
									
										
											BIN
										
									
								
								mesecons_insulated/textures/jeija_insulated_wire_sides_off.png
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						| Перед Ширина: | Висота: | Розмір: 200 B Після Ширина: | Висота: | Розмір: 100 B |