use mesh node for plasma screen

also, add an "off" variant, accessible by punching.
This commit is contained in:
Vanessa Ezekowitz 2015-04-15 21:51:03 -04:00
parent dcde7c9d6a
commit 3c430b1791
16 changed files with 259 additions and 403 deletions

View File

@ -3,5 +3,14 @@ PLASMASCREEN
Mod adding a plasma screen TV for Minetest. Mod adding a plasma screen TV for Minetest.
This mod adds a 2x3 plasma screen TV consisting of 6 nodeboxes. This mod adds a 2x3 plasma screen TV using a single large mesh node.
Code and textures are WTFPL.
Point at the bottom center position where you want the TV to go, when placing.
Note: If you're at a really steep view angle when trying to place a screen,
the mod may occasionally refuse to place it (or it just appears for a moment).
Just move over a bit, so that your target position is more directly in front
of you.
Code, textures and model are WTFPL.

View File

@ -16,177 +16,96 @@ minetest.register_node("plasmascreen:stand", {
{-0.3750,-0.1875,-0.3750,0.3750,0.3125,-0.2500}, --NodeBox 4 {-0.3750,-0.1875,-0.3750,0.3750,0.3125,-0.2500}, --NodeBox 4
} }
}, },
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, 0.0000}, {-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, 0.0000},
} }
}, },
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
}) })
minetest.register_node("plasmascreen:screen1", { minetest.register_alias("plasmascreen:screen1", "air")
description = "Plasma Screen 1", minetest.register_alias("plasmascreen:screen2", "air")
tiles = { minetest.register_alias("plasmascreen:screen3", "air")
"plasmascreen_back.png", minetest.register_alias("plasmascreen:screen4", "air")
"plasmascreen_screen.png", minetest.register_alias("plasmascreen:screen5", "plasmascreen:tv")
"plasmascreen_screen.png", minetest.register_alias("plasmascreen:screen6", "air")
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen1.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=44
}
}
}, local fdir_to_left = {
paramtype = "light", { -1, 0 },
paramtype2 = "facedir", { 0, 1 },
drop = "", { 1, 0 },
light_source = 10, { 0, -1 },
drawtype = "nodebox", }
node_box = {
type = "fixed",
fixed = {
{-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000},
{-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375},
{-0.5000, -0.5000, 0.5000, -0.3125, 0.5000, 0.3750},
}
},
selection_box = {
type = "fixed",
fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500}
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
})
minetest.register_node("plasmascreen:screen2", {
description = "Plasma Screen 2",
tiles = {
"plasmascreen_back.png",
"plasmascreen_screen.png",
"plasmascreen_screen.png",
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen2.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=44
}
}
}, local fdir_to_right = {
paramtype = "light", { 1, 0 },
paramtype2 = "facedir", { 0, -1 },
drop = "", { -1, 0 },
light_source = 10, { 0, 1 },
drawtype = "nodebox", }
node_box = {
type = "fixed",
fixed = {
{-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000},
{-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375},
}
},
selection_box = {
type = "fixed",
fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500}
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
})
minetest.register_node("plasmascreen:screen3", {
description = "Plasma Screen 3",
tiles = {
"plasmascreen_back.png",
"plasmascreen_screen.png",
"plasmascreen_screen.png",
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen3.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=44
}
}
}, local tv_cbox = {
paramtype = "light", type = "fixed",
paramtype2 = "facedir", fixed = {-1.5050, -0.3125, 0.3700, 1.5050, 1.5050, 0.5050}
drop = "", }
light_source = 10,
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5000, -0.5000, 0.4375, 0.5000, 0.5000, 0.5000},
{-0.5000, 0.5000, 0.3750, 0.5000, 0.3125, 0.4375},
{0.3125, -0.5000, 0.5000, 0.5000, 0.5000, 0.3750},
}
},
selection_box = {
type = "fixed",
fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500}
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
})
minetest.register_node("plasmascreen:screen4", {
description = "Plasma Screen 4",
tiles = {
"plasmascreen_back.png",
"plasmascreen_screen.png",
"plasmascreen_screen.png",
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen4.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=44
}
}
}, local function checkwall(pos)
paramtype = "light",
paramtype2 = "facedir",
drop = "",
light_source = 10,
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000},
{-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375},
{-0.5000, -0.3125, 0.5000, -0.3125, 0.5000, 0.3750},
}
},
selection_box = {
type = "fixed",
fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500}
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
})
minetest.register_node("plasmascreen:screen5", { local fdir = minetest.get_node(pos).param2
local dxl = fdir_to_left[fdir + 1][1] -- dxl = "[D]elta [X] [L]eft"
local dzl = fdir_to_left[fdir + 1][2] -- Z left
local dxr = fdir_to_right[fdir + 1][1] -- X right
local dzr = fdir_to_right[fdir + 1][2] -- Z right
local node1 = minetest.get_node({x=pos.x+dxl, y=pos.y, z=pos.z+dzl})
if not node1 or not minetest.registered_nodes[node1.name]
or not minetest.registered_nodes[node1.name].buildable_to then
return false
end
local node2 = minetest.get_node({x=pos.x+dxr, y=pos.y, z=pos.z+dzr})
if not node2 or not minetest.registered_nodes[node2.name]
or not minetest.registered_nodes[node2.name].buildable_to then
return false
end
local node3 = minetest.get_node({x=pos.x+dxl, y=pos.y+1, z=pos.z+dzl})
if not node3 or not minetest.registered_nodes[node3.name]
or not minetest.registered_nodes[node3.name].buildable_to then
return false
end
local node4 = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
if not node4 or not minetest.registered_nodes[node4.name]
or not minetest.registered_nodes[node4.name].buildable_to then
return false
end
local node5 = minetest.get_node({x=pos.x+dxr, y=pos.y+1, z=pos.z+dzr})
if not node5 or not minetest.registered_nodes[node5.name]
or not minetest.registered_nodes[node5.name].buildable_to then
return false
end
return true
end
minetest.register_node("plasmascreen:tv", {
description = "Plasma TV", description = "Plasma TV",
drawtype = "mesh",
mesh = "plasmascreen_tv.obj",
tiles = { tiles = {
"plasmascreen_back.png", "plasmascreen_case.png",
"plasmascreen_screen.png", { name="plasmascreen_video.png",
"plasmascreen_screen.png",
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen5.png",
animation={ animation={
type="vertical_frames", type="vertical_frames",
aspect_w=16, aspect_w = 42,
aspect_h=16, aspect_h = 23,
length=44 length = 44
} }
} }
@ -195,260 +114,53 @@ minetest.register_node("plasmascreen:screen5", {
wield_image = "plasmascreen_tv_inv.png", wield_image = "plasmascreen_tv_inv.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 10, light_source = 10,
drawtype = "nodebox", selection_box = tv_cbox,
node_box = { collision_box = tv_cbox,
type = "fixed", groups = {snappy=1, choppy=2, oddly_breakable_by_hand=2},
fixed = { after_place_node = function(pos, placer, itemstack)
{-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000}, if not checkwall(pos) then
{-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375}, minetest.set_node(pos, {name = "air"})
} return true -- "API: If return true no item is taken from itemstack"
},
selection_box = {
type = "fixed",
fixed = {-1.5050, -0.3125, 0.3700, 1.5050, 1.5050, 0.5050}
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
after_place_node = function(pos,placer,itemstack)
local param2 = minetest.get_node(pos).param2
local p = {x=pos.x, y=pos.y, z=pos.z}
if param2 == 0 then
pos.x = pos.x-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x+2
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.y = pos.y+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
elseif param2 == 1 then
pos.z = pos.z+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z-2
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.y = pos.y+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
elseif param2 == 2 then
pos.x = pos.x+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x-2
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.y = pos.y+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.x = pos.x+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
elseif param2 == 3 then
pos.z = pos.z-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen4", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z+2
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen6", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.y = pos.y+1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen3", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen2", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
pos.z = pos.z-1
if minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
minetest.set_node(pos,{name="plasmascreen:screen1", param2=minetest.dir_to_facedir(placer:get_look_dir())})
else
minetest.remove_node(p)
return true
end
end end
end, end,
on_punch = function(pos, node, puncher, pointed_thing)
after_dig_node = function(pos, oldnode, oldmetadata, digger) minetest.set_node(pos, {name = "plasmascreen:tv_off", param2 = node.fdir})
if oldnode.param2 == 0 then
pos.x = pos.x-1
minetest.remove_node(pos)
pos.x = pos.x+2
minetest.remove_node(pos)
pos.y = pos.y+1
minetest.remove_node(pos)
pos.x = pos.x-1
minetest.remove_node(pos)
pos.x = pos.x-1
minetest.remove_node(pos)
elseif oldnode.param2 == 1 then
pos.z = pos.z+1
minetest.remove_node(pos)
pos.z = pos.z-2
minetest.remove_node(pos)
pos.y = pos.y+1
minetest.remove_node(pos)
pos.z = pos.z+1
minetest.remove_node(pos)
pos.z = pos.z+1
minetest.remove_node(pos)
elseif oldnode.param2 == 2 then
pos.x = pos.x+1
minetest.remove_node(pos)
pos.x = pos.x-2
minetest.remove_node(pos)
pos.y = pos.y+1
minetest.remove_node(pos)
pos.x = pos.x+1
minetest.remove_node(pos)
pos.x = pos.x+1
minetest.remove_node(pos)
elseif oldnode.param2 == 3 then
pos.z = pos.z-1
minetest.remove_node(pos)
pos.z = pos.z+2
minetest.remove_node(pos)
pos.y = pos.y+1
minetest.remove_node(pos)
pos.z = pos.z-1
minetest.remove_node(pos)
pos.z = pos.z-1
minetest.remove_node(pos)
end
end end
}) })
minetest.register_node("plasmascreen:screen6", { minetest.register_node("plasmascreen:tv_off", {
description = "Plasma Screen 6", description = "Plasma TV (off)",
drawtype = "mesh",
mesh = "plasmascreen_tv.obj",
tiles = { tiles = {
"plasmascreen_back.png", "plasmascreen_case_off.png",
"plasmascreen_screen.png", "plasmascreen_screen_off.png",
"plasmascreen_screen.png",
"plasmascreen_back.png",
"plasmascreen_back.png",
{ name="plasmascreen_screen6.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=44
}
}
}, },
inventory_image = "plasmascreen_tv_inv.png",
wield_image = "plasmascreen_tv_inv.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
drop = "", light_source = 10,
light_source = 10, selection_box = tv_cbox,
drawtype = "nodebox", collision_box = tv_cbox,
node_box = { groups = {snappy=1, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
type = "fixed", after_place_node = function(pos, placer, itemstack)
fixed = { if not checkwall(pos) then
{-0.5000, -0.3125, 0.4375, 0.5000, 0.5000, 0.5000}, minetest.set_node(pos, {name = "air"})
{-0.5000, -0.3125, 0.3750, 0.5000, -0.1250, 0.4375}, return true -- "API: If return true no item is taken from itemstack"
{0.3125, -0.3125, 0.5000, 0.5000, 0.5000, 0.3750}, end
} end,
}, on_punch = function(pos, node, puncher, pointed_thing)
selection_box = { minetest.set_node(pos, {name = "plasmascreen:tv", param2 = node.fdir})
type = "fixed", end,
fixed = {-0.2500, -0.2500, 0.4500, 0.2500, 0.2500, 0.4500} drop = "plasmascreen:tv"
},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
-- crafting recipes
minetest.register_craft({ minetest.register_craft({
output = "plasmascreen:screen5", output = "plasmascreen:tv",
recipe = { recipe = {
{'default:glass', 'default:coal_lump', 'default:glass'}, {'default:glass', 'default:coal_lump', 'default:glass'},
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
@ -458,7 +170,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "plasmascreen:screen5", output = "plasmascreen:tv",
recipe = {'homedecor:television', 'homedecor:television'}, recipe = {'homedecor:television', 'homedecor:television'},
}) })

View File

@ -0,0 +1,135 @@
# Blender v2.73 (sub 0) OBJ File: 'plasmascreen.blend'
# www.blender.org
o Cylinder
v -1.500000 -0.312500 0.500000
v -1.500000 -0.312500 0.375000
v 1.500000 -0.312500 0.375000
v 1.500000 -0.312500 0.500000
v -1.500000 1.500000 0.500000
v -1.500000 1.500000 0.375000
v 1.500000 1.500000 0.375000
v 1.500000 1.500000 0.500000
v -1.312500 -0.125000 0.437500
v 1.375000 1.375000 0.375000
v -1.312500 1.312500 0.437500
v 1.375000 -0.187500 0.375000
v -1.375000 1.375000 0.375000
v 1.312500 -0.125000 0.437500
v -1.375000 -0.187500 0.375000
v 1.312500 1.312500 0.437500
v 1.500000 1.375000 0.375000
v 1.500000 -0.187500 0.375000
v -1.500000 1.375000 0.375000
v -1.500000 -0.187500 0.375000
v -1.312500 -0.187500 0.375000
v -1.312500 1.375000 0.375000
v 1.312500 -0.187500 0.375000
v 1.312500 1.375000 0.375000
v -1.375000 -0.125000 0.375000
v -1.375000 1.312500 0.375000
v 1.375000 -0.125000 0.375000
v 1.375000 1.312500 0.375000
v -1.312811 -0.125310 0.437500
v -1.312811 1.312810 0.437500
v 1.312811 -0.125310 0.437500
v 1.312811 1.312810 0.437500
vt 0.953125 0.984375
vt 0.921875 0.984375
vt 0.921875 0.531250
vt 0.953125 0.531250
vt 0.906250 0.984375
vt 0.875000 0.984375
vt 0.875000 0.531250
vt 0.906250 0.531250
vt 0.812500 0.984375
vt 0.781250 0.984375
vt 0.781250 0.593750
vt 0.812500 0.593750
vt 0.015625 0.953125
vt 0.765625 0.953125
vt 0.765625 0.984375
vt 0.015625 0.984375
vt 0.015625 0.812500
vt 0.765625 0.812500
vt 0.765625 0.843750
vt 0.015625 0.843750
vt 0.765625 0.796875
vt 0.015625 0.796875
vt 0.015625 0.343750
vt 0.765625 0.343750
vt 0.828125 0.593750
vt 0.859375 0.593750
vt 0.859375 0.984375
vt 0.828125 0.984375
vt 0.015625 0.890625
vt 0.015625 0.859375
vt 0.765625 0.859375
vt 0.765625 0.890625
vt 0.015625 0.937500
vt 0.015625 0.906250
vt 0.765625 0.906250
vt 0.765625 0.937500
vt 0.031250 0.296875
vt 0.031250 0.281250
vt 0.687500 0.281250
vt 0.687500 0.296875
vt 0.687500 0.312500
vt 0.687500 0.328125
vt 0.031250 0.328125
vt 0.031250 0.312500
vt 0.375000 0.250000
vt 0.375000 0.265625
vt 0.015625 0.265625
vt 0.015625 0.250000
vt 0.703125 0.296875
vt 0.703125 0.281250
vt 0.015625 0.234375
vt 0.015625 0.218750
vt 0.375000 0.218750
vt 0.375000 0.234375
vt 0.703125 0.328125
vt 0.703125 0.312500
vt 0.015625 0.328125
vt 0.015625 0.312500
vt 0.015625 0.281250
vt 0.015625 0.296875
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 -0.000000
vt 1.000000 -0.000000
vn -1.000000 0.000000 0.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
vn 0.000000 0.000000 1.000000
vn 0.000000 0.707100 -0.707100
vn 0.000000 -0.707100 -0.707100
vn -0.707100 0.000000 -0.707100
vn 0.707100 0.000000 -0.707100
vn 0.000000 -0.707100 0.707100
g Cylinder_Cylinder_case
s off
f 5/1/1 6/2/1 2/3/1 1/4/1
f 7/5/2 8/6/2 4/7/2 3/8/2
f 10/9/3 17/10/3 18/11/3 12/12/3
f 5/13/4 8/14/4 7/15/4 6/16/4
f 2/17/5 3/18/5 4/19/5 1/20/5
f 8/21/6 5/22/6 1/23/6 4/24/6
f 15/25/3 20/26/3 19/27/3 13/28/3
f 18/29/3 3/30/3 2/31/3 20/32/3
f 7/33/3 17/34/3 19/35/3 6/36/3
f 14/37/7 23/38/7 21/39/7 9/40/7
f 11/41/8 22/42/8 24/43/8 16/44/8
f 16/45/9 28/46/9 27/47/9 14/48/9
f 25/49/10 9/40/10 15/50/10
f 15/50/7 9/40/7 21/39/7
f 9/51/10 25/52/10 26/53/10 11/54/10
f 13/55/10 11/41/10 26/56/10
f 22/42/8 11/41/8 13/55/8
f 10/57/8 16/44/8 24/43/8
f 28/58/9 16/44/9 10/57/9
f 12/59/9 14/37/9 27/60/9
f 23/38/11 12/59/11 14/37/11
g Cylinder_Cylinder_screen
f 30/61/3 32/62/3 31/63/3 29/64/3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB