Grass spread to dirt_with_snow, fix playereffects, remove playerphysics
This commit is contained in:
parent
1a7786260e
commit
97b4906965
@ -418,12 +418,15 @@ end
|
|||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Grass spread",
|
label = "Grass spread",
|
||||||
nodenames = {"default:dirt"},
|
nodenames = {
|
||||||
|
"default:dirt",
|
||||||
|
"default:dirt_with_snow"
|
||||||
|
},
|
||||||
neighbors = {
|
neighbors = {
|
||||||
"air",
|
"air",
|
||||||
"group:grass",
|
"group:grass",
|
||||||
"group:dry_grass",
|
"group:dry_grass",
|
||||||
"default:snow",
|
"default:snow"
|
||||||
},
|
},
|
||||||
interval = 10,
|
interval = 10,
|
||||||
chance = 25,
|
chance = 25,
|
||||||
|
@ -666,6 +666,7 @@ minetest.register_node("default:birch_leaves", {
|
|||||||
tiles = {"default_birch_leaves.png"},
|
tiles = {"default_birch_leaves.png"},
|
||||||
waving = 1,
|
waving = 1,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
walkable = false,
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
||||||
drop = {
|
drop = {
|
||||||
|
@ -9,7 +9,7 @@ local ppa = minetest.get_modpath("playerphysics")
|
|||||||
|
|
||||||
pep = {}
|
pep = {}
|
||||||
|
|
||||||
-- Whether to use save (true, false or minetest.is_singleplayer())
|
-- Whether to use mole (true, false or minetest.is_singleplayer())
|
||||||
pep.mole = minetest.is_singleplayer()
|
pep.mole = minetest.is_singleplayer()
|
||||||
|
|
||||||
function return_empty_bottle(potiondef, user, itemstack)
|
function return_empty_bottle(potiondef, user, itemstack)
|
||||||
|
@ -47,8 +47,8 @@ playereffects.autosave_time = 10
|
|||||||
|
|
||||||
|
|
||||||
--[=[ Load inactive_effects and last_effect_id from playereffects, if this file exists ]=]
|
--[=[ Load inactive_effects and last_effect_id from playereffects, if this file exists ]=]
|
||||||
do
|
if playereffects.save then
|
||||||
if playereffects.save then
|
do
|
||||||
local filepath = minetest.get_worldpath().."/playereffects"
|
local filepath = minetest.get_worldpath().."/playereffects"
|
||||||
local file = io.open(filepath, "r")
|
local file = io.open(filepath, "r")
|
||||||
if file then
|
if file then
|
||||||
@ -415,12 +415,12 @@ minetest.register_on_joinplayer(function(player)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- Autosave into file
|
||||||
if playereffects.use_autosave then
|
if playereffects.use_autosave then
|
||||||
playereffects.autosave_timer = 0
|
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
|
playereffects.autosave_timer = playereffects.autosave_timer or 0
|
||||||
playereffects.autosave_timer = playereffects.autosave_timer + dtime
|
playereffects.autosave_timer = playereffects.autosave_timer + dtime
|
||||||
|
|
||||||
-- Autosave into file
|
|
||||||
if playereffects.autosave_timer >= playereffects.autosave_time then
|
if playereffects.autosave_timer >= playereffects.autosave_time then
|
||||||
playereffects.autosave_timer = 0
|
playereffects.autosave_timer = 0
|
||||||
minetest.log("action", "[playereffects] Autosaving mod data to playereffects ...")
|
minetest.log("action", "[playereffects] Autosaving mod data to playereffects ...")
|
||||||
@ -430,21 +430,20 @@ if playereffects.use_autosave then
|
|||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_playerstep(function(dtime, playernames)
|
minetest.register_playerstep(function(dtime, playernames)
|
||||||
-- Update HUDs of all players
|
|
||||||
for _, name in pairs(playernames) do
|
for _, name in pairs(playernames) do
|
||||||
playereffects.hud_update(name)
|
local player = minetest.get_player_by_name(name)
|
||||||
|
if player and player:is_player() then
|
||||||
|
playereffects.hud_update(player)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end, minetest.is_singleplayer()) -- Force step in singlplayer mode only
|
end)
|
||||||
|
|
||||||
--[=[ HUD ]=]
|
--[=[ HUD ]=]
|
||||||
function playereffects.hud_update(player)
|
function playereffects.hud_update(player)
|
||||||
if(playereffects.use_hud == true) then
|
if(playereffects.use_hud == true) then
|
||||||
local now = os.time()
|
local now = os.time()
|
||||||
local player = minetest.get_player_by_name(player)
|
local playername = player:get_player_name()
|
||||||
if not player or not player:is_player() then
|
local hudinfos = playereffects.hudinfos[playername]
|
||||||
return
|
|
||||||
end
|
|
||||||
local hudinfos = playereffects.hudinfos[player]
|
|
||||||
if(hudinfos ~= nil) then
|
if(hudinfos ~= nil) then
|
||||||
for effect_id, hudinfo in pairs(hudinfos) do
|
for effect_id, hudinfo in pairs(hudinfos) do
|
||||||
local effect = playereffects.effects[effect_id]
|
local effect = playereffects.effects[effect_id]
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
playerphysics = {}
|
|
||||||
|
|
||||||
local function calculate_attribute_product(player, attribute)
|
|
||||||
local a = minetest.deserialize(player:get_attribute("playerphysics:physics"))
|
|
||||||
local product = 1
|
|
||||||
if a == nil or a[attribute] == nil then
|
|
||||||
return product
|
|
||||||
end
|
|
||||||
local factors = a[attribute]
|
|
||||||
if type(factors) == "table" then
|
|
||||||
for _, factor in pairs(factors) do
|
|
||||||
product = product * factor
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return product
|
|
||||||
end
|
|
||||||
|
|
||||||
function playerphysics.add_physics_factor(player, attribute, id, value)
|
|
||||||
local a = minetest.deserialize(player:get_attribute("playerphysics:physics"))
|
|
||||||
if a == nil then
|
|
||||||
a = { [attribute] = { [id] = value } }
|
|
||||||
elseif a[attribute] == nil then
|
|
||||||
a[attribute] = { [id] = value }
|
|
||||||
else
|
|
||||||
a[attribute][id] = value
|
|
||||||
end
|
|
||||||
player:set_attribute("playerphysics:physics", minetest.serialize(a))
|
|
||||||
local raw_value = calculate_attribute_product(player, attribute)
|
|
||||||
player:set_physics_override({[attribute] = raw_value})
|
|
||||||
end
|
|
||||||
|
|
||||||
function playerphysics.remove_physics_factor(player, attribute, id)
|
|
||||||
local a = minetest.deserialize(player:get_attribute("playerphysics:physics"))
|
|
||||||
if a == nil or a[attribute] == nil then
|
|
||||||
-- Nothing to remove
|
|
||||||
return
|
|
||||||
else
|
|
||||||
a[attribute][id] = nil
|
|
||||||
end
|
|
||||||
player:set_attribute("playerphysics:physics", minetest.serialize(a))
|
|
||||||
local raw_value = calculate_attribute_product(player, attribute)
|
|
||||||
player:set_physics_override({[attribute] = raw_value})
|
|
||||||
end
|
|
Loading…
x
Reference in New Issue
Block a user