Rename itemframes mod to mcl_itemframes
This commit is contained in:
parent
b0fa20df75
commit
d8ff91e089
7 changed files with 17 additions and 15 deletions
6
mods/ITEMS/mcl_itemframes/README.txt
Normal file
6
mods/ITEMS/mcl_itemframes/README.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
This mod is originally by Zeg9, but heavily modified for MineClone 2.
|
||||
|
||||
Model created by 22i, licensed under the
|
||||
GNU GPLv3 <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||
|
||||
Source: <https://github.com/22i/amc>
|
3
mods/ITEMS/mcl_itemframes/depends.txt
Normal file
3
mods/ITEMS/mcl_itemframes/depends.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
mcl_core
|
||||
mcl_sounds
|
||||
screwdriver?
|
146
mods/ITEMS/mcl_itemframes/init.lua
Normal file
146
mods/ITEMS/mcl_itemframes/init.lua
Normal file
|
@ -0,0 +1,146 @@
|
|||
local tmp = {}
|
||||
|
||||
minetest.register_entity("mcl_itemframes:item",{
|
||||
hp_max = 1,
|
||||
visual="wielditem",
|
||||
visual_size={x=0.3,y=0.3},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
physical=false,
|
||||
textures={"air"},
|
||||
on_activate = function(self, staticdata)
|
||||
if tmp.nodename ~= nil and tmp.texture ~= nil then
|
||||
self.nodename = tmp.nodename
|
||||
tmp.nodename = nil
|
||||
self.texture = tmp.texture
|
||||
tmp.texture = nil
|
||||
else
|
||||
if staticdata ~= nil and staticdata ~= "" then
|
||||
local data = staticdata:split(';')
|
||||
if data and data[1] and data[2] then
|
||||
self.nodename = data[1]
|
||||
self.texture = data[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
if self.texture ~= nil then
|
||||
self.object:set_properties({textures={self.texture}})
|
||||
end
|
||||
end,
|
||||
get_staticdata = function(self)
|
||||
if self.nodename ~= nil and self.texture ~= nil then
|
||||
return self.nodename .. ';' .. self.texture
|
||||
end
|
||||
return ""
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
local facedir = {}
|
||||
facedir[0] = {x=0,y=0,z=1}
|
||||
facedir[1] = {x=1,y=0,z=0}
|
||||
facedir[2] = {x=0,y=0,z=-1}
|
||||
facedir[3] = {x=-1,y=0,z=0}
|
||||
|
||||
local remove_item = function(pos, node)
|
||||
local objs = nil
|
||||
if node.name == "mcl_itemframes:item_frame" then
|
||||
objs = minetest.get_objects_inside_radius(pos, .5)
|
||||
end
|
||||
if objs then
|
||||
for _, obj in ipairs(objs) do
|
||||
if obj and obj:get_luaentity() and obj:get_luaentity().name == "mcl_itemframes:item" then
|
||||
obj:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local update_item = function(pos, node)
|
||||
remove_item(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "mcl_itemframes:item_frame" then
|
||||
local posad = facedir[node.param2]
|
||||
pos.x = pos.x + posad.x*6.5/16
|
||||
pos.y = pos.y + posad.y*6.5/16
|
||||
pos.z = pos.z + posad.z*6.5/16
|
||||
end
|
||||
tmp.nodename = node.name
|
||||
tmp.texture = ItemStack(meta:get_string("item")):get_name()
|
||||
local e = minetest.add_entity(pos,"mcl_itemframes:item")
|
||||
if node.name == "mcl_itemframes:item_frame" then
|
||||
local yaw = math.pi*2 - node.param2 * math.pi/2
|
||||
e:setyaw(yaw)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local drop_item = function(pos, node, meta)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "mcl_itemframes:item_frame" and not minetest.settings:get_bool("creative_mode") then
|
||||
local item = ItemStack(minetest.deserialize(meta:get_string("itemdata")))
|
||||
minetest.add_item(pos, item)
|
||||
end
|
||||
meta:set_string("item","")
|
||||
meta:set_string("itemdata","")
|
||||
end
|
||||
remove_item(pos, node)
|
||||
end
|
||||
|
||||
local on_rotate
|
||||
if minetest.get_modpath("screwdriver") then
|
||||
on_rotate = screwdriver.disallow
|
||||
end
|
||||
|
||||
minetest.register_node("mcl_itemframes:item_frame",{
|
||||
description = "Item Frame",
|
||||
_doc_items_longdesc = "Item frames are decorative blocks in which items can be placed.",
|
||||
_doc_items_usagehelp = "Hold any item in your hand and right-click the item frame to place the item into the frame. Rightclick the item frame again to retrieve the item.",
|
||||
drawtype = "mesh",
|
||||
is_ground_content = false,
|
||||
mesh = "mcl_itemframes_itemframe1facedir.obj",
|
||||
selection_box = { type = "fixed", fixed = {-6/16, -6/16, 7/16, 6/16, 6/16, 0.5} },
|
||||
collision_box = { type = "fixed", fixed = {-6/16, -6/16, 7/16, 6/16, 6/16, 0.5} },
|
||||
tiles = {"mcl_itemframes_itemframe_background.png", "mcl_itemframes_itemframe_background.png", "mcl_itemframes_itemframe_background.png", "mcl_itemframes_itemframe_background.png", "default_wood.png", "mcl_itemframes_itemframe_background.png"},
|
||||
inventory_image = "mcl_itemframes_item_frame.png",
|
||||
wield_image = "mcl_itemframes_item_frame.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
groups = { dig_immediate=3,deco_block=1,dig_by_piston=1},
|
||||
sounds = mcl_sounds.node_sound_defaults(),
|
||||
on_rightclick = function(pos, node, clicker, itemstack)
|
||||
if not itemstack then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
drop_item(pos, node, meta)
|
||||
-- item holds the itemstring
|
||||
meta:set_string("item", itemstack:get_name())
|
||||
local put_itemstack = ItemStack(itemstack)
|
||||
put_itemstack:set_count(1)
|
||||
local itemdata = minetest.serialize(put_itemstack:to_table())
|
||||
-- itemdata holds the serialized itemstack in table form
|
||||
meta:set_string("itemdata", itemdata)
|
||||
update_item(pos,node)
|
||||
if not minetest.settings:get_bool("creative_mode") then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
drop_item(pos, node, meta)
|
||||
end,
|
||||
on_rotate = on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_itemframes:item_frame',
|
||||
recipe = {
|
||||
{'mcl_core:stick', 'mcl_core:stick', 'mcl_core:stick'},
|
||||
{'mcl_core:stick', 'mcl_mobitems:leather', 'mcl_core:stick'},
|
||||
{'mcl_core:stick', 'mcl_core:stick', 'mcl_core:stick'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_alias("itemframes:frame", "mcl_itemframes:item_frame")
|
|
@ -0,0 +1,156 @@
|
|||
# Blender v2.76 (sub 0) OBJ File: 'itemframe1facedir.blend'
|
||||
# www.blender.org
|
||||
mtllib itemframe1facedir.mtl
|
||||
o right.frame_Cube.005
|
||||
v -0.313413 -0.313413 0.435326
|
||||
v -0.313413 0.313413 0.435326
|
||||
v -0.313413 -0.313413 0.498008
|
||||
v -0.313413 0.313413 0.498008
|
||||
v -0.376095 -0.313413 0.435326
|
||||
v -0.376095 0.313413 0.435326
|
||||
v -0.376095 -0.313413 0.498008
|
||||
v -0.376095 0.313413 0.498008
|
||||
vt 0.875000 0.812500
|
||||
vt 0.812500 0.812500
|
||||
vt 0.812500 0.187500
|
||||
vt 0.875000 0.187500
|
||||
vt 1.000000 0.812500
|
||||
vt 0.937500 0.812500
|
||||
vt 0.937500 0.187500
|
||||
vt 1.000000 0.187500
|
||||
vt -0.000000 0.937500
|
||||
vt 0.062500 0.937500
|
||||
vt 0.062500 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vn 1.000000 0.000000 -0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 2/1/1 4/2/1 3/3/1 1/4/1
|
||||
f 4/1/2 8/2/2 7/3/2 3/4/2
|
||||
f 8/5/3 6/6/3 5/7/3 7/8/3
|
||||
f 6/1/4 2/2/4 1/3/4 5/4/4
|
||||
f 1/9/5 3/10/5 7/11/5 5/12/5
|
||||
f 6/9/6 8/10/6 4/11/6 2/12/6
|
||||
o left.frame_Cube.004
|
||||
v 0.376095 -0.313413 0.435326
|
||||
v 0.376095 0.313413 0.435326
|
||||
v 0.376095 -0.313413 0.498008
|
||||
v 0.376095 0.313413 0.498008
|
||||
v 0.313413 -0.313413 0.435326
|
||||
v 0.313413 0.313413 0.435326
|
||||
v 0.313413 -0.313413 0.498008
|
||||
v 0.313413 0.313413 0.498008
|
||||
vt 0.875000 0.812500
|
||||
vt 0.812500 0.812500
|
||||
vt 0.812500 0.187500
|
||||
vt 0.875000 0.187500
|
||||
vt 1.000000 0.812500
|
||||
vt 0.937500 0.812500
|
||||
vt 0.937500 0.187500
|
||||
vt 1.000000 0.187500
|
||||
vt -0.000000 0.937500
|
||||
vt 0.062500 0.937500
|
||||
vt 0.062500 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vn 1.000000 0.000000 -0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 10/13/7 12/14/7 11/15/7 9/16/7
|
||||
f 12/13/8 16/14/8 15/15/8 11/16/8
|
||||
f 16/17/9 14/18/9 13/19/9 15/20/9
|
||||
f 14/13/10 10/14/10 9/15/10 13/16/10
|
||||
f 9/21/11 11/22/11 15/23/11 13/24/11
|
||||
f 14/21/12 16/22/12 12/23/12 10/24/12
|
||||
o lower.frame_Cube.003
|
||||
v 0.376095 -0.376095 0.435326
|
||||
v 0.376095 -0.313413 0.435326
|
||||
v 0.376095 -0.376095 0.498008
|
||||
v 0.376095 -0.313413 0.498008
|
||||
v -0.376095 -0.376095 0.435326
|
||||
v -0.376095 -0.313413 0.435326
|
||||
v -0.376095 -0.376095 0.498008
|
||||
v -0.376095 -0.313413 0.498008
|
||||
vt 0.187500 0.187500
|
||||
vt 0.125000 0.187500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.187500 0.125000
|
||||
vt 0.875000 0.187500
|
||||
vt 0.875000 0.125000
|
||||
vt 0.812500 0.187500
|
||||
vt 0.812500 0.125000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.875000 1.000000
|
||||
vt 0.125000 1.000000
|
||||
vt 0.125000 0.937500
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 18/25/13 20/26/13 19/27/13 17/28/13
|
||||
f 20/29/14 24/26/14 23/27/14 19/30/14
|
||||
f 24/29/15 22/31/15 21/32/15 23/30/15
|
||||
f 22/29/16 18/26/16 17/27/16 21/30/16
|
||||
f 17/33/17 19/34/17 23/35/17 21/36/17
|
||||
f 22/30/18 24/29/18 20/26/18 18/27/18
|
||||
o upper.frame_Cube.002
|
||||
v 0.376095 0.313413 0.435326
|
||||
v 0.376095 0.376095 0.435326
|
||||
v 0.376095 0.313413 0.498008
|
||||
v 0.376095 0.376095 0.498008
|
||||
v -0.376095 0.313413 0.435326
|
||||
v -0.376095 0.376095 0.435326
|
||||
v -0.376095 0.313413 0.498008
|
||||
v -0.376095 0.376095 0.498008
|
||||
vt 0.187500 0.875000
|
||||
vt 0.125000 0.875000
|
||||
vt 0.125000 0.812500
|
||||
vt 0.187500 0.812500
|
||||
vt 0.875000 0.875000
|
||||
vt 0.875000 0.812500
|
||||
vt 0.812500 0.875000
|
||||
vt 0.812500 0.812500
|
||||
vt 0.875000 0.937500
|
||||
vt 0.875000 1.000000
|
||||
vt 0.125000 1.000000
|
||||
vt 0.125000 0.937500
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 26/37/19 28/38/19 27/39/19 25/40/19
|
||||
f 28/41/20 32/38/20 31/39/20 27/42/20
|
||||
f 32/41/21 30/43/21 29/44/21 31/42/21
|
||||
f 30/41/22 26/38/22 25/39/22 29/42/22
|
||||
f 25/45/23 27/46/23 31/47/23 29/48/23
|
||||
f 30/48/24 32/38/24 28/41/24 26/45/24
|
||||
o background_Plane
|
||||
v 0.313413 -0.313413 0.466667
|
||||
v -0.313413 -0.313413 0.466667
|
||||
v 0.313413 0.313413 0.466667
|
||||
v -0.313413 0.313413 0.466667
|
||||
vt 0.187500 0.187500
|
||||
vt 0.812500 0.187500
|
||||
vt 0.812500 0.812500
|
||||
vt 0.187500 0.812500
|
||||
vn -0.000000 0.000000 -1.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 33/49/25 34/50/25 36/51/25 35/52/25
|
BIN
mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png
Normal file
BIN
mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 232 B |
Binary file not shown.
After Width: | Height: | Size: 225 B |
Loading…
Add table
Add a link
Reference in a new issue