Added Doors!

This commit is contained in:
IamPyu 2024-12-05 18:09:00 -06:00
parent e2b942aecc
commit 35a0eaed5c
7 changed files with 508 additions and 20 deletions

View File

@ -22,6 +22,7 @@ Game Changes:
- Improved Slabs
- Fixed Infinite Liquids
- Remove Glowshrooms
- Added Doors!
Code Changes:

View File

@ -0,0 +1,417 @@
# Made in Blockbench 4.11.1
mtllib pyutest-door.mtl
o cube
v 0.5 -0.375 -0.375
v 0.5 -0.375 -0.5
v 0.5 -0.5 -0.375
v 0.5 -0.5 -0.5
v -0.5 -0.375 -0.5
v -0.5 -0.375 -0.375
v -0.5 -0.5 -0.5
v -0.5 -0.5 -0.375
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 4/4/1 7/3/1 5/2/1 2/1/1
f 3/8/2 4/7/2 2/6/2 1/5/2
f 8/12/3 3/11/3 1/10/3 6/9/3
f 7/16/4 8/15/4 6/14/4 5/13/4
f 6/20/5 1/19/5 2/18/5 5/17/5
f 7/24/6 4/23/6 3/22/6 8/21/6
o cube
v 0.5 1.375 -0.375
v 0.5 1.375 -0.5
v 0.5 -0.375 -0.375
v 0.5 -0.375 -0.5
v 0.375 1.375 -0.5
v 0.375 1.375 -0.375
v 0.375 -0.375 -0.5
v 0.375 -0.375 -0.375
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 12/28/7 15/27/7 13/26/7 10/25/7
f 11/32/8 12/31/8 10/30/8 9/29/8
f 16/36/9 11/35/9 9/34/9 14/33/9
f 15/40/10 16/39/10 14/38/10 13/37/10
f 14/44/11 9/43/11 10/42/11 13/41/11
f 15/48/12 12/47/12 11/46/12 16/45/12
o cube
v -0.375 1.375 -0.375
v -0.375 1.375 -0.5
v -0.375 -0.375 -0.375
v -0.375 -0.375 -0.5
v -0.5 1.375 -0.5
v -0.5 1.375 -0.375
v -0.5 -0.375 -0.5
v -0.5 -0.375 -0.375
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 20/52/13 23/51/13 21/50/13 18/49/13
f 19/56/14 20/55/14 18/54/14 17/53/14
f 24/60/15 19/59/15 17/58/15 22/57/15
f 23/64/16 24/63/16 22/62/16 21/61/16
f 22/68/17 17/67/17 18/66/17 21/65/17
f 23/72/18 20/71/18 19/70/18 24/69/18
o cube
v 0.5 1.5 -0.375
v 0.5 1.5 -0.5
v 0.5 1.375 -0.375
v 0.5 1.375 -0.5
v -0.5 1.5 -0.5
v -0.5 1.5 -0.375
v -0.5 1.375 -0.5
v -0.5 1.375 -0.375
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vt 0 1
vt 1 1
vt 1 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 28/76/19 31/75/19 29/74/19 26/73/19
f 27/80/20 28/79/20 26/78/20 25/77/20
f 32/84/21 27/83/21 25/82/21 30/81/21
f 31/88/22 32/87/22 30/86/22 29/85/22
f 30/92/23 25/91/23 26/90/23 29/89/23
f 31/96/24 28/95/24 27/94/24 32/93/24
o cube
v 0.375 0.875 -0.375
v 0.375 0.875 -0.5
v 0.375 -0.375 -0.375
v 0.375 -0.375 -0.5
v -0.375 0.875 -0.5
v -0.375 0.875 -0.375
v -0.375 -0.375 -0.5
v -0.375 -0.375 -0.375
vt 0 1
vt 0.75 1
vt 0.75 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.75 1
vt 0.75 0
vt 0 0
vt 0 1
vt 0.125 1
vt 0.125 0
vt 0 0
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 36/100/25 39/99/25 37/98/25 34/97/25
f 35/104/26 36/103/26 34/102/26 33/101/26
f 40/108/27 35/107/27 33/106/27 38/105/27
f 39/112/28 40/111/28 38/110/28 37/109/28
f 38/116/29 33/115/29 34/114/29 37/113/29
f 39/120/30 36/119/30 35/118/30 40/117/30
o cube
v 0.375 1 -0.375
v 0.375 1 -0.5
v 0.375 0.875 -0.375
v 0.375 0.875 -0.5
v -0.375 1 -0.5
v -0.375 1 -0.375
v -0.375 0.875 -0.5
v -0.375 0.875 -0.375
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 44/124/31 47/123/31 45/122/31 42/121/31
f 43/128/32 44/127/32 42/126/32 41/125/32
f 48/132/33 43/131/33 41/130/33 46/129/33
f 47/136/34 48/135/34 46/134/34 45/133/34
f 46/140/35 41/139/35 42/138/35 45/137/35
f 47/144/36 44/143/36 43/142/36 48/141/36
o cube
v 0.375 1.25 -0.375
v 0.375 1.25 -0.5
v 0.375 1 -0.375
v 0.375 1 -0.5
v 0.25 1.25 -0.5
v 0.25 1.25 -0.375
v 0.25 1 -0.5
v 0.25 1 -0.375
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 52/148/37 55/147/37 53/146/37 50/145/37
f 51/152/38 52/151/38 50/150/38 49/149/38
f 56/156/39 51/155/39 49/154/39 54/153/39
f 55/160/40 56/159/40 54/158/40 53/157/40
f 54/164/41 49/163/41 50/162/41 53/161/41
f 55/168/42 52/167/42 51/166/42 56/165/42
o cube
v -0.25 1.25 -0.375
v -0.25 1.25 -0.5
v -0.25 1 -0.375
v -0.25 1 -0.5
v -0.375 1.25 -0.5
v -0.375 1.25 -0.375
v -0.375 1 -0.5
v -0.375 1 -0.375
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.75
vt 0 0.75
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 60/172/43 63/171/43 61/170/43 58/169/43
f 59/176/44 60/175/44 58/174/44 57/173/44
f 64/180/45 59/179/45 57/178/45 62/177/45
f 63/184/46 64/183/46 62/182/46 61/181/46
f 62/188/47 57/187/47 58/186/47 61/185/47
f 63/192/48 60/191/48 59/190/48 64/189/48
o cube
v 0.375 1.375 -0.375
v 0.375 1.375 -0.5
v 0.375 1.25 -0.375
v 0.375 1.25 -0.5
v -0.375 1.375 -0.5
v -0.375 1.375 -0.375
v -0.375 1.25 -0.5
v -0.375 1.25 -0.375
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.125 1
vt 0.125 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vt 0 1
vt 0.75 1
vt 0.75 0.875
vt 0 0.875
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl none
f 68/196/49 71/195/49 69/194/49 66/193/49
f 67/200/50 68/199/50 66/198/50 65/197/50
f 72/204/51 67/203/51 65/202/51 70/201/51
f 71/208/52 72/207/52 70/206/52 69/205/52
f 70/212/53 65/211/53 66/210/53 69/209/53
f 71/216/54 68/215/54 67/214/54 72/213/54

View File

@ -69,6 +69,7 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext
local id_pillar = name .. "_pillar"
local id_stairs = name .. "_stairs"
local id_fence = name .. "_fence"
local id_door = name .. "_door"
table.insert(PyuTest.building_blocks, {
ns = name:split(":")[1],
@ -126,7 +127,8 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext
sounds = PyuTest.make_node_sounds(),
}, econf))
PyuTest.make_fence(id_fence, Translate(desc .. " Fence"), id_block, tex, groups, econf)
PyuTest.make_fence(id_fence, desc .. " Fence", id_block, tex, groups, econf)
PyuTest.make_door(id_door, desc .. " Door", id_block, tex, groups, econf)
core.register_craft({
output = id_carpet .. " 2",

View File

@ -0,0 +1,68 @@
PyuTest.DOOR_NODEBOX = {
type = "fixed",
fixed = { -0.5, -0.5, -0.38, 0.5, 1.5, -0.5 }
}
local function door_toggle_param2(start, current)
if start == 3 and current + 1 > start then
return start - 1
elseif start >= 0 and current > start then
return current - 1
else
return current + 1
end
end
local DOOR_META_PARAM2_NAME = "door_start_param2"
PyuTest.make_door = function(name, desc, craftitem, texture, groups, extra)
local e = extra or {}
core.register_node(name, PyuTest.util.tableconcat({
description = Translate(desc),
groups = PyuTest.util.tableconcat(groups, {
door = 1
}),
tiles = texture,
sounds = PyuTest.make_node_sounds(),
paramtype = "light",
paramtype2 = "facedir",
drawtype = "mesh",
mesh = "pyutest-door.obj",
selection_box = PyuTest.DOOR_NODEBOX,
collision_box = PyuTest.DOOR_NODEBOX,
after_place_node = function(pos, placer)
local node = core.get_node(pos)
local meta = core.get_meta(pos)
meta:set_int(DOOR_META_PARAM2_NAME, node.param2)
end,
on_rightclick = function (pos, node, clicker)
local meta = core.get_meta(pos)
core.swap_node(pos, {
name = name,
param2 = door_toggle_param2(meta:get_int(DOOR_META_PARAM2_NAME), node.param2)
})
core.sound_play({
name = "crate_open",
gain = 1,
pos = pos
})
end
}, e))
if craftitem ~= nil then
core.register_craft({
output = name,
recipe = {
{craftitem, craftitem},
{craftitem, craftitem},
{craftitem, craftitem},
}
})
end
end

View File

@ -1,6 +1,6 @@
PyuTest.make_fence = function(name, desc, craftitem, texture, groups, extra)
core.register_node(name, PyuTest.util.tableconcat({
description = desc,
description = Translate(desc),
groups = PyuTest.util.tableconcat(groups, {
block = 1,
fence = 1,

View File

@ -2,24 +2,24 @@ PyuTest.make_slab = function(name, desc, craftitem, texture, groups, extra)
local e = extra or {}
core.register_node(name, PyuTest.util.tableconcat({
description = Translate(desc),
groups = PyuTest.util.tableconcat(groups, {
block = 1,
slab = 1,
}),
tiles = texture,
sounds = PyuTest.make_node_sounds(),
paramtype = "light",
paramtype2 = "colorfacedir",
description = Translate(desc),
groups = PyuTest.util.tableconcat(groups, {
block = 1,
slab = 1,
}),
tiles = texture,
sounds = PyuTest.make_node_sounds(),
paramtype = "light",
paramtype2 = "colorfacedir",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
on_place = function (itemstack, placer, pointed_thing)
return PyuTest.rotate_and_place(itemstack, placer, pointed_thing)
end
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
on_place = function (itemstack, placer, pointed_thing)
return PyuTest.rotate_and_place(itemstack, placer, pointed_thing)
end
}, e))
if craftitem ~= nil then

View File

@ -2,9 +2,9 @@ local modpath = core.get_modpath("pyutest_blocks")
dofile(modpath .. "/api/fences.lua")
dofile(modpath .. "/api/stairs.lua")
dofile(modpath .. "/api/doors.lua")
dofile(modpath .. "/api.lua")
dofile(modpath .. "/basic.lua")
dofile(modpath .. "/liquid.lua")
dofile(modpath .. "/special.lua")