1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2024-11-07 19:10:23 +01:00

Updated homedecor

This commit is contained in:
LeMagnesium 2015-05-15 13:18:20 +02:00
parent 405afef5a0
commit a363690ff7
852 changed files with 13519 additions and 6231 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 947 B

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,21 +1,21 @@
-- Amiga 500 lookalike -- Amiga 500 lookalike
computer.register("computer:shefriendSOO", { computer.register("computer:shefriendSOO", {
description = "SheFriendSOO"; description = "SheFriendSOO",
tiles_off = { front=true; }; tiles_off = { front=true },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 0, 0, 17, 32, 32, 12 }, -- Monitor Screen { 0, 0, 17, 32, 32, 12 }, -- Monitor Screen
{ 3, 3, 29, 26, 26, 3 }, -- Monitor Tube { 3, 3, 29, 26, 26, 3 }, -- Monitor Tube
{ 0, 0, 0, 32, 4, 17 }, -- Keyboard { 0, 0, 0, 32, 4, 17 } -- Keyboard
}); })
}); })
-- Some generic laptop -- Some generic laptop
minetest.register_node("computer:vanio", { minetest.register_node("computer:vanio", {
drawtype = "mesh", drawtype = "mesh",
mesh = "computer_laptop.obj", mesh = "computer_laptop.obj",
description = "Pony Vanio", description = "Pony Vanio",
inventory_image = "computer_laptop_inv.png",
tiles = {"computer_laptop.png"}, tiles = {"computer_laptop.png"},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
@ -53,8 +53,9 @@ minetest.register_node("computer:vanio_off", {
-- Sony PlayStation lookalike -- Sony PlayStation lookalike
computer.register("computer:slaystation", { computer.register("computer:slaystation", {
description = "Pony SlayStation"; description = "Pony SlayStation",
tiles_off = { top=true; }; inventory_image = "computer_ps1_inv.png",
tiles_off = { top=true },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 0, 0, 11, 32, 6, 21 }, -- Console { 0, 0, 11, 32, 6, 21 }, -- Console
@ -63,14 +64,15 @@ computer.register("computer:slaystation", {
{ 5, 0, 4, 5, 2, 5 }, -- Controller 1 Center { 5, 0, 4, 5, 2, 5 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip { 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip { 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 4, 5, 2, 5 }, -- Controller 2 Center { 22, 0, 4, 5, 2, 5 } -- Controller 2 Center
}); })
}); })
-- Sony PlayStation 2 lookalike -- Sony PlayStation 2 lookalike
computer.register("computer:slaystation2", { computer.register("computer:slaystation2", {
description = "Pony SlayStation 2"; description = "Pony SlayStation 2",
tiles_off = { front=true; }; inventory_image = "computer_ps2_inv.png",
tiles_off = { front=true },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 2, 2, 11, 28, 3, 19 }, -- Console (Upper part) { 2, 2, 11, 28, 3, 19 }, -- Console (Upper part)
@ -80,31 +82,33 @@ computer.register("computer:slaystation2", {
{ 5, 0, 1, 5, 2, 8 }, -- Controller 1 Center { 5, 0, 1, 5, 2, 8 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip { 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip { 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 1, 5, 2, 8 }, -- Controller 2 Center { 22, 0, 1, 5, 2, 8 } -- Controller 2 Center
}); })
}); })
-- Sinclair ZX Spectrum lookalike -- Sinclair ZX Spectrum lookalike
computer.register("computer:specter", { computer.register("computer:specter", {
description = "SX Specter"; description = "SX Specter",
tiles_off = { }; inventory_image = "computer_specter_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 3, 0, 0, 26, 4, 17 }, -- Keyboard { 3, 0, 0, 26, 4, 17 }, -- Keyboard
{ 18, 0, 18, 12, 6, 14 }, -- Tape Player { 18, 0, 18, 12, 6, 14 } -- Tape Player
}); })
}); })
-- Nintendo Wii lookalike -- Nintendo Wii lookalike
computer.register("computer:wee", { computer.register("computer:wee", {
description = "Nientiendo Wee"; description = "Nientiendo Wee",
tiles_off = { front=true; }; inventory_image = "computer_wii_inv.png",
tiles_off = { front=true },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 11, 0, 3, 10, 6, 26 }, -- Base { 11, 0, 3, 10, 6, 26 }, -- Base
{ 12, 6, 4, 8, 22, 24 }, -- Top { 12, 6, 4, 8, 22, 24 } -- Top
}); })
}); })
-- Apple iPad lookalike -- Apple iPad lookalike
minetest.register_node("computer:piepad", { minetest.register_node("computer:piepad", {
@ -113,214 +117,92 @@ minetest.register_node("computer:piepad", {
tiles = {"computer_piepad_inv.png"}, tiles = {"computer_piepad_inv.png"},
inventory_image = "computer_piepad_inv.png", inventory_image = "computer_piepad_inv.png",
wield_image = "computer_piepad_inv.png", wield_image = "computer_piepad_inv.png",
sunlight_propagates = false,
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
light_source = 10, light_source = 8,
walkable = false, walkable = false,
groups = { snappy=3, cracky=3, choppy=3, oddly_breakable_by_hand=3}, groups = {oddly_breakable_by_hand=2},
selection_box = {type = "wallmounted"}, selection_box = {type = "wallmounted"},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
}) })
-- Commodore 64 lookalike -- Commodore 64 lookalike
computer.register("computer:admiral64", { computer.register("computer:admiral64", {
description = "Admiral64"; description = "Admiral64",
tiles_off = { }; inventory_image = "computer_ad64_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 0, 0, 0, 32, 4, 18 }, -- Keyboard { 0, 0, 0, 32, 4, 18 } -- Keyboard
}); })
}); })
-- Commodore 128 lookalike -- Commodore 128 lookalike
computer.register("computer:admiral128", { computer.register("computer:admiral128", {
description = "Admiral128"; description = "Admiral128",
tiles_off = { }; inventory_image = "computer_ad128_inv.png",
tiles_off = { },
node_box = computer.pixelnodebox(32, { node_box = computer.pixelnodebox(32, {
-- X Y Z W H L -- X Y Z W H L
{ 0, 0, 0, 32, 4, 27 }, -- Keyboard { 0, 0, 0, 32, 4, 27 } -- Keyboard
}); })
}); })
---------------------------------------------------------------------------------
----------------------------added by crazyginger72-------------------------------
---------------------------------------------------------------------------------
-- Generic Flat Screen LCD (16x9) with keyboard -- Generic Flat Screen LCD (16x9) with keyboard
minetest.register_node("computer:monitor_on", { local mo_sbox = {
description = "Monitor and keyboard",
tiles = {"computer_monitor_t.png","computer_monitor_bt.png",
"computer_monitor_l.png","computer_monitor_r.png",
"computer_monitor_b.png","computer_monitor_f_desktop.png"}, --"computer_monitor_f_on.png"}, --till i get a boot abm inplace
paramtype = "light",
light_source = 4,
paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = { -0.5, -0.5, -0.43, 0.5, 0.2, 0.25 }
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116}, }
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
drop = 'computer:monitor',
on_rightclick = function ( pos, node, clicker, itemstack)
node.name = "computer:monitor";
minetest.set_node(pos, node);
end
})
minetest.register_node("computer:monitor_bios", {
description = "Monitor and keyboard",
tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png",
"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_bios.png"},
paramtype = "light",
light_source = 4,
paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116},
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
drop = 'computer:monitor',
})
minetest.register_node("computer:monitor_loading", {
description = "Monitor and keyboard",
tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png",
"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_loading.png"},
paramtype = "light",
light_source = 4,
paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116},
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
drop = 'computer:monitor',
})
minetest.register_node("computer:monitor_login", {
description = "Monitor and keyboard",
tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png",
"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_login.png"},
paramtype = "light",
light_source = 4,
paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116},
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
drop = 'computer:monitor',
})
minetest.register_node("computer:monitor_desktop", {
description = "Monitor and keyboard",
tiles = {"computer_monitor_t.png","computer_monitor_bt.png","computer_monitor_l.png",
"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_desktop.png"},
paramtype = "light",
light_source = 4,
paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116},
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
drop = 'computer:monitor',
})
minetest.register_node("computer:monitor", { minetest.register_node("computer:monitor", {
description = "Monitor and keyboard", description = "Monitor and keyboard",
tiles = {"computer_monitor_t_off.png","computer_monitor_bt.png","computer_monitor_l.png", inventory_image = "computer_monitor_inv.png",
"computer_monitor_r.png","computer_monitor_b.png","computer_monitor_f_off.png"}, drawtype = "mesh",
mesh = "computer_monitor.obj",
tiles = {"computer_black.png", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"},
paramtype = "light", paramtype = "light",
light_source = 4,
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = false, walkable = false,
is_ground_content = true,
groups = {snappy=3}, groups = {snappy=3},
sound = default.node_sound_wood_defaults(), selection_box = mo_sbox,
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.1875, 0.5, 0.375, 0.223116},
{-0.25, -0.5, 0.125, 0.25, -0.466981, 0.5},
{-0.125, -0.5, 0.3125, 0.125, 0.0283019, 0.346698},
{-0.375, -0.3125, 0.208965, 0.375, 0.240566, 0.3125},
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, -0.125},
{-0.1875, -0.5, 0.25, 0.1875, -0.410377, 0.375},
},
},
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor_on"; node.name = "computer:monitor_on"
minetest.set_node(pos, node); minetest.set_node(pos, node)
end end
}) })
minetest.register_node("computer:monitor_on", {
description = "Monitor and keyboard",
drawtype = "mesh",
mesh = "computer_monitor.obj",
tiles = {"monitor_display.png^[transformFX", "monitor_plastic.png", "computer_black.png", "monitor_plastic.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 9,
walkable = false,
groups = {snappy=3, not_in_creative_inventory=1},
selection_box = mo_sbox,
drop = "computer:monitor",
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:monitor"
minetest.set_node(pos, node)
end
})
minetest.register_alias("computer:monitor_bios", "computer:monitor")
minetest.register_alias("computer:monitor_loading", "computer:monitor")
minetest.register_alias("computer:monitor_login", "computer:monitor")
minetest.register_alias("computer:monitor_desktop", "computer:monitor")
--WIFI Router (linksys look-a-like) --WIFI Router (linksys look-a-like)
minetest.register_node("computer:router", { minetest.register_node("computer:router", {
description = "WIFI Router", description = "WIFI Router",
inventory_image = "computer_router_inv.png",
tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png", tiles = {"computer_router_t.png","computer_router_bt.png","computer_router_l.png","computer_router_r.png","computer_router_b.png",
{name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"}, {name="computer_router_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"computer_router_f.png"},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = false, walkable = false,
is_ground_content = true,
groups = {snappy=3}, groups = {snappy=3},
sound = default.node_sound_wood_defaults(), sound = default.node_sound_wood_defaults(),
drawtype = "nodebox", drawtype = "nodebox",
@ -330,84 +212,42 @@ minetest.register_node("computer:router", {
{-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125}, {-0.25, -0.5, -0.0625, 0.25, -0.375, 0.3125},
{-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375}, {-0.1875, -0.4375, 0.3125, -0.125, -0.1875, 0.375},
{0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375}, {0.125, -0.4375, 0.3125, 0.1875, -0.1875, 0.375},
{-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}, {-0.0625, -0.4375, 0.3125, 0.0625, -0.25, 0.375}
}, }
}, }
}) })
local pct_cbox = {
type = "fixed",
fixed = { -0.1875, -0.5, -0.36, 0.1875, 0.34, 0.46 }
}
--Modern PC Tower --Modern PC Tower
minetest.register_node("computer:tower_on", {
description = "Computer Tower",
tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png",
"computer_tower_r.png","computer_tower_b.png","computer_tower_f_on.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
is_ground_content = true,
groups = {snappy=3,not_in_creative_inventory=1},
sound = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375},
{-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625},
{-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375},
},
},
drop = 'computer:tower',
on_rightclick = function ( pos, node, clicker, itemstack)
node.name = "computer:tower";
minetest.set_node(pos, node);
end
})
minetest.register_node("computer:tower", { minetest.register_node("computer:tower", {
description = "Computer Tower", description = "Computer Tower",
tiles = {"computer_tower_t.png","computer_tower_bt.png","computer_tower_l.png","computer_tower_r.png", inventory_image = "computer_tower_inv.png",
"computer_tower_b.png","computer_tower_f_off.png"}, drawtype = "mesh",
mesh = "computer_tower.obj",
tiles = {"computer_tower.png"},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = true,
is_ground_content = true,
groups = {snappy=3}, groups = {snappy=3},
sound = default.node_sound_wood_defaults(), sound = default.node_sound_wood_defaults(),
drawtype = "nodebox", selection_box = pct_cbox,
node_box = { collision_box = pct_cbox
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375},
{-0.1875, -0.5, -0.353774, 0.1875, 0, -0.0625},
{-0.1875, 0.247641, -0.353774, 0.1875, 0.3125, 0.1875},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.4375},
},
},
on_rightclick = function ( pos, node, clicker, itemstack)
node.name = "computer:tower_on";
minetest.set_node(pos, node);
end
}) })
minetest.register_alias("computer:tower_on", "computer:tower")
-- Printer/scaner combo -- Printer/scaner combo
minetest.register_node("computer:printer", { minetest.register_node("computer:printer", {
description = "Printer Scaner Combo", description = "Printer Scaner Combo",
inventory_image = "computer_printer_inv.png",
tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png", tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"}, "computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = true, walkable = true,
is_ground_content = true,
groups = {snappy=3}, groups = {snappy=3},
sound = default.node_sound_wood_defaults(), sound = default.node_sound_wood_defaults(),
drawtype = "nodebox", drawtype = "nodebox",
@ -421,7 +261,7 @@ minetest.register_node("computer:printer", {
{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375}, {-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375}, {-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5}, {-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}, {-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
}, },
}, },
}) })
@ -439,23 +279,21 @@ minetest.register_node("computer:server", {
'computer_server_f_off.png' 'computer_server_f_off.png'
}, },
inventory_image = "computer_server_inv.png", inventory_image = "computer_server_inv.png",
sunlight_propagates = false,
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = true,
groups = {snappy=3}, groups = {snappy=3},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
}, },
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
}, },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server_on"; node.name = "computer:server_on"
minetest.set_node(pos, node); minetest.set_node(pos, node)
end, end,
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above local pos = pointed_thing.above
@ -479,23 +317,21 @@ minetest.register_node("computer:server_on", {
'computer_server_f_on.png', 'computer_server_f_on.png',
}, },
inventory_image = "computer_server_inv.png", inventory_image = "computer_server_inv.png",
sunlight_propagates = false,
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = true,
groups = {snappy=3,not_in_creative_inventory=1}, groups = {snappy=3,not_in_creative_inventory=1},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
}, },
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}, fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
}, },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
drop = 'computer:server', drop = 'computer:server',
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computer:server"; node.name = "computer:server"
minetest.set_node(pos, node); minetest.set_node(pos, node)
end end
}) })

View File

@ -1,100 +1,101 @@
computer = { }; computer = { }
computer.register = function (name, def) computer.register = function (name, def)
local nodename = name; local nodename = name
if (name:sub(1, 1) == ":") then name = name:sub(2); end if (name:sub(1, 1) == ":") then name = name:sub(2) end
local modname, basename = name:match("^([^:]+):(.*)"); local modname, basename = name:match("^([^:]+):(.*)")
local TEXPFX = modname.."_"..basename.."_"; local TEXPFX = modname.."_"..basename.."_"
local ONSTATE = modname..":"..basename; local ONSTATE = modname..":"..basename
local OFFSTATE = modname..":"..basename.."_off"; local OFFSTATE = modname..":"..basename.."_off"
local def = def; local def = def
minetest.register_node(ONSTATE, { minetest.register_node(ONSTATE, {
drawtype = "nodebox"; drawtype = "nodebox",
paramtype = "light"; paramtype = "light",
paramtype2 = "facedir"; paramtype2 = "facedir",
description = def.description; description = def.description,
groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2 }; inventory_image = def.inventory_image,
groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
tiles = { tiles = {
TEXPFX.."tp.png", TEXPFX.."tp.png",
TEXPFX.."bt.png", TEXPFX.."bt.png",
TEXPFX.."rt.png", TEXPFX.."rt.png",
TEXPFX.."lt.png", TEXPFX.."lt.png",
TEXPFX.."bk.png", TEXPFX.."bk.png",
TEXPFX.."ft.png", TEXPFX.."ft.png"
}; },
node_box = def.node_box; node_box = def.node_box,
selection_box = def.node_box; selection_box = def.node_box,
on_rightclick = function (pos, node, clicker, itemstack) on_rightclick = function (pos, node, clicker, itemstack)
if (def.on_turn_off) then if (def.on_turn_off) then
if (def.on_turn_off(pos, node, clicker, itemstack)) then return; end if (def.on_turn_off(pos, node, clicker, itemstack)) then return end
end end
node.name = OFFSTATE; node.name = OFFSTATE
minetest.set_node(pos, node); minetest.set_node(pos, node)
end; end
}); })
minetest.register_node(OFFSTATE, { minetest.register_node(OFFSTATE, {
drawtype = "nodebox"; drawtype = "nodebox",
paramtype = "light"; paramtype = "light",
paramtype2 = "facedir"; paramtype2 = "facedir",
groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2, groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
not_in_creative_inventory=1 };
tiles = { tiles = {
(TEXPFX.."tp"..(def.tiles_off.top and "_off" or "")..".png"), (TEXPFX.."tp"..(def.tiles_off.top and "_off" or "")..".png"),
(TEXPFX.."bt"..(def.tiles_off.bottom and "_off" or "")..".png"), (TEXPFX.."bt"..(def.tiles_off.bottom and "_off" or "")..".png"),
(TEXPFX.."rt"..(def.tiles_off.right and "_off" or "")..".png"), (TEXPFX.."rt"..(def.tiles_off.right and "_off" or "")..".png"),
(TEXPFX.."lt"..(def.tiles_off.left and "_off" or "")..".png"), (TEXPFX.."lt"..(def.tiles_off.left and "_off" or "")..".png"),
(TEXPFX.."bk"..(def.tiles_off.back and "_off" or "")..".png"), (TEXPFX.."bk"..(def.tiles_off.back and "_off" or "")..".png"),
(TEXPFX.."ft"..(def.tiles_off.front and "_off" or "")..".png"), (TEXPFX.."ft"..(def.tiles_off.front and "_off" or "")..".png")
}; },
node_box = def.node_box_off or def.node_box; node_box = def.node_box_off or def.node_box,
selection_box = def.node_box_off or def.node_box; selection_box = def.node_box_off or def.node_box,
on_rightclick = function (pos, node, clicker, itemstack) on_rightclick = function (pos, node, clicker, itemstack)
if (def.on_turn_on) then if (def.on_turn_on) then
if (def.on_turn_on(pos, node, clicker, itemstack)) then return; end if (def.on_turn_on(pos, node, clicker, itemstack)) then return end
end end
node.name = ONSTATE; node.name = ONSTATE
minetest.set_node(pos, node); minetest.set_node(pos, node)
end; end,
drop = ONSTATE; drop = ONSTATE
}); })
end end
computer.register_handheld = function (name, def) computer.register_handheld = function (name, def)
local nodename = name; local nodename = name
if (name:sub(1, 1) == ":") then name = name:sub(2); end if (name:sub(1, 1) == ":") then name = name:sub(2) end
local modname, basename = name:match("^([^:]+):(.*)"); local modname, basename = name:match("^([^:]+):(.*)")
local TEXPFX = modname.."_"..basename.."_inv"; local TEXPFX = modname.."_"..basename.."_inv"
local ONSTATE = modname..":"..basename; local ONSTATE = modname..":"..basename
local OFFSTATE = modname..":"..basename.."_off"; local OFFSTATE = modname..":"..basename.."_off"
local on_use = def.on_use; local on_use = def.on_use
minetest.register_craftitem(ONSTATE, { minetest.register_craftitem(ONSTATE, {
description = def.description; description = def.description,
inventory_image = TEXPFX..".png"; inventory_image = TEXPFX..".png",
wield_image = TEXPFX..".png"; wield_image = TEXPFX..".png"
}); })
end end
computer.pixelnodebox = function (size, boxes) computer.pixelnodebox = function (size, boxes)
local fixed = { }; local fixed = { }
local i, box; local i, box
for i, box in ipairs(boxes) do for i, box in ipairs(boxes) do
local x, y, z, w, h, l = unpack(box); local x, y, z, w, h, l = unpack(box)
fixed[#fixed + 1] = { fixed[#fixed + 1] = {
(x / size) - 0.5, (x / size) - 0.5,
(y / size) - 0.5, (y / size) - 0.5,
(z / size) - 0.5, (z / size) - 0.5,
((x + w) / size) - 0.5, ((x + w) / size) - 0.5,
((y + h) / size) - 0.5, ((y + h) / size) - 0.5,
((z + l) / size) - 0.5, ((z + l) / size) - 0.5
}; }
end end
return { return {
type = "fixed"; type = "fixed",
fixed = fixed; fixed = fixed
}; }
end end
local MODPATH = minetest.get_modpath("computer"); local MODPATH = minetest.get_modpath("computer")
dofile(MODPATH.."/computers.lua"); dofile(MODPATH.."/computers.lua")
dofile(MODPATH.."/miscitems.lua"); dofile(MODPATH.."/miscitems.lua")
dofile(MODPATH.."/recipes.lua"); dofile(MODPATH.."/recipes.lua")
dofile(MODPATH.."/tetris.lua")

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
mtllib computer_tower.mtl
o Cube.001
v -0.182508 -0.499998 0.450000
v -0.182508 -0.499998 -0.349946
v 0.182508 -0.499998 -0.349946
v 0.182508 -0.499998 0.450000
v -0.182508 0.335734 0.450000
v 0.182508 0.335734 0.450000
v 0.182508 0.335734 -0.349946
v -0.182508 0.335734 -0.349947
vt 0.999994 0.750017
vt 0.500006 0.749983
vt 0.500002 0.499996
vt 0.999997 0.500009
vt 0.499989 0.999941
vt 0.999986 0.999931
vt 0.500005 0.000003
vt 0.000007 0.500002
vt -0.000003 0.000003
vt 0.250005 0.999991
vt 0.250005 0.499995
vt 0.999993 0.000002
vt 0.000017 0.999997
usemtl Material.001
s off
f 1/1 2/2 3/3 4/4
f 5/5 6/2 7/1 8/6
f 1/7 5/3 8/8 2/9
f 2/3 8/5 7/10 3/11
f 3/12 7/4 6/3 4/7
f 5/13 1/8 4/11 6/10

View File

@ -0,0 +1,34 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
mtllib vending_machine.mtl
o Cube
v 0.499998 -0.499998 -0.499998
v 0.499998 -0.499998 0.499998
v -0.499998 -0.499998 0.499998
v -0.499998 -0.499998 -0.499998
v 0.499998 1.499994 -0.499998
v 0.499998 1.499994 0.499998
v -0.499998 1.499994 0.499998
v -0.499998 1.499994 -0.499998
vt 0.250050 0.250050
vt 0.000100 0.250050
vt 0.000100 0.000100
vt 0.250050 0.000100
vt 0.250050 0.749950
vt 0.250050 0.999900
vt 0.000100 0.999900
vt 0.000100 0.749950
vt 0.999900 0.250049
vt 0.999900 0.749949
vt 0.749950 0.749950
vt 0.749950 0.250050
vt 0.500000 0.749950
vt 0.500000 0.250050
usemtl Material
s off
f 1/1 2/2 3/3 4/4
f 5/5 8/6 7/7 6/8
f 1/1 5/5 6/8 2/2
f 2/9 6/10 7/11 3/12
f 3/12 7/11 8/13 4/14
f 5/5 1/1 4/14 8/13

View File

@ -3,132 +3,141 @@
-- License is WTFPL (see README.txt). -- License is WTFPL (see README.txt).
minetest.register_craft({ minetest.register_craft({
output = "computer:shefriendSOO"; output = "computer:shefriendSOO",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:slaystation"; output = "computer:slaystation",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:wood", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:vanio"; output = "computer:vanio",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "", "", }, { "homedecor:plastic_sheeting", "", "" },
{ "default:glass", "", "" }, { "default:glass", "", "" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:specter"; output = "computer:specter",
recipe = { recipe = {
{ "", "", "homedecor:plastic_sheeting", }, { "", "", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:slaystation2"; output = "computer:slaystation2",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:admiral64"; output = "computer:admiral64",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:wood", "default:wood", "default:wood", }, { "default:wood", "default:wood", "default:wood" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:admiral128"; output = "computer:admiral128",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:wee"; output = "computer:wee",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:piepad"; output = "computer:piepad",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" }
}; }
}); })
--new stuff --new stuff
minetest.register_craft({ minetest.register_craft({
output = "computer:monitor"; output = "computer:monitor",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "default:glass","", }, { "homedecor:plastic_sheeting", "default:glass","" },
{ "homedecor:plastic_sheeting", "default:glass","", }, { "homedecor:plastic_sheeting", "default:glass","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:router"; output = "computer:router",
recipe = { recipe = {
{ "default:steel_ingot","","", }, { "default:steel_ingot","","" },
{ "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting", }, { "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:tower"; output = "computer:tower",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:printer"; output = "computer:printer",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot","", }, { "homedecor:plastic_sheeting", "default:steel_ingot","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting" }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:printer"; output = "computer:printer",
recipe = { recipe = {
{ "homedecor:plastic_sheeting", "default:steel_ingot","", }, { "homedecor:plastic_sheeting", "default:steel_ingot","" },
{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" },
{ "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", }, { "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", }
}; }
}); })
minetest.register_craft({ minetest.register_craft({
output = "computer:server"; output = "computer:server",
recipe = { recipe = {
{ "computer:tower", "computer:tower", "computer:tower", }, { "computer:tower", "computer:tower", "computer:tower", },
{ "computer:tower", "computer:tower", "computer:tower", }, { "computer:tower", "computer:tower", "computer:tower" },
{ "computer:tower", "computer:tower", "computer:tower", }, { "computer:tower", "computer:tower", "computer:tower" }
}; }
}); })
minetest.register_craft({
output = "computer:tetris_arcade",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting", },
{ "dye:black", "default:glass", "dye:black" },
{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" }
}
})

View File

@ -0,0 +1,282 @@
local shapes = {
{ { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } },
{ { x = {1, 1, 1, 1}, y = {0, 1, 2, 3} },
{ x = {0, 1, 2, 3}, y = {1, 1, 1, 1} } },
{ { x = {0, 0, 1, 1}, y = {0, 1, 1, 2} },
{ x = {1, 2, 0, 1}, y = {0, 0, 1, 1} } },
{ { x = {1, 0, 1, 0}, y = {0, 1, 1, 2} },
{ x = {0, 1, 1, 2}, y = {0, 0, 1, 1} } },
{ { x = {1, 2, 1, 1}, y = {0, 0, 1, 2} },
{ x = {0, 1, 2, 2}, y = {1, 1, 1, 2} },
{ x = {1, 1, 0, 1}, y = {0, 1, 2, 2} },
{ x = {0, 0, 1, 2}, y = {0, 1, 1, 1} } },
{ { x = {1, 1, 1, 2}, y = {0, 1, 2, 2} },
{ x = {0, 1, 2, 0}, y = {1, 1, 1, 2} },
{ x = {0, 1, 1, 1}, y = {0, 0, 1, 2} },
{ x = {0, 1, 2, 2}, y = {1, 1, 1, 0} } },
{ { x = {1, 0, 1, 2}, y = {0, 1, 1, 1} },
{ x = {1, 1, 1, 2}, y = {0, 1, 2, 1} },
{ x = {0, 1, 2, 1}, y = {1, 1, 1, 2} },
{ x = {0, 1, 1, 1}, y = {1, 0, 1, 2} } } }
local colors = { "computer_cyan.png", "computer_magenta.png", "computer_red.png",
"computer_blue.png", "computer_green.png", "computer_orange.png", "computer_yellow.png" }
local background = "image[0,0;3.55,6.66;computer_black.png]"
local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[3.6,4.5;0.6,0.6;rotateleft;L]"
.."button[4.2,4.5;0.6,0.6;down;v]"
.."button[4.2,5.3;0.6,0.6;drop;V]"
.."button[4.8,4.5;0.6,0.6;rotateright;R]"
.."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;New Game]"
local formsize = "size[5.9,5.7]"
local boardx, boardy = 0, 0
local sizex, sizey, size = 0.29, 0.29, 0.31
local comma = ","
local semi = ";"
local close = "]"
local concat = table.concat
local insert = table.insert
local draw_shape = function(id, x, y, rot, posx, posy)
local d = shapes[id][rot]
local scr = {}
local ins = #scr
for i=1,4 do
local tmp = { "image[",
(d.x[i]+x)*sizex+posx, comma,
(d.y[i]+y)*sizey+posy, semi,
size, comma, size, semi,
colors[id], close }
ins = ins + 1
scr[ins] = concat(tmp)
end
return concat(scr)
end
local function step(pos, fields)
local meta = minetest.get_meta(pos)
local t = minetest.deserialize(meta:get_string("tetris"))
local function new_game(pos)
local nex = math.random(7)
t = {
board = {},
boardstring = "",
previewstring = draw_shape(nex, 0, 0, 1, 4, 1),
score = 0,
cur = math.random(7),
nex = nex,
x=4, y=0, rot=1
}
local timer = minetest.get_node_timer(pos)
timer:set(0.3, 0)
end
local function update_boardstring()
local scr = {}
local ins = #scr
for i, line in pairs(t.board) do
for _, tile in pairs(line) do
local tmp = { "image[",
tile[1]*sizex+boardx, comma,
i*sizey+boardy, semi,
size, comma, size, semi,
colors[tile[2]], close }
ins = ins + 1
scr[ins] = concat(tmp)
end
end
t.boardstring = concat(scr)
end
local function add()
local d = shapes[t.cur][t.rot]
for i=1,4 do
local l = d.y[i] + t.y
if not t.board[l] then t.board[l] = {} end
insert(t.board[l], {d.x[i] + t.x, t.cur})
end
end
local function scroll(l)
for i=l, 1, -1 do
t.board[i] = t.board[i-1] or {}
end
end
local function check_lines()
for i, line in pairs(t.board) do
if #line >= 10 then
scroll(i)
t.score = t.score + 20
end
end
end
local function check_position(x, y, rot)
local d = shapes[t.cur][rot]
for i=1,4 do
local cx, cy = d.x[i]+x, d.y[i]+y
if cx < 0 or cx > 9 or cy < 0 or cy > 19 then
return false
end
for _, tile in pairs(t.board[ cy ] or {}) do
if tile[1] == cx then return false end
end
end
return true
end
local function stuck()
if check_position(t.x, t.y+1, t.rot) then return false end
return true
end
local function tick()
if stuck() then
if t.y <= 0 then
return false end
add()
check_lines()
update_boardstring()
t.cur, t.nex = t.nex, math.random(7)
t.x, t.y, t.rot = 4, 0, 1
t.previewstring = draw_shape(t.nex, 0, 0, 1, 4.1, 0.6)
else
t.y = t.y + 1
end
return true
end
local function move(dx, dy)
local newx, newy = t.x+dx, t.y+dy
if not check_position(newx, newy, t.rot) then return end
t.x, t.y = newx, newy
end
local function rotate(dr)
local no = #(shapes[t.cur])
local newrot = (t.rot+dr) % no
if newrot<1 then newrot = newrot+no end
if not check_position(t.x, t.y, newrot) then return end
t.rot = newrot
end
local function key()
if fields.left then
move(-1, 0)
end
if fields.rotateleft then
rotate(-1)
end
if fields.down then
t.score = t.score + 1
move(0, 1)
end
if fields.drop then
while not stuck() do
t.score = t.score + 2
move(0, 1)
end
end
if fields.rotateright then
rotate(1)
end
if fields.right then
move(1, 0)
end
end
local run = true
if fields then
if fields.new then
new_game(pos)
else
key(fields)
end
else
run = tick()
end
if t ~= nil then
local scr = { formsize, background,
t.boardstring, t.previewstring,
draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy),
"label[3.8,0.1;Next...]label[3.8,2.7;Score: ",
t.score, close, buttons }
meta:set_string("formspec", concat(scr)
..default.gui_bg..default.gui_bg_img..default.gui_slots)
meta:set_string("tetris", minetest.serialize(t))
end
return run
end
minetest.register_node("computer:tetris_arcade", {
description="Tetris Arcade",
drawtype = "mesh",
mesh = "tetris_arcade.obj",
tiles = {"tetris_arcade.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
on_rotate = screwdriver.rotate_simple,
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
},
collision_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}
},
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", formsize.."button[2,2.5;2,2;new;New Game]"
..default.gui_bg..default.gui_bg_img..default.gui_slots)
end,
on_timer = function(pos)
return step(pos, nil)
end,
on_receive_fields = function(pos, formanme, fields, sender)
step(pos, fields)
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player(placer:get_player_name(), "No room for place the Arcade!")
return end
local dir = placer:get_look_dir()
local node = {name="computer:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)}
minetest.set_node(pos, node)
itemstack:take_item()
return itemstack
end
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

View File

@ -1,21 +1,7 @@
JP's Fork of LazyJ's Minetest Mod, "Fake Fire" Semmett9's "Fake Fire" mod. kilbith's fork.
by : JP. Some textures by LazyJ.
Fancy mesh fire model/texture by NathanS (CC-0).
Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke. ==============================================================
======================================================================
LazyJ's Fork of Semmett9's Minetest Mod, "Fake Fire"
by:
LazyJ
This is my fork of Semmett9's "Fake Fire" mod. Some code clean-up, a
bunch of changes and a few new things have been added.
======================================================================
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE

View File

@ -1,62 +0,0 @@
##### JP's Fork of LazyJ's Minetest Mod, "Fake Fire"
Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke.
##### LazyJ's Fork of Semmett9's "Fake Fire" Mod
This fork of 'Fake Fire' is based off of Semmett9's 2014_03_14 release of the
mod.
At LinuxGaming.us, we have a creative-leaning Minetest server. Destruction by
arson is not something we like. When the Fake Fire mod was installed we finally
could make warm hearths and campfires without fear of burning down our builds.
We could also use Fake Fire to simulate things burning without worrying our
neighbors about the fires spreading and destroying their stuff.
As a creative bunch of Minetesters, we often come up with new ideas for things.
This fork of "Fake Fire" incorporates some of those ideas.
Semmett9's original version of this mod can be found here:
* Minetest.net
http://forum.minetest.net/viewtopic.php?id=6145
* Ad.Fly
http://adf.ly/RbzwV
Yes, it has advertisements. That's what helps to pay for hosting Semmett9's
website and server costs. Everything has a cost. Someone pays. Even when it
comes to so-called free, open-source software. Someone pays. Everything has a
cost. Try running your own business and you will understand. There are no
free lunches in life.
Ok, done ranting. ;)-
~ LazyJ, 2014_06_19
Minetest version: 0.4.9
Depends: default
Recommended Additional Mods: none
License: GPL v2
Source Code: http://github.com/LazyJ/fake_fire
Download (.zip): http://github.com/LazyJ/fake_fire/archive/master.zip
Install:
* After downloading, unzip the file.
* Rename the directory "fake_fire_fork-master" to "fake_fire"
* Copy the "fake_fire" directory into either
../minetest/worlds/yourworld'sname/worldmods/
or
../minetest/mods/
* If you put "fake_fire" in the ../minetest/mods/ directory, either
enable the mod from within Minetest's "Configure" button
(main menu, bottom right) or by adding this line to the
world's "world.mt" file:
load_mod_fake_fire = true

View File

@ -1,86 +0,0 @@
CHANGELOG
~~~~~~~~~~~~~~~~~
2014_07_27:
* Replaced LazyJ's smoke nodes pictures by smoke particles. Lighter, prettier, configurable smoke.
* Code clean-up.
2014_06_21:
* Added changelog.txt, 2014_06_19. Some changes are much older than this.
I've been making little tweaks to it for several months and finally decided
to give it an overhaul.
* Code clean-up.
* Split the init.lua file stuff into separate files and moved them into the
"modfiles" folder.
* I had added a lump of coal to be dropped when the flame was dug but, as
one of our moderators pointed out, once word got out, new players would
snuff-out every fake_fire they found just to get easy coal. The coal drop
was removed.
* Changed the flint crafting recipe to require 2 gravel instead of one.
This resolves a crafting conflict with another mod. The recipe is also
shapless now.
* Added crafting recipes for 1 cobble to 1 gravel, then 1 gravel to 1 sand.
For Wazuland2 these recipes are commented out because another mod takes
care of them (the reason for changing the flint recipe).
* Health-damage disabled. This fork is strictly for decoration.
* Waving added to flames and smoke.
* Rising, disappearing smoke-puffs added. Smoke columns will rise to 14
spaces above the flame or chimney top.
* Smoke can be punched to remove.
* Never-ending flint and steel disabled. May add it as a priv later.
* Extinguishing with water and lava(??) disabled. Again, this fork is
strictly for decoration so dousing the flames with water or lava would just
make a big, needless mess. Much easier and cleaner to just punch the flame.
* Flame images are hidden from creative inventory but are still provided
for in the code and image files if you want them to be visible. Just remove
the "not_in_creative_inventory" part from the groups of the flame types and
they will be visible again. Having the images in inventory is useful when
playing in creative mode or if you want to torture griefers who put in the
time and effort to get the materials to make the fire hoping to be able to
burn things only to discover that it is *fake* and *harmless*. Bwa-hahaha!
* Added ice-fire, a blue-colored flame that only ignites on snow and ice
stuff.
* Added added ability to switch between smoking and non-smoking flames by
punching them. Default is non-smoking.
* Added stone and sandstone chimney caps that can produce smoke when punched
(smoking and non-smoking versions). Useful for small builds where a 3x3
chimney would be too oversized in proportion to the reset of the build.
* Added animated, glowing embers. This hearth-warming block emits a
mid-level light and simulates the hot coals under a flame. Flames are not
required and the embers blocks are smokeless.
2014_06_23:
* Flames - "sunlight_propagates = true,"
-- Adding sunlight_propagtes and leaving comments as a future reference.
-- If true, sunlight will go infinitely through this (no shadow is cast).
-- Because fire produces light it should be "true" so fire *doesn't* have
-- a shadow.
* Embers - "sunlight_propagates = true,"
-- Adding sunlight_propagtes and leaving comments as a future reference.
-- If true, sunlight will go infinitely through this (no shadow is cast).
-- Because embers produce some light it should be somewhat "true" but this
-- is an area where Minetest lacks in subtlety so I'm opting for 100% that
-- embers *don't* have a shadow.
* Bug Fix - Server Crash when Flint-Steel Clicked on Nothing (sky).
-- Players can see farther than they can reach. Even though the player
-- was aiming for a node several spaces ahead of them, Minetest's targeting
-- range doesn't extend that far. The player saw the node they were aiming
-- at, Minetest's target range ended and Minetest saw "nothing"
-- (a nil value). The bug was a conflict in the code so when that
-- particular nil value popped up, Minetest was confused by the bug, threw
-- up it's hands in frustration and said "I quit!" by crashing.
* Original init.lua Added
-- What I thought was the original init.lua file turned out to be one I had
-- tinkered with months ago. So I extracted the actual original init.lua
-- file from a zip file of the original mod. Why bother including it in my
-- fork? Because it's a reference to compare to and learn from.

View File

@ -1,3 +1,233 @@
dofile(minetest.get_modpath("fake_fire").."/modfiles/nodes.lua") local function start_smoke(pos, node, clicker, chimney)
dofile(minetest.get_modpath("fake_fire").."/modfiles/crafts.lua") local this_spawner_meta = minetest.get_meta(pos)
dofile(minetest.get_modpath("fake_fire").."/modfiles/abms.lua") local id = this_spawner_meta:get_int("smoky")
local s_handle = this_spawner_meta:get_int("sound")
local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name
if id ~= 0 then
if s_handle then
minetest.after(0, function(s_handle)
minetest.sound_stop(s_handle)
end, s_handle)
end
minetest.delete_particlespawner(id)
this_spawner_meta:set_int("smoky", nil)
this_spawner_meta:set_int("sound", nil)
return
end
if above == "air" and (not id or id == 0) then
id = minetest.add_particlespawner({
amount = 4, time = 0, collisiondetection = false,
minpos = {x=pos.x-0.25, y=pos.y+0.4, z=pos.z-0.25},
maxpos = {x=pos.x+0.25, y=pos.y+5, z=pos.z+0.25},
minvel = {x=-0.2, y=0.3, z=-0.2}, maxvel = {x=0.2, y=1, z=0.2},
minacc = {x=0,y=0,z=0}, maxacc = {x=0,y=0.5,z=0},
minexptime = 1, maxexptime = 3,
minsize = 4, maxsize = 8,
texture = "smoke_particle.png",
})
if chimney == 1 then
s_handle = nil
this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", nil)
else
s_handle = minetest.sound_play("fire_small", {
pos = pos,
max_hear_distance = 5,
loop = true
})
this_spawner_meta:set_int("smoky", id)
this_spawner_meta:set_int("sound", s_handle)
end
return end
end
local function stop_smoke(pos)
local this_spawner_meta = minetest.get_meta(pos)
local id = this_spawner_meta:get_int("smoky")
local s_handle = this_spawner_meta:get_int("sound")
if id ~= 0 then
minetest.delete_particlespawner(id)
end
if s_handle then
minetest.after(0, function(s_handle)
minetest.sound_stop(s_handle)
end, s_handle)
end
this_spawner_meta:set_int("smoky", nil)
this_spawner_meta:set_int("sound", nil)
end
-- FLAME TYPES
local flame_types = {"fake", "ice"}
for _, f in ipairs(flame_types) do
minetest.register_node("fake_fire:"..f.."_fire", {
inventory_image = f.."_fire_inv.png",
description = f.." fire",
drawtype = "plantlike",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3, not_in_creative_inventory=1},
sunlight_propagates = true,
buildable_to = true,
walkable = false,
light_source = 14,
waving = 1,
tiles = {
{name=f.."_fire_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=1.5}},
},
on_rightclick = function (pos, node, clicker)
start_smoke(pos, node, clicker)
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = ""
})
end
minetest.register_node("fake_fire:fancy_fire", {
inventory_image = "fancy_fire_inv.png",
description = "Fancy Fire",
drawtype = "mesh",
mesh = "fancy_fire.obj",
paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=3},
sunlight_propagates = true,
light_source = 14,
walkable = false,
damage_per_second = 4,
on_rotate = screwdriver.rotate_simple,
tiles = {
{name="fake_fire_animated.png",
animation={type='vertical_frames', aspect_w=16, aspect_h=16, length=1}}, {name='fake_fire_logs.png'}},
on_rightclick = function (pos, node, clicker)
start_smoke(pos, node, clicker)
end,
on_destruct = function (pos)
stop_smoke(pos)
minetest.sound_play("fire_extinguish", {
pos = pos, max_hear_distance = 5
})
end,
drop = {
max_items = 3,
items = {
{
items = { "default:torch", "default:torch", "building_blocks:sticks" },
rarity = 1,
}
}
}
})
-- EMBERS
minetest.register_node("fake_fire:embers", {
description = "Glowing Embers",
tiles = {
{name="embers_animated.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=2}},
},
light_source = 9,
groups = {crumbly=3},
paramtype = "light",
sounds = default.node_sound_dirt_defaults(),
})
-- CHIMNEYS
local materials = {"stone", "sandstone"}
for _, m in ipairs(materials) do
minetest.register_node("fake_fire:chimney_top_"..m, {
description = "Chimney Top - "..m,
tiles = {"default_"..m..".png^chimney_top.png", "default_"..m..".png"},
groups = {snappy=3},
paramtype = "light",
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
on_rightclick = function (pos, node, clicker)
local chimney = 1
start_smoke(pos, node, clicker, chimney)
end,
on_destruct = function (pos)
stop_smoke(pos)
end
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:chimney_top_'..m,
recipe = {"default:torch", "stairs:slab_"..m}
})
end
-- FLINT and STEEL
minetest.register_tool("fake_fire:flint_and_steel", {
description = "Flint and steel",
inventory_image = "flint_and_steel.png",
liquids_pointable = false,
stack_max = 1,
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={flamable = {uses=65, maxlevel=1}}
},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name == "air" then
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
if string.find(minetest.get_node(pointed_thing.under).name, "ice") then
minetest.set_node(pointed_thing.above, {name="fake_fire:ice_fire"})
else
minetest.set_node(pointed_thing.above, {name="fake_fire:fake_fire"})
end
else
minetest.chat_send_player(user:get_player_name(), "This area is protected!")
end
else
return
end
itemstack:add_wear(65535/65)
return itemstack
end
})
-- CRAFTS
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint_and_steel',
recipe = {"default:obsidian_shard", "default:steel_ingot"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {"default:torch", "group:wood", "default:torch"}
})
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:fancy_fire',
recipe = {"default:torch", "building_blocks:sticks", "default:torch" }
})
-- ALIASES
minetest.register_alias("fake_fire:smokeless_fire", "fake_fire:fake_fire")
minetest.register_alias("fake_fire:smokeless_ice_fire", "fake_fire:ice_fire")
minetest.register_alias("fake_fire:smokeless_chimney_top_stone", "fake_fire:chimney_top_stone")
minetest.register_alias("fake_fire:smokeless_chimney_top_sandstone", "fake_fire:chimney_top_sandstone")
minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel")

View File

@ -0,0 +1,133 @@
# Blender v2.72 (sub 2) OBJ File: 'campfire.blend'
# www.blender.org
v 0.353153 -0.337287 0.000000
v -0.366847 -0.337287 0.000000
v -0.366847 0.382713 -0.000000
v -0.186847 -0.337287 0.311769
v 0.173153 -0.337287 -0.311769
v -0.186846 0.382713 0.311769
v 0.173154 0.382713 -0.311769
v -0.186846 -0.337287 -0.311769
v 0.173154 -0.337287 0.311769
v -0.186846 0.382713 -0.311769
v 0.173153 0.382713 0.311769
v 0.353153 0.382713 0.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
g Flames.001_Cube.004_Fire
s off
f 4/1 5/2 7/3 6/4
f 8/1 9/2 11/3 10/4
f 1/1 2/2 3/3 12/4
v 0.151217 -0.347540 0.439253
v 0.151217 -0.207593 0.411057
v 0.008458 -0.207593 0.411057
v 0.008458 -0.347540 0.439253
v 0.151217 -0.526542 -0.449208
v 0.151217 -0.386595 -0.477403
v 0.008458 -0.386595 -0.477403
v 0.008458 -0.526542 -0.449208
v -0.419949 -0.512482 0.485423
v -0.419949 -0.369723 0.485423
v -0.444739 -0.369723 0.344833
v -0.444739 -0.512482 0.344833
v 0.472595 -0.512482 0.328044
v 0.472595 -0.369723 0.328044
v 0.447805 -0.369723 0.187453
v 0.447805 -0.512482 0.187453
v 0.033402 -0.347540 0.433815
v 0.025205 -0.207593 0.406838
v -0.111388 -0.207593 0.448342
v -0.103191 -0.347540 0.475320
v -0.224900 -0.526542 -0.416268
v -0.233097 -0.386595 -0.443246
v -0.369690 -0.386595 -0.401741
v -0.361493 -0.526542 -0.374763
v 0.254175 -0.345963 0.293196
v 0.254175 -0.277187 0.265611
v 0.181422 -0.282425 0.252550
v 0.181422 -0.351201 0.280135
v 0.343511 -0.517901 -0.135488
v 0.343511 -0.449125 -0.163073
v 0.270757 -0.454364 -0.176133
v 0.270757 -0.523140 -0.148548
v -0.418506 -0.513914 0.100698
v -0.418472 -0.439812 0.100704
v -0.392481 -0.439819 0.031309
v -0.392514 -0.513921 0.031304
v 0.022046 -0.514125 0.265705
v 0.022080 -0.440022 0.265710
v 0.048071 -0.440029 0.196316
v 0.048038 -0.514131 0.196310
v -0.249910 -0.307656 -0.062181
v -0.249882 -0.234638 -0.074807
v -0.278776 -0.246254 -0.142048
v -0.278804 -0.319272 -0.129422
v 0.183295 -0.339072 -0.242901
v 0.183323 -0.266053 -0.255527
v 0.154429 -0.277669 -0.322768
v 0.154401 -0.350687 -0.310143
vt 0.418293 0.016195
vt 0.418293 0.216092
vt 0.218396 0.216092
vt 0.218396 0.016195
vt 0.002609 0.212891
vt 0.002609 0.012994
vt 0.989254 0.012994
vt 0.989254 0.212891
vt 0.010050 0.219323
vt 0.010050 0.019426
vt 0.996695 0.019426
vt 0.996695 0.219323
vt 0.618448 0.016195
vt 0.618448 0.216092
vt 0.418551 0.216092
vt 0.418551 0.016195
vt 0.010050 0.228781
vt 0.010050 0.028884
vt 0.996695 0.028884
vt 0.996695 0.228781
vt 0.005089 0.207467
vt 0.005089 0.007570
vt 0.991734 0.007570
vt 0.991734 0.207467
g Campfire_Cube.003_Logs-Stone
s off
f 20/5 19/6 18/7 17/8
f 14/9 13/10 17/11 18/12
f 15/13 14/14 18/15 19/16
f 13/17 14/18 15/19 16/20
f 13/21 16/22 20/23 17/24
f 16/25 15/26 19/27 20/28
f 28/5 27/6 26/7 25/8
f 22/9 21/10 25/11 26/12
f 23/13 22/14 26/15 27/16
f 21/17 22/18 23/19 24/20
f 21/21 24/22 28/23 25/24
f 24/25 23/26 27/27 28/28
f 36/5 35/6 34/7 33/8
f 30/9 29/10 33/11 34/12
f 31/13 30/14 34/15 35/16
f 29/17 30/18 31/19 32/20
f 29/21 32/22 36/23 33/24
f 32/25 31/26 35/27 36/28
f 44/5 43/6 42/7 41/8
f 38/9 37/10 41/11 42/12
f 39/13 38/14 42/15 43/16
f 37/17 38/18 39/19 40/20
f 37/21 40/22 44/23 41/24
f 40/25 39/26 43/27 44/28
f 52/5 51/6 50/7 49/8
f 46/9 45/10 49/11 50/12
f 47/13 46/14 50/15 51/16
f 45/17 46/18 47/19 48/20
f 45/21 48/22 52/23 49/24
f 48/25 47/26 51/27 52/28
f 60/5 59/6 58/7 57/8
f 54/9 53/10 57/11 58/12
f 55/13 54/14 58/15 59/16
f 53/17 54/18 55/19 56/20
f 53/21 56/22 60/23 57/24
f 56/25 55/26 59/27 60/28

View File

@ -1,26 +0,0 @@
minetest.register_abm({
nodenames = {
"fake_fire:fake_fire",
"fake_fire:ice_fire",
"fake_fire:chimney_top_stone",
"fake_fire:chimney_top_sandstone"
},
interval = 1,
chance = 2,
action = function(pos, node)
if minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}).name == "air"
and minetest.get_node({x=pos.x, y=pos.y+2.0, z=pos.z}).name == "air" then
local image_number = math.random(4)
minetest.add_particlespawner({
amount = 6, time = 1, collisiondetection = false,
minpos = {x=pos.x-0.25, y=pos.y+0.4, z=pos.z-0.25},
maxpos = {x=pos.x+0.25, y=pos.y+8, z=pos.z+0.25},
minvel = {x=-0.2, y=0.3, z=-0.2}, maxvel = {x=0.2, y=1, z=0.2},
minacc = {x=0,y=0,z=0}, maxacc = {x=0,y=0,z=0},
minexptime = 0.5, maxexptime = 3,
minsize = 2, maxsize = 10,
texture = "smoke_particle_"..image_number..".png",
})
end
end
})

View File

@ -1,89 +0,0 @@
-- RECIPE ITEM - FLINT
minetest.register_craftitem("fake_fire:flint", {
description = "flint",
inventory_image = "flint.png",
stack_max = 99,
liquids_pointable = false,
})
-- FLINT
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint',
recipe = {
"default:gravel",
"default:gravel",
}
})
-- FLINT & STEEL
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:flint_and_steel',
recipe = {
"fake_fire:flint",
"default:steel_ingot",
}
})
-- EMBERS
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:embers',
recipe = {
"default:torch",
"group:wood",
}
})
-- STONE CHIMNEY TOP
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:smokeless_chimney_top_stone',
recipe = {
"default:torch",
"stairs:slab_stone",
}
})
-- SANDSTONE CHIMNEY TOP
minetest.register_craft({
type = "shapeless",
output = 'fake_fire:smokeless_chimney_top_sandstone',
recipe = {
"default:torch",
"stairs:slab_sandstone",
}
})
-- Cobble to Gravel
minetest.register_craft({
output = 'default:gravel',
recipe = {
{'default:cobble'},
}
})
-- Gravel to Sand
minetest.register_craft({
output = 'default:sand',
recipe = {
{'default:gravel'},
}
})
-- Desert Sand to Sand
minetest.register_craft({
output = 'default:sand',
recipe = {
{'default:desert_sand'},
}
})
-- Sand to Desert Sand
minetest.register_craft({
output = 'default:desert_sand',
recipe = {
{'default:sand'},
}
})

Some files were not shown because too many files have changed in this diff Show More