diff --git a/vines/.luacheckrc b/vines/.luacheckrc new file mode 100644 index 0000000..bf99780 --- /dev/null +++ b/vines/.luacheckrc @@ -0,0 +1,13 @@ + +unused_args = false + +read_globals = { + "minetest", + "default", + "ItemStack", + "biome_lib", +} + +globals = { + "vines", +} diff --git a/vines/README.md b/vines/README.md index 386dcae..89fdb27 100644 --- a/vines/README.md +++ b/vines/README.md @@ -47,7 +47,7 @@ table. |description| string|The vine's tooltip description| |average_length|int| The average length of vines| -For biome definitions please see the [biome_lib API documentation](https://github.com/VanessaE/biome_lib/blob/master/API.txt) +For biome definitions please see the [plants_lib API documentation](https://github.com/VanessaE/plantlife_modpack/blob/master/API.txt) ## Notice Vines use after_destruct on registered leave nodes to remove vines from which diff --git a/vines/bower.json b/vines/bower.json new file mode 100644 index 0000000..108a7c1 --- /dev/null +++ b/vines/bower.json @@ -0,0 +1,18 @@ +{ + "name": "vines", + "description": "Vines that spawn on trees and rope", + "keywords": [ + "vines", + "trees", + "rope", + "jungle" + ], + "homepage": "https://github.com/bas080/vines/", + "screenshots": [ + "https://raw.githubusercontent.com/bas080/vines/forum/screenshot.png" + ], + "authors": [ + "bas080" + ], + "license": "WTFPL" +} diff --git a/vines/description.txt b/vines/description.txt new file mode 100644 index 0000000..3664f43 --- /dev/null +++ b/vines/description.txt @@ -0,0 +1 @@ +Adds climbable vines that are spawned on trees. diff --git a/vines/functions.lua b/vines/functions.lua index 26e7cc4..a2f1566 100644 --- a/vines/functions.lua +++ b/vines/functions.lua @@ -1,5 +1,4 @@ vines.register_vine = function( name, defs, biome ) - local biome = biome local groups = { vines=1, snappy=3, flammable=2 } local vine_name_end = 'vines:'..name..'_end' @@ -61,7 +60,6 @@ vines.register_vine = function( name, defs, biome ) end }) - minetest.register_node( vine_name_middle, { description = "Matured "..defs.description, walkable = false, @@ -79,12 +77,9 @@ vines.register_vine = function( name, defs, biome ) sounds = default.node_sound_leaves_defaults(), selection_box = selection_box, on_destruct = function( pos ) - local node = minetest.get_node( pos ) local bottom = {x=pos.x, y=pos.y-1, z=pos.z} local bottom_node = minetest.get_node( bottom ) if minetest.get_item_group( bottom_node.name, "vines") > 0 then - -- Calling `remove_node` directly would cause - -- a stack overflow for really long vines. minetest.after( 0, minetest.remove_node, bottom ) end end, @@ -95,12 +90,12 @@ vines.register_vine = function( name, defs, biome ) biome_lib:spawn_on_surfaces( biome ) - local override_nodes = function( nodes, defs ) - local function override( index, registered ) + local override_nodes = function( nodes, def ) + local function override( index, registered ) local node = nodes[ index ] if index > #nodes then return registered end if minetest.registered_nodes[node] then - minetest.override_item( node, defs ) + minetest.override_item( node, def ) registered[#registered+1] = node end override( index+1, registered ) @@ -109,7 +104,7 @@ vines.register_vine = function( name, defs, biome ) end override_nodes( biome.spawn_surfaces,{ - after_destruct = function( pos ) + on_destruct = function( pos ) local pos_min = { x = pos.x -1, y = pos.y - 1, z = pos.z - 1 } local pos_max = { x = pos.x +1, y = pos.y + 1, z = pos.z + 1 } local positions = minetest.find_nodes_in_area( pos_min, pos_max, "group:vines" ) @@ -125,7 +120,7 @@ vines.dig_vine = function( pos, node_name, user ) --only dig give the vine if shears are used if not user then return false end local wielded = user:get_wielded_item() - if 'vines:shears' == wielded:get_name() then + if 'vines:shears' == wielded:get_name() then local inv = user:get_inventory() if inv then inv:add_item("main", ItemStack( node_name )) diff --git a/vines/mod.conf b/vines/mod.conf new file mode 100644 index 0000000..39ea365 --- /dev/null +++ b/vines/mod.conf @@ -0,0 +1,2 @@ + +name = vines diff --git a/vines/nodes.lua b/vines/nodes.lua index 9d7df00..6a1ee22 100644 --- a/vines/nodes.lua +++ b/vines/nodes.lua @@ -58,7 +58,7 @@ minetest.register_node("vines:rope_end", { groups = {flammable=2, not_in_creative_inventory=1}, sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos) - yesh = {x = pos.x, y= pos.y-1, z=pos.z} + local yesh = {x = pos.x, y= pos.y-1, z=pos.z} minetest.add_node(yesh, {name="vines:rope"}) end, selection_box = { diff --git a/vines/recipes.lua b/vines/recipes.lua index d2b928a..d64dcea 100644 --- a/vines/recipes.lua +++ b/vines/recipes.lua @@ -1,12 +1,12 @@ vines.recipes['rope_block'] = { - {'', 'default:wood', ''}, + {'', 'group:wood', ''}, {'', 'group:vines', ''}, {'', 'group:vines', ''} } vines.recipes['shears'] = { {'', 'default:steel_ingot', ''}, - {'default:stick', 'default:wood', 'default:steel_ingot'}, - {'', '', 'default:stick'} + {'group:stick', 'group:wood', 'default:steel_ingot'}, + {'', '', 'group:stick'} } diff --git a/vines/screenshot.png b/vines/screenshot.png new file mode 100644 index 0000000..b386f69 Binary files /dev/null and b/vines/screenshot.png differ diff --git a/vines/shear.lua b/vines/shear.lua index e6d915a..b42a3e7 100644 --- a/vines/shear.lua +++ b/vines/shear.lua @@ -8,8 +8,8 @@ minetest.register_tool("vines:shears", { full_punch_interval = 1.0, max_drop_level=0, groupcaps={ - snappy={times={[3]=0.2}, maxwear=0.05, maxlevel=3}, - wool={times={[3]=0.2}, maxwear=0.05, maxlevel=3} + snappy={times={[3]=0.2}, uses=60, maxlevel=3}, + wool={times={[3]=0.2}, uses=60, maxlevel=3} } }, }) diff --git a/vines/vines.lua b/vines/vines.lua index 82c5b2a..42c20d8 100644 --- a/vines/vines.lua +++ b/vines/vines.lua @@ -26,6 +26,7 @@ vines.register_vine( 'vine', { spawn_delay = 500, spawn_chance = 100, spawn_surfaces = { + "default:leaves", "default:jungleleaves", "moretrees:jungletree_leaves_red", "moretrees:jungletree_leaves_yellow", @@ -42,11 +43,11 @@ vines.register_vine( 'side', { },{ choose_random_wall = true, avoid_nodes = {"group:vines", "default:apple"}, - choose_random_wall = true, avoid_radius = 3, spawn_delay = 500, spawn_chance = 100, spawn_surfaces = { + "default:leaves", "default:jungleleaves", "moretrees:jungletree_leaves_red", "moretrees:jungletree_leaves_yellow",