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({
|
||||
label = "Grass spread",
|
||||
nodenames = {"default:dirt"},
|
||||
nodenames = {
|
||||
"default:dirt",
|
||||
"default:dirt_with_snow"
|
||||
},
|
||||
neighbors = {
|
||||
"air",
|
||||
"group:grass",
|
||||
"group:dry_grass",
|
||||
"default:snow",
|
||||
"default:snow"
|
||||
},
|
||||
interval = 10,
|
||||
chance = 25,
|
||||
|
@ -666,6 +666,7 @@ minetest.register_node("default:birch_leaves", {
|
||||
tiles = {"default_birch_leaves.png"},
|
||||
waving = 1,
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
||||
drop = {
|
||||
|
@ -9,7 +9,7 @@ local ppa = minetest.get_modpath("playerphysics")
|
||||
|
||||
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()
|
||||
|
||||
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 ]=]
|
||||
do
|
||||
if playereffects.save then
|
||||
if playereffects.save then
|
||||
do
|
||||
local filepath = minetest.get_worldpath().."/playereffects"
|
||||
local file = io.open(filepath, "r")
|
||||
if file then
|
||||
@ -415,12 +415,12 @@ minetest.register_on_joinplayer(function(player)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Autosave into file
|
||||
if playereffects.use_autosave then
|
||||
playereffects.autosave_timer = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
playereffects.autosave_timer = playereffects.autosave_timer or 0
|
||||
playereffects.autosave_timer = playereffects.autosave_timer + dtime
|
||||
|
||||
-- Autosave into file
|
||||
if playereffects.autosave_timer >= playereffects.autosave_time then
|
||||
playereffects.autosave_timer = 0
|
||||
minetest.log("action", "[playereffects] Autosaving mod data to playereffects ...")
|
||||
@ -430,21 +430,20 @@ if playereffects.use_autosave then
|
||||
end
|
||||
|
||||
minetest.register_playerstep(function(dtime, playernames)
|
||||
-- Update HUDs of all players
|
||||
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, minetest.is_singleplayer()) -- Force step in singlplayer mode only
|
||||
end
|
||||
end)
|
||||
|
||||
--[=[ HUD ]=]
|
||||
function playereffects.hud_update(player)
|
||||
if(playereffects.use_hud == true) then
|
||||
local now = os.time()
|
||||
local player = minetest.get_player_by_name(player)
|
||||
if not player or not player:is_player() then
|
||||
return
|
||||
end
|
||||
local hudinfos = playereffects.hudinfos[player]
|
||||
local playername = player:get_player_name()
|
||||
local hudinfos = playereffects.hudinfos[playername]
|
||||
if(hudinfos ~= nil) then
|
||||
for effect_id, hudinfo in pairs(hudinfos) do
|
||||
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