lightning
parent
56de74e801
commit
905436c6bf
46
init.lua
46
init.lua
|
@ -1,5 +1,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
storms = {}
|
||||||
|
|
||||||
|
|
||||||
local on = false
|
local on = false
|
||||||
|
|
||||||
local sky_defaults = nil
|
local sky_defaults = nil
|
||||||
|
@ -23,6 +26,37 @@ local function get_noise(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function randompos(center, dist)
|
||||||
|
return {
|
||||||
|
x = center.x + math.random(-dist, dist),
|
||||||
|
y = center.y,
|
||||||
|
z = center.z + math.random(-dist, dist),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function do_lightning(cloudh, pos)
|
||||||
|
|
||||||
|
local h = cloudh - 10
|
||||||
|
|
||||||
|
while h > -16 do
|
||||||
|
minetest.add_particle({
|
||||||
|
pos = {x=pos.x, y=h, z=pos.z},
|
||||||
|
velocity = {x=0, y=0, z=0},
|
||||||
|
acceleration = {x=0, y=0, z=0},
|
||||||
|
expirationtime = .1,
|
||||||
|
size = 300,
|
||||||
|
collisiondetection = false,
|
||||||
|
vertical = true,
|
||||||
|
texture = "storms_lightning.png",
|
||||||
|
playername = "singleplayer"
|
||||||
|
})
|
||||||
|
|
||||||
|
h = h - 30
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craftitem("storms:rainstick", {
|
minetest.register_craftitem("storms:rainstick", {
|
||||||
description = "Magic Rainstick",
|
description = "Magic Rainstick",
|
||||||
inventory_image = "default_stick.png^[colorize:gold:80",
|
inventory_image = "default_stick.png^[colorize:gold:80",
|
||||||
|
@ -60,13 +94,19 @@ minetest.register_craftitem("storms:rainstick", {
|
||||||
maxvel = vector.add(vel, {x=5, y=0.5, z=5}),
|
maxvel = vector.add(vel, {x=5, y=0.5, z=5}),
|
||||||
minacc = {x=-0.1, y=0.1, z=-0.1},
|
minacc = {x=-0.1, y=0.1, z=-0.1},
|
||||||
maxacc = {x=0.1, y=0.3, z=0.1},
|
maxacc = {x=0.1, y=0.3, z=0.1},
|
||||||
minexptime = 5,
|
minexptime = 2,
|
||||||
maxexptime = 10,
|
maxexptime = 7,
|
||||||
minsize = 300,
|
minsize = 300,
|
||||||
maxsize = 400,
|
maxsize = 400,
|
||||||
texture = "storms_cloud.png^[colorize:black:120",
|
texture = "storms_cloud.png^[colorize:black:120",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
for i = 1,math.random(18) do
|
||||||
|
minetest.after(math.random(5), function()
|
||||||
|
do_lightning(pos.y, randompos(pos, 40))
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
amount = 350,
|
amount = 350,
|
||||||
|
@ -86,7 +126,7 @@ minetest.register_craftitem("storms:rainstick", {
|
||||||
]]
|
]]
|
||||||
|
|
||||||
if on then
|
if on then
|
||||||
minetest.after(10, function()
|
minetest.after(5, function()
|
||||||
spawn_clouds()
|
spawn_clouds()
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 707 B |
Loading…
Reference in New Issue