Compare commits
	
		
			72 Commits
		
	
	
		
			Removing-c
			...
			313003745c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 313003745c | |||
|  | 5f495d4de3 | ||
|  | d1415aebff | ||
|  | 84008fa3e2 | ||
| a658381feb | |||
| cbbc225c1f | |||
| 7b1423e8cd | |||
|  | 69330d88bc | ||
|  | 47a5202d82 | ||
|  | 8b6c5f0cad | ||
|  | 8e33df0067 | ||
|  | 83457a1f4a | ||
|  | b56b79f8e1 | ||
|  | d056566409 | ||
|  | 2ab701933d | ||
|  | 86c0626956 | ||
|  | 5c36225853 | ||
|  | 54fc2110eb | ||
|  | 367fbc6f4a | ||
| 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 | ||
|  | a16266c9e0 | ||
|  | 45a51073ee | ||
|  | 156c4029ca | ||
|  | af5e4dc082 | ||
|  | 2e86f87e09 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | ||||
| *.swp | ||||
							
								
								
									
										42
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,29 +1,31 @@ | ||||
| # claycrafter | ||||
| Minetest clay crafter mod. Adds a way to craft clay out of compressed dirt. | ||||
| Minetest clay crafter mod.  | ||||
| Adds a way for players to obtain clay other than mining, out of a common material: dirt. It adds three new nodes: | ||||
|  | ||||
| Dependencies:  | ||||
| -Default | ||||
| -Vessels | ||||
| -Bucket | ||||
| **Claycrafter:** Used to convert compressed dirt into clay. | ||||
|  | ||||
| License for Code | ||||
| **Compressed dirt:** Just 9 dirt, compressed, useful for saving storage space, too!   | ||||
| (Not present if moreblocks is installed, use moreblocks:dirt_compressed instead) | ||||
|  | ||||
| Copyright (C) 2010-2013 Dragonop <joaco-mono@hotmail.com> | ||||
| **Glass of water:** Used as fuel for the Claycrafter. Placeable. | ||||
|  | ||||
| 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.1 of the License, or | ||||
| (at your option) any later version. | ||||
| For extra info look at the [Forum Thread](https://forum.minetest.net/viewtopic.php?f=11&t=13992) | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| 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 | ||||
| with this program; if not, write to the Free Software Foundation, Inc., | ||||
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
| ##### Dependencies: | ||||
| Default   | ||||
| Vessels   | ||||
|  | ||||
| License for Textures, Models and Sounds | ||||
| ##### Optional dependencies:   | ||||
| moreblocks   | ||||
|  | ||||
| CC-BY-SA 3.0 UNPORTED. Created by Dragonop | ||||
| ##### License for Code   | ||||
| Dragonop (LGPLv3)   | ||||
|  | ||||
| ##### License for Media   | ||||
| Textures created or modified by Dragonop (CC-BY-SA 4.0)   | ||||
| Glass of water derived from the Drinking Glass texture from the vessels mod made by Thomas-S which is distributed as (CC-BY-SA 3.0)   | ||||
| Compressed dirt derived from the minetest's game default dirt texture made by Neuromancer and later modified by random-geek which is distributed as (CC-BY-SA 3.0)   | ||||
| Arrow textures by Blockmen, from minetest game's default, distributed under (CC-BY-SA 3.0)   | ||||
|  | ||||
| ##### Special thanks to everamzah | ||||
|   | ||||
							
								
								
									
										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. | ||||
							
								
								
									
										45
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						| @@ -1,43 +1,8 @@ | ||||
| --Compressed dirt | ||||
| 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"}, | ||||
| 		} | ||||
| }) | ||||
| local modpath = minetest.get_modpath("claycrafter") | ||||
|  | ||||
| -- TODO: Investigate function to automatically get mod name. | ||||
|  | ||||
| --Glass of water | ||||
| minetest.register_craftitem("claycrafter:glass_of_water", { | ||||
| 		description = "Glass of Water", | ||||
| 		inventory_image = "claycrafter_glass_of_water.png" | ||||
| }) | ||||
| dofile(modpath .. "/items.lua") | ||||
| dofile(modpath .. "/claycrafter.lua") | ||||
|  | ||||
| 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"}, | ||||
| 		} | ||||
| }) | ||||
|  | ||||
| --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"}, | ||||
| 		} | ||||
| }) | ||||
| minetest.log("action", "[claycrafter] loaded.") | ||||
|   | ||||
							
								
								
									
										75
									
								
								items.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,75 @@ | ||||
| --compressed dirt | ||||
| local moreblocks = minetest.get_modpath("moreblocks") | ||||
|  | ||||
| if moreblocks ~= nil then | ||||
| 	minetest.register_alias("claycrafter:compressed_dirt","moreblocks:dirt_compressed") | ||||
| else | ||||
| 	minetest.register_craft({ | ||||
| 			output = "claycrafter:compressed_dirt", | ||||
| 			recipe = { | ||||
| 				{"group:dirt", "group:dirt", "group:dirt"}, | ||||
| 				{"group:dirt", "group:dirt", "group:dirt"}, | ||||
| 				{"group:dirt", "group:dirt", "group:dirt"} | ||||
| 			} | ||||
| 	}) | ||||
| 	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}, | ||||
| 		sounds = default.node_sound_dirt_defaults(), | ||||
| 	}) | ||||
| 	minetest.register_craft({ | ||||
| 		output = "default:dirt 9", | ||||
| 		recipe = {{"claycrafter:compressed_dirt"}} | ||||
| 	}) | ||||
| 	minetest.register_alias("moreblocks:dirt_compressed","claycrafter:compressed_dirt") | ||||
| end | ||||
|  | ||||
| --nodes | ||||
| 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", | ||||
| 	use_texture_alpha = "blend", | ||||
| 	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(), | ||||
| }) | ||||
|  | ||||
| --recipes | ||||
| minetest.register_craft({ | ||||
| 		output = "claycrafter:glass_of_water 8", | ||||
| 		recipe = { | ||||
| 			{"group:vessel", "group:vessel", "group:vessel"}, | ||||
| 			{"group:vessel", "group:water_bucket", "group:vessel"}, | ||||
| 			{"group:vessel", "group:vessel", "group:vessel"} | ||||
| 		}, | ||||
| 		replacements = { | ||||
| 			{"group:water_bucket", "bucket:bucket_empty"}, | ||||
| 		} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 		output = "claycrafter:glass_of_water 8", | ||||
| 		recipe = { | ||||
| 			{"group:vessel", "group:vessel", "group:vessel"}, | ||||
| 			{"group:vessel", "group:water", "group:vessel"}, | ||||
| 			{"group:vessel", "group:vessel", "group:vessel"} | ||||
| 		} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 		output = "claycrafter:claycrafter", | ||||
| 		recipe = { | ||||
| 			{"group:wood", "default:steel_ingot", "group:wood"}, | ||||
| 			{"group:wood", "group:glass", "group:wood"}, | ||||
| 			{"group:stick", "group:water_bucket", "group:stick"} | ||||
| 		} | ||||
| }) | ||||
							
								
								
									
										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 | ||||
| optional_depends = moreblocks | ||||
| author = Dragonop | ||||
							
								
								
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 12 KiB | 
| Before Width: | Height: | Size: 515 B After Width: | Height: | Size: 554 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 583 B | 
| Before Width: | Height: | Size: 594 B | 
| Before Width: | Height: | Size: 655 B After Width: | Height: | Size: 526 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_front_active.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1017 B | 
| Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 612 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/claycrafter_claycrafter_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 596 B | 
| Before Width: | Height: | Size: 554 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 |