Move computers mod from homedecor modpack to here.

This commit is contained in:
Vanessa Dannenberg 2021-03-02 03:24:37 -05:00
parent a07181360c
commit d0f7baa5af
137 changed files with 25643 additions and 0 deletions

21
computers/.luacheckrc Normal file
View File

@ -0,0 +1,21 @@
unused_args = false
allow_defined_top = true
max_comment_line_length = 999
read_globals = {
"DIR_DELIM",
"minetest", "core",
"unpack",
"dump",
table = { fields = { "copy", "getn" } },
"vector", "nodeupdate",
"VoxelManip", "VoxelArea",
"PseudoRandom", "ItemStack",
"default",
"unifieddyes",
"screwdriver",
}
globals = {
}

38
computers/CHANGES.txt Normal file
View File

@ -0,0 +1,38 @@
version 0.2.3:
- Added animated router front
- Added all crafts for new items
version 0.2.2:
- Added printer
- Added server
version 0.2.1:
- Added modern tower pc
- Added wifi router
- Added flatscreen LCD and keyboard
Version 0.2.0:
- Added recipes.
- Partly re-written.
- Removed original baby tower (seemed out of place).
- You can now turn devices on and off by right-clicking.
- Mod is now on github.
Version 0.1.4:
- Added Admiral 64 & 128 (Commodore 64 & 128 lookalikes)
Version 0.1.3:
- Added SX Spectre (Sinclair ZX Spectrum lookalike)
- Added Pony SlayStation 2 (Sony PlayStation lookalike)
- Minor fixes to textures.
Version 0.1.2:
- Nodes now use the node box as selection box.
- Added Pony SlayStation (Sony PlayStation lookalike)
- Added Pony Vanio (Sony VAIO lookalike...err...just a generic laptop)
Version 0.1.1:
- Added SheFriend SOO (Amiga 500 lookalike)
Version 0.1.0:
- Initial Version only a baby tower.

51
computers/README.txt Normal file
View File

@ -0,0 +1,51 @@

Decorative Computers Mod for Minetest
by Diego Martínez <kaeza@users.sf.net>
How to install:
Unzip the archive an place it in minetest-base-directory/mods/minetest/
if you have a windows client or a linux run-in-place client. If you have
a linux system-wide instalation place it in ~/.minetest/mods/minetest/.
If you want to install this mod only in one world create the folder
worldmods/ in your worlddirectory.
For further information or help see:
http://wiki.minetest.com/wiki/Installing_Mods
How to use the mod:
For now just use creative mode or the `/give' or `/giveme' chat commands
to get the items.
These are the items currently defined by this mod:
"computers:shefriendSOO",
"computers:vanio",
"computers:vanio_off",
"computers:slaystation",
"computers:slaystation2",
"computers:specter",
"computers:wee",
"computers:piepad",
"computers:admiral64",
"computers:admiral128",
"computers:hueg_box",
"computers:monitor",
"computers:monitor_on",
"computers:router",
"computers:tower",
"computers:server",
"computers:server_on",
"computers:printer",
"computers:3dprinter_bedflinger",
"computers:3dprinter_corexy",
"computers:tetris_arcade",
There's also a `computers:computer' alias to `computers:babytower'.
Thanks to all the people in the forums and the #minetest IRC channel for
their support and suggestions; in no particular order:
OldCoder, Josh, tonyka, VanessaE, davidpace, Jordach, and all the other
sirs/madammes that I forgot to mention (sorry, please remind me if it
was you ;) ).
See also:
http://minetest.net/

29
computers/TODO.txt Normal file
View File

@ -0,0 +1,29 @@
TO-DO List:
- New Nodes:
- Computers:
- Mainframe (well me have a rackserver now)
- My Computer :P
- Peripherals:
- Scanner ( well we have a printer/scanner combo now)
- Consoles:
- NES
- SNES
- DC
- Handhelds
- GB/C
- GBA
- Calculator
- Smartphone
- Animated screens
- Implement some kind of games (take code from `tetris' mod?). [It would be
nice if Minetest provided a "canvas" GUI widget :)].
- Get more suggestions :)

26
computers/aliases.lua Normal file
View File

@ -0,0 +1,26 @@
minetest.register_alias("computer:shefriendSOO", "computers:shefriendSOO")
minetest.register_alias("computer:vanio", "computers:vanio")
minetest.register_alias("computer:vanio_off", "computers:vanio_off")
minetest.register_alias("computer:slaystation", "computers:slaystation")
minetest.register_alias("computer:slaystation2", "computers:slaystation2")
minetest.register_alias("computer:specter", "computers:specter")
minetest.register_alias("computer:wee", "computers:wee")
minetest.register_alias("computer:piepad", "computers:piepad")
minetest.register_alias("computer:admiral64", "computers:admiral64")
minetest.register_alias("computer:admiral128", "computers:admiral128")
minetest.register_alias("computer:hueg_box", "computers:hueg_box")
minetest.register_alias("computer:monitor", "computers:monitor")
minetest.register_alias("computer:monitor_on", "computers:monitor_on")
minetest.register_alias("computer:monitor_bios", "computers:monitor")
minetest.register_alias("computer:monitor_loading", "computers:monitor")
minetest.register_alias("computer:monitor_login", "computers:monitor")
minetest.register_alias("computer:monitor_desktop", "computers:monitor")
minetest.register_alias("computer:router", "computers:router")
minetest.register_alias("computer:tower", "computers:tower")
minetest.register_alias("computer:tower_on", "computers:tower")
minetest.register_alias("computer:server", "computers:server")
minetest.register_alias("computer:server_on", "computers:server_on")
minetest.register_alias("computer:printer", "computers:printer")
minetest.register_alias("computer:3dprinter_bedflinger", "computers:3dprinter_bedflinger")
minetest.register_alias("computer:3dprinter_corexy", "computers:3dprinter_corexy")
minetest.register_alias("computer:tetris_arcade", "computers:tetris_arcade")

300
computers/computers.lua Normal file
View File

@ -0,0 +1,300 @@
local S = minetest.get_translator("computers")
-- Amiga 500 lookalike
computers.register("computers:shefriendSOO", {
description = S("SheFriendSOO"),
tiles_off = { front=true },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 17, 32, 32, 12 }, -- Monitor Screen
{ 3, 3, 29, 26, 26, 3 }, -- Monitor Tube
{ 0, 0, 0, 32, 4, 17 } -- Keyboard
})
})
-- Some generic laptop
minetest.register_node("computers:vanio", {
drawtype = "mesh",
mesh = "computers_laptop.obj",
description = S("Pony Vanio"),
inventory_image = "computers_laptop_inv.png",
tiles = {"computers_laptop.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 4,
groups = {snappy=3},
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.35, 0.35, 0.05, 0.35},
},
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:vanio_off"
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node("computers:vanio_off", {
drawtype = "mesh",
mesh = "computers_laptop_closed.obj",
tiles = {"computers_laptop.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3, not_in_creative_inventory=1},
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.35, 0.35, -0.4, 0.25},
},
drop = "computers:vanio",
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:vanio"
minetest.set_node(pos, node)
return itemstack
end
})
-- Sinclair ZX Spectrum lookalike
computers.register("computers:specter", {
description = S("SX Specter"),
inventory_image = "computers_specter_inv.png",
tiles_off = { },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 3, 0, 0, 26, 4, 17 }, -- Keyboard
{ 18, 0, 18, 12, 6, 14 } -- Tape Player
})
})
-- Apple iPad lookalike
minetest.register_node("computers:piepad", {
description = S("Snapple Piepad"),
drawtype = "signlike",
tiles = {"computers_piepad_inv.png"},
inventory_image = "computers_piepad_inv.png",
wield_image = "computers_piepad_inv.png",
paramtype = "light",
paramtype2 = "wallmounted",
light_source = 8,
walkable = false,
groups = {oddly_breakable_by_hand=2},
selection_box = {type = "wallmounted"},
sounds = default.node_sound_wood_defaults()
})
-- Commodore 64 lookalike
computers.register("computers:admiral64", {
description = S("Admiral64"),
inventory_image = "computers_ad64_inv.png",
tiles_off = { },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 0, 32, 4, 18 } -- Keyboard
})
})
-- Commodore 128 lookalike
computers.register("computers:admiral128", {
description = S("Admiral128"),
inventory_image = "computers_ad128_inv.png",
tiles_off = { },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 0, 32, 4, 27 } -- Keyboard
})
})
-- Generic Flat Screen LCD (16x9) with keyboard
local mo_sbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.43, 0.5, 0.2, 0.25 }
}
minetest.register_node("computers:monitor", {
description = S("Monitor and keyboard"),
inventory_image = "computers_monitor_inv.png",
drawtype = "mesh",
mesh = "computers_monitor.obj",
tiles = {"computers_black.png", "computers_monitor_plastic.png", "computers_black.png", "computers_monitor_plastic.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = {snappy=3},
selection_box = mo_sbox,
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:monitor_on"
minetest.set_node(pos, node)
return itemstack
end
})
minetest.register_node("computers:monitor_on", {
drawtype = "mesh",
mesh = "computers_monitor.obj",
tiles = {"computers_monitor_display.png^[transformFX", "computers_monitor_plastic.png", "computers_black.png", "computers_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 = "computers:monitor",
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:monitor"
minetest.set_node(pos, node)
return itemstack
end
})
--WIFI Router (linksys look-a-like)
minetest.register_node("computers:router", {
description = S("WIFI Router"),
inventory_image = "computers_router_inv.png",
tiles = {
"computers_router_t.png",
"computers_router_bt.png",
"computers_router_l.png",
"computers_router_r.png",
"computers_router_b.png",
{
name = "computers_router_f_animated.png",
animation = {type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}
},
}, --"computers_router_f.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-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.125, -0.4375, 0.3125, 0.1875, -0.1875, 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
minetest.register_node("computers:tower", {
description = S("Computer Tower"),
inventory_image = "computers_tower_inv.png",
drawtype = "mesh",
mesh = "computers_tower.obj",
tiles = {"computers_tower.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
selection_box = pct_cbox,
collision_box = pct_cbox
})
--Rack Server
minetest.register_node("computers:server", {
drawtype = "nodebox",
description = S("Rack Server"),
tiles = {
'computers_server_t.png',
'computers_server_bt.png',
'computers_server_l.png',
'computers_server_r.png',
'computers_server_bt.png',
'computers_server_f_off.png'
},
inventory_image = "computers_server_inv.png",
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
sounds = default.node_sound_wood_defaults(),
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:server_on"
minetest.set_node(pos, node)
return itemstack
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(),
S("Not enough vertical space to place a server!" ))
return itemstack
end
return minetest.item_place(itemstack, placer, pointed_thing)
end
})
minetest.register_node("computers:server_on", {
drawtype = "nodebox",
tiles = {
'computers_server_t.png',
'computers_server_bt.png',
'computers_server_l.png',
'computers_server_r.png',
'computers_server_bt.png',
'computers_server_f_on.png',
},
inventory_image = "computers_server_inv.png",
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3,not_in_creative_inventory=1},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375}
},
sounds = default.node_sound_wood_defaults(),
drop = 'computers:server',
on_rightclick = function(pos, node, clicker, itemstack)
node.name = "computers:server"
minetest.set_node(pos, node)
return itemstack
end
})
-- Printer of some kind
minetest.register_node("computers:printer", {
description = S("Printer-Scanner Combo"),
inventory_image = "computers_printer_inv.png",
tiles = {"computers_printer_t.png","computers_printer_bt.png","computers_printer_l.png",
"computers_printer_r.png","computers_printer_b.png","computers_printer_f.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
{0.25, -0.5, -0.125, 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.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
},
},
})

354
computers/gaming.lua Normal file
View File

@ -0,0 +1,354 @@
local S = minetest.get_translator("computers")
-- Sony PlayStation lookalike
computers.register("computers:slaystation", {
description = S("Pony SlayStation"),
inventory_image = "computers_ps1_inv.png",
tiles_off = { top=true },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 0, 0, 11, 32, 6, 21 }, -- Console
{ 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip
{ 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip
{ 5, 0, 4, 5, 2, 5 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 4, 5, 2, 5 } -- Controller 2 Center
})
})
-- Sony PlayStation 2 lookalike
computers.register("computers:slaystation2", {
description = S("Pony SlayStation 2"),
inventory_image = "computers_ps2_inv.png",
tiles_off = { front=true },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 2, 2, 11, 28, 3, 19 }, -- Console (Upper part)
{ 2, 0, 11, 26, 2, 19 }, -- Console (Lower part)
{ 1, 0, 1, 4, 2, 9 }, -- Controller 1 L Grip
{ 10, 0, 1, 4, 2, 9 }, -- Controller 1 R Grip
{ 5, 0, 1, 5, 2, 8 }, -- Controller 1 Center
{ 18, 0, 1, 4, 2, 9 }, -- Controller 2 L Grip
{ 27, 0, 1, 4, 2, 9 }, -- Controller 2 R Grip
{ 22, 0, 1, 5, 2, 8 } -- Controller 2 Center
})
})
-- Nintendo Wii lookalike
computers.register("computers:wee", {
description = S("Nientiendo Wee"),
inventory_image = "computers_wii_inv.png",
tiles_off = { front=true },
node_box = computers.pixelnodebox(32, {
-- X Y Z W H L
{ 11, 0, 3, 10, 6, 26 }, -- Base
{ 12, 6, 4, 8, 22, 24 } -- Top
})
})
-- XBox lookalike
computers.register("computers:hueg_box", {
description = S("HUEG Box"),
tiles_off = { },
node_box = computers.pixelnodebox(16, {
-- X Y Z W H L
{ 0, 0, 7, 16, 6, 9 }, -- Console
{ 2, 0, 1, 11, 3, 6 }, -- Controller
{ 2, 0, 0, 2, 3, 1 },
{ 11, 0, 0, 2, 3, 1 },
})
})
-- Tetris arcade machine
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 = { "computers_cyan.png", "computers_magenta.png", "computers_red.png",
"computers_blue.png", "computers_green.png", "computers_orange.png", "computers_yellow.png" }
local background = "image[0,0;3.55,6.66;computers_black.png]"
local buttons = "button[3,4.5;0.6,0.6;left;<]"
.."button[3.6,4.5;0.6,0.6;rotateleft;"..minetest.formspec_escape(S("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;"..minetest.formspec_escape(S("R")).."]"
.."button[5.4,4.5;0.6,0.6;right;>]"
.."button[3.5,3;2,2;new;"..minetest.formspec_escape(S("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(p)
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(p)
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)
elseif t then
key(fields)
end
elseif t then
run = tick()
end
if t 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;"..S("Next...").."]label[3.8,2.7;"..S("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("computers:tetris_arcade", {
description=S("Tetris Arcade"),
drawtype = "mesh",
mesh = "computers_tetris_arcade.obj",
tiles = {"computers_tetris_arcade.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=3},
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple or nil,
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;"..minetest.formspec_escape(S("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.is_protected(pos, placer:get_player_name()) or
minetest.is_protected({x=pos.x, y=pos.y+1, z=pos.z}, placer:get_player_name()) then
return itemstack
end
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(), S("No room for place the Arcade!"))
return itemstack
end
local dir = placer:get_look_dir()
local node = {name="computers:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)}
minetest.set_node(pos, node)
itemstack:take_item()
return itemstack
end
})

99
computers/init.lua Normal file
View File

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

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=Admiral 128
Admiral64=Admiral 64
Computer Tower=Computerturm
HUEG Box=YBOX
Monitor and keyboard=Bildschirm und Tastatur
Nientiendo Wee=Tinnendo iiW
Not enough vertical space to place a server!=Es gibt nicht genug vertikalen Platz, um einen Server zu platzieren!
Pony SlayStation=Pony Slaystation
Pony SlayStation 2=Pony Slaystation 2
Pony Vanio=Pony Oiva
Rack Server=Serverschrank
SX Specter=Z Inspektor
SheFriendSOO=Freundin S00
Snapple Piepad=Apfel-Ei-Pat
WIFI Router=WiFi-Router
### printers.lua ###
3D Printer ("bedflinger")=3D Drucker ("Bettschubser")
Printer-Scanner Combo=Multifunktionsdrucker
### tetris.lua ###
L=L
New Game=Neues Spiel
Next...=Nächster…
No room for place the Arcade!=Kein Platz, um den Arkadeautomaten zu platzieren!
R=R
Score: =Punktzahl:
Tetris Arcade=Tetris-Arkadeautomat

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Torre de ordenador
HUEG Box=
Monitor and keyboard=Monitor y teclado
Nientiendo Wee=
Not enough vertical space to place a server!=¡No hay suficiente espacio para colocar un servidor!
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Servidor en rack
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=Enrutador WIFI
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=Impresora y escáner combinados
### tetris.lua ###
L=
New Game=Juego Nuevo
Next...=
No room for place the Arcade!=¡No hay lugar para colocar el arcade!
R=
Score: =
Tetris Arcade=Arcade Tetris

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Ordinateur (tour)
HUEG Box=
Monitor and keyboard=Écran et clavier
Nientiendo Wee=
Not enough vertical space to place a server!=Pas assez d'espace vertical pour placer un serveur !
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Serveur en rack
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=Routeur WiFi
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=Imprimante multi-fonction
### tetris.lua ###
L=G
New Game=Nouveau Jeu
Next...=Suivant…
No room for place the Arcade!=Pas assez de place pour placer la borne d'arcade !
R=D
Score: =Score :
Tetris Arcade=Borne Tetris

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=
HUEG Box=
Monitor and keyboard=
Nientiendo Wee=
Not enough vertical space to place a server!=Non c'è abbastanza spazio verticale per mettere un frigorifero!
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=
### tetris.lua ###
L=
New Game=
Next...=
No room for place the Arcade!=
R=
Score: =
Tetris Arcade=

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Sistem Unit
HUEG Box=
Monitor and keyboard=Monitor dan Papan Kekunci
Nientiendo Wee=
Not enough vertical space to place a server!=Tidak cukup ruang menegak untuk letak rak pelayan!
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Rak Pelayan
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=Penghala WIFI
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=Pencetak Semua Dalam Satu
### tetris.lua ###
L=
New Game=Main Baru
Next...=Seterusnya...
No room for place the Arcade!=Tiada ruang untuk letak Arked!
R=
Score: =Markah:
Tetris Arcade=Arked Tetris

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Gabinete do Computador
HUEG Box=
Monitor and keyboard=Tela e teclado
Nientiendo Wee=
Not enough vertical space to place a server!=Sem espaço vertical suficiente para colocar um servidor.
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Rack para Servidor
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=Roteador WIFI
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=Tudo em Um Impressora-Scaner
### tetris.lua ###
L=
New Game=Novo Jogo
Next...=
No room for place the Arcade!=Sem espaço para colocar o Fliperama!
R=
Score: =
Tetris Arcade=Fliperama Tetris

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Gabinete do Computador
HUEG Box=
Monitor and keyboard=Tela e teclado
Nientiendo Wee=
Not enough vertical space to place a server!=Sem espaço vertical suficiente para colocar um servidor.
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Rack para Servidor
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=Roteador WIFI
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=Tudo em Um Impressora-Scaner
### tetris.lua ###
L=
New Game=Novo Jogo
Next...=
No room for place the Arcade!=Sem espaço para colocar o Fliperama!
R=
Score: =
Tetris Arcade=Fliperama Tetris

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=Системный блок
HUEG Box=
Monitor and keyboard=Монитор и клавиатура
Nientiendo Wee=
Not enough vertical space to place a server!=Недостаточно вертикального пространства для размещения сервера!
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=Стоечный сервер
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=WIFI-роутер
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=МФУ
### tetris.lua ###
L=
New Game=Новая игра
Next...=Далее...
No room for place the Arcade!=Недостаточно места для размещения игрового автомата!
R=
Score: =Счёт:
Tetris Arcade=Игровой автомат Тетрис

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=计算机箱
HUEG Box=
Monitor and keyboard=显示器和键盘
Nientiendo Wee=
Not enough vertical space to place a server!=高度不足,无法放置服务器!
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=机架式服务器
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=无线路由器
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=打印扫描一体机
### tetris.lua ###
L=
New Game=新游戏
Next...=下一个。。。
No room for place the Arcade!=没有地方放游戏机!
R=
Score: =分数:
Tetris Arcade=俄罗斯方块游戏机

View File

@ -0,0 +1,35 @@
# textdomain: computer
### computers.lua ###
Admiral128=
Admiral64=
Computer Tower=
HUEG Box=
Monitor and keyboard=
Nientiendo Wee=
Not enough vertical space to place a server!=
Pony SlayStation=
Pony SlayStation 2=
Pony Vanio=
Rack Server=
SX Specter=
SheFriendSOO=
Snapple Piepad=
WIFI Router=
### printers.lua ###
3D Printer ("bedflinger")=
Printer-Scanner Combo=
### tetris.lua ###
L=
New Game=
Next...=
No room for place the Arcade!=
R=
Score: =
Tetris Arcade=

3
computers/mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = computers
depends = default, basic_materials, unifieddyes
optional_depends = screwdriver

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,119 @@
v -0.34 0.023 0.335
v -0.34 0.013 0.362
v 0.332 0.023 0.335
v 0.332 -0.433 0.183
v 0.332 0.013 0.363
v -0.34 -0.5 -0.313
v -0.34 -0.433 -0.313
v 0.332 -0.5 -0.313
v -0.34 -0.5 0.183
v 0.332 -0.5 0.183
v -0.34 -0.433 0.183
v -0.34 -0.433 0.21
v 0.332 -0.433 0.21
v 0.332 -0.5 0.21
v -0.34 -0.5 0.21
v -0.32 -0.418 0.195
v -0.32 -0.001 0.334
v 0.312 -0.418 0.195
v -0.34 -0.433 -0.159
v 0.332 -0.433 -0.313
v 0.312 -0.001 0.334
v 0.332 -0.433 -0.159
vt 0.683 0.005
vt 0.683 0.021
vt 0.31 0.005
vt 0.044 0.009
vt 0.31 0.021
vt 0.753 0.12
vt 0.81 0.12
vt 0.753 0.598
vt 0.857 0.982
vt 0.746 0.982
vt 0.857 0.831
vt 0.948 0.009
vt 0.878 0.982
vt 0.878 0.831
vt 0.984 0.982
vt 0.863 0.831
vt 0.863 0.982
vt 0.728 0.491
vt 0.728 0.99
vt 0.011 0.491
vt 0.832 0.13
vt 0.982 0.13
vt 0.832 0.79
vt 0.758 0.755
vt 0.758 0.813
vt 0.756 0.753
vt 0.799 0.813
vt 0.756 0.815
vt 0.799 0.755
vt 0.8 0.815
vt 0.708 0.114
vt 0.708 0.471
vt 0.006 0.114
vt 0.346 0.099
vt 0.497 0.033
vt 0.497 0.099
vt 0.991 0.099
vt 0.838 0.033
vt 0.991 0.033
vt 0.008 0.009
vt 0.013 0.023
vt 0.984 0.01
vt 0.943 0.023
vt 0.049 0.023
vt 0.81 0.598
vt 0.746 0.831
vt 0.984 0.831
vt 0.011 0.99
vt 0.982 0.79
vt 0.8 0.753
vt 0.006 0.471
vt 0.008 0.099
vt 0.008 0.033
vt 0.498 0.099
vt 0.498 0.033
vt 0.979 0.024
s off
f 1/1 2/2 3/3
f 4/4 3/3 5/5
f 6/6 7/7 8/8
f 9/9 6/10 10/11
f 1/1 11/12 2/2
f 12/13 13/14 2/15
f 13/14 12/13 14/16
f 9/9 10/11 15/17
f 16/18 17/19 18/20
f 7/21 19/22 20/23
f 21/24 17/25 3/26
f 16/27 1/28 17/25
f 18/29 21/24 3/26
f 16/27 18/29 11/30
f 19/31 11/32 22/33
f 22/34 8/35 20/36
f 6/37 19/38 7/39
f 10/40 4/4 14/41
f 11/12 9/42 12/43
f 2/2 5/5 3/3
f 13/44 4/4 5/5
f 7/7 20/45 8/8
f 6/10 8/46 10/11
f 11/12 12/43 2/2
f 13/14 5/47 2/15
f 12/13 15/17 14/16
f 10/11 14/16 15/17
f 17/19 21/48 18/20
f 19/22 22/49 20/23
f 17/25 1/28 3/26
f 11/30 1/28 16/27
f 4/50 18/29 3/26
f 18/29 4/50 11/30
f 11/32 4/51 22/33
f 4/52 10/53 8/35
f 22/34 4/52 8/35
f 9/54 11/55 6/37
f 11/55 19/38 6/37
f 4/4 13/44 14/41
f 9/42 15/56 12/43

View File

@ -0,0 +1,133 @@
v 0.332 -0.433 0.183
v -0.34 -0.5 -0.313
v -0.34 -0.433 -0.313
v 0.332 -0.5 -0.313
v -0.34 -0.5 0.183
v 0.332 -0.5 0.183
v -0.34 -0.433 0.183
v -0.34 -0.433 0.21
v 0.332 -0.433 0.21
v 0.332 -0.5 0.21
v -0.34 -0.5 0.21
v -0.34 -0.433 -0.159
v 0.332 -0.433 -0.313
v 0.332 -0.433 -0.159
v -0.339 -0.432 -0.313
v -0.339 -0.401 -0.312
v 0.331 -0.432 -0.313
v 0.331 -0.432 0.207
v 0.331 -0.401 -0.312
v -0.339 -0.432 0.207
v -0.339 -0.405 0.197
v 0.331 -0.405 0.197
v -0.319 -0.425 0.187
v -0.319 -0.425 -0.288
v 0.311 -0.425 0.187
v 0.311 -0.425 -0.288
vt 0.753 0.12
vt 0.81 0.12
vt 0.753 0.598
vt 0.857 0.982
vt 0.746 0.982
vt 0.857 0.831
vt 0.878 0.831
vt 0.878 0.982
vt 0.863 0.831
vt 0.863 0.982
vt 0.858 0.829
vt 0.886 0.829
vt 0.858 0.95
vt 0.936 0.853
vt 0.936 0.923
vt 0.798 0.853
vt 0.346 0.099
vt 0.497 0.033
vt 0.497 0.099
vt 0.991 0.099
vt 0.838 0.033
vt 0.991 0.033
vt 0.008 0.009
vt 0.044 0.009
vt 0.013 0.023
vt 0.948 0.009
vt 0.984 0.01
vt 0.943 0.023
vt 0.81 0.598
vt 0.746 0.831
vt 0.886 0.95
vt 0.912 0.963
vt 0.786 0.838
vt 0.886 0.908
vt 0.922 0.84
vt 0.798 0.923
vt 0.008 0.099
vt 0.008 0.033
vt 0.498 0.099
vt 0.498 0.033
vt 0.049 0.023
vt 0.979 0.024
vt 0.683 0.005
vt 0.683 0.021
vt 0.31 0.005
vt 0.31 0.021
vt 0.984 0.982
vt 0.922 0.868
vt 0.922 0.952
vt 0.802 0.868
vt 0.758 0.755
vt 0.758 0.813
vt 0.756 0.753
vt 0.799 0.813
vt 0.756 0.815
vt 0.799 0.755
vt 0.8 0.815
vt 0.984 0.831
vt 0.802 0.952
vt 0.8 0.753
vt 0.896 0.949
vt 0.904 0.849
vt 0.888 0.925
vt 0.811 0.85
s off
f 2/1 3/2 4/3
f 5/4 2/5 6/6
f 9/7 8/8 10/9
f 5/4 6/6 11/10
f 3/11 12/12 13/13
f 12/14 7/15 14/16
f 14/17 4/18 13/19
f 2/20 12/21 3/22
f 6/23 1/24 10/25
f 7/26 5/27 8/28
f 3/2 13/29 4/3
f 2/5 4/30 6/6
f 8/8 11/10 10/9
f 6/6 10/9 11/10
f 12/12 14/31 13/13
f 8/32 9/33 1/34 7/35
f 7/15 1/36 14/16
f 1/37 6/38 4/18
f 14/17 1/37 4/18
f 5/39 7/40 2/20
f 7/40 12/21 2/20
f 1/24 9/41 10/25
f 5/27 11/42 8/28
f 15/43 16/44 17/45
f 18/24 17/45 19/46
f 15/43 20/26 16/44
f 21/8 22/7 16/47
f 23/48 24/49 25/50
f 26/51 24/52 17/53
f 23/54 15/55 24/52
f 25/56 26/51 17/53
f 23/54 25/56 20/57
f 16/44 19/46 17/45
f 22/41 18/24 19/46
f 20/26 21/28 16/44
f 22/7 19/58 16/47
f 24/49 26/59 25/50
f 24/52 15/55 17/53
f 20/57 15/55 23/54
f 18/60 25/56 17/53
f 25/56 18/60 20/57
f 21/61 20/62 18/63 22/64

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,136 @@
v -0.45 1.3 -0.45
v -0.45 1.3 -0.5
v 0.45 1.3 -0.5
v 0.45 1.3 -0.45
v -0.45 1.5 -0.45
v -0.45 1.5 -0.5
v 0.45 1.5 -0.5
v 0.45 1.5 -0.45
v 0.45 -0.495 -0.5
v 0.45 0.305 -0.5
v -0.45 -0.495 -0.5
v -0.45 0.305 -0.5
v 0.45 -0.498 0.5
v 0.45 -0.498 -0.5
v 0.5 -0.498 -0.5
v 0.5 -0.498 0.5
v 0.45 1.499 0.5
v 0.45 1.499 -0.5
v 0.5 1.499 -0.5
v 0.5 1.499 0.5
v 0.5 -0.5 -0.5
v 0.5 -0.5 0.5
v -0.5 -0.5 0.5
v -0.5 -0.5 -0.5
v 0.5 1.5 -0.5
v -0.5 1.5 -0.5
v -0.5 1.5 0.5
v 0.5 1.5 0.5
v -0.5 -0.498 0.5
v -0.5 -0.498 -0.5
v -0.45 -0.498 -0.5
v -0.45 -0.498 0.5
v -0.5 1.499 0.5
v -0.5 1.499 -0.5
v -0.45 1.499 -0.5
v -0.45 1.499 0.5
v 0.45 0.305 -0.5
v 0.45 0.474 -0.137
v -0.45 0.305 -0.5
v -0.45 0.474 -0.137
v 0.45 0.473 -0.138
v 0.45 0.614 -0.087
v -0.45 0.473 -0.138
v -0.45 0.614 -0.087
v 0.45 0.611 -0.085
v 0.45 1.399 0.054
v -0.45 0.611 -0.085
v -0.45 1.399 0.054
v 0.45 1.395 0.055
v 0.45 1.495 0.055
v -0.45 1.395 0.055
v -0.45 1.495 0.055
vt 0.25 0.745
vt 0.25 0.516
vt 0.495 0.516
vt 0.495 0.745
vt 0.5 0.745
vt 0.25 0.745
vt 0.25 0.693
vt 0.5 0.693
vt 0.245 1
vt 0 1
vt 0 0.926
vt 0.245 0.926
vt 0 0.985
vt 0.246 0.985
vt 0.247 1
vt 0.255 0.396
vt 0.255 0.252
vt 0.49 0.252
vt 0.49 0.396
vt 0.747 0.252
vt 1.001 0.252
vt 1 0.749
vt 0.748 0.749
vt 0.971 0.251
vt 0.999 0.251
vt 1 0.749
vt 0.972 0.749
vt 0.25 0.75
vt 0 0.75
vt 0.001 0.252
vt 0.25 0.252
vt 0.742 0.745
vt 0.501 0.745
vt 0.501 0.255
vt 0.742 0.255
vt 0.952 0.253
vt 1 0.253
vt 1 0.749
vt 0.952 0.749
vt 1 0.749
vt 0.745 0.749
vt 0.745 0.251
vt 1.001 0.251
vt 0.256 0.485
vt 0.255 0.402
vt 0.495 0.401
vt 0.495 0.485
vt 0.261 0.516
vt 0.261 0.485
vt 0.494 0.485
vt 0.494 0.516
vt 0 0.745
vt 0 0.703
vt 0.246 0.704
vt 0.246 0.745
vt 0.25 0.25
vt 0 0.25
vt 0 0
vt 0.25 0
vt 0.25 0.75
vt 0.25 1
vt 0 0.75
vt 1 0.25
vt 1 0.75
vt 0.75 0.75
vt 0.75 0.25
s off
f 46/1 45/2 47/3 48/4
f 6/5 7/6 3/7 2/8
f 8/9 5/10 1/11 4/12
f 1/10 2/13 3/14 4/15
f 10/16 9/17 11/18 12/19
f 17/20 18/21 14/22 13/23
f 18/24 19/25 15/26 14/27
f 19/28 20/29 16/30 15/31
f 33/32 34/33 30/34 29/35
f 34/36 35/37 31/38 30/39
f 35/40 36/41 32/42 31/43
f 38/44 37/45 39/46 40/47
f 42/48 41/49 43/50 44/51
f 50/52 49/53 51/54 52/55
f 21/56 22/57 23/58 24/59
f 25/60 26/61 27/10 28/62
f 22/63 28/64 27/65 23/66

View File

@ -0,0 +1,28 @@
v -0.183 -0.5 0.45
v -0.183 -0.5 -0.35
v 0.183 -0.5 -0.35
v 0.183 -0.5 0.45
v -0.183 0.336 0.45
v 0.183 0.336 0.45
v 0.183 0.336 -0.35
v -0.183 0.336 -0.35
vt 1 0.75
vt 0.5 0.75
vt 0.5 0.5
vt 1 0.5
vt 0.5 1
vt 1 1
vt 0.5 0
vt 0 0.5
vt 0 0
vt 0.25 1
vt 0.25 0.5
vt 1 0
vt 0 1
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

62
computers/printers.lua Normal file
View File

@ -0,0 +1,62 @@
local S = minetest.get_translator("computers")
-- "bedflinger" style 3D Printer (Prusa i3 or equivalent)
local cbox = {
type = "fixed",
fixed = {-0.25, -0.25, -0.5, 0.3, 0.3, 0.25 }
}
minetest.register_node("computers:3dprinter_bedflinger", {
description = S('3D Printer ("bedflinger" design)'),
inventory_image = "computers_3dprinter_bedflinger_inv.png",
tiles = {
{ name = "computers_3dprinter.png", color = 0xffffffff },
"computers_3dprinter_filament.png"
},
paramtype = "light",
walkable = true,
groups = {snappy=3, ud_param2_colorable = 1},
sound = default.node_sound_wood_defaults(),
drawtype = "mesh",
mesh = "computers_3dprinter_bedflinger.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = cbox,
collision_box = cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
on_dig = unifieddyes.on_dig,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
})
-- COreXY style printer (Hypercube or similar)
cbox = {
type = "fixed",
fixed = {-0.4375, -0.5, -0.5, 0.4375, 0.5, 0.375 }
}
minetest.register_node("computers:3dprinter_corexy", {
description = S('3D Printer (CoreXY design)'),
tiles = {
{ name = "computers_3dprinter.png", color = 0xffffffff },
"computers_3dprinter_filament.png"
},
paramtype = "light",
walkable = true,
groups = {snappy=3, ud_param2_colorable = 1},
sound = default.node_sound_wood_defaults(),
drawtype = "mesh",
mesh = "computers_3dprinter_corexy.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
selection_box = cbox,
collision_box = cbox,
after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end,
on_dig = unifieddyes.on_dig,
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
})

141
computers/recipes.lua Normal file
View File

@ -0,0 +1,141 @@
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
minetest.register_craft({
output = "computers:shefriendSOO",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:slaystation",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:vanio",
recipe = {
{ "basic_materials:plastic_sheet", "", "" },
{ "default:glass", "", "" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:specter",
recipe = {
{ "", "", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:slaystation2",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:admiral64",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "group:wood", "group:wood", "group:wood" }
}
})
minetest.register_craft({
output = "computers:admiral128",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
}
})
minetest.register_craft({
output = "computers:wee",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:copper_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:piepad",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" }
}
})
--new stuff
minetest.register_craft({
output = "computers:monitor",
recipe = {
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:glass","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal_fragment", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:router",
recipe = {
{ "default:steel_ingot","","" },
{ "default:steel_ingot" ,"basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "default:mese_crystal_fragment","basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:tower",
recipe = {
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:printer",
recipe = {
{ "basic_materials:plastic_sheet", "default:steel_ingot","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "default:coal_lump", "basic_materials:plastic_sheet" }
}
})
minetest.register_craft({
output = "computers:printer",
recipe = {
{ "basic_materials:plastic_sheet", "default:steel_ingot","" },
{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet", }
}
})
minetest.register_craft({
output = "computers:server",
recipe = {
{ "computers:tower", "computers:tower", "computers:tower", },
{ "computers:tower", "computers:tower", "computers:tower" },
{ "computers:tower", "computers:tower", "computers:tower" }
}
})
minetest.register_craft({
output = "computers:tetris_arcade",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet", },
{ "dye:black", "default:glass", "dye:black" },
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet" }
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

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.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

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: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

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