From 914709f41e20b0c85fe3a570bcb915080cdbd453 Mon Sep 17 00:00:00 2001 From: Izzy Date: Wed, 5 Jun 2019 17:50:35 -0600 Subject: [PATCH] first commit --- depends.txt | 2 + init.lua | 105 ++++++++++++++++++++++++++++++++++++++ textures/storms_cloud.png | Bin 0 -> 202 bytes 3 files changed, 107 insertions(+) create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 textures/storms_cloud.png diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..8927eab --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +default +seasons? diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..588e7a5 --- /dev/null +++ b/init.lua @@ -0,0 +1,105 @@ + + +local on = false + +local sky_defaults = nil + +local heat_noise = nil +local humidity_nois = nil +local storm_players = {} + + +minetest.after(1, function() + local noise = minetest.get_mapgen_setting_noiseparams("mg_biome_np_heat") + heat_noise = minetest.get_perlin_map(noise, {x=1, y=1, z=1}) + + noise = minetest.get_mapgen_setting_noiseparams("mg_biome_np_humidity") + humidity_noise = minetest.get_perlin_map(noise, {x=1, y=1, z=1}) +end) + + +local function get_noise(pos) + return heat_noise:get2dMap(pos), humidity_noise:get2dMap(pos) +end + + +minetest.register_craftitem("storms:rainstick", { + description = "Magic Rainstick", + inventory_image = "default_stick.png^[colorize:gold:80", + stack_max = 1, + on_use = function(itemstack, player, pointed_thing) + + + if sky_defaults == nil then + sky_defaults = {} + sky_defaults.col, sky_defaults.tp, sky_defaults.tex, sky_defaults.cl = player:get_sky() + end + + + if on then + on = false + player:set_sky(sky_defaults.col, sky_defaults.tp, sky_defaults.tex, sky_defaults.cl) + else + on = true + + function spawn_clouds() + local pos = player:get_pos() + pos.y = pos.y + 55 + + local sz = 300 + local ht = 10 + + local vel = {x=5, y = 0, z=1} + + minetest.add_particlespawner({ + amount = 5000, + time = 5, + minpos = {x=pos.x-sz, y=pos.y, z=pos.z-sz}, + maxpos = {x=pos.x+sz, y=pos.y+ht, z=pos.z+sz}, + minvel = vector.add(vel, {x=-1, y=0, z=-1}), + maxvel = vector.add(vel, {x=5, y=0.5, z=5}), + minacc = {x=-0.1, y=0.1, z=-0.1}, + maxacc = {x=0.1, y=0.3, z=0.1}, + minexptime = 5, + maxexptime = 10, + minsize = 300, + maxsize = 400, + texture = "storms_cloud.png^[colorize:black:120", + }) + + --[[ + minetest.add_particlespawner({ + amount = 350, + time = 15, + minpos = {x=pos.x-sz, y=pos.y, z=pos.z-sz}, + maxpos = {x=pos.x+sz, y=pos.y+ht, z=pos.z+sz}, + minvel = {x=0, y=-89, z=0}, + maxvel = {x=5, y=-89, z=0}, + minacc = {x=0, y=0, z=0}, + maxacc = {x=0, y=0, z=0}, + minexptime = 2, + maxexptime = 2, + minsize = 100, + maxsize = 100, + texture = "biometest_rain.png^[colorize:red:0", + }) + ]] + + if on then + minetest.after(10, function() + spawn_clouds() + end) + end + + end + + spawn_clouds() + + player:set_sky({r=20, g=20, b=30}, "plain", nil, false) + end + + + end, +}) + + diff --git a/textures/storms_cloud.png b/textures/storms_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..488b50fe958d33fa4cd50fa383a4685db045def5 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fw4`$F~s6@a>4>ti^@+=>QiQE7$hEQ`G3RY@DXvHh=$u6+S=Ge zd|6pp|9|XU+`ubsmaui^1PiVPOaAGbFCN{bP0l+XkK@H9k* literal 0 HcmV?d00001