initial_properties update

This commit is contained in:
tenplus1 2023-09-23 13:29:44 +01:00
parent a9c0bfda01
commit 7fe8aabb2c
2 changed files with 29 additions and 15 deletions

View File

@ -27,7 +27,7 @@ local function spears_shot(itemstack, player)
end
local drag = .3
local playerpos = player:getpos()
local playerpos = player:get_pos()
local dir = player:get_look_dir()
local obj = minetest.add_entity({
x = playerpos.x,
@ -55,13 +55,18 @@ local function spears_set_entity(kind, eq, toughness, breadth)
breadth = breadth or 1
local SPEAR_ENTITY = {
initial_properties = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x = 0.15, y = 0.1},
textures = {spearname},
lastpos = {},
collisionbox = {0,0,0,0,0,0},
},
timer = 0,
lastpos = {},
on_punch = function(self, puncher)
@ -88,7 +93,7 @@ local function spears_set_entity(kind, eq, toughness, breadth)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if not self.wear then
@ -134,7 +139,7 @@ local function spears_set_entity(kind, eq, toughness, breadth)
and obj:get_luaentity().shooter:get_player_name()
== obj:get_player_name() ) then
local speed = vector.length(self.object:getvelocity())
local speed = vector.length(self.object:get_velocity())
local damage = (speed + eq) ^ 1.12 - 20
obj:punch(self.object, 1.0, {

View File

@ -384,7 +384,10 @@ Function to register new weapons: parameters:
local function nssm_register_weapon(name, def)
minetest.register_entity("nssm:"..name, {
initial_properties = {
textures = {name..".png"},
},
on_step = function(self, dtime)
def.on_step(self, dtime)
@ -506,8 +509,6 @@ local function nssm_register_throwitem(name, descr, def)
local dir = placer:get_look_dir()
local playerpos = placer:get_pos()
posthrow = playerpos
local obj = minetest.add_entity({
x = playerpos.x + dir.x,
y = playerpos.y + 2 + dir.y,
@ -520,6 +521,8 @@ local function nssm_register_throwitem(name, descr, def)
obj:set_velocity(vec)
obj:set_acceleration(acc)
local ent = obj:get_luaentity() ; ent.posthrow = playerpos
itemstack:take_item()
return itemstack
@ -527,9 +530,13 @@ local function nssm_register_throwitem(name, descr, def)
})
minetest.register_entity("nssm:" .. name .. "_bomb_flying", {
initial_properties = {
textures = {name .. "_bomb.png"},
hp_max = 20,
collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1},
collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1}
},
on_step = function(self, dtime)
@ -898,7 +905,7 @@ minetest.register_craft({
nssm_register_throwitem("teleport", "Teleport Bomb", {
hit_node = function(self,pos,placer)
hit_node = function(self, pos, placer)
local pos1 = {x = pos.x, y = pos.y + 1, z = pos.z}
local pos2 = {x = pos.x, y = pos.y + 2, z = pos.z}
@ -907,6 +914,8 @@ nssm_register_throwitem("teleport", "Teleport Bomb", {
or not minetest.get_item_group(
minetest.get_node(pos1).name, "unbreakable") == 1 then
local posthrow = self.posthrow ; if not posthrow then return end
for _,obj in ipairs(minetest.get_objects_inside_radius(posthrow, 2)) do
if obj:is_player() then