mirror of
				https://github.com/minetest-mods/technic.git
				synced 2025-10-30 23:25:45 +01:00 
			
		
		
		
	Correct (almost) all luacheck warnings
Also includes a few code opimizations: - Combined mining drill functions - Shorter alias registration (unused?) - Add TODOs to address later
This commit is contained in:
		| @@ -32,34 +32,37 @@ local function get_pickup_name(name) | ||||
| end | ||||
|  | ||||
| local function restore(pos, placer, itemstack) | ||||
| 	local name = itemstack:get_name() | ||||
| 	local node = minetest.get_node(pos) | ||||
| 	local meta = minetest.get_meta(pos) | ||||
| 	local inv = meta:get_inventory() | ||||
| 	local data = itemstack:get_meta():get_string("data") | ||||
| 	data = (data ~= "" and data) or	itemstack:get_metadata() | ||||
| 	data = minetest.deserialize(data) | ||||
|  | ||||
| 	if not data then | ||||
| 		minetest.remove_node(pos) | ||||
| 		minetest.log("error", placer:get_player_name().." wanted to place ".. | ||||
| 				name.." at "..minetest.pos_to_string(pos).. | ||||
| 				itemstack:get_name().." at "..minetest.pos_to_string(pos).. | ||||
| 				", but it had no data.") | ||||
| 		minetest.log("verbose", "itemstack: "..itemstack:to_string()) | ||||
| 		return true | ||||
| 	end | ||||
|  | ||||
| 	local node = minetest.get_node(pos) | ||||
| 	minetest.set_node(pos, {name = data.name, param2 = node.param2}) | ||||
| 	for name, value in pairs(data.metas) do | ||||
| 		local meta_type = get_meta_type(data.name, name) | ||||
|  | ||||
| 	-- Apply stored metadata to the current node | ||||
| 	local meta = minetest.get_meta(pos) | ||||
| 	local inv = meta:get_inventory() | ||||
| 	for key, value in pairs(data.metas) do | ||||
| 		local meta_type = get_meta_type(data.name, key) | ||||
| 		if meta_type == wrench.META_TYPE_INT then | ||||
| 			meta:set_int(name, value) | ||||
| 			meta:set_int(key, value) | ||||
| 		elseif meta_type == wrench.META_TYPE_FLOAT then | ||||
| 			meta:set_float(name, value) | ||||
| 			meta:set_float(key, value) | ||||
| 		elseif meta_type == wrench.META_TYPE_STRING then | ||||
| 			meta:set_string(name, value) | ||||
| 			meta:set_string(key, value) | ||||
| 		end | ||||
| 	end | ||||
| 	local lists = data.lists | ||||
| 	for listname, list in pairs(lists) do | ||||
|  | ||||
| 	for listname, list in pairs(data.lists) do | ||||
| 		inv:set_list(listname, list) | ||||
| 	end | ||||
| 	itemstack:take_item() | ||||
| @@ -108,15 +111,15 @@ minetest.register_tool("wrench:wrench", { | ||||
| 			minetest.record_protection_violation(pos, player_name) | ||||
| 			return | ||||
| 		end | ||||
| 		local name = minetest.get_node(pos).name | ||||
| 		local def = wrench.registered_nodes[name] | ||||
| 		local node_name = minetest.get_node(pos).name | ||||
| 		local def = wrench.registered_nodes[node_name] | ||||
| 		if not def then | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		local stack = ItemStack(get_pickup_name(name)) | ||||
| 		local stack_pickup = ItemStack(get_pickup_name(node_name)) | ||||
| 		local player_inv = placer:get_inventory() | ||||
| 		if not player_inv:room_for_item("main", stack) then | ||||
| 		if not player_inv:room_for_item("main", stack_pickup) then | ||||
| 			return | ||||
| 		end | ||||
| 		local meta = minetest.get_meta(pos) | ||||
| @@ -131,10 +134,12 @@ minetest.register_tool("wrench:wrench", { | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		-- Do the actual pickup: | ||||
| 		local metadata = {} | ||||
| 		metadata.name = name | ||||
| 		metadata.name = node_name | ||||
| 		metadata.version = LATEST_SERIALIZATION_VERSION | ||||
|  | ||||
| 		-- Serialize inventory lists + items | ||||
| 		local inv = meta:get_inventory() | ||||
| 		local lists = {} | ||||
| 		for _, listname in pairs(def.lists or {}) do | ||||
| @@ -146,22 +151,23 @@ minetest.register_tool("wrench:wrench", { | ||||
| 		end | ||||
| 		metadata.lists = lists | ||||
|  | ||||
| 		local item_meta = stack:get_meta() | ||||
| 		-- Serialize node metadata fields | ||||
| 		local item_meta = stack_pickup:get_meta() | ||||
| 		metadata.metas = {} | ||||
| 		for name, meta_type in pairs(def.metas or {}) do | ||||
| 		for key, meta_type in pairs(def.metas or {}) do | ||||
| 			if meta_type == wrench.META_TYPE_INT then | ||||
| 				metadata.metas[name] = meta:get_int(name) | ||||
| 				metadata.metas[key] = meta:get_int(key) | ||||
| 			elseif meta_type == wrench.META_TYPE_FLOAT then | ||||
| 				metadata.metas[name] = meta:get_float(name) | ||||
| 				metadata.metas[key] = meta:get_float(key) | ||||
| 			elseif meta_type == wrench.META_TYPE_STRING then | ||||
| 				metadata.metas[name] = meta:get_string(name) | ||||
| 				metadata.metas[key] = meta:get_string(key) | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		item_meta:set_string("data", minetest.serialize(metadata)) | ||||
| 		minetest.remove_node(pos) | ||||
| 		itemstack:add_wear(65535 / 20) | ||||
| 		player_inv:add_item("main", stack) | ||||
| 		player_inv:add_item("main", stack_pickup) | ||||
| 		return itemstack | ||||
| 	end, | ||||
| }) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user