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,
 | 
							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
 | 
						-- adds the item to the inventory and removes the object
 | 
				
			||||||
	local function collect_item(ent, pos, player)
 | 
						local function collect_item(ent, pos, player)
 | 
				
			||||||
		item_drop.before_collect(ent, pos, player)
 | 
							item_drop.before_collect(ent, pos, player)
 | 
				
			||||||
		minetest.sound_play("item_drop_pickup", {
 | 
							minetest.sound_play("item_drop_pickup", {
 | 
				
			||||||
			pos = pos,
 | 
								pos = pos,
 | 
				
			||||||
			gain = pickup_gain,
 | 
								gain = pickup_gain,
 | 
				
			||||||
		})
 | 
							}, true)
 | 
				
			||||||
		if pickup_particle then
 | 
							if pickup_particle then
 | 
				
			||||||
			local item = minetest.registered_nodes[
 | 
								local item = minetest.registered_nodes[
 | 
				
			||||||
				ent.itemstring:gsub("(.*)%s.*$", "%1")]
 | 
									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 item and item.tiles and item.tiles[1] then
 | 
				
			||||||
				if inventorycube_drawtypes[item.drawtype] then
 | 
									if inventorycube_drawtypes[item.drawtype] then
 | 
				
			||||||
					local tiles = item.tiles
 | 
										local tiles = item.tiles
 | 
				
			||||||
 | 
										-- color in the tile definition is handled by tile_to_image.
 | 
				
			||||||
					local top = tiles[1]
 | 
										-- color in the node definition is not yet supported here.
 | 
				
			||||||
					if type(top) == "table" then
 | 
										local top = tile_to_image(tiles[1])
 | 
				
			||||||
						top = top.name
 | 
										local left = tile_to_image(tiles[3], top)
 | 
				
			||||||
					end
 | 
										local right = tile_to_image(tiles[5], left)
 | 
				
			||||||
					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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
					image = minetest.inventorycube(top, left, right)
 | 
										image = minetest.inventorycube(top, left, right)
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					image = item.inventory_image or item.tiles[1]
 | 
										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
 | 
						local old_handle_node_drops = minetest.handle_node_drops
 | 
				
			||||||
	function minetest.handle_node_drops(pos, drops, player)
 | 
						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
 | 
								-- Node Breaker or similar machines should receive items in the
 | 
				
			||||||
			-- inventory
 | 
								-- inventory
 | 
				
			||||||
			return old_handle_node_drops(pos, drops, player)
 | 
								return old_handle_node_drops(pos, drops, player)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user