Compare commits
197 Commits
2019-06-03
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
94e25c2192 | ||
|
d8ae7a360d | ||
|
40898101be | ||
|
79416b962c | ||
|
00ee805ed7 | ||
|
6fb69a56a5 | ||
|
335559feb3 | ||
|
a100d20d4d | ||
|
b2e5c81e4d | ||
|
8f796e43af | ||
|
1ef4837abe | ||
|
d0ab9b82ce | ||
|
fa3f7f816b | ||
|
d400e421ce | ||
|
792c23a7fe | ||
|
0d5cab9455 | ||
|
080551e647 | ||
|
280924c02b | ||
|
52f7c54702 | ||
|
951f77491c | ||
|
46c71131c5 | ||
|
80b4f242e0 | ||
|
ecd67f0eab | ||
|
60d63cda6f | ||
|
89703525e6 | ||
|
2c08c1f97b | ||
|
6bbaa7491d | ||
|
b4297d68a0 | ||
|
77f2b0e05b | ||
|
9c7eb2e502 | ||
|
55bbd478d9 | ||
|
0384943a0a | ||
|
33710f710b | ||
|
8893d66dc6 | ||
|
a598fa3067 | ||
|
6fa1bbeb1c | ||
|
0403f47f86 | ||
|
0f57b2268a | ||
|
806c8c5e78 | ||
|
37bc0ed58d | ||
|
0a605bdb96 | ||
|
97d4c65230 | ||
|
acf17f2ba4 | ||
|
5ffdc26673 | ||
|
70381161fd | ||
|
fe1b9a1ef1 | ||
|
546cd7110f | ||
|
3ba59dc2d5 | ||
|
2f0e52f978 | ||
|
694bfe5fe7 | ||
|
769e14fd11 | ||
|
16bcc35ba2 | ||
|
0c2271fa46 | ||
|
d68e90f017 | ||
|
a8fceb249d | ||
|
21ae9f8c17 | ||
|
63ad77e242 | ||
|
32a32fa003 | ||
|
d9c42344ab | ||
|
f6f6f3a3c3 | ||
|
f1dc68ab21 | ||
|
240c735225 | ||
|
b6c64c6314 | ||
|
790c03213d | ||
|
81e0d4ea7e | ||
|
9ffe2b7d69 | ||
|
0268767ac9 | ||
|
950210a6e3 | ||
|
c70fb1a1ed | ||
|
40cd59aa24 | ||
|
da1f2b1430 | ||
|
e7995ce981 | ||
|
0fdc8557b3 | ||
|
40cfabb38a | ||
|
44542cb6a9 | ||
|
eeec27f60b | ||
|
bef62eef1e | ||
|
18ac518389 | ||
|
0e4687e236 | ||
|
0e8a213185 | ||
|
3b5b6adfda | ||
|
9cc6f90778 | ||
|
90da464add | ||
|
cc0887cfb4 | ||
|
968d706e9b | ||
|
bc55cde65c | ||
|
e049380408 | ||
|
e57c4a55e6 | ||
|
e73b4affe7 | ||
|
62cdcc5795 | ||
|
fd596ea83b | ||
|
9ab3cb361f | ||
|
4b05c86486 | ||
|
f9ca183f2a | ||
|
a57723df7d | ||
|
af808c7586 | ||
|
99d5d96113 | ||
|
93bf5d76ae | ||
|
ec06010320 | ||
|
96a0862833 | ||
|
77bb9636bc | ||
|
77af2295ae | ||
|
f2cd1fbd49 | ||
|
43de5b79ae | ||
|
0678ecdafc | ||
|
ec1be77d7e | ||
|
1ecde7e278 | ||
|
47a029923c | ||
|
c2122a634a | ||
|
98b281aade | ||
|
1090c9139c | ||
|
1c7ceb2e90 | ||
|
f0ab7a6c78 | ||
|
0800810530 | ||
|
b88d76d07f | ||
|
3bc711b9e3 | ||
|
4a72054c78 | ||
|
204beaaaac | ||
|
f7412c6191 | ||
|
0e52553b8a | ||
|
a9809998bf | ||
|
ea6e75fa6a | ||
|
661636bb5c | ||
|
77df83e161 | ||
|
92649fad62 | ||
|
e3ec030468 | ||
|
4f23eeec3e | ||
|
efba9e0648 | ||
|
eae0f6cb3c | ||
|
57d51e4596 | ||
|
6f383c66b0 | ||
|
9d28edc3ff | ||
|
22e4e0c42b | ||
|
1675a93fec | ||
|
facee91684 | ||
|
07e42fb2f5 | ||
|
512ae9ec67 | ||
|
4d6458b684 | ||
|
6b18347fb0 | ||
|
c1d9cc1de2 | ||
|
fc28c4385a | ||
|
c6e35a4e5c | ||
|
ea73ff6f6e | ||
|
1faa55a89e | ||
|
2b7905e12d | ||
|
55e1714cac | ||
|
9a814da186 | ||
|
b72c15076e | ||
|
18744ee66d | ||
|
7f67f4a035 | ||
|
8417cddf71 | ||
|
117bcddab9 | ||
|
377fb58c38 | ||
|
5aecf5f2c7 | ||
|
9be79ec6d0 | ||
|
4c0f068909 | ||
|
ce3c77564c | ||
|
43333687bd | ||
|
9ec3eab6f4 | ||
|
9f5cc15e62 | ||
|
ed41161554 | ||
|
77933d9dc3 | ||
|
c118b43711 | ||
|
f6da0f7329 | ||
|
e84a184946 | ||
|
0c9d883f28 | ||
|
97e7a31830 | ||
|
d897e6d97c | ||
|
8532dee8ed | ||
|
356f872327 | ||
|
6c07a31857 | ||
|
daef49a255 | ||
|
1072598701 | ||
|
60be4a6320 | ||
|
67f2065408 | ||
|
f90834ff06 | ||
|
c871e0d388 | ||
|
d17ec1d978 | ||
|
9dcc6c2b4d | ||
|
80352d69e1 | ||
|
1d59c2258d | ||
|
11e6b5d92a | ||
|
7e7b2bcabb | ||
|
b28f1314da | ||
|
17ea2040e2 | ||
|
ed9fb6a34d | ||
|
13862c1a48 | ||
|
e289e79aea | ||
|
80ab12710b | ||
|
1b94c940d7 | ||
|
df44dd3dad | ||
|
bff90189fc | ||
|
b407f06dc4 | ||
|
e6dc2c5508 | ||
|
bde2bf2bf6 | ||
|
ea160a6519 | ||
|
631813bb2d |
11
.github/workflows/luacheck.yml
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
name: luacheck
|
||||||
|
on: [push, pull_request]
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
- uses: Roang-zero1/factorio-mod-luacheck@master
|
||||||
|
with:
|
||||||
|
luacheckrc_url: ""
|
61
.luacheckrc
|
@ -1,28 +1,45 @@
|
||||||
unused_args = false
|
unused_args = false
|
||||||
allow_defined_top = true
|
|
||||||
|
|
||||||
read_globals = {
|
|
||||||
"DIR_DELIM",
|
|
||||||
"minetest", "core",
|
|
||||||
"unpack",
|
|
||||||
"dump",
|
|
||||||
table = { fields = { "copy", "getn" } },
|
|
||||||
"vector", "nodeupdate",
|
|
||||||
"VoxelManip", "VoxelArea",
|
|
||||||
"PseudoRandom", "ItemStack",
|
|
||||||
"intllib",
|
|
||||||
"default",
|
|
||||||
"stairsplus",
|
|
||||||
"signs_lib",
|
|
||||||
"beds",
|
|
||||||
"technic",
|
|
||||||
"mesecon",
|
|
||||||
"unifieddyes",
|
|
||||||
"creative",
|
|
||||||
"homedecor_i18n",
|
|
||||||
}
|
|
||||||
|
|
||||||
globals = {
|
globals = {
|
||||||
|
"homedecor",
|
||||||
|
"homedecor_lighting",
|
||||||
|
"homedecor_windows_and_treatments",
|
||||||
|
"homedecor_roofing",
|
||||||
|
"homedecor_misc",
|
||||||
|
"homedecor_exterior",
|
||||||
|
"homedecor_electrical",
|
||||||
|
"homedecor_cobweb",
|
||||||
|
"lavalamp",
|
||||||
|
"lrfurn",
|
||||||
|
"signs_lib",
|
||||||
|
"homedecor_doors_and_gates",
|
||||||
|
|
||||||
|
-- mod-deps
|
||||||
"armor",
|
"armor",
|
||||||
|
xcompat = {fields = {"player"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
read_globals = {
|
||||||
|
"minetest", "core",
|
||||||
|
"vector", "ItemStack",
|
||||||
|
"dump",
|
||||||
|
|
||||||
|
-- Stdlib
|
||||||
|
string = {fields = {"split", "trim"}},
|
||||||
|
table = {fields = {"copy", "getn"}},
|
||||||
|
|
||||||
|
-- mod-deps
|
||||||
|
"default",
|
||||||
|
"unifieddyes",
|
||||||
|
"player_api",
|
||||||
|
"screwdriver",
|
||||||
|
"hopper",
|
||||||
|
"mesecon",
|
||||||
|
"skins",
|
||||||
|
"stairsplus",
|
||||||
|
"creative",
|
||||||
|
"doors",
|
||||||
|
"i3",
|
||||||
|
"xcompat",
|
||||||
|
"player_monoids"
|
||||||
|
}
|
8
README
|
@ -1,8 +0,0 @@
|
||||||
This is what I consider to be a fairly feature-filled home decor modpack.
|
|
||||||
See the forum thread at
|
|
||||||
https://forum.minetest.net/viewtopic.php?f=11&t=2041 for details about
|
|
||||||
this modpack.
|
|
||||||
|
|
||||||
Dependencies: unifieddyes and a Minetest engine build newer than 2017-01-23.
|
|
||||||
|
|
||||||
Recommends: signs_lib, windmill, moreblocks, unified_inventory.
|
|
28
README.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# Minetest Homedecor Modpack
|
||||||
|
|
||||||
|
[![ContentDB](https://content.minetest.net/packages/VanessaE/homedecor_modpack/shields/downloads/)](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
|
||||||
|
|
||||||
|
A fairly feature-filled home decor modpack that is game agnostic.
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
first class support for:
|
||||||
|
|
||||||
|
* Minetest Game
|
||||||
|
* Farlands Reloaded
|
||||||
|
* Hades
|
||||||
|
* Mineclone2, Mineclone5
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
* [Github](https://github.com/mt-mods/homedecor_modpack)
|
||||||
|
* [Contentdb](https://content.minetest.net/packages/VanessaE/homedecor_modpack/)
|
||||||
|
* [Forums](https://forum.minetest.net/viewtopic.php?f=11&t=2041)
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
|
||||||
|
required:
|
||||||
|
|
||||||
|
* [Unifieddyes](https://github.com/mt-mods/unifieddyes)
|
||||||
|
* [Basic Materials](https://github.com/mt-mods/basic_materials)
|
||||||
|
* [xcompat](https://github.com/mt-mods/xcompat)
|
19
bower.json
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
"name": "homedecor_modpack",
|
|
||||||
"description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
|
|
||||||
"keywords": [
|
|
||||||
"building",
|
|
||||||
"cosmetic",
|
|
||||||
"homedecor modpack",
|
|
||||||
"homedecor_modpack"
|
|
||||||
],
|
|
||||||
"homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
|
|
||||||
"project": "https://github.com/minetest-mods/homedecor_modpack",
|
|
||||||
"forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
|
|
||||||
"screenshots": [
|
|
||||||
"http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
"VanessaE"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
local S = homedecor.gettext
|
local S = minetest.get_translator("building_blocks")
|
||||||
|
|
||||||
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
|
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
|
||||||
minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar")
|
minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar")
|
||||||
|
@ -8,16 +8,9 @@ if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_modpath("moreblocks") then
|
if minetest.get_modpath("moreblocks") then
|
||||||
|
minetest.register_alias_force("moreblocks:tar", "building_blocks:Tar")
|
||||||
stairsplus:register_alias_all("building_blocks", "tar", "building_blocks", "Tar")
|
stairsplus:register_alias_all("building_blocks", "tar", "building_blocks", "Tar")
|
||||||
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble")
|
stairsplus:register_alias_all("building_blocks", "marble", "building_blocks", "Marble")
|
||||||
for _, i in ipairs(stairsplus.shapes_list) do
|
|
||||||
local class = i[1]
|
|
||||||
local cut = i[2]
|
|
||||||
minetest.unregister_item("moreblocks:"..class.."tar"..cut)
|
|
||||||
minetest.register_alias("moreblocks:"..class.."tar"..cut, "building_blocks:"..class.."tar"..cut)
|
|
||||||
end
|
|
||||||
minetest.unregister_item("moreblocks:tar")
|
|
||||||
minetest.register_alias("moreblocks:tar", "building_blocks:Tar")
|
|
||||||
stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")
|
stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar")
|
||||||
|
|
||||||
if minetest.get_modpath("gloopblocks") then
|
if minetest.get_modpath("gloopblocks") then
|
||||||
|
@ -40,8 +33,11 @@ if not minetest.get_modpath("technic") then
|
||||||
description = S("Granite"),
|
description = S("Granite"),
|
||||||
tiles = { "technic_granite.png" },
|
tiles = { "technic_granite.png" },
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=1},
|
groups = {cracky=1, dig_stone=2, pickaxey=5},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_mcl_hardness=1.6,
|
||||||
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "technic:granite 9",
|
output = "technic:granite 9",
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
default
|
|
||||||
homedecor_common
|
|
||||||
moreblocks?
|
|
||||||
gloopblocks?
|
|
||||||
stairs?
|
|
|
@ -1,4 +1,3 @@
|
||||||
local S = homedecor.gettext
|
|
||||||
local modpath = minetest.get_modpath("building_blocks")
|
local modpath = minetest.get_modpath("building_blocks")
|
||||||
|
|
||||||
dofile(modpath.."/alias.lua")
|
dofile(modpath.."/alias.lua")
|
||||||
|
|
20
building_blocks/locale/building_blocks.de.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granit
|
||||||
|
Grate=Rost
|
||||||
|
Streak Free Glass=Schlierenfreies Glas
|
||||||
|
Wood Framed Glass=Holzrahmenglas
|
||||||
|
Adobe=Adobe
|
||||||
|
Fake Grass=Falsches Gras
|
||||||
|
Hardwood=Hartholz
|
||||||
|
Roof block=Dachblock
|
||||||
|
Tar=Teer
|
||||||
|
Marble=Marmor
|
||||||
|
Brobble Spread=Ziesterboden
|
||||||
|
Gravel Spread=Kiesboden
|
||||||
|
Tarmac Spread=Asphaltboden
|
||||||
|
Terrycloth towel=Frottiertuch
|
||||||
|
Chess board tiling=Schachbrettkacheln
|
||||||
|
Fireplace=Kamin
|
||||||
|
Small bundle of sticks=Kleines Bündel Stöcke
|
||||||
|
Tar base=Teerbase
|
||||||
|
Tar Knife=Teermesser
|
20
building_blocks/locale/building_blocks.es.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granito
|
||||||
|
Grate=Reja
|
||||||
|
Streak Free Glass=Vídrio sin rayas
|
||||||
|
Wood Framed Glass=Vídrio enmarcado en madera
|
||||||
|
Adobe=Adobe
|
||||||
|
Fake Grass=Hierba falsa
|
||||||
|
Hardwood=Madera dura
|
||||||
|
Roof block=Bloque de techo
|
||||||
|
Tar=Alquitrán
|
||||||
|
Marble=Mármol
|
||||||
|
Brobble Spread=Mezcla de Ladroquines
|
||||||
|
Gravel Spread=Mezcla de gravilla
|
||||||
|
Tarmac Spread=Mezcla de asfalto
|
||||||
|
Terrycloth towel=Toalla
|
||||||
|
Chess board tiling=Azulejos de ajedrez
|
||||||
|
Fireplace=Chimenea
|
||||||
|
Small bundle of sticks=Manojo de palitos
|
||||||
|
Tar base=Base de alquitrán
|
||||||
|
Tar Knife=Cuchillo de alquitrán
|
20
building_blocks/locale/building_blocks.fr.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granit
|
||||||
|
Grate=Grille
|
||||||
|
Streak Free Glass=Verre anti-rayures
|
||||||
|
Wood Framed Glass=Verre encadré de bois
|
||||||
|
Adobe=Pisé
|
||||||
|
Fake Grass=Herbe synthétique
|
||||||
|
Hardwood=Bois dur (feuillu)
|
||||||
|
Roof block=Bloc de toit
|
||||||
|
Tar=Goudron
|
||||||
|
Marble=Marbre
|
||||||
|
Brobble Spread=Tapis rouge
|
||||||
|
Gravel Spread=Tapis de gravier
|
||||||
|
Tarmac Spread=Tapis de goudron
|
||||||
|
Terrycloth towel=Serviette éponge
|
||||||
|
Chess board tiling=Pavage en échiquier
|
||||||
|
Fireplace=Cheminée
|
||||||
|
Small bundle of sticks=Petit fagot de brindilles
|
||||||
|
Tar base=Pâte de goudron
|
||||||
|
Tar Knife=Couteau à goudron
|
20
building_blocks/locale/building_blocks.ms.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granit
|
||||||
|
Grate=Jeriji
|
||||||
|
Streak Free Glass=Kaca Bebas Calar
|
||||||
|
Wood Framed Glass=Kaca Berbingkai Kayu
|
||||||
|
Adobe=Adob
|
||||||
|
Fake Grass=Rumput Tiruan
|
||||||
|
Hardwood=Kayu Keras
|
||||||
|
Roof block=Blok Bumbung
|
||||||
|
Tar=Tar
|
||||||
|
Marble=Marmar
|
||||||
|
Brobble Spread=Sebaran Batu Merah
|
||||||
|
Gravel Spread=Sebaran Kelikir
|
||||||
|
Tarmac Spread=Sebaran Tar
|
||||||
|
Terrycloth towel=Kain Tuala
|
||||||
|
Chess board tiling=Jubin Papan Catur
|
||||||
|
Fireplace=Pendiangan
|
||||||
|
Small bundle of sticks=Seberkas Kecil Serpihan Kayu
|
||||||
|
Tar base=Campuran Tar
|
||||||
|
Tar Knife=Pisau Tar
|
20
building_blocks/locale/building_blocks.pt.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granito
|
||||||
|
Grate=Grelha
|
||||||
|
Streak Free Glass=Vidro Sem Riscos
|
||||||
|
Wood Framed Glass=Vidro com Bordas de Madeira
|
||||||
|
Adobe=Argila
|
||||||
|
Fake Grass=Grama Falsa
|
||||||
|
Hardwood=Madeira
|
||||||
|
Roof block=Bloco de telhado
|
||||||
|
Tar=Alcatrão
|
||||||
|
Marble=Mármore
|
||||||
|
Brobble Spread=Calçado
|
||||||
|
Gravel Spread=Espalhamento de Cascalho
|
||||||
|
Tarmac Spread=Espalhamento das Estradas
|
||||||
|
Terrycloth towel=Toalha de Roupinha
|
||||||
|
Chess board tiling=Revestimento de xadrez
|
||||||
|
Fireplace=Lareira
|
||||||
|
Small bundle of sticks=Pequeno amontoado de gravetos
|
||||||
|
Tar base=Base para alcatrão
|
||||||
|
Tar Knife=Faca de Alcatrão
|
20
building_blocks/locale/building_blocks.pt_BR.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Granito
|
||||||
|
Grate=Grelha
|
||||||
|
Streak Free Glass=Vidro Sem Riscos
|
||||||
|
Wood Framed Glass=Vidro com Bordas de Madeira
|
||||||
|
Adobe=Argila
|
||||||
|
Fake Grass=Grama Falsa
|
||||||
|
Hardwood=Madeira
|
||||||
|
Roof block=Bloco de telhado
|
||||||
|
Tar=Alcatrão
|
||||||
|
Marble=Mármore
|
||||||
|
Brobble Spread=Calçado
|
||||||
|
Gravel Spread=Espalhamento de Cascalho
|
||||||
|
Tarmac Spread=Espalhamento das Estradas
|
||||||
|
Terrycloth towel=Toalha de Roupinha
|
||||||
|
Chess board tiling=Revestimento de xadrez
|
||||||
|
Fireplace=Lareira
|
||||||
|
Small bundle of sticks=Pequeno amontoado de gravetos
|
||||||
|
Tar base=Base para alcatrão
|
||||||
|
Tar Knife=Faca de Alcatrão
|
20
building_blocks/locale/building_blocks.ru.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=Гранит
|
||||||
|
Grate=Каминная решётка
|
||||||
|
Streak Free Glass=Стекло без стыков
|
||||||
|
Wood Framed Glass=Деревянное окно
|
||||||
|
Adobe=Саман
|
||||||
|
Fake Grass=Псевдо трава
|
||||||
|
Hardwood=Твёрдая древесина
|
||||||
|
Roof block=Кровельный блок
|
||||||
|
Tar=Смола
|
||||||
|
Marble=Мрамор
|
||||||
|
Brobble Spread=Настил кирпичного булыжника
|
||||||
|
Gravel Spread=Настил гравия
|
||||||
|
Tarmac Spread=Покрытие гудронной смолой
|
||||||
|
Terrycloth towel=Махровое полотенце
|
||||||
|
Chess board tiling=Шахматная плитка
|
||||||
|
Fireplace=Камин
|
||||||
|
Small bundle of sticks=Небольшая связка палок
|
||||||
|
Tar base=Смоляная основа
|
||||||
|
Tar Knife=Смоляной нож
|
20
building_blocks/locale/building_blocks.zh_CN.tr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=花岗岩
|
||||||
|
Grate=磨碎
|
||||||
|
Streak Free Glass=无条纹玻璃
|
||||||
|
Wood Framed Glass=木框玻璃
|
||||||
|
Adobe=土砖
|
||||||
|
Fake Grass=塑料草
|
||||||
|
Hardwood=硬木
|
||||||
|
Roof block=天台
|
||||||
|
Tar=焦油
|
||||||
|
Marble=大理石
|
||||||
|
Brobble Spread=石砖路面
|
||||||
|
Gravel Spread=碎石路面
|
||||||
|
Tarmac Spread=柏油路面
|
||||||
|
Terrycloth towel=毛巾
|
||||||
|
Chess board tiling=棋盘铺贴
|
||||||
|
Fireplace=壁炉
|
||||||
|
Small bundle of sticks=小捆棍子
|
||||||
|
Tar base=焦油基
|
||||||
|
Tar Knife=焦油刀
|
20
building_blocks/locale/template.txt
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# textdomain: building_blocks
|
||||||
|
Granite=
|
||||||
|
Grate=
|
||||||
|
Streak Free Glass=
|
||||||
|
Wood Framed Glass=
|
||||||
|
Adobe=
|
||||||
|
Fake Grass=
|
||||||
|
Hardwood=
|
||||||
|
Roof block=
|
||||||
|
Tar=
|
||||||
|
Marble=
|
||||||
|
Brobble Spread=
|
||||||
|
Gravel Spread=
|
||||||
|
Tarmac Spread=
|
||||||
|
Terrycloth towel=
|
||||||
|
Chess board tiling=
|
||||||
|
Fireplace=
|
||||||
|
Small bundle of sticks=
|
||||||
|
Tar base=
|
||||||
|
Tar Knife=
|
3
building_blocks/mod.conf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
name = building_blocks
|
||||||
|
depends = homedecor_common
|
||||||
|
optional_depends = moreblocks, gloopblocks, stairs, default
|
|
@ -1,39 +1,29 @@
|
||||||
local S = homedecor.gettext
|
local S = minetest.get_translator("building_blocks")
|
||||||
|
|
||||||
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
|
|
||||||
|
|
||||||
local function building_blocks_stairs(nodename, def)
|
local function building_blocks_stairs(nodename, def)
|
||||||
minetest.register_node(nodename, def)
|
|
||||||
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
|
if def.groups and (def.groups.crumbly or def.groups.oddly_breakable_by_hand) then
|
||||||
local mod, name = nodename:match("(.*):(.*)")
|
def.groups["handy"]=1
|
||||||
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
|
def._mcl_hardness=0.6
|
||||||
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
|
elseif def.groups and (def.groups.snappy or def.groups.choppy) then
|
||||||
local stairs_groups = {}
|
def.groups["axey"]=5
|
||||||
for _, groupname in ipairs(stairs_groups_names) do
|
def._mcl_hardness=1.6
|
||||||
stairs_groups[groupname] = def.groups[groupname]
|
elseif def.groups and (def.groups.cracky or def.groups.crumbly) then
|
||||||
|
def.groups["pickaxey"]=5
|
||||||
|
def._mcl_hardness=1.6
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def.is_ground_content = def.is_ground_content == true
|
||||||
|
|
||||||
|
minetest.register_node(nodename, def)
|
||||||
if minetest.get_modpath("moreblocks") then
|
if minetest.get_modpath("moreblocks") then
|
||||||
stairsplus:register_all(
|
local mod, name = nodename:match("(.*):(.*)")
|
||||||
mod,
|
stairsplus:register_all(mod, name, nodename, def)
|
||||||
name,
|
|
||||||
nodename,
|
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
|
||||||
{
|
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
|
||||||
description = def.description,
|
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
|
||||||
tiles = def.tiles,
|
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
|
||||||
groups = stairs_groups,
|
|
||||||
sounds = def.sounds,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
else
|
|
||||||
stairs.register_stair_and_slab(name,nodename,
|
|
||||||
stairs_groups,
|
|
||||||
def.tiles,
|
|
||||||
("%s Stair"):format(def.description),
|
|
||||||
("%s Slab"):format(def.description),
|
|
||||||
def.sounds
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -43,9 +33,12 @@ building_blocks_stairs("building_blocks:grate", {
|
||||||
tiles = {"building_blocks_grate.png"},
|
tiles = {"building_blocks_grate.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {cracky=1},
|
use_texture_alpha = "clip",
|
||||||
sounds = default.node_sound_metal_defaults(),
|
groups = {cracky=1, dig_generic=3},
|
||||||
|
_sound_def = {
|
||||||
|
key = "node_sound_metal_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:smoothglass", {
|
building_blocks_stairs("building_blocks:smoothglass", {
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
|
@ -53,9 +46,12 @@ building_blocks_stairs("building_blocks:smoothglass", {
|
||||||
tiles = {"building_blocks_sglass.png"},
|
tiles = {"building_blocks_sglass.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
|
use_texture_alpha = "clip",
|
||||||
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_glass_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:woodglass", {
|
building_blocks_stairs("building_blocks:woodglass", {
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
|
@ -63,54 +59,72 @@ building_blocks_stairs("building_blocks:woodglass", {
|
||||||
tiles = {"building_blocks_wglass.png"},
|
tiles = {"building_blocks_wglass.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
|
use_texture_alpha = "clip",
|
||||||
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_glass_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
building_blocks_stairs("building_blocks:Adobe", {
|
building_blocks_stairs("building_blocks:Adobe", {
|
||||||
tiles = {"building_blocks_Adobe.png"},
|
tiles = {"building_blocks_Adobe.png"},
|
||||||
description = S("Adobe"),
|
description = S("Adobe"),
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3, dig_stone=2},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
local grasstex = {
|
||||||
|
homedecor.textures.grass.top,
|
||||||
|
homedecor.textures.grass.dirt,
|
||||||
|
homedecor.textures.grass.side
|
||||||
|
}
|
||||||
building_blocks_stairs("building_blocks:fakegrass", {
|
building_blocks_stairs("building_blocks:fakegrass", {
|
||||||
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
tiles = grasstex,
|
||||||
description = S("Fake Grass"),
|
description = S("Fake Grass"),
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3, dig_sand=3},
|
||||||
sounds = default.node_sound_dirt_defaults({
|
_sound_def = {
|
||||||
footstep = {name="default_grass_footstep", gain=0.4},
|
key = "node_sound_dirt_defaults",
|
||||||
}),
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:hardwood", {
|
building_blocks_stairs("building_blocks:hardwood", {
|
||||||
tiles = {"building_blocks_hardwood.png"},
|
tiles = {"building_blocks_hardwood.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
description = S("Hardwood"),
|
description = S("Hardwood"),
|
||||||
groups = {choppy=1,flammable=1},
|
groups = {choppy=1,flammable=1, dig_tree=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_wood_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:Roofing", {
|
building_blocks_stairs("building_blocks:Roofing", {
|
||||||
tiles = {"building_blocks_Roofing.png"},
|
tiles = {"building_blocks_Roofing.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
description = S("Roof block"),
|
description = S("Roof block"),
|
||||||
groups = {snappy=3},
|
groups = {snappy=3, dig_generic=4},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:Tar", {
|
building_blocks_stairs("building_blocks:Tar", {
|
||||||
description = S("Tar"),
|
description = S("Tar"),
|
||||||
tiles = {"building_blocks_tar.png"},
|
tiles = {"building_blocks_tar.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=1, tar_block = 1},
|
groups = {crumbly=1, tar_block = 1, dig_generic=4},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
building_blocks_stairs("building_blocks:Marble", {
|
building_blocks_stairs("building_blocks:Marble", {
|
||||||
description = S("Marble"),
|
description = S("Marble"),
|
||||||
tiles = {"building_blocks_marble.png"},
|
tiles = {"building_blocks_marble.png"},
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {cracky=3, marble = 1},
|
groups = {cracky=3, marble = 1, dig_stone=2},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("building_blocks:brobble_spread", {
|
minetest.register_node("building_blocks:brobble_spread", {
|
||||||
|
@ -128,15 +142,17 @@ minetest.register_node("building_blocks:brobble_spread", {
|
||||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
},
|
},
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3, dig_generic=4, handy=1},
|
||||||
|
_mcl_hardness=0.6
|
||||||
})
|
})
|
||||||
|
|
||||||
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
|
if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then
|
||||||
|
local graveltex = homedecor.textures.gravel
|
||||||
minetest.register_node("building_blocks:gravel_spread", {
|
minetest.register_node("building_blocks:gravel_spread", {
|
||||||
drawtype = "raillike",
|
drawtype = "raillike",
|
||||||
description = S("Gravel Spread"),
|
description = S("Gravel Spread"),
|
||||||
tiles = {"default_gravel.png"},
|
tiles = {graveltex},
|
||||||
inventory_image = "building_blocks_gravel_spread_inv.png",
|
inventory_image = "building_blocks_gravel_spread_inv.png",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
walkable = false,
|
walkable = false,
|
||||||
|
@ -146,12 +162,12 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
|
||||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
},
|
},
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=2},
|
groups = {crumbly=2, dig_generic=4, handy=1},
|
||||||
sounds = default.node_sound_dirt_defaults({
|
_mcl_hardness=0.6,
|
||||||
footstep = {name="default_gravel_footstep", gain=0.5},
|
_sound_def = {
|
||||||
dug = {name="default_gravel_footstep", gain=1.0},
|
key = "node_sound_dirt_defaults",
|
||||||
}),
|
},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -168,9 +184,12 @@ minetest.register_node("building_blocks:Tarmac_spread", {
|
||||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
},
|
},
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {cracky=3},
|
groups = {cracky=3, dig_generic=4, pickaxey=5},
|
||||||
sounds = default.node_sound_dirt_defaults(),
|
_mcl_hardness=1.6,
|
||||||
|
_sound_def = {
|
||||||
|
key = "node_sound_dirt_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
minetest.register_node("building_blocks:terrycloth_towel", {
|
minetest.register_node("building_blocks:terrycloth_towel", {
|
||||||
drawtype = "raillike",
|
drawtype = "raillike",
|
||||||
|
@ -185,8 +204,9 @@ minetest.register_node("building_blocks:terrycloth_towel", {
|
||||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
},
|
},
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3, dig_generic=4, handy=1},
|
||||||
|
_mcl_hardness=0.6
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("building_blocks:BWtile", {
|
minetest.register_node("building_blocks:BWtile", {
|
||||||
|
@ -208,8 +228,9 @@ minetest.register_node("building_blocks:BWtile", {
|
||||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
},
|
},
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {crumbly=3},
|
groups = {crumbly=3, dig_generic=4, handy=1},
|
||||||
|
_mcl_hardness=0.6
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("building_blocks:Fireplace", {
|
minetest.register_node("building_blocks:Fireplace", {
|
||||||
|
@ -222,9 +243,12 @@ minetest.register_node("building_blocks:Fireplace", {
|
||||||
},
|
},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
light_source = default.LIGHT_MAX,
|
light_source = minetest.LIGHT_MAX,
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
is_ground_content = true,
|
is_ground_content = false,
|
||||||
groups = {cracky=2},
|
groups = {cracky=2, dig_generic=4, pickaxey=5},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
_mcl_hardness=1.6,
|
||||||
|
_sound_def = {
|
||||||
|
key = "node_sound_stone_defaults",
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
local S = homedecor.gettext
|
local S = minetest.get_translator("building_blocks")
|
||||||
|
|
||||||
minetest.register_craftitem("building_blocks:sticks", {
|
minetest.register_craftitem("building_blocks:sticks", {
|
||||||
description = S("Small bundle of sticks"),
|
description = S("Small bundle of sticks"),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
local S = homedecor.gettext
|
local materials = homedecor.materials
|
||||||
|
|
||||||
if minetest.get_modpath("moreblocks") then
|
if minetest.get_modpath("moreblocks") then
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -22,15 +22,15 @@ end
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:Adobe 3',
|
output = 'building_blocks:Adobe 3',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:sand"},
|
{materials.sand},
|
||||||
{"default:clay"},
|
{materials.clay_lump},
|
||||||
{"group:stick"},
|
{"group:stick"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:brobble_spread 4',
|
output = 'building_blocks:brobble_spread 4',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:brick", "default:cobble", "default:brick"},
|
{materials.brick, materials.cobble, materials.brick},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -43,21 +43,21 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:fakegrass 2',
|
output = 'building_blocks:fakegrass 2',
|
||||||
recipe = {
|
recipe = {
|
||||||
{'default:leaves'},
|
{'group:leaves'},
|
||||||
{"default:dirt"},
|
{materials.dirt},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:Fireplace 1',
|
output = 'building_blocks:Fireplace 1',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:steel_ingot", "building_blocks:sticks", "default:steel_ingot"},
|
{materials.steel_ingot, "building_blocks:sticks", materials.steel_ingot},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:grate 1',
|
output = 'building_blocks:grate 1',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:steel_ingot", "default:steel_ingot"},
|
{materials.steel_ingot, materials.steel_ingot},
|
||||||
{"default:glass", "default:glass"},
|
{materials.glass_block, materials.glass_block},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -65,25 +65,27 @@ if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopbloc
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:gravel_spread 4',
|
output = 'building_blocks:gravel_spread 4',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:gravel", "default:gravel", "default:gravel"},
|
{materials.gravel, materials.gravel, materials.gravel},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_craft({
|
if minetest.get_modpath("default") then
|
||||||
|
minetest.register_craft({
|
||||||
output = 'building_blocks:hardwood 2',
|
output = 'building_blocks:hardwood 2',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:wood", "default:junglewood"},
|
{"default:wood", "default:junglewood"},
|
||||||
{"default:junglewood", "default:wood"},
|
{"default:junglewood", "default:wood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:hardwood 2',
|
output = 'building_blocks:hardwood 2',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:junglewood", "default:wood"},
|
{"default:junglewood", "default:wood"},
|
||||||
{"default:wood", "default:junglewood"},
|
{"default:wood", "default:junglewood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
end
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:knife 1',
|
output = 'building_blocks:knife 1',
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -94,9 +96,9 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "building_blocks:Marble 9",
|
output = "building_blocks:Marble 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:clay", "group:tar_block", "default:clay"},
|
{materials.clay_lump, "group:tar_block", materials.clay_lump},
|
||||||
{"group:tar_block","default:clay", "group:tar_block"},
|
{"group:tar_block",materials.clay_lump, "group:tar_block"},
|
||||||
{"default:clay", "group:tar_block","default:clay"},
|
{materials.clay_lump, "group:tar_block",materials.clay_lump},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -115,15 +117,15 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:tar_base 4',
|
output = 'building_blocks:tar_base 4',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:coal_lump", "default:gravel"},
|
{materials.coal_lump, materials.gravel},
|
||||||
{"default:gravel", "default:coal_lump"}
|
{materials.gravel, materials.coal_lump}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:tar_base 4',
|
output = 'building_blocks:tar_base 4',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:gravel", "default:coal_lump"},
|
{materials.gravel, materials.coal_lump},
|
||||||
{"default:coal_lump", "default:gravel"}
|
{materials.coal_lump, materials.gravel}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -141,15 +143,15 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'building_blocks:woodglass 1',
|
output = 'building_blocks:woodglass 1',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:wood"},
|
{"group:wood"},
|
||||||
{"default:glass"},
|
{materials.glass_block},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
output = "building_blocks:smoothglass",
|
output = "building_blocks:smoothglass",
|
||||||
recipe = "default:glass"
|
recipe = materials.glass_block
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
|
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 256 B |
Before Width: | Height: | Size: 568 B After Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 320 B |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 340 B |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 151 B |
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 252 B |
Before Width: | Height: | Size: 581 B After Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 285 B |
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 118 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 362 B |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 751 B |
|
@ -1,38 +0,0 @@
|
||||||
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.
|
|
|
@ -1,43 +0,0 @@
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
computer:printer (printer scanner combo)
|
|
||||||
computer:server (rack server)
|
|
||||||
computer:tower (modern type)
|
|
||||||
computer:monitor (LCD with keyboard)
|
|
||||||
computer:router (wifi type)
|
|
||||||
computer:babytower
|
|
||||||
computer:shefriendSOO
|
|
||||||
computer:slaystation
|
|
||||||
computer:vanio
|
|
||||||
computer:spectre
|
|
||||||
computer:slaystation2
|
|
||||||
computer:admiral64
|
|
||||||
computer:admiral128
|
|
||||||
|
|
||||||
There's also a `computer:computer' alias to `computer: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/
|
|
|
@ -1,29 +0,0 @@
|
||||||
|
|
||||||
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 :)
|
|
|
@ -1,358 +0,0 @@
|
||||||
|
|
||||||
local S = homedecor.gettext
|
|
||||||
|
|
||||||
-- Amiga 500 lookalike
|
|
||||||
computer.register("computer:shefriendSOO", {
|
|
||||||
description = "SheFriendSOO",
|
|
||||||
tiles_off = { front=true },
|
|
||||||
node_box = computer.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("computer:vanio", {
|
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "computer_laptop.obj",
|
|
||||||
description = "Pony Vanio",
|
|
||||||
inventory_image = "computer_laptop_inv.png",
|
|
||||||
tiles = {"computer_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 = "computer:vanio_off"
|
|
||||||
minetest.set_node(pos, node)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("computer:vanio_off", {
|
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "computer_laptop_closed.obj",
|
|
||||||
tiles = {"computer_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 = "computer:vanio",
|
|
||||||
on_rightclick = function(pos, node, clicker, itemstack)
|
|
||||||
node.name = "computer:vanio"
|
|
||||||
minetest.set_node(pos, node)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Sony PlayStation lookalike
|
|
||||||
computer.register("computer:slaystation", {
|
|
||||||
description = "Pony SlayStation",
|
|
||||||
inventory_image = "computer_ps1_inv.png",
|
|
||||||
tiles_off = { top=true },
|
|
||||||
node_box = computer.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
|
|
||||||
computer.register("computer:slaystation2", {
|
|
||||||
description = "Pony SlayStation 2",
|
|
||||||
inventory_image = "computer_ps2_inv.png",
|
|
||||||
tiles_off = { front=true },
|
|
||||||
node_box = computer.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
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Sinclair ZX Spectrum lookalike
|
|
||||||
computer.register("computer:specter", {
|
|
||||||
description = "SX Specter",
|
|
||||||
inventory_image = "computer_specter_inv.png",
|
|
||||||
tiles_off = { },
|
|
||||||
node_box = computer.pixelnodebox(32, {
|
|
||||||
-- X Y Z W H L
|
|
||||||
{ 3, 0, 0, 26, 4, 17 }, -- Keyboard
|
|
||||||
{ 18, 0, 18, 12, 6, 14 } -- Tape Player
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Nintendo Wii lookalike
|
|
||||||
computer.register("computer:wee", {
|
|
||||||
description = "Nientiendo Wee",
|
|
||||||
inventory_image = "computer_wii_inv.png",
|
|
||||||
tiles_off = { front=true },
|
|
||||||
node_box = computer.pixelnodebox(32, {
|
|
||||||
-- X Y Z W H L
|
|
||||||
{ 11, 0, 3, 10, 6, 26 }, -- Base
|
|
||||||
{ 12, 6, 4, 8, 22, 24 } -- Top
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Apple iPad lookalike
|
|
||||||
minetest.register_node("computer:piepad", {
|
|
||||||
description = "Snapple Piepad",
|
|
||||||
drawtype = "signlike",
|
|
||||||
tiles = {"computer_piepad_inv.png"},
|
|
||||||
inventory_image = "computer_piepad_inv.png",
|
|
||||||
wield_image = "computer_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
|
|
||||||
computer.register("computer:admiral64", {
|
|
||||||
description = "Admiral64",
|
|
||||||
inventory_image = "computer_ad64_inv.png",
|
|
||||||
tiles_off = { },
|
|
||||||
node_box = computer.pixelnodebox(32, {
|
|
||||||
-- X Y Z W H L
|
|
||||||
{ 0, 0, 0, 32, 4, 18 } -- Keyboard
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Commodore 128 lookalike
|
|
||||||
computer.register("computer:admiral128", {
|
|
||||||
description = "Admiral128",
|
|
||||||
inventory_image = "computer_ad128_inv.png",
|
|
||||||
tiles_off = { },
|
|
||||||
node_box = computer.pixelnodebox(32, {
|
|
||||||
-- X Y Z W H L
|
|
||||||
{ 0, 0, 0, 32, 4, 27 } -- Keyboard
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- XBox lookalike
|
|
||||||
computer.register("computer:hueg_box", {
|
|
||||||
description = "HUEG Box",
|
|
||||||
tiles_off = { },
|
|
||||||
node_box = computer.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 },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
-- 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("computer:monitor", {
|
|
||||||
description = S("Monitor and keyboard"),
|
|
||||||
inventory_image = "computer_monitor_inv.png",
|
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "computer_monitor.obj",
|
|
||||||
tiles = {"computer_black.png", "monitor_plastic.png", "computer_black.png", "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 = "computer:monitor_on"
|
|
||||||
minetest.set_node(pos, node)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("computer:monitor_on", {
|
|
||||||
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)
|
|
||||||
return itemstack
|
|
||||||
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)
|
|
||||||
minetest.register_node("computer:router", {
|
|
||||||
description = S("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",
|
|
||||||
{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",
|
|
||||||
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("computer:tower", {
|
|
||||||
description = S("Computer Tower"),
|
|
||||||
inventory_image = "computer_tower_inv.png",
|
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "computer_tower.obj",
|
|
||||||
tiles = {"computer_tower.png"},
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
groups = {snappy=3},
|
|
||||||
sound = default.node_sound_wood_defaults(),
|
|
||||||
selection_box = pct_cbox,
|
|
||||||
collision_box = pct_cbox
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_alias("computer:tower_on", "computer:tower")
|
|
||||||
|
|
||||||
-- Printer/scaner combo
|
|
||||||
minetest.register_node("computer:printer", {
|
|
||||||
description = S("Printer-Scanner Combo"),
|
|
||||||
inventory_image = "computer_printer_inv.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"},
|
|
||||||
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}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
--Rack Server
|
|
||||||
minetest.register_node("computer:server", {
|
|
||||||
drawtype = "nodebox",
|
|
||||||
description = S("Rack Server"),
|
|
||||||
tiles = {
|
|
||||||
'computer_server_t.png',
|
|
||||||
'computer_server_bt.png',
|
|
||||||
'computer_server_l.png',
|
|
||||||
'computer_server_r.png',
|
|
||||||
'computer_server_bt.png',
|
|
||||||
'computer_server_f_off.png'
|
|
||||||
},
|
|
||||||
inventory_image = "computer_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 = "computer: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("computer:server_on", {
|
|
||||||
drawtype = "nodebox",
|
|
||||||
tiles = {
|
|
||||||
'computer_server_t.png',
|
|
||||||
'computer_server_bt.png',
|
|
||||||
'computer_server_l.png',
|
|
||||||
'computer_server_r.png',
|
|
||||||
'computer_server_bt.png',
|
|
||||||
'computer_server_f_on.png',
|
|
||||||
},
|
|
||||||
inventory_image = "computer_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 = 'computer:server',
|
|
||||||
on_rightclick = function(pos, node, clicker, itemstack)
|
|
||||||
node.name = "computer:server"
|
|
||||||
minetest.set_node(pos, node)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
})
|
|
|
@ -1,2 +0,0 @@
|
||||||
default
|
|
||||||
homedecor_common
|
|
|
@ -1,99 +0,0 @@
|
||||||
computer = {}
|
|
||||||
screwdriver = screwdriver or {}
|
|
||||||
|
|
||||||
computer.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
|
|
||||||
|
|
||||||
computer.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
|
|
||||||
|
|
||||||
computer.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("computer")
|
|
||||||
dofile(MODPATH.."/computers.lua")
|
|
||||||
dofile(MODPATH.."/miscitems.lua")
|
|
||||||
dofile(MODPATH.."/recipes.lua")
|
|
||||||
dofile(MODPATH.."/tetris.lua")
|
|
|
@ -1,68 +0,0 @@
|
||||||
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
|
|
||||||
|
|
||||||
-- This file defines some items in order to not have to depend on other mods.
|
|
||||||
|
|
||||||
local S = homedecor.gettext
|
|
||||||
|
|
||||||
if (not minetest.get_modpath("homedecor")) then
|
|
||||||
|
|
||||||
minetest.register_craftitem(":basic_materials:plastic_sheet", {
|
|
||||||
description = S("Plastic sheet"),
|
|
||||||
inventory_image = "homedecor_plastic_sheeting.png",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem(":homedecor:plastic_base", {
|
|
||||||
description = S("Unprocessed Plastic base"),
|
|
||||||
wield_image = "homedecor_plastic_base.png",
|
|
||||||
inventory_image = "homedecor_plastic_base_inv.png",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = 'homedecor:plastic_base 6',
|
|
||||||
recipe = { "default:junglegrass",
|
|
||||||
"default:junglegrass",
|
|
||||||
"default:junglegrass"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = 'homedecor:plastic_base 3',
|
|
||||||
recipe = { "default:dry_shrub",
|
|
||||||
"default:dry_shrub",
|
|
||||||
"default:dry_shrub"
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = 'homedecor:plastic_base 4',
|
|
||||||
recipe = { "default:leaves",
|
|
||||||
"default:leaves",
|
|
||||||
"default:leaves",
|
|
||||||
"default:leaves",
|
|
||||||
"default:leaves",
|
|
||||||
"default:leaves"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "cooking",
|
|
||||||
output = "basic_materials:plastic_sheet",
|
|
||||||
recipe = "homedecor:plastic_base",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = 'fuel',
|
|
||||||
recipe = 'homedecor:plastic_base',
|
|
||||||
burntime = 30,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = 'fuel',
|
|
||||||
recipe = 'basic_materials:plastic_sheet',
|
|
||||||
burntime = 30,
|
|
||||||
})
|
|
||||||
|
|
||||||
end -- not homedecor
|
|
|
@ -1,124 +0,0 @@
|
||||||
# Blender v2.69 (sub 0) OBJ File: ''
|
|
||||||
# www.blender.org
|
|
||||||
mtllib computer_laptop.mtl
|
|
||||||
o Cube.001
|
|
||||||
v -0.340277 0.022636 0.335290
|
|
||||||
v -0.340277 0.013075 0.362499
|
|
||||||
v 0.332320 0.022636 0.335292
|
|
||||||
v 0.332320 -0.432772 0.182772
|
|
||||||
v 0.332320 0.013075 0.362501
|
|
||||||
v -0.340276 -0.499994 -0.312651
|
|
||||||
v -0.340276 -0.432772 -0.312651
|
|
||||||
v 0.332321 -0.499994 -0.312650
|
|
||||||
v -0.340277 -0.499994 0.182771
|
|
||||||
v 0.332320 -0.499994 0.182772
|
|
||||||
v -0.340277 -0.432772 0.182771
|
|
||||||
v -0.340278 -0.432772 0.209979
|
|
||||||
v 0.332320 -0.432772 0.209981
|
|
||||||
v 0.332320 -0.499994 0.209981
|
|
||||||
v -0.340278 -0.499994 0.209979
|
|
||||||
v -0.319957 -0.417924 0.194820
|
|
||||||
v -0.319957 -0.001053 0.334433
|
|
||||||
v 0.312000 -0.417925 0.194821
|
|
||||||
v -0.340277 -0.432772 -0.159321
|
|
||||||
v 0.332321 -0.432772 -0.312650
|
|
||||||
v 0.311999 -0.001054 0.334434
|
|
||||||
v 0.332321 -0.432772 -0.159320
|
|
||||||
vt 0.682604 0.005242
|
|
||||||
vt 0.682603 0.021207
|
|
||||||
vt 0.310265 0.005245
|
|
||||||
vt 0.044426 0.009206
|
|
||||||
vt 0.310266 0.021211
|
|
||||||
vt 0.753340 0.119988
|
|
||||||
vt 0.810356 0.119988
|
|
||||||
vt 0.753340 0.597765
|
|
||||||
vt 0.856851 0.982221
|
|
||||||
vt 0.745750 0.982220
|
|
||||||
vt 0.856851 0.831387
|
|
||||||
vt 0.948453 0.009205
|
|
||||||
vt 0.878028 0.982221
|
|
||||||
vt 0.878028 0.831387
|
|
||||||
vt 0.983700 0.982221
|
|
||||||
vt 0.862953 0.831387
|
|
||||||
vt 0.862953 0.982221
|
|
||||||
vt 0.728292 0.490807
|
|
||||||
vt 0.728292 0.989869
|
|
||||||
vt 0.010900 0.490807
|
|
||||||
vt 0.831643 0.129995
|
|
||||||
vt 0.982007 0.129995
|
|
||||||
vt 0.831643 0.789586
|
|
||||||
vt 0.758249 0.754841
|
|
||||||
vt 0.758228 0.812823
|
|
||||||
vt 0.756060 0.752868
|
|
||||||
vt 0.798519 0.812617
|
|
||||||
vt 0.756052 0.814797
|
|
||||||
vt 0.798577 0.754909
|
|
||||||
vt 0.800285 0.814587
|
|
||||||
vt 0.707729 0.114386
|
|
||||||
vt 0.707729 0.471212
|
|
||||||
vt 0.006162 0.114385
|
|
||||||
vt 0.345650 0.099088
|
|
||||||
vt 0.497058 0.032709
|
|
||||||
vt 0.497058 0.099088
|
|
||||||
vt 0.990661 0.099453
|
|
||||||
vt 0.838275 0.032645
|
|
||||||
vt 0.990661 0.032645
|
|
||||||
vt 0.007709 0.008663
|
|
||||||
vt 0.012705 0.022873
|
|
||||||
vt 0.983559 0.009737
|
|
||||||
vt 0.943457 0.023414
|
|
||||||
vt 0.049421 0.023416
|
|
||||||
vt 0.810356 0.597766
|
|
||||||
vt 0.745750 0.831387
|
|
||||||
vt 0.983700 0.831387
|
|
||||||
vt 0.010900 0.989869
|
|
||||||
vt 0.982007 0.789586
|
|
||||||
vt 0.800332 0.752938
|
|
||||||
vt 0.006162 0.471212
|
|
||||||
vt 0.007844 0.099088
|
|
||||||
vt 0.007844 0.032709
|
|
||||||
vt 0.498289 0.099453
|
|
||||||
vt 0.498289 0.032646
|
|
||||||
vt 0.978563 0.023946
|
|
||||||
usemtl Material.001
|
|
||||||
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
|
|
|
@ -1,138 +0,0 @@
|
||||||
# Blender v2.69 (sub 0) OBJ File: ''
|
|
||||||
# www.blender.org
|
|
||||||
mtllib computer_laptop_closed.mtl
|
|
||||||
o Cube.001
|
|
||||||
v 0.332320 -0.432772 0.182772
|
|
||||||
v -0.340276 -0.499994 -0.312651
|
|
||||||
v -0.340276 -0.432772 -0.312651
|
|
||||||
v 0.332321 -0.499994 -0.312650
|
|
||||||
v -0.340277 -0.499994 0.182771
|
|
||||||
v 0.332320 -0.499994 0.182772
|
|
||||||
v -0.340277 -0.432772 0.182771
|
|
||||||
v -0.340278 -0.432772 0.209979
|
|
||||||
v 0.332320 -0.432772 0.209981
|
|
||||||
v 0.332320 -0.499994 0.209981
|
|
||||||
v -0.340278 -0.499994 0.209979
|
|
||||||
v -0.340277 -0.432772 -0.159321
|
|
||||||
v 0.332321 -0.432772 -0.312650
|
|
||||||
v 0.332321 -0.432772 -0.159320
|
|
||||||
v -0.339100 -0.432290 -0.312591
|
|
||||||
v -0.339100 -0.401111 -0.312123
|
|
||||||
v 0.331143 -0.432288 -0.312592
|
|
||||||
v 0.331143 -0.432434 0.206702
|
|
||||||
v 0.331143 -0.401109 -0.312123
|
|
||||||
v -0.339100 -0.432435 0.206702
|
|
||||||
v -0.339101 -0.404537 0.197368
|
|
||||||
v 0.331143 -0.404535 0.197367
|
|
||||||
v -0.318852 -0.425175 0.187344
|
|
||||||
v -0.318852 -0.425042 -0.288007
|
|
||||||
v 0.310895 -0.425173 0.187344
|
|
||||||
v 0.310894 -0.425040 -0.288006
|
|
||||||
vt 0.753340 0.119988
|
|
||||||
vt 0.810356 0.119988
|
|
||||||
vt 0.753340 0.597765
|
|
||||||
vt 0.856851 0.982221
|
|
||||||
vt 0.745750 0.982220
|
|
||||||
vt 0.856851 0.831387
|
|
||||||
vt 0.878028 0.831387
|
|
||||||
vt 0.878028 0.982221
|
|
||||||
vt 0.862953 0.831387
|
|
||||||
vt 0.862953 0.982221
|
|
||||||
vt 0.858063 0.829423
|
|
||||||
vt 0.885587 0.829423
|
|
||||||
vt 0.858063 0.950158
|
|
||||||
vt 0.935597 0.852882
|
|
||||||
vt 0.935597 0.922715
|
|
||||||
vt 0.798294 0.852882
|
|
||||||
vt 0.345650 0.099088
|
|
||||||
vt 0.497058 0.032709
|
|
||||||
vt 0.497058 0.099088
|
|
||||||
vt 0.990661 0.099453
|
|
||||||
vt 0.838275 0.032645
|
|
||||||
vt 0.990661 0.032645
|
|
||||||
vt 0.007709 0.008663
|
|
||||||
vt 0.044426 0.009206
|
|
||||||
vt 0.012705 0.022873
|
|
||||||
vt 0.948453 0.009205
|
|
||||||
vt 0.983559 0.009737
|
|
||||||
vt 0.943457 0.023414
|
|
||||||
vt 0.810356 0.597766
|
|
||||||
vt 0.745750 0.831387
|
|
||||||
vt 0.885587 0.950158
|
|
||||||
vt 0.912135 0.962581
|
|
||||||
vt 0.785835 0.838012
|
|
||||||
vt 0.886333 0.908011
|
|
||||||
vt 0.922048 0.840165
|
|
||||||
vt 0.798294 0.922715
|
|
||||||
vt 0.007844 0.099088
|
|
||||||
vt 0.007844 0.032709
|
|
||||||
vt 0.498289 0.099453
|
|
||||||
vt 0.498289 0.032646
|
|
||||||
vt 0.049421 0.023416
|
|
||||||
vt 0.978563 0.023946
|
|
||||||
vt 0.682604 0.005242
|
|
||||||
vt 0.682603 0.021207
|
|
||||||
vt 0.310265 0.005245
|
|
||||||
vt 0.310266 0.021211
|
|
||||||
vt 0.983700 0.982221
|
|
||||||
vt 0.922420 0.868181
|
|
||||||
vt 0.922420 0.951695
|
|
||||||
vt 0.802372 0.868181
|
|
||||||
vt 0.758249 0.754841
|
|
||||||
vt 0.758228 0.812823
|
|
||||||
vt 0.756060 0.752868
|
|
||||||
vt 0.798519 0.812617
|
|
||||||
vt 0.756052 0.814797
|
|
||||||
vt 0.798577 0.754909
|
|
||||||
vt 0.800285 0.814587
|
|
||||||
vt 0.983700 0.831387
|
|
||||||
vt 0.802372 0.951695
|
|
||||||
vt 0.800332 0.752938
|
|
||||||
vt 0.896350 0.948981
|
|
||||||
vt 0.903598 0.848845
|
|
||||||
vt 0.888354 0.925385
|
|
||||||
vt 0.811076 0.850308
|
|
||||||
usemtl Material.001
|
|
||||||
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
|
|
|
@ -1,33 +0,0 @@
|
||||||
# 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
|
|
|
@ -1,143 +0,0 @@
|
||||||
# Blender v2.66 (sub 1) OBJ File: ''
|
|
||||||
# www.blender.org
|
|
||||||
mtllib tetris_arcade.mtl
|
|
||||||
o Cube.001
|
|
||||||
v -0.450000 1.299500 -0.450000
|
|
||||||
v -0.450000 1.299500 -0.500000
|
|
||||||
v 0.450000 1.299500 -0.500000
|
|
||||||
v 0.450000 1.299500 -0.450000
|
|
||||||
v -0.450000 1.499500 -0.450000
|
|
||||||
v -0.450000 1.499500 -0.500000
|
|
||||||
v 0.450000 1.499500 -0.500000
|
|
||||||
v 0.450000 1.499500 -0.450000
|
|
||||||
v 0.450000 -0.495000 -0.500000
|
|
||||||
v 0.450000 0.305000 -0.500001
|
|
||||||
v -0.450000 -0.495000 -0.499999
|
|
||||||
v -0.450000 0.305000 -0.500000
|
|
||||||
v 0.450000 -0.498500 0.500000
|
|
||||||
v 0.450000 -0.498500 -0.500000
|
|
||||||
v 0.500000 -0.498500 -0.500000
|
|
||||||
v 0.500000 -0.498500 0.500000
|
|
||||||
v 0.450000 1.498500 0.500000
|
|
||||||
v 0.450000 1.498500 -0.500000
|
|
||||||
v 0.500000 1.498500 -0.500000
|
|
||||||
v 0.500000 1.498500 0.500000
|
|
||||||
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
|
|
||||||
v -0.500000 -0.498500 0.500000
|
|
||||||
v -0.500000 -0.498500 -0.500000
|
|
||||||
v -0.450000 -0.498500 -0.500000
|
|
||||||
v -0.450000 -0.498500 0.500000
|
|
||||||
v -0.500000 1.498500 0.500000
|
|
||||||
v -0.500000 1.498500 -0.500000
|
|
||||||
v -0.450000 1.498500 -0.500000
|
|
||||||
v -0.450000 1.498500 0.500000
|
|
||||||
v 0.450000 0.304976 -0.499762
|
|
||||||
v 0.450000 0.474024 -0.137239
|
|
||||||
v -0.450000 0.304976 -0.499761
|
|
||||||
v -0.450000 0.474024 -0.137238
|
|
||||||
v 0.450000 0.472946 -0.138083
|
|
||||||
v 0.450000 0.613900 -0.086780
|
|
||||||
v -0.450000 0.472946 -0.138082
|
|
||||||
v -0.450000 0.613900 -0.086779
|
|
||||||
v 0.450000 0.610884 -0.085130
|
|
||||||
v 0.450000 1.398731 0.053788
|
|
||||||
v -0.450000 0.610884 -0.085130
|
|
||||||
v -0.450000 1.398731 0.053789
|
|
||||||
v 0.450000 1.395000 0.055138
|
|
||||||
v 0.450000 1.495000 0.055138
|
|
||||||
v -0.450000 1.395000 0.055138
|
|
||||||
v -0.450000 1.495000 0.055138
|
|
||||||
vt 0.250108 0.745030
|
|
||||||
vt 0.250224 0.516409
|
|
||||||
vt 0.494888 0.516008
|
|
||||||
vt 0.495027 0.744660
|
|
||||||
vt 0.500090 0.744658
|
|
||||||
vt 0.250080 0.744698
|
|
||||||
vt 0.250023 0.693307
|
|
||||||
vt 0.500163 0.693337
|
|
||||||
vt 0.244872 0.999900
|
|
||||||
vt 0.000100 0.999900
|
|
||||||
vt 0.000100 0.925965
|
|
||||||
vt 0.244701 0.925965
|
|
||||||
vt -0.000234 0.985285
|
|
||||||
vt 0.246386 0.985398
|
|
||||||
vt 0.246568 0.999900
|
|
||||||
vt 0.254685 0.396330
|
|
||||||
vt 0.255312 0.252326
|
|
||||||
vt 0.489851 0.252497
|
|
||||||
vt 0.489923 0.396494
|
|
||||||
vt 0.746604 0.251526
|
|
||||||
vt 1.000599 0.251553
|
|
||||||
vt 1.000481 0.749319
|
|
||||||
vt 0.748216 0.749150
|
|
||||||
vt 0.971448 0.251053
|
|
||||||
vt 0.999396 0.251108
|
|
||||||
vt 1.000262 0.749144
|
|
||||||
vt 0.972149 0.748806
|
|
||||||
vt 0.250110 0.749633
|
|
||||||
vt 0.000464 0.749633
|
|
||||||
vt 0.001279 0.251648
|
|
||||||
vt 0.250023 0.251690
|
|
||||||
vt 0.742499 0.744632
|
|
||||||
vt 0.500700 0.744632
|
|
||||||
vt 0.500700 0.255368
|
|
||||||
vt 0.742499 0.255368
|
|
||||||
vt 0.951737 0.252687
|
|
||||||
vt 0.999900 0.252686
|
|
||||||
vt 0.999900 0.748679
|
|
||||||
vt 0.951737 0.748679
|
|
||||||
vt 1.000029 0.749233
|
|
||||||
vt 0.744529 0.749104
|
|
||||||
vt 0.745177 0.251367
|
|
||||||
vt 1.001019 0.251067
|
|
||||||
vt 0.255742 0.485017
|
|
||||||
vt 0.255492 0.401623
|
|
||||||
vt 0.494936 0.401277
|
|
||||||
vt 0.495186 0.485021
|
|
||||||
vt 0.260753 0.515705
|
|
||||||
vt 0.260629 0.484664
|
|
||||||
vt 0.494387 0.484878
|
|
||||||
vt 0.494282 0.515673
|
|
||||||
vt -0.000037 0.745106
|
|
||||||
vt 0.000017 0.703328
|
|
||||||
vt 0.245542 0.703882
|
|
||||||
vt 0.245632 0.745399
|
|
||||||
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.749950
|
|
||||||
vt 0.999900 0.250049
|
|
||||||
vt 0.999900 0.749949
|
|
||||||
vt 0.749950 0.749950
|
|
||||||
vt 0.749950 0.250050
|
|
||||||
usemtl Material.001
|
|
||||||
s off
|
|
||||||
f 46/1 45/2 47/3 48/4
|
|
||||||
usemtl Material.001_tetris_arcade.png
|
|
||||||
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
|
|
||||||
usemtl Material.001_NONE
|
|
||||||
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
|
|
|
@ -1,141 +0,0 @@
|
||||||
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "computer: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 = "computer: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 = "computer:vanio",
|
|
||||||
recipe = {
|
|
||||||
{ "basic_materials:plastic_sheet", "", "" },
|
|
||||||
{ "default:glass", "", "" },
|
|
||||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "computer: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 = "computer: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 = "computer:admiral64",
|
|
||||||
recipe = {
|
|
||||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
|
|
||||||
{ "group:wood", "group:wood", "group:wood" }
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "computer: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 = "computer: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 = "computer: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 = "computer: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 = "computer: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 = "computer: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 = "computer: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 = "computer: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 = "computer:server",
|
|
||||||
recipe = {
|
|
||||||
{ "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 = {
|
|
||||||
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet", },
|
|
||||||
{ "dye:black", "default:glass", "dye:black" },
|
|
||||||
{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet" }
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,291 +0,0 @@
|
||||||
|
|
||||||
local S = homedecor.gettext
|
|
||||||
|
|
||||||
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;"..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)
|
|
||||||
else
|
|
||||||
key(fields)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
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("computer:tetris_arcade", {
|
|
||||||
description=S("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;"..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="computer:tetris_arcade", param1=0, param2 = minetest.dir_to_facedir(dir)}
|
|
||||||
minetest.set_node(pos, node)
|
|
||||||
itemstack:take_item()
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
})
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 483 B |
Before Width: | Height: | Size: 321 B |
Before Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 415 B |
Before Width: | Height: | Size: 331 B |
Before Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 461 B |
Before Width: | Height: | Size: 82 B |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 122 B |
Before Width: | Height: | Size: 129 B |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 88 B |
Before Width: | Height: | Size: 108 B |
Before Width: | Height: | Size: 130 B |
Before Width: | Height: | Size: 100 B |
Before Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 136 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 183 B |
Before Width: | Height: | Size: 182 B |
Before Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 114 B |