2024-05-04 11:37:30 +02:00
|
|
|
local modname = minetest.get_current_modname()
|
|
|
|
local modpath = minetest.get_modpath(modname)
|
2024-05-05 20:25:19 +02:00
|
|
|
vl_held_item = {}
|
|
|
|
local mod = vl_held_item
|
2024-05-04 11:37:30 +02:00
|
|
|
|
2024-05-05 20:25:19 +02:00
|
|
|
local held_item_entity = {
|
2024-05-04 11:37:30 +02:00
|
|
|
initial_properties = {
|
|
|
|
hp_max = 1,
|
|
|
|
physical = true,
|
|
|
|
pointable = false,
|
|
|
|
collide_with_objects = true,
|
2024-05-05 20:25:19 +02:00
|
|
|
static_save = false, -- TODO remove/change later when needed to persist
|
|
|
|
-- WARNING persisting held items not recommended, mob can recreate it after_activate
|
2024-05-04 11:37:30 +02:00
|
|
|
collision_box = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
|
|
|
},
|
|
|
|
visual = "wielditem",
|
|
|
|
textures = { "mcl_core:dirt_with_grass" },
|
|
|
|
}
|
2024-05-05 20:25:19 +02:00
|
|
|
function held_item_entity:on_activate(staticdata, dtime_unloaded)
|
2024-05-04 11:37:30 +02:00
|
|
|
local staticdata = minetest.deserialize(staticdata)
|
|
|
|
self._staticdata = staticdata
|
|
|
|
|
|
|
|
local props = {
|
|
|
|
visual = "wielditem",
|
2024-05-05 20:25:19 +02:00
|
|
|
textures = { staticdata.itemname },
|
2024-05-04 11:37:30 +02:00
|
|
|
}
|
|
|
|
self.object:set_properties(props)
|
|
|
|
end
|
2024-05-05 20:25:19 +02:00
|
|
|
function held_item_entity:get_staticdata()
|
2024-05-04 11:37:30 +02:00
|
|
|
return minetest.serialize(self._staticdata)
|
|
|
|
end
|
2024-05-05 20:25:19 +02:00
|
|
|
minetest.register_entity("vl_held_item:held_item_entity", held_item_entity)
|
2024-05-04 11:37:30 +02:00
|
|
|
|
2024-05-05 20:25:19 +02:00
|
|
|
function mod.create_item_entity(pos, itemname)
|
2024-05-04 11:37:30 +02:00
|
|
|
local staticdata = {
|
2024-05-05 20:25:19 +02:00
|
|
|
itemname = itemname
|
2024-05-04 11:37:30 +02:00
|
|
|
}
|
2024-05-05 20:25:19 +02:00
|
|
|
return minetest.add_entity(pos, "vl_held_item:held_item_entity", minetest.serialize(staticdata))
|
2024-05-04 11:37:30 +02:00
|
|
|
end
|
|
|
|
|