mirror of
				https://github.com/rubenwardy/food.git
				synced 2025-10-31 10:55:21 +01:00 
			
		
		
		
	Module based
This commit is contained in:
		
							
								
								
									
										143
									
								
								api.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								api.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,143 @@ | |||||||
|  |  -- FOOD MOD | ||||||
|  | -- A mod written by rubenwardy that adds | ||||||
|  | -- food to the minetest game | ||||||
|  | -- ===================================== | ||||||
|  | -- >> food/api.lua | ||||||
|  | -- The supporting api for the mod | ||||||
|  | -- ===================================== | ||||||
|  |  | ||||||
|  | -- Boilerplate to support localized strings if intllib mod is installed. | ||||||
|  | S = 0 | ||||||
|  | if (intllib) then | ||||||
|  | 	dofile(minetest.get_modpath("intllib").."/intllib.lua") | ||||||
|  | 	S = intllib.Getter(minetest.get_current_modname()) | ||||||
|  | else | ||||||
|  | 	S = function ( s ) return s end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | food = { | ||||||
|  | 	modules = {}, | ||||||
|  | 	disabled_modules = {}, | ||||||
|  | 	debug = true, | ||||||
|  | 	version = 2.3 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | -- Checks for external content, and adds support | ||||||
|  | function food.support(group, item) | ||||||
|  | 	if type(group) == "table" then | ||||||
|  | 		for i = 1, #group do | ||||||
|  | 			food.support(group[i], item) | ||||||
|  | 		end | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  | 	if type(item) == "table" then | ||||||
|  | 		for i = 1, #item do | ||||||
|  | 			food.support(group, item[i]) | ||||||
|  | 		end | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	local idx = string.find(item, ":") | ||||||
|  | 	if idx <= 1 then | ||||||
|  | 		error("[Food Error] food.support - error in item name ('" .. item .. "')") | ||||||
|  | 	end | ||||||
|  | 	mod = string.sub(item, 1, idx - 1) | ||||||
|  |  | ||||||
|  | 	if not minetest.get_modpath(mod) then | ||||||
|  | 		if food.debug then | ||||||
|  | 			print("[Food Debug] Mod '"..mod.."' is not installed") | ||||||
|  | 		end | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	local data = minetest.registered_items[item] | ||||||
|  | 	if not data then | ||||||
|  | 		print("[Food Warning] Item '"..item.."' not found") | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	food.disable(group) | ||||||
|  |  | ||||||
|  | 	-- Add group | ||||||
|  | 	g = {} | ||||||
|  | 	if data.groups then | ||||||
|  | 		for k, v in pairs(data.groups) do | ||||||
|  | 			g[k] = v | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | 	g["food_"..group] = 1 | ||||||
|  | 	minetest.override_item(item, {groups = g}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function food.disable(name) | ||||||
|  | 	food.disabled_modules[name] = true | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- Adds a module | ||||||
|  | function food.module(name, func, ingred) | ||||||
|  | 	if food.disabled_modules[name] then | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  | 	if ingred then | ||||||
|  | 		for name, def in pairs(minetest.registered_items) do | ||||||
|  | 			local g = def.groups and def.groups["food_"..name] or 0 | ||||||
|  | 			if g > 0 then | ||||||
|  | 				print("cancelled") | ||||||
|  | 				return | ||||||
|  | 			end | ||||||
|  | 		end | ||||||
|  | 	 | ||||||
|  | 		if food.debug then | ||||||
|  | 			print("[Food Debug] Registering " .. name .. " fallback definition") | ||||||
|  | 		end | ||||||
|  | 	elseif food.debug then | ||||||
|  | 		print("[Food Debug] Module " .. name) | ||||||
|  | 	end | ||||||
|  | 	func() | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- Checks for hunger mods to register food on | ||||||
|  | function food.item_eat(amt) | ||||||
|  | 	if minetest.get_modpath("diet") then | ||||||
|  | 		return diet.item_eat(amt) | ||||||
|  | 	elseif minetest.get_modpath("hud") then | ||||||
|  | 		return hud.item_eat(amt) | ||||||
|  | 	else | ||||||
|  | 		return minetest.item_eat(amt) | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- Registers craft item or node depending on settings | ||||||
|  | function food.register(name, data, mod) | ||||||
|  | 	if (minetest.setting_getbool("food_use_2d") or (mod ~= nil and minetest.setting_getbool("food_"..mod.."_use_2d"))) then | ||||||
|  | 		minetest.register_craftitem(name,{ | ||||||
|  | 			description = data.description, | ||||||
|  | 			inventory_image = data.inventory_image, | ||||||
|  | 			groups = data.groups, | ||||||
|  | 			on_use = data.on_use | ||||||
|  | 		}) | ||||||
|  | 	else | ||||||
|  | 		local newdata = { | ||||||
|  | 			description = data.description, | ||||||
|  | 			tiles = data.tiles, | ||||||
|  | 			groups = data.groups, | ||||||
|  | 			on_use = data.on_use, | ||||||
|  | 			walkable = false, | ||||||
|  | 			sunlight_propagates = true, | ||||||
|  | 			drawtype = "nodebox", | ||||||
|  | 			paramtype = "light", | ||||||
|  | 			node_box = data.node_box | ||||||
|  | 		} | ||||||
|  | 		if (minetest.setting_getbool("food_2d_inv_image")) then | ||||||
|  | 			newdata.inventory_image = data.inventory_image | ||||||
|  | 		end | ||||||
|  | 		minetest.register_node(name,newdata) | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | -- Allows for overriding in the future | ||||||
|  | function food.craft(craft) | ||||||
|  | 	minetest.register_craft(craft) | ||||||
|  | end | ||||||
|  |  | ||||||
							
								
								
									
										269
									
								
								ingredients.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								ingredients.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,269 @@ | |||||||
|  | -- FOOD MOD | ||||||
|  | -- A mod written by rubenwardy that adds | ||||||
|  | -- food to the minetest game | ||||||
|  | -- ===================================== | ||||||
|  | -- >> food/ingredients.lua | ||||||
|  | -- Fallback ingredients | ||||||
|  | -- ===================================== | ||||||
|  |  | ||||||
|  | food.module("wheat", function() | ||||||
|  | 	minetest.register_craftitem("food:wheat", { | ||||||
|  | 		description = S("Wheat"),  | ||||||
|  | 		inventory_image = "food_wheat.png",  | ||||||
|  | 		groups = {food_wheat=1} | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:wheat",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:dry_shrub"},  | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("flour", function() | ||||||
|  | 	minetest.register_craftitem("food:flour", { | ||||||
|  | 		description = S("Flour"),  | ||||||
|  | 		inventory_image = "food_flour.png",  | ||||||
|  | 		groups = {food_flour = 1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:flour",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:food_wheat"},  | ||||||
|  | 			{"group:food_wheat"} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:flour",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:sand"},  | ||||||
|  | 			{"default:sand"} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("potato", function() | ||||||
|  | 	minetest.register_craftitem("food:potato", { | ||||||
|  | 		description = S("Potato"),  | ||||||
|  | 		inventory_image = "food_potato.png",  | ||||||
|  | 		groups = {food_potato = 1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:potato",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:dirt"},  | ||||||
|  | 			{"default:apple"} | ||||||
|  |  | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("tomato", function() | ||||||
|  | 	minetest.register_craftitem("food:tomato", { | ||||||
|  | 		description = S("Tomato"),  | ||||||
|  | 		inventory_image = "food_tomato.png",  | ||||||
|  | 		groups = {food_tomato = 1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:tomato",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"", "default:desert_sand", ""},  | ||||||
|  | 			{"default:desert_sand", "", "default:desert_sand"},  | ||||||
|  | 			{"", "default:desert_sand", ""} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("carrot", function() | ||||||
|  | 	minetest.register_craftitem("food:carrot", { | ||||||
|  | 		description = S("Carrot"),  | ||||||
|  | 		inventory_image = "food_carrot.png",  | ||||||
|  | 		groups = {food_carrot=1},  | ||||||
|  | 		on_use = food.item_eat(3) | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:carrot",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:apple", "default:apple", "default:apple"},  | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("milk", function() | ||||||
|  | 	minetest.register_craftitem("food:milk", { | ||||||
|  | 		description = S("Milk"),  | ||||||
|  | 		image = "food_milk.png",  | ||||||
|  | 		on_use = food.item_eat(1),  | ||||||
|  | 		groups = { eatable=1, food_milk = 1 },  | ||||||
|  | 		stack_max=10 | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:milk",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:sand"},  | ||||||
|  | 			{"bucket:bucket_water"} | ||||||
|  | 		},  | ||||||
|  | 		replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}},  | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("egg", function() | ||||||
|  | 	minetest.register_craftitem("food:egg", { | ||||||
|  | 		description = S("Egg"),  | ||||||
|  | 		inventory_image = "food_egg.png",  | ||||||
|  | 		groups = {food_egg=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:egg",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"", "default:sand", ""},  | ||||||
|  | 			{"default:sand", "", "default:sand"},  | ||||||
|  | 			{"", "default:sand", ""} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("cocoa", function() | ||||||
|  | 	minetest.register_craftitem("food:cocoa", { | ||||||
|  | 		description = S("Cocoa Bean"),  | ||||||
|  | 		inventory_image = "food_cocoa.png",  | ||||||
|  | 		groups = {food_cocoa=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:cocoa",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"", "default:apple", ""},  | ||||||
|  | 			{"default:apple", "", "default:apple"},  | ||||||
|  | 			{"", "default:apple", ""} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("meat", function() | ||||||
|  | 	minetest.register_craftitem("food:meat", { | ||||||
|  | 		description = S("Venison"),  | ||||||
|  | 		inventory_image = "food_meat.png",  | ||||||
|  | 		groups = {food_meat=1, food_chicken=1} | ||||||
|  | 	})	 | ||||||
|  | 	food.craft({ | ||||||
|  | 		type = "cooking",  | ||||||
|  | 		output = "food:meat",  | ||||||
|  | 		recipe = "group:food_meat_raw",  | ||||||
|  | 		cooktime = 30 | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	if not minetest.get_modpath("animalmaterials") then | ||||||
|  | 		minetest.register_craftitem("food:meat_raw", { | ||||||
|  | 			description = S("Raw meat"),  | ||||||
|  | 			image = "food_meat_raw.png",  | ||||||
|  | 			on_use = food.item_eat(1),  | ||||||
|  | 			groups = { meat=1, eatable=1, food_meat_raw=1 },  | ||||||
|  | 			stack_max=25 | ||||||
|  | 		}) | ||||||
|  | 		food.craft({ | ||||||
|  | 			output = "food:meat_raw",  | ||||||
|  | 			recipe = { | ||||||
|  | 				{"default:apple"},  | ||||||
|  | 				{"default:dirt"} | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 	end | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("sugar", function() | ||||||
|  | 	minetest.register_craftitem("food:sugar", { | ||||||
|  | 		description = S("Sugar"),  | ||||||
|  | 		inventory_image = "food_sugar.png",  | ||||||
|  | 		groups = {food_sugar=1} | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_craft({ | ||||||
|  | 		output = "food:sugar 20",  | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:papyrus"},  | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("chocolate_powder", function() | ||||||
|  | 	minetest.register_craftitem("food:chocolate_powder", { | ||||||
|  | 		description = S("Chocolate Powder"), | ||||||
|  | 		inventory_image = "food_chocolate_powder.png", | ||||||
|  | 		groups = {food_choco_powder = 1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:chocolate_powder 16", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, | ||||||
|  | 			{"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, | ||||||
|  | 			{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("pasta", function() | ||||||
|  | 	minetest.register_craftitem("food:pasta",{ | ||||||
|  | 		description = S("Pasta"), | ||||||
|  | 		inventory_image = "food_pasta.png", | ||||||
|  | 		groups = {food_pasta=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:pasta 4", | ||||||
|  | 		type = "shapeless", | ||||||
|  | 		recipe = {"group:food_flour","group:food_egg","group:food_egg"} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("bowl", function() | ||||||
|  | 	minetest.register_craftitem("food:bowl",{ | ||||||
|  | 		description = S("Bowl"), | ||||||
|  | 		inventory_image = "food_bowl.png", | ||||||
|  | 		groups = {food_bowl=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:bowl", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"default:clay_lump","","default:clay_lump"}, | ||||||
|  | 			{"","default:clay_lump",""} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("butter", function() | ||||||
|  | 	minetest.register_craftitem("food:butter", { | ||||||
|  | 		description = S("Butter"), | ||||||
|  | 		inventory_image = "food_butter.png", | ||||||
|  | 		groups = {food_butter=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:butter", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:food_milk","group:food_milk"}, | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | food.module("cheese", function() | ||||||
|  | 	minetest.register_craftitem("food:cheese", { | ||||||
|  | 		description = S("Cheese"), | ||||||
|  | 		inventory_image = "food_cheese.png", | ||||||
|  | 		on_use = food.item_eat(4), | ||||||
|  | 		groups = {food_cheese=1} | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:cheese", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:food_butter","group:food_butter"}, | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end, true) | ||||||
|  |  | ||||||
|  | if (minetest.get_modpath("animalmaterials") and not minetest.get_modpath("mobfcooking")) then | ||||||
|  | 	food.craft({ | ||||||
|  | 		type = "cooking",  | ||||||
|  | 		output = "food:meat",  | ||||||
|  | 		recipe = "animalmaterials:meat_raw",  | ||||||
|  | 		cooktime = 30 | ||||||
|  | 	}) | ||||||
|  | end | ||||||
							
								
								
									
										879
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										879
									
								
								init.lua
									
									
									
									
									
								
							| @@ -3,687 +3,286 @@ | |||||||
| -- food to the minetest game | -- food to the minetest game | ||||||
| -- ===================================== | -- ===================================== | ||||||
| -- >> food/init.lua | -- >> food/init.lua | ||||||
| -- The support api for the mod, and some | -- Some basic foods | ||||||
| -- basic foods |  | ||||||
| -- ===================================== | -- ===================================== | ||||||
|  |  | ||||||
| print("Food Mod - Version 2.2") | print("Food Mod - Version 2.2") | ||||||
|  |  | ||||||
| -- Boilerplate to support localized strings if intllib mod is installed. | dofile(minetest.get_modpath("food").."/api.lua") | ||||||
| local S | dofile(minetest.get_modpath("food").."/support.lua") | ||||||
| if (intllib) then | dofile(minetest.get_modpath("food").."/ingredients.lua") | ||||||
| 	dofile(minetest.get_modpath("intllib").."/intllib.lua") |  | ||||||
| 	S = intllib.Getter(minetest.get_current_modname()) |  | ||||||
| else |  | ||||||
| 	S = function ( s ) return s end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| food = { |  | ||||||
| 	supported = {}, |  | ||||||
| 	atsup = {}, |  | ||||||
| 	df = {}, |  | ||||||
| 	debug = false, |  | ||||||
| 	version = 2.2 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| -- Checks for external content, and adds support |  | ||||||
| function food.support(group,mod,item) |  | ||||||
| 	food.atsup[group] = true |  | ||||||
| 	if not minetest.get_modpath(mod) then |  | ||||||
| 		if food.debug then |  | ||||||
| 			print("[FOOD MOD DEBUG] mod '"..mod.."' is not installed") |  | ||||||
| 		end |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	local data = minetest.registered_items[item] |  | ||||||
| 	if not data then |  | ||||||
| 		print("[FOOD MOD WARNING] item '"..item.."' not found") |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	-- Need to copy this table, not modify it in place, otherwise it can change |  | ||||||
| 	-- the groups for ALL craftitems that use the default groups. |  | ||||||
| 	g = {} |  | ||||||
| 	if data.groups then |  | ||||||
| 	for k, v in pairs(data.groups) do |  | ||||||
| 		g[k] = v |  | ||||||
| 	end |  | ||||||
| 	end |  | ||||||
| 	g["food_"..group] = 1 |  | ||||||
| 	minetest.override_item(item, {groups = g}) |  | ||||||
|  |  | ||||||
| 	food.supported[group] = true |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Defines built in items if needed |  | ||||||
| function food.asupport(group,add) |  | ||||||
| 	food.df[group] = true |  | ||||||
| 	if food.supported[group] then |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	for name, def in pairs(minetest.registered_items) do |  | ||||||
| 		local g = def.groups and def.groups["food_"..group] or 0 |  | ||||||
| 		if g > 0 then |  | ||||||
| 			return |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	 |  | ||||||
| 	if food.debug then |  | ||||||
| 		print("registering "..group.." inbuilt definition") |  | ||||||
| 	end |  | ||||||
|   |  | ||||||
| 	add() |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Checks for hunger mods to register food on |  | ||||||
| function food.item_eat(amt) |  | ||||||
| 	if minetest.get_modpath("diet") then |  | ||||||
| 		return diet.item_eat(amt) |  | ||||||
| 	elseif minetest.get_modpath("hud") then |  | ||||||
| 		return hud.item_eat(amt) |  | ||||||
| 	else |  | ||||||
| 		return minetest.item_eat(amt) |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Registers craft item or node depending on settings |  | ||||||
| function food.register(name,data,mod) |  | ||||||
| 	if (minetest.setting_getbool("food_use_2d") or (mod ~= nil and minetest.setting_getbool("food_"..mod.."_use_2d"))) then |  | ||||||
| 		minetest.register_craftitem(name,{ |  | ||||||
| 			description = data.description, |  | ||||||
| 			inventory_image = data.inventory_image, |  | ||||||
| 			groups = data.groups, |  | ||||||
| 			on_use = data.on_use |  | ||||||
| 		}) |  | ||||||
| 	else |  | ||||||
| 		local newdata = { |  | ||||||
| 			description = data.description, |  | ||||||
| 			tiles = data.tiles, |  | ||||||
| 			groups = data.groups, |  | ||||||
| 			on_use = data.on_use, |  | ||||||
| 			walkable = false, |  | ||||||
| 			sunlight_propagates = true, |  | ||||||
| 			drawtype = "nodebox", |  | ||||||
| 			paramtype = "light", |  | ||||||
| 			node_box = data.node_box |  | ||||||
| 		} |  | ||||||
| 		if (minetest.setting_getbool("food_2d_inv_image")) then |  | ||||||
| 			newdata.inventory_image = data.inventory_image |  | ||||||
| 		end |  | ||||||
| 		minetest.register_node(name,newdata) |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Allows for overriding in the future |  | ||||||
| function food.craft(craft) |  | ||||||
| 	minetest.register_craft(craft) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Debug to check all supports have in built version, etc |  | ||||||
| if food.debug then |  | ||||||
| minetest.after(0, function() |  | ||||||
| 	for name, val in pairs(food.atsup) do |  | ||||||
| 		if not food.df[name] then |  | ||||||
| 			print("[FOOD MOD DEBUG] Ingredient "..name.." has no built in equiv") |  | ||||||
| 		 |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	 |  | ||||||
| 	for name, val in pairs(food.df) do |  | ||||||
| 		if not food.atsup[name] then |  | ||||||
| 			print("[FOOD MOD DEBUG] Inbuilt ingredient "..name.." has no supported external equiv") |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Add support for other mods |  | ||||||
| local function _meat(type,mod,item) |  | ||||||
| 	food.support(type,mod,item) |  | ||||||
| 	food.support("meat",mod,item) |  | ||||||
| end |  | ||||||
| food.support("wheat","farming","farming:wheat") |  | ||||||
| food.support("flour","farming","farming:flour") |  | ||||||
| food.support("potato","docfarming","docfarming:potato") |  | ||||||
| food.support("potato","veggies","veggies:potato") |  | ||||||
| food.support("potato","farming_plus","farming_plus:potato_item") |  | ||||||
| food.support("tomato","farming_plus","farming_plus:tomato_item") |  | ||||||
| food.support("tomato","plantlib","plantlib:tomato") |  | ||||||
| food.support("carrot","farming_plus","farming_plus:carrot_item") |  | ||||||
| food.support("carrot","docfarming","docfarming:carrot") |  | ||||||
| food.support("carrot","plantlib","plantlib:carrot") |  | ||||||
| food.support("carrot","jkfarming","jkfarming:carrot") |  | ||||||
| food.support("cocoa","farming_plus","farming_plus:cocoa_bean") |  | ||||||
| food.support("milk","animalmaterials","animalmaterials:milk") |  | ||||||
| food.support("milk","my_mobs","my_mobs:milk_glass_cup") |  | ||||||
| food.support("milk","jkanimals","jkanimals:bucket_milk") |  | ||||||
| food.support("egg","animalmaterials","animalmaterials:egg") |  | ||||||
| food.support("egg","animalmaterials","animalmaterials:egg_big") |  | ||||||
| food.support("egg","jkanimals","jkanimals:egg") |  | ||||||
| food.support("meat_raw","animalmaterials","animalmaterials:meat_raw") |  | ||||||
| food.support("meat","mobs","mobs:meat") |  | ||||||
| food.support("meat","jkanimals","jkanimals:meat") |  | ||||||
| _meat("pork","mobfcooking","mobfcooking:cooked_pork") |  | ||||||
| _meat("beef","mobfcooking","mobfcooking:cooked_beef") |  | ||||||
| _meat("chicken","mobfcooking","mobfcooking:cooked_chicken") |  | ||||||
| _meat("lamb","mobfcooking","mobfcooking:cooked_lamb") |  | ||||||
| _meat("venison","mobfcooking","mobfcooking:cooked_venison") |  | ||||||
| food.support("cup","vessels","vessels:drinking_glass") |  | ||||||
| food.support("sugar","jkfarming","jkfarming:sugar") |  | ||||||
| food.support("sugar","bushes_classic","bushes:sugar") |  | ||||||
|  |  | ||||||
| -- Default inbuilt ingredients |  | ||||||
| food.asupport("wheat",function() |  | ||||||
| 	minetest.register_craftitem("food:wheat", { |  | ||||||
| 		description = S("Wheat"), |  | ||||||
| 		inventory_image = "food_wheat.png", |  | ||||||
| 		groups = {food_wheat=1} |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:wheat", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:dry_shrub"}, |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("flour",function() |  | ||||||
| 	minetest.register_craftitem("food:flour", { |  | ||||||
| 		description = S("Flour"), |  | ||||||
| 		inventory_image = "food_flour.png", |  | ||||||
| 		groups = {food_flour = 1} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:flour", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"group:food_wheat"}, |  | ||||||
| 			{"group:food_wheat"} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:flour", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:sand"}, |  | ||||||
| 			{"default:sand"} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("potato",function() |  | ||||||
| 	minetest.register_craftitem("food:potato", { |  | ||||||
| 		description = S("Potato"), |  | ||||||
| 		inventory_image = "food_potato.png", |  | ||||||
| 		groups = {food_potato = 1} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:potato", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:dirt"}, |  | ||||||
| 			{"default:apple"} |  | ||||||
|  |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("tomato",function() |  | ||||||
| 	minetest.register_craftitem("food:tomato", { |  | ||||||
| 		description = S("Tomato"), |  | ||||||
| 		inventory_image = "food_tomato.png", |  | ||||||
| 		groups = {food_tomato = 1} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:tomato", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"", "default:desert_sand", ""}, |  | ||||||
| 			{"default:desert_sand", "", "default:desert_sand"}, |  | ||||||
| 			{"", "default:desert_sand", ""} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("carrot",function() |  | ||||||
| 	minetest.register_craftitem("food:carrot", { |  | ||||||
| 		description = S("Carrot"), |  | ||||||
| 		inventory_image = "food_carrot.png", |  | ||||||
| 		groups = {food_carrot=1}, |  | ||||||
| 		on_use = food.item_eat(3) |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:carrot", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:apple","default:apple","default:apple"}, |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("milk",function() |  | ||||||
| 	minetest.register_craftitem("food:milk", { |  | ||||||
| 		description = S("Milk"), |  | ||||||
| 		image = "food_milk.png", |  | ||||||
| 		on_use = food.item_eat(1), |  | ||||||
| 		groups = { eatable=1, food_milk = 1 }, |  | ||||||
| 		stack_max=10 |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:milk", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:sand"}, |  | ||||||
| 			{"bucket:bucket_water"} |  | ||||||
| 		}, |  | ||||||
| 		replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}, |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("egg",function() |  | ||||||
| 	minetest.register_craftitem("food:egg",{ |  | ||||||
| 		description = S("Egg"), |  | ||||||
| 		inventory_image = "food_egg.png", |  | ||||||
| 		groups = {food_egg=1} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:egg", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"", "default:sand", ""}, |  | ||||||
| 			{"default:sand", "", "default:sand"}, |  | ||||||
| 			{"", "default:sand", ""} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("cocoa",function() |  | ||||||
| 	minetest.register_craftitem("food:cocoa", { |  | ||||||
| 		description = S("Cocoa Bean"), |  | ||||||
| 		inventory_image = "food_cocoa.png", |  | ||||||
| 		groups = {food_cocoa=1} |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:cocoa", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"","default:apple",""}, |  | ||||||
| 			{"default:apple","","default:apple"}, |  | ||||||
| 			{"","default:apple",""} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("meat_raw",function() |  | ||||||
| 	minetest.register_craftitem("food:meat_raw", { |  | ||||||
| 		description = S("Raw meat"), |  | ||||||
| 		image = "food_meat_raw.png", |  | ||||||
| 		on_use = food.item_eat(1), |  | ||||||
| 		groups = { meat=1, eatable=1, food_meat_raw=1 }, |  | ||||||
| 		stack_max=25 |  | ||||||
| 	}) |  | ||||||
| 	food.craft({ |  | ||||||
| 		output = "food:meat_raw", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:apple"}, |  | ||||||
| 			{"default:dirt"} |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("meat",function() |  | ||||||
| 	minetest.register_craftitem("food:meat", { |  | ||||||
| 		description = S("Venison"), |  | ||||||
| 		inventory_image = "food_meat.png", |  | ||||||
| 		groups = {food_meat=1,food_chicken=1} |  | ||||||
| 	}) |  | ||||||
| 	 |  | ||||||
| 	food.craft({ |  | ||||||
| 		type = "cooking", |  | ||||||
| 		output = "food:meat", |  | ||||||
| 		recipe = "group:food_meat_raw", |  | ||||||
| 		cooktime = 30 |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
| food.asupport("sugar",function() |  | ||||||
| 	minetest.register_craftitem("food:sugar", { |  | ||||||
| 		description = S("Sugar"), |  | ||||||
| 		inventory_image = "food_sugar.png", |  | ||||||
| 		groups = {food_sugar=1} |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	minetest.register_craft({ |  | ||||||
| 		output = "food:sugar 20", |  | ||||||
| 		recipe = { |  | ||||||
| 			{"default:papyrus"}, |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| end) |  | ||||||
|  |  | ||||||
| if (minetest.get_modpath("animalmaterials") and not minetest.get_modpath("mobfcooking")) then |  | ||||||
| 	food.craft({ |  | ||||||
| 		type = "cooking", |  | ||||||
| 		output = "food:meat", |  | ||||||
| 		recipe = "group:food_meat_raw", |  | ||||||
| 		cooktime = 30 |  | ||||||
| 	}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Register chocolate powder	 |  | ||||||
| minetest.register_craftitem("food:chocolate_powder", { |  | ||||||
| 	description = S("Chocolate Powder"), |  | ||||||
| 	inventory_image = "food_chocolate_powder.png", |  | ||||||
| 	groups = {food_choco_powder = 1} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:chocolate_powder 16", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, |  | ||||||
| 		{"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, |  | ||||||
| 		{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Register dark chocolate | -- Register dark chocolate | ||||||
| minetest.register_craftitem("food:dark_chocolate",{ | food.module("dark_chocolate", function() | ||||||
| 	description = S("Dark Chocolate"), | 	minetest.register_craftitem("food:dark_chocolate",{ | ||||||
| 	inventory_image = "food_dark_chocolate.png", | 		description = S("Dark Chocolate"), | ||||||
| 	on_use = food.item_eat(3), | 		inventory_image = "food_dark_chocolate.png", | ||||||
| 	groups = {food_dark_chocolate=1} | 		on_use = food.item_eat(3), | ||||||
| }) | 		groups = {food_dark_chocolate=1} | ||||||
| food.craft({ | 	}) | ||||||
| 	output = "food:dark_chocolate", | 	food.craft({ | ||||||
| 	recipe = { | 		output = "food:dark_chocolate", | ||||||
| 		{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} | 		recipe = { | ||||||
| 	} | 			{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} | ||||||
| }) | 		} | ||||||
|  | 	}) | ||||||
|  | end) | ||||||
|  |  | ||||||
| -- Register milk chocolate | -- Register milk chocolate | ||||||
| minetest.register_craftitem("food:milk_chocolate",{ | food.module("milk_chocolate", function() | ||||||
| 	description = S("Milk Chocolate"), | 	minetest.register_craftitem("food:milk_chocolate",{ | ||||||
| 	inventory_image = "food_milk_chocolate.png", | 		description = S("Milk Chocolate"), | ||||||
| 	on_use = food.item_eat(3), | 		inventory_image = "food_milk_chocolate.png", | ||||||
| 	groups = {food_milk_chocolate=1} | 		on_use = food.item_eat(3), | ||||||
| }) | 		groups = {food_milk_chocolate=1} | ||||||
| food.craft({ | 	}) | ||||||
| 	output = "food:milk_chocolate", | 	food.craft({ | ||||||
| 	recipe = { | 		output = "food:milk_chocolate", | ||||||
| 			{"","group:food_milk",""}, | 		recipe = { | ||||||
| 			{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} | 				{"","group:food_milk",""}, | ||||||
| 	} | 				{"group:food_cocoa","group:food_cocoa","group:food_cocoa"} | ||||||
| }) | 		} | ||||||
|  | 	}) | ||||||
| -- Register pasta | end) | ||||||
| minetest.register_craftitem("food:pasta",{ |  | ||||||
| 	description = S("Pasta"), |  | ||||||
| 	inventory_image = "food_pasta.png", |  | ||||||
| 	groups = {food_pasta=1} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:pasta 4", |  | ||||||
| 	type = "shapeless", |  | ||||||
| 	recipe = {"group:food_flour","group:food_egg","group:food_egg"} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Register bowl |  | ||||||
| minetest.register_craftitem("food:bowl",{ |  | ||||||
| 	description = S("Bowl"), |  | ||||||
| 	inventory_image = "food_bowl.png", |  | ||||||
| 	groups = {food_bowl=1} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:bowl", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"default:clay_lump","","default:clay_lump"}, |  | ||||||
| 		{"","default:clay_lump",""} |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
| -- Register butter |  | ||||||
| minetest.register_craftitem("food:butter", { |  | ||||||
| 	description = S("Butter"), |  | ||||||
| 	inventory_image = "food_butter.png", |  | ||||||
| 	groups = {food_butter=1} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:butter", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"group:food_milk","group:food_milk"}, |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Register cheese |  | ||||||
| minetest.register_craftitem("food:cheese", { |  | ||||||
| 	description = S("Cheese"), |  | ||||||
| 	inventory_image = "food_cheese.png", |  | ||||||
| 	on_use = food.item_eat(4), |  | ||||||
| 	groups = {food_cheese=1} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:cheese", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"group:food_butter","group:food_butter"}, |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Register baked potato | -- Register baked potato | ||||||
| minetest.register_craftitem("food:baked_potato", { | food.module("baked_potato", function() | ||||||
| 	description = S("Baked Potato"), | 	minetest.register_craftitem("food:baked_potato", { | ||||||
| 	inventory_image = "food_baked_potato.png", | 		description = S("Baked Potato"), | ||||||
| 	on_use = food.item_eat(6), | 		inventory_image = "food_baked_potato.png", | ||||||
| }) | 		on_use = food.item_eat(6), | ||||||
| food.craft({ | 	}) | ||||||
| 	type = "cooking", | 	food.craft({ | ||||||
| 	output = "food:baked_potato", | 		type = "cooking", | ||||||
| 	recipe = "group:food_potato", | 		output = "food:baked_potato", | ||||||
| }) | 		recipe = "group:food_potato", | ||||||
|  | 	}) | ||||||
|  | end) | ||||||
|  |  | ||||||
| -- Register pasta bake | -- Register pasta bake | ||||||
| minetest.register_craftitem("food:pasta_bake",{ | food.module("pasta_bake", function() | ||||||
| 	description = S("Pasta Bake"), | 	minetest.register_craftitem("food:pasta_bake",{ | ||||||
| 	inventory_image = "food_pasta_bake.png", | 		description = S("Pasta Bake"), | ||||||
| 	on_use = food.item_eat(4), | 		inventory_image = "food_pasta_bake.png", | ||||||
| 	groups = {food=3} |  | ||||||
| }) |  | ||||||
| minetest.register_craftitem("food:pasta_bake_raw",{ |  | ||||||
| 	description = S("Raw Pasta Bake"), |  | ||||||
| 	inventory_image = "food_pasta_bake_raw.png", |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:pasta_bake", |  | ||||||
| 	type = "cooking", |  | ||||||
|  	recipe = "food:pasta_bake_raw" |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:pasta_bake_raw", |  | ||||||
|  	recipe = { |  | ||||||
| 		{"group:food_cheese"}, |  | ||||||
| 		{"group:food_pasta"}, |  | ||||||
| 		{"group:food_bowl"} |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Register Soups |  | ||||||
| local soups = { |  | ||||||
| 	{"tomato","tomato"}, |  | ||||||
| 	{"chicken","meat"} |  | ||||||
| } |  | ||||||
| for i=1, #soups do |  | ||||||
| 	local flav = soups[i] |  | ||||||
| 	minetest.register_craftitem("food:soup_"..flav[1],{ |  | ||||||
| 		description = S(flav[1].." Soup"), |  | ||||||
| 		inventory_image = "food_soup_"..flav[1]..".png", |  | ||||||
| 		on_use = food.item_eat(4), | 		on_use = food.item_eat(4), | ||||||
| 		groups = {food=3} | 		groups = {food=3} | ||||||
| 	}) | 	}) | ||||||
| 	minetest.register_craftitem("food:soup_"..flav[1].."_raw",{ | 	minetest.register_craftitem("food:pasta_bake_raw",{ | ||||||
| 		description = S("Uncooked ".. flav[1].." Soup"), | 		description = S("Raw Pasta Bake"), | ||||||
| 		inventory_image = "food_soup_"..flav[1].."_raw.png", | 		inventory_image = "food_pasta_bake_raw.png", | ||||||
| 	 |  | ||||||
| 	}) | 	}) | ||||||
| 	food.craft({ | 	food.craft({ | ||||||
|  | 		output = "food:pasta_bake", | ||||||
| 		type = "cooking", | 		type = "cooking", | ||||||
| 		output = "food:soup_"..flav[1], | 	 	recipe = "food:pasta_bake_raw" | ||||||
| 		recipe = "food:soup_"..flav[1].."_raw", |  | ||||||
| 	}) | 	}) | ||||||
| 	food.craft({ | 	food.craft({ | ||||||
| 		output = "food:soup_"..flav[1].."_raw", | 		output = "food:pasta_bake_raw", | ||||||
| 		recipe = { | 	 	recipe = { | ||||||
| 	        	{"", "", ""}, | 			{"group:food_cheese"}, | ||||||
| 	        	{"bucket:bucket_water", "group:food_"..flav[2], "bucket:bucket_water"}, | 			{"group:food_pasta"}, | ||||||
| 			{"", "group:food_bowl", ""}, | 			{"group:food_bowl"} | ||||||
| 	        }, | 		} | ||||||
| 		replacements = {{"bucket:bucket_water", "bucket:bucket_empty"},{"bucket:bucket_water", "bucket:bucket_empty"}} |  | ||||||
| 	}) | 	}) | ||||||
|  | end) | ||||||
|  |  | ||||||
|  | -- Register Soups | ||||||
|  | local soups = { | ||||||
|  | 	{"tomato", "tomato"}, | ||||||
|  | 	{"chicken", "meat"} | ||||||
|  | } | ||||||
|  | for i=1, #soups do | ||||||
|  | 	local flav = soups[i] | ||||||
|  | 	food.module("soup_"..flav[1], function() | ||||||
|  | 		minetest.register_craftitem("food:soup_"..flav[1],{ | ||||||
|  | 			description = S(flav[1].." Soup"), | ||||||
|  | 			inventory_image = "food_soup_"..flav[1]..".png", | ||||||
|  | 			on_use = food.item_eat(4), | ||||||
|  | 			groups = {food=3} | ||||||
|  | 		}) | ||||||
|  | 		minetest.register_craftitem("food:soup_"..flav[1].."_raw",{ | ||||||
|  | 			description = S("Uncooked ".. flav[1].." Soup"), | ||||||
|  | 			inventory_image = "food_soup_"..flav[1].."_raw.png", | ||||||
|  | 	 | ||||||
|  | 		}) | ||||||
|  | 		food.craft({ | ||||||
|  | 			type = "cooking", | ||||||
|  | 			output = "food:soup_"..flav[1], | ||||||
|  | 			recipe = "food:soup_"..flav[1].."_raw", | ||||||
|  | 		}) | ||||||
|  | 		food.craft({ | ||||||
|  | 			output = "food:soup_"..flav[1].."_raw", | ||||||
|  | 			recipe = { | ||||||
|  | 				{"", "", ""}, | ||||||
|  | 				{"bucket:bucket_water", "group:food_"..flav[2], "bucket:bucket_water"}, | ||||||
|  | 				{"", "group:food_bowl", ""}, | ||||||
|  | 			}, | ||||||
|  | 			replacements = {{"bucket:bucket_water", "bucket:bucket_empty"},{"bucket:bucket_water", "bucket:bucket_empty"}} | ||||||
|  | 		}) | ||||||
|  | 	end) | ||||||
| end | end | ||||||
|  |  | ||||||
| -- Juices | -- Juices | ||||||
| local juices = {"apple","cactus"} | local juices = {"apple","cactus"} | ||||||
| for i=1, #juices do | for i=1, #juices do | ||||||
| 	local flav = juices[i] | 	local flav = juices[i] | ||||||
| 	minetest.register_craftitem("food:"..flav.."_juice", { | 	food.module(flav.."_juice", function() | ||||||
| 		description = S(flav.." Juice"), | 		minetest.register_craftitem("food:"..flav.."_juice", { | ||||||
| 		inventory_image = "food_"..flav.."_juice.png", | 			description = S(flav.." Juice"), | ||||||
| 		on_use = food.item_eat(2), | 			inventory_image = "food_"..flav.."_juice.png", | ||||||
|  | 			on_use = food.item_eat(2), | ||||||
|  | 		})		 | ||||||
|  | 		food.craft({ | ||||||
|  | 			output = "food:"..flav.."_juice 4", | ||||||
|  | 			recipe = { | ||||||
|  | 				{"","",""}, | ||||||
|  | 				{"","default:"..flav,""}, | ||||||
|  | 				{"","group:food_cup",""}, | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 	end) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | food.module("rainbow_juice", function() | ||||||
|  | 	minetest.register_craftitem("food:rainbow_juice", { | ||||||
|  | 		description = S("Rainbow Juice"), | ||||||
|  | 		inventory_image = "food_rainbow_juice.png", | ||||||
|  | 		on_use = food.item_eat(20), | ||||||
| 	}) | 	}) | ||||||
| 		 |  | ||||||
| 	food.craft({ | 	food.craft({ | ||||||
| 		output = "food:"..flav.."_juice 4", | 		output = "food:rainbow_juice 99", | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{"","",""}, | 			{"","",""}, | ||||||
| 			{"","default:"..flav,""}, | 			{"","default:nyancat_rainbow",""}, | ||||||
| 			{"","group:food_cup",""}, | 			{"","group:food_cup",""}, | ||||||
| 		} | 		} | ||||||
| 	}) | 	}) | ||||||
| end | end) | ||||||
|  |  | ||||||
| minetest.register_craftitem("food:rainbow_juice", { | food.cake_box = { | ||||||
| 	description = S("Rainbow Juice"), | 	type = "fixed", | ||||||
| 	inventory_image = "food_rainbow_juice.png", | 	fixed = { | ||||||
| 	on_use = food.item_eat(20), | 		{-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, | ||||||
| }) | 		{-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, | ||||||
|  | 		{-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000} | ||||||
| food.craft({ |  | ||||||
| 	output = "food:rainbow_juice 99", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"","",""}, |  | ||||||
| 		{"","default:nyancat_rainbow",""}, |  | ||||||
| 		{"","group:food_cup",""}, |  | ||||||
| 	} | 	} | ||||||
| }) | } | ||||||
|  |  | ||||||
| -- Register cakes | -- Register cakes | ||||||
| minetest.register_node("food:cake", { | food.module("cake", function() | ||||||
| 	description = S("Cake"), | 	minetest.register_node("food:cake", { | ||||||
| 	on_use = food.item_eat(4), | 		description = S("Cake"), | ||||||
| 	groups={food=3,crumbly=3}, | 		on_use = food.item_eat(4), | ||||||
| 	tiles = { | 		groups={food=3,crumbly=3}, | ||||||
| 		"food_cake_texture.png", | 		tiles = { | ||||||
| 		"food_cake_texture.png", | 			"food_cake_texture.png", | ||||||
| 		"food_cake_texture_side.png", | 			"food_cake_texture.png", | ||||||
| 		"food_cake_texture_side.png", | 			"food_cake_texture_side.png", | ||||||
| 		"food_cake_texture_side.png", | 			"food_cake_texture_side.png", | ||||||
| 		"food_cake_texture_side.png" | 			"food_cake_texture_side.png", | ||||||
| 	}, | 			"food_cake_texture_side.png" | ||||||
| 	walkable = false, | 		}, | ||||||
| 	sunlight_propagates = true, | 		walkable = false, | ||||||
| 	drawtype="nodebox", | 		sunlight_propagates = true, | ||||||
| 	paramtype = "light", | 		drawtype="nodebox", | ||||||
| 	node_box = { | 		paramtype = "light", | ||||||
| 		type = "fixed", | 		node_box = food.cake_box | ||||||
| 		fixed = { | 	}) | ||||||
| 			{-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, --NodeBox 1 | 	food.craft({ | ||||||
| 			{-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, --NodeBox 2 | 		type = "cooking", | ||||||
| 			{-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000}, --NodeBox 3 | 		output = "food:cake", | ||||||
|  | 		recipe = "food:cakemix_plain", | ||||||
|  | 		cooktime = 10, | ||||||
|  | 	}) | ||||||
|  | 	minetest.register_craftitem("food:cakemix_plain",{ | ||||||
|  | 		description = S("Cake Mix"), | ||||||
|  | 		inventory_image = "food_cakemix_plain.png", | ||||||
|  | 	}) | ||||||
|  | 	minetest.register_craft({ | ||||||
|  | 		output = "food:cakemix_plain", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"group:food_flour","group:food_sugar","group:food_egg"}, | ||||||
| 		} | 		} | ||||||
| 	} | 	}) | ||||||
| }) | end) | ||||||
| minetest.register_node("food:cake_choco", { |  | ||||||
| 	description = S("Chocolate Cake"), |  | ||||||
| 	on_use = food.item_eat(4), | food.module("cake_choco", function() | ||||||
| 	groups={food=3,crumbly=3}, | 	minetest.register_node("food:cake_choco", { | ||||||
| 	tiles = { | 		description = S("Chocolate Cake"), | ||||||
| 		"food_cake_choco_texture.png", | 		on_use = food.item_eat(4), | ||||||
| 		"food_cake_choco_texture.png", | 		groups={food=3,crumbly=3}, | ||||||
| 		"food_cake_choco_texture_side.png", | 		tiles = { | ||||||
| 		"food_cake_choco_texture_side.png", | 			"food_cake_choco_texture.png", | ||||||
| 		"food_cake_choco_texture_side.png", | 			"food_cake_choco_texture.png", | ||||||
| 		"food_cake_choco_texture_side.png" | 			"food_cake_choco_texture_side.png", | ||||||
| 	}, | 			"food_cake_choco_texture_side.png", | ||||||
| 	walkable = false, | 			"food_cake_choco_texture_side.png", | ||||||
| 	sunlight_propagates = true, | 			"food_cake_choco_texture_side.png" | ||||||
| 	drawtype="nodebox", | 		}, | ||||||
| 	paramtype = "light", | 		walkable = false, | ||||||
| 	node_box = { | 		sunlight_propagates = true, | ||||||
| 		type = "fixed", | 		drawtype="nodebox", | ||||||
| 		fixed = { | 		paramtype = "light", | ||||||
| 			{-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, --NodeBox 1 | 		node_box = food.cake_box | ||||||
| 			{-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, --NodeBox 2 | 	}) | ||||||
| 			{-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000}, --NodeBox 3 | 	food.craft({ | ||||||
|  | 		type = "cooking", | ||||||
|  | 		output = "food:cake_choco", | ||||||
|  | 		recipe = "food:cakemix_choco", | ||||||
|  | 		cooktime = 10, | ||||||
|  | 	}) | ||||||
|  | 	minetest.register_craftitem("food:cakemix_choco",{ | ||||||
|  | 		description = S("Chocolate Cake Mix"), | ||||||
|  | 		inventory_image = "food_cakemix_choco.png", | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:cakemix_choco", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"","group:food_choco_powder",""}, | ||||||
|  | 			{"group:food_flour","group:food_sugar","group:food_egg"}, | ||||||
| 		} | 		} | ||||||
| 	} | 	}) | ||||||
| }) | end) | ||||||
| minetest.register_node("food:cake_carrot", { |  | ||||||
| 	description = S("Carrot Cake"), | food.module("cake_carrot", function() | ||||||
| 	on_use = food.item_eat(4), | 	minetest.register_node("food:cake_carrot", { | ||||||
| 	groups={food=3,crumbly=3}, | 		description = S("Carrot Cake"), | ||||||
| 	walkable = false, | 		on_use = food.item_eat(4), | ||||||
| 	sunlight_propagates = true, | 		groups={food=3,crumbly=3}, | ||||||
| 	tiles = { | 		walkable = false, | ||||||
| 		"food_cake_carrot_texture.png", | 		sunlight_propagates = true, | ||||||
| 		"food_cake_carrot_texture.png", | 		tiles = { | ||||||
| 		"food_cake_carrot_texture_side.png", | 			"food_cake_carrot_texture.png", | ||||||
| 		"food_cake_carrot_texture_side.png", | 			"food_cake_carrot_texture.png", | ||||||
| 		"food_cake_carrot_texture_side.png", | 			"food_cake_carrot_texture_side.png", | ||||||
| 		"food_cake_carrot_texture_side.png" | 			"food_cake_carrot_texture_side.png", | ||||||
| 	}, | 			"food_cake_carrot_texture_side.png", | ||||||
| 	drawtype="nodebox", | 			"food_cake_carrot_texture_side.png" | ||||||
| 	paramtype = "light", | 		}, | ||||||
| 	node_box = { | 		drawtype="nodebox", | ||||||
| 		type = "fixed", | 		paramtype = "light", | ||||||
| 		fixed = { | 		node_box = food.cake_box | ||||||
| 			{-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, --NodeBox 1 | 	}) | ||||||
| 			{-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, --NodeBox 2 | 	food.craft({ | ||||||
| 			{-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000}, --NodeBox 3 | 		type = "cooking", | ||||||
|  | 		output = "food:cake_carrot", | ||||||
|  | 		recipe = "food:cakemix_carrot", | ||||||
|  | 		cooktime = 10, | ||||||
|  | 	}) | ||||||
|  | 	minetest.register_craftitem("food:cakemix_carrot",{ | ||||||
|  | 		description = S("Carrot Cake Mix"), | ||||||
|  | 		inventory_image = "food_cakemix_carrot.png", | ||||||
|  | 	}) | ||||||
|  | 	food.craft({ | ||||||
|  | 		output = "food:cakemix_carrot", | ||||||
|  | 		recipe = { | ||||||
|  | 			{"","group:food_carrot",""}, | ||||||
|  | 			{"group:food_flour","group:food_sugar","group:food_egg"}, | ||||||
| 		} | 		} | ||||||
| 	} | 	}) | ||||||
| }) | end) | ||||||
| food.craft({ |  | ||||||
| 	type = "cooking", |  | ||||||
| 	output = "food:cake", |  | ||||||
| 	recipe = "food:cakemix_plain", |  | ||||||
| 	cooktime = 10, |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	type = "cooking", |  | ||||||
| 	output = "food:cake_choco", |  | ||||||
| 	recipe = "food:cakemix_choco", |  | ||||||
| 	cooktime = 10, |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	type = "cooking", |  | ||||||
| 	output = "food:cake_carrot", |  | ||||||
| 	recipe = "food:cakemix_carrot", |  | ||||||
| 	cooktime = 10, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- Cake mix |  | ||||||
| minetest.register_craftitem("food:cakemix_plain",{ |  | ||||||
| 	description = S("Cake Mix"), |  | ||||||
| 	inventory_image = "food_cakemix_plain.png", |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craftitem("food:cakemix_choco",{ |  | ||||||
| 	description = S("Chocolate Cake Mix"), |  | ||||||
| 	inventory_image = "food_cakemix_choco.png", |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craftitem("food:cakemix_carrot",{ |  | ||||||
| 	description = S("Carrot Cake Mix"), |  | ||||||
| 	inventory_image = "food_cakemix_carrot.png", |  | ||||||
| }) |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "food:cakemix_plain", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"group:food_flour","group:food_sugar","group:food_egg"}, |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:cakemix_choco", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"","group:food_choco_powder",""}, |  | ||||||
| 		{"group:food_flour","group:food_sugar","group:food_egg"}, |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
| food.craft({ |  | ||||||
| 	output = "food:cakemix_carrot", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"","group:food_carrot",""}, |  | ||||||
| 		{"group:food_flour","group:food_sugar","group:food_egg"}, |  | ||||||
| 	} |  | ||||||
| }) |  | ||||||
|   | |||||||
							
								
								
									
										52
									
								
								support.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								support.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  |  -- FOOD MOD | ||||||
|  | -- A mod written by rubenwardy that adds | ||||||
|  | -- food to the minetest game | ||||||
|  | -- ===================================== | ||||||
|  | -- >> food/support.lua | ||||||
|  | -- Support external mods | ||||||
|  | -- ===================================== | ||||||
|  |  | ||||||
|  | -- Add support for other mods | ||||||
|  | food.support("wheat", "farming:wheat") | ||||||
|  | food.support("flour", "farming:flour") | ||||||
|  | food.support("cocoa", "farming_plus:cocoa_bean") | ||||||
|  | food.support("cup", "vessels:drinking_glass") | ||||||
|  | food.support("potato", { | ||||||
|  | 	"docfarming:potato", | ||||||
|  | 	"veggies:potato", | ||||||
|  | 	"farming_plus:potato_item" | ||||||
|  | }) | ||||||
|  | food.support("tomato", { | ||||||
|  | 	"farming_plus:tomato_item", | ||||||
|  | 	"plantlib:tomato" | ||||||
|  | }) | ||||||
|  | food.support("carrot", { | ||||||
|  | 	"farming_plus:carrot_item", | ||||||
|  | 	"docfarming:carrot", | ||||||
|  | 	"plantlib:carrot", | ||||||
|  | 	"jkfarming:carrot" | ||||||
|  | }) | ||||||
|  | food.support("milk", { | ||||||
|  | 	"animalmaterials:milk", | ||||||
|  | 	"my_mobs:milk_glass_cup", | ||||||
|  | 	"jkanimals:bucket_milk" | ||||||
|  | }) | ||||||
|  | food.support("egg", { | ||||||
|  | 	"animalmaterials:egg", | ||||||
|  | 	"animalmaterials:egg_big", | ||||||
|  | 	"jkanimals:egg" | ||||||
|  | }) | ||||||
|  | food.support("meat", { | ||||||
|  | 	"mobs:meat", | ||||||
|  | 	"jkanimals:meat", | ||||||
|  | 	"mobfcooking:cooked_pork", | ||||||
|  | 	"mobfcooking:cooked_beef", | ||||||
|  | 	"mobfcooking:cooked_chicken", | ||||||
|  | 	"mobfcooking:cooked_lamb", | ||||||
|  | 	"mobfcooking:cooked_venison" | ||||||
|  | }) | ||||||
|  | food.support("sugar", { | ||||||
|  | 	"jkfarming:sugar", | ||||||
|  | 	"bushes:sugar" | ||||||
|  | }) | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user