forked from luanti-org/minetest_game
		
	Move all common mods back to minetest_game
This commit is contained in:
		
							
								
								
									
										26
									
								
								mods/bucket/README.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								mods/bucket/README.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
Minetest 0.4 mod: bucket
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
License of source code:
 | 
			
		||||
-----------------------
 | 
			
		||||
Copyright (C) 2011-2012 Kahrl <kahrl@gmx.net>
 | 
			
		||||
Copyright (C) 2011-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
 | 
			
		||||
 | 
			
		||||
This program is free software; you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU Lesser General Public License as published by
 | 
			
		||||
the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
http://www.gnu.org/licenses/lgpl-2.1.html
 | 
			
		||||
 | 
			
		||||
License of media (textures and sounds)
 | 
			
		||||
--------------------------------------
 | 
			
		||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)                                 
 | 
			
		||||
http://creativecommons.org/licenses/by-sa/3.0/
 | 
			
		||||
 | 
			
		||||
Authors of media files
 | 
			
		||||
-----------------------
 | 
			
		||||
Everything not listed in here:
 | 
			
		||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								mods/bucket/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								mods/bucket/depends.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
default
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										135
									
								
								mods/bucket/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								mods/bucket/init.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,135 @@
 | 
			
		||||
-- Minetest 0.4 mod: bucket
 | 
			
		||||
-- See README.txt for licensing and other information.
 | 
			
		||||
 | 
			
		||||
local LIQUID_MAX = 8  --The number of water levels when liquid_finite is enabled
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("bucket", "bucket:bucket_empty")
 | 
			
		||||
minetest.register_alias("bucket_water", "bucket:bucket_water")
 | 
			
		||||
minetest.register_alias("bucket_lava", "bucket:bucket_lava")
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'bucket:bucket_empty 1',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot', '', 'default:steel_ingot'},
 | 
			
		||||
		{'', 'default:steel_ingot', ''},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
bucket = {}
 | 
			
		||||
bucket.liquids = {}
 | 
			
		||||
 | 
			
		||||
-- Register a new liquid
 | 
			
		||||
--   source = name of the source node
 | 
			
		||||
--   flowing = name of the flowing node
 | 
			
		||||
--   itemname = name of the new bucket item (or nil if liquid is not takeable)
 | 
			
		||||
--   inventory_image = texture of the new bucket item (ignored if itemname == nil)
 | 
			
		||||
-- This function can be called from any mod (that depends on bucket).
 | 
			
		||||
function bucket.register_liquid(source, flowing, itemname, inventory_image, name)
 | 
			
		||||
	bucket.liquids[source] = {
 | 
			
		||||
		source = source,
 | 
			
		||||
		flowing = flowing,
 | 
			
		||||
		itemname = itemname,
 | 
			
		||||
	}
 | 
			
		||||
	bucket.liquids[flowing] = bucket.liquids[source]
 | 
			
		||||
 | 
			
		||||
	if itemname ~= nil then
 | 
			
		||||
		minetest.register_craftitem(itemname, {
 | 
			
		||||
			description = name,
 | 
			
		||||
			inventory_image = inventory_image,
 | 
			
		||||
			stack_max = 1,
 | 
			
		||||
			liquids_pointable = true,
 | 
			
		||||
			groups = {not_in_creative_inventory=1},
 | 
			
		||||
			on_place = function(itemstack, user, pointed_thing)
 | 
			
		||||
				-- Must be pointing to node
 | 
			
		||||
				if pointed_thing.type ~= "node" then
 | 
			
		||||
					return
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				local place_liquid = function(pos, node, source, flowing, fullness)
 | 
			
		||||
					if math.floor(fullness/128) == 1 or (not minetest.setting_getbool("liquid_finite")) then
 | 
			
		||||
						minetest.env:add_node(pos, {name=source, param2=fullness})
 | 
			
		||||
						return
 | 
			
		||||
					elseif node.name == flowing then
 | 
			
		||||
						fullness = fullness + node.param2
 | 
			
		||||
					elseif node.name == source then
 | 
			
		||||
						fullness = LIQUID_MAX
 | 
			
		||||
					end
 | 
			
		||||
 | 
			
		||||
					if fullness >= LIQUID_MAX then
 | 
			
		||||
						minetest.env:add_node(pos, {name=source, param2=LIQUID_MAX})
 | 
			
		||||
					else
 | 
			
		||||
						minetest.env:add_node(pos, {name=flowing, param2=fullness})
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				-- Check if pointing to a buildable node
 | 
			
		||||
				local node = minetest.env:get_node(pointed_thing.under)
 | 
			
		||||
				local fullness = tonumber(itemstack:get_metadata())
 | 
			
		||||
				if not fullness then fullness = LIQUID_MAX end
 | 
			
		||||
 | 
			
		||||
				if minetest.registered_nodes[node.name].buildable_to then
 | 
			
		||||
					-- buildable; replace the node
 | 
			
		||||
					place_liquid(pointed_thing.under, node, source, flowing, fullness)
 | 
			
		||||
				else
 | 
			
		||||
					-- not buildable to; place the liquid above
 | 
			
		||||
					-- check if the node above can be replaced
 | 
			
		||||
					local node = minetest.env:get_node(pointed_thing.above)
 | 
			
		||||
					if minetest.registered_nodes[node.name].buildable_to then
 | 
			
		||||
						place_liquid(pointed_thing.above, node, source, flowing, fullness)
 | 
			
		||||
					else
 | 
			
		||||
						-- do not remove the bucket with the liquid
 | 
			
		||||
						return
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				return {name="bucket:bucket_empty"}
 | 
			
		||||
			end
 | 
			
		||||
		})
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("bucket:bucket_empty", {
 | 
			
		||||
	description = "Empty Bucket",
 | 
			
		||||
	inventory_image = "bucket.png",
 | 
			
		||||
	stack_max = 1,
 | 
			
		||||
	liquids_pointable = true,
 | 
			
		||||
	on_use = function(itemstack, user, pointed_thing)
 | 
			
		||||
		-- Must be pointing to node
 | 
			
		||||
		if pointed_thing.type ~= "node" then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		-- Check if pointing to a liquid source
 | 
			
		||||
		node = minetest.env:get_node(pointed_thing.under)
 | 
			
		||||
		liquiddef = bucket.liquids[node.name]
 | 
			
		||||
		if liquiddef ~= nil and liquiddef.itemname ~= nil and (node.name == liquiddef.source or
 | 
			
		||||
			(node.name == liquiddef.flowing and minetest.setting_getbool("liquid_finite"))) then
 | 
			
		||||
 | 
			
		||||
			minetest.env:add_node(pointed_thing.under, {name="air"})
 | 
			
		||||
 | 
			
		||||
			if node.name == liquiddef.source then node.param2 = LIQUID_MAX end
 | 
			
		||||
			return ItemStack({name = liquiddef.itemname, metadata = tostring(node.param2)})
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
bucket.register_liquid(
 | 
			
		||||
	"default:water_source",
 | 
			
		||||
	"default:water_flowing",
 | 
			
		||||
	"bucket:bucket_water",
 | 
			
		||||
	"bucket_water.png",
 | 
			
		||||
	"Water Bucket"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
bucket.register_liquid(
 | 
			
		||||
	"default:lava_source",
 | 
			
		||||
	"default:lava_flowing",
 | 
			
		||||
	"bucket:bucket_lava",
 | 
			
		||||
	"bucket_lava.png",
 | 
			
		||||
	"Lava Bucket"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "bucket:bucket_lava",
 | 
			
		||||
	burntime = 60,
 | 
			
		||||
	replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}},
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 329 B  | 
							
								
								
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket_lava.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket_lava.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 363 B  | 
							
								
								
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket_water.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mods/bucket/textures/bucket_water.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 369 B  | 
		Reference in New Issue
	
	Block a user