mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-19 09:31:07 +01:00
Merge branch 'master' into mcl_bamboo_too
# Conflicts: # mods/ITEMS/mcl_bamboo/init.lua
This commit is contained in:
commit
b14f055154
33 changed files with 353 additions and 210 deletions
12
.editorconfig
Normal file
12
.editorconfig
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
|
||||||
|
[*.lua]
|
||||||
|
charset = utf8
|
||||||
|
indent_style = tab
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
keep_one_space_between_table_and_bracket = false
|
||||||
|
spaces_around_operators = true
|
|
@ -8,12 +8,13 @@
|
||||||
|
|
||||||
|
|
||||||
## Maintainers
|
## Maintainers
|
||||||
|
* AncientMariner
|
||||||
* Nicu
|
* Nicu
|
||||||
* cora
|
|
||||||
|
|
||||||
## Previous Maintainers
|
## Previous Maintainers
|
||||||
* Fleckenstein
|
* Fleckenstein
|
||||||
* jordan4ibanez
|
* jordan4ibanez
|
||||||
|
* cora
|
||||||
|
|
||||||
## Developers
|
## Developers
|
||||||
* bzoss
|
* bzoss
|
||||||
|
@ -35,7 +36,6 @@
|
||||||
* MrRar
|
* MrRar
|
||||||
* talamh
|
* talamh
|
||||||
* Faerraven
|
* Faerraven
|
||||||
* AncientMariner
|
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
* Laurent Rocher
|
* Laurent Rocher
|
||||||
|
|
|
@ -74,6 +74,8 @@ Please read <http://minecraft.gamepedia.com/Breaking> to learn how digging times
|
||||||
* `coral_species=X`: Specifies the species of a coral; equal X means equal species
|
* `coral_species=X`: Specifies the species of a coral; equal X means equal species
|
||||||
* `set_on_fire=X`: Sets any (not fire-resistant) mob or player on fire for X seconds when touching
|
* `set_on_fire=X`: Sets any (not fire-resistant) mob or player on fire for X seconds when touching
|
||||||
* `compostability=X`: Item can be used on a composter block; X (1-100) is the % chance of adding a level of compost
|
* `compostability=X`: Item can be used on a composter block; X (1-100) is the % chance of adding a level of compost
|
||||||
|
* `leaves=X`: Node will spotaneously decay if no tree trunk nodes remain within 6 blocks distance.
|
||||||
|
* `leaves_orphan`: See above, these nodes are in the process of decayed.
|
||||||
|
|
||||||
#### Footnotes
|
#### Footnotes
|
||||||
|
|
||||||
|
|
19
RELEASE.md
Normal file
19
RELEASE.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#File to document release steps with a view to evolving into a script
|
||||||
|
|
||||||
|
#Update CREDITS.md
|
||||||
|
#Update version in README.md (soon to be game.conf from of 0.82.0)
|
||||||
|
|
||||||
|
lua tools/generate_ingame_credits.lua
|
||||||
|
|
||||||
|
git add CREDITS.md
|
||||||
|
git add mods/HUD/mcl_credits/people.lua
|
||||||
|
|
||||||
|
git add README.md
|
||||||
|
# To uncomment when applicable
|
||||||
|
#git add game.conf
|
||||||
|
|
||||||
|
git commit -m "Pre-release update credits and set version 0.81.1"
|
||||||
|
|
||||||
|
git tag 0.81.1
|
||||||
|
|
||||||
|
git push origin 0.81.1
|
|
@ -102,6 +102,7 @@ function check_events(dtime)
|
||||||
for _,e in pairs(mcl_events.registered_events) do
|
for _,e in pairs(mcl_events.registered_events) do
|
||||||
local pp = e.cond_start()
|
local pp = e.cond_start()
|
||||||
if pp then
|
if pp then
|
||||||
|
--minetest.log("It's gonna start the raid maybe")
|
||||||
for _,p in pairs(pp) do
|
for _,p in pairs(pp) do
|
||||||
local start = true
|
local start = true
|
||||||
if e.exclusive_to_area then
|
if e.exclusive_to_area then
|
||||||
|
@ -110,11 +111,14 @@ function check_events(dtime)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if start then
|
if start then
|
||||||
|
--minetest.log("It's gonna start the raid definitely")
|
||||||
start_event(p,e)
|
start_event(p,e)
|
||||||
elseif DBG then
|
elseif DBG then
|
||||||
mcl_log("[mcl_events] Event "..e.readable_name.." already active at "..minetest.pos_to_string(vector.round(p.pos)))
|
mcl_log("[mcl_events] Event "..e.readable_name.." already active at "..minetest.pos_to_string(vector.round(p.pos)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
--minetest.log("Do not start this raid")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for idx,ae in pairs(active_events) do
|
for idx,ae in pairs(active_events) do
|
||||||
|
|
|
@ -1397,7 +1397,7 @@ function mob_class:check_smooth_rotation(dtime)
|
||||||
yaw = yaw + (math.random() * 2 - 1) * 5 * dtime
|
yaw = yaw + (math.random() * 2 - 1) * 5 * dtime
|
||||||
end
|
end
|
||||||
self.object:set_yaw(yaw)
|
self.object:set_yaw(yaw)
|
||||||
self:update_roll()
|
--self:update_roll()
|
||||||
end
|
end
|
||||||
-- end rotation
|
-- end rotation
|
||||||
end
|
end
|
||||||
|
|
|
@ -354,7 +354,7 @@ function mob_class:set_yaw(yaw, delay, dtime)
|
||||||
if self.shaking and dtime then
|
if self.shaking and dtime then
|
||||||
yaw = yaw + (math.random() * 2 - 1) * 5 * dtime
|
yaw = yaw + (math.random() * 2 - 1) * 5 * dtime
|
||||||
end
|
end
|
||||||
self:update_roll()
|
--self:update_roll()
|
||||||
return yaw
|
return yaw
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -218,7 +218,7 @@ function mcl_raids.find_villager(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
function mcl_raids.find_bed(pos)
|
function mcl_raids.find_bed(pos)
|
||||||
return minetest.find_node_near(pos,128,{"mcl_beds:bed_red_bottom"})
|
return minetest.find_node_near(pos,32,{"mcl_beds:bed_red_bottom"})
|
||||||
end
|
end
|
||||||
|
|
||||||
function mcl_raids.find_village(pos)
|
function mcl_raids.find_village(pos)
|
||||||
|
@ -293,11 +293,13 @@ mcl_events.register_event("raid",{
|
||||||
exclusive_to_area = 128,
|
exclusive_to_area = 128,
|
||||||
enable_bossbar = true,
|
enable_bossbar = true,
|
||||||
cond_start = function(self)
|
cond_start = function(self)
|
||||||
|
--minetest.log("Cond start raid")
|
||||||
local r = {}
|
local r = {}
|
||||||
for _,p in pairs(minetest.get_connected_players()) do
|
for _,p in pairs(minetest.get_connected_players()) do
|
||||||
if mcl_potions.player_has_effect(p,"bad_omen") then
|
if mcl_potions.player_has_effect(p,"bad_omen") then
|
||||||
local raid_pos = mcl_raids.find_village(p:get_pos())
|
local raid_pos = mcl_raids.find_village(p:get_pos())
|
||||||
if raid_pos then
|
if raid_pos then
|
||||||
|
--minetest.log("We have a raid position. Start raid")
|
||||||
table.insert(r,{ player = p:get_player_name(), pos = raid_pos })
|
table.insert(r,{ player = p:get_player_name(), pos = raid_pos })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,8 +13,8 @@ function mcl_weather.set_sky_box_clear(player)
|
||||||
day_horizon = "#B4D0FF",
|
day_horizon = "#B4D0FF",
|
||||||
dawn_sky = "#B4BAFA",
|
dawn_sky = "#B4BAFA",
|
||||||
dawn_horizon = "#BAC1F0",
|
dawn_horizon = "#BAC1F0",
|
||||||
night_sky = "#006AFF",
|
night_sky = "#000000",
|
||||||
night_horizon = "#4090FF",
|
night_horizon = "#4A6790",
|
||||||
},
|
},
|
||||||
clouds = true,
|
clouds = true,
|
||||||
})
|
})
|
||||||
|
|
|
@ -10,10 +10,14 @@ local function spawn_zombies(self)
|
||||||
local p = vector.offset(nn[i%#nn],0,1,0)
|
local p = vector.offset(nn[i%#nn],0,1,0)
|
||||||
if check_spawn_pos(p) then
|
if check_spawn_pos(p) then
|
||||||
local m = mcl_mobs.spawn(p,"mobs_mc:zombie")
|
local m = mcl_mobs.spawn(p,"mobs_mc:zombie")
|
||||||
local l = m:get_luaentity()
|
if m then
|
||||||
l:gopath(self.pos)
|
local l = m:get_luaentity()
|
||||||
table.insert(self.mobs,m)
|
l:gopath(self.pos)
|
||||||
self.health_max = self.health_max + l.health
|
table.insert(self.mobs, m)
|
||||||
|
self.health_max = self.health_max + l.health
|
||||||
|
else
|
||||||
|
--minetest.log("Failed to spawn zombie at location: " .. minetest.pos_to_string(p))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -26,15 +30,24 @@ mcl_events.register_event("zombie_siege",{
|
||||||
exclusive_to_area = 128,
|
exclusive_to_area = 128,
|
||||||
enable_bossbar = false,
|
enable_bossbar = false,
|
||||||
cond_start = function(self)
|
cond_start = function(self)
|
||||||
|
--minetest.log("Cond start zs")
|
||||||
|
local r = {}
|
||||||
|
|
||||||
|
local t = minetest.get_timeofday()
|
||||||
local pr = PseudoRandom(minetest.get_day_count())
|
local pr = PseudoRandom(minetest.get_day_count())
|
||||||
local rnd = pr:next(1,10)
|
local rnd = pr:next(1,10)
|
||||||
local t = minetest.get_timeofday()
|
|
||||||
local r = {}
|
if t < 0.04 and rnd == 1 then
|
||||||
for _,p in pairs(minetest.get_connected_players()) do
|
--minetest.log("Well, it's siege time")
|
||||||
local village = mcl_raids.find_village(p:get_pos())
|
for _,p in pairs(minetest.get_connected_players()) do
|
||||||
if t < 0.04 and village and rnd == 1 then
|
local village = mcl_raids.find_village(p:get_pos())
|
||||||
table.insert(r,{ player = p:get_player_name(), pos = village})
|
if village then
|
||||||
|
--minetest.log("Found village")
|
||||||
|
table.insert(r,{ player = p:get_player_name(), pos = village})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
--minetest.log("Not night for a siege, or not success")
|
||||||
end
|
end
|
||||||
if #r > 0 then return r end
|
if #r > 0 then return r end
|
||||||
end,
|
end,
|
||||||
|
|
|
@ -9,12 +9,13 @@ return {
|
||||||
"Wuzzy",
|
"Wuzzy",
|
||||||
}},
|
}},
|
||||||
{S("Maintainers"), 0xFF51D5, {
|
{S("Maintainers"), 0xFF51D5, {
|
||||||
|
"AncientMariner",
|
||||||
"Nicu",
|
"Nicu",
|
||||||
"cora",
|
|
||||||
}},
|
}},
|
||||||
{S("Previous Maintainers"), 0xFFFFFF, {
|
{S("Previous Maintainers"), 0xFFFFFF, {
|
||||||
"Fleckenstein",
|
"Fleckenstein",
|
||||||
"jordan4ibanez",
|
"jordan4ibanez",
|
||||||
|
"cora",
|
||||||
}},
|
}},
|
||||||
{S("Developers"), 0xF84355, {
|
{S("Developers"), 0xF84355, {
|
||||||
"bzoss",
|
"bzoss",
|
||||||
|
@ -36,7 +37,6 @@ return {
|
||||||
"MrRar",
|
"MrRar",
|
||||||
"talamh",
|
"talamh",
|
||||||
"Faerraven",
|
"Faerraven",
|
||||||
"AncientMariner",
|
|
||||||
}},
|
}},
|
||||||
{S("Contributors"), 0x52FF00, {
|
{S("Contributors"), 0x52FF00, {
|
||||||
"Laurent Rocher",
|
"Laurent Rocher",
|
||||||
|
|
|
@ -8,6 +8,12 @@
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local S = minetest.get_translator(modname)
|
local S = minetest.get_translator(modname)
|
||||||
local bamboo = "mcl_bamboo:bamboo"
|
local bamboo = "mcl_bamboo:bamboo"
|
||||||
|
local adj_nodes = {
|
||||||
|
vector.new(0, 0, 1),
|
||||||
|
vector.new(0, 0, -1),
|
||||||
|
vector.new(1, 0, 0),
|
||||||
|
vector.new(-1, 0, 0),
|
||||||
|
}
|
||||||
local node_sound = mcl_sounds.node_sound_wood_defaults()
|
local node_sound = mcl_sounds.node_sound_wood_defaults()
|
||||||
|
|
||||||
-- CONSTS
|
-- CONSTS
|
||||||
|
@ -20,6 +26,25 @@ local USE_END_CAPS = false
|
||||||
local BROKEN_DOORS = true
|
local BROKEN_DOORS = true
|
||||||
|
|
||||||
-- LOCAL FUNCTIONS
|
-- LOCAL FUNCTIONS
|
||||||
|
|
||||||
|
-- Add Groups function, courtesy of Warr1024.
|
||||||
|
function addgroups(name, ...)
|
||||||
|
local def = minetest.registered_items[name] or error(name .. " not found")
|
||||||
|
local groups = {}
|
||||||
|
for k, v in pairs(def.groups) do
|
||||||
|
groups[k] = v
|
||||||
|
end
|
||||||
|
local function addall(x, ...)
|
||||||
|
if not x then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
groups[x] = 1
|
||||||
|
return addall(...)
|
||||||
|
end
|
||||||
|
addall(...)
|
||||||
|
return minetest.override_item(name, {groups = groups})
|
||||||
|
end
|
||||||
|
|
||||||
local function create_nodes()
|
local function create_nodes()
|
||||||
|
|
||||||
local bamboo_def = {
|
local bamboo_def = {
|
||||||
|
@ -105,18 +130,16 @@ local function create_nodes()
|
||||||
local new_pos = vector.offset(pos, 0, 1, 0)
|
local new_pos = vector.offset(pos, 0, 1, 0)
|
||||||
local node_above = minetest.get_node(new_pos)
|
local node_above = minetest.get_node(new_pos)
|
||||||
if node_above and node_above.name == "mcl_bamboo:bamboo" then
|
if node_above and node_above.name == "mcl_bamboo:bamboo" then
|
||||||
if node_above and node_above.name == "mcl_bamboo:bamboo" then
|
local sound_params = {
|
||||||
local sound_params = {
|
pos = new_pos,
|
||||||
pos = new_pos,
|
gain = 1.0, -- default
|
||||||
gain = 1.0, -- default
|
max_hear_distance = 10, -- default, uses a Euclidean metric
|
||||||
max_hear_distance = 10, -- default, uses a Euclidean metric
|
}
|
||||||
}
|
|
||||||
|
|
||||||
minetest.remove_node(new_pos)
|
minetest.remove_node(new_pos)
|
||||||
minetest.sound_play(node_sound.dug, sound_params, true)
|
minetest.sound_play(node_sound.dug, sound_params, true)
|
||||||
local istack = ItemStack("mcl_bamboo:bamboo")
|
local istack = ItemStack("mcl_bamboo:bamboo")
|
||||||
minetest.add_item(new_pos, istack)
|
minetest.add_item(new_pos, istack)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
@ -170,7 +193,7 @@ local function create_nodes()
|
||||||
local bamboo_block_def = {
|
local bamboo_block_def = {
|
||||||
description = "Bamboo Block",
|
description = "Bamboo Block",
|
||||||
tiles = {"mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_block.png"},
|
tiles = {"mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_block.png"},
|
||||||
groups = {handy = 1, building_block = 1, axey = 1, flammable = 2, material_wood = 1, fire_encouragement = 5, fire_flammability = 5},
|
groups = {handy = 1, building_block = 1, axey = 1, flammable = 2, material_wood = 1, bamboo_block = 1, fire_encouragement = 5, fire_flammability = 5},
|
||||||
sounds = node_sound,
|
sounds = node_sound,
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
drops = "mcl_bamboo:bamboo_block",
|
drops = "mcl_bamboo:bamboo_block",
|
||||||
|
@ -204,7 +227,7 @@ local function create_nodes()
|
||||||
minetest.register_node("mcl_bamboo:bamboo_block", bamboo_block_def)
|
minetest.register_node("mcl_bamboo:bamboo_block", bamboo_block_def)
|
||||||
local bamboo_stripped_block = table.copy(bamboo_block_def)
|
local bamboo_stripped_block = table.copy(bamboo_block_def)
|
||||||
bamboo_stripped_block.on_rightclick = nil
|
bamboo_stripped_block.on_rightclick = nil
|
||||||
bamboo_stripped_block.description = "Bamboo Block"
|
bamboo_stripped_block.description = S("Stripped Bamboo Block")
|
||||||
bamboo_stripped_block.tiles = {"mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_block_stripped.png"}
|
bamboo_stripped_block.tiles = {"mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_bottom.png", "mcl_bamboo_bamboo_block_stripped.png"}
|
||||||
minetest.register_node("mcl_bamboo:bamboo_block_stripped", bamboo_stripped_block)
|
minetest.register_node("mcl_bamboo:bamboo_block_stripped", bamboo_stripped_block)
|
||||||
minetest.register_node("mcl_bamboo:bamboo_plank", {
|
minetest.register_node("mcl_bamboo:bamboo_plank", {
|
||||||
|
@ -335,6 +358,22 @@ local function create_nodes()
|
||||||
S("Bamboo Plank Slab"),
|
S("Bamboo Plank Slab"),
|
||||||
S("Double Bamboo Plank Slab")
|
S("Double Bamboo Plank Slab")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- let's add plank slabs to the wood_slab group.
|
||||||
|
local bamboo_plank_slab = "mcl_stairs:slab_bamboo_plank"
|
||||||
|
local node_groups = {
|
||||||
|
wood_slab = 1,
|
||||||
|
building_block = 1,
|
||||||
|
slab = 1,
|
||||||
|
axey = 1,
|
||||||
|
handy = 1,
|
||||||
|
stair = 1,
|
||||||
|
flammable = 1,
|
||||||
|
fire_encouragement = 5,
|
||||||
|
fire_flammability = 20
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.override_item(bamboo_plank_slab, {groups = node_groups})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -394,7 +433,7 @@ local function create_nodes()
|
||||||
-- Bamboo Signs...
|
-- Bamboo Signs...
|
||||||
mcl_signs.register_sign_custom("mcl_bamboo", "_bamboo", "mcl_signs_sign_greyscale.png",
|
mcl_signs.register_sign_custom("mcl_bamboo", "_bamboo", "mcl_signs_sign_greyscale.png",
|
||||||
"#f6dc91", "default_sign_greyscale.png", "default_sign_greyscale.png",
|
"#f6dc91", "default_sign_greyscale.png", "default_sign_greyscale.png",
|
||||||
S("Bamboo Sign"))
|
"Bamboo Sign")
|
||||||
mcl_signs.register_sign_craft("mcl_bamboo", "mcl_bamboo:bamboo_plank", "_bamboo")
|
mcl_signs.register_sign_craft("mcl_bamboo", "mcl_bamboo:bamboo_plank", "_bamboo")
|
||||||
minetest.register_alias("bamboo_sign", "mcl_signs:wall_sign_bamboo")
|
minetest.register_alias("bamboo_sign", "mcl_signs:wall_sign_bamboo")
|
||||||
end
|
end
|
||||||
|
@ -447,7 +486,7 @@ local function create_nodes()
|
||||||
"mcl_bamboo_bamboo_plank.png",
|
"mcl_bamboo_bamboo_plank.png",
|
||||||
"mcl_bamboo:bamboo_plank",
|
"mcl_bamboo:bamboo_plank",
|
||||||
node_sound,
|
node_sound,
|
||||||
{material_wood = 1, handy = 1, pickaxey = 1},
|
{material_wood = 1, handy = 1, pickaxey = 1, flammable = 3, fire_flammability = 20, fire_encouragement = 5, },
|
||||||
1,
|
1,
|
||||||
false,
|
false,
|
||||||
S("A bamboo button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second."),
|
S("A bamboo button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second."),
|
||||||
|
@ -535,18 +574,16 @@ local function create_nodes()
|
||||||
local new_pos = vector.offset(pos, 0, 1, 0)
|
local new_pos = vector.offset(pos, 0, 1, 0)
|
||||||
local node_above = minetest.get_node(new_pos)
|
local node_above = minetest.get_node(new_pos)
|
||||||
if node_above and node_above.name == "mcl_bamboo:scaffolding" then
|
if node_above and node_above.name == "mcl_bamboo:scaffolding" then
|
||||||
if node_above and node_above.name == "mcl_bamboo:scaffolding" then
|
local sound_params = {
|
||||||
local sound_params = {
|
pos = new_pos,
|
||||||
pos = new_pos,
|
gain = 1.0, -- default
|
||||||
gain = 1.0, -- default
|
max_hear_distance = 10, -- default, uses a Euclidean metric
|
||||||
max_hear_distance = 10, -- default, uses a Euclidean metric
|
}
|
||||||
}
|
|
||||||
|
|
||||||
minetest.remove_node(new_pos)
|
minetest.remove_node(new_pos)
|
||||||
minetest.sound_play(node_sound.dug, sound_params, true)
|
minetest.sound_play(node_sound.dug, sound_params, true)
|
||||||
local istack = ItemStack("mcl_bamboo:scaffolding")
|
local istack = ItemStack("mcl_bamboo:scaffolding")
|
||||||
minetest.add_item(new_pos, istack)
|
minetest.add_item(new_pos, istack)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
@ -573,6 +610,13 @@ local function register_craftings()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = bamboo .. "_plank 2",
|
||||||
|
recipe = {
|
||||||
|
{bamboo .. "_block_stripped"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_core:stick",
|
output = "mcl_core:stick",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -647,6 +691,29 @@ local function register_craftings()
|
||||||
recipe = "mcl_bamboo:scaffolding",
|
recipe = "mcl_bamboo:scaffolding",
|
||||||
burntime = 20
|
burntime = 20
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mcl_stairs:slab_bamboo_plank",
|
||||||
|
burntime = 7.5,
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mcl_stairs:slab_bamboo_block",
|
||||||
|
burntime = 7.5,
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mcl_stairs:slab_bamboo_stripped",
|
||||||
|
burntime = 7.5,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mesecons_button:button_bamboo_off",
|
||||||
|
burntime = 5,
|
||||||
|
})
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
create_nodes()
|
create_nodes()
|
||||||
|
@ -661,6 +728,8 @@ dofile(minetest.get_modpath(modname) .. "/bambootoo.lua")
|
||||||
-- BAMBOO EXTRAS
|
-- BAMBOO EXTRAS
|
||||||
dofile(minetest.get_modpath(modname) .. "/extras.lua")
|
dofile(minetest.get_modpath(modname) .. "/extras.lua")
|
||||||
|
|
||||||
|
local BAMBOO_MAX_HEIGHT_CHECK = -16
|
||||||
|
|
||||||
--ABMs
|
--ABMs
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {"mcl_bamboo:bamboo"},
|
nodenames = {"mcl_bamboo:bamboo"},
|
||||||
|
@ -672,7 +741,7 @@ minetest.register_abm({
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local found_soil = false
|
local found_soil = false
|
||||||
for py = -1, -16, -1 do
|
for py = -1, BAMBOO_MAX_HEIGHT_CHECK, -1 do
|
||||||
local chk_pos = vector.offset(pos, 0, py, 0)
|
local chk_pos = vector.offset(pos, 0, py, 0)
|
||||||
local name = minetest.get_node(chk_pos).name
|
local name = minetest.get_node(chk_pos).name
|
||||||
if minetest.get_item_group(name, "soil") ~= 0 then
|
if minetest.get_item_group(name, "soil") ~= 0 then
|
||||||
|
@ -732,4 +801,8 @@ todo: Added a new "Mosaic" plank variant that is unique to Bamboo called Bamboo
|
||||||
You can craft Stair and Slab variants of Bamboo Mosaic
|
You can craft Stair and Slab variants of Bamboo Mosaic
|
||||||
Bamboo Mosaic blocks cannot be used as a crafting ingredient where other wooden blocks are used, but they can be
|
Bamboo Mosaic blocks cannot be used as a crafting ingredient where other wooden blocks are used, but they can be
|
||||||
used as fuel.
|
used as fuel.
|
||||||
--]]
|
|
||||||
|
todo -- add in fuel recipes for:
|
||||||
|
[-] bamboo slab + stripped bamboo slab
|
||||||
|
[-] bamboo stair + stripped bamboo stair + bamboo plank stair
|
||||||
|
--]]
|
||||||
|
|
|
@ -6,27 +6,6 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
--local mod_doc = minetest.get_modpath("doc") -> maybe add documentation ?
|
--local mod_doc = minetest.get_modpath("doc") -> maybe add documentation ?
|
||||||
|
|
||||||
for i=0,4 do
|
for i=0,4 do
|
||||||
local nodebox_uncharged = { --Reused the composter nodebox, since it is basicly the same
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall
|
|
||||||
{ 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall
|
|
||||||
{-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall
|
|
||||||
{-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, -0.47, 0.5}, -- Bottom level, -0.47 because -0.5 is so low that you can see the texture of the block below through
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local nodebox_charged = { --Reused the composter nodebox, since it is basicly the same
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall
|
|
||||||
{ 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall
|
|
||||||
{-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall
|
|
||||||
{-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local function rightclick(pos, node, player, itemstack)
|
local function rightclick(pos, node, player, itemstack)
|
||||||
if itemstack.get_name(itemstack) == "mcl_nether:glowstone" and i ~= 4 then
|
if itemstack.get_name(itemstack) == "mcl_nether:glowstone" and i ~= 4 then
|
||||||
|
@ -54,8 +33,6 @@ for i=0,4 do
|
||||||
"respawn_anchor_bottom.png",
|
"respawn_anchor_bottom.png",
|
||||||
"respawn_anchor_side0.png"
|
"respawn_anchor_side0.png"
|
||||||
},
|
},
|
||||||
drawtype = "nodebox",
|
|
||||||
node_box = nodebox_uncharged,
|
|
||||||
on_rightclick = rightclick,
|
on_rightclick = rightclick,
|
||||||
groups = {pickaxey=1, material_stone=1},
|
groups = {pickaxey=1, material_stone=1},
|
||||||
_mcl_hardness = 22.5,
|
_mcl_hardness = 22.5,
|
||||||
|
@ -68,14 +45,12 @@ for i=0,4 do
|
||||||
description=S("Respawn Anchor"),
|
description=S("Respawn Anchor"),
|
||||||
tiles = {
|
tiles = {
|
||||||
{
|
{
|
||||||
image="respawn_anchor_top_on.png",
|
image="respawn_anchor_top_on.png^[noalpha",
|
||||||
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
||||||
},
|
},
|
||||||
"respawn_anchor_bottom.png",
|
"respawn_anchor_bottom.png",
|
||||||
"respawn_anchor_side"..i ..".png"
|
"respawn_anchor_side"..i ..".png"
|
||||||
},
|
},
|
||||||
drawtype = "nodebox",
|
|
||||||
node_box = nodebox_charged,
|
|
||||||
on_rightclick = rightclick,
|
on_rightclick = rightclick,
|
||||||
groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1},
|
groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1},
|
||||||
_mcl_hardness = 22.5,
|
_mcl_hardness = 22.5,
|
||||||
|
|
|
@ -9,7 +9,7 @@ end
|
||||||
--Blocks
|
--Blocks
|
||||||
minetest.register_node("mcl_blackstone:blackstone", {
|
minetest.register_node("mcl_blackstone:blackstone", {
|
||||||
description = S("Blackstone"),
|
description = S("Blackstone"),
|
||||||
tiles = {"mcl_blackstone.png"},
|
tiles = {"mcl_blackstone_top.png", "mcl_blackstone_top.png", "mcl_blackstone_side.png"},
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky = 3, pickaxey=2, material_stone=1, cobble=1},
|
groups = {cracky = 3, pickaxey=2, material_stone=1, cobble=1},
|
||||||
|
@ -18,7 +18,7 @@ minetest.register_node("mcl_blackstone:blackstone", {
|
||||||
})
|
})
|
||||||
minetest.register_node("mcl_blackstone:blackstone_gilded", {
|
minetest.register_node("mcl_blackstone:blackstone_gilded", {
|
||||||
description = S("Gilded Blackstone"),
|
description = S("Gilded Blackstone"),
|
||||||
tiles = {"mcl_blackstone.png^mcl_blackstone_gilded_side.png"},
|
tiles = {"mcl_blackstone_gilded.png"},
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1},
|
groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1},
|
||||||
|
@ -40,7 +40,7 @@ minetest.register_node("mcl_blackstone:blackstone_gilded", {
|
||||||
})
|
})
|
||||||
minetest.register_node("mcl_blackstone:nether_gold", {
|
minetest.register_node("mcl_blackstone:nether_gold", {
|
||||||
description = S("Nether Gold Ore"),
|
description = S("Nether Gold Ore"),
|
||||||
tiles = {"mcl_nether_netherrack.png^mcl_blackstone_gilded_side.png"},
|
tiles = {"mcl_nether_gold_ore.png"},
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1},
|
groups = {cracky = 3, pickaxey=2, material_stone=1, xp=1},
|
||||||
|
|
BIN
mods/ITEMS/mcl_blackstone/textures/mcl_blackstone_gilded.png
Normal file
BIN
mods/ITEMS/mcl_blackstone/textures/mcl_blackstone_gilded.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 596 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
mods/ITEMS/mcl_blackstone/textures/mcl_blackstone_top.png
Normal file
BIN
mods/ITEMS/mcl_blackstone/textures/mcl_blackstone_top.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -1367,108 +1367,46 @@ function mcl_core.supports_vines(nodename)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Leaf Decay
|
-- Leaf Decay
|
||||||
|
|
||||||
-- To enable leaf decay for a node, add it to the "leafdecay" group.
|
|
||||||
--
|
--
|
||||||
-- The rating of the group determines how far from a node in the group "tree"
|
-- Whenever a tree trunk node is removed, all `group:leaves` nodes in a radius
|
||||||
-- the node can be without decaying.
|
-- of 6 blocks are checked from the trunk node's `after_destruct` handler.
|
||||||
|
-- Any such nodes within that radius that has no trunk node present within a
|
||||||
|
-- distance of 6 blocks is replaced with a `group:orphan_leaves` node.
|
||||||
--
|
--
|
||||||
-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if
|
-- The `group:orphan_leaves` nodes are gradually decayed in this ABM.
|
||||||
-- the player places a node of that kind, you will want to set param2=1 or so.
|
|
||||||
--
|
|
||||||
|
|
||||||
mcl_core.leafdecay_trunk_cache = {}
|
|
||||||
mcl_core.leafdecay_enable_cache = true
|
|
||||||
-- Spread the load of finding trunks
|
|
||||||
mcl_core.leafdecay_trunk_find_allow_accumulator = 0
|
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
|
||||||
--local finds_per_second = 5000
|
|
||||||
mcl_core.leafdecay_trunk_find_allow_accumulator = math.floor(dtime * 5000)
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Leaf decay",
|
label = "Leaf decay",
|
||||||
nodenames = {"group:leafdecay"},
|
nodenames = {"group:orphan_leaves"},
|
||||||
neighbors = {"air", "group:liquid"},
|
interval = 5,
|
||||||
-- A low interval and a high inverse chance spreads the load
|
chance = 10,
|
||||||
interval = 2,
|
action = function(pos, node)
|
||||||
chance = 5,
|
-- Spawn item entities for any of the leaf's drops
|
||||||
|
local itemstacks = minetest.get_node_drops(node.name)
|
||||||
|
for _, itemname in pairs(itemstacks) do
|
||||||
|
local p_drop = vector.offset(pos, math.random() - 0.5, math.random() - 0.5, math.random() - 0.5)
|
||||||
|
minetest.add_item(p_drop, itemname)
|
||||||
|
end
|
||||||
|
-- Remove the decayed node
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
leafdecay_particles(pos, node)
|
||||||
|
minetest.check_for_falling(pos)
|
||||||
|
|
||||||
action = function(p0, node, _, _)
|
-- Kill depending vines immediately to skip the vines decay delay
|
||||||
local do_preserve = false
|
local surround = {
|
||||||
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
{ x = 0, y = 0, z = -1 },
|
||||||
if not d or d == 0 then
|
{ x = 0, y = 0, z = 1 },
|
||||||
return
|
{ x = -1, y = 0, z = 0 },
|
||||||
end
|
{ x = 1, y = 0, z = 0 },
|
||||||
local n0 = minetest.get_node(p0)
|
{ x = 0, y = -1, z = -1 },
|
||||||
if n0.param2 ~= 0 then
|
}
|
||||||
-- Prevent leafdecay for player-placed leaves.
|
for s=1, #surround do
|
||||||
-- param2 is set to 1 after it was placed by the player
|
local spos = vector.add(pos, surround[s])
|
||||||
return
|
local maybe_vine = minetest.get_node(spos)
|
||||||
end
|
--local surround_inverse = vector.multiply(surround[s], -1)
|
||||||
local p0_hash = nil
|
if maybe_vine.name == "mcl_core:vine" and (not mcl_core.check_vines_supported(spos, maybe_vine)) then
|
||||||
if mcl_core.leafdecay_enable_cache then
|
minetest.remove_node(spos)
|
||||||
p0_hash = minetest.hash_node_position(p0)
|
vinedecay_particles(spos, maybe_vine)
|
||||||
local trunkp = mcl_core.leafdecay_trunk_cache[p0_hash]
|
minetest.check_for_falling(spos)
|
||||||
if trunkp then
|
|
||||||
local n = minetest.get_node(trunkp)
|
|
||||||
local reg = minetest.registered_nodes[n.name]
|
|
||||||
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
|
||||||
if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
-- Cache is invalid
|
|
||||||
table.remove(mcl_core.leafdecay_trunk_cache, p0_hash)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if mcl_core.leafdecay_trunk_find_allow_accumulator <= 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
mcl_core.leafdecay_trunk_find_allow_accumulator =
|
|
||||||
mcl_core.leafdecay_trunk_find_allow_accumulator - 1
|
|
||||||
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
|
||||||
local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"})
|
|
||||||
if p1 then
|
|
||||||
do_preserve = true
|
|
||||||
if mcl_core.leafdecay_enable_cache then
|
|
||||||
-- Cache the trunk
|
|
||||||
mcl_core.leafdecay_trunk_cache[p0_hash] = p1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not do_preserve then
|
|
||||||
-- Drop stuff other than the node itself
|
|
||||||
local itemstacks = minetest.get_node_drops(n0.name)
|
|
||||||
for _, itemname in pairs(itemstacks) do
|
|
||||||
local p_drop = {
|
|
||||||
x = p0.x - 0.5 + math.random(),
|
|
||||||
y = p0.y - 0.5 + math.random(),
|
|
||||||
z = p0.z - 0.5 + math.random(),
|
|
||||||
}
|
|
||||||
minetest.add_item(p_drop, itemname)
|
|
||||||
end
|
|
||||||
-- Remove node
|
|
||||||
minetest.remove_node(p0)
|
|
||||||
leafdecay_particles(p0, n0)
|
|
||||||
minetest.check_for_falling(p0)
|
|
||||||
|
|
||||||
-- Kill depending vines immediately to skip the vines decay delay
|
|
||||||
local surround = {
|
|
||||||
{ x = 0, y = 0, z = -1 },
|
|
||||||
{ x = 0, y = 0, z = 1 },
|
|
||||||
{ x = -1, y = 0, z = 0 },
|
|
||||||
{ x = 1, y = 0, z = 0 },
|
|
||||||
{ x = 0, y = -1, z = -1 },
|
|
||||||
}
|
|
||||||
for s=1, #surround do
|
|
||||||
local spos = vector.add(p0, surround[s])
|
|
||||||
local maybe_vine = minetest.get_node(spos)
|
|
||||||
--local surround_inverse = vector.multiply(surround[s], -1)
|
|
||||||
if maybe_vine.name == "mcl_core:vine" and (not mcl_core.check_vines_supported(spos, maybe_vine)) then
|
|
||||||
minetest.remove_node(spos)
|
|
||||||
vinedecay_particles(spos, maybe_vine)
|
|
||||||
minetest.check_for_falling(spos)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,6 +8,40 @@ if mod_screwdriver then
|
||||||
on_rotate = screwdriver.rotate_3way
|
on_rotate = screwdriver.rotate_3way
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check dug/destroyed tree trunks for orphaned leaves.
|
||||||
|
--
|
||||||
|
-- This function is meant to be called by the `after_destruct` handler of
|
||||||
|
-- treetrunk nodes.
|
||||||
|
--
|
||||||
|
-- Whenever a trunk node is removed, all `group:leaves` nodes in a sphere
|
||||||
|
-- with radius 6 are checked. Every such node that does not have a trunk
|
||||||
|
-- node within a distance of 6 blocks is converted into a orphan leaf node.
|
||||||
|
-- An ABM will gradually decay these nodes.
|
||||||
|
--
|
||||||
|
-- If param2 of the node is set to a nonzero value, the node will always
|
||||||
|
-- be preserved. This is set automatically when leaves are placed manually.
|
||||||
|
--
|
||||||
|
-- @param pos the position of the removed trunk node.
|
||||||
|
-- @param oldnode the node table of the removed trunk node.
|
||||||
|
function mcl_core.update_leaves(pos, oldnode)
|
||||||
|
local pos1, pos2 = vector.offset(pos, -6, -6, -6), vector.offset(pos, 6, 6, 6)
|
||||||
|
local lnode
|
||||||
|
local leaves = minetest.find_nodes_in_area(pos1, pos2, "group:leaves")
|
||||||
|
for _, lpos in pairs(leaves) do
|
||||||
|
lnode = minetest.get_node(lpos)
|
||||||
|
-- skip already decaying leaf nodes
|
||||||
|
if minetest.get_item_group(lnode.name, "orphan_leaves") ~= 1 then
|
||||||
|
if not minetest.find_node_near(lpos, 6, "group:tree") then
|
||||||
|
-- manually placed leaf nodes have param2
|
||||||
|
-- set and will never decay automatically
|
||||||
|
if lnode.param2 == 0 then
|
||||||
|
minetest.swap_node(lpos, {name = lnode.name .. "_orphan"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Register tree trunk (wood) and bark
|
-- Register tree trunk (wood) and bark
|
||||||
local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_variant)
|
local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_variant)
|
||||||
minetest.register_node("mcl_core:"..subname, {
|
minetest.register_node("mcl_core:"..subname, {
|
||||||
|
@ -17,6 +51,7 @@ local function register_tree_trunk(subname, description_trunk, description_bark,
|
||||||
tiles = {tile_inner, tile_inner, tile_bark},
|
tiles = {tile_inner, tile_inner, tile_bark},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
|
after_destruct = mcl_core.update_leaves,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
|
@ -107,10 +142,7 @@ local function register_wooden_planks(subname, description, tiles)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance)
|
local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances)
|
||||||
if leafdecay_distance == nil then
|
|
||||||
leafdecay_distance = 4
|
|
||||||
end
|
|
||||||
local apple_chances = {200, 180, 160, 120, 40}
|
local apple_chances = {200, 180, 160, 120, 40}
|
||||||
local stick_chances = {50, 45, 30, 35, 10}
|
local stick_chances = {50, 45, 30, 35, 10}
|
||||||
|
|
||||||
|
@ -141,7 +173,7 @@ local function register_leaves(subname, description, longdesc, tiles, sapling, d
|
||||||
return drop
|
return drop
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("mcl_core:"..subname, {
|
local l_def = {
|
||||||
description = description,
|
description = description,
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
_doc_items_hidden = false,
|
_doc_items_hidden = false,
|
||||||
|
@ -153,9 +185,8 @@ local function register_leaves(subname, description, longdesc, tiles, sapling, d
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {
|
groups = {
|
||||||
handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1,
|
handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1,
|
||||||
leaves = 1, leafdecay = leafdecay_distance, deco_block = 1,
|
|
||||||
flammable = 2, fire_encouragement = 30, fire_flammability = 60,
|
flammable = 2, fire_encouragement = 30, fire_flammability = 60,
|
||||||
compostability = 30
|
leaves = 1, deco_block = 1, compostability = 30
|
||||||
},
|
},
|
||||||
drop = get_drops(0),
|
drop = get_drops(0),
|
||||||
_mcl_shears_drop = true,
|
_mcl_shears_drop = true,
|
||||||
|
@ -164,7 +195,19 @@ local function register_leaves(subname, description, longdesc, tiles, sapling, d
|
||||||
_mcl_hardness = 0.2,
|
_mcl_hardness = 0.2,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
|
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
|
||||||
})
|
}
|
||||||
|
|
||||||
|
minetest.register_node("mcl_core:" .. subname, l_def)
|
||||||
|
|
||||||
|
local o_def = table.copy(l_def)
|
||||||
|
o_def._doc_items_create_entry = false
|
||||||
|
o_def.place_param2 = nil
|
||||||
|
o_def.groups.not_in_creative_inventory = 1
|
||||||
|
o_def.groups.orphan_leaves = 1
|
||||||
|
o_def._mcl_shears_drop = {"mcl_core:" .. subname}
|
||||||
|
o_def._mcl_silk_touch_drop = {"mcl_core:" .. subname}
|
||||||
|
|
||||||
|
minetest.register_node("mcl_core:" .. subname .. "_orphan", o_def)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function register_sapling(subname, description, longdesc, tt_help, texture, selbox)
|
local function register_sapling(subname, description, longdesc, tt_help, texture, selbox)
|
||||||
|
|
|
@ -283,10 +283,10 @@ minetest.register_node("mcl_crimson:warped_hyphae", {
|
||||||
tiles = {
|
tiles = {
|
||||||
"warped_hyphae.png",
|
"warped_hyphae.png",
|
||||||
"warped_hyphae.png",
|
"warped_hyphae.png",
|
||||||
"warped_hyphae_side.png",
|
{
|
||||||
"warped_hyphae_side.png",
|
image="warped_hyphae_side.png",
|
||||||
"warped_hyphae_side.png",
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
||||||
"warped_hyphae_side.png",
|
},
|
||||||
},
|
},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
|
@ -321,7 +321,12 @@ minetest.register_node("mcl_crimson:warped_nylium", {
|
||||||
minetest.register_node("mcl_crimson:warped_hyphae_bark", {
|
minetest.register_node("mcl_crimson:warped_hyphae_bark", {
|
||||||
description = S("Warped Hyphae Bark"),
|
description = S("Warped Hyphae Bark"),
|
||||||
_doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."),
|
_doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."),
|
||||||
tiles = {"warped_hyphae_side.png"},
|
tiles = {
|
||||||
|
{
|
||||||
|
image="warped_hyphae_side.png",
|
||||||
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
||||||
|
},
|
||||||
|
},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1},
|
groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1},
|
||||||
|
@ -468,10 +473,10 @@ minetest.register_node("mcl_crimson:crimson_hyphae", {
|
||||||
tiles = {
|
tiles = {
|
||||||
"crimson_hyphae.png",
|
"crimson_hyphae.png",
|
||||||
"crimson_hyphae.png",
|
"crimson_hyphae.png",
|
||||||
"crimson_hyphae_side.png",
|
{
|
||||||
"crimson_hyphae_side.png",
|
image="crimson_hyphae_side.png",
|
||||||
"crimson_hyphae_side.png",
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
||||||
"crimson_hyphae_side.png",
|
},
|
||||||
},
|
},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
|
@ -487,7 +492,12 @@ minetest.register_node("mcl_crimson:crimson_hyphae", {
|
||||||
minetest.register_node("mcl_crimson:crimson_hyphae_bark", {
|
minetest.register_node("mcl_crimson:crimson_hyphae_bark", {
|
||||||
description = S("Crimson Hyphae Bark"),
|
description = S("Crimson Hyphae Bark"),
|
||||||
_doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."),
|
_doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."),
|
||||||
tiles = {"crimson_hyphae_side.png"},
|
tiles = {
|
||||||
|
{
|
||||||
|
image="crimson_hyphae_side.png",
|
||||||
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}
|
||||||
|
},
|
||||||
|
},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1},
|
groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1},
|
||||||
|
|
|
@ -52,9 +52,9 @@ minetest.register_node("mcl_mangrove:mangrove_tree", {
|
||||||
tiles = {"mcl_mangrove_log_top.png", "mcl_mangrove_log_top.png", "mcl_mangrove_log.png"},
|
tiles = {"mcl_mangrove_log_top.png", "mcl_mangrove_log_top.png", "mcl_mangrove_log.png"},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
|
after_destruct = mcl_core.update_leaves,
|
||||||
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
_mcl_blast_resistance = 2,
|
_mcl_blast_resistance = 2,
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 2,
|
||||||
_mcl_stripped_variant = "mcl_mangrove:mangrove_stripped_trunk",
|
_mcl_stripped_variant = "mcl_mangrove:mangrove_stripped_trunk",
|
||||||
|
@ -86,7 +86,7 @@ minetest.register_node("mcl_mangrove:mangrove_wood", {
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 2,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_mangrove:mangroveleaves", {
|
local l_def = {
|
||||||
description = S("Mangrove Leaves"),
|
description = S("Mangrove Leaves"),
|
||||||
_doc_items_longdesc = S("mangrove leaves are grown from mangrove trees."),
|
_doc_items_longdesc = S("mangrove leaves are grown from mangrove trees."),
|
||||||
_doc_items_hidden = false,
|
_doc_items_hidden = false,
|
||||||
|
@ -95,7 +95,11 @@ minetest.register_node("mcl_mangrove:mangroveleaves", {
|
||||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||||
tiles = {"mcl_mangrove_leaves.png"},
|
tiles = {"mcl_mangrove_leaves.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
groups = {handy=1,shearsy=1,swordy=1, leafdecay=10, flammable=2, leaves=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60},
|
groups = {
|
||||||
|
handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1,
|
||||||
|
flammable = 2, fire_encouragement = 30, fire_flammability = 60,
|
||||||
|
leaves = 1, deco_block = 1, compostability = 30
|
||||||
|
},
|
||||||
drop = get_drops(0),
|
drop = get_drops(0),
|
||||||
_mcl_shears_drop = true,
|
_mcl_shears_drop = true,
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
|
@ -103,7 +107,19 @@ minetest.register_node("mcl_mangrove:mangroveleaves", {
|
||||||
_mcl_hardness = 0.2,
|
_mcl_hardness = 0.2,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
|
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
|
||||||
})
|
}
|
||||||
|
|
||||||
|
minetest.register_node("mcl_mangrove:mangroveleaves", l_def)
|
||||||
|
|
||||||
|
local o_def = table.copy(l_def)
|
||||||
|
o_def._doc_items_create_entry = false
|
||||||
|
o_def.place_param2 = nil
|
||||||
|
o_def.groups.not_in_creative_inventory = 1
|
||||||
|
o_def.groups.orphan_leaves = 1
|
||||||
|
o_def._mcl_shears_drop = {"mcl_mangrove:mangroveleaves"}
|
||||||
|
o_def._mcl_silk_touch_drop = {"mcl_mangrove:mangroveleaves"}
|
||||||
|
|
||||||
|
minetest.register_node("mcl_mangrove:mangroveleaves_orphan", o_def)
|
||||||
|
|
||||||
minetest.register_node("mcl_mangrove:mangrove_stripped_trunk", {
|
minetest.register_node("mcl_mangrove:mangrove_stripped_trunk", {
|
||||||
description = S("Stripped Mangrove Wood"),
|
description = S("Stripped Mangrove Wood"),
|
||||||
|
@ -147,11 +163,13 @@ minetest.register_node("mcl_mangrove:mangrove_roots", {
|
||||||
drawtype = "allfaces_optional",
|
drawtype = "allfaces_optional",
|
||||||
groups = {
|
groups = {
|
||||||
handy = 1, hoey = 1, shearsy = 1, axey = 1, swordy = 1, dig_by_piston = 0,
|
handy = 1, hoey = 1, shearsy = 1, axey = 1, swordy = 1, dig_by_piston = 0,
|
||||||
leaves = 1, deco_block = 1,flammable = 10, fire_encouragement = 30, fire_flammability = 60, compostability = 30
|
flammable = 10, fire_encouragement = 30, fire_flammability = 60,
|
||||||
|
deco_block = 1, compostability = 30
|
||||||
},
|
},
|
||||||
drop = "mcl_mangrove:mangrove_roots",
|
drop = "mcl_mangrove:mangrove_roots",
|
||||||
_mcl_shears_drop = true,
|
_mcl_shears_drop = true,
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(), _mcl_blast_resistance = 0.7,
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
|
_mcl_blast_resistance = 0.7,
|
||||||
_mcl_hardness = 0.7,
|
_mcl_hardness = 0.7,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
_mcl_fortune_drop = { "mcl_mangrove:mangrove_roots 1", "mcl_mangrove:mangrove_roots 2", "mcl_mangrove:mangrove_roots 3", "mcl_mangrove:mangrove_roots 4" },
|
_mcl_fortune_drop = { "mcl_mangrove:mangrove_roots 1", "mcl_mangrove:mangrove_roots 2", "mcl_mangrove:mangrove_roots 3", "mcl_mangrove:mangrove_roots 4" },
|
||||||
|
@ -329,6 +347,9 @@ local wlroots = {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
local rwlroots = table.copy(wlroots)
|
local rwlroots = table.copy(wlroots)
|
||||||
|
-- FIXME luacheck complains that this is a repeated definition of water_tex.
|
||||||
|
-- Maybe the tiles definition below should be replaced with the animated tile
|
||||||
|
-- definition as per above?
|
||||||
water_tex = "default_river_water_source_animated.png^[verticalframe:16:0"
|
water_tex = "default_river_water_source_animated.png^[verticalframe:16:0"
|
||||||
rwlroots.tiles = {
|
rwlroots.tiles = {
|
||||||
"("..water_tex..")^mcl_mangrove_roots_top.png",
|
"("..water_tex..")^mcl_mangrove_roots_top.png",
|
||||||
|
|
BIN
mods/ITEMS/mcl_nether/textures/mcl_nether_gold_ore.png
Normal file
BIN
mods/ITEMS/mcl_nether/textures/mcl_nether_gold_ore.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 689 B |
|
@ -17,6 +17,7 @@ mcl_structures.register_structure("pillager_outpost",{
|
||||||
y_max = mcl_vars.mg_overworld_max,
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
biomes = { "Desert", "Plains", "Savanna", "IcePlains", "Taiga" },
|
biomes = { "Desert", "Plains", "Savanna", "IcePlains", "Taiga" },
|
||||||
|
construct_nodes = {"mcl_anvils:anvil_damage_2"},
|
||||||
filenames = {
|
filenames = {
|
||||||
modpath.."/schematics/mcl_structures_pillager_outpost.mts",
|
modpath.."/schematics/mcl_structures_pillager_outpost.mts",
|
||||||
modpath.."/schematics/mcl_structures_pillager_outpost_2.mts"
|
modpath.."/schematics/mcl_structures_pillager_outpost_2.mts"
|
||||||
|
@ -67,7 +68,12 @@ mcl_structures.register_structure("pillager_outpost",{
|
||||||
mcl_structures.spawn_mobs("mobs_mc:pillager",spawnon,p1,p2,pr,5)
|
mcl_structures.spawn_mobs("mobs_mc:pillager",spawnon,p1,p2,pr,5)
|
||||||
mcl_structures.spawn_mobs("mobs_mc:parrot",{"mesecons_pressureplates:pressure_plate_stone_off"},p1,p2,pr,3)
|
mcl_structures.spawn_mobs("mobs_mc:parrot",{"mesecons_pressureplates:pressure_plate_stone_off"},p1,p2,pr,3)
|
||||||
mcl_structures.spawn_mobs("mobs_mc:iron_golem",{"mesecons_button:button_stone_off"},p1,p2,pr,1)
|
mcl_structures.spawn_mobs("mobs_mc:iron_golem",{"mesecons_button:button_stone_off"},p1,p2,pr,1)
|
||||||
mcl_structures.construct_nodes(p1,p2,{"group:wall"})
|
for _,n in pairs(minetest.find_nodes_in_area(p1,p2,{"group:wall"})) do
|
||||||
|
local def = minetest.registered_nodes[minetest.get_node(n).name:gsub("_%d+$","")]
|
||||||
|
if def and def.on_construct then
|
||||||
|
def.on_construct(n)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -20,7 +20,7 @@ mcl_structures.register_structure("woodland_cabin",{
|
||||||
modpath.."/schematics/mcl_structures_woodland_cabin.mts",
|
modpath.."/schematics/mcl_structures_woodland_cabin.mts",
|
||||||
modpath.."/schematics/mcl_structures_woodland_outpost.mts",
|
modpath.."/schematics/mcl_structures_woodland_outpost.mts",
|
||||||
},
|
},
|
||||||
construct_nodes = {"mcl_barrels:barrel_closed"},
|
construct_nodes = {"mcl_barrels:barrel_closed","mcl_books:bookshelf"},
|
||||||
after_place = function(p,def,pr)
|
after_place = function(p,def,pr)
|
||||||
local p1=vector.offset(p,-def.sidelen,-1,-def.sidelen)
|
local p1=vector.offset(p,-def.sidelen,-1,-def.sidelen)
|
||||||
local p2=vector.offset(p,def.sidelen,def.sidelen,def.sidelen)
|
local p2=vector.offset(p,def.sidelen,def.sidelen,def.sidelen)
|
||||||
|
|
|
@ -52,16 +52,16 @@ schem_path = settlements.modpath.."/schematics/"
|
||||||
local basic_pseudobiome_villages = minetest.settings:get_bool("basic_pseudobiome_villages", true)
|
local basic_pseudobiome_villages = minetest.settings:get_bool("basic_pseudobiome_villages", true)
|
||||||
|
|
||||||
settlements.schematic_table = {
|
settlements.schematic_table = {
|
||||||
{name = "large_house", mts = schem_path.."large_house.mts", hwidth = 11, hdepth = 12, hheight = 9, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
{name = "large_house", mts = schem_path.."large_house.mts", hwidth = 12, hdepth = 12, hheight = 9, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "blacksmith", mts = schem_path.."blacksmith.mts", hwidth = 7, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.055, rplc = basic_pseudobiome_villages },
|
{name = "blacksmith", mts = schem_path.."blacksmith.mts", hwidth = 8, hdepth = 11, hheight = 13, hsize = 13, max_num = 0.055, rplc = basic_pseudobiome_villages },
|
||||||
{name = "butcher", mts = schem_path.."butcher.mts", hwidth = 11, hdepth = 8, hheight = 10, hsize = 14, max_num = 0.03 , rplc = basic_pseudobiome_villages },
|
{name = "butcher", mts = schem_path.."butcher.mts", hwidth = 12, hdepth = 8, hheight = 10, hsize = 14, max_num = 0.03 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "church", mts = schem_path.."church.mts", hwidth = 13, hdepth = 13, hheight = 14, hsize = 15, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
{name = "church", mts = schem_path.."church.mts", hwidth = 13, hdepth = 13, hheight = 14, hsize = 15, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "farm", mts = schem_path.."farm.mts", hwidth = 7, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.1 , rplc = basic_pseudobiome_villages },
|
{name = "farm", mts = schem_path.."farm.mts", hwidth = 9, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.1 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "lamp", mts = schem_path.."lamp.mts", hwidth = 3, hdepth = 3, hheight = 13, hsize = 10, max_num = 0.1 , rplc = false },
|
{name = "lamp", mts = schem_path.."lamp.mts", hwidth = 3, hdepth = 4, hheight = 13, hsize = 10, max_num = 0.1 , rplc = false },
|
||||||
{name = "library", mts = schem_path.."library.mts", hwidth = 12, hdepth = 12, hheight = 8, hsize = 13, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
{name = "library", mts = schem_path.."library.mts", hwidth = 12, hdepth = 12, hheight = 8, hsize = 13, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "medium_house", mts = schem_path.."medium_house.mts", hwidth = 8, hdepth = 12, hheight = 8, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
{name = "medium_house", mts = schem_path.."medium_house.mts", hwidth = 9, hdepth = 12, hheight = 8, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "small_house", mts = schem_path.."small_house.mts", hwidth = 9, hdepth = 7, hheight = 8, hsize = 13, max_num = 0.7 , rplc = basic_pseudobiome_villages },
|
{name = "small_house", mts = schem_path.."small_house.mts", hwidth = 9, hdepth = 8, hheight = 8, hsize = 13, max_num = 0.7 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "tavern", mts = schem_path.."tavern.mts", hwidth = 11, hdepth = 10, hheight = 10, hsize = 13, max_num = 0.050, rplc = basic_pseudobiome_villages },
|
{name = "tavern", mts = schem_path.."tavern.mts", hwidth = 12, hdepth = 10, hheight = 10, hsize = 13, max_num = 0.050, rplc = basic_pseudobiome_villages },
|
||||||
{name = "well", mts = schem_path.."well.mts", hwidth = 6, hdepth = 8, hheight = 6, hsize = 10, max_num = 0.045, rplc = basic_pseudobiome_villages },
|
{name = "well", mts = schem_path.."well.mts", hwidth = 6, hdepth = 8, hheight = 6, hsize = 10, max_num = 0.045, rplc = basic_pseudobiome_villages },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,34 @@
|
||||||
|
local function mcl_log (message)
|
||||||
|
mcl_util.mcl_log (message, "[Village - Foundation]")
|
||||||
|
end
|
||||||
|
|
||||||
|
local foundation_materials = {}
|
||||||
|
|
||||||
|
foundation_materials["mcl_core:sand"] = "mcl_core:sandstone"
|
||||||
|
--"mcl_core:sandstonecarved"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
-- function to fill empty space below baseplate when building on a hill
|
-- function to fill empty space below baseplate when building on a hill
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
function settlements.ground(pos, pr) -- role model: Wendelsteinkircherl, Brannenburg
|
function settlements.ground(pos, pr, platform_material) -- role model: Wendelsteinkircherl, Brannenburg
|
||||||
local p2 = vector.new(pos)
|
local p2 = vector.new(pos)
|
||||||
local cnt = 0
|
local cnt = 0
|
||||||
|
|
||||||
local mat = "mcl_core:dirt"
|
local mat = "mcl_core:dirt"
|
||||||
|
if not platform_material then
|
||||||
|
mat = "mcl_core:dirt"
|
||||||
|
else
|
||||||
|
mat = platform_material
|
||||||
|
end
|
||||||
|
|
||||||
p2.y = p2.y-1
|
p2.y = p2.y-1
|
||||||
while true do
|
while true do
|
||||||
cnt = cnt+1
|
cnt = cnt+1
|
||||||
if cnt > 20 then break end
|
if cnt > 20 then break end
|
||||||
if cnt>pr:next(2,4) then
|
if cnt>pr:next(2,4) then
|
||||||
mat = "mcl_core:stone"
|
if not platform_material then
|
||||||
|
mat = "mcl_core:stone"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
minetest.swap_node(p2, {name=mat})
|
minetest.swap_node(p2, {name=mat})
|
||||||
p2.y = p2.y-1
|
p2.y = p2.y-1
|
||||||
|
@ -40,6 +58,12 @@ function settlements.terraform(settlement_info, pr)
|
||||||
end
|
end
|
||||||
--fheight = schematic_data["hheight"] * 3 -- remove trees and leaves above
|
--fheight = schematic_data["hheight"] * 3 -- remove trees and leaves above
|
||||||
fheight = schematic_data["hheight"] -- remove trees and leaves above
|
fheight = schematic_data["hheight"] -- remove trees and leaves above
|
||||||
|
|
||||||
|
local surface_mat = settlement_info[i]["surface_mat"]
|
||||||
|
mcl_log("Surface material: " .. tostring(surface_mat))
|
||||||
|
local platform_mat = foundation_materials[surface_mat]
|
||||||
|
mcl_log("Foundation material: " .. tostring(platform_mat))
|
||||||
|
|
||||||
--
|
--
|
||||||
-- now that every info is available -> create platform and clear space above
|
-- now that every info is available -> create platform and clear space above
|
||||||
--
|
--
|
||||||
|
@ -48,7 +72,8 @@ function settlements.terraform(settlement_info, pr)
|
||||||
for yi = 0,fheight *3 do
|
for yi = 0,fheight *3 do
|
||||||
if yi == 0 then
|
if yi == 0 then
|
||||||
local p = {x=pos.x+xi, y=pos.y, z=pos.z+zi}
|
local p = {x=pos.x+xi, y=pos.y, z=pos.z+zi}
|
||||||
settlements.ground(p, pr)
|
-- Pass in biome info and make foundations of same material (seed: apple for desert)
|
||||||
|
settlements.ground(p, pr, platform_mat)
|
||||||
else
|
else
|
||||||
-- write ground
|
-- write ground
|
||||||
-- local p = {x=pos.x+xi, y=pos.y+yi, z=pos.z+zi}
|
-- local p = {x=pos.x+xi, y=pos.y+yi, z=pos.z+zi}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue