diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/farming/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/farming/depends.txt~ b/mods/farming/depends.txt~ new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/farming/depends.txt~ @@ -0,0 +1 @@ +default diff --git a/mods/farming/init.lua b/mods/farming/init.lua index 06cf4b9..14b954b 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -44,7 +44,69 @@ farming.register_plant("wheat", 5, { drop_texture = "farming_wheat_seeds.png", }) +minetest.override_item("default:plant_grass", {drop = { + max_items = 1, + items = { + {items = {'farming:wheat_seeds'},rarity = 5}, + {items = {'default:plant_grass'}}, + } +}}) + minetest.register_craftitem("farming:flour", { description = "Flour", inventory_image = "farming_flour.png", }) + +minetest.register_craftitem("farming:sugar", { + description = "Sugar", + inventory_image = "farming_sugar.png", +}) + +minetest.register_craftitem("farming:bowl", { + description = "Bowl", + inventory_image = "farming_bowl.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.above then + if minetest.get_node(pointed_thing.under).name == "default:water_source" then + itemstack:replace("farming:bowl_with_water") + end + end + return itemstack + end, +}) + +minetest.register_craftitem("farming:bowl_with_water", { + description = "Bowl with Water", + inventory_image = "farming_bowl_with_water.png", + stack_max = 1, +}) + +minetest.register_craftitem("farming:slice_of_bread", { + description = "Slice of Bread", + inventory_image = "farming_slice_of_bread.png", + on_use = minetest.item_eat(5), +}) + + + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat_seeds", "farming:wheat_seeds", "farming:wheat_seeds"} +}) + +minetest.register_craft({ + output = "farming:bowl", + recipe = { + {"default:wood", "", "default:wood"}, + {"", "default:wood", ""}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:slice_of_bread 10", + recipe = {"farming:flour", "farming:flour", "farming:bowl_with_water"} +}) diff --git a/mods/farming/init.lua~ b/mods/farming/init.lua~ index 06cf4b9..14b954b 100644 --- a/mods/farming/init.lua~ +++ b/mods/farming/init.lua~ @@ -44,7 +44,69 @@ farming.register_plant("wheat", 5, { drop_texture = "farming_wheat_seeds.png", }) +minetest.override_item("default:plant_grass", {drop = { + max_items = 1, + items = { + {items = {'farming:wheat_seeds'},rarity = 5}, + {items = {'default:plant_grass'}}, + } +}}) + minetest.register_craftitem("farming:flour", { description = "Flour", inventory_image = "farming_flour.png", }) + +minetest.register_craftitem("farming:sugar", { + description = "Sugar", + inventory_image = "farming_sugar.png", +}) + +minetest.register_craftitem("farming:bowl", { + description = "Bowl", + inventory_image = "farming_bowl.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.above then + if minetest.get_node(pointed_thing.under).name == "default:water_source" then + itemstack:replace("farming:bowl_with_water") + end + end + return itemstack + end, +}) + +minetest.register_craftitem("farming:bowl_with_water", { + description = "Bowl with Water", + inventory_image = "farming_bowl_with_water.png", + stack_max = 1, +}) + +minetest.register_craftitem("farming:slice_of_bread", { + description = "Slice of Bread", + inventory_image = "farming_slice_of_bread.png", + on_use = minetest.item_eat(5), +}) + + + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat_seeds", "farming:wheat_seeds", "farming:wheat_seeds"} +}) + +minetest.register_craft({ + output = "farming:bowl", + recipe = { + {"default:wood", "", "default:wood"}, + {"", "default:wood", ""}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:slice_of_bread 10", + recipe = {"farming:flour", "farming:flour", "farming:bowl_with_water"} +}) diff --git a/mods/farming/textures/farming_bowl.png b/mods/farming/textures/farming_bowl.png new file mode 100644 index 0000000..48b0765 Binary files /dev/null and b/mods/farming/textures/farming_bowl.png differ diff --git a/mods/farming/textures/farming_bowl_with_water.png b/mods/farming/textures/farming_bowl_with_water.png new file mode 100644 index 0000000..c18267a Binary files /dev/null and b/mods/farming/textures/farming_bowl_with_water.png differ diff --git a/mods/farming/textures/farming_slice_of_bread.png b/mods/farming/textures/farming_slice_of_bread.png new file mode 100644 index 0000000..92daad8 Binary files /dev/null and b/mods/farming/textures/farming_slice_of_bread.png differ diff --git a/mods/farming/textures/farming_sugar.png b/mods/farming/textures/farming_sugar.png new file mode 100644 index 0000000..226cba9 Binary files /dev/null and b/mods/farming/textures/farming_sugar.png differ diff --git a/mods/furnace/depends.txt b/mods/furnace/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/furnace/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/furnace/depends.txt~ b/mods/furnace/depends.txt~ new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/furnace/depends.txt~ @@ -0,0 +1 @@ +default diff --git a/mods/furnace/init.lua b/mods/furnace/init.lua index 133b00b..5820f3c 100644 --- a/mods/furnace/init.lua +++ b/mods/furnace/init.lua @@ -1,41 +1,75 @@ +local furnace_form = "size[8,9]" +local furnace_form = furnace_form..default.gui_colors +local furnace_form = furnace_form..default.gui_bg +local furnace_form = furnace_form.."list[current_name;main;2,0.3;4,4;]" +local furnace_form = furnace_form..default.itemslot_bg(2,0.3,4,4) +local furnace_form = furnace_form.."list[current_player;main;0,4.85;8,1;]" +local furnace_form = furnace_form..default.itemslot_bg(0,4.85,8,1) +local furnace_form = furnace_form.."list[current_player;main;0,6.08;8,3;8]" +local furnace_form = furnace_form..default.itemslot_bg(0,6,8,3) + minetest.register_node("furnace:furnace", { description = "Furnace", tiles = {"furnace_stone_tile.png", "furnace_stone_tile.png", "furnace_stone_tile.png", "furnace_stone_tile.png","furnace_stone_tile.png","furnace_stone_front.png"}, groups = {cracky = 2}, paramtype2 = "facedir", + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",furnace_form) + meta:set_string("infotext", "Furnace"); + local inv = meta:get_inventory() + inv:set_size("main", 4*4) + end, }) minetest.register_abm({ nodenames = {"furnace:furnace"}, neighbors = {"group:pattern"}, - interval = 1.0, + interval = 10.0, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) - local lavapos = pos - lavapos.y = lavapos.y - 2 - if minetest.get_node(lavapos).name == "lava:lava_source" then - local patternpos = pos - patternpos.y = patternpos.y + 1 - - local p = { - x = pos.x + math.random(0, 5)/5 - 0.5, - y = pos.y + 3, - z = pos.z + math.random(0, 5)/5 - 0.5 - } + local mymeta = minetest.get_meta(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "lava:lava_source" then + local dir = vector.multiply(minetest.facedir_to_dir(minetest.get_node({x = pos.x, y= pos.y+1, z=pos.z}).param2), -1) + local patternpos = vector.add(pos, dir) local pattern = minetest.get_node(patternpos).name if pattern == "furnace:pattern_rod" then - minetest.add_item(p, {name = "furnace:iron_rod"}) - print("rod") + local myinv = mymeta:get_inventory() + if myinv:contains_item("main", {name = "default:iron_lump"}) then + minetest.get_meta(patternpos):get_inventory():add_item("main", {name = "furnace:iron_rod"}) + myinv:remove_item("main", {name = "default:iron_lump"}) + elseif myinv:contains_item("main", {name = "default:gold_lump"}) then + minetest.get_meta(patternpos):get_inventory():add_item("main", {name = "furnace:gold_rod"}) + myinv:remove_item("main", {name = "default:gold_lump"}) + end end end end, }) +local pattern_form = "size[8,9]" +local pattern_form = pattern_form..default.gui_colors +local pattern_form = pattern_form..default.gui_bg +local pattern_form = pattern_form.."list[current_name;main;0,0.3;8,4;]" +local pattern_form = pattern_form..default.itemslot_bg(0,0.3,8,4) +local pattern_form = pattern_form.."list[current_player;main;0,4.85;8,1;]" +local pattern_form = pattern_form..default.itemslot_bg(0,4.85,8,1) +local pattern_form = pattern_form.."list[current_player;main;0,6.08;8,3;8]" +local pattern_form = pattern_form..default.itemslot_bg(0,6,8,3) + minetest.register_node("furnace:pattern_rod", { description = "Pattern for a Rod", tiles = {"furnace_pattern_rod.png", "default_wooden_planks.png"}, groups = {snappy = 3, pattern = 1}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",pattern_form) + meta:set_string("infotext", "Pattern"); + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, }) diff --git a/mods/furnace/init.lua~ b/mods/furnace/init.lua~ index 133b00b..5820f3c 100644 --- a/mods/furnace/init.lua~ +++ b/mods/furnace/init.lua~ @@ -1,41 +1,75 @@ +local furnace_form = "size[8,9]" +local furnace_form = furnace_form..default.gui_colors +local furnace_form = furnace_form..default.gui_bg +local furnace_form = furnace_form.."list[current_name;main;2,0.3;4,4;]" +local furnace_form = furnace_form..default.itemslot_bg(2,0.3,4,4) +local furnace_form = furnace_form.."list[current_player;main;0,4.85;8,1;]" +local furnace_form = furnace_form..default.itemslot_bg(0,4.85,8,1) +local furnace_form = furnace_form.."list[current_player;main;0,6.08;8,3;8]" +local furnace_form = furnace_form..default.itemslot_bg(0,6,8,3) + minetest.register_node("furnace:furnace", { description = "Furnace", tiles = {"furnace_stone_tile.png", "furnace_stone_tile.png", "furnace_stone_tile.png", "furnace_stone_tile.png","furnace_stone_tile.png","furnace_stone_front.png"}, groups = {cracky = 2}, paramtype2 = "facedir", + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",furnace_form) + meta:set_string("infotext", "Furnace"); + local inv = meta:get_inventory() + inv:set_size("main", 4*4) + end, }) minetest.register_abm({ nodenames = {"furnace:furnace"}, neighbors = {"group:pattern"}, - interval = 1.0, + interval = 10.0, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) - local lavapos = pos - lavapos.y = lavapos.y - 2 - if minetest.get_node(lavapos).name == "lava:lava_source" then - local patternpos = pos - patternpos.y = patternpos.y + 1 - - local p = { - x = pos.x + math.random(0, 5)/5 - 0.5, - y = pos.y + 3, - z = pos.z + math.random(0, 5)/5 - 0.5 - } + local mymeta = minetest.get_meta(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "lava:lava_source" then + local dir = vector.multiply(minetest.facedir_to_dir(minetest.get_node({x = pos.x, y= pos.y+1, z=pos.z}).param2), -1) + local patternpos = vector.add(pos, dir) local pattern = minetest.get_node(patternpos).name if pattern == "furnace:pattern_rod" then - minetest.add_item(p, {name = "furnace:iron_rod"}) - print("rod") + local myinv = mymeta:get_inventory() + if myinv:contains_item("main", {name = "default:iron_lump"}) then + minetest.get_meta(patternpos):get_inventory():add_item("main", {name = "furnace:iron_rod"}) + myinv:remove_item("main", {name = "default:iron_lump"}) + elseif myinv:contains_item("main", {name = "default:gold_lump"}) then + minetest.get_meta(patternpos):get_inventory():add_item("main", {name = "furnace:gold_rod"}) + myinv:remove_item("main", {name = "default:gold_lump"}) + end end end end, }) +local pattern_form = "size[8,9]" +local pattern_form = pattern_form..default.gui_colors +local pattern_form = pattern_form..default.gui_bg +local pattern_form = pattern_form.."list[current_name;main;0,0.3;8,4;]" +local pattern_form = pattern_form..default.itemslot_bg(0,0.3,8,4) +local pattern_form = pattern_form.."list[current_player;main;0,4.85;8,1;]" +local pattern_form = pattern_form..default.itemslot_bg(0,4.85,8,1) +local pattern_form = pattern_form.."list[current_player;main;0,6.08;8,3;8]" +local pattern_form = pattern_form..default.itemslot_bg(0,6,8,3) + minetest.register_node("furnace:pattern_rod", { description = "Pattern for a Rod", tiles = {"furnace_pattern_rod.png", "default_wooden_planks.png"}, groups = {snappy = 3, pattern = 1}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",pattern_form) + meta:set_string("infotext", "Pattern"); + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, })