From 94dd06a2b9de5841b08d914b974dafffa0417387 Mon Sep 17 00:00:00 2001 From: oilboi <47129783+oilboi@users.noreply.github.com> Date: Sat, 22 Feb 2020 11:49:17 -0500 Subject: [PATCH] Fix run sneaking, add sapling --- mods/main/init.lua | 1 + mods/main/nodes.lua | 14 ++++++- mods/main/ore.lua | 19 ++++++++-- mods/main/saplings.lua | 67 +++++++++++++++++++++++++++++++++ mods/main/textures/sapling.png | Bin 0 -> 251 bytes mods/player/init.lua | 3 +- todo.txt | 1 + 7 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 mods/main/saplings.lua create mode 100644 mods/main/textures/sapling.png diff --git a/mods/main/init.lua b/mods/main/init.lua index a623f13..29a556b 100644 --- a/mods/main/init.lua +++ b/mods/main/init.lua @@ -6,6 +6,7 @@ local path = minetest.get_modpath("main") dofile(path.."/sounds.lua") dofile(path.."/nodes.lua") +dofile(path.."/saplings.lua") dofile(path.."/ore.lua") dofile(path.."/items.lua") dofile(path.."/schematics.lua") diff --git a/mods/main/nodes.lua b/mods/main/nodes.lua index 9ba3162..29a54cb 100644 --- a/mods/main/nodes.lua +++ b/mods/main/nodes.lua @@ -33,14 +33,14 @@ minetest.register_node("main:cobble", { minetest.register_node("main:dirt", { description = "Dirt", tiles = {"dirt.png"}, - groups = {dirt = 1, soft = 1, shovel = 1, hand = 1}, + groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1}, sounds = main.dirtSound(), }) minetest.register_node("main:grass", { description = "Grass", tiles = {"grass.png"}, - groups = {dirt = 1, soft = 1, shovel = 1, hand = 1}, + groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1}, sounds = main.dirtSound(), drop="main:dirt", }) @@ -106,6 +106,16 @@ minetest.register_node("main:leaves", { drop = { max_items = 1, items= { + { + -- Only drop if using a tool whose name is identical to one + -- of these. + rarity = 10, + items = {"main:sapling"}, + -- Whether all items in the dropped item list inherit the + -- hardware coloring palette color from the dug node. + -- Default is 'false'. + --inherit_color = true, + }, { -- Only drop if using a tool whose name is identical to one -- of these. diff --git a/mods/main/ore.lua b/mods/main/ore.lua index a64be2e..9b62247 100644 --- a/mods/main/ore.lua +++ b/mods/main/ore.lua @@ -4,7 +4,7 @@ depth = initial level found -- Dirt - +--[[ minetest.register_ore({ ore_type = "blob", ore = "main:dirt", @@ -44,11 +44,11 @@ minetest.register_ore({ persist = 0.0 }, }) - +]]-- -- Scatter ores -- Coal - +for i = 1,3 do minetest.register_ore({ ore_type = "scatter", ore = "main:coalore", @@ -95,6 +95,17 @@ minetest.register_ore({ y_min = 1025, }) +minetest.register_ore({ + ore_type = "scatter", + ore = "main:ironore", + wherein = "main:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_max = 64, + y_min = -127, +}) + minetest.register_ore({ ore_type = "scatter", ore = "main:ironore", @@ -221,4 +232,4 @@ minetest.register_ore({ y_max = -2048, y_min = -31000, }) - +end diff --git a/mods/main/saplings.lua b/mods/main/saplings.lua new file mode 100644 index 0000000..efe6e55 --- /dev/null +++ b/mods/main/saplings.lua @@ -0,0 +1,67 @@ +--saplings +minetest.register_node("main:sapling", { + description = "Sapling", + drawtype = "plantlike", + waving = 1, + walkable = false, + climbable = false, + paramtype = "light", + is_ground_content = false, + tiles = {"sapling.png"}, + groups = {leaves = 1, plant = 1, axe = 1, hand = 0,instant=1, sapling=1}, + sounds = main.grassSound(), + drop = "main:sapling", + node_placement_prediction = "", + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + on_place = function(itemstack, placer, pointed_thing) + if not pointed_thing.type == "node" then + return + end + local pos = pointed_thing.above + if minetest.get_node_group(minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name, "soil") > 0 and minetest.get_node(pointed_thing.above).name == "air" then + minetest.set_node(pointed_thing.above, {name="main:sapling"}) + minetest.sound_play("leaves",{pos=pointed_thing.above}) + itemstack:take_item(1) + --print(minetest.get_node(pointed_thing.above).param1) + return(itemstack) + end + end, +}) + +--make sapling grow +local function sapling_grow(pos) + if minetest.get_node_group(minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name, "soil") > 0 then + + local good_to_grow = true + --check if room to grow (leaves or air) + for i = 1,4 do + local node_name = minetest.get_node(vector.new(pos.x,pos.y+i,pos.z)).name + if node_name ~= "air" and node_name ~= "main:leaves" then + good_to_grow = false + end + end + if good_to_grow == true then + minetest.set_node(pos,{name="main:tree"}) + minetest.place_schematic(pos, treeSchematic,"0",nil,false,"place_center_x, place_center_z") + --override leaves + for i = 1,4 do + minetest.set_node(vector.new(pos.x,pos.y+i,pos.z),{name="main:tree"}) + end + end + end +end + +--growing abm for sapling +minetest.register_abm({ + label = "Tree Grow", + nodenames = {"group:sapling"}, + neighbors = {"group:soil"}, + interval = 0.1, + chance = 1, + action = function(pos) + sapling_grow(pos) + end, +}) diff --git a/mods/main/textures/sapling.png b/mods/main/textures/sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..54009cf6a4b971f95566a02cac442e2dda3212c9 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMV{r~?zkg4adWSOKB(Bvdz zBjTKIoShgE{P!UH-kY6wZ15gK0Pu9PW{XnrgPZ!6K3dZCF z5fP&hK@pLJ1QEXCvOpFiF4r?Lmz#JUd!DF-3Y#k&)(PEu^NeT1!W)`5t{%Cf(zx)% zT3u6BC)dVC!>cDWLU~uT9bBOqbXljfv9VFL_^8Tb2DUb)WlP?L@tP|%H#R1h77NWd qxHY(w@lZxWgF)C~iMw+hq!{=f%cM=Z+s6)c34^DrpUXO@geCw^w^tDW literal 0 HcmV?d00001 diff --git a/mods/player/init.lua b/mods/player/init.lua index 0fe16b4..21471e7 100644 --- a/mods/player/init.lua +++ b/mods/player/init.lua @@ -60,9 +60,10 @@ minetest.register_globalstep(function(dtime) --collection for _,player in ipairs(minetest.get_connected_players()) do local run = player:get_player_control().aux1 + local walk = player:get_player_control().up local sneak = player:get_player_control().sneak - if run then + if run and walk and not sneak then --[[ I'll impliment this in later local meta = player:get_meta() diff --git a/todo.txt b/todo.txt index 6c53fbc..79c67c2 100644 --- a/todo.txt +++ b/todo.txt @@ -51,6 +51,7 @@ add a function to set a velocity goal to entities and then implement it with all colored chat messages check if everyone is in bed before going to next night also lock player in bed until they get out or daytime +create a function to check if a node or group is below -- 2.44.0