forked from VoxeLibre/VoxeLibre
Replace deprecated functions
This commit is contained in:
parent
b31a717410
commit
2f74aea6f5
|
@ -20,7 +20,7 @@ minetest.register_entity("drippingwater:drop_water", {
|
||||||
initial_sprite_basepos = {x=0, y=0},
|
initial_sprite_basepos = {x=0, y=0},
|
||||||
|
|
||||||
on_activate = function(self, staticdata)
|
on_activate = function(self, staticdata)
|
||||||
self.object:setsprite({x=0,y=0}, 1, 1, true)
|
self.object:set_sprite({x=0,y=0}, 1, 1, true)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
|
@ -28,11 +28,11 @@ minetest.register_entity("drippingwater:drop_water", {
|
||||||
local ownpos = self.object:get_pos()
|
local ownpos = self.object:get_pos()
|
||||||
|
|
||||||
if k==1 then
|
if k==1 then
|
||||||
self.object:setacceleration({x=0, y=-5, z=0})
|
self.object:set_acceleration({x=0, y=-5, z=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then
|
if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then
|
||||||
self.object:setacceleration({x=0, y=-5, z=0})
|
self.object:set_acceleration({x=0, y=-5, z=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z}).name ~= "air" then
|
if minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z}).name ~= "air" then
|
||||||
|
@ -58,7 +58,7 @@ minetest.register_entity("drippingwater:drop_lava", {
|
||||||
initial_sprite_basepos = {x=0, y=0},
|
initial_sprite_basepos = {x=0, y=0},
|
||||||
|
|
||||||
on_activate = function(self, staticdata)
|
on_activate = function(self, staticdata)
|
||||||
self.object:setsprite({x=0,y=0}, 1, 0, true)
|
self.object:set_sprite({x=0,y=0}, 1, 0, true)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
|
@ -66,11 +66,11 @@ minetest.register_entity("drippingwater:drop_lava", {
|
||||||
local ownpos = self.object:get_pos()
|
local ownpos = self.object:get_pos()
|
||||||
|
|
||||||
if k==1 then
|
if k==1 then
|
||||||
self.object:setacceleration({x=0, y=-5, z=0})
|
self.object:set_acceleration({x=0, y=-5, z=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then
|
if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then
|
||||||
self.object:setacceleration({x=0, y=-5, z=0})
|
self.object:set_acceleration({x=0, y=-5, z=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ function boat.on_rightclick(self, clicker)
|
||||||
mcl_player.player_set_animation(clicker, "stand" , 30)
|
mcl_player.player_set_animation(clicker, "stand" , 30)
|
||||||
local pos = clicker:get_pos()
|
local pos = clicker:get_pos()
|
||||||
pos = {x = pos.x, y = pos.y + 0.2, z = pos.z}
|
pos = {x = pos.x, y = pos.y + 0.2, z = pos.z}
|
||||||
clicker:setpos(pos)
|
clicker:set_pos(pos)
|
||||||
elseif not self._driver then
|
elseif not self._driver then
|
||||||
local attach = clicker:get_attach()
|
local attach = clicker:get_attach()
|
||||||
if attach and attach:get_luaentity() then
|
if attach and attach:get_luaentity() then
|
||||||
|
@ -91,7 +91,7 @@ function boat.on_rightclick(self, clicker)
|
||||||
mcl_player.player_set_animation(player, "sit" , 30)
|
mcl_player.player_set_animation(player, "sit" , 30)
|
||||||
end
|
end
|
||||||
end, name)
|
end, name)
|
||||||
clicker:set_look_horizontal(self.object:getyaw())
|
clicker:set_look_horizontal(self.object:get_yaw())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -143,10 +143,10 @@ function boat.on_punch(self, puncher)
|
||||||
end
|
end
|
||||||
|
|
||||||
function boat.on_step(self, dtime)
|
function boat.on_step(self, dtime)
|
||||||
self._v = get_v(self.object:getvelocity()) * get_sign(self._v)
|
self._v = get_v(self.object:get_velocity()) * get_sign(self._v)
|
||||||
if self._driver then
|
if self._driver then
|
||||||
local ctrl = self._driver:get_player_control()
|
local ctrl = self._driver:get_player_control()
|
||||||
local yaw = self.object:getyaw()
|
local yaw = self.object:get_yaw()
|
||||||
if ctrl.up then
|
if ctrl.up then
|
||||||
-- Forwards
|
-- Forwards
|
||||||
self._v = self._v + 0.1
|
self._v = self._v + 0.1
|
||||||
|
@ -174,15 +174,15 @@ function boat.on_step(self, dtime)
|
||||||
end
|
end
|
||||||
if ctrl.left then
|
if ctrl.left then
|
||||||
if self._v < 0 then
|
if self._v < 0 then
|
||||||
self.object:setyaw(yaw - (1 + dtime) * 0.03)
|
self.object:set_yaw(yaw - (1 + dtime) * 0.03)
|
||||||
else
|
else
|
||||||
self.object:setyaw(yaw + (1 + dtime) * 0.03)
|
self.object:set_yaw(yaw + (1 + dtime) * 0.03)
|
||||||
end
|
end
|
||||||
elseif ctrl.right then
|
elseif ctrl.right then
|
||||||
if self._v < 0 then
|
if self._v < 0 then
|
||||||
self.object:setyaw(yaw + (1 + dtime) * 0.03)
|
self.object:set_yaw(yaw + (1 + dtime) * 0.03)
|
||||||
else
|
else
|
||||||
self.object:setyaw(yaw - (1 + dtime) * 0.03)
|
self.object:set_yaw(yaw - (1 + dtime) * 0.03)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -192,15 +192,15 @@ function boat.on_step(self, dtime)
|
||||||
self._animation = 0
|
self._animation = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local velo = self.object:getvelocity()
|
local velo = self.object:get_velocity()
|
||||||
if self._v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
|
if self._v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
|
||||||
self.object:setpos(self.object:get_pos())
|
self.object:set_pos(self.object:get_pos())
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local s = get_sign(self._v)
|
local s = get_sign(self._v)
|
||||||
self._v = self._v - 0.02 * s
|
self._v = self._v - 0.02 * s
|
||||||
if s ~= get_sign(self._v) then
|
if s ~= get_sign(self._v) then
|
||||||
self.object:setvelocity({x = 0, y = 0, z = 0})
|
self.object:set_velocity({x = 0, y = 0, z = 0})
|
||||||
self._v = 0
|
self._v = 0
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -220,13 +220,13 @@ function boat.on_step(self, dtime)
|
||||||
else
|
else
|
||||||
new_acce = {x = 0, y = -9.8, z = 0}
|
new_acce = {x = 0, y = -9.8, z = 0}
|
||||||
end
|
end
|
||||||
new_velo = get_velocity(self._v, self.object:getyaw(),
|
new_velo = get_velocity(self._v, self.object:get_yaw(),
|
||||||
self.object:getvelocity().y)
|
self.object:get_velocity().y)
|
||||||
self.object:setpos(self.object:get_pos())
|
self.object:set_pos(self.object:get_pos())
|
||||||
else
|
else
|
||||||
p.y = p.y + 1
|
p.y = p.y + 1
|
||||||
if is_water(p) then
|
if is_water(p) then
|
||||||
local y = self.object:getvelocity().y
|
local y = self.object:get_velocity().y
|
||||||
if y >= 5 then
|
if y >= 5 then
|
||||||
y = 5
|
y = 5
|
||||||
elseif y < 0 then
|
elseif y < 0 then
|
||||||
|
@ -234,24 +234,24 @@ function boat.on_step(self, dtime)
|
||||||
else
|
else
|
||||||
new_acce = {x = 0, y = 5, z = 0}
|
new_acce = {x = 0, y = 5, z = 0}
|
||||||
end
|
end
|
||||||
new_velo = get_velocity(self._v, self.object:getyaw(), y)
|
new_velo = get_velocity(self._v, self.object:get_yaw(), y)
|
||||||
self.object:setpos(self.object:get_pos())
|
self.object:set_pos(self.object:get_pos())
|
||||||
else
|
else
|
||||||
new_acce = {x = 0, y = 0, z = 0}
|
new_acce = {x = 0, y = 0, z = 0}
|
||||||
if math.abs(self.object:getvelocity().y) < 1 then
|
if math.abs(self.object:get_velocity().y) < 1 then
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
pos.y = math.floor(pos.y) + boat_y_offset
|
pos.y = math.floor(pos.y) + boat_y_offset
|
||||||
self.object:setpos(pos)
|
self.object:set_pos(pos)
|
||||||
new_velo = get_velocity(self._v, self.object:getyaw(), 0)
|
new_velo = get_velocity(self._v, self.object:get_yaw(), 0)
|
||||||
else
|
else
|
||||||
new_velo = get_velocity(self._v, self.object:getyaw(),
|
new_velo = get_velocity(self._v, self.object:get_yaw(),
|
||||||
self.object:getvelocity().y)
|
self.object:get_velocity().y)
|
||||||
self.object:setpos(self.object:get_pos())
|
self.object:set_pos(self.object:get_pos())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self.object:setvelocity(new_velo)
|
self.object:set_velocity(new_velo)
|
||||||
self.object:setacceleration(new_acce)
|
self.object:set_acceleration(new_acce)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register one entity for all boat types
|
-- Register one entity for all boat types
|
||||||
|
|
|
@ -141,9 +141,9 @@ minetest.register_entity(":__builtin:falling_node", {
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
-- Set gravity
|
-- Set gravity
|
||||||
local acceleration = self.object:getacceleration()
|
local acceleration = self.object:get_acceleration()
|
||||||
if not vector.equals(acceleration, {x = 0, y = -10, z = 0}) then
|
if not vector.equals(acceleration, {x = 0, y = -10, z = 0}) then
|
||||||
self.object:setacceleration({x = 0, y = -10, z = 0})
|
self.object:set_acceleration({x = 0, y = -10, z = 0})
|
||||||
end
|
end
|
||||||
-- Turn to actual node when colliding with ground, or continue to move
|
-- Turn to actual node when colliding with ground, or continue to move
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
|
@ -222,7 +222,7 @@ minetest.register_entity(":__builtin:falling_node", {
|
||||||
minetest.check_for_falling(np)
|
minetest.check_for_falling(np)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local vel = self.object:getvelocity()
|
local vel = self.object:get_velocity()
|
||||||
-- Fix position if entity does not move
|
-- Fix position if entity does not move
|
||||||
if vector.equals(vel, {x = 0, y = 0, z = 0}) then
|
if vector.equals(vel, {x = 0, y = 0, z = 0}) then
|
||||||
local npos = vector.round(self.object:get_pos())
|
local npos = vector.round(self.object:get_pos())
|
||||||
|
|
|
@ -98,14 +98,14 @@ minetest.register_globalstep(function(dtime)
|
||||||
local opos = object:get_pos()
|
local opos = object:get_pos()
|
||||||
local vec = vector.subtract(checkpos, opos)
|
local vec = vector.subtract(checkpos, opos)
|
||||||
vec = vector.add(opos, vector.divide(vec, 2))
|
vec = vector.add(opos, vector.divide(vec, 2))
|
||||||
object:moveto(vec)
|
object:move_to(vec)
|
||||||
|
|
||||||
|
|
||||||
--fix eternally falling items
|
--fix eternally falling items
|
||||||
minetest.after(0, function(object)
|
minetest.after(0, function(object)
|
||||||
local lua = object:get_luaentity()
|
local lua = object:get_luaentity()
|
||||||
if lua then
|
if lua then
|
||||||
object:setacceleration({x=0, y=0, z=0})
|
object:set_acceleration({x=0, y=0, z=0})
|
||||||
end
|
end
|
||||||
end, object)
|
end, object)
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ function minetest.handle_node_drops(pos, drops, digger)
|
||||||
if math.random(1,2) == 1 then
|
if math.random(1,2) == 1 then
|
||||||
z = -z
|
z = -z
|
||||||
end
|
end
|
||||||
obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
|
obj:set_velocity({x=1/x, y=obj:get_velocity().y, z=1/z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -285,7 +285,7 @@ function minetest.item_drop(itemstack, dropper, pos)
|
||||||
v.x = v.x*4
|
v.x = v.x*4
|
||||||
v.y = v.y*4 + 2
|
v.y = v.y*4 + 2
|
||||||
v.z = v.z*4
|
v.z = v.z*4
|
||||||
obj:setvelocity(v)
|
obj:set_velocity(v)
|
||||||
-- Force collection delay
|
-- Force collection delay
|
||||||
obj:get_luaentity()._insta_collect = false
|
obj:get_luaentity()._insta_collect = false
|
||||||
return itemstack
|
return itemstack
|
||||||
|
@ -373,7 +373,7 @@ core.register_entity(":__builtin:item", {
|
||||||
if not self or not self.object or not self.object:get_luaentity() then
|
if not self or not self.object or not self.object:get_luaentity() then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local vel = self.object:getvelocity()
|
local vel = self.object:get_velocity()
|
||||||
if vel and vel.x == 0 and vel.z == 0 then
|
if vel and vel.x == 0 and vel.z == 0 then
|
||||||
local x = math.random(1, 5)
|
local x = math.random(1, 5)
|
||||||
if math.random(1,2) == 1 then
|
if math.random(1,2) == 1 then
|
||||||
|
@ -384,7 +384,7 @@ core.register_entity(":__builtin:item", {
|
||||||
z = -z
|
z = -z
|
||||||
end
|
end
|
||||||
local y = math.random(2,4)
|
local y = math.random(2,4)
|
||||||
self.object:setvelocity({x=1/x, y=y, z=1/z})
|
self.object:set_velocity({x=1/x, y=y, z=1/z})
|
||||||
end
|
end
|
||||||
end, self)
|
end, self)
|
||||||
end
|
end
|
||||||
|
@ -444,8 +444,8 @@ core.register_entity(":__builtin:item", {
|
||||||
self._forcetimer = 0
|
self._forcetimer = 0
|
||||||
|
|
||||||
self.object:set_armor_groups({immortal = 1})
|
self.object:set_armor_groups({immortal = 1})
|
||||||
self.object:setvelocity({x = 0, y = 2, z = 0})
|
self.object:set_velocity({x = 0, y = 2, z = 0})
|
||||||
self.object:setacceleration({x = 0, y = -get_gravity(), z = 0})
|
self.object:set_acceleration({x = 0, y = -get_gravity(), z = 0})
|
||||||
self:set_item(self.itemstring)
|
self:set_item(self.itemstring)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
@ -589,8 +589,8 @@ core.register_entity(":__builtin:item", {
|
||||||
|
|
||||||
-- Set new item moving speed accordingly
|
-- Set new item moving speed accordingly
|
||||||
local newv = vector.multiply(shootdir, 3)
|
local newv = vector.multiply(shootdir, 3)
|
||||||
self.object:setacceleration({x = 0, y = 0, z = 0})
|
self.object:set_acceleration({x = 0, y = 0, z = 0})
|
||||||
self.object:setvelocity(newv)
|
self.object:set_velocity(newv)
|
||||||
|
|
||||||
disable_physics(self.object, self, false, false)
|
disable_physics(self.object, self, false, false)
|
||||||
|
|
||||||
|
@ -643,8 +643,8 @@ core.register_entity(":__builtin:item", {
|
||||||
local f = 1.39
|
local f = 1.39
|
||||||
-- Set new item moving speed into the direciton of the liquid
|
-- Set new item moving speed into the direciton of the liquid
|
||||||
local newv = vector.multiply(vec, f)
|
local newv = vector.multiply(vec, f)
|
||||||
self.object:setacceleration({x = 0, y = 0, z = 0})
|
self.object:set_acceleration({x = 0, y = 0, z = 0})
|
||||||
self.object:setvelocity({x = newv.x, y = -0.22, z = newv.z})
|
self.object:set_velocity({x = newv.x, y = -0.22, z = newv.z})
|
||||||
|
|
||||||
self.physical_state = true
|
self.physical_state = true
|
||||||
self._flowing = true
|
self._flowing = true
|
||||||
|
@ -662,7 +662,7 @@ core.register_entity(":__builtin:item", {
|
||||||
|
|
||||||
-- If node is not registered or node is walkably solid and resting on nodebox
|
-- If node is not registered or node is walkably solid and resting on nodebox
|
||||||
local nn = minetest.get_node({x=p.x, y=p.y-0.5, z=p.z}).name
|
local nn = minetest.get_node({x=p.x, y=p.y-0.5, z=p.z}).name
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then
|
if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then
|
||||||
if self.physical_state then
|
if self.physical_state then
|
||||||
|
|
|
@ -61,7 +61,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
if puncher:get_player_control().sneak then
|
if puncher:get_player_control().sneak then
|
||||||
if self._driver then
|
if self._driver then
|
||||||
if self._old_pos then
|
if self._old_pos then
|
||||||
self.object:setpos(self._old_pos)
|
self.object:set_pos(self._old_pos)
|
||||||
end
|
end
|
||||||
mcl_player.player_attached[self._driver] = nil
|
mcl_player.player_attached[self._driver] = nil
|
||||||
local player = minetest.get_player_by_name(self._driver)
|
local player = minetest.get_player_by_name(self._driver)
|
||||||
|
@ -98,7 +98,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local vel = self.object:getvelocity()
|
local vel = self.object:get_velocity()
|
||||||
if puncher:get_player_name() == self._driver then
|
if puncher:get_player_name() == self._driver then
|
||||||
if math.abs(vel.x + vel.z) > 7 then
|
if math.abs(vel.x + vel.z) > 7 then
|
||||||
return
|
return
|
||||||
|
@ -121,7 +121,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
end
|
end
|
||||||
|
|
||||||
function cart:on_step(dtime)
|
function cart:on_step(dtime)
|
||||||
local vel = self.object:getvelocity()
|
local vel = self.object:get_velocity()
|
||||||
local update = {}
|
local update = {}
|
||||||
if self._last_float_check == nil then
|
if self._last_float_check == nil then
|
||||||
self._last_float_check = 0
|
self._last_float_check = 0
|
||||||
|
@ -139,7 +139,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
-- Detach driver
|
-- Detach driver
|
||||||
if self._driver then
|
if self._driver then
|
||||||
if self._old_pos then
|
if self._old_pos then
|
||||||
self.object:setpos(self._old_pos)
|
self.object:set_pos(self._old_pos)
|
||||||
end
|
end
|
||||||
mcl_player.player_attached[self._driver] = nil
|
mcl_player.player_attached[self._driver] = nil
|
||||||
local player = minetest.get_player_by_name(self._driver)
|
local player = minetest.get_player_by_name(self._driver)
|
||||||
|
@ -164,7 +164,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
|
|
||||||
if self._punched then
|
if self._punched then
|
||||||
vel = vector.add(vel, self._velocity)
|
vel = vector.add(vel, self._velocity)
|
||||||
self.object:setvelocity(vel)
|
self.object:set_velocity(vel)
|
||||||
self._old_dir.y = 0
|
self._old_dir.y = 0
|
||||||
elseif vector.equals(vel, {x=0, y=0, z=0}) then
|
elseif vector.equals(vel, {x=0, y=0, z=0}) then
|
||||||
return
|
return
|
||||||
|
@ -217,8 +217,8 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
(self._old_vel.x * vel.x < 0 or self._old_vel.z * vel.z < 0) then
|
(self._old_vel.x * vel.x < 0 or self._old_vel.z * vel.z < 0) then
|
||||||
self._old_vel = {x = 0, y = 0, z = 0}
|
self._old_vel = {x = 0, y = 0, z = 0}
|
||||||
self._old_pos = pos
|
self._old_pos = pos
|
||||||
self.object:setvelocity(vector.new())
|
self.object:set_velocity(vector.new())
|
||||||
self.object:setacceleration(vector.new())
|
self.object:set_acceleration(vector.new())
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
self._old_vel = vector.new(vel)
|
self._old_vel = vector.new(vel)
|
||||||
|
@ -292,7 +292,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
new_acc = vector.multiply(dir, acc)
|
new_acc = vector.multiply(dir, acc)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.object:setacceleration(new_acc)
|
self.object:set_acceleration(new_acc)
|
||||||
self._old_pos = vector.new(pos)
|
self._old_pos = vector.new(pos)
|
||||||
self._old_dir = vector.new(dir)
|
self._old_dir = vector.new(dir)
|
||||||
self._old_switch = last_switch
|
self._old_switch = last_switch
|
||||||
|
@ -321,7 +321,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
elseif dir.z < 0 then
|
elseif dir.z < 0 then
|
||||||
yaw = 1
|
yaw = 1
|
||||||
end
|
end
|
||||||
self.object:setyaw(yaw * math.pi)
|
self.object:set_yaw(yaw * math.pi)
|
||||||
end
|
end
|
||||||
|
|
||||||
if self._punched then
|
if self._punched then
|
||||||
|
@ -341,9 +341,9 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick)
|
||||||
end
|
end
|
||||||
self.object:set_animation(anim, 1, 0)
|
self.object:set_animation(anim, 1, 0)
|
||||||
|
|
||||||
self.object:setvelocity(vel)
|
self.object:set_velocity(vel)
|
||||||
if update.pos then
|
if update.pos then
|
||||||
self.object:setpos(pos)
|
self.object:set_pos(pos)
|
||||||
end
|
end
|
||||||
update = nil
|
update = nil
|
||||||
end
|
end
|
||||||
|
@ -387,7 +387,7 @@ mcl_minecarts.place_minecart = function(itemstack, pointed_thing)
|
||||||
le._railtype = railtype
|
le._railtype = railtype
|
||||||
end
|
end
|
||||||
local cart_dir = mcl_minecarts:get_rail_direction(railpos, {x=1, y=0, z=0}, nil, nil, railtype)
|
local cart_dir = mcl_minecarts:get_rail_direction(railpos, {x=1, y=0, z=0}, nil, nil, railtype)
|
||||||
cart:setyaw(minetest.dir_to_yaw(cart_dir))
|
cart:set_yaw(minetest.dir_to_yaw(cart_dir))
|
||||||
|
|
||||||
if not minetest.settings:get_bool("creative_mode") then
|
if not minetest.settings:get_bool("creative_mode") then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
|
|
|
@ -137,15 +137,15 @@ local set_velocity = function(self, v)
|
||||||
|
|
||||||
-- do not move if mob has been ordered to stay
|
-- do not move if mob has been ordered to stay
|
||||||
if self.order == "stand" then
|
if self.order == "stand" then
|
||||||
self.object:setvelocity({x = 0, y = 0, z = 0})
|
self.object:set_velocity({x = 0, y = 0, z = 0})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local yaw = (self.object:get_yaw() or 0) + self.rotate
|
local yaw = (self.object:get_yaw() or 0) + self.rotate
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = sin(yaw) * -v,
|
x = sin(yaw) * -v,
|
||||||
y = self.object:getvelocity().y,
|
y = self.object:get_velocity().y,
|
||||||
z = cos(yaw) * v
|
z = cos(yaw) * v
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
@ -154,7 +154,7 @@ end
|
||||||
-- calculate mob velocity
|
-- calculate mob velocity
|
||||||
local get_velocity = function(self)
|
local get_velocity = function(self)
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
return (v.x * v.x + v.z * v.z) ^ 0.5
|
return (v.x * v.x + v.z * v.z) ^ 0.5
|
||||||
end
|
end
|
||||||
|
@ -403,7 +403,7 @@ local item_drop = function(self, cooked)
|
||||||
|
|
||||||
if obj and obj:get_luaentity() then
|
if obj and obj:get_luaentity() then
|
||||||
|
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = random(-10, 10) / 9,
|
x = random(-10, 10) / 9,
|
||||||
y = 6,
|
y = 6,
|
||||||
z = random(-10, 10) / 9,
|
z = random(-10, 10) / 9,
|
||||||
|
@ -642,7 +642,7 @@ local do_env_damage = function(self)
|
||||||
|
|
||||||
-- don't fall when on ignore, just stand still
|
-- don't fall when on ignore, just stand still
|
||||||
if self.standing_in == "ignore" then
|
if self.standing_in == "ignore" then
|
||||||
self.object:setvelocity({x = 0, y = 0, z = 0})
|
self.object:set_velocity({x = 0, y = 0, z = 0})
|
||||||
end
|
end
|
||||||
|
|
||||||
local nodef = minetest.registered_nodes[self.standing_in]
|
local nodef = minetest.registered_nodes[self.standing_in]
|
||||||
|
@ -738,7 +738,7 @@ local do_jump = function(self)
|
||||||
-- something stopping us while moving?
|
-- something stopping us while moving?
|
||||||
if self.state ~= "stand"
|
if self.state ~= "stand"
|
||||||
and get_velocity(self) > 0.5
|
and get_velocity(self) > 0.5
|
||||||
and self.object:getvelocity().y ~= 0 then
|
and self.object:get_velocity().y ~= 0 then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -776,13 +776,13 @@ local do_jump = function(self)
|
||||||
if not nod.name:find("fence")
|
if not nod.name:find("fence")
|
||||||
and not nod.name:find("gate") then
|
and not nod.name:find("gate") then
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
v.y = self.jump_height
|
v.y = self.jump_height
|
||||||
|
|
||||||
set_animation(self, "jump") -- only when defined
|
set_animation(self, "jump") -- only when defined
|
||||||
|
|
||||||
self.object:setvelocity(v)
|
self.object:set_velocity(v)
|
||||||
|
|
||||||
-- when in air move forward
|
-- when in air move forward
|
||||||
minetest.after(0.3, function(self, v)
|
minetest.after(0.3, function(self, v)
|
||||||
|
@ -912,7 +912,7 @@ local breed = function(self)
|
||||||
self.on_grown(self)
|
self.on_grown(self)
|
||||||
else
|
else
|
||||||
-- jump when fully grown so as not to fall into ground
|
-- jump when fully grown so as not to fall into ground
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = 0,
|
x = 0,
|
||||||
y = self.jump_height,
|
y = self.jump_height,
|
||||||
z = 0
|
z = 0
|
||||||
|
@ -1041,7 +1041,7 @@ local replace = function(self, pos)
|
||||||
or not self.replace_rate
|
or not self.replace_rate
|
||||||
or not self.replace_what
|
or not self.replace_what
|
||||||
or self.child == true
|
or self.child == true
|
||||||
or self.object:getvelocity().y ~= 0
|
or self.object:get_velocity().y ~= 0
|
||||||
or random(1, self.replace_rate) > 1 then
|
or random(1, self.replace_rate) > 1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -1267,7 +1267,7 @@ local smart_mobs = function(self, s, p, dist, dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
s.y = s.y - sheight
|
s.y = s.y - sheight
|
||||||
self.object:setpos({x = s.x, y = s.y + 2, z = s.z})
|
self.object:set_pos({x = s.x, y = s.y + 2, z = s.z})
|
||||||
|
|
||||||
else -- dig 2 blocks to make door toward player direction
|
else -- dig 2 blocks to make door toward player direction
|
||||||
|
|
||||||
|
@ -1670,7 +1670,7 @@ local follow_flop = function(self)
|
||||||
if not flight_check(self, s) then
|
if not flight_check(self, s) then
|
||||||
|
|
||||||
self.state = "flop"
|
self.state = "flop"
|
||||||
self.object:setvelocity({x = 0, y = -5, z = 0})
|
self.object:set_velocity({x = 0, y = -5, z = 0})
|
||||||
|
|
||||||
set_animation(self, "stand")
|
set_animation(self, "stand")
|
||||||
|
|
||||||
|
@ -1944,7 +1944,7 @@ local do_states = function(self, dtime)
|
||||||
self.timer = 0
|
self.timer = 0
|
||||||
self.blinktimer = 0
|
self.blinktimer = 0
|
||||||
self.blinkstatus = false
|
self.blinkstatus = false
|
||||||
self.object:settexturemod("")
|
self.object:set_texture_mod("")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- walk right up to player unless the timer is active
|
-- walk right up to player unless the timer is active
|
||||||
|
@ -1970,9 +1970,9 @@ local do_states = function(self, dtime)
|
||||||
self.blinktimer = 0
|
self.blinktimer = 0
|
||||||
|
|
||||||
if self.blinkstatus then
|
if self.blinkstatus then
|
||||||
self.object:settexturemod("")
|
self.object:set_texture_mod("")
|
||||||
else
|
else
|
||||||
self.object:settexturemod("^[brighten")
|
self.object:set_texture_mod("^[brighten")
|
||||||
end
|
end
|
||||||
|
|
||||||
self.blinkstatus = not self.blinkstatus
|
self.blinkstatus = not self.blinkstatus
|
||||||
|
@ -2026,13 +2026,13 @@ local do_states = function(self, dtime)
|
||||||
local me_y = floor(p1.y)
|
local me_y = floor(p1.y)
|
||||||
local p2 = p
|
local p2 = p
|
||||||
local p_y = floor(p2.y + 1)
|
local p_y = floor(p2.y + 1)
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
if flight_check(self, s) then
|
if flight_check(self, s) then
|
||||||
|
|
||||||
if me_y < p_y then
|
if me_y < p_y then
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = v.x,
|
x = v.x,
|
||||||
y = 1 * self.walk_velocity,
|
y = 1 * self.walk_velocity,
|
||||||
z = v.z
|
z = v.z
|
||||||
|
@ -2040,7 +2040,7 @@ local do_states = function(self, dtime)
|
||||||
|
|
||||||
elseif me_y > p_y then
|
elseif me_y > p_y then
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = v.x,
|
x = v.x,
|
||||||
y = -1 * self.walk_velocity,
|
y = -1 * self.walk_velocity,
|
||||||
z = v.z
|
z = v.z
|
||||||
|
@ -2049,7 +2049,7 @@ local do_states = function(self, dtime)
|
||||||
else
|
else
|
||||||
if me_y < p_y then
|
if me_y < p_y then
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = v.x,
|
x = v.x,
|
||||||
y = 0.01,
|
y = 0.01,
|
||||||
z = v.z
|
z = v.z
|
||||||
|
@ -2057,7 +2057,7 @@ local do_states = function(self, dtime)
|
||||||
|
|
||||||
elseif me_y > p_y then
|
elseif me_y > p_y then
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = v.x,
|
x = v.x,
|
||||||
y = -0.01,
|
y = -0.01,
|
||||||
z = v.z
|
z = v.z
|
||||||
|
@ -2241,7 +2241,7 @@ local do_states = function(self, dtime)
|
||||||
vec.y = vec.y * (v / amount)
|
vec.y = vec.y * (v / amount)
|
||||||
vec.z = vec.z * (v / amount)
|
vec.z = vec.z * (v / amount)
|
||||||
|
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2257,12 +2257,12 @@ local falling = function(self, pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- floating in water (or falling)
|
-- floating in water (or falling)
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
if v.y > 0 then
|
if v.y > 0 then
|
||||||
|
|
||||||
-- apply gravity when moving up
|
-- apply gravity when moving up
|
||||||
self.object:setacceleration({
|
self.object:set_acceleration({
|
||||||
x = 0,
|
x = 0,
|
||||||
y = -10,
|
y = -10,
|
||||||
z = 0
|
z = 0
|
||||||
|
@ -2271,14 +2271,14 @@ local falling = function(self, pos)
|
||||||
elseif v.y <= 0 and v.y > self.fall_speed then
|
elseif v.y <= 0 and v.y > self.fall_speed then
|
||||||
|
|
||||||
-- fall downwards at set speed
|
-- fall downwards at set speed
|
||||||
self.object:setacceleration({
|
self.object:set_acceleration({
|
||||||
x = 0,
|
x = 0,
|
||||||
y = self.fall_speed,
|
y = self.fall_speed,
|
||||||
z = 0
|
z = 0
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
-- stop accelerating once max fall speed hit
|
-- stop accelerating once max fall speed hit
|
||||||
self.object:setacceleration({x = 0, y = 0, z = 0})
|
self.object:set_acceleration({x = 0, y = 0, z = 0})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- in water then float up
|
-- in water then float up
|
||||||
|
@ -2286,7 +2286,7 @@ local falling = function(self, pos)
|
||||||
|
|
||||||
if self.floats == 1 then
|
if self.floats == 1 then
|
||||||
|
|
||||||
self.object:setacceleration({
|
self.object:set_acceleration({
|
||||||
x = 0,
|
x = 0,
|
||||||
y = -self.fall_speed / (max(1, v.y) ^ 2),
|
y = -self.fall_speed / (max(1, v.y) ^ 2),
|
||||||
z = 0
|
z = 0
|
||||||
|
@ -2296,7 +2296,7 @@ local falling = function(self, pos)
|
||||||
|
|
||||||
-- fall damage onto solid ground
|
-- fall damage onto solid ground
|
||||||
if self.fall_damage == 1
|
if self.fall_damage == 1
|
||||||
and self.object:getvelocity().y == 0 then
|
and self.object:get_velocity().y == 0 then
|
||||||
|
|
||||||
local d = (self.old_y or 0) - self.object:get_pos().y
|
local d = (self.old_y or 0) - self.object:get_pos().y
|
||||||
|
|
||||||
|
@ -2475,7 +2475,7 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
|
||||||
if self.knock_back
|
if self.knock_back
|
||||||
and tflp >= punch_interval then
|
and tflp >= punch_interval then
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
local r = 1.4 - min(punch_interval, 1.4)
|
local r = 1.4 - min(punch_interval, 1.4)
|
||||||
local kb = r * 2.0
|
local kb = r * 2.0
|
||||||
local up = 2
|
local up = 2
|
||||||
|
@ -2496,7 +2496,7 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
|
||||||
kb = kb * 1.5
|
kb = kb * 1.5
|
||||||
end
|
end
|
||||||
|
|
||||||
self.object:setvelocity({
|
self.object:set_velocity({
|
||||||
x = dir.x * kb,
|
x = dir.x * kb,
|
||||||
y = up,
|
y = up,
|
||||||
z = dir.z * kb
|
z = dir.z * kb
|
||||||
|
|
|
@ -190,7 +190,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
local acce_y = 0
|
local acce_y = 0
|
||||||
local velo = entity.object:getvelocity()
|
local velo = entity.object:get_velocity()
|
||||||
|
|
||||||
entity.v = get_v(velo) * get_sign(entity.v)
|
entity.v = get_v(velo) * get_sign(entity.v)
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fix mob rotation
|
-- fix mob rotation
|
||||||
entity.object:setyaw(entity.driver:get_look_horizontal() - entity.rotate)
|
entity.object:set_yaw(entity.driver:get_look_horizontal() - entity.rotate)
|
||||||
|
|
||||||
if can_fly then
|
if can_fly then
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
|
|
||||||
if s ~= get_sign(entity.v) then
|
if s ~= get_sign(entity.v) then
|
||||||
|
|
||||||
entity.object:setvelocity({x = 0, y = 0, z = 0})
|
entity.object:set_velocity({x = 0, y = 0, z = 0})
|
||||||
entity.v = 0
|
entity.v = 0
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -348,7 +348,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
if math.abs(velo.y) < 1 then
|
if math.abs(velo.y) < 1 then
|
||||||
local pos = entity.object:get_pos()
|
local pos = entity.object:get_pos()
|
||||||
pos.y = math.floor(pos.y) + 0.5
|
pos.y = math.floor(pos.y) + 0.5
|
||||||
entity.object:setpos(pos)
|
entity.object:set_pos(pos)
|
||||||
velo.y = 0
|
velo.y = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -360,8 +360,8 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime)
|
||||||
new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y)
|
new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y)
|
||||||
new_acce.y = new_acce.y + acce_y
|
new_acce.y = new_acce.y + acce_y
|
||||||
|
|
||||||
entity.object:setvelocity(new_velo)
|
entity.object:set_velocity(new_velo)
|
||||||
entity.object:setacceleration(new_acce)
|
entity.object:set_acceleration(new_acce)
|
||||||
|
|
||||||
-- CRASH!
|
-- CRASH!
|
||||||
if enable_crash then
|
if enable_crash then
|
||||||
|
@ -387,7 +387,7 @@ end
|
||||||
function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
||||||
|
|
||||||
local ctrl = entity.driver:get_player_control()
|
local ctrl = entity.driver:get_player_control()
|
||||||
local velo = entity.object:getvelocity()
|
local velo = entity.object:get_velocity()
|
||||||
local dir = entity.driver:get_look_dir()
|
local dir = entity.driver:get_look_dir()
|
||||||
local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands
|
local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands
|
||||||
local rot_steer, rot_view = math.pi / 2, 0
|
local rot_steer, rot_view = math.pi / 2, 0
|
||||||
|
@ -397,24 +397,24 @@ function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
||||||
end
|
end
|
||||||
|
|
||||||
if ctrl.up then
|
if ctrl.up then
|
||||||
entity.object:setvelocity({
|
entity.object:set_velocity({
|
||||||
x = dir.x * speed,
|
x = dir.x * speed,
|
||||||
y = dir.y * speed + 2,
|
y = dir.y * speed + 2,
|
||||||
z = dir.z * speed
|
z = dir.z * speed
|
||||||
})
|
})
|
||||||
|
|
||||||
elseif ctrl.down then
|
elseif ctrl.down then
|
||||||
entity.object:setvelocity({
|
entity.object:set_velocity({
|
||||||
x = -dir.x * speed,
|
x = -dir.x * speed,
|
||||||
y = dir.y * speed + 2,
|
y = dir.y * speed + 2,
|
||||||
z = -dir.z * speed
|
z = -dir.z * speed
|
||||||
})
|
})
|
||||||
|
|
||||||
elseif not ctrl.down or ctrl.up or ctrl.jump then
|
elseif not ctrl.down or ctrl.up or ctrl.jump then
|
||||||
entity.object:setvelocity({x = 0, y = -2, z = 0})
|
entity.object:set_velocity({x = 0, y = -2, z = 0})
|
||||||
end
|
end
|
||||||
|
|
||||||
entity.object:setyaw(yaw + math.pi + math.pi / 2 - entity.rotate)
|
entity.object:set_yaw(yaw + math.pi + math.pi / 2 - entity.rotate)
|
||||||
|
|
||||||
-- firing arrows
|
-- firing arrows
|
||||||
if ctrl.LMB and ctrl.sneak and shoots then
|
if ctrl.LMB and ctrl.sneak and shoots then
|
||||||
|
@ -431,8 +431,8 @@ function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
||||||
ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding
|
ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding
|
||||||
local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6}
|
local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6}
|
||||||
local yaw = entity.driver:get_look_horizontal()
|
local yaw = entity.driver:get_look_horizontal()
|
||||||
obj:setyaw(yaw + math.pi / 2)
|
obj:set_yaw(yaw + math.pi / 2)
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
else
|
else
|
||||||
obj:remove()
|
obj:remove()
|
||||||
end
|
end
|
||||||
|
|
|
@ -116,9 +116,9 @@ local throwing_shoot_arrow = function(itemstack, player)
|
||||||
local playerpos = player:get_pos()
|
local playerpos = player:get_pos()
|
||||||
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2]) --mc
|
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2]) --mc
|
||||||
local dir = player:get_look_dir()
|
local dir = player:get_look_dir()
|
||||||
obj:setvelocity({x=dir.x*22, y=dir.y*22, z=dir.z*22})
|
obj:set_velocity({x=dir.x*22, y=dir.y*22, z=dir.z*22})
|
||||||
obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3})
|
obj:set_acceleration({x=dir.x*-3, y=-10, z=dir.z*-3})
|
||||||
obj:setyaw(player:get_look_yaw()+math.pi)
|
obj:set_yaw(player:get_look_yaw()+math.pi)
|
||||||
minetest.sound_play("throwing_sound", {pos=playerpos})
|
minetest.sound_play("throwing_sound", {pos=playerpos})
|
||||||
if obj:get_luaentity().player == "" then
|
if obj:get_luaentity().player == "" then
|
||||||
obj:get_luaentity().player = player
|
obj:get_luaentity().player = player
|
||||||
|
@ -267,13 +267,13 @@ if c("egg") then
|
||||||
ent.velocity = egg_VELOCITY -- needed for api internal timing
|
ent.velocity = egg_VELOCITY -- needed for api internal timing
|
||||||
ent.switch = 1 -- needed so that egg doesn't despawn straight away
|
ent.switch = 1 -- needed so that egg doesn't despawn straight away
|
||||||
|
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = dir.x * egg_VELOCITY,
|
x = dir.x * egg_VELOCITY,
|
||||||
y = dir.y * egg_VELOCITY,
|
y = dir.y * egg_VELOCITY,
|
||||||
z = dir.z * egg_VELOCITY
|
z = dir.z * egg_VELOCITY
|
||||||
})
|
})
|
||||||
|
|
||||||
obj:setacceleration({
|
obj:set_acceleration({
|
||||||
x = dir.x * -3,
|
x = dir.x * -3,
|
||||||
y = -egg_GRAVITY,
|
y = -egg_GRAVITY,
|
||||||
z = dir.z * -3
|
z = dir.z * -3
|
||||||
|
@ -351,13 +351,13 @@ if c("snowball") then
|
||||||
ent.velocity = snowball_VELOCITY -- needed for api internal timing
|
ent.velocity = snowball_VELOCITY -- needed for api internal timing
|
||||||
ent.switch = 1 -- needed so that egg doesn't despawn straight away
|
ent.switch = 1 -- needed so that egg doesn't despawn straight away
|
||||||
|
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = dir.x * snowball_VELOCITY,
|
x = dir.x * snowball_VELOCITY,
|
||||||
y = dir.y * snowball_VELOCITY,
|
y = dir.y * snowball_VELOCITY,
|
||||||
z = dir.z * snowball_VELOCITY
|
z = dir.z * snowball_VELOCITY
|
||||||
})
|
})
|
||||||
|
|
||||||
obj:setacceleration({
|
obj:set_acceleration({
|
||||||
x = dir.x * -3,
|
x = dir.x * -3,
|
||||||
y = -snowball_GRAVITY,
|
y = -snowball_GRAVITY,
|
||||||
z = dir.z * -3
|
z = dir.z * -3
|
||||||
|
|
|
@ -53,7 +53,7 @@ mobs_mc.make_owner_teleport_function = function(dist, teleport_check_interval)
|
||||||
if minetest.registered_nodes[minetest.get_node(telepos).name].walkable == false and
|
if minetest.registered_nodes[minetest.get_node(telepos).name].walkable == false and
|
||||||
minetest.registered_nodes[minetest.get_node(telepos_below).name].walkable == true then
|
minetest.registered_nodes[minetest.get_node(telepos_below).name].walkable == true then
|
||||||
-- Correct position found! Let's teleport.
|
-- Correct position found! Let's teleport.
|
||||||
self.object:setpos(telepos)
|
self.object:set_pos(telepos)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -101,7 +101,7 @@ mobs:register_arrow("mobs_mc:blaze_fireball", {
|
||||||
if node.name == "air" then
|
if node.name == "air" then
|
||||||
minetest.set_node(pos_above, {name=mobs_mc.items.fire})
|
minetest.set_node(pos_above, {name=mobs_mc.items.fire})
|
||||||
else
|
else
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
v = vector.normalize(v)
|
v = vector.normalize(v)
|
||||||
local crashpos = vector.subtract(pos, v)
|
local crashpos = vector.subtract(pos, v)
|
||||||
local crashnode = minetest.get_node(crashpos)
|
local crashnode = minetest.get_node(crashpos)
|
||||||
|
|
|
@ -100,10 +100,10 @@ mooshroom_def.on_rightclick = function(self, clicker)
|
||||||
minetest.add_item({x=pos.x, y=pos.y+1.4, z=pos.z}, mobs_mc.items.mushroom_red .. " 5")
|
minetest.add_item({x=pos.x, y=pos.y+1.4, z=pos.z}, mobs_mc.items.mushroom_red .. " 5")
|
||||||
end
|
end
|
||||||
|
|
||||||
local oldyaw = self.object:getyaw()
|
local oldyaw = self.object:get_yaw()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
local cow = minetest.add_entity(pos, "mobs_mc:cow")
|
local cow = minetest.add_entity(pos, "mobs_mc:cow")
|
||||||
cow:setyaw(oldyaw)
|
cow:set_yaw(oldyaw)
|
||||||
|
|
||||||
if not minetest.settings:get_bool("creative_mode") then
|
if not minetest.settings:get_bool("creative_mode") then
|
||||||
item:add_wear(mobs_mc.misc.shears_wear)
|
item:add_wear(mobs_mc.misc.shears_wear)
|
||||||
|
|
|
@ -314,7 +314,7 @@ mobs:register_mob("mobs_mc:enderman", {
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if telepos then
|
if telepos then
|
||||||
self.object:setpos(telepos)
|
self.object:set_pos(telepos)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
|
@ -595,7 +595,7 @@ local function return_item(itemstack, dropper, pos, inv_p)
|
||||||
v.x = v.x*4
|
v.x = v.x*4
|
||||||
v.y = v.y*4 + 2
|
v.y = v.y*4 + 2
|
||||||
v.z = v.z*4
|
v.z = v.z*4
|
||||||
obj:setvelocity(v)
|
obj:set_velocity(v)
|
||||||
obj:get_luaentity()._insta_collect = false
|
obj:get_luaentity()._insta_collect = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -163,7 +163,7 @@ lightning.strike = function(pos)
|
||||||
posadd = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
posadd = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
||||||
posadd = vector.normalize(posadd)
|
posadd = vector.normalize(posadd)
|
||||||
local mob = minetest.add_entity(vector.add(pos2, posadd), "mobs_mc:skeleton")
|
local mob = minetest.add_entity(vector.add(pos2, posadd), "mobs_mc:skeleton")
|
||||||
mob:setyaw(angle-math.pi/2)
|
mob:set_yaw(angle-math.pi/2)
|
||||||
angle = angle + (math.pi*2) / 3
|
angle = angle + (math.pi*2) / 3
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ local function return_item(itemstack, dropper, pos, inv)
|
||||||
v.x = v.x*4
|
v.x = v.x*4
|
||||||
v.y = v.y*4 + 2
|
v.y = v.y*4 + 2
|
||||||
v.z = v.z*4
|
v.z = v.z*4
|
||||||
obj:setvelocity(v)
|
obj:set_velocity(v)
|
||||||
obj:get_luaentity()._insta_collect = false
|
obj:get_luaentity()._insta_collect = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -310,7 +310,7 @@ function mesecon.mvps_move_objects(pos, dir, nodestack)
|
||||||
local nn = minetest.get_node(np)
|
local nn = minetest.get_node(np)
|
||||||
if not ((not minetest.registered_nodes[nn.name])
|
if not ((not minetest.registered_nodes[nn.name])
|
||||||
or minetest.registered_nodes[nn.name].walkable) then
|
or minetest.registered_nodes[nn.name].walkable) then
|
||||||
obj:setpos(np)
|
obj:set_pos(np)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,7 +41,7 @@ mcl_bows.shoot_arrow = function(arrow_item, pos, dir, yaw, shooter, power, damag
|
||||||
end
|
end
|
||||||
obj:set_velocity({x=dir.x*power, y=dir.y*power, z=dir.z*power})
|
obj:set_velocity({x=dir.x*power, y=dir.y*power, z=dir.z*power})
|
||||||
obj:set_acceleration({x=0, y=-GRAVITY, z=0})
|
obj:set_acceleration({x=0, y=-GRAVITY, z=0})
|
||||||
obj:setyaw(yaw-math.pi/2)
|
obj:set_yaw(yaw-math.pi/2)
|
||||||
local le = obj:get_luaentity()
|
local le = obj:get_luaentity()
|
||||||
le._shooter = shooter
|
le._shooter = shooter
|
||||||
le._damage = damage
|
le._damage = damage
|
||||||
|
|
|
@ -35,10 +35,10 @@ minetest.register_entity("mcl_end:ender_eye", {
|
||||||
else
|
else
|
||||||
-- 80% to drop as an item
|
-- 80% to drop as an item
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
local item = minetest.add_item(pos, "mcl_end:ender_eye")
|
local item = minetest.add_item(pos, "mcl_end:ender_eye")
|
||||||
item:setvelocity(v)
|
item:set_velocity(v)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
elseif self._age >= 2 then
|
elseif self._age >= 2 then
|
||||||
|
@ -46,8 +46,8 @@ minetest.register_entity("mcl_end:ender_eye", {
|
||||||
self._phase = 1
|
self._phase = 1
|
||||||
-- Stop the eye and wait for another second.
|
-- Stop the eye and wait for another second.
|
||||||
-- The vertical speed changes are just eye candy.
|
-- The vertical speed changes are just eye candy.
|
||||||
self.object:setacceleration({x=0, y=-3, z=0})
|
self.object:set_acceleration({x=0, y=-3, z=0})
|
||||||
self.object:setvelocity({x=0, y=self.object:getvelocity().y*0.2, z=0})
|
self.object:set_velocity({x=0, y=self.object:get_velocity().y*0.2, z=0})
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- Fly normally and generate particles
|
-- Fly normally and generate particles
|
||||||
|
@ -126,7 +126,7 @@ minetest.register_craftitem("mcl_end:ender_eye", {
|
||||||
local velocity = 4
|
local velocity = 4
|
||||||
-- Stronghold is close: Fly directly to stronghold and take Y into account.
|
-- Stronghold is close: Fly directly to stronghold and take Y into account.
|
||||||
dir = vector.normalize(vector.direction(origin, closest_stronghold.pos))
|
dir = vector.normalize(vector.direction(origin, closest_stronghold.pos))
|
||||||
obj:setvelocity({x=dir.x*velocity, y=dir.y*velocity, z=dir.z*velocity})
|
obj:set_velocity({x=dir.x*velocity, y=dir.y*velocity, z=dir.z*velocity})
|
||||||
else
|
else
|
||||||
local velocity = 12
|
local velocity = 12
|
||||||
-- Don't care about Y if stronghold is still far away.
|
-- Don't care about Y if stronghold is still far away.
|
||||||
|
@ -134,8 +134,8 @@ minetest.register_craftitem("mcl_end:ender_eye", {
|
||||||
local o = {x=origin.x, y=0, z=origin.z}
|
local o = {x=origin.x, y=0, z=origin.z}
|
||||||
local s = {x=closest_stronghold.pos.x, y=0, z=closest_stronghold.pos.z}
|
local s = {x=closest_stronghold.pos.x, y=0, z=closest_stronghold.pos.z}
|
||||||
dir = vector.normalize(vector.direction(o, s))
|
dir = vector.normalize(vector.direction(o, s))
|
||||||
obj:setacceleration({x=dir.x*-3, y=4, z=dir.z*-3})
|
obj:set_acceleration({x=dir.x*-3, y=4, z=dir.z*-3})
|
||||||
obj:setvelocity({x=dir.x*velocity, y=3, z=dir.z*velocity})
|
obj:set_velocity({x=dir.x*velocity, y=3, z=dir.z*velocity})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ minetest.register_craftitem("mcl_fire:fire_charge", {
|
||||||
local ent = fireball:get_luaentity()
|
local ent = fireball:get_luaentity()
|
||||||
ent._shot_from_dispenser = true
|
ent._shot_from_dispenser = true
|
||||||
local v = ent.velocity or 1
|
local v = ent.velocity or 1
|
||||||
fireball:setvelocity(vector.multiply(dropdir, v))
|
fireball:set_velocity(vector.multiply(dropdir, v))
|
||||||
ent.switch = 1
|
ent.switch = 1
|
||||||
stack:take_item()
|
stack:take_item()
|
||||||
end,
|
end,
|
||||||
|
|
|
@ -77,7 +77,7 @@ local update_item_entity = function(pos, node)
|
||||||
lua:_update_texture()
|
lua:_update_texture()
|
||||||
if node.name == "mcl_itemframes:item_frame" then
|
if node.name == "mcl_itemframes:item_frame" then
|
||||||
local yaw = math.pi*2 - node.param2 * math.pi/2
|
local yaw = math.pi*2 - node.param2 * math.pi/2
|
||||||
e:setyaw(yaw)
|
e:set_yaw(yaw)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -338,8 +338,8 @@ doll_def.on_activate = function(self, staticdata, dtime_s)
|
||||||
mob = default_mob
|
mob = default_mob
|
||||||
end
|
end
|
||||||
set_doll_properties(self.object, mob)
|
set_doll_properties(self.object, mob)
|
||||||
self.object:setvelocity({x=0, y=0, z=0})
|
self.object:set_velocity({x=0, y=0, z=0})
|
||||||
self.object:setacceleration({x=0, y=0, z=0})
|
self.object:set_acceleration({x=0, y=0, z=0})
|
||||||
self.object:set_armor_groups({immortal=1})
|
self.object:set_armor_groups({immortal=1})
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -197,7 +197,7 @@ local function find_nether_target_y(target_x, target_z)
|
||||||
local air = 4
|
local air = 4
|
||||||
|
|
||||||
for y = start_y, math.max(mcl_vars.mg_lava_nether_max + 1), -1 do
|
for y = start_y, math.max(mcl_vars.mg_lava_nether_max + 1), -1 do
|
||||||
local nval_cave = nobj_cave:get3d({x = target_x, y = y, z = target_z})
|
local nval_cave = nobj_cave:get_3d({x = target_x, y = y, z = target_z})
|
||||||
|
|
||||||
if nval_cave > TCAVE then -- Cavern
|
if nval_cave > TCAVE then -- Cavern
|
||||||
air = air + 1
|
air = air + 1
|
||||||
|
|
|
@ -223,7 +223,7 @@ local update_sign = function(pos, fields, sender)
|
||||||
text_entity:get_luaentity()._signnodename = nn
|
text_entity:get_luaentity()._signnodename = nn
|
||||||
text_entity:set_properties({textures={generate_texture(create_lines(text), nn)}})
|
text_entity:set_properties({textures={generate_texture(create_lines(text), nn)}})
|
||||||
|
|
||||||
text_entity:setyaw(sign_info.yaw)
|
text_entity:set_yaw(sign_info.yaw)
|
||||||
end
|
end
|
||||||
|
|
||||||
local show_formspec = function(player, pos)
|
local show_formspec = function(player, pos)
|
||||||
|
@ -359,7 +359,7 @@ minetest.register_node("mcl_signs:wall_sign", {
|
||||||
x = place_pos.x + sign_info.delta.x,
|
x = place_pos.x + sign_info.delta.x,
|
||||||
y = place_pos.y + sign_info.delta.y,
|
y = place_pos.y + sign_info.delta.y,
|
||||||
z = place_pos.z + sign_info.delta.z}, "mcl_signs:text")
|
z = place_pos.z + sign_info.delta.z}, "mcl_signs:text")
|
||||||
text_entity:setyaw(sign_info.yaw)
|
text_entity:set_yaw(sign_info.yaw)
|
||||||
text_entity:get_luaentity()._signnodename = nodeitem:get_name()
|
text_entity:get_luaentity()._signnodename = nodeitem:get_name()
|
||||||
|
|
||||||
minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos})
|
minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos})
|
||||||
|
|
|
@ -28,8 +28,8 @@ mcl_throwing.throw = function(throw_item, pos, dir, velocity)
|
||||||
|
|
||||||
local itemstring = ItemStack(throw_item):get_name()
|
local itemstring = ItemStack(throw_item):get_name()
|
||||||
local obj = minetest.add_entity(pos, entity_mapping[itemstring])
|
local obj = minetest.add_entity(pos, entity_mapping[itemstring])
|
||||||
obj:setvelocity({x=dir.x*velocity, y=dir.y*velocity, z=dir.z*velocity})
|
obj:set_velocity({x=dir.x*velocity, y=dir.y*velocity, z=dir.z*velocity})
|
||||||
obj:setacceleration({x=dir.x*-3, y=-GRAVITY, z=dir.z*-3})
|
obj:set_acceleration({x=dir.x*-3, y=-GRAVITY, z=dir.z*-3})
|
||||||
return obj
|
return obj
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ local pearl_on_step = function(self, dtime)
|
||||||
-- First determine good teleport position
|
-- First determine good teleport position
|
||||||
local dir = {x=0, y=0, z=0}
|
local dir = {x=0, y=0, z=0}
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
if walkable then
|
if walkable then
|
||||||
local vc = table.copy(v) -- vector for calculating
|
local vc = table.copy(v) -- vector for calculating
|
||||||
-- Node is walkable, we have to find a place somewhere outside of that node
|
-- Node is walkable, we have to find a place somewhere outside of that node
|
||||||
|
@ -261,7 +261,7 @@ local pearl_on_step = function(self, dtime)
|
||||||
|
|
||||||
local oldpos = player:get_pos()
|
local oldpos = player:get_pos()
|
||||||
-- Teleport and hurt player
|
-- Teleport and hurt player
|
||||||
player:setpos(telepos)
|
player:set_pos(telepos)
|
||||||
player:set_hp(player:get_hp() - 5)
|
player:set_hp(player:get_hp() - 5)
|
||||||
|
|
||||||
-- 5% chance to spawn endermite at the player's origin
|
-- 5% chance to spawn endermite at the player's origin
|
||||||
|
|
|
@ -10,7 +10,7 @@ end
|
||||||
local function activate_if_tnt(nname, np, tnt_np, tntr)
|
local function activate_if_tnt(nname, np, tnt_np, tntr)
|
||||||
if nname == "mcl_tnt:tnt" then
|
if nname == "mcl_tnt:tnt" then
|
||||||
local e = spawn_tnt(np, nname)
|
local e = spawn_tnt(np, nname)
|
||||||
e:setvelocity({x=(np.x - tnt_np.x)*5+(tntr / 4), y=(np.y - tnt_np.y)*5+(tntr / 3), z=(np.z - tnt_np.z)*5+(tntr / 4)})
|
e:set_velocity({x=(np.x - tnt_np.x)*5+(tntr / 4), y=(np.y - tnt_np.y)*5+(tntr / 3), z=(np.z - tnt_np.z)*5+(tntr / 4)})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -18,13 +18,13 @@ local function do_tnt_physics(tnt_np,tntr)
|
||||||
local objs = minetest.get_objects_inside_radius(tnt_np, tntr)
|
local objs = minetest.get_objects_inside_radius(tnt_np, tntr)
|
||||||
for k, obj in pairs(objs) do
|
for k, obj in pairs(objs) do
|
||||||
local ent = obj:get_luaentity()
|
local ent = obj:get_luaentity()
|
||||||
local v = obj:getvelocity()
|
local v = obj:get_velocity()
|
||||||
local p = obj:get_pos()
|
local p = obj:get_pos()
|
||||||
if ent and ent.name == "mcl_tnt:tnt" then
|
if ent and ent.name == "mcl_tnt:tnt" then
|
||||||
obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 2) + v.x, y=(p.y - tnt_np.y) + tntr + v.y, z=(p.z - tnt_np.z) + (tntr / 2) + v.z})
|
obj:set_velocity({x=(p.x - tnt_np.x) + (tntr / 2) + v.x, y=(p.y - tnt_np.y) + tntr + v.y, z=(p.z - tnt_np.z) + (tntr / 2) + v.z})
|
||||||
else
|
else
|
||||||
if v ~= nil then
|
if v ~= nil then
|
||||||
obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z})
|
obj:set_velocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z})
|
||||||
else
|
else
|
||||||
local dist = math.max(1, vector.distance(tnt_np, p))
|
local dist = math.max(1, vector.distance(tnt_np, p))
|
||||||
local damage = (4 / dist) * tntr
|
local damage = (4 / dist) * tntr
|
||||||
|
@ -100,9 +100,9 @@ function TNT:on_activate(staticdata)
|
||||||
local phi = math.random(0, 65535) / 65535 * 2*math.pi
|
local phi = math.random(0, 65535) / 65535 * 2*math.pi
|
||||||
local hdir_x = math.cos(phi) * 0.02
|
local hdir_x = math.cos(phi) * 0.02
|
||||||
local hdir_z = math.sin(phi) * 0.02
|
local hdir_z = math.sin(phi) * 0.02
|
||||||
self.object:setvelocity({x=hdir_x, y=2, z=hdir_z})
|
self.object:set_velocity({x=hdir_x, y=2, z=hdir_z})
|
||||||
self.object:setacceleration({x=0, y=-10, z=0})
|
self.object:set_acceleration({x=0, y=-10, z=0})
|
||||||
self.object:settexturemod("^mcl_tnt_blink.png")
|
self.object:set_texture_mod("^mcl_tnt_blink.png")
|
||||||
end
|
end
|
||||||
|
|
||||||
local function add_effects(pos, radius, drops)
|
local function add_effects(pos, radius, drops)
|
||||||
|
@ -170,9 +170,9 @@ function TNT:on_step(dtime)
|
||||||
if self.blinktimer > 0.25 then
|
if self.blinktimer > 0.25 then
|
||||||
self.blinktimer = self.blinktimer - 0.25
|
self.blinktimer = self.blinktimer - 0.25
|
||||||
if self.blinkstatus then
|
if self.blinkstatus then
|
||||||
self.object:settexturemod("")
|
self.object:set_texture_mod("")
|
||||||
else
|
else
|
||||||
self.object:settexturemod("^mcl_tnt_blink.png")
|
self.object:set_texture_mod("^mcl_tnt_blink.png")
|
||||||
end
|
end
|
||||||
self.blinkstatus = not self.blinkstatus
|
self.blinkstatus = not self.blinkstatus
|
||||||
end
|
end
|
||||||
|
|
|
@ -433,7 +433,7 @@ if ARMOR_DROP == true or ARMOR_DESTROY == true then
|
||||||
armor.drop_armor = function(pos, stack)
|
armor.drop_armor = function(pos, stack)
|
||||||
local obj = minetest.add_item(pos, stack)
|
local obj = minetest.add_item(pos, stack)
|
||||||
if obj then
|
if obj then
|
||||||
obj:setvelocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)})
|
obj:set_velocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.register_on_dieplayer(function(player)
|
minetest.register_on_dieplayer(function(player)
|
||||||
|
|
|
@ -63,7 +63,7 @@ local function update_entity(pos)
|
||||||
yaw = math.pi / 2
|
yaw = math.pi / 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object:setyaw(yaw)
|
object:set_yaw(yaw)
|
||||||
object:set_properties({textures={texture}})
|
object:set_properties({textures={texture}})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1022,7 +1022,7 @@ local function generate_clay(minp, maxp, seed, voxelmanip_data, voxelmanip_area,
|
||||||
local surfacenode = voxelmanip_data[surface_pos]
|
local surfacenode = voxelmanip_data[surface_pos]
|
||||||
|
|
||||||
local genrnd = math.random(1, 20)
|
local genrnd = math.random(1, 20)
|
||||||
if genrnd == 1 and perlin_clay:get3d({x=cx,y=y,z=cz}) > 0 and waternode == c_water and
|
if genrnd == 1 and perlin_clay:get_3d({x=cx,y=y,z=cz}) > 0 and waternode == c_water and
|
||||||
(surfacenode == c_dirt or minetest.get_item_group(minetest.get_name_from_content_id(surfacenode), "sand") == 1) then
|
(surfacenode == c_dirt or minetest.get_item_group(minetest.get_name_from_content_id(surfacenode), "sand") == 1) then
|
||||||
local diamondsize = math.random(1, 3)
|
local diamondsize = math.random(1, 3)
|
||||||
for x1 = -diamondsize, diamondsize do
|
for x1 = -diamondsize, diamondsize do
|
||||||
|
@ -1062,7 +1062,7 @@ local function generate_structures(minp, maxp, seed, biomemap)
|
||||||
local x1 = minp.x + math.floor((divx+1)*divlen)
|
local x1 = minp.x + math.floor((divx+1)*divlen)
|
||||||
local z1 = minp.z + math.floor((divz+1)*divlen)
|
local z1 = minp.z + math.floor((divz+1)*divlen)
|
||||||
-- Determine amount from perlin noise
|
-- Determine amount from perlin noise
|
||||||
local amount = math.floor(perlin_structures:get2d({x=x0, y=z0}) * 9)
|
local amount = math.floor(perlin_structures:get_2d({x=x0, y=z0}) * 9)
|
||||||
-- Find random positions based on this random
|
-- Find random positions based on this random
|
||||||
local pr = PseudoRandom(seed+1)
|
local pr = PseudoRandom(seed+1)
|
||||||
for i=0, amount do
|
for i=0, amount do
|
||||||
|
@ -1445,12 +1445,12 @@ local function generate_tree_decorations(minp, maxp, seed, data, param2_data, ar
|
||||||
local pos = vector.add(pos, dirs[d])
|
local pos = vector.add(pos, dirs[d])
|
||||||
local p_pos = area:index(pos.x, pos.y, pos.z)
|
local p_pos = area:index(pos.x, pos.y, pos.z)
|
||||||
|
|
||||||
local vine_threshold = math.max(0.33333, perlin_vines_density:get2d(pos))
|
local vine_threshold = math.max(0.33333, perlin_vines_density:get_2d(pos))
|
||||||
if dense_vegetation then
|
if dense_vegetation then
|
||||||
vine_threshold = vine_threshold * (2/3)
|
vine_threshold = vine_threshold * (2/3)
|
||||||
end
|
end
|
||||||
|
|
||||||
if perlin_vines:get2d(pos) > -1.0 and perlin_vines_fine:get3d(pos) > vine_threshold and data[p_pos] == c_air then
|
if perlin_vines:get_2d(pos) > -1.0 and perlin_vines_fine:get_3d(pos) > vine_threshold and data[p_pos] == c_air then
|
||||||
|
|
||||||
local rdir = {}
|
local rdir = {}
|
||||||
rdir.x = -dirs[d].x
|
rdir.x = -dirs[d].x
|
||||||
|
@ -1462,13 +1462,13 @@ local function generate_tree_decorations(minp, maxp, seed, data, param2_data, ar
|
||||||
local grow_upwards = false
|
local grow_upwards = false
|
||||||
-- Only possible on the wood, not on the leaves
|
-- Only possible on the wood, not on the leaves
|
||||||
if i == 1 then
|
if i == 1 then
|
||||||
grow_upwards = perlin_vines_upwards:get3d(pos) > 0.8
|
grow_upwards = perlin_vines_upwards:get_3d(pos) > 0.8
|
||||||
end
|
end
|
||||||
if grow_upwards then
|
if grow_upwards then
|
||||||
-- Grow vines up 1-4 nodes, even through jungleleaves.
|
-- Grow vines up 1-4 nodes, even through jungleleaves.
|
||||||
-- This may give climbing access all the way to the top of the tree :-)
|
-- This may give climbing access all the way to the top of the tree :-)
|
||||||
-- But this will be fairly rare.
|
-- But this will be fairly rare.
|
||||||
local length = math.ceil(math.abs(perlin_vines_length:get3d(pos)) * 4)
|
local length = math.ceil(math.abs(perlin_vines_length:get_3d(pos)) * 4)
|
||||||
for l=0, length-1 do
|
for l=0, length-1 do
|
||||||
local t_pos = area:index(treepos.x, treepos.y, treepos.z)
|
local t_pos = area:index(treepos.x, treepos.y, treepos.z)
|
||||||
|
|
||||||
|
@ -1486,7 +1486,7 @@ local function generate_tree_decorations(minp, maxp, seed, data, param2_data, ar
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- Grow vines down, length between 1 and maxvinelength
|
-- Grow vines down, length between 1 and maxvinelength
|
||||||
local length = math.ceil(math.abs(perlin_vines_length:get3d(pos)) * maxvinelength)
|
local length = math.ceil(math.abs(perlin_vines_length:get_3d(pos)) * maxvinelength)
|
||||||
for l=0, length-1 do
|
for l=0, length-1 do
|
||||||
if data[p_pos] == c_air then
|
if data[p_pos] == c_air then
|
||||||
data[p_pos] = c_vine
|
data[p_pos] = c_vine
|
||||||
|
|
|
@ -736,13 +736,13 @@ local function create_corridor_section(waypoint, axis, sign, up_or_down, up_or_d
|
||||||
|
|
||||||
-- Mob spawner (at center)
|
-- Mob spawner (at center)
|
||||||
if place_mob_spawners and tsm_railcorridors.nodes.spawner and not no_spawner and
|
if place_mob_spawners and tsm_railcorridors.nodes.spawner and not no_spawner and
|
||||||
webperlin_major:get3d(p) > 0.3 and webperlin_minor:get3d(p) > 0.5 then
|
webperlin_major:get_3d(p) > 0.3 and webperlin_minor:get_3d(p) > 0.5 then
|
||||||
-- Place spawner (if activated in gameconfig),
|
-- Place spawner (if activated in gameconfig),
|
||||||
-- enclose in cobwebs and setup the spawner node.
|
-- enclose in cobwebs and setup the spawner node.
|
||||||
local spawner_placed = SetNodeIfCanBuild(p, {name=tsm_railcorridors.nodes.spawner})
|
local spawner_placed = SetNodeIfCanBuild(p, {name=tsm_railcorridors.nodes.spawner})
|
||||||
if spawner_placed then
|
if spawner_placed then
|
||||||
local size = 1
|
local size = 1
|
||||||
if webperlin_major:get3d(p) > 0.5 then
|
if webperlin_major:get_3d(p) > 0.5 then
|
||||||
size = 2
|
size = 2
|
||||||
end
|
end
|
||||||
if place_cobwebs then
|
if place_cobwebs then
|
||||||
|
@ -765,7 +765,7 @@ local function create_corridor_section(waypoint, axis, sign, up_or_down, up_or_d
|
||||||
if pr:next(1,5) == 1 then
|
if pr:next(1,5) == 1 then
|
||||||
local h = pr:next(0, 2) -- 3 possible cobweb heights
|
local h = pr:next(0, 2) -- 3 possible cobweb heights
|
||||||
local cpos = {x=basepos.x+vek.x, y=basepos.y+h, z=basepos.z+vek.z}
|
local cpos = {x=basepos.x+vek.x, y=basepos.y+h, z=basepos.z+vek.z}
|
||||||
if webperlin_major:get3d(cpos) > 0.05 and webperlin_minor:get3d(cpos) > 0.1 then
|
if webperlin_major:get_3d(cpos) > 0.05 and webperlin_minor:get_3d(cpos) > 0.1 then
|
||||||
if h == 0 then
|
if h == 0 then
|
||||||
-- No check neccessary at height offset 0 since the cobweb is on the floor
|
-- No check neccessary at height offset 0 since the cobweb is on the floor
|
||||||
return TryPlaceCobweb(cpos)
|
return TryPlaceCobweb(cpos)
|
||||||
|
|
Reference in New Issue