forked from mtcontrib/food
		
	mymobs, aerophonics support
This commit is contained in:
		| @@ -15,14 +15,8 @@ print ("Food [Master] - Loading Hot") | ||||
|  | ||||
| -----------------------------Coffee----------------------------- | ||||
|  | ||||
| minetest.register_craftitem("food:coffeebean",{ | ||||
| 	description = "Raw Coffee Bean", | ||||
| 	tiles = {"food_coffee.png"}, | ||||
| 	inventory_image = "food_coffee.png", | ||||
| }) | ||||
|  | ||||
| minetest.register_craftitem("food:coffeebean_cooked",{ | ||||
| 	description = "Cooked Coffee Bean", | ||||
| 	description = "Roasted Coffee Beans", | ||||
| 	tiles = {"food_coffee_cooked.png"}, | ||||
| 	inventory_image = "food_coffee_cooked.png", | ||||
| }) | ||||
| @@ -34,15 +28,6 @@ minetest.register_craftitem("food:coffee", { | ||||
| 	groups={food=1}, | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = '"food:coffeebean" 1', | ||||
| 	recipe = { | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = '"food:coffee" 1', | ||||
| 	recipe = { | ||||
| @@ -52,8 +37,18 @@ minetest.register_craft({ | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = '"food:coffee" 1', | ||||
| 	recipe = { | ||||
| 		{'""','"food:coffeebean_cooked"','""'}, | ||||
| 		{'""','"food:coffeebean_cooked"','""'}, | ||||
| 		{'""','"food:mug"','""'}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	type = "cooking", | ||||
| 	output = "food:coffeebean_cooked", | ||||
| 	recipe = "food:coffeebean", | ||||
| 	cooktime = 5, | ||||
| }) | ||||
|   | ||||
							
								
								
									
										47
									
								
								support.lua
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								support.lua
									
									
									
									
									
								
							| @@ -27,12 +27,20 @@ end | ||||
| print "Food [Support] - Vegetables and Fruit" | ||||
| print "Food [Support] -  > Bread and Flour" | ||||
|  | ||||
|  | ||||
| node_implement("farming","farming:flour","food:flour",function() | ||||
| node_implement("plantlib","plantlib:wheat","food:wheat",function() | ||||
|  | ||||
| end) | ||||
| minetest.register_craftitem("food:flour", { | ||||
| 	description = "Flour", | ||||
| 	inventory_image = "farming_flour.png", | ||||
| }) | ||||
| minetest.register_craft({ | ||||
| 	output = '"food:flour" 1', | ||||
| 	recipe = { | ||||
| 		{"food:wheat"}, | ||||
| 	} | ||||
| }) | ||||
| end) | ||||
|  | ||||
| node_implement("farming","farming:bread","food:bread",function() | ||||
| @@ -77,17 +85,20 @@ end) | ||||
| print "Food [Support] -  > Strawberry" | ||||
|  | ||||
| node_implement("farming_plus","farming_plus:strawberry_item","food:strawberry",function() | ||||
| node_implement("plantlib","plantlib:strawberry","food:strawberry",function() | ||||
| minetest.register_craftitem("food:strawberry", { | ||||
| 	description = "Strawberry", | ||||
| 	inventory_image = "farming_strawberry.png", | ||||
| 	on_use = minetest.item_eat(2), | ||||
| }) | ||||
| end) | ||||
| end) | ||||
|  | ||||
| print "Food [Support] -  > Carrot" | ||||
|  | ||||
| node_implement("farming_plus","farming_plus:carrot_item","food:carrot",function() | ||||
| node_implement("docfarming","docfarming:carrot","food:carrot",function() | ||||
| node_implement("plantlib","plantlib:carrot","food:carrot",function() | ||||
| minetest.register_craftitem("food:carrot", { | ||||
| 	description = "Carrot", | ||||
| 	inventory_image = "farming_carrot.png", | ||||
| @@ -95,6 +106,7 @@ minetest.register_craftitem("food:carrot", { | ||||
| }) | ||||
| end) | ||||
| end) | ||||
| end) | ||||
|  | ||||
|  | ||||
| print "Food [Support] -  > Rhubarb" | ||||
| @@ -133,12 +145,14 @@ end) | ||||
|  | ||||
| print "Food [Support] -  > Tomato" | ||||
| node_implement("farming_plus","farming_plus:tomato_item","food:tomato",function() | ||||
| node_implement("plantlib","plantlib:tomato","food:tomato",function() | ||||
| minetest.register_craftitem("food:tomato", { | ||||
| 	description = "Tomato", | ||||
| 	inventory_image = "farming_strawberry.png", | ||||
| 	on_use = minetest.item_eat(2), | ||||
| }) | ||||
| end) | ||||
| end) | ||||
|  | ||||
| print "Food [Support] -  > Potato" | ||||
| node_implement("docfarming","docfarming:potato","food:potato",function() | ||||
| @@ -156,6 +170,24 @@ minetest.register_craftitem("food:potato_baked", { | ||||
| }) | ||||
| end) | ||||
|  | ||||
| print "Food [Support] -  > Coffee" | ||||
| node_implement("plantlib","plantlib:coffee","food:coffeebean",function() | ||||
| minetest.register_craftitem("food:coffeebean",{ | ||||
| 	description = "Raw Coffee Bean", | ||||
| 	tiles = {"food_coffee.png"}, | ||||
| 	inventory_image = "food_coffee.png", | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = '"food:coffeebean" 1', | ||||
| 	recipe = { | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 		{'""','"default:dry_shrub"','""'}, | ||||
| 	} | ||||
| }) | ||||
| end) | ||||
|  | ||||
| print "Food [Support] - Meats and Animal Produce" | ||||
|  | ||||
| print "Food [Support] -  > Raw Meat" | ||||
| @@ -186,6 +218,17 @@ minetest.register_craft({ | ||||
| }) | ||||
| end) | ||||
|  | ||||
| node_implement("my_mobs","my_mobs:rabbit_cooked","food:rabbit",function() | ||||
| node_implement("mobs","mobs:meat","food:rabbit",function() | ||||
| minetest.register_craftitem("food:rabbit", { | ||||
| 	description = "Cooked Rabbit", | ||||
| 	inventory_image = "my_mobs_cooked_rabbit.png", | ||||
| 	 | ||||
| 	on_use = minetest.item_eat(5), | ||||
| }) | ||||
| end) | ||||
| end) | ||||
|  | ||||
|  | ||||
| print "Food [Support] -  > Egg" | ||||
| node_implement("animalmaterials","animalmaterials:egg","food:egg",function() | ||||
| @@ -198,6 +241,7 @@ end) | ||||
|  | ||||
| print "Food [Support] -  > Milk" | ||||
| node_implement("animalmaterials","animalmaterials:milk","food:milk",function() | ||||
| node_implement("my_mobs","my_mobs:milk_glass_cup","food:milk",function() | ||||
|   minetest.register_craftitem("food:milk", { | ||||
| 	description = "Milk", | ||||
| 	image = "animalmaterials_milk.png", | ||||
| @@ -206,6 +250,7 @@ node_implement("animalmaterials","animalmaterials:milk","food:milk",function() | ||||
| 	stack_max=10 | ||||
| }) | ||||
| end) | ||||
| end) | ||||
|  | ||||
| print "Food [Support] - Vessels and Cutlery" | ||||
|  | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 772 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/my_mobs_cooked_rabbit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/my_mobs_cooked_rabbit.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 271 B | 
							
								
								
									
										197
									
								
								tools/oven.lua
									
									
									
									
									
								
							
							
						
						
									
										197
									
								
								tools/oven.lua
									
									
									
									
									
								
							| @@ -1,197 +0,0 @@ | ||||
| -- RUBENFOOD MOD | ||||
| -- A mod written by rubenwardy that adds | ||||
| -- food to the minetest game | ||||
| -- ====================================== | ||||
| -- >> rubenfood/tools/oven.lua | ||||
| -- adds diary products | ||||
| -- ====================================== | ||||
| -- todo [regis-furnace] Rings | ||||
| -- [regis-furnace] Oven | ||||
| -- ====================================== | ||||
|  | ||||
| local oven_inactive_formspec = | ||||
| 	"invsize[8,9;]".. | ||||
| 	"image[2,2;1,1;default_furnace_fire_bg.png]".. | ||||
| 	"list[current_name;fuel;2,3;1,1;]".. | ||||
| 	"list[current_name;src;2,1;1,1;]".. | ||||
| 	"list[current_name;dst;5,1;2,2;]".. | ||||
| 	"list[current_player;main;0,5;8,4;]" | ||||
|  | ||||
| minetest.register_node("food:oven", { | ||||
| 	description = "Oven", | ||||
| 	tiles = {"food_oven_top.png", "food_oven_bottom.png", "food_oven_side.png", | ||||
| 		"food_oven_side.png", "food_oven_side.png", "food_oven_front.png"}, | ||||
| 	paramtype2 = "facedir", | ||||
| 	groups = {cracky=2}, | ||||
| 	legacy_facedir_simple = true, | ||||
| 	sounds = default.node_sound_stone_defaults(), | ||||
| 	on_construct = function(pos) | ||||
| 		local meta = minetest.env:get_meta(pos) | ||||
| 		meta:set_string("formspec", oven_inactive_formspec) | ||||
| 		meta:set_string("infotext", "Oven") | ||||
| 		local inv = meta:get_inventory() | ||||
| 		inv:set_size("fuel", 1) | ||||
| 		inv:set_size("src", 1) | ||||
| 		inv:set_size("dst", 4) | ||||
| 	end, | ||||
| 	can_dig = function(pos,player) | ||||
| 		local meta = minetest.env:get_meta(pos); | ||||
| 		local inv = meta:get_inventory() | ||||
| 		if not inv:is_empty("fuel") then | ||||
| 			return false | ||||
| 		elseif not inv:is_empty("dst") then | ||||
| 			return false | ||||
| 		elseif not inv:is_empty("src") then | ||||
| 			return false | ||||
| 		end | ||||
| 		return true | ||||
| 	end, | ||||
| }) | ||||
|  | ||||
| minetest.register_node("food:oven_active", { | ||||
| 	description = "Oven", | ||||
| 	tiles = {"food_oven_top.png", "food_oven_bottom.png", "food_oven_side.png", | ||||
| 		"food_oven_side.png", "food_oven_side.png", "food_oven_front_active.png"}, | ||||
| 	paramtype2 = "facedir", | ||||
| 	light_source = 8, | ||||
| 	drop = "food:furnace", | ||||
| 	groups = {cracky=2, not_in_creative_inventory=1}, | ||||
| 	legacy_facedir_simple = true, | ||||
| 	sounds = default.node_sound_stone_defaults(), | ||||
| 	on_construct = function(pos) | ||||
| 		local meta = minetest.env:get_meta(pos) | ||||
| 		meta:set_string("formspec", oven_inactive_formspec) | ||||
| 		meta:set_string("infotext", "Oven"); | ||||
| 		local inv = meta:get_inventory() | ||||
| 		inv:set_size("fuel", 1) | ||||
| 		inv:set_size("src", 1) | ||||
| 		inv:set_size("dst", 4) | ||||
| 	end, | ||||
| 	can_dig = function(pos,player) | ||||
| 		local meta = minetest.env:get_meta(pos); | ||||
| 		local inv = meta:get_inventory() | ||||
| 		if not inv:is_empty("fuel") then | ||||
| 			return false | ||||
| 		elseif not inv:is_empty("dst") then | ||||
| 			return false | ||||
| 		elseif not inv:is_empty("src") then | ||||
| 			return false | ||||
| 		end | ||||
| 		return true | ||||
| 	end, | ||||
| }) | ||||
|  | ||||
| function hacky_swap_node(pos,name) | ||||
| 	local node = minetest.env:get_node(pos) | ||||
| 	local meta = minetest.env:get_meta(pos) | ||||
| 	local meta0 = meta:to_table() | ||||
| 	if node.name == name then | ||||
| 		return | ||||
| 	end | ||||
| 	node.name = name | ||||
| 	local meta0 = meta:to_table() | ||||
| 	minetest.env:set_node(pos,node) | ||||
| 	meta = minetest.env:get_meta(pos) | ||||
| 	meta:from_table(meta0) | ||||
| end | ||||
|  | ||||
| minetest.register_abm({ | ||||
| 	nodenames = {"food:oven","food:oven_active"}, | ||||
| 	interval = 1.0, | ||||
| 	chance = 1, | ||||
| 	action = function(pos, node, active_object_count, active_object_count_wider) | ||||
| 		local meta = minetest.env:get_meta(pos) | ||||
| 		for i, name in ipairs({ | ||||
| 				"fuel_totaltime", | ||||
| 				"fuel_time", | ||||
| 				"src_totaltime", | ||||
| 				"src_time" | ||||
| 		}) do | ||||
| 			if meta:get_string(name) == "" then | ||||
| 				meta:set_float(name, 0.0) | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		local inv = meta:get_inventory() | ||||
|  | ||||
| 		local srclist = inv:get_list("src") | ||||
| 		local cooked = nil | ||||
| 		 | ||||
| 		if srclist then | ||||
| 			cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) | ||||
| 		end | ||||
| 		 | ||||
| 		local was_active = false | ||||
| 		 | ||||
| 		if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then | ||||
| 			was_active = true | ||||
| 			meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) | ||||
| 			meta:set_float("src_time", meta:get_float("src_time") + 1) | ||||
| 			if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then | ||||
| 				-- check if there's room for output in "dst" list | ||||
| 				if inv:room_for_item("dst",cooked.item) then | ||||
| 					-- Put result in "dst" list | ||||
| 					inv:add_item("dst", cooked.item) | ||||
| 					-- take stuff from "src" list | ||||
| 					srcstack = inv:get_stack("src", 1) | ||||
| 					srcstack:take_item() | ||||
| 					inv:set_stack("src", 1, srcstack) | ||||
| 				else | ||||
| 					--print("Could not insert '"..cooked.item.."'") | ||||
| 				end | ||||
| 				meta:set_string("src_time", 0) | ||||
| 			end | ||||
| 		end | ||||
| 		 | ||||
| 		if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then | ||||
| 			local percent = math.floor(meta:get_float("fuel_time") / | ||||
| 					meta:get_float("fuel_totaltime") * 100) | ||||
| 			meta:set_string("infotext","Oven active: "..percent.."%") | ||||
| 			hacky_swap_node(pos,"food:oven_active") | ||||
| 			meta:set_string("formspec", | ||||
| 				"invsize[8,9;]".. | ||||
| 				"image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. | ||||
| 						(100-percent)..":default_furnace_fire_fg.png]".. | ||||
| 				"list[current_name;fuel;2,3;1,1;]".. | ||||
| 				"list[current_name;src;2,1;1,1;]".. | ||||
| 				"list[current_name;dst;5,1;2,2;]".. | ||||
| 				"list[current_player;main;0,5;8,4;]") | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		local fuel = nil | ||||
| 		local cooked = nil | ||||
| 		local fuellist = inv:get_list("fuel") | ||||
| 		local srclist = inv:get_list("src") | ||||
| 		 | ||||
| 		if srclist then | ||||
| 			cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) | ||||
| 		end | ||||
| 		if fuellist then | ||||
| 			fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) | ||||
| 		end | ||||
|  | ||||
| 		if fuel.time <= 0 then | ||||
| 			meta:set_string("infotext","Oven is out of fuel") | ||||
| 			hacky_swap_node(pos,"food:oven") | ||||
| 			meta:set_string("formspec", oven_inactive_formspec) | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		if cooked.item:is_empty() then | ||||
| 			if was_active then | ||||
| 				meta:set_string("infotext","Oven is empty") | ||||
| 				hacky_swap_node(pos,"food:oven") | ||||
| 				meta:set_string("formspec", oven_inactive_formspec) | ||||
| 			end | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		meta:set_string("fuel_totaltime", fuel.time) | ||||
| 		meta:set_string("fuel_time", 0) | ||||
| 		 | ||||
| 		local stack = inv:get_stack("fuel", 1) | ||||
| 		stack:take_item() | ||||
| 		inv:set_stack("fuel", 1, stack) | ||||
| 	end, | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user