Compare commits
5 Commits
184e475cce
...
f3aa266ecf
Author | SHA1 | Date |
---|---|---|
Maksim | f3aa266ecf | |
MoNTE48 | f96aecdef5 | |
MoNTE48 | 57f067f8c1 | |
MoNTE48 | 1468528d85 | |
MoNTE48 | 5e4867fa12 |
|
@ -0,0 +1,11 @@
|
||||||
|
on: [push, pull_request]
|
||||||
|
name: build
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
- name: lint
|
||||||
|
uses: Roang-zero1/factorio-mod-luacheck@master
|
||||||
|
with:
|
||||||
|
luacheckrc_url: https://raw.githubusercontent.com/MultiCraft/weather_lite/main/.luacheckrc
|
|
@ -0,0 +1,10 @@
|
||||||
|
max_line_length = 90
|
||||||
|
|
||||||
|
read_globals = {
|
||||||
|
"minetest",
|
||||||
|
"sscsm",
|
||||||
|
"ItemStack",
|
||||||
|
"vector",
|
||||||
|
table = { fields = { "copy" } }
|
||||||
|
}
|
||||||
|
|
|
@ -24,9 +24,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Lesser General Public License for more details.
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
http://www.gnu.org/licenses/lgpl-3.0.html
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
|
|
||||||
Authors of textures
|
Authors of textures
|
||||||
|
|
32
init.lua
32
init.lua
|
@ -1,7 +1,10 @@
|
||||||
if not minetest.settings:get_bool("enable_weather") then
|
if minetest.settings:get_bool("enable_weather") == false then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local translator = minetest.get_translator
|
||||||
|
local S = translator and translator("weather_lite") or function(s) return s end
|
||||||
|
|
||||||
local vadd, vmultiply, vround = vector.add, vector.multiply, vector.round
|
local vadd, vmultiply, vround = vector.add, vector.multiply, vector.round
|
||||||
local random = math.random
|
local random = math.random
|
||||||
local snow_covers = minetest.settings:get_bool("weather_snow_covers") ~= false
|
local snow_covers = minetest.settings:get_bool("weather_snow_covers") ~= false
|
||||||
|
@ -44,6 +47,7 @@ end
|
||||||
|
|
||||||
-- Rain
|
-- Rain
|
||||||
weather.register("rain", {
|
weather.register("rain", {
|
||||||
|
desc = S("Rain"),
|
||||||
falling_speed = 5,
|
falling_speed = 5,
|
||||||
amount = 6,
|
amount = 6,
|
||||||
size = 20,
|
size = 20,
|
||||||
|
@ -54,6 +58,7 @@ weather.register("rain", {
|
||||||
|
|
||||||
-- Snow
|
-- Snow
|
||||||
weather.register("snow", {
|
weather.register("snow", {
|
||||||
|
desc = S("Snow"),
|
||||||
falling_speed = 2,
|
falling_speed = 2,
|
||||||
amount = 5,
|
amount = 5,
|
||||||
size = 35,
|
size = 35,
|
||||||
|
@ -79,11 +84,11 @@ function weather.set(weather_type, wind)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function weather_change()
|
local function weather_change(disable)
|
||||||
if weather.type == "none" then
|
if weather.type == "none" and not disable then
|
||||||
for id, _ in pairs(weather.registered) do
|
for w in pairs(weather.registered) do
|
||||||
if random(3) == 1 then
|
if random(3) == 1 then
|
||||||
weather.set(id, {
|
weather.set(w, {
|
||||||
x = random(0, 8),
|
x = random(0, 8),
|
||||||
y = 0,
|
y = 0,
|
||||||
z = random(0, 8)
|
z = random(0, 8)
|
||||||
|
@ -92,7 +97,7 @@ local function weather_change()
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.after(random(60, 300), weather_change)
|
minetest.after(random(60, 300), function() weather_change(true) end)
|
||||||
else
|
else
|
||||||
weather.set("none")
|
weather.set("none")
|
||||||
minetest.after(random(1800, 3600), weather_change)
|
minetest.after(random(1800, 3600), weather_change)
|
||||||
|
@ -159,7 +164,7 @@ minetest.register_globalstep(function()
|
||||||
local current_downfall = weather.registered[weather.type]
|
local current_downfall = weather.registered[weather.type]
|
||||||
if current_downfall == nil then return end
|
if current_downfall == nil then return end
|
||||||
|
|
||||||
for _, player in pairs(minetest.get_connected_players()) do
|
for _, player in ipairs(minetest.get_connected_players()) do
|
||||||
process_player(player, current_downfall)
|
process_player(player, current_downfall)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -226,18 +231,23 @@ minetest.register_privilege("weather", {
|
||||||
|
|
||||||
minetest.register_chatcommand("weather", {
|
minetest.register_chatcommand("weather", {
|
||||||
params = "<weather>",
|
params = "<weather>",
|
||||||
description = "Set weather type",
|
description = S("Setting the weather type"),
|
||||||
privs = {weather = true},
|
privs = {weather = true},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
if param and (weather.registered[param] or param == "none") then
|
if param and (weather.registered[param] or param == "none") then
|
||||||
weather.set(param)
|
weather.set(param)
|
||||||
minetest.chat_send_player(name, "Set weather type: " .. param)
|
if param == "none" then
|
||||||
|
minetest.chat_send_player(name, S("Set clear weather."))
|
||||||
|
else
|
||||||
|
local setw = weather.registered[param].desc or param:gsub("^%l", string.upper)
|
||||||
|
minetest.chat_send_player(name, S("Set weather type: @1.", setw))
|
||||||
|
end
|
||||||
else
|
else
|
||||||
local types = "none"
|
local types = "none"
|
||||||
for w, _ in pairs(weather.registered) do
|
for w in pairs(weather.registered) do
|
||||||
types = types .. ", " .. w
|
types = types .. ", " .. w
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, "Avalible weather types: " .. types)
|
minetest.chat_send_player(name, S("Avalible weather types: @1.", types))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
# textdomain: weather_lite
|
||||||
|
Setting the weather type=Установка типа погоды
|
||||||
|
Set weather type: @1.=Установлен тип погоды: @1.
|
||||||
|
Avalible weather types: @1.=Доступные типы погоды: @1.
|
||||||
|
Set clear weather.=Установлена ясная погода.
|
||||||
|
Rain=Дождь
|
||||||
|
Snow=Снег
|
Loading…
Reference in New Issue