Make empty buckets stackable
This commit is contained in:
		
							parent
							
								
									3e912f7b85
								
							
						
					
					
						commit
						df35360372
					
				|  | @ -105,7 +105,7 @@ end | ||||||
| minetest.register_craftitem("bucket:bucket_empty", { | minetest.register_craftitem("bucket:bucket_empty", { | ||||||
|     description = "Empty Bucket", |     description = "Empty Bucket", | ||||||
|     inventory_image = "bucket.png", |     inventory_image = "bucket.png", | ||||||
| 	stack_max = 1, |     stack_max = 99, | ||||||
|     liquids_pointable = true, |     liquids_pointable = true, | ||||||
|     on_use = function(itemstack, user, pointed_thing) |     on_use = function(itemstack, user, pointed_thing) | ||||||
|         -- Must be pointing to node |         -- Must be pointing to node | ||||||
|  | @ -115,17 +115,41 @@ minetest.register_craftitem("bucket:bucket_empty", { | ||||||
|         -- Check if pointing to a liquid source |         -- Check if pointing to a liquid source | ||||||
|         local node = minetest.get_node(pointed_thing.under) |         local node = minetest.get_node(pointed_thing.under) | ||||||
|         local liquiddef = bucket.liquids[node.name] |         local liquiddef = bucket.liquids[node.name] | ||||||
| 		if liquiddef ~= nil and liquiddef.itemname ~= nil and |         local item_count = user:get_wielded_item():get_count() | ||||||
| 				node.name == liquiddef.source then | 
 | ||||||
|  |         if liquiddef ~= nil | ||||||
|  |         and liquiddef.itemname ~= nil | ||||||
|  |         and node.name == liquiddef.source then | ||||||
|             if check_protection(pointed_thing.under, |             if check_protection(pointed_thing.under, | ||||||
|                     user:get_player_name(), |                     user:get_player_name(), | ||||||
|                     "take ".. node.name) then |                     "take ".. node.name) then | ||||||
|                 return |                 return | ||||||
|             end |             end | ||||||
| 
 | 
 | ||||||
|  |             -- default set to return filled bucket | ||||||
|  |             local giving_back = liquiddef.itemname | ||||||
|  | 
 | ||||||
|  |             -- check if holding more than 1 empty bucket | ||||||
|  |             if item_count > 1 then | ||||||
|  | 
 | ||||||
|  |                 -- if space in inventory add filled bucked, otherwise drop as item | ||||||
|  |                 local inv = user:get_inventory() | ||||||
|  |                 if inv:room_for_item("main", {name=liquiddef.itemname}) then | ||||||
|  |                     inv:add_item("main", liquiddef.itemname) | ||||||
|  |                 else | ||||||
|  |                     local pos = user:getpos() | ||||||
|  |                     pos.y = math.floor(pos.y + 0.5) | ||||||
|  |                     core.add_item(pos, liquiddef.itemname) | ||||||
|  |                 end | ||||||
|  | 
 | ||||||
|  |                 -- set to return empty buckets minus 1 | ||||||
|  |                 giving_back = "bucket:bucket_empty "..tostring(item_count-1) | ||||||
|  | 
 | ||||||
|  |             end | ||||||
|  | 
 | ||||||
|             minetest.add_node(pointed_thing.under, {name="air"}) |             minetest.add_node(pointed_thing.under, {name="air"}) | ||||||
| 
 | 
 | ||||||
| 			return ItemStack(liquiddef.itemname) |             return ItemStack(giving_back) | ||||||
|         end |         end | ||||||
|     end, |     end, | ||||||
| }) | }) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue