Compare commits
	
		
			48 Commits
		
	
	
		
			revert-2-R
			...
			fc9daaa401
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fc9daaa401 | |||
|  | 34575ded4d | ||
|  | 902f3c0e4c | ||
|  | 211c3f4b68 | ||
|  | 26d8e9dd24 | ||
|  | b49f0ad425 | ||
|  | 204a25d060 | ||
|  | 4a8a178800 | ||
|  | fea2299053 | ||
|  | 0502b438a8 | ||
|  | 64aae49bbd | ||
|  | fc192685b0 | ||
|  | 2b2a893960 | ||
|  | 75b30587e0 | ||
|  | 1626a812fa | ||
|  | 1a64404611 | ||
|  | f62ad8ef38 | ||
|  | feb2efb6bc | ||
|  | c8c4e41cae | ||
|  | ea612c59d5 | ||
|  | 21e22e4451 | ||
|  | 7f35425823 | ||
|  | d241c8d869 | ||
|  | 2c68b350be | ||
|  | ff87677ae5 | ||
|  | a51b17ca63 | ||
|  | 399ef94bdd | ||
|  | c63c448da4 | ||
|  | 928fbb389e | ||
|  | cdd5f49528 | ||
|  | 7a8d7ea8c6 | ||
|  | 8d7c5f68e5 | ||
|  | d8c9f54d2f | ||
|  | f89373d836 | ||
|  | 917fded0aa | ||
|  | 2235a03900 | ||
|  | d39cb0e4e6 | ||
|  | 680ecf0fb1 | ||
|  | 30088cd750 | ||
|  | 2b0938cd7d | ||
|  | 67f2bd8978 | ||
|  | ccaaf14107 | ||
|  | 240c0fd283 | ||
|  | 87b49c2ca6 | ||
|  | 11b759a464 | ||
|  | ac7374a703 | ||
|  | 08749c8b7b | ||
|  | 199c0c2ee7 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | *.swp | ||||||
							
								
								
									
										32
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,29 +1,19 @@ | |||||||
| # claycrafter | # claycrafter | ||||||
| Minetest clay crafter mod. Adds a way to craft clay out of compressed dirt. | Minetest clay crafter mod. Adds a way to craft clay out of compressed dirt. | ||||||
|  |  | ||||||
| Dependencies:  | Dependencies: | ||||||
| -Default | Default | ||||||
| -Vessels | Vessels | ||||||
| -Bucket | Bucket | ||||||
|  | moreblocks (optional) | ||||||
|  |  | ||||||
| #####License for Code | claycrafter.lua is derivated from furnace.lua (minetest_game) by PilzAdam and Amaz1.  | ||||||
|  | Edited by everamzah to work for this mod. | ||||||
|  |  | ||||||
| Copyright (C) 2010-2013 Dragonop <joaco-mono@hotmail.com> | #####License for Code  | ||||||
|  |  | ||||||
| This program is free software; you can redistribute it and/or modify | Dragonop (LGPLv3) | ||||||
| it under the terms of the GNU Lesser General Public License as published by |  | ||||||
| the Free Software Foundation; either version 2.1 of the License, or |  | ||||||
| (at your option) any later version. |  | ||||||
|  |  | ||||||
| This program is distributed in the hope that it will be useful, | #####License for Media | ||||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| GNU Lesser General Public License for more details. |  | ||||||
|  |  | ||||||
| You should have received a copy of the GNU Lesser General Public License along | Textures by Dragonop (CC-BY-SA 4.0) | ||||||
| with this program; if not, write to the Free Software Foundation, Inc., |  | ||||||
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |  | ||||||
|  |  | ||||||
| #####License for Textures, Models and Sounds |  | ||||||
|  |  | ||||||
| CC-BY-SA 3.0 UNPORTED. Created by Dragonop |  | ||||||
|   | |||||||
							
								
								
									
										309
									
								
								claycrafter.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,309 @@ | |||||||
|  | -- | ||||||
|  | -- Formspecs | ||||||
|  | -- | ||||||
|  |  | ||||||
|  | local function active_formspec(fuel_percent, item_percent) | ||||||
|  | 	local formspec =  | ||||||
|  | 		"size[8,8.5]".. | ||||||
|  | 		default.gui_bg.. | ||||||
|  | 		default.gui_bg_img.. | ||||||
|  | 		default.gui_slots.. | ||||||
|  | 		"list[current_name;src;2.75,0.5;1,1;]".. | ||||||
|  | 		"list[current_name;fuel;2.75,2.5;1,1;]".. | ||||||
|  | 		"image[2.75,1.5;1,1;claycrafter_claycrafter_water_bg.png^[lowpart:".. | ||||||
|  | 		(100-fuel_percent)..":claycrafter_claycrafter_water_fg.png]".. | ||||||
|  | 		"image[3.75,1.5;1,1;gui_claycrafter_arrow_bg.png^[lowpart:".. | ||||||
|  | 		(item_percent)..":gui_claycrafter_arrow_fg.png^[transformR270]".. | ||||||
|  | 		"list[current_name;dst;4.75,0.96;3,2;]".. | ||||||
|  | 		"list[current_name;vessels;0,1.5;2,2;]".. | ||||||
|  | 		"list[current_player;main;0,4.25;8,1;]".. | ||||||
|  | 		"list[current_player;main;0,5.5;8,3;8]".. | ||||||
|  | 		"listring[current_name;dst]".. | ||||||
|  | 		"listring[current_player;main]".. | ||||||
|  | 		"listring[current_name;src]".. | ||||||
|  | 		"listring[current_player;main]".. | ||||||
|  | 		"listring[current_name;vessels]".. | ||||||
|  | 		"listring[current_player;main]".. | ||||||
|  | 		default.get_hotbar_bg(0, 4.25) | ||||||
|  | 	return formspec | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local inactive_formspec = | ||||||
|  | 	"size[8,8.5]".. | ||||||
|  | 	default.gui_bg.. | ||||||
|  | 	default.gui_bg_img.. | ||||||
|  | 	default.gui_slots.. | ||||||
|  | 	"list[current_name;src;2.75,0.5;1,1;]".. | ||||||
|  | 	"list[current_name;fuel;2.75,2.5;1,1;]".. | ||||||
|  | 	"image[2.75,1.5;1,1;claycrafter_claycrafter_water_bg.png]".. | ||||||
|  | 	"image[3.75,1.5;1,1;gui_claycrafter_arrow_bg.png^[transformR270]".. | ||||||
|  | 	"list[current_name;dst;4.75,0.96;3,2;]".. | ||||||
|  | 	"list[current_name;vessels;0,1.5;2,2;]".. | ||||||
|  | 	"list[current_player;main;0,4.25;8,1;]".. | ||||||
|  | 	"list[current_player;main;0,5.5;8,3;8]".. | ||||||
|  | 	"listring[current_name;dst]".. | ||||||
|  | 	"listring[current_player;main]".. | ||||||
|  | 	"listring[current_name;src]".. | ||||||
|  | 	"listring[current_player;main]".. | ||||||
|  | 	"listring[current_name;vessels]".. | ||||||
|  | 	"listring[current_player;main]".. | ||||||
|  | 	default.get_hotbar_bg(0, 4.25) | ||||||
|  |  | ||||||
|  | -- | ||||||
|  | -- Node callback functions that are the same for active and inactive claycrafter | ||||||
|  | -- | ||||||
|  |  | ||||||
|  | local function can_dig(pos, player) | ||||||
|  | 	local meta = minetest.get_meta(pos); | ||||||
|  | 	local inv = meta:get_inventory() | ||||||
|  | 	return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") and inv:is_empty("vessels") | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function allow_metadata_inventory_put(pos, listname, index, stack, player) | ||||||
|  | 	if minetest.is_protected(pos, player:get_player_name()) then | ||||||
|  | 		return 0 | ||||||
|  | 	end | ||||||
|  | 	local meta = minetest.get_meta(pos) | ||||||
|  | 	local inv = meta:get_inventory() | ||||||
|  | 	if listname == "fuel" then -- "Water" | ||||||
|  | 		if minetest.get_item_group(stack:get_name(), "h2o") > 0 then | ||||||
|  | 			if inv:is_empty("src") then | ||||||
|  | 				meta:set_string("infotext", "Claycrafter is empty") | ||||||
|  | 			end | ||||||
|  | 			return stack:get_count() | ||||||
|  | 		else | ||||||
|  | 			return 0 | ||||||
|  | 		end | ||||||
|  | 	elseif listname == "src" then | ||||||
|  | 		return stack:get_count() | ||||||
|  | 	elseif listname == "dst" then | ||||||
|  | 		return 0 | ||||||
|  | 	elseif listname == "vessels" then | ||||||
|  | 		return 0 | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) | ||||||
|  | 	local meta = minetest.get_meta(pos) | ||||||
|  | 	local inv = meta:get_inventory() | ||||||
|  | 	local stack = inv:get_stack(from_list, from_index) | ||||||
|  | 	return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function allow_metadata_inventory_take(pos, listname, index, stack, player) | ||||||
|  | 	if minetest.is_protected(pos, player:get_player_name()) then | ||||||
|  | 		return 0 | ||||||
|  | 	end | ||||||
|  | 	return stack:get_count() | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- | ||||||
|  | -- Node definitions | ||||||
|  | -- | ||||||
|  |  | ||||||
|  | minetest.register_node("claycrafter:claycrafter", { | ||||||
|  | 	description = "Claycrafter", | ||||||
|  | 	tiles = { | ||||||
|  | 		"claycrafter_claycrafter_top.png", "claycrafter_claycrafter_bottom.png", | ||||||
|  | 		"claycrafter_claycrafter_side.png", "claycrafter_claycrafter_side.png", | ||||||
|  | 		"claycrafter_claycrafter_back.png", "claycrafter_claycrafter_front.png" | ||||||
|  | 	}, | ||||||
|  | 	paramtype2 = "facedir", | ||||||
|  | 	groups = {choppy = 1, oddly_breakable_by_hand = 1}, | ||||||
|  | 	legacy_facedir_simple = true, | ||||||
|  | 	is_ground_content = false, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	 | ||||||
|  | 	can_dig = can_dig, | ||||||
|  | 	 | ||||||
|  | 	allow_metadata_inventory_put = allow_metadata_inventory_put, | ||||||
|  | 	allow_metadata_inventory_move = allow_metadata_inventory_move, | ||||||
|  | 	allow_metadata_inventory_take = allow_metadata_inventory_take | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_node("claycrafter:claycrafter_active", { | ||||||
|  | 	description = "Claycrafter", | ||||||
|  | 	tiles = { | ||||||
|  | 		"claycrafter_claycrafter_top.png", "claycrafter_claycrafter_bottom.png", | ||||||
|  | 		"claycrafter_claycrafter_side.png", "claycrafter_claycrafter_side.png", | ||||||
|  | 		"claycrafter_claycrafter_side.png", | ||||||
|  | 		{ | ||||||
|  | 			image = "claycrafter_claycrafter_front_active.png", | ||||||
|  | 			backface_culling = false, | ||||||
|  | 			animation = { | ||||||
|  | 				type = "vertical_frames", | ||||||
|  | 				aspect_w = 16, | ||||||
|  | 				aspect_h = 16, | ||||||
|  | 				length = 1.5 | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	}, | ||||||
|  | 	paramtype2 = "facedir", | ||||||
|  | 	light_source = 8, | ||||||
|  | 	drop = "claycrafter:claycrafter", | ||||||
|  | 	groups = {choppy = 1, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1}, | ||||||
|  | 	legacy_facedir_simple = true, | ||||||
|  | 	is_ground_content = false, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	 | ||||||
|  | 	can_dig = can_dig, | ||||||
|  | 	 | ||||||
|  | 	allow_metadata_inventory_put = allow_metadata_inventory_put, | ||||||
|  | 	allow_metadata_inventory_move = allow_metadata_inventory_move, | ||||||
|  | 	allow_metadata_inventory_take = allow_metadata_inventory_take | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | -- | ||||||
|  | -- ABM | ||||||
|  | -- | ||||||
|  |  | ||||||
|  | local function swap_node(pos, name) | ||||||
|  | 	local node = minetest.get_node(pos) | ||||||
|  | 	if node.name == name then | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  | 	node.name = name | ||||||
|  | 	minetest.swap_node(pos, node) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | minetest.register_abm({ | ||||||
|  | 	nodenames = {"claycrafter:claycrafter", "claycrafter:claycrafter_active"}, | ||||||
|  | 	interval = 1.0, | ||||||
|  | 	chance = 1, | ||||||
|  | 	action = function(pos, node, active_object_count, active_object_count_wider) | ||||||
|  | 		-- | ||||||
|  | 		-- Inizialize metadata | ||||||
|  | 		-- | ||||||
|  | 		local meta = minetest.get_meta(pos) | ||||||
|  | 		local fuel_time = meta:get_float("fuel_time") or 0 | ||||||
|  | 		local src_time = meta:get_float("src_time") or 0 | ||||||
|  | 		local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 | ||||||
|  | 		 | ||||||
|  | 		-- | ||||||
|  | 		-- Inizialize inventory | ||||||
|  | 		-- | ||||||
|  | 		local inv = meta:get_inventory() | ||||||
|  | 		for listname, size in pairs({ | ||||||
|  | 				src = 1, | ||||||
|  | 				fuel = 1, | ||||||
|  | 				dst = 6, | ||||||
|  | 				vessels = 4 | ||||||
|  | 		}) do | ||||||
|  | 			if inv:get_size(listname) ~= size then | ||||||
|  | 				inv:set_size(listname, size) | ||||||
|  | 			end | ||||||
|  | 		end | ||||||
|  | 		local srclist = inv:get_list("src") | ||||||
|  | 		local fuellist = inv:get_list("fuel") | ||||||
|  | 		local dstlist = inv:get_list("dst") | ||||||
|  | 		 | ||||||
|  | 		-- | ||||||
|  | 		-- Cooking | ||||||
|  | 		-- | ||||||
|  | 		local compressed_dirt = "claycrafter:compressed_dirt" | ||||||
|  | 		if minetest.get_modpath("moreblocks") then | ||||||
|  | 			compressed_dirt = "moreblocks:dirt_compressed" | ||||||
|  | 		end | ||||||
|  | 		local cooktime = minetest.get_item_group(inv:get_stack("fuel", 1):get_name(), "h2o") | ||||||
|  | 		local cookable = true | ||||||
|  | 		if inv:get_stack("src", 1):get_name() ~= compressed_dirt then | ||||||
|  | 			cookable = false | ||||||
|  | 		end | ||||||
|  | 		 | ||||||
|  | 		-- Check if we have enough fuel to burn | ||||||
|  | 		if fuel_time < fuel_totaltime then | ||||||
|  | 			-- The claycrafter is currently active and has enough fuel | ||||||
|  | 			fuel_time = fuel_time + 1 | ||||||
|  | 			 | ||||||
|  | 			-- If there is a cookable item then check if it is ready yet | ||||||
|  | 			if cookable then | ||||||
|  | 				src_time = src_time + 1 | ||||||
|  | 				if src_time >= cooktime then | ||||||
|  | 					-- Place result in dst list if possible | ||||||
|  | 					if inv:room_for_item("dst", ItemStack({name = "default:clay", count = 4})) | ||||||
|  | 					and inv:room_for_item("vessels", ItemStack({name = "vessels:drinking_glass"})) | ||||||
|  | 					then | ||||||
|  | 						inv:add_item("dst", {name = "default:clay", count = 4}) | ||||||
|  | 						inv:remove_item("src", inv:get_stack("src", 1):get_name()) | ||||||
|  | 						src_time = 0 | ||||||
|  | 					else | ||||||
|  | 						swap_node(pos, "claycrafter:claycrafter") | ||||||
|  | 					end | ||||||
|  | 				end | ||||||
|  | 			end | ||||||
|  | 		else | ||||||
|  | 			-- Furnace ran out of fuel | ||||||
|  | 			if cookable and inv:room_for_item("dst", ItemStack({name = "default:clay", count = 4})) then | ||||||
|  | 				-- We need to get new fuel | ||||||
|  | 				local fueltime = minetest.get_item_group(inv:get_stack("fuel", 1):get_name(), "h2o") | ||||||
|  | 				 | ||||||
|  | 				if fueltime == 0 then | ||||||
|  | 					-- No valid fuel in fuel list | ||||||
|  | 					fuel_totaltime = 0 | ||||||
|  | 					fuel_time = 0 | ||||||
|  | 					src_time = 0 | ||||||
|  | 				else | ||||||
|  | 					-- Take fuel from fuel list | ||||||
|  | 					if inv:room_for_item("vessels", ItemStack({name = "vessels:drinking_glass"})) | ||||||
|  | 					then | ||||||
|  | 						inv:remove_item("fuel", inv:get_stack("fuel", 1):get_name()) | ||||||
|  | 						inv:add_item("vessels", {name = "vessels:drinking_glass"}) | ||||||
|  | 					else  | ||||||
|  | 						swap_node(pos, "claycrafter:claycrafter_active") | ||||||
|  | 					end | ||||||
|  | 					fuel_totaltime = fueltime | ||||||
|  | 					fuel_time = 0 | ||||||
|  | 					 | ||||||
|  | 				end | ||||||
|  | 			else | ||||||
|  | 				-- We don't need to get new fuel since there is no cookable item | ||||||
|  | 				fuel_totaltime = 0 | ||||||
|  | 				fuel_time = 0 | ||||||
|  | 				src_time = 0 | ||||||
|  | 			end | ||||||
|  | 		end | ||||||
|  | 		 | ||||||
|  | 		-- | ||||||
|  | 		-- Update formspec, infotext and node | ||||||
|  | 		-- | ||||||
|  | 		local formspec = inactive_formspec | ||||||
|  | 		local item_state = "" | ||||||
|  | 		local item_percent = 0 | ||||||
|  | 		if cookable then | ||||||
|  | 			item_percent =  math.floor(src_time / cooktime * 100) | ||||||
|  | 			item_state = "Yes" | ||||||
|  | 		else | ||||||
|  | 			if srclist[1]:is_empty() then | ||||||
|  | 				item_state = "Empty" | ||||||
|  | 			else | ||||||
|  | 				item_state = "No water" | ||||||
|  | 			end | ||||||
|  | 		end | ||||||
|  | 		 | ||||||
|  | 		local fuel_state = "Empty" | ||||||
|  | 		local active = "inactive " | ||||||
|  | 		if fuel_time <= fuel_totaltime and fuel_totaltime ~= 0 then | ||||||
|  | 			active = "active " | ||||||
|  | 			local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) | ||||||
|  | 			fuel_state = "In use" | ||||||
|  | 			formspec = active_formspec(fuel_percent, item_percent) | ||||||
|  | 			swap_node(pos, "claycrafter:claycrafter_active") | ||||||
|  | 		else | ||||||
|  | 			if not fuellist[1]:is_empty() then | ||||||
|  | 				fuel_state = "Yes" | ||||||
|  | 			end | ||||||
|  | 			swap_node(pos, "claycrafter:claycrafter") | ||||||
|  | 		end | ||||||
|  | 		 | ||||||
|  | 		local infotext =  "Claycrafter " .. active .. "(Dirt: " .. item_state .. "; Water: " .. fuel_state .. ")" | ||||||
|  |  | ||||||
|  | 		-- | ||||||
|  | 		-- Set meta values | ||||||
|  | 		-- | ||||||
|  | 		meta:set_float("fuel_totaltime", fuel_totaltime) | ||||||
|  | 		meta:set_float("fuel_time", fuel_time) | ||||||
|  | 		meta:set_float("src_time", src_time) | ||||||
|  | 		meta:set_string("formspec", formspec) | ||||||
|  | 		meta:set_string("infotext", infotext) | ||||||
|  | 	end | ||||||
|  | }) | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| vessels |  | ||||||
| default |  | ||||||
| bucket |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| Craft clay out of compressed dirt. |  | ||||||
							
								
								
									
										61
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						| @@ -1,58 +1,9 @@ | |||||||
| --the claycrafter is supposed to be some sort of furnace | local modpath = minetest.get_modpath("claycrafter") | ||||||
| --that uses compressed dirt and glasses of water to make clay, it's not needed to use the mod currently. |  | ||||||
|   |  | ||||||
| minetest.register_node("claycrafter:claycrafter", { |  | ||||||
| 		description = "Clay crafter", |  | ||||||
| 		tiles = { |  | ||||||
| 				"claycrafter_claycrafter_up.png", |  | ||||||
| 				"claycrafter_claycrafter_down.png", |  | ||||||
| 				"claycrafter_claycrafter_side.png", |  | ||||||
| 				"claycrafter_claycrafter_side.png", |  | ||||||
| 				"claycrafter_claycrafter_back.png", |  | ||||||
| 				"claycrafter_claycrafter_front.png", |  | ||||||
| 				}, |  | ||||||
| 		groups = {oddly_breakable_by_hand = 1, choppy = 1} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| --Compressed dirt | -- TODO: Investigate function to automatically get mod name. | ||||||
| minetest.register_node("claycrafter:compressed_dirt", { |  | ||||||
| 		description = "Compressed Dirt", |  | ||||||
| 		tiles = {"claycrafter_compressed_dirt.png"}, |  | ||||||
| 		groups = {crumbly = 1, oddly_breakable_by_hand = 1} |  | ||||||
| }) |  | ||||||
| minetest.register_craft({ |  | ||||||
| 		output = "claycrafter:compressed_dirt", |  | ||||||
| 		recipe = { |  | ||||||
| 				{"default:dirt", "default:dirt", "default:dirt"}, |  | ||||||
| 				{"default:dirt", "default:dirt", "default:dirt"}, |  | ||||||
| 				{"default:dirt", "default:dirt", "default:dirt"}, |  | ||||||
| 		} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| --Glass of water | dofile(modpath .. "/items.lua") | ||||||
| minetest.register_craftitem("claycrafter:glass_of_water", { | dofile(modpath .. "/recipes.lua") | ||||||
| 		description = "Glass of Water", | dofile(modpath .. "/claycrafter.lua") | ||||||
| 		inventory_image = "claycrafter_glass_of_water.png" |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.log("action", "[claycrafter] loaded.") | ||||||
| 		output = "claycrafter:glass_of_water 8", |  | ||||||
| 		recipe = { |  | ||||||
| 				{"vessels:drinking_glass", "vessels:drinking_glass", "vessels:drinking_glass"}, |  | ||||||
| 				{"vessels:drinking_glass", "bucket:bucket_water", "vessels:drinking_glass"},  |  | ||||||
| 				{"vessels:drinking_glass", "vessels:drinking_glass", "vessels:drinking_glass"} |  | ||||||
| 				}, |  | ||||||
| 		replacements = { |  | ||||||
| 				{"bucket:bucket_water", "bucket:bucket_empty"}, |  | ||||||
| 		} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| --Craft the clay |  | ||||||
| minetest.register_craft({ |  | ||||||
| 		type = "shapeless", |  | ||||||
| 		output = "default:clay 4", |  | ||||||
| 		recipe = {"claycrafter:compressed_dirt", "claycrafter:glass_of_water"}, |  | ||||||
| 		replacements = { |  | ||||||
| 				{"claycrafter:glass_of_water", "vessels:drinking_glass"}, |  | ||||||
| 		} |  | ||||||
| }) |  | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								items.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,25 @@ | |||||||
|  | if minetest.get_modpath("moreblocks") then | ||||||
|  | 	minetest.register_alias("claycrafter:compressed_dirt", "moreblocks:dirt_compressed") | ||||||
|  | else | ||||||
|  | 	minetest.register_node("claycrafter:compressed_dirt", { | ||||||
|  | 		description = "Compressed Dirt", | ||||||
|  | 		tiles = {"claycrafter_compressed_dirt.png"}, | ||||||
|  | 		groups = {crumbly = 1, oddly_breakable_by_hand = 1, soil = 1, cracky =1} | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | minetest.register_node("claycrafter:glass_of_water", { | ||||||
|  | 	description = ("Glass of Water"), | ||||||
|  | 	drawtype = "plantlike", | ||||||
|  | 	tiles = {"claycrafter_glass_of_water.png"}, | ||||||
|  | 	inventory_image = "claycrafter_glass_of_water_inv.png", | ||||||
|  | 	wield_image = "claycrafter_glass_of_water.png", | ||||||
|  | 	paramtype = "light", | ||||||
|  | 	is_ground_content = false, | ||||||
|  | 	walkable = false, | ||||||
|  | 	sunlight_propagates = true, | ||||||
|  | 	selection_box = {type = "fixed",fixed = {-0.25, -0.5, -0.25, 0.25, 0, 0.25}	}, | ||||||
|  | 	groups = {vessel = 1, dig_immediate = 3, attached_node = 1, h2o = 3}, -- How much time to convert 1 compressed dirt to 4 clay | ||||||
|  | 	on_use = minetest.item_eat(0,"vessels:drinking_glass"),	 | ||||||
|  | 	sounds = default.node_sound_glass_defaults(), | ||||||
|  | }) | ||||||
							
								
								
									
										5
									
								
								mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | name = claycrafter | ||||||
|  | description = This mod introduces the Claycrafter, which converts Compressed Dirt to Clay using Glasses of Water. | ||||||
|  | depends = vessels, default, bucket | ||||||
|  | optional_depends = moreblocks | ||||||
|  | author = Dragonop | ||||||
							
								
								
									
										36
									
								
								recipes.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,36 @@ | |||||||
|  | if not minetest.get_modpath("moreblocks") then | ||||||
|  | 	minetest.register_craft({ | ||||||
|  | 		output = "claycrafter:compressed_dirt", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:dirt", "default:dirt", "default:dirt"}, | ||||||
|  | 			{"default:dirt", "default:dirt", "default:dirt"}, | ||||||
|  | 			{"default:dirt", "default:dirt", "default:dirt"} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | minetest.register_craft({ | ||||||
|  | 		output = "default:dirt 9", | ||||||
|  | 		recipe = {{"claycrafter:compressed_dirt"}} | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_craft({ | ||||||
|  | 		output = "claycrafter:glass_of_water 8", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"vessels:drinking_glass", "vessels:drinking_glass", "vessels:drinking_glass"}, | ||||||
|  | 			{"vessels:drinking_glass", "bucket:bucket_water", "vessels:drinking_glass"},  | ||||||
|  | 			{"vessels:drinking_glass", "vessels:drinking_glass", "vessels:drinking_glass"} | ||||||
|  | 		}, | ||||||
|  | 		replacements = { | ||||||
|  | 			{"bucket:bucket_water", "bucket:bucket_empty"}, | ||||||
|  | 		} | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_craft({ | ||||||
|  | 		output = "claycrafter:claycrafter", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:wood", "default:steel_ingot", "group:wood"}, | ||||||
|  | 			{"group:wood", "default:glass", "group:wood"}, | ||||||
|  | 			{"default:stick", "bucket:bucket_water", "default:stick"} | ||||||
|  | 		} | ||||||
|  | }) | ||||||
							
								
								
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
								
							
							
						
						| Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_back.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 554 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 583 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_front.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 526 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_front_active.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1017 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_side.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 612 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 596 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_water_bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 898 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_water_fg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 178 B | 
| Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 377 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_glass_of_water_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 396 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/gui_claycrafter_arrow_bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 324 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/gui_claycrafter_arrow_fg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 251 B |