4 Commits

Author SHA1 Message Date
ce0442fe25 Fix Warnings 2021-04-24 13:50:28 +02:00
58ac474139 Add a GitHub action to run luacheck
I don't know much about github actions, so I hope it works correctly.
The yml file is based on https://github.com/ChaosWormz/teleport-request/blob/master/.github/workflows/build.yml
2021-03-21 18:39:27 +01:00
9dc9ab3a39 Small line-to-long style fix and update .luacheckrc 2021-03-21 18:27:41 +01:00
4f4489fc93 Makes ice slippery and removes messages of depreciation 2021-03-21 18:24:25 +01:00
11 changed files with 90 additions and 81 deletions

11
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,11 @@
on: [push, pull_request]
name: luacheck
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: lint
uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

View File

@ -1,5 +1,5 @@
read_globals = { read_globals = {
"dump", "vector", "minetest", "dump", "vector",
"table", "math", "PseudoRandom", "VoxelArea", "table", "math", "PseudoRandom", "VoxelArea",
"stairs", "stairsplus", "skins", "treecapitator", "stairs", "stairsplus", "skins", "treecapitator",
default = { default = {
@ -10,6 +10,15 @@ read_globals = {
} }
}, },
other_fields = true other_fields = true
},
minetest = {
fields = {
registered_nodes = {
read_only = false,
other_fields = true
}
},
other_fields = true
} }
} }
globals = {"snow"} globals = {"snow"}

View File

@ -96,7 +96,7 @@ if snow.enable_snowfall then
for _, player in ipairs(minetest.get_connected_players()) do for _, player in ipairs(minetest.get_connected_players()) do
local player_name = player:get_player_name() local player_name = player:get_player_name()
local pos_player = player:getpos() local pos_player = player:get_pos()
local pposy = math.floor(pos_player.y) + 2 -- Precipitation when swimming local pposy = math.floor(pos_player.y) + 2 -- Precipitation when swimming
if pposy >= YLIMIT - 2 then if pposy >= YLIMIT - 2 then
local pposx = math.floor(pos_player.x) local pposx = math.floor(pos_player.x)
@ -107,9 +107,9 @@ if snow.enable_snowfall then
local nobj_humid = minetest.get_perlin(np_humid) local nobj_humid = minetest.get_perlin(np_humid)
local nobj_prec = minetest.get_perlin(np_prec) local nobj_prec = minetest.get_perlin(np_prec)
local nval_temp = nobj_temp:get2d({x = pposx, y = pposz}) local nval_temp = nobj_temp:get_2d({x = pposx, y = pposz})
local nval_humid = nobj_humid:get2d({x = pposx, y = pposz}) local nval_humid = nobj_humid:get_2d({x = pposx, y = pposz})
local nval_prec = nobj_prec:get2d({x = os.clock() / 60, y = 0}) local nval_prec = nobj_prec:get_2d({x = os.clock() / 60, y = 0})
-- Biome system: Frozen biomes below heat 35, -- Biome system: Frozen biomes below heat 35,
-- deserts below line 14 * t - 95 * h = -1496 -- deserts below line 14 * t - 95 * h = -1496
@ -151,14 +151,13 @@ if snow.enable_snowfall then
((time - 0.1875) / 0.0521) * difsval) ((time - 0.1875) / 0.0521) * difsval)
end end
-- Set sky to overcast bluish-grey -- Set sky to overcast bluish-grey
player:set_sky( player:set_sky({
{r = sval, g = sval, b = sval + 16, a = 255}, base_color = {r = sval, g = sval, b = sval + 16, a = 255},
"plain", type = "plain",
{} })
)
else else
-- Reset sky to normal -- Reset sky to normal
player:set_sky({}, "regular", {}) player:set_sky({type = "regular"})
end end
end end

View File

@ -137,7 +137,7 @@ function snow.make_pine(pos,snow,xmas)
if xmas then if xmas then
try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="snow:star_lit"}) -- Added lit star. ~ LazyJ try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="snow:star_lit"}) -- Added lit star. ~ LazyJ
elseif snow elseif snow
and minetest.get_perlin(112,3, 0.5, perlin_scale):get2d({x=pos.x,y=pos.z}) > nosmooth_rarity then and minetest.get_perlin(112,3, 0.5, perlin_scale):get_2d({x=pos.x,y=pos.z}) > nosmooth_rarity then
try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="default:snow"}) try_node({x=pos.x,y=pos.y+7,z=pos.z},{name="default:snow"})
end end
end end
@ -161,7 +161,7 @@ function snow.voxelmanip_pine(pos,a,data)
data[a:index(x,pos.y+i,z)] = c_pine_needles data[a:index(x,pos.y+i,z)] = c_pine_needles
if x ~= 0 if x ~= 0
and z ~= 0 and z ~= 0
and perlin1:get2d({x=x,y=z}) > nosmooth_rarity then and perlin1:get_2d({x=x,y=z}) > nosmooth_rarity then
local abovenode = a:index(x,pos.y+i+1,z) local abovenode = a:index(x,pos.y+i+1,z)
data[abovenode] = c_snow data[abovenode] = c_snow
end end
@ -176,16 +176,16 @@ function snow.voxelmanip_pine(pos,a,data)
data[a:index(x-1,y,z)] = c_pine_needles data[a:index(x-1,y,z)] = c_pine_needles
data[a:index(x,y,z+1)] = c_pine_needles data[a:index(x,y,z+1)] = c_pine_needles
data[a:index(x,y,z-1)] = c_pine_needles data[a:index(x,y,z-1)] = c_pine_needles
if perlin1:get2d({x=x+1,y=z}) > nosmooth_rarity then if perlin1:get_2d({x=x+1,y=z}) > nosmooth_rarity then
data[a:index(x+1,y+1,z)] = c_snow data[a:index(x+1,y+1,z)] = c_snow
end end
if perlin1:get2d({x=x+1,y=z}) > nosmooth_rarity then if perlin1:get_2d({x=x+1,y=z}) > nosmooth_rarity then
data[a:index(x-1,y+1,z)] = c_snow data[a:index(x-1,y+1,z)] = c_snow
end end
if perlin1:get2d({x=x,y=z+1}) > nosmooth_rarity then if perlin1:get_2d({x=x,y=z+1}) > nosmooth_rarity then
data[a:index(x,y+1,z+1)] = c_snow data[a:index(x,y+1,z+1)] = c_snow
end end
if perlin1:get2d({x=x,y=z-1}) > nosmooth_rarity then if perlin1:get_2d({x=x,y=z-1}) > nosmooth_rarity then
data[a:index(x,y+1,z-1)] = c_snow data[a:index(x,y+1,z-1)] = c_snow
end end
end end
@ -194,7 +194,7 @@ function snow.voxelmanip_pine(pos,a,data)
end end
data[a:index(pos.x,pos.y+5,pos.z)] = c_pine_needles data[a:index(pos.x,pos.y+5,pos.z)] = c_pine_needles
data[a:index(pos.x,pos.y+6,pos.z)] = c_pine_needles data[a:index(pos.x,pos.y+6,pos.z)] = c_pine_needles
if perlin1:get2d({x=pos.x,y=pos.z}) > nosmooth_rarity then if perlin1:get_2d({x=pos.x,y=pos.z}) > nosmooth_rarity then
data[a:index(pos.x,pos.y+7,pos.z)] = c_snow data[a:index(pos.x,pos.y+7,pos.z)] = c_snow
end end
end end

View File

@ -212,7 +212,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
local pines_tab,pnum = {},1 local pines_tab,pnum = {},1
get_perlins(x1 - x0 + 1) get_perlins(x1 - x0 + 1)
local nvals_default = perlin_objs.default:get2dMap_flat({x=x0+150, y=z0+50}, nbuf_default) local nvals_default = perlin_objs.default:get_2dMap_flat({x=x0+150, y=z0+50}, nbuf_default)
local nvals_cold, nvals_ice, ndia local nvals_cold, nvals_ice, ndia
-- Choose biomes -- Choose biomes
@ -239,7 +239,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
local in_biome = false local in_biome = false
local test local test
if nvals_default[ni] < 0.35 then if nvals_default[ni] < 0.35 then
nvals_cold = nvals_cold or perlin_objs.cold:get2dMap_flat({x=x0, y=z0}, nbuf_cold) nvals_cold = nvals_cold or perlin_objs.cold:get_2dMap_flat({x=x0, y=z0}, nbuf_cold)
test = math.min(nvals_cold[ni], 1) test = math.min(nvals_cold[ni], 1)
if is_smooth then if is_smooth then
if test >= smooth_rarity_max if test >= smooth_rarity_max
@ -291,7 +291,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
end end
else else
if not nvals_ice then if not nvals_ice then
nvals_ice = perlin_objs.ice:get2dMap_flat({x=x0, y=z0}, nbuf_ice) nvals_ice = perlin_objs.ice:get_2dMap_flat({x=x0, y=z0}, nbuf_ice)
nodes_added = true nodes_added = true
write_to_map = true write_to_map = true

View File

@ -66,10 +66,10 @@ end)
-- Christmas egg -- Christmas egg
if minetest.global_exists"skins" then if minetest.global_exists("skins") then
skins.add"character_snow_man" skins.add("character_snow_man")
end end
-- Decorated Pine Leaves -- Decorated Pine Leaves
@ -291,8 +291,7 @@ local function snow_onto_dirt(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if node.name == "default:dirt_with_grass" if node.name == "default:dirt_with_grass"
or node.name == "default:dirt" then or node.name == "default:dirt" then
node.name = "default:dirt_with_snow" minetest.set_node(pos, {name = "default:dirt_with_snow"})
minetest.set_node(pos, node)
end end
end end
@ -312,14 +311,10 @@ nodedef = {
-- by player position. ~ LazyJ -- by player position. ~ LazyJ
-- I made this a little harder to dig than snow blocks because -- I made this a little harder to dig than snow blocks because
-- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ -- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ
groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1, cooks_into_ice=1}, groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1,
icemaker=1, cooks_into_ice=1, cools_lava = 1, snowy = 1},
--Let's use the new snow sounds instead of the old grass sounds. ~ LazyJ --Let's use the new snow sounds instead of the old grass sounds. ~ LazyJ
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_snow_defaults(),
footstep = {name="default_snow_footstep", gain=0.25},
dig = {name="default_dig_crumbly", gain=0.4},
dug = {name="default_snow_footstep", gain=0.75},
place = {name="default_place_node", gain=1.0}
}),
-- The "on_construct" part below, thinking in terms of layers, -- The "on_construct" part below, thinking in terms of layers,
-- dirt_with_snow could also double as dirt_with_frost which adds subtlety -- dirt_with_snow could also double as dirt_with_frost which adds subtlety
-- to the winterscape. ~ LazyJ -- to the winterscape. ~ LazyJ
@ -329,17 +324,14 @@ nodedef = {
-- Snow Brick -- Snow Brick
minetest.register_node("snow:snow_brick", table.copy(nodedef)) minetest.register_node("snow:snow_brick", table.copy(nodedef))
-- hard Ice Brick, original texture from LazyJ -- hard Ice Brick, original texture from LazyJ
local ibdef = table.copy(nodedef) local ibdef = table.copy(nodedef)
ibdef.description = "Ice Brick" ibdef.description = "Ice Brick"
ibdef.tiles = {"snow_ice_brick.png"} ibdef.tiles = {"snow_ice_brick.png"}
ibdef.use_texture_alpha = true ibdef.use_texture_alpha = "blend"
ibdef.drawtype = "glasslike" ibdef.drawtype = "glasslike"
ibdef.groups = {cracky=1, crumbly=1, choppy=1, melts=1} ibdef.groups = {cracky=1, crumbly=1, choppy=1, melts=1, cools_lava = 1, slippery = 3}
ibdef.sounds = default.node_sound_glass_defaults({ ibdef.sounds = default.node_sound_ice_defaults()
dug = {name="default_hard_footstep", gain=1}
})
minetest.register_node("snow:ice_brick", ibdef) minetest.register_node("snow:ice_brick", ibdef)
@ -351,44 +343,38 @@ nodedef.tiles = {"snow_snow_cobble.png"}
minetest.register_node("snow:snow_cobble", nodedef) minetest.register_node("snow:snow_cobble", nodedef)
-- Override Default Nodes to Add Extra Functions -- Override Default Nodes to Add Extra Functions
local groups = minetest.registered_nodes["default:ice"].groups
groups["melt"] = 1
minetest.override_item("default:ice", { minetest.override_item("default:ice", {
use_texture_alpha = true, drawtype = "glasslike",
use_texture_alpha = "blend",
param2 = 0, --param2 is reserved for how much ice will freezeover. param2 = 0, --param2 is reserved for how much ice will freezeover.
sunlight_propagates = true, -- necessary for dirt_with_grass/snow/just dirt ABMs sunlight_propagates = true, -- necessary for dirt_with_grass/snow/just dirt ABMs
drawtype = "glasslike", tiles = {"snow_ice.png^[brighten"},
tiles = {"default_ice.png^[brighten"},
liquidtype = "none", liquidtype = "none",
-- I made this a lot harder to dig than snow blocks because ice is much more dense groups = groups,
-- and solid than fluffy snow. ~ LazyJ
groups = {cracky=2, crumbly=1, choppy=1, --[[oddly_breakable_by_hand=1,]] melts=1},
on_construct = snow_onto_dirt, on_construct = snow_onto_dirt,
liquids_pointable = true, liquids_pointable = true,
--Make ice freeze over when placed by a maximum of 10 blocks. --Make ice freeze over when placed by a maximum of 10 blocks.
after_place_node = function(pos) after_place_node = function(pos)
minetest.set_node(pos, {name="default:ice", param2=math.random(0,10)}) minetest.set_node(pos, {name="default:ice", param2=math.random(0,10)})
end end,
}) })
groups = minetest.registered_nodes["default:snowblock"].groups
for g,v in pairs({melts=1, icemaker=1, cooks_into_ice=1, falling_node=1}) do
groups[g] = v
end
minetest.override_item("default:snowblock", { minetest.override_item("default:snowblock", {
-- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM)
liquidtype = "none", liquidtype = "none",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
-- Snow blocks should be easy to dig because they are just fluffy snow. ~ LazyJ on_construct = snow_onto_dirt,
groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=1, groups = groups,
icemaker=1, cooks_into_ice=1, falling_node=1},
--drop = "snow:snow_cobble",
on_construct = snow_onto_dirt
-- 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", { minetest.override_item("default:snow", {
drop = { drop = {
max_items = 2, max_items = 2,

View File

@ -81,7 +81,7 @@ local sled = {
local players_sled = {} local players_sled = {}
local function join_sled(self, player) local function join_sled(self, player)
local pos = self.object:getpos() local pos = self.object:get_pos()
player:setpos(pos) player:setpos(pos)
local name = player:get_player_name() local name = player:get_player_name()
players_sled[name] = true players_sled[name] = true
@ -89,7 +89,7 @@ local function join_sled(self, player)
default.player_set_animation(player, "sit" , 30) default.player_set_animation(player, "sit" , 30)
self.driver = name self.driver = name
self.object:set_attach(player, "", {x=0,y=-9,z=0}, {x=0,y=90,z=0}) self.object:set_attach(player, "", {x=0,y=-9,z=0}, {x=0,y=90,z=0})
self.object:setyaw(player:get_look_yaw())-- - math.pi/2) self.object:set_yaw(player:get_look_yaw())-- - math.pi/2)
end end
local function leave_sled(self, player) local function leave_sled(self, player)
@ -156,7 +156,7 @@ end
function sled:on_activate(staticdata) function sled:on_activate(staticdata)
self.object:set_armor_groups({immortal=1}) self.object:set_armor_groups({immortal=1})
self.object:setacceleration({x=0, y=-10, z=0}) self.object:set_acceleration({x=0, y=-10, z=0})
if staticdata then if staticdata then
self.v = tonumber(staticdata) self.v = tonumber(staticdata)
end end
@ -200,7 +200,7 @@ function sled:on_step(dtime)
return return
end end
if player:get_player_control().sneak if player:get_player_control().sneak
or not accelerating_possible(vector.round(self.object:getpos())) then or not accelerating_possible(vector.round(self.object:get_pos())) then
leave_sled(self, player) leave_sled(self, player)
end end
end end
@ -220,7 +220,7 @@ minetest.register_craftitem("snow:sled", {
if players_sled[placer:get_player_name()] then if players_sled[placer:get_player_name()] then
return return
end end
local pos = placer:getpos() local pos = placer:get_pos()
if accelerating_possible(vector.round(pos)) then if accelerating_possible(vector.round(pos)) then
pos.y = pos.y+0.5 pos.y = pos.y+0.5

View File

@ -40,10 +40,10 @@ function snow.shoot_snowball(item, player)
local dif = 2*math.sqrt(dir.z*dir.z+dir.x*dir.x) local dif = 2*math.sqrt(dir.z*dir.z+dir.x*dir.x)
addp.x = dir.z/dif -- + (math.random()-0.5)/5 addp.x = dir.z/dif -- + (math.random()-0.5)/5
addp.z = -dir.x/dif -- + (math.random()-0.5)/5 addp.z = -dir.x/dif -- + (math.random()-0.5)/5
local pos = vector.add(player:getpos(), addp) local pos = vector.add(player:get_pos(), addp)
local obj = minetest.add_entity(pos, "snow:snowball_entity") local obj = minetest.add_entity(pos, "snow:snowball_entity")
obj:setvelocity(vector.multiply(dir, snowball_velocity)) obj:set_velocity(vector.multiply(dir, snowball_velocity))
obj:setacceleration({x=dir.x*-3, y=-get_gravity(), z=dir.z*-3}) obj:set_acceleration({x=dir.x*-3, y=-get_gravity(), z=dir.z*-3})
obj:get_luaentity().thrower = player:get_player_name() obj:get_luaentity().thrower = player:get_player_name()
if creative_mode then if creative_mode then
if not someone_throwing then if not someone_throwing then
@ -103,13 +103,13 @@ local snow_snowball_ENTITY = {
function snow_snowball_ENTITY.on_activate(self) function snow_snowball_ENTITY.on_activate(self)
self.object:set_properties({textures = {"default_snowball.png^[transform"..math.random(0,7)}}) self.object:set_properties({textures = {"default_snowball.png^[transform"..math.random(0,7)}})
self.object:setacceleration({x=0, y=-get_gravity(), z=0}) self.object:set_acceleration({x=0, y=-get_gravity(), z=0})
self.lastpos = self.object:getpos() self.lastpos = self.object:get_pos()
minetest.after(0.1, function(obj) minetest.after(0.1, function(obj)
if not obj then if not obj then
return return
end end
local vel = obj:getvelocity() local vel = obj:get_velocity()
if vel if vel
and vel.y ~= 0 then and vel.y ~= 0 then
return return
@ -118,7 +118,7 @@ function snow_snowball_ENTITY.on_activate(self)
if not object then if not object then
return return
end end
local vel_obj = object:getvelocity() local vel_obj = object:get_velocity()
if not vel_obj if not vel_obj
or vel_obj.y == 0 then or vel_obj.y == 0 then
object:remove() object:remove()
@ -137,7 +137,7 @@ function snow_snowball_ENTITY.on_step(self, dtime)
end end
if self.physical then if self.physical then
local vel = self.object:getvelocity() local vel = self.object:get_velocity()
local fell = vel.y == 0 local fell = vel.y == 0
if not fell then if not fell then
if self.probably_stuck then if self.probably_stuck then
@ -155,7 +155,7 @@ function snow_snowball_ENTITY.on_step(self, dtime)
self.probably_stuck = nil self.probably_stuck = nil
return return
end end
local pos = vector.round(self.object:getpos()) local pos = vector.round(self.object:get_pos())
if minetest.get_node(pos).name == "air" then if minetest.get_node(pos).name == "air" then
pos.y = pos.y-1 pos.y = pos.y-1
if minetest.get_node(pos).name == "air" then if minetest.get_node(pos).name == "air" then
@ -171,16 +171,16 @@ function snow_snowball_ENTITY.on_step(self, dtime)
return return
end end
local pos = vector.round(self.object:getpos()) local pos = vector.round(self.object:get_pos())
if vector.equals(pos, self.lastpos) then if vector.equals(pos, self.lastpos) then
return return
end end
if minetest.get_node(pos).name ~= "air" then if minetest.get_node(pos).name ~= "air" then
self.object:setacceleration({x=0, y=-get_gravity(), z=0}) self.object:set_acceleration({x=0, y=-get_gravity(), z=0})
--self.object:setvelocity({x=0, y=0, z=0}) --self.object:set_velocity({x=0, y=0, z=0})
pos = self.lastpos pos = self.lastpos
self.object:setpos(pos) self.object:setpos(pos)
minetest.sound_play("default_snow_footstep", {pos=pos, gain=vector.length(self.object:getvelocity())/30}) minetest.sound_play("default_snow_footstep", {pos=pos, gain=vector.length(self.object:get_velocity())/30})
self.object:set_properties({physical = true}) self.object:set_properties({physical = true})
self.physical = true self.physical = true
return return
@ -199,8 +199,8 @@ function snow_snowball_ENTITY.on_step(self, dtime)
or (entity_name ~= "snow:snowball_entity" or (entity_name ~= "snow:snowball_entity"
and entity_name ~= "__builtin:item" 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 vvel = v:get_velocity() or v:get_player_velocity()
local veldif = self.object:getvelocity() local veldif = self.object:get_velocity()
if vvel then if vvel then
veldif = vector.subtract(veldif, vvel) veldif = vector.subtract(veldif, vvel)
end end

View File

@ -45,7 +45,11 @@ if minetest.get_modpath("moreblocks") and
ndef.groups.icemaker = nil ndef.groups.icemaker = nil
ndef.groups.cooks_into_ice = nil ndef.groups.cooks_into_ice = nil
ndef.after_place_node = nil ndef.after_place_node = nil
if string.find(name, "ice") then
ndef.use_texture_alpha = "blend"
else
ndef.use_texture_alpha = "opaque"
end
stairsplus:register_all(mod, name, nodename, ndef) stairsplus:register_all(mod, name, nodename, ndef)
if was_in_stairs[name] then if was_in_stairs[name] then

View File

Before

Width:  |  Height:  |  Size: 643 B

After

Width:  |  Height:  |  Size: 643 B

View File

Before

Width:  |  Height:  |  Size: 606 B

After

Width:  |  Height:  |  Size: 606 B