Add blueberry bushes

master^2
random-geek 2018-10-09 12:54:22 -07:00 committed by Paramat
parent 2696b0cd91
commit ab1a79b13c
13 changed files with 162 additions and 2 deletions

View File

@ -927,10 +927,13 @@ Trees
* `default.grow_acacia_bush(pos)` * `default.grow_acacia_bush(pos)`
* Grows an acaia bush at pos * Grows an acaia bush at pos
* `default.grow_pine_bush(pos)` * `default.grow_pine_bush(pos)`
* Grows a pine bush at pos * Grows a pine bush at pos
* `default.grow_blueberry_bush(pos)`
* Grows a blueberry bush at pos
Carts Carts
----- -----

View File

@ -230,6 +230,10 @@ Mossmanikin (CC BY-SA 3.0):
default_fern_*.png default_fern_*.png
random-geek (CC BY-SA 3.0): random-geek (CC BY-SA 3.0):
default_blueberries.png
default_blueberry_overlay.png
default_blueberry_bush_leaves.png, derived from default_bush_leaves (by paramat)
default_blueberry_bush_sapling.png
default_dirt.png -- Derived from a texture by Neuromancer (CC BY-SA 3.0) default_dirt.png -- Derived from a texture by Neuromancer (CC BY-SA 3.0)
@ -359,3 +363,6 @@ sofar (CC BY-SA 3.0):
TumeniNodes (CC BY-SA 3.0): TumeniNodes (CC BY-SA 3.0):
pine_bush.mts pine_bush.mts
random-geek (CC BY-SA 3.0):
blueberry_bush.mts

View File

@ -341,3 +341,9 @@ minetest.register_craftitem("default:flint", {
description = "Flint", description = "Flint",
inventory_image = "default_flint.png" inventory_image = "default_flint.png"
}) })
minetest.register_craftitem("default:blueberries", {
description = "Blueberries",
inventory_image = "default_blueberries.png",
on_use = minetest.item_eat(2),
})

View File

@ -1964,6 +1964,29 @@ function default.register_decorations()
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
}) })
-- Blueberry bush
minetest.register_decoration({
name = "default:blueberry_bush",
deco_type = "schematic",
place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 697,
octaves = 3,
persist = 0.7,
},
biomes = {"grassland", "snowy_grassland"},
y_max = 31000,
y_min = 1,
place_offset_y = 1,
schematic = minetest.get_modpath("default") .. "/schematics/blueberry_bush.mts",
flags = "place_center_x, place_center_z",
})
-- Acacia bush -- Acacia bush
minetest.register_decoration({ minetest.register_decoration({

View File

@ -165,6 +165,9 @@ default:acacia_bush_sapling
default:pine_bush_stem default:pine_bush_stem
default:pine_bush_needles default:pine_bush_needles
default:pine_bush_sapling default:pine_bush_sapling
default:blueberry_bush_leaves_with_berries
default:blueberry_bush_leaves
default:blueberry_bush_sapling
default:sand_with_kelp default:sand_with_kelp
@ -1614,6 +1617,85 @@ minetest.register_node("default:bush_sapling", {
end, end,
}) })
minetest.register_node("default:blueberry_bush_leaves_with_berries", {
description = "Blueberry Bush Leaves with Berries",
drawtype = "allfaces_optional",
waving = 1,
tiles = {"default_blueberry_bush_leaves.png^default_blueberry_overlay.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3},
drop = "default:blueberries",
sounds = default.node_sound_leaves_defaults(),
node_dig_prediction = "default:blueberry_bush_leaves",
after_dig_node = function(pos, oldnode, oldmetadata, digger)
minetest.set_node(pos, {name = "default:blueberry_bush_leaves"})
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
})
minetest.register_node("default:blueberry_bush_leaves", {
description = "Blueberry Bush Leaves",
drawtype = "allfaces_optional",
waving = 1,
tiles = {"default_blueberry_bush_leaves.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"default:blueberry_bush_sapling"}, rarity = 5},
{items = {"default:blueberry_bush_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
on_timer = function(pos, elapsed)
if minetest.get_node_light(pos) < 11 then
minetest.get_node_timer(pos):start(200)
else
minetest.set_node(pos, {name = "default:blueberry_bush_leaves_with_berries"})
end
end,
after_place_node = default.after_place_leaves,
})
minetest.register_node("default:blueberry_bush_sapling", {
description = "Blueberry Bush Sapling",
drawtype = "plantlike",
tiles = {"default_blueberry_bush_sapling.png"},
inventory_image = "default_blueberry_bush_sapling.png",
wield_image = "default_blueberry_bush_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = default.grow_sapling,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:blueberry_bush_sapling",
-- minp, maxp to be checked, relative to sapling pos
{x = -1, y = 0, z = -1},
{x = 1, y = 1, z = 1},
-- maximum interval of interior volume check
2)
return itemstack
end,
})
minetest.register_node("default:acacia_bush_stem", { minetest.register_node("default:acacia_bush_stem", {
description = "Acacia Bush Stem", description = "Acacia Bush Stem",
drawtype = "plantlike", drawtype = "plantlike",

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

View File

@ -81,6 +81,10 @@ function default.grow_sapling(pos)
minetest.log("action", "A bush sapling grows into a bush at ".. minetest.log("action", "A bush sapling grows into a bush at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
default.grow_bush(pos) default.grow_bush(pos)
elseif node.name == "default:blueberry_bush_sapling" then
minetest.log("action", "A blueberry bush sapling grows into a bush at "..
minetest.pos_to_string(pos))
default.grow_blueberry_bush(pos)
elseif node.name == "default:acacia_bush_sapling" then elseif node.name == "default:acacia_bush_sapling" then
minetest.log("action", "An acacia bush sapling grows into a bush at ".. minetest.log("action", "An acacia bush sapling grows into a bush at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
@ -476,6 +480,15 @@ function default.grow_bush(pos)
path, "0", nil, false) path, "0", nil, false)
end end
-- Blueberry bush
function default.grow_blueberry_bush(pos)
local path = minetest.get_modpath("default") ..
"/schematics/blueberry_bush.mts"
minetest.place_schematic({x = pos.x - 1, y = pos.y, z = pos.z - 1},
path, "0", nil, false)
end
-- Acacia bush -- Acacia bush

View File

@ -49,6 +49,14 @@ minetest.register_craft({
recipe = {"group:coal"}, recipe = {"group:coal"},
}) })
-- Manually add blueberries->violet dye
minetest.register_craft({
type = "shapeless",
output = "dye:violet 2",
recipe = {"default:blueberries"},
})
-- Mix recipes -- Mix recipes
local dye_recipes = { local dye_recipes = {

View File

@ -9,7 +9,7 @@ The following tables are for pasting into mods that contain a function to
convert the Lua tables into .mts files. Such mods often have two functions to convert the Lua tables into .mts files. Such mods often have two functions to
process two formats of the 'data' table: process two formats of the 'data' table:
The standard table format is described in the 'Schematic specifier' section of The standard table format is described in the 'Schematic specifier' section of
the lua_api.txt file in the Minetest Engine. the lua_api.txt file in the Minetest Engine.
The 'data' table appears as a sequence of vertical slices through the structure The 'data' table appears as a sequence of vertical slices through the structure
the schematic describes. the schematic describes.
@ -2146,6 +2146,24 @@ mts_save("bush", {
}) })
-- Blueberry bush
local L = {name = "default:blueberry_bush_leaves_with_berries", prob = 255, force_place = true}
local M = {name = "default:blueberry_bush_leaves_with_berries", prob = 223}
local N = {name = "default:blueberry_bush_leaves_with_berries", prob = 95}
mts_save("blueberry_bush", {
size = {x = 3, y = 1, z = 3},
data = {
N, M, N,
M, L, M,
N, M, N,
},
})
-- Acacia bush -- Acacia bush
local L = {name = "default:acacia_bush_leaves", prob = 255} local L = {name = "default:acacia_bush_leaves", prob = 255}