mirror of
				https://github.com/minetest-mods/MoreMesecons.git
				synced 2025-10-31 08:05:28 +01:00 
			
		
		
		
	change a bit more code
meta:get_string isn't nil, and minetest. Swap node keeps meta l think
This commit is contained in:
		| @@ -1,38 +1,36 @@ | ||||
| local MAX_DISTANCE = 8 | ||||
|  | ||||
| local sayer_activate = function(pos) | ||||
| 	local players = minetest.get_connected_players() | ||||
| 	local text = minetest.get_meta(pos):get_string("text") | ||||
| 	for index, player in pairs(players) do | ||||
| 		local distance = vector.distance(pos, player:getpos()) | ||||
| 		if distance <= MAX_DISTANCE then | ||||
| 			minetest.chat_send_player(player:get_player_name(), "Sayer at pos " | ||||
| 						..tostring(pos.x).."," | ||||
| 						..tostring(pos.y).."," | ||||
| 						..tostring(pos.z) | ||||
| 						.." says : " | ||||
| 						..text) | ||||
| local function sayer_activate(pos) | ||||
| 	local tab = { | ||||
| 		"Sayer at pos", | ||||
| 		nil, | ||||
| 		"says : "..minetest.get_meta(pos):get_string("text") | ||||
| 	} | ||||
| 	for _,player in pairs(minetest.get_connected_players()) do | ||||
| 		if vector.distance(pos, player:getpos()) <= MAX_DISTANCE then | ||||
| 			tab[2] = minetest.pos_to_string(pos) | ||||
| 			minetest.chat_send_player(player:get_player_name(), table.concat(tab, " ")) | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
|  | ||||
| minetest.register_node("moremesecons_sayer:sayer", { | ||||
| 	description = "sayer", | ||||
| 	tiles = {"mesecons_noteblock.png", "default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png"}, | ||||
| 	tiles = {"mesecons_noteblock.png", "default_wood.png"}, | ||||
| 	drawtype = "nodebox", | ||||
| 	paramtype = "light", | ||||
| 	node_box = { | ||||
| 			type = "fixed", | ||||
| 			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, | ||||
| 		}, | ||||
| 		type = "fixed", | ||||
| 		fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, | ||||
| 	}, | ||||
| 	groups = {dig_immediate = 2}, | ||||
| 	on_construct = function(pos) | ||||
| 		local meta = minetest.get_meta(pos) | ||||
|    		meta:set_string("formspec", "field[text;text;${text}]") | ||||
|    		minetest.get_meta(pos):set_string("formspec", "field[text;text;${text}]") | ||||
| 	end, | ||||
| 	on_receive_fields = function(pos, formname, fields, sender) | ||||
| 		local meta = minetest.get_meta(pos) | ||||
| 		meta:set_string("text", fields.text) | ||||
| 	on_receive_fields = function(pos, _, fields) | ||||
| 		if fields.text then | ||||
| 			minetest.get_meta(pos):set_string("text", fields.text) | ||||
| 		end | ||||
| 	end, | ||||
| 	mesecons = {effector = { | ||||
| 		action_on = sayer_activate | ||||
|   | ||||
		Reference in New Issue
	
	Block a user