merge upstream 🐱
This commit is contained in:
commit
59d5b8b4ae
19 changed files with 309 additions and 4 deletions
12
.gitmodules
vendored
12
.gitmodules
vendored
|
@ -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
|
||||
|
|
1
mods/another_charcoal
Submodule
1
mods/another_charcoal
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit b0101ba333c71c9c1eec850918159173e78b66f9
|
2
mods/bonemeal/depends.txt
Normal file
2
mods/bonemeal/depends.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
dye
|
225
mods/bonemeal/init.lua
Normal file
225
mods/bonemeal/init.lua
Normal file
|
@ -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,
|
||||
})
|
BIN
mods/bonemeal/textures/bonemeal.png
Normal file
BIN
mods/bonemeal/textures/bonemeal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 186 B |
BIN
mods/bonemeal/textures/bonemeal_particle.png
Normal file
BIN
mods/bonemeal/textures/bonemeal_particle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 B |
1
mods/chat_bubbles
Submodule
1
mods/chat_bubbles
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 48fb8b16b297d3742205ad8f430d8eb8b39cee8d
|
|
@ -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) .. "]" ..
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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", {
|
||||
|
|
BIN
mods/default/textures/bone.png
Normal file
BIN
mods/default/textures/bone.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 148 B |
1
mods/golems
Submodule
1
mods/golems
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit a9a7d96bf40c8ba25777eed977356d631bb8f53c
|
|
@ -1 +1 @@
|
|||
Subproject commit 283c9f6b143d44c3ed46f7aafc5c8e560417dc0a
|
||||
Subproject commit 6d207c93d72413d17c7a952fb912d556d5bd4dbd
|
|
@ -1 +1 @@
|
|||
Subproject commit 31db77bab3ef8cd3f63fe1e30d301d9dd944c964
|
||||
Subproject commit 9990b12a1237e95bbf68ebc0abdf633403a64178
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
BIN
mods/screwdriver/textures/screwdriver_diamond.png
Normal file
BIN
mods/screwdriver/textures/screwdriver_diamond.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 377 B |
BIN
mods/screwdriver/textures/screwdriver_mithril.png
Normal file
BIN
mods/screwdriver/textures/screwdriver_mithril.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 354 B |
1
mods/shadow
Submodule
1
mods/shadow
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 2801de7a72438b2bfbd21c476b4b386fe7b893c7
|
Loading…
Add table
Add a link
Reference in a new issue