diff --git a/.gitmodules b/.gitmodules index d04bd023..d8501ade 100644 --- a/.gitmodules +++ b/.gitmodules @@ -101,3 +101,15 @@ [submodule "mods/ranks"] path = mods/ranks url = https://git.tchncs.de/Illuna-Minetest/ranks +[submodule "mods/another_charcoal"] + path = mods/another_charcoal + url = https://github.com/cx384/another_charcoal +[submodule "mods/golems"] + path = mods/golems + url = https://git.tchncs.de/Illuna-Minetest/golems +[submodule "mods/shadow"] + path = mods/shadow + url = https://git.tchncs.de/Illuna-Minetest/shadow +[submodule "mods/chat_bubbles"] + path = mods/chat_bubbles + url = https://github.com/jordan4ibanez/Chat-Bubbles diff --git a/mods/another_charcoal b/mods/another_charcoal new file mode 160000 index 00000000..b0101ba3 --- /dev/null +++ b/mods/another_charcoal @@ -0,0 +1 @@ +Subproject commit b0101ba333c71c9c1eec850918159173e78b66f9 diff --git a/mods/bonemeal/depends.txt b/mods/bonemeal/depends.txt new file mode 100644 index 00000000..2717befb --- /dev/null +++ b/mods/bonemeal/depends.txt @@ -0,0 +1,2 @@ +default +dye diff --git a/mods/bonemeal/init.lua b/mods/bonemeal/init.lua new file mode 100644 index 00000000..28f9faca --- /dev/null +++ b/mods/bonemeal/init.lua @@ -0,0 +1,225 @@ +-- This mod cutted out from ethereal: https://github.com/tenplus1/ethereal +-- + +minetest.register_craft({ + output = "bonemeal:bonemeal 4", + recipe = { + {'default:bone'}, + {'default:mese_crystal_fragment'}, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "dye:white 2", + recipe = {"default:bonemeal"}, +}) + +local plants = { + "flowers:dandelion_white", + "flowers:dandelion_yellow", + "flowers:geranium", + "flowers:rose", + "flowers:tulip", + "flowers:viola", +} + + +local crops = { + {"farming:cotton_", 8}, + {"farming:wheat_", 8}, + {"farming:tomato_", 8}, + {"farming:corn_", 8}, + {"farming:melon_", 8}, + {"farming:pumpkin_", 8}, + {"farming:beanpole_", 5}, + {"farming:blueberry_", 4}, + {"farming:raspberry_", 4}, + {"farming:carrot_", 8}, + {"farming:cocoa_", 3}, + {"farming:coffee_", 5}, + {"farming:cucumber_", 4}, + {"farming:potato_", 4}, + {"farming:grapes_", 8}, + {"farming:rhubarb_", 3}, + {"farming:barley_", 7}, +} + +-- check if sapling has enough height room to grow +local function enough_height(pos, height) + + local nod = minetest.line_of_sight( + {x = pos.x, y = pos.y + 1, z = pos.z}, + {x = pos.x, y = pos.y + height, z = pos.z}) + + if not nod then + return false -- obstructed + else + return true -- can grow + end +end + +-- growing routine +local function growth(pointed_thing) + + local pos = pointed_thing.under + local node = minetest.get_node(pos) + + if node.name == "ignore" then + return + end + + minetest.add_particlespawner({ + amount = 4, + time = 0.15, + minpos = pos, + maxpos = pos, + minvel = {x = -1, y = 2, z = -1}, + maxvel = {x = 1, y = 4, z = 1}, + minacc = {x = -1, y = -1, z = -1}, + maxacc = {x = 1, y = 1, z = 1}, + minexptime = 1, + maxexptime = 1, + minsize = 1, + maxsize = 3, + texture = "bonemeal_particle.png", + }) + + -- 50/50 chance of growing a sapling + if minetest.get_item_group(node.name, "sapling") > 0 then + + if math.random(1, 2) == 1 then + return + end + + local under = minetest.get_node({ + x = pos.x, + y = pos.y - 1, + z = pos.z + }) + + local height = minetest.registered_nodes[node.name].grown_height + + -- do we have enough height to grow sapling into tree? + if height and not enough_height(pos, height) then + return + end + + -- check for soil under sapling + if minetest.get_item_group(under.name, "soil") == 0 then + return + end + + -- grow default tree + if node.name == "default:sapling" + and enough_height(pos, 7) then + default.grow_new_apple_tree(pos) + + elseif node.name == "default:junglesapling" + and enough_height(pos, 15) then + default.grow_new_jungle_tree(pos) + + elseif node.name == "default:pine_sapling" + and enough_height(pos, 11) then + + if minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then + + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + + elseif node.name == "default:acacia_sapling" + and under.name == "default:sand" then + default.grow_new_acacia_tree(pos) + + elseif node.name == "default:aspen_sapling" + and enough_height(pos, 11) then + default.grow_new_aspen_tree(pos) + end + + return + end + + local stage = "" + + -- grow registered crops + for n = 1, #crops do + + if string.find(node.name, crops[n][1]) then + + stage = tonumber( node.name:split("_")[2] ) + stage = math.min(stage + math.random(1, 4), crops[n][2]) + + minetest.set_node(pos, {name = crops[n][1] .. stage}) + + return + + end + + end + + -- grow grass and flowers + if minetest.get_item_group(node.name, "soil") > 0 then + + local dirt = minetest.find_nodes_in_area_under_air( + {x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + {x = pos.x + 2, y = pos.y + 1, z = pos.z + 2}, + {"group:soil"}) + + for _,n in pairs(dirt) do + + local pos2 = n + + pos2.y = pos2.y + 1 + + if math.random(0, 5) > 3 then + + minetest.swap_node(pos2, + {name = plants[math.random(1, #plants)]}) + else + + if node.name == "default:dirt_with_dry_grass" then + minetest.swap_node(pos2, + {name = "default:dry_grass_" .. math.random(1, 5)}) + else + minetest.swap_node(pos2, + {name = "default:grass_" .. math.random(1, 5)}) + end + + end + end + end +end + +-- bonemeal item +minetest.register_craftitem("bonemeal:bonemeal", { + description = "Bone Meal", + inventory_image = "bonemeal.png", + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type == "node" then + + -- Check if node protected + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + return + end + + if not minetest.setting_getbool("creative_mode") then + + local item = user:get_wielded_item() + + item:take_item() + user:set_wielded_item(item) + end + + growth(pointed_thing) + + itemstack:take_item() + + return itemstack + end + end, +}) diff --git a/mods/bonemeal/textures/bonemeal.png b/mods/bonemeal/textures/bonemeal.png new file mode 100644 index 00000000..f1412630 Binary files /dev/null and b/mods/bonemeal/textures/bonemeal.png differ diff --git a/mods/bonemeal/textures/bonemeal_particle.png b/mods/bonemeal/textures/bonemeal_particle.png new file mode 100644 index 00000000..71ef90f8 Binary files /dev/null and b/mods/bonemeal/textures/bonemeal_particle.png differ diff --git a/mods/chat_bubbles b/mods/chat_bubbles new file mode 160000 index 00000000..48fb8b16 --- /dev/null +++ b/mods/chat_bubbles @@ -0,0 +1 @@ +Subproject commit 48fb8b16b297d3742205ad8f430d8eb8b39cee8d diff --git a/mods/creative/init.lua b/mods/creative/init.lua index cc7f81c8..5688a7f4 100644 --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -125,7 +125,8 @@ creative.set_creative_formspec = function(player, start_i) tooltip[creative_clear;Reset] listring[current_player;main] ]] .. - "field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. ";false]" .. + "field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" .. + "field_close_on_enter[creative_filter;false]" .. "listring[detached:creative_" .. player_name .. ";main]" .. "tabheader[0,0;creative_tabs;Crafting,All,Nodes,Tools,Items;" .. tostring(inv.tab_id) .. ";true;false]" .. "list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua index d821af06..1cb67f9c 100644 --- a/mods/default/craftitems.lua +++ b/mods/default/craftitems.lua @@ -1,5 +1,10 @@ -- mods/default/craftitems.lua +minetest.register_craftitem("default:bone", { + description = "Bone", + inventory_image = "bone.png", +}) + minetest.register_craftitem("default:stick", { description = "Stick", inventory_image = "default_stick.png", diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 468d628a..9f279d6a 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -340,6 +340,14 @@ minetest.register_node("default:dirt", { tiles = {"default_dirt.png"}, groups = {crumbly = 3, soil = 1}, sounds = default.node_sound_dirt_defaults(), + drop = { + max_items = 1, + items = { + {items = {'default:bone', 'default:dirt'},rarity = 30,}, + {items = {'default:dirt'},}, + }, + }, + }) minetest.register_node("default:dirt_with_grass", { diff --git a/mods/default/textures/bone.png b/mods/default/textures/bone.png new file mode 100644 index 00000000..d86e7bea Binary files /dev/null and b/mods/default/textures/bone.png differ diff --git a/mods/golems b/mods/golems new file mode 160000 index 00000000..a9a7d96b --- /dev/null +++ b/mods/golems @@ -0,0 +1 @@ +Subproject commit a9a7d96bf40c8ba25777eed977356d631bb8f53c diff --git a/mods/illuna b/mods/illuna index 283c9f6b..6d207c93 160000 --- a/mods/illuna +++ b/mods/illuna @@ -1 +1 @@ -Subproject commit 283c9f6b143d44c3ed46f7aafc5c8e560417dc0a +Subproject commit 6d207c93d72413d17c7a952fb912d556d5bd4dbd diff --git a/mods/mobs_redo b/mods/mobs_redo index 31db77ba..9990b12a 160000 --- a/mods/mobs_redo +++ b/mods/mobs_redo @@ -1 +1 @@ -Subproject commit 31db77bab3ef8cd3f63fe1e30d301d9dd944c964 +Subproject commit 9990b12a1237e95bbf68ebc0abdf633403a64178 diff --git a/mods/random_messages/init.lua b/mods/random_messages/init.lua index 6a37e39c..f042c6ba 100644 --- a/mods/random_messages/init.lua +++ b/mods/random_messages/init.lua @@ -54,6 +54,8 @@ function random_messages.read_messages() mc(mcc, "# Illuna-Notes: Enjoy Illuna? Invite your friends today!"), mc(mcc, "# Illuna-Notes: Have something to share? Join https://community.illuna-minetest.tk today!"), mc(mcc, "# Illuna-Notes: Sell and buy stuff on the Illuna marketplace. It is below the spawnhouse."), + mc(mcc, "# Illuna-Notes: Did you know? The Illuna universe contains also worlds at port 30001 and 30002."), + mc(mcc, "# Illuna-Notes: Misplaced shadow or light? Stucking water or lava? Use /mapfix to fix it!"), } end diff --git a/mods/screwdriver/init.lua b/mods/screwdriver/init.lua index e73b618f..17c1ce16 100644 --- a/mods/screwdriver/init.lua +++ b/mods/screwdriver/init.lua @@ -88,7 +88,7 @@ screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses) return itemstack end --- Screwdriver +-- Screwdriver Steel minetest.register_tool("screwdriver:screwdriver", { description = "Screwdriver (left-click rotates face, right-click rotates axis)", inventory_image = "screwdriver.png", @@ -102,6 +102,33 @@ minetest.register_tool("screwdriver:screwdriver", { end, }) +-- Screwdriver Diamond +minetest.register_tool("screwdriver:screwdriver_diamond", { + description = "Screwdriver (left-click rotates face, right-click rotates axis)", + inventory_image = "screwdriver_diamond.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 800) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 800) + return itemstack + end, +}) + +-- Screwdriver Mithril +minetest.register_tool("screwdriver:screwdriver_mithril", { + description = "Screwdriver (left-click rotates face, right-click rotates axis)", + inventory_image = "screwdriver_mithril.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 1400) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 1400) + return itemstack + end, +}) minetest.register_craft({ output = "screwdriver:screwdriver", @@ -111,6 +138,25 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "screwdriver:screwdriver_diamond", + recipe = { + {"default:diamond"}, + {"group:stick"} + } +}) + +if minetest.get_modpath("moreores") then + minetest.register_craft({ + output = "screwdriver:screwdriver_mithril", + recipe = { + {"moreores:mithril_ingot"}, + {"group:stick"} + } + }) +end + + minetest.register_alias("screwdriver:screwdriver1", "screwdriver:screwdriver") minetest.register_alias("screwdriver:screwdriver2", "screwdriver:screwdriver") minetest.register_alias("screwdriver:screwdriver3", "screwdriver:screwdriver") diff --git a/mods/screwdriver/textures/screwdriver_diamond.png b/mods/screwdriver/textures/screwdriver_diamond.png new file mode 100644 index 00000000..4fe38582 Binary files /dev/null and b/mods/screwdriver/textures/screwdriver_diamond.png differ diff --git a/mods/screwdriver/textures/screwdriver_mithril.png b/mods/screwdriver/textures/screwdriver_mithril.png new file mode 100644 index 00000000..80503711 Binary files /dev/null and b/mods/screwdriver/textures/screwdriver_mithril.png differ diff --git a/mods/shadow b/mods/shadow new file mode 160000 index 00000000..2801de7a --- /dev/null +++ b/mods/shadow @@ -0,0 +1 @@ +Subproject commit 2801de7a72438b2bfbd21c476b4b386fe7b893c7