From 84561db68ab135e3b8335569f1212be21d01522c Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sat, 8 Sep 2018 16:30:03 +0200 Subject: [PATCH] Version MFF. --- .gitignore | 0 LazyJ-changelog.txt | 0 changelog.txt | 0 depends.txt | 3 +- init.lua | 44 ++--- license.txt | 0 models/sled.blend | Bin 430048 -> 0 bytes models/sled.x | 0 other_textures/connected_textures_ice.png | Bin other_textures/default_ice.png | Bin other_textures/default_ice.xcf | Bin other_textures/inkscape_default_ice.svg | 0 other_textures/mocha.png | Bin other_textures/mocha.xcf | Bin other_textures/original_snow_snow_brick.png | Bin other_textures/rect2985.png | Bin other_textures/snow_ice.png | Bin .../snow_needles_decorated_animated.xcf | Bin other_textures/snow_snow.png | Bin other_textures/snow_snow_brick.xcf | Bin other_textures/snow_snow_cobble.xcf | Bin other_textures/snow_snow_side.png | Bin other_textures/snow_snowball.png | Bin other_textures/snow_snowfall.png | Bin other_textures/snow_star_lit.xcf | Bin other_textures/xdefault_cobble.png | Bin other_textures/xdefault_furnace_bottom.png | Bin other_textures/xdefault_furnace_fire_bg.png | Bin other_textures/xdefault_furnace_fire_fg.png | Bin other_textures/xdefault_furnace_front.png | Bin .../xdefault_furnace_front_active.png | Bin other_textures/xdefault_furnace_side.png | Bin other_textures/xdefault_furnace_top.png | Bin other_textures/xdefault_glass.png | Bin other_textures/xdefault_ice.png | Bin other_textures/xdefault_ice.xcf | Bin other_textures/xdefault_snow.png | Bin other_textures/xdefault_stone_brick.png | Bin readme.txt | 16 +- schematics/pine.mts | Bin src/abms.lua | 29 ++- src/aliases.lua | 4 +- src/basic_stairs_slabs.lua | 0 src/crafting.lua | 0 src/falling_snow.lua | 22 +-- src/mapgen.lua | 22 --- src/mapgen_v6.lua | 174 ++++++++---------- src/mapgen_v7.lua | 0 src/nodes.lua | 141 ++------------ src/sled.lua | 0 src/snowball.lua | 108 ++++++++++- src/stairsplus.lua | 12 +- src/util.lua | 6 +- textures/character_snow_man.png | Bin textures/character_snow_man_preview.png | Bin textures/character_snow_man_preview_back.png | Bin textures/default_ice.png | Bin 643 -> 0 bytes textures/default_ice_normal.png | Bin 606 -> 0 bytes textures/default_snowball.png | Bin 211 -> 0 bytes textures/snow_apple.png | Bin textures/snow_dandelion_white.png | Bin textures/snow_dandelion_yellow.png | Bin textures/snow_geranium.png | Bin textures/snow_ice_brick.png | Bin textures/snow_leaves.png | Bin textures/snow_moss.png | Bin textures/snow_needles.png | Bin textures/snow_needles_decorated.png | Bin textures/snow_needles_decorated_animated.png | Bin textures/snow_rose.png | Bin textures/snow_sapling_pine.png | Bin textures/snow_shrub.png | Bin textures/snow_shrub_covering.png | Bin textures/snow_shrub_covering_normal.png | Bin 269 -> 0 bytes textures/snow_shrub_normal.png | Bin 297 -> 0 bytes textures/snow_sled.png | Bin textures/snow_snow_brick.png | Bin textures/snow_snow_brick_normal.png | Bin 484 -> 0 bytes textures/snow_snow_cobble.png | Bin textures/snow_star.png | Bin textures/snow_star_lit.png | Bin textures/snow_tulip.png | Bin textures/snow_viola.png | Bin textures/snow_xmas_tree.png | Bin textures/weather_snow.png | Bin 85 files changed, 259 insertions(+), 322 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 LazyJ-changelog.txt mode change 100644 => 100755 changelog.txt mode change 100644 => 100755 depends.txt mode change 100644 => 100755 init.lua mode change 100644 => 100755 license.txt delete mode 100644 models/sled.blend mode change 100644 => 100755 models/sled.x mode change 100644 => 100755 other_textures/connected_textures_ice.png mode change 100644 => 100755 other_textures/default_ice.png mode change 100644 => 100755 other_textures/default_ice.xcf mode change 100644 => 100755 other_textures/inkscape_default_ice.svg mode change 100644 => 100755 other_textures/mocha.png mode change 100644 => 100755 other_textures/mocha.xcf mode change 100644 => 100755 other_textures/original_snow_snow_brick.png mode change 100644 => 100755 other_textures/rect2985.png mode change 100644 => 100755 other_textures/snow_ice.png mode change 100644 => 100755 other_textures/snow_needles_decorated_animated.xcf mode change 100644 => 100755 other_textures/snow_snow.png mode change 100644 => 100755 other_textures/snow_snow_brick.xcf mode change 100644 => 100755 other_textures/snow_snow_cobble.xcf mode change 100644 => 100755 other_textures/snow_snow_side.png mode change 100644 => 100755 other_textures/snow_snowball.png mode change 100644 => 100755 other_textures/snow_snowfall.png mode change 100644 => 100755 other_textures/snow_star_lit.xcf mode change 100644 => 100755 other_textures/xdefault_cobble.png mode change 100644 => 100755 other_textures/xdefault_furnace_bottom.png mode change 100644 => 100755 other_textures/xdefault_furnace_fire_bg.png mode change 100644 => 100755 other_textures/xdefault_furnace_fire_fg.png mode change 100644 => 100755 other_textures/xdefault_furnace_front.png mode change 100644 => 100755 other_textures/xdefault_furnace_front_active.png mode change 100644 => 100755 other_textures/xdefault_furnace_side.png mode change 100644 => 100755 other_textures/xdefault_furnace_top.png mode change 100644 => 100755 other_textures/xdefault_glass.png mode change 100644 => 100755 other_textures/xdefault_ice.png mode change 100644 => 100755 other_textures/xdefault_ice.xcf mode change 100644 => 100755 other_textures/xdefault_snow.png mode change 100644 => 100755 other_textures/xdefault_stone_brick.png mode change 100644 => 100755 readme.txt mode change 100644 => 100755 schematics/pine.mts mode change 100644 => 100755 src/abms.lua mode change 100644 => 100755 src/aliases.lua mode change 100644 => 100755 src/basic_stairs_slabs.lua mode change 100644 => 100755 src/crafting.lua mode change 100644 => 100755 src/falling_snow.lua mode change 100644 => 100755 src/mapgen.lua mode change 100644 => 100755 src/mapgen_v6.lua mode change 100644 => 100755 src/mapgen_v7.lua mode change 100644 => 100755 src/nodes.lua mode change 100644 => 100755 src/sled.lua mode change 100644 => 100755 src/snowball.lua mode change 100644 => 100755 src/stairsplus.lua mode change 100644 => 100755 src/util.lua mode change 100644 => 100755 textures/character_snow_man.png mode change 100644 => 100755 textures/character_snow_man_preview.png mode change 100644 => 100755 textures/character_snow_man_preview_back.png delete mode 100644 textures/default_ice.png delete mode 100644 textures/default_ice_normal.png delete mode 100644 textures/default_snowball.png mode change 100644 => 100755 textures/snow_apple.png mode change 100644 => 100755 textures/snow_dandelion_white.png mode change 100644 => 100755 textures/snow_dandelion_yellow.png mode change 100644 => 100755 textures/snow_geranium.png mode change 100644 => 100755 textures/snow_ice_brick.png mode change 100644 => 100755 textures/snow_leaves.png mode change 100644 => 100755 textures/snow_moss.png mode change 100644 => 100755 textures/snow_needles.png mode change 100644 => 100755 textures/snow_needles_decorated.png mode change 100644 => 100755 textures/snow_needles_decorated_animated.png mode change 100644 => 100755 textures/snow_rose.png mode change 100644 => 100755 textures/snow_sapling_pine.png mode change 100644 => 100755 textures/snow_shrub.png mode change 100644 => 100755 textures/snow_shrub_covering.png delete mode 100644 textures/snow_shrub_covering_normal.png delete mode 100644 textures/snow_shrub_normal.png mode change 100644 => 100755 textures/snow_sled.png mode change 100644 => 100755 textures/snow_snow_brick.png delete mode 100644 textures/snow_snow_brick_normal.png mode change 100644 => 100755 textures/snow_snow_cobble.png mode change 100644 => 100755 textures/snow_star.png mode change 100644 => 100755 textures/snow_star_lit.png mode change 100644 => 100755 textures/snow_tulip.png mode change 100644 => 100755 textures/snow_viola.png mode change 100644 => 100755 textures/snow_xmas_tree.png mode change 100644 => 100755 textures/weather_snow.png diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LazyJ-changelog.txt b/LazyJ-changelog.txt old mode 100644 new mode 100755 diff --git a/changelog.txt b/changelog.txt old mode 100644 new mode 100755 diff --git a/depends.txt b/depends.txt old mode 100644 new mode 100755 index 647b35d..59f057d --- a/depends.txt +++ b/depends.txt @@ -1,5 +1,4 @@ default flowers? moreblocks? -skins? -treecapitator? +watershed? diff --git a/init.lua b/init.lua old mode 100644 new mode 100755 index 79ad3f2..b7127cf --- a/init.lua +++ b/init.lua @@ -47,34 +47,43 @@ http://github.com/Splizard/minetest-mod-snow/ -- Until something else can be figured out, use paramat's "Snowdrift" mod instead. -- dofile(modpath.."/falling_snow.lua") -local load_time_start = minetest.get_us_time() - - -- Original init.lua File Broken into Smaller Files -local srcpath = minetest.get_modpath"snow".."/src/" -dofile(srcpath.."abms.lua") -dofile(srcpath.."aliases.lua") -dofile(srcpath.."crafting.lua") +local modpath = minetest.get_modpath("snow") +dofile(modpath.."/src/abms.lua") +dofile(modpath.."/src/aliases.lua") +dofile(modpath.."/src/crafting.lua") -- The formspec menu didn't work when util.lua was the very first "dofile" so I moved -- it and all the other original "dofiles", in order, to the bottom of the list. ~ LazyJ -- Minetest would crash if the mapgen was called upon before the rest of other snow lua files so -- I put it lower on the list and that seems to do the trick. ~ LazyJ -dofile(srcpath.."util.lua") -dofile(srcpath.."snowball.lua") +dofile(modpath.."/src/util.lua") +dofile(modpath.."/src/snowball.lua") -- To get Xmas tree saplings, the "christmas_content", true or false, in "util.lua" has to be determined first. -- That means "nodes.lua", where the saplings are controlled, has to come after "util.lua". ~ LazyJ -dofile(srcpath.."nodes.lua") -dofile(srcpath.."mapgen.lua") -dofile(srcpath.."sled.lua") -dofile(srcpath.."falling_snow.lua") +dofile(modpath.."/src/nodes.lua") +dofile(modpath.."/src/basic_stairs_slabs.lua") +-- dofile(modpath.."/src/mapgen.lua") +dofile(modpath.."/src/sled.lua") +-- dofile(modpath.."/src/falling_snow.lua") + +-- Check for "MoreBlocks". If not found, skip this next "dofile". + +if rawget(_G, "stairsplus") +and minetest.get_modpath("moreblocks") then + + dofile(modpath.."/src/stairsplus.lua") + +end + local is_uneven --This function places snow checking at the same time for snow level and increasing as needed. --This also takes into account sourrounding snow and makes snow even. function snow.place(pos) + if pos.y < -19000 then return end -- Don't put anything in the nether! local node = minetest.get_node_or_nil(pos) --Oops, maybe there is no node? @@ -189,12 +198,3 @@ snow.register_on_configuring(function(name, v) end end end) - - -local time = (minetest.get_us_time() - load_time_start) / 1000000 -local msg = "[snow] loaded after ca. " .. time .. " seconds." -if time > 0.01 then - print(msg) -else - minetest.log("info", msg) -end diff --git a/license.txt b/license.txt old mode 100644 new mode 100755 diff --git a/models/sled.blend b/models/sled.blend deleted file mode 100644 index 57f4257c572603c7b6ed156c7ce7b28d901e6abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430048 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 l4D<$>K`= rarity - - local em = "" - if type(x) ~= "number" then - em = em.. "x no number but "..type(x).." " - elseif x%1 ~= 0 then - em = em.. "x no integer but "..x.." " - end - if type(y) ~= "number" then - em = em.. "y no number but "..type(y).." " - elseif y%1 ~= 0 then - em = em.. "y no integer but "..y.." " - end - if em ~= "" then - error(em) - end - - if cold_perl_values[y] then - cold_perl_values[y][x] = v - end + cold_perl_values[y][x] = v return v end @@ -238,7 +220,7 @@ end local lighter_snowfall = snow.lighter_snowfall local function calc_snowfall() for _, player in pairs(minetest.get_connected_players()) do - local ppos = vector.round(player:getpos()) + local ppos = player:getpos() -- Make sure player is not in a cave/house... if get_snow(ppos) diff --git a/src/mapgen.lua b/src/mapgen.lua old mode 100644 new mode 100755 index 8aaa4fb..5d9fce8 --- a/src/mapgen.lua +++ b/src/mapgen.lua @@ -197,25 +197,3 @@ function snow.voxelmanip_pine(pos,a,data) data[a:index(pos.x,pos.y+7,pos.z)] = c_snow end end - --- treecapitator support -if minetest.global_exists"treecapitator" then - treecapitator.register_tree{ - trees = {"default:pine_tree"}, - leaves = {"snow:needles"}, - range = 1, - range_up = 2, - range_down = 3, - stem_height_min = 1, - } - - treecapitator.register_tree{ - trees = {"default:pine_tree"}, - leaves = {"snow:needles_decorated"}, - fruits = {"snow:star_lit", "snow:star"}, - range = 1, - range_up = 3, - range_down = 3, - stem_height_min = 1, - } -end diff --git a/src/mapgen_v6.lua b/src/mapgen_v6.lua old mode 100644 new mode 100755 index 9c7e95d..26b075e --- a/src/mapgen_v6.lua +++ b/src/mapgen_v6.lua @@ -172,21 +172,6 @@ snow.register_on_configuring(function(name, v) end end) -local perlin_objs, perlins_chulen -local function get_perlins(sidelen) - if perlins_chulen == sidelen then - return - end - perlins_chulen = sidelen - local chulens = {x=sidelen, y=sidelen} - perlin_objs = { - default = minetest.get_perlin_map(np_default, chulens), - cold = minetest.get_perlin_map(np_cold, chulens), - ice = minetest.get_perlin_map(np_ice, chulens), - } -end - -local nbuf_default, nbuf_cold, nbuf_ice minetest.register_on_generated(function(minp, maxp, seed) local t1 = os.clock() @@ -209,9 +194,10 @@ minetest.register_on_generated(function(minp, maxp, seed) local snow_tab,num = {},1 local pines_tab,pnum = {},1 - get_perlins(x1 - x0 + 1) - local nvals_default = perlin_objs.default:get2dMap_flat({x=x0+150, y=z0+50}, nbuf_default) - local nvals_cold, nvals_ice, ndia + local sidelen = x1 - x0 + 1 + local chulens = {x=sidelen, y=sidelen, z=sidelen} + local nvals_default = minetest.get_perlin_map(np_default, chulens):get2dMap_flat{x=x0+150, y=z0+50} + local nvals_cold, nvals_ice -- Choose biomes local pr = PseudoRandom(seed+57) @@ -237,7 +223,9 @@ minetest.register_on_generated(function(minp, maxp, seed) local in_biome = false local test if nvals_default[ni] < 0.35 then - nvals_cold = nvals_cold or perlin_objs.cold:get2dMap_flat({x=x0, y=z0}, nbuf_cold) + if not nvals_cold then + nvals_cold = minetest.get_perlin_map(np_cold, chulens):get2dMap_flat{x=x0, y=z0} + end test = math.min(nvals_cold[ni], 1) if smooth then if test >= smooth_rarity_max @@ -259,40 +247,41 @@ minetest.register_on_generated(function(minp, maxp, seed) -- remove trees near alpine local ground_y if data[area:index(x, maxp.y, z)] == c.air then - local ytop = math.min(heightmap[ni]+20, maxp.y) - local vi = area:index(x, ytop, z) - for y = ytop, math.max(minp.y, heightmap[ni]-5), -1 do - if data[vi] ~= c.air then + for y = math.min(heightmap[ni]+20, maxp.y), math.max(minp.y, heightmap[ni]-5), -1 do + if data[area:index(x, y, z)] ~= c.air then ground_y = y break end - vi = vi - area.ystride end end if ground_y then local vi = area:index(x, ground_y, z) - for _ = minp.y - 16, ground_y do - local id = data[vi] - if id == c.leaves - or id == c.jungleleaves - or id == c.tree - or id == c.apple then - data[vi] = c.air - nodes_added = true - else - break + if data[vi] == c.leaves + or data[vi] == c.jungleleaves then + nodes_added = true + for y = ground_y, -16, -1 do + local vi = area:index(x, y, z) + local id = data[vi] + if id ~= c.air then + if id == c.leaves + or id == c.jungleleaves + or id == c.tree + or id == c.apple then + data[vi] = c.air + else + break + end + end end - vi = vi - area.ystride end end end else + nodes_added = true + write_to_map = true if not nvals_ice then - nvals_ice = perlin_objs.ice:get2dMap_flat({x=x0, y=z0}, nbuf_ice) - - nodes_added = true - write_to_map = true + nvals_ice = minetest.get_perlin_map(np_ice, chulens):get2dMap_flat{x=x0, y=z0} end local icetype = nvals_ice[ni] local cool = icetype > 0 -- only spawns ice on edge of water @@ -306,14 +295,11 @@ minetest.register_on_generated(function(minp, maxp, seed) -- avoid generating underground if data[area:index(x, maxp.y, z)] == c.air then -- search for non air node from 20 m above ground down to 5 m below ground (confined by minp and maxp) - local ytop = math.min(heightmap[ni]+20, maxp.y) - local vi = area:index(x, ytop, z) - for y = ytop, math.max(minp.y, heightmap[ni]-5), -1 do - if data[vi] ~= c.air then + for y = math.min(heightmap[ni]+20, maxp.y), math.max(minp.y, heightmap[ni]-5), -1 do + if data[area:index(x, y, z)] ~= c.air then ground_y = y break end - vi = vi - area.ystride end end @@ -327,13 +313,12 @@ minetest.register_on_generated(function(minp, maxp, seed) snow_tab[num] = {ground_y, z, x, test} num = num+1 -- generate stone ground - local vi = area:index(x, ground_y, z) - for _ = math.max(-6, minp.y-6), ground_y do + for y = ground_y, math.max(-6, minp.y-6), -1 do + local vi = area:index(x, y, z) if data[vi] == c.stone then break end data[vi] = c.stone - vi = vi - area.ystride end elseif pines and pr:next(1,36) == 1 then @@ -358,21 +343,26 @@ minetest.register_on_generated(function(minp, maxp, seed) if not icesheet and not icecave and not icehole then - local y = data[node - area.ystride] - local ice = y ~= c.water and y ~= c.ice - + local nds = { + data[area:index(x+1, ground_y, z)], + data[area:index(x, ground_y, z+1)], + data[area:index(x+1, ground_y, z+1)], + data[area:index(x-1, ground_y, z-1)], + data[area:index(x-1, ground_y, z)], + data[area:index(x, ground_y, z-1)], + } + local ice + if pr:next(1,4) == 1 + and (cool or icebergs) then + for _,i in ipairs(nds) do + if i == c.ice then + ice = true + break + end + end + end if not ice then - ndia = ndia or { - area.zstride - 1, - 1, - -2*area.zstride - 2, - area.zstride, - 1 - area.zstride, - 0 - } - local vi = node + 1 - for n = 1,6 do - local i = data[vi] + for _,i in ipairs(nds) do if i ~= c.water and i ~= c.ice and i ~= c.air @@ -380,24 +370,11 @@ minetest.register_on_generated(function(minp, maxp, seed) ice = true break end - vi = vi + ndia[n] - end - - if not ice - and (cool or icebergs) - and pr:next(1,4) == 1 then - - local vi = node + 1 - for i = 1,6 do - if data[vi] == c.ice then - ice = true - break - end - vi = vi + ndia[i] - end end end + local y = data[area:index(x, ground_y-1, z)] if ice + or (y ~= c.water and y ~= c.ice) -- and y ~= "air") …I don't think y can be a string here ~HybridDog or (icebergs and pr:next(1,6) == 1) then data[node] = c.ice end @@ -408,13 +385,12 @@ minetest.register_on_generated(function(minp, maxp, seed) data[node] = c.ice end if icecave then - local vi = area:index(x, ground_y-1, z) - for _ = math.max(minp.y-16, -33), ground_y-1 do + for y = ground_y-1, -33, -1 do + local vi = area:index(x, y, z) if data[vi] ~= c.water then break end data[vi] = c.air - vi = vi - area.ystride end end if icesheet then @@ -433,23 +409,24 @@ minetest.register_on_generated(function(minp, maxp, seed) snow_tab[num] = {ground_y, z, x, test} num = num+1 -- replace papyrus plants with snowblocks - local vi = area:index(x, ground_y, z) + local y = ground_y for _ = 1,7 do - if data[vi] ~= c.papyrus then + local vi = area:index(x, y, z) + if data[vi] == c.papyrus then + data[vi] = c.snow_block + y = y-1 + else break end - data[vi] = c.snow_block - vi = vi - area.ystride end elseif alpine then -- make stone pillars out of trees and other stuff - local vi = area:index(x, ground_y, z) - for _ = 0, ground_y - math.max(-6, minp.y-6) do - if data[vi] == c.stone then + for y = ground_y, math.max(-6, minp.y-6), -1 do + local stone = area:index(x, y, z) + if data[stone] == c.stone then break end - data[vi] = c.stone - vi = vi - area.ystride + data[stone] = c.stone end -- put snow onto it snow_tab[num] = {ground_y, z, x, test} @@ -460,8 +437,9 @@ minetest.register_on_generated(function(minp, maxp, seed) snow_tab[num] = {ground_y, z, x, test} num = num+1 end - local vi = area:index(x, ground_y, z) - for _ = 0, 12 do + for y = 0, 12 do + y = ground_y-y + local vi = area:index(x, y, z) local nd = data[vi] local plantlike = is_plantlike(nd) if replacements[nd] then @@ -473,7 +451,7 @@ minetest.register_on_generated(function(minp, maxp, seed) data[vi] = c.dirt_with_snow break elseif plantlike then - local under = vi - area.ystride + local under = area:index(x, y-1, z) if data[under] == c.dirt_with_grass then -- replace other plants with shrubs data[vi] = c.snow_shrub @@ -484,7 +462,6 @@ minetest.register_on_generated(function(minp, maxp, seed) elseif nd == c.stone then break end - vi = vi - area.ystride end end end @@ -498,14 +475,15 @@ minetest.register_on_generated(function(minp, maxp, seed) return end + -- try to fix oom memory crashes + minetest.after(0, collectgarbage) + if num ~= 1 then - for i = 1, num-1 do - i = snow_tab[i] + for _,i in pairs(snow_tab) do -- set snow data[area:index(i[3], i[1]+1, i[2])] = c.snow end - for i = 1, num-1 do - i = snow_tab[i] + for _,i in pairs(snow_tab) do local y,z,x,test = unpack(i) test = (test-nosmooth_rarity)/(1-nosmooth_rarity) -- /(1-0.53) if test > 0 then @@ -550,8 +528,8 @@ minetest.register_on_generated(function(minp, maxp, seed) if pines and pnum ~= 1 then local spawn_pine = snow.voxelmanip_pine - for i = 1, pnum-1 do - spawn_pine(pines_tab[i], area, data) + for _,pos in pairs(pines_tab) do + spawn_pine(pos, area, data) end end diff --git a/src/mapgen_v7.lua b/src/mapgen_v7.lua old mode 100644 new mode 100755 diff --git a/src/nodes.lua b/src/nodes.lua old mode 100644 new mode 100755 index 8bb8d7e..53a9c63 --- a/src/nodes.lua +++ b/src/nodes.lua @@ -13,11 +13,6 @@ local nodedef = { drop = { max_items = 1, items = { - { - -- player will get sapling with 1/20 chance - items = {'snow:sapling_pine'}, - rarity = 20, - }, { items = {'snow:needles'}, } @@ -32,15 +27,15 @@ If christmas_content is enabled, then this next part will override the pine need The Xmas tree needles are registred and defined a farther down in this nodes.lua file. ~ LazyJ -]] + if snow.christmas_content then table.insert(nodedef.drop.items, 1, { -- player will get xmas tree with 1/120 chance - items = {"snow:xmas_tree"}, + items = {'snow:xmas_tree'}, rarity = 120, }) end - +]] minetest.register_node("snow:needles", table.copy(nodedef)) snow.register_on_configuring(function(name, v) @@ -85,7 +80,7 @@ nodedef.drop.items[#nodedef.drop.items] = {items = {'snow:needles_decorated'}} minetest.register_node("snow:needles_decorated", nodedef) --- Saplings +--[[ Saplings nodedef = { description = "Pine Sapling", @@ -111,7 +106,7 @@ nodedef.inventory_image = "snow_xmas_tree.png" nodedef.wield_image = "snow_xmas_tree.png" minetest.register_node("snow:xmas_tree", nodedef) - +]] nodedef = { description = "Star", @@ -137,7 +132,7 @@ minetest.register_node("snow:star", table.copy(nodedef)) -- Star (Lit Version) on Xmas Trees nodedef.description = nodedef.description.." Lighted" -nodedef.light_source = LIGHT_MAX +nodedef.light_source = default.LIGHT_MAX nodedef.tiles = {"snow_star_lit.png"} nodedef.drop = "snow:star" nodedef.groups.not_in_creative_inventory = 1 @@ -335,12 +330,16 @@ minetest.register_node("snow:snow_cobble", nodedef) -- Override Default Nodes to Add Extra Functions +-- This adds code to the existing default ice. ~ LazyJ minetest.override_item("default:ice", { - use_texture_alpha = true, - param2 = 0, --param2 is reserved for how much ice will freezeover. - sunlight_propagates = true, -- necessary for dirt_with_grass/snow/just dirt ABMs + -- The Lines: 1. Alpah to make semi-transparent ice, 2 to work with + -- the dirt_with_grass/snow/just dirt ABMs. ~ LazyJ, 2014_03_09 + use_texture_alpha = true, -- 1 + param2 = 0, + --param2 is reserved for how much ice will freezeover. + sunlight_propagates = true, -- 2 drawtype = "glasslike", - inventory_image = minetest.inventorycube"default_ice.png".."^[brighten", + inventory_image = minetest.inventorycube("default_ice.png").."^[brighten", liquidtype = "none", -- I made this a lot harder to dig than snow blocks because ice is much more dense -- and solid than fluffy snow. ~ LazyJ @@ -354,11 +353,12 @@ minetest.override_item("default:ice", { }) + +-- This adds code to the existing, default snowblock. ~ LazyJ minetest.override_item("default:snowblock", { - -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) - liquidtype = "none", - paramtype = "light", - sunlight_propagates = true, + liquidtype = "none", -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) + paramtype = "light", -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) + sunlight_propagates = true, -- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) -- Snow blocks should be easy to dig because they are just fluffy snow. ~ LazyJ groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=1, icemaker=1, cooks_into_ice=1, falling_node=1}, --drop = "snow:snow_cobble", @@ -366,106 +366,3 @@ minetest.override_item("default:snowblock", { -- Thinking in terms of layers, dirt_with_snow could also double as -- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 }) - - -minetest.override_item("default:snow", { - drop = { - max_items = 2, - items = { - {items = {'snow:moss'}, rarity = 20,}, - {items = {'default:snow'},} - } - }, - leveled = 7, - node_box = { - type = "leveled", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.5, 0.5}, - }, - }, - groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, falling_node=1, melts=2, float=1}, - sunlight_propagates = true, - walkable = true, - node_placement_prediction = "", - on_construct = function(pos) - pos.y = pos.y-1 - local node = minetest.get_node(pos) - if node.name == "default:dirt_with_grass" - or node.name == "default:dirt" then - node.name = "default:dirt_with_snow" - minetest.set_node(pos, node) - end - end, - --Handle node drops due to node level. - on_dig = function(pos, node, digger) - local level = minetest.get_node_level(pos) - minetest.node_dig(pos, node, digger) - if minetest.get_node(pos).name ~= node.name then - local inv = digger:get_inventory() - if not inv then - return - end - local left = inv:add_item("main", "default:snow "..tostring(level/7-1)) - if not left:is_empty() then - minetest.add_item({ - x = pos.x + math.random()/2-0.25, - y = pos.y + math.random()/2-0.25, - z = pos.z + math.random()/2-0.25, - }, left) - end - end - end, - --Manage snow levels. - on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local oldnode_under = minetest.get_node_or_nil(under) - local above = pointed_thing.above - - if not oldnode_under - or not above then - return - end - - local olddef_under = ItemStack({name=oldnode_under.name}):get_definition() - olddef_under = olddef_under or minetest.nodedef_default - - local place_to - -- If node under is buildable_to, place into it instead (eg. snow) - if olddef_under.buildable_to then - place_to = under - else - -- Place above pointed node - place_to = above - end - - local level = minetest.get_node_level(place_to) - if level == 63 then - minetest.set_node(place_to, {name="default:snowblock"}) - else - minetest.set_node_level(place_to, level+7) - end - - if minetest.get_node(place_to).name ~= "default:snow" then - local itemstack, placed = minetest.item_place_node(itemstack, placer, pointed_thing) - return itemstack, placed - end - - itemstack:take_item() - - return itemstack - end, - on_use = snow.shoot_snowball -}) - - - --- Do stairs files - -local path = minetest.get_modpath"snow".."/src/" - -dofile(path.."basic_stairs_slabs.lua") - -if minetest.global_exists"stairsplus" -and minetest.get_modpath"moreblocks" then - dofile(path.."stairsplus.lua") -end diff --git a/src/sled.lua b/src/sled.lua old mode 100644 new mode 100755 diff --git a/src/snowball.lua b/src/snowball.lua old mode 100644 new mode 100755 index b373d2f..b8008de --- a/src/snowball.lua +++ b/src/snowball.lua @@ -6,13 +6,13 @@ -- Quite a bit of trial-and-error learning here and it boiled down to a -- small handful of code lines making the difference. ~ LazyJ -local creative_mode = minetest.settings:get_bool"creative_mode" +local creative_mode = minetest.setting_getbool("creative_mode") local snowball_velocity, entity_attack_delay local function update_snowball_vel(v) snowball_velocity = v - local walkspeed = tonumber(minetest.settings:get"movement_speed_walk") or 4 + local walkspeed = tonumber(minetest.setting_get("movement_speed_walk")) or 4 entity_attack_delay = (walkspeed+1)/v end update_snowball_vel(snow.snowball_velocity) @@ -27,14 +27,14 @@ snow.register_on_configuring(function(name, v) end) local function get_gravity() - local grav = tonumber(minetest.settings:get"movement_gravity") or 9.81 + local grav = tonumber(minetest.setting_get("movement_gravity")) or 9.81 return grav*snowball_gravity end local someone_throwing, just_acitvated --Shoot snowball -function snow.shoot_snowball(item, player) +local function snow_shoot_snowball(item, player) local addp = {y = 1.625} -- + (math.random()-0.5)/5} local dir = player:get_look_dir() local dif = 2*math.sqrt(dir.z*dir.z+dir.x*dir.x) @@ -64,7 +64,7 @@ if creative_mode then local item = player:get_wielded_item() local itemname = item:get_name() if itemname == "default:snow" then - snow.shoot_snowball(nil, player) + snow_shoot_snowball(nil, player) active = true break end @@ -174,11 +174,10 @@ function snow_snowball_ENTITY.on_step(self, dtime) end for _,v in pairs(minetest.get_objects_inside_radius(pos, 1.73)) do if v ~= self.object then - local entity_name = v:get_luaentity().name - if v:is_player() - or (entity_name ~= "snow:snowball_entity" + local entity_name = v:get_entity_name() + if entity_name ~= "snow:snowball_entity" and entity_name ~= "__builtin:item" - and entity_name ~= "gauges:hp_bar") then + and entity_name ~= "gauges:hp_bar" then local vvel = v:getvelocity() or v:get_player_velocity() local veldif = self.object:getvelocity() if vvel then @@ -252,6 +251,97 @@ minetest.register_node(":default:snow", { +minetest.override_item("default:snow", { + drop = { + max_items = 2, + items = { + {items = {'snow:moss'}, rarity = 20,}, + {items = {'default:snow'},} + } + }, + leveled = 7, + node_box = { + type = "leveled", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5, 0.5}, + }, + }, + groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, falling_node=1, melts=2, float=1}, + sunlight_propagates = true, + --Disable placement prediction for snow. + node_placement_prediction = "", + on_construct = function(pos) + pos.y = pos.y-1 + local node = minetest.get_node(pos) + if node.name == "default:dirt_with_grass" + or node.name == "default:dirt" then + node.name = "default:dirt_with_snow" + minetest.set_node(pos, node) + end + end, + --Handle node drops due to node level. + on_dig = function(pos, node, digger) + local level = minetest.get_node_level(pos) + minetest.node_dig(pos, node, digger) + if minetest.get_node(pos).name ~= node.name then + local inv = digger:get_inventory() + if not inv then + return + end + local left = inv:add_item("main", "default:snow "..tostring(level/7-1)) + if not left:is_empty() then + minetest.add_item({ + x = pos.x + math.random()/2-0.25, + y = pos.y + math.random()/2-0.25, + z = pos.z + math.random()/2-0.25, + }, left) + end + end + end, + --Manage snow levels. + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local oldnode_under = minetest.get_node_or_nil(under) + local above = pointed_thing.above + + if not oldnode_under + or not above then + return + end + + local olddef_under = ItemStack({name=oldnode_under.name}):get_definition() + olddef_under = olddef_under or minetest.nodedef_default + + local place_to + -- If node under is buildable_to, place into it instead (eg. snow) + if olddef_under.buildable_to then + place_to = under + else + -- Place above pointed node + place_to = above + end + + local level = minetest.get_node_level(place_to) + if level == 63 then + minetest.set_node(place_to, {name="default:snowblock"}) + else + minetest.set_node_level(place_to, level+7) + end + + if minetest.get_node(place_to).name ~= "default:snow" then + local itemstack, placed = minetest.item_place_node(itemstack, placer, pointed_thing) + return itemstack, placed + end + + itemstack:take_item() + + return itemstack + end, + on_use = snow_shoot_snowball +}) + + + --[[ A note about default torches, melting, and "buildable_to = true" in default snow. diff --git a/src/stairsplus.lua b/src/stairsplus.lua old mode 100644 new mode 100755 index 51afcbd..6d4d5e2 --- a/src/stairsplus.lua +++ b/src/stairsplus.lua @@ -36,7 +36,7 @@ There is one in each of the "stairsplus.register_all" sections. -- Check for infinite stacks ---if minetest.get_modpath("unified_inventory") or not minetest.settigetbool("creative_mode") then +--if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then -- snow_stairsplus.expect_infinite_stacks = false --else -- snow_stairsplus.expect_infinite_stacks = true @@ -50,9 +50,12 @@ There is one in each of the "stairsplus.register_all" sections. -- First, let's run a check to see if MoreBlocks is installed; we're going to need it for the -- next section of stairsplus stuff. ~LazyJ +if (minetest.get_modpath("moreblocks")) +and rawget(_G, "stairsplus") -- 'If' MoreBlocks was found and stairsplus is available, well, 'then' go ahead with this next part: +then --[[ Leave commented out - For reference only. ~ LazyJ function stairsplus.register_all(modname, subname, recipeitem, fields) @@ -271,6 +274,7 @@ for _, name in pairs(snow_nodes) do stairsplus:register_all("moreblocks", name, nodename, { description = ndef.description, + drop = ndef.drop, groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=2, icemaker=1}, tiles = ndef.tiles, --paramtype2 = "facedir", @@ -332,7 +336,7 @@ for _, name in pairs(snow_nodes) do }) end - -- from clear up at the top, the MoreBlocks check. "Else", if MoreBlocks wasn't found, skip +else -- from clear up at the top, the MoreBlocks check. "Else", if MoreBlocks wasn't found, skip -- down to here, "return" nothing and "end" this script. ~ LazyJ - - +return +end diff --git a/src/util.lua b/src/util.lua old mode 100644 new mode 100755 index d1e1b55..b78d8ef --- a/src/util.lua +++ b/src/util.lua @@ -103,8 +103,9 @@ do --Create config file. return end + io.close(file) config = {} - for line in file:lines() do + for line in io.lines(path) do if line:sub(1,1) ~= "#" then local i, v = line:match("^(%S*) = (%S*)") if i and v then @@ -112,7 +113,6 @@ do end end end - io.close(file) end if config then @@ -132,7 +132,7 @@ end for i,v in pairs(snow) do if allowed_types[type(v)] then - local v = minetest.settings:get("snow_"..i) + local v = minetest.setting_get("snow_"..i) if v ~= nil then snow[i] = value_from_string(v) end diff --git a/textures/character_snow_man.png b/textures/character_snow_man.png old mode 100644 new mode 100755 diff --git a/textures/character_snow_man_preview.png b/textures/character_snow_man_preview.png old mode 100644 new mode 100755 diff --git a/textures/character_snow_man_preview_back.png b/textures/character_snow_man_preview_back.png old mode 100644 new mode 100755 diff --git a/textures/default_ice.png b/textures/default_ice.png deleted file mode 100644 index de0e9841ebf8916fe2e24fc8bb6df3b2f2732206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)O|nUB6>Fi{bjtojG&n z%wQI~u)5fW?c06Wz*>uaSjAVHtpoYm^KEjkaF#Jw@zeXj!OGKhU>p7L;5___Exx~C z8NLgEwiNvMC;p5t3$Q)kgdWz$-w+sn%LtiDb)7hJ``0)#+Xh+gh2_&pJ^}0Q9siwM zx4Uox_;B?cRpt+&WuWTI!P))!c6JH0W}6^SvLgmqiRz`t*SJMoZ@vyEYL^&WmS}*Z zzj}(g1o*lW+)xWxhalY@QKoM%ZOejXPOS@|NM#?8F7!swyyhIM8aB9lj?`}n%K=u} z|BhWwC0lCQXabm$uUCiY+w4BL5|I3>Vl)GWc*=3QqA38t67@-T1qy5V>n80v*#)YPlAhnAf5tMzZV9`|a`X%b4(MWnR@{YzVA+<O}kb?HLzM4P4o|5%Pqg}OWNo+APBn+|dB-|*G@2@=c^a#x+CM{f5O$Bx| d1x-q={0DTdMm23tN=pC$002ovPDHLkV1nH(EadOcThtDHdi6 z7($Lw212&njPC=gn(qa=f?CD125}i##rpyUx-@Z1PQW#IvGp2)qp^$Tx=xN>P>XxQ zdx_Ly#DH*4k}KiI5Kn7N0ynq>Z*y{X@sY(o9~>$I5yMS~i!8f36?4LJzPQP8Sh$Qm zT)P@}GM{gF7v5qV#_%ClQPuj2V1)CT#m90+NT-K*RWWLFy`B8bo0*F>oqG&Mi{8!c zPWd3J?O3hhlfB{g!hTUY&Xc!Wn2J0DnbCWpEpoVFL(dkzTiYjZ<}{5t@E8x4nyrm& z@*C%Sx22@(7|2}gw#Sy%aLef$Sw^9AIC|f0zjO1)j5UMBqFS1Ea2}J`ZM(N>fPBic z%)4YEZg26ylKVl;Np-Qanc?*=MJGPDV^s zrtM7qoRjAqyt1e)#`ENBH7Y~CVTYk^Q@2J;u9#ezMy6hK!Wdk&&@RsNB3hig+3xn~ z1O9HKDcv5d2(C(gWa@hcJqEQl(guIRE_w@wbATQ$<1dUR_%p>Tiz5?@Net(q=GdF# zyvR;IT6~7_Q1FZ5;X|;*L!gAo%{eEBgL<)h^STC9^VQ8OCPxUWSPAJ{w25hhCs0fT s+zmH{xtlj6r5$0Hp)-v|vLfjJ0WfKmwSe^8k^lez07*qoM6N<$flQr7)&JOhnk#N8?``?a{l6G^?1ipsY?${R=t>4p LS3j3^P6_Ygun&9NV~nfb*qf#Q>2u2h?dzS2A^PnljliL_bzC3++=|B)CIAc zZ5~T43RRVXFVgkAz2=&nq9UFO{Ca{3Vut5$O&EI^?}(OTArx9k$~P+?>{6tKqLU$= zFP%iIem<#dVG{n#OB`U7RM52aP}{Gl6&3LKS@2p9#ZAh=YL_GU#y}!U+?eDI9d(do Tp!#+h00000NkvXXu0mjfhcR>R diff --git a/textures/snow_shrub_normal.png b/textures/snow_shrub_normal.png deleted file mode 100644 index c14028b8898d71c3942b80c6114c185c29250257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmV+^0oMMBP)nrP%@TNs96nEfp%7ySxPs^dgICZIGVUM z7+421hiX5%>JFm4H5s9;6OU!Wdg^%uDmoBmK1Z90N9M3iGf%FGZ%kp@b|G4I;#Ug8 z9a&34(Fi;V_N~#l!`pQnmmj;Ysj^55^JuE%#*dR#1kl`1EO5p>{#VcZ#XR~Pb4YF- v8g`iWYq%CuSMVn1-$;^%l}cQrimSK-#rNf8zX?nI00000NkvXXu0mjfb#i`A diff --git a/textures/snow_sled.png b/textures/snow_sled.png old mode 100644 new mode 100755 diff --git a/textures/snow_snow_brick.png b/textures/snow_snow_brick.png old mode 100644 new mode 100755 diff --git a/textures/snow_snow_brick_normal.png b/textures/snow_snow_brick_normal.png deleted file mode 100644 index ad270a127837653602b5f96f846dfff1ecf6bae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmV867c|~NgjtAs56|QQ2VE#GJcVL)ce;`n7lZo`KKb%_*PKUnpT=ya zaJF$&19sHzx{8c@h03}NdAHgD$B+fk@yK~vbj&WuWq8dqas^w)rt;42H8B13gd&iI zrr;e{TxloLDRFC4BBY~-w-KO{kkPhv1quoT7)EExo(;Wval=e zH%4zpDt|cvR%f(OB(~NacX2u)z!O)*NF=MDGFdT