diff --git a/htplants/depends.txt b/htplants/depends.txt new file mode 100644 index 0000000..3a7daa1 --- /dev/null +++ b/htplants/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/htplants/init.lua b/htplants/init.lua new file mode 100644 index 0000000..8196997 --- /dev/null +++ b/htplants/init.lua @@ -0,0 +1,86 @@ +math.randomseed(os.time()) + +local DEBUG = 1 + +local GROWING_DELAY = 500 -- larger numbers = ABM runs less often +local GROWCHANCE = 50 -- larger = less chance to grow + +local HTPLANTS = { + { "Aconite", "aconite", GROWING_DELAY*2, 15, GROWCHANCE*2 }, + { "Aloe", "aloe", GROWING_DELAY, 10, GROWCHANCE }, + { "Trumpet", "trumpet", GROWING_DELAY, 10, GROWCHANCE }, + { "Anjelica", "anjelica", GROWING_DELAY*2, 15, GROWCHANCE*2 }, + { "Arnica", "arnica", GROWING_DELAY, 10, GROWCHANCE*2 }, + { "Asphodel", "asphodel", GROWING_DELAY*2, 15, GROWCHANCE*2 }, + { "Balm", "balm", GROWING_DELAY, 10, GROWCHANCE }, +} + +local dbg = function(s) + if DEBUG == 1 then + print("[HTPLANTS] " .. s) + end +end + +local is_node_loaded = function(node_pos) + n = minetest.env:get_node_or_nil(node_pos) + if (n == nil) or (n.name == "ignore") then + return false + end + return true +end + +spawn_on_surfaces = function(spawndelay, spawnflower, spawnradius, spawnchance, spawnsurface, spawnavoid) + minetest.register_abm({ + nodenames = { spawnsurface }, + interval = spawndelay, + chance = spawnchance, + + action = function(pos, node, active_object_count, active_object_count_wider) + local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } + local n_top = minetest.env:get_node(p_top) + if (n_top.name == "air") and is_node_loaded(p_top) then + if (minetest.env:find_node_near(p_top, spawnradius, spawnavoid) == nil ) + and (minetest.env:get_node_light(p_top, nil) > 4) then + dbg("Spawning "..spawnflower.." at ("..p_top.x..", "..p_top.y..", "..p_top.z..") on "..spawnsurface) + minetest.env:add_node(p_top, { name = spawnflower }) + end + end + end + }) +end + +-- On regular fertile ground, any flower except waterlilies can spawn + +for i in ipairs(HTPLANTS) do + local flowerdesc = HTPLANTS[i][1] + local flower = HTPLANTS[i][2] + local delay = HTPLANTS[i][3] + local radius = HTPLANTS[i][4] + local chance = HTPLANTS[i][5] + + minetest.register_node("htplants:plant_"..flower, { + description = flowerdesc, + drawtype = "plantlike", + tiles = { "plant_"..flower..".png" }, + inventory_image = "plant_"..flower..".png", + wield_image = "plant_"..flower..".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + groups = { snappy = 3,flammable=2, flower=1 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, + }) + + + spawn_on_surfaces(delay, "htplants:plant_"..flower, radius, chance, "default:dirt_with_grass", "group:flower") + spawn_on_surfaces(delay, "htplants:plant_"..flower, radius, chance, "default:dirt", "group:flower") +end + +-- Crafts (none yet). + + +print("[htplants] Loaded!") diff --git a/htplants/readme.txt b/htplants/readme.txt new file mode 100644 index 0000000..f72ba6b --- /dev/null +++ b/htplants/readme.txt @@ -0,0 +1 @@ +This folder contains ingridients for potions. \ No newline at end of file diff --git a/htplants/textures/plant_aconite.png b/htplants/textures/plant_aconite.png new file mode 100644 index 0000000..a88ea16 Binary files /dev/null and b/htplants/textures/plant_aconite.png differ diff --git a/htplants/textures/plant_aloe.png b/htplants/textures/plant_aloe.png new file mode 100644 index 0000000..fb8fc76 Binary files /dev/null and b/htplants/textures/plant_aloe.png differ diff --git a/htplants/textures/plant_anjelica.png b/htplants/textures/plant_anjelica.png new file mode 100644 index 0000000..9734785 Binary files /dev/null and b/htplants/textures/plant_anjelica.png differ diff --git a/htplants/textures/plant_arnica.png b/htplants/textures/plant_arnica.png new file mode 100644 index 0000000..f4a3f04 Binary files /dev/null and b/htplants/textures/plant_arnica.png differ diff --git a/htplants/textures/plant_asphodel.png b/htplants/textures/plant_asphodel.png new file mode 100644 index 0000000..7d7effd Binary files /dev/null and b/htplants/textures/plant_asphodel.png differ diff --git a/htplants/textures/plant_balm.png b/htplants/textures/plant_balm.png new file mode 100644 index 0000000..7282000 Binary files /dev/null and b/htplants/textures/plant_balm.png differ diff --git a/htplants/textures/plant_trumpet.png b/htplants/textures/plant_trumpet.png new file mode 100644 index 0000000..ed3dfeb Binary files /dev/null and b/htplants/textures/plant_trumpet.png differ