1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2024-11-13 14:00:32 +01:00

fix bad physics(conflicts, many mods rewrites physics in step)

fix witchcraft and sprint physics
remove blankspaces
This commit is contained in:
crabman77 2017-04-04 22:47:29 +02:00
parent b000b6f2b4
commit 78b3ae7cde
5 changed files with 263 additions and 117 deletions

View File

@ -0,0 +1,126 @@
local players = {}
player_physics = {}
function player_physics.check(playername)
if players[playername] == nil then
players[playername] = {speed = {}, jump = {}, gravity={}, temp={}}
end
end
minetest.register_on_joinplayer(function(player)
local playername = player:get_player_name()
player_physics.check(playername)
end)
minetest.register_on_leaveplayer(function(player)
local playername = player:get_player_name()
players[playername] = nil
end)
function player_physics.add(player, physicsname , name, value)
if physicsname ~= "speed" and physicsname ~= "jump" and physicsname ~= "gravity" then
return
end
local playername = player:get_player_name()
player_physics.check(playername)
players[playername][physicsname][name] = value
end
function player_physics.remove(player, physicsname, name)
if physicsname ~= "speed" and physicsname ~= "jump" and physicsname ~= "gravity" then
return
end
local playername = player:get_player_name()
player_physics.check(playername)
players[playername][physicsname][name] = nil
end
function player_physics.add_effect(player, physicsname, name, value, time)
if physicsname ~= "speed" and physicsname ~= "jump" and physicsname ~= "gravity" then
return
end
if type(value) ~= "number" or type(time) ~= "number" then
return
end
local playername = player:get_player_name()
player_physics.check(playername)
players[playername]["temp"][name] = {n=physicsname, v=value, t=time}
end
function player_physics.remove_effect(player, name)
local playername = player:get_player_name()
player_physics.check(playername)
players[playername]["temp"][name] = nil
end
minetest.register_globalstep(function(dtime)
for _,player in ipairs(minetest.get_connected_players()) do
local playername = player:get_player_name()
if playername ~= "" then
player_physics.check(playername)
local speed = 1
local jump = 1
local gravity = 1
for _, v in pairs(players[playername]["speed"]) do
speed = speed + v
end
for _, v in pairs(players[playername]["jump"]) do
jump = jump + v
end
for _, v in pairs(players[playername]["gravity"]) do
gravity = gravity + v
end
--temporary effect
for n, k in pairs(players[playername]["temp"]) do
if k.n == "speed" then
speed = speed + k.v
elseif k.n == "jump" then
jump = jump + k.v
elseif k.n == "gravity" then
gravity = gravity + k.v
end
t = k.t-dtime
if t > 0 then
players[playername]["temp"][n]["t"] = t
else
players[playername]["temp"][n] = nil
end
end
if speed > 4 then
speed = 4
elseif speed < 0 then
speed = 0
end
if jump > 3 then
jump = 3
elseif jump < 0 then
jump = 0
end
if gravity > 2 then
gravity = 2
elseif gravity < -2 then
gravity = -2
end
player:set_physics_override({speed=speed,jump=jump, gravity=gravity})
end
end
end)

View File

@ -1 +1,2 @@
hudbars?
player_physics

View File

@ -208,9 +208,13 @@ function setSprinting(playerName, sprinting) --Sets the state of a player (0=sto
if sprint.players[playerName] then
sprint.players[playerName]["sprinting"] = sprinting
if sprinting == true then
player:set_physics_override({speed=SPRINT_SPEED + bonus_speed,jump=SPRINT_JUMP + bonus_jump})
-- player:set_physics_override({speed=SPRINT_SPEED + bonus_speed,jump=SPRINT_JUMP + bonus_jump})
player_physics.add(player, "speed", "sprint_speed", 0.35+ bonus_speed)
player_physics.add(player, "jump", "sprint_jump", 0.1+ bonus_jump)
elseif sprinting == false then
player:set_physics_override({speed=1.0 + bonus_speed,jump=1.0 + bonus_jump})
-- player:set_physics_override({speed=1.0 + bonus_speed,jump=1.0 + bonus_jump})
player_physics.add(player, "speed", "sprint_speed", bonus_speed)
player_physics.add(player, "jump", "sprint_jump", bonus_jump)
end
return true
end

View File

@ -2,10 +2,11 @@ default
vessels
tnt
fire
player_physics
playereffects
farming?
lightning?
pmobs?
hud_hunger?
moreplants?
horror?
horror?

View File

@ -73,7 +73,7 @@ minetest.register_node("witchcraft:shelf", {
local stack = inv:get_stack(from_list, from_index)
local to_stack = inv:get_stack(to_list, to_index)
if to_list == "vessels" then
if minetest.get_item_group(stack:get_name(), "potion") ~= 0
if minetest.get_item_group(stack:get_name(), "potion") ~= 0
and to_stack:is_empty() then
return 1
else
@ -914,12 +914,12 @@ minetest.register_entity("witchcraft:tnt_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:tnt_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -938,7 +938,7 @@ minetest.register_entity("witchcraft:tnt_splash", {
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:tnt_splash" and n ~="default:obsidian" and n ~= "air" then
if n ~= "witchcraft:tnt_splash" and n ~="default:obsidian" and n ~= "air" then
local pos = self.object:getpos()
minetest.sound_play("default_break_glass.1", {
pos = self.object:getpos(),
@ -973,7 +973,7 @@ minetest.register_entity("witchcraft:tnt_splash", {
end
end
end
end,
})
@ -984,12 +984,12 @@ minetest.register_entity("witchcraft:fire_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:fire_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1043,7 +1043,7 @@ minetest.register_entity("witchcraft:fire_splash", {
end
end
end
end,
})
@ -1052,12 +1052,12 @@ minetest.register_entity("witchcraft:death_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:death_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1089,8 +1089,6 @@ minetest.register_entity("witchcraft:death_splash", {
end
end
end
end,
})
@ -1099,12 +1097,12 @@ minetest.register_entity("witchcraft:heal_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:heal_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1136,8 +1134,6 @@ minetest.register_entity("witchcraft:heal_splash", {
end
end
end
end,
})
@ -1146,12 +1142,12 @@ minetest.register_entity("witchcraft:slow_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:slow_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1168,7 +1164,6 @@ minetest.register_entity("witchcraft:slow_splash", {
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:slow_splash" and n ~= "air" then
self.object:remove()
elseif n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then
minetest.sound_play("default_break_glass.1", {
@ -1182,8 +1177,6 @@ minetest.register_entity("witchcraft:slow_splash", {
end
end
end
end,
})
@ -1192,18 +1185,34 @@ minetest.register_entity("witchcraft:fast_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(5, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:is_player() then
playereffects.apply_effect_type("potion_slow_lv1", 11, obj)
minetest.sound_play("default_break_glass", {
pos = self.object:getpos(),
max_hear_distance = 20,
gain = 10.0,
})
self.object:remove()
return
end
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:fast_splash" and obj:get_luaentity().name ~= "__builtin:item" then
if obj:get_luaentity().name ~= "witchcraft:fast_splash" and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= "gauges:hp_bar" then
local vel = obj:getvelocity()
obj:setvelocity({x=vel.x*4, y=vel.y*1, z=vel.z*4})
self.object:remove()
minetest.sound_play("default_break_glass", {
pos = self.object:getpos(),
max_hear_distance = 20,
gain = 10.0,
})
self.object:remove()
return
end
end
end
@ -1214,8 +1223,7 @@ minetest.register_entity("witchcraft:fast_splash", {
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:fast_splash" and n ~= "air" then
self.object:remove()
self.object:remove()
elseif n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then
minetest.sound_play("default_break_glass.1", {
pos = self.object:getpos(),
@ -1228,8 +1236,6 @@ minetest.register_entity("witchcraft:fast_splash", {
end
end
end
end,
})
@ -1238,12 +1244,12 @@ minetest.register_entity("witchcraft:antigrav_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:antigrav_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1259,11 +1265,8 @@ minetest.register_entity("witchcraft:antigrav_splash", {
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:antigrav_splash" and n ~= "air" then
self.object:remove()
elseif n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then
minetest.sound_play("default_break_glass.1", {
if n ~= "air" then
minetest.sound_play("default_break_glass", {
pos = self.object:getpos(),
max_hear_distance = 20,
gain = 10.0,
@ -1274,8 +1277,6 @@ minetest.register_entity("witchcraft:antigrav_splash", {
end
end
end
end,
})
@ -1284,12 +1285,12 @@ minetest.register_entity("witchcraft:jump_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:jump_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1305,11 +1306,8 @@ minetest.register_entity("witchcraft:jump_splash", {
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:jump_splash" and n ~= "air" then
self.object:remove()
elseif n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then
minetest.sound_play("default_break_glass.1", {
if n ~= "air" then
minetest.sound_play("default_break_glass", {
pos = self.object:getpos(),
max_hear_distance = 20,
gain = 10.0,
@ -1320,8 +1318,6 @@ minetest.register_entity("witchcraft:jump_splash", {
end
end
end
end,
})
@ -1330,12 +1326,12 @@ minetest.register_entity("witchcraft:murky_splash", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:murky_splash" and obj:get_luaentity().name ~= "__builtin:item" then
@ -1367,8 +1363,6 @@ minetest.register_entity("witchcraft:murky_splash", {
end
end
end
end,
})
@ -1378,8 +1372,8 @@ minetest.register_entity("witchcraft:shadow_splash", {
damage = 2,
physical = true,
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
on_step = function(self, obj, pos)
local remove = minetest.after(5, function()
on_step = function(self, obj, pos)
local remove = minetest.after(5, function()
self.object:remove()
end)
local pos = self.object:getpos()
@ -1408,8 +1402,8 @@ minetest.register_entity("witchcraft:smoke_splash", {
damage = 2,
physical = true,
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
on_step = function(self, obj, pos)
local remove = minetest.after(10, function()
on_step = function(self, obj, pos)
local remove = minetest.after(10, function()
self.object:remove()
end)
local pos = self.object:getpos()
@ -1431,101 +1425,121 @@ minetest.register_entity("witchcraft:smoke_splash", {
false, --collisiondetection
"witchcraft_smoke.png" --texture
)
end,
})
--player effects
playereffects.register_effect_type("potion_speed_lv1", "High speed", nil, {"speed"},
playereffects.register_effect_type("potion_speed_lv1", "High speed", nil, {"speed"},
function(player)
player:set_physics_override(2,nil,nil)
--player:set_physics_override(2,nil,nil)
player_physics.add(player, "speed", "potion_speed_lv1", 1)
end,
function(effect, player)
player:set_physics_override(1,nil,nil)
--player:set_physics_override(1,nil,nil)
player_physics.remove(player, "speed", "potion_speed_lv1")
end,
false
)
playereffects.register_effect_type("potion_speed_lv2", "High speed", nil, {"speed"},
playereffects.register_effect_type("potion_speed_lv2", "High speed", nil, {"speed"},
function(player)
player:set_physics_override(2.5,nil,nil)
--player:set_physics_override(2.5,nil,nil)
player_physics.add(player, "speed", "potion_speed_lv2", 1.5)
end,
function(effect, player)
player:set_physics_override(1,nil,nil)
--player:set_physics_override(1,nil,nil)
player_physics.remove(player, "speed", "potion_speed_lv2")
end,
false
)
playereffects.register_effect_type("potion_jump_lvx", "High Jump", nil, {"jump"},
playereffects.register_effect_type("potion_jump_lvx", "High Jump", nil, {"jump"},
function(player)
player:set_physics_override(nil,1.5,0.8)
--player:set_physics_override(nil,1.5,0.8)
player_physics.add(player, "jump", "potion_jump_lvx", 0.5)
player_physics.add(player, "gravity", "potion_jump_lvx", -0.2)
end,
function(effect, player)
player:set_physics_override(nil,1,1)
--player:set_physics_override(nil,1,1)
player_physics.remove(player, "jump", "potion_jump_lvx")
player_physics.remove(player, "gravity", "potion_jump_lvx")
end,
false
)
playereffects.register_effect_type("potion_antigrav_lvx", "Light weight", nil, {"gravity"},
playereffects.register_effect_type("potion_antigrav_lvx", "Light weight", nil, {"gravity"},
function(player)
player:set_physics_override(nil,nil,0.1)
--player:set_physics_override(nil,nil,0.1)
player_physics.add(player, "gravity", "potion_antigrav_lvx", -0.9)
end,
function(effect, player)
player:set_physics_override(nil,nil,1)
--player:set_physics_override(nil,nil,1)
player_physics.remove(player, "gravity", "potion_antigrav_lvx")
end,
false
)
playereffects.register_effect_type("potion_slow_lv1", "Low speed", nil, {"speed"},
playereffects.register_effect_type("potion_slow_lv1", "Low speed", nil, {"speed"},
function(player)
player:set_physics_override(0.5,nil,nil)
--player:set_physics_override(0.5,nil,nil)
player_physics.add(player, "speed", "potion_slow_lv1", -0.5)
end,
function(effect, player)
player:set_physics_override(1,nil,nil)
--player:set_physics_override(1,nil,nil)
player_physics.remove(player, "speed", "potion_slow_lv1")
end,
false
)
playereffects.register_effect_type("potion_slow_lv2", "Low speed", nil, {"speed"},
playereffects.register_effect_type("potion_slow_lv2", "Low speed", nil, {"speed"},
function(player)
player:set_physics_override(0.4,nil,nil)
--player:set_physics_override(0.4,nil,nil)
player_physics.add(player, "speed", "potion_slow_lv2", -0.6)
end,
function(effect, player)
player:set_physics_override(1,nil,nil)
--player:set_physics_override(1,nil,nil)
player_physics.remove(player, "speed", "potion_slow_lv2")
end,
false
)
playereffects.register_effect_type("potion_swim_lv1", "Fast Swim", nil, {"swim"},
playereffects.register_effect_type("potion_swim_lv1", "Fast Swim", nil, {"swim"},
function(player)
player:set_physics_override(3,nil,nil)
--player:set_physics_override(3,nil,nil)
player_physics.add(player, "speed", "potion_swim_lv1", 2)
end,
function(effect, player)
player:set_physics_override(1,nil,nil)
--player:set_physics_override(1,nil,nil)
player_physics.remove(player, "speed", "potion_swim_lv1")
end,
false
)
playereffects.register_effect_type("potion_swim_lv2", "Dive", nil, {"swim"},
playereffects.register_effect_type("potion_swim_lv2", "Dive", nil, {"swim"},
function(player)
player:set_physics_override(3,nil,4)
--player:set_physics_override(3,nil,4)
player_physics.add(player, "speed", "potion_swim_lv2", 2)
player_physics.add(player, "gravity", "potion_swim_lv2", 3)
end,
function(effect, player)
player:set_physics_override(1,nil,1)
--player:set_physics_override(1,nil,1)
player_physics.remove(player, "speed", "potion_swim_lv2")
player_physics.remove(player, "gravity", "potion_swim_lv2")
end,
false
)
playereffects.register_effect_type("potion_silver", "Fire resist", nil, {"fire_resist"},
playereffects.register_effect_type("potion_silver", "Fire resist", nil, {"fire_resist"},
function(player)
local pos = player:getpos()
local node = minetest.get_node(pos).name
@ -1996,7 +2010,7 @@ minetest.register_node("witchcraft:potion_darkpurple", {
false, --collisiondetection
"witchcraft_effect.png" --texture
)
-- take item
if not minetest.setting_getbool("creative_mode") then
@ -2083,7 +2097,7 @@ minetest.register_node("witchcraft:potion_darkpurple_2", {
false, --collisiondetection
"witchcraft_effect.png" --texture
)
-- take item
if not minetest.setting_getbool("creative_mode") then
@ -2187,12 +2201,12 @@ minetest.register_entity("witchcraft:fire", {
velocity = 0.1,
damage = 2,
collisionbox = {0, 0, 0, 0, 0, 0},
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
on_step = function(self, obj, pos)
local remove = minetest.after(2, function()
self.object:remove()
end)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "witchcraft:fire" and obj:get_luaentity().name ~= "__builtin:item" then
@ -2210,7 +2224,7 @@ minetest.register_entity("witchcraft:fire", {
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "witchcraft:fire" and n ~= "air" and n ~="default:dirt_with_grass" and n ~="default:dirt_with_dry_grass" and n ~="default:stone" then
if n ~= "witchcraft:fire" and n ~= "air" and n ~="default:dirt_with_grass" and n ~="default:dirt_with_dry_grass" and n ~="default:stone" then
minetest.env:set_node(t, {name="fire:basic_flame"})
elseif n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then
self.object:remove()
@ -2255,7 +2269,7 @@ minetest.register_entity("witchcraft:fire", {
false, --collisiondetection
"witchcraft_flame.png" --texture
)
end,
})
@ -2298,7 +2312,7 @@ minetest.register_node("witchcraft:potion_orange", {
false, --collisiondetection
"witchcraft_flame.png" --texture
)
item:replace("vessels:glass_bottle")
return item
end,
@ -2342,7 +2356,7 @@ minetest.register_node("witchcraft:potion_orange_2", {
false, --collisiondetection
"witchcraft_flame.png^[colorize:blue:200" --texture
)
item:replace("vessels:glass_bottle")
return item
end,
@ -2442,7 +2456,7 @@ minetest.register_node("witchcraft:potion_purple", {
false, --collisiondetection
"witchcraft_smoke.png^[colorize:magenta:50" --texture
)
item:replace("vessels:glass_bottle")
return item
end,
@ -2522,7 +2536,7 @@ else
itemstack:replace("vessels:glass_bottle")
return itemstack
end,
minetest.register_node("witchcraft:potion_gred", {
description = "Hunger Potion (better with hunger mod)",
drawtype = "plantlike",
@ -2585,7 +2599,7 @@ minetest.register_node("witchcraft:potion_purple_2", {
false, --collisiondetection
"witchcraft_smoke.png^[colorize:magenta:50" --texture
)
item:replace("vessels:glass_bottle")
return item
end,
@ -2943,7 +2957,7 @@ minetest.register_node("witchcraft:potion_aqua", {
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
item:replace("vessels:glass_bottle")
return item
end
@ -2989,7 +3003,7 @@ minetest.register_node("witchcraft:potion_aqua", {
minetest.add_item(pos, "default:gold_lump")
minetest.add_item(pos, "farming:bread")
minetest.add_item(pos, "default:copper_ingot")
item:replace("vessels:glass_bottle")
return item
end
@ -3705,7 +3719,7 @@ minetest.register_node("witchcraft:pentagram", {
use_texture_alpha = true,
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = false,
sunlight_propagates = false,
light_source = 50,
walkable = false,
is_ground_content = true,
@ -3748,7 +3762,7 @@ minetest.register_node("witchcraft:portal", {
use_texture_alpha = true,
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = false,
sunlight_propagates = false,
light_source = 50,
walkable = false,
is_ground_content = true,