diff --git a/init.lua b/init.lua index 0faa1f9..0af130d 100644 --- a/init.lua +++ b/init.lua @@ -33,6 +33,19 @@ end fun_caves.DEBUG = false -- for maintenance only +local f_date = io.open(fun_caves.world .. '/date.txt', 'r') +if f_date then + local s = f_date:read('*a') + f_date:close() + for y, m, d in s:gmatch('(%d%d%d%d)(%d%d)(%d%d)') do + local yn, mn, dn = tonumber(y), tonumber(m), tonumber(d) + if yn and mn and dn then + fun_caves.date = {yn, mn, dn} + end + break + end +end + local inp = io.open(fun_caves.world..'/fun_caves_data.txt','r') if inp then diff --git a/treegen.lua b/treegen.lua index 577d4ce..756e525 100644 --- a/treegen.lua +++ b/treegen.lua @@ -57,6 +57,27 @@ minetest.register_node("fun_caves:leaves", newnode) newnode = fun_caves.clone_node("fun_caves:leaves") minetest.register_node("fun_caves:leaves_special", newnode) +newnode = fun_caves.clone_node("fun_caves:leaves_special") +if fun_caves.date and fun_caves.date[2] == 7 and fun_caves.date[3] > 1 and fun_caves.date[3] < 5 then + newnode.tiles = {'default_steel_block.png^[colorize:#FF0000:200'} + newnode.light_source = 15 +end +minetest.register_node("fun_caves:leaves_special_1", newnode) + +newnode = fun_caves.clone_node("fun_caves:leaves_special") +if fun_caves.date and fun_caves.date[2] == 7 and fun_caves.date[3] > 1 and fun_caves.date[3] < 5 then + newnode.tiles = {'default_steel_block.png^[colorize:#FFFFFF:200'} + newnode.light_source = 15 +end +minetest.register_node("fun_caves:leaves_special_2", newnode) + +newnode = fun_caves.clone_node("fun_caves:leaves_special") +if fun_caves.date and fun_caves.date[2] == 7 and fun_caves.date[3] > 1 and fun_caves.date[3] < 5 then + newnode.tiles = {'default_steel_block.png^[colorize:#0000FF:200'} + newnode.light_source = 15 +end +minetest.register_node("fun_caves:leaves_special_3", newnode) + newnode = fun_caves.clone_node("default:water_source") newnode.description = "Water" newnode.liquid_range = 0 @@ -265,7 +286,7 @@ fun_caves.treegen = function(minp, maxp, data, p2data, area, node) local r = math_abs(((y + 3) % 10) - 3) if (r < 2 or math_random(r) == 1) and data[ivm] == node['air'] then if distance3 > r2 - 10 and math_random(10) == 1 then - data[ivm] = node['fun_caves:leaves_special'] + data[ivm] = node['fun_caves:leaves_special_'..math.random(3)] else data[ivm] = node['fun_caves:leaves'] end