forked from minetest-mods/item_drop
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			nalc-1.2.0
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 88ca34203d | |||
| 
						 | 
					8bebf6324e | ||
| cae46704eb | |||
| 
						 | 
					d19d00d690 | ||
| 900614a74c | |||
| 
						 | 
					1545f82cb7 | 
							
								
								
									
										44
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								init.lua
									
									
									
									
									
								
							@@ -93,13 +93,34 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
 | 
			
		||||
		flowingliquid = true,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	-- Get an image string from a tile definition
 | 
			
		||||
	local function tile_to_image(tile, fallback_image)
 | 
			
		||||
		if not tile then
 | 
			
		||||
			return fallback_image
 | 
			
		||||
		end
 | 
			
		||||
		local tile_type = type(tile)
 | 
			
		||||
		if tile_type == "string" then
 | 
			
		||||
			return tile
 | 
			
		||||
		end
 | 
			
		||||
		assert(tile_type == "table", "Tile definition is not a string or table")
 | 
			
		||||
		local image = tile.name or tile.image
 | 
			
		||||
		assert(image, "Tile definition has no image file specified")
 | 
			
		||||
		if tile.color then
 | 
			
		||||
			local colorstr = minetest.colorspec_to_colorstring(tile.color)
 | 
			
		||||
			if colorstr then
 | 
			
		||||
				return image .. "^[multiply:" .. colorstr
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		return image
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- adds the item to the inventory and removes the object
 | 
			
		||||
	local function collect_item(ent, pos, player)
 | 
			
		||||
		item_drop.before_collect(ent, pos, player)
 | 
			
		||||
		minetest.sound_play("item_drop_pickup", {
 | 
			
		||||
			pos = pos,
 | 
			
		||||
			gain = pickup_gain,
 | 
			
		||||
		})
 | 
			
		||||
		}, true)
 | 
			
		||||
		if pickup_particle then
 | 
			
		||||
			local item = minetest.registered_nodes[
 | 
			
		||||
				ent.itemstring:gsub("(.*)%s.*$", "%1")]
 | 
			
		||||
@@ -107,20 +128,11 @@ if legacy_setting_getbool("item_drop.enable_item_pickup",
 | 
			
		||||
			if item and item.tiles and item.tiles[1] then
 | 
			
		||||
				if inventorycube_drawtypes[item.drawtype] then
 | 
			
		||||
					local tiles = item.tiles
 | 
			
		||||
 | 
			
		||||
					local top = tiles[1]
 | 
			
		||||
					if type(top) == "table" then
 | 
			
		||||
						top = top.name
 | 
			
		||||
					end
 | 
			
		||||
					local left = tiles[3] or top
 | 
			
		||||
					if type(left) == "table" then
 | 
			
		||||
						left = left.name
 | 
			
		||||
					end
 | 
			
		||||
					local right = tiles[5] or left
 | 
			
		||||
					if type(right) == "table" then
 | 
			
		||||
						right = right.name
 | 
			
		||||
					end
 | 
			
		||||
 | 
			
		||||
					-- color in the tile definition is handled by tile_to_image.
 | 
			
		||||
					-- color in the node definition is not yet supported here.
 | 
			
		||||
					local top = tile_to_image(tiles[1])
 | 
			
		||||
					local left = tile_to_image(tiles[3], top)
 | 
			
		||||
					local right = tile_to_image(tiles[5], left)
 | 
			
		||||
					image = minetest.inventorycube(top, left, right)
 | 
			
		||||
				else
 | 
			
		||||
					image = item.inventory_image or item.tiles[1]
 | 
			
		||||
@@ -378,7 +390,7 @@ and not minetest.settings:get_bool("creative_mode") then
 | 
			
		||||
 | 
			
		||||
	local old_handle_node_drops = minetest.handle_node_drops
 | 
			
		||||
	function minetest.handle_node_drops(pos, drops, player)
 | 
			
		||||
		if player.is_fake_player then
 | 
			
		||||
		if not player or player.is_fake_player then
 | 
			
		||||
			-- Node Breaker or similar machines should receive items in the
 | 
			
		||||
			-- inventory
 | 
			
		||||
			return old_handle_node_drops(pos, drops, player)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user