From 78b3ae7cdeb52acb6c4ec6484a75dad465a30e58 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Tue, 4 Apr 2017 22:47:29 +0200 Subject: [PATCH] fix bad physics(conflicts, many mods rewrites physics in step) fix witchcraft and sprint physics remove blankspaces --- .../mods/player_physics/init.lua | 126 +++++++++ mods/sprint/depends.txt | 1 + mods/sprint/esprint.lua | 8 +- mods/witchcraft/depends.txt | 3 +- mods/witchcraft/init.lua | 242 +++++++++--------- 5 files changed, 263 insertions(+), 117 deletions(-) create mode 100644 minetestforfun_game/mods/player_physics/init.lua diff --git a/minetestforfun_game/mods/player_physics/init.lua b/minetestforfun_game/mods/player_physics/init.lua new file mode 100644 index 00000000..d9407c51 --- /dev/null +++ b/minetestforfun_game/mods/player_physics/init.lua @@ -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) + diff --git a/mods/sprint/depends.txt b/mods/sprint/depends.txt index 3e1d5c20..0388f669 100755 --- a/mods/sprint/depends.txt +++ b/mods/sprint/depends.txt @@ -1 +1,2 @@ hudbars? +player_physics diff --git a/mods/sprint/esprint.lua b/mods/sprint/esprint.lua index 7f617511..216ca1b7 100755 --- a/mods/sprint/esprint.lua +++ b/mods/sprint/esprint.lua @@ -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 diff --git a/mods/witchcraft/depends.txt b/mods/witchcraft/depends.txt index 30daf56f..76c30984 100644 --- a/mods/witchcraft/depends.txt +++ b/mods/witchcraft/depends.txt @@ -2,10 +2,11 @@ default vessels tnt fire +player_physics playereffects farming? lightning? pmobs? hud_hunger? moreplants? -horror? \ No newline at end of file +horror? diff --git a/mods/witchcraft/init.lua b/mods/witchcraft/init.lua index 94d5d989..79af5983 100644 --- a/mods/witchcraft/init.lua +++ b/mods/witchcraft/init.lua @@ -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,