Added some new plants and artwork.

master
Nathan Salapat 2022-07-11 21:24:21 -05:00
parent eab0336c43
commit e4a345c43d
25 changed files with 849 additions and 66 deletions

View File

@ -27,6 +27,9 @@ artwork.register_full('b5', 'Tractor')
artwork.register_full('b6', 'Goldfish')
artwork.register_full('b11', 'Waterlilly')
artwork.register_full('b12', 'Firework')
artwork.register_full('b13', 'Chicken')
artwork.register_full('b14', 'Chicken')
artwork.register_landscape('b2', 'Cardinal')
artwork.register_landscape('b3', 'Robin')

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -319,6 +319,7 @@ minetest.register_node('lobby:button_1', {
lobby.corpses[map_id] = {}
lobby.sabotage[map_id] = false
lobby.sabotage_level[map_id] = 5
sabotage.timer[map_id] = 0
for i=1,player_count do
minetest.chat_send_player(map_players[i], 'Hold tight, loading the level.')
local player = minetest.get_player_by_name(map_players[i])

View File

@ -133,6 +133,7 @@ minetest.register_chatcommand('skip', {
if map_id ~= 'lobby' then
local actual_votes = lobby.votes[map_id] or 0
if not lobby.voted[name] then
lobby.vote_timer[map_id] = 1800
minetest.chat_send_player(name, 'You skipped voting this round.')
lobby.voted[name] = true
lobby.votes[map_id] = actual_votes + 1

View File

@ -79,12 +79,14 @@ end)
function lobby.voting_formspec(survivors)
local formspec =
'size[12,7]'..
'no_prepend[]'..
'bgcolor[#080808BB;true]'..
'textarea[1,1.5;11,6;;;Who dun it? make your pick. These players are on this map:'..
'\n'..survivors..
'\nYou can see the list of survivors at any time by using the /survivors command.'..
'\nVote to kick the traitor with /kick <playername>, use /skip to skip voting.]'..
'bgcolor[#080808BB;false]'..
'textarea[1,1;11,6;;;Who do you think the traitor is? Now is your time to vote and try to kick them from the level. '..
'There is a three minute timer which is reset each time somebody votes. '..
'Should the timer hit zero before all votes are in the player with the most votes will be kicked.'..
'\n\n These players are on this map:'..
'\n '..survivors..
'\n\nUse chat command /kick <playername> to vote for the player you think is the traitor. Use chat command /skip to skip voting.'..
'\nYou can see the list of survivors at any time by using the /survivors chat command]'..
'button_exit[4.5,5;3,1;go;Discuss]'
return formspec
end

53
mods/plants/bushes.lua Normal file
View File

@ -0,0 +1,53 @@
minetest.register_node('plants:topiary_01', {
description = 'Topiary Bush',
drawtype = 'mesh',
mesh = 'plants_topiary_01.obj',
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {'plants_topiary_01.png'},
groups = {breakable=1},
selection_box = {
type = 'fixed',
fixed = {{-.4, -.5, -.4, .4, 1, .4}}
},
collision_box = {
type = 'fixed',
fixed = {{-.4, -.5, -.4, .4, 1, .4}}
},
})
minetest.register_node('plants:topiary_02', {
description = 'Topiary Bush',
drawtype = 'mesh',
mesh = 'plants_topiary_02.obj',
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {'plants_topiary_02.png'},
groups = {breakable=1},
selection_box = {
type = 'fixed',
fixed = {{-.25, -.5, -.25, .25, 1, .25}}
},
collision_box = {
type = 'fixed',
fixed = {{-.25, -.5, -.25, .25, 1, .25}}
},
})
minetest.register_node('plants:topiary_03', {
description = 'Topiary Bush',
drawtype = 'mesh',
mesh = 'plants_topiary_03.obj',
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {'plants_topiary_03.png'},
groups = {breakable=1},
selection_box = {
type = 'fixed',
fixed = {{-.25, -.5, -.25, .25, 1, .25}}
},
collision_box = {
type = 'fixed',
fixed = {{-.25, -.5, -.25, .25, 1, .25}}
},
})

View File

@ -173,6 +173,7 @@ function plants.register_flower(name, desc, light)
})
end
dofile(minetest.get_modpath('plants')..'/bushes.lua')
dofile(minetest.get_modpath('plants')..'/crops.lua')
dofile(minetest.get_modpath('plants')..'/flowers.lua')
dofile(minetest.get_modpath('plants')..'/fungi.lua')

View File

@ -0,0 +1,260 @@
# Blender v3.2.0 OBJ File: 'plants.blend'
# www.blender.org
o Topiary_Cube.002
v -0.062500 -0.500000 0.062500
v -0.062500 -0.250000 0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 -0.250000 -0.062500
v 0.062500 -0.500000 0.062500
v 0.062500 -0.250000 0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 -0.250000 -0.062500
v 0.125000 0.125000 -0.125000
v 0.125000 0.250000 -0.125000
v 0.125000 0.125000 -0.187500
v 0.125000 0.250000 -0.187500
v 0.187500 0.125000 -0.125000
v 0.187500 0.250000 -0.125000
v 0.187500 0.125000 -0.187500
v 0.187500 0.250000 -0.187500
v -0.250000 -0.250000 0.250000
v -0.250000 0.125000 0.250000
v -0.250000 -0.250000 -0.250000
v -0.250000 0.125000 -0.250000
v 0.250000 -0.250000 0.250000
v 0.250000 0.125000 0.250000
v 0.250000 -0.250000 -0.250000
v 0.250000 0.125000 -0.250000
v -0.125000 0.125000 0.125000
v -0.125000 0.375000 0.125000
v -0.125000 0.125000 0.062500
v -0.125000 0.375000 0.062500
v -0.062500 0.125000 0.125000
v -0.062500 0.375000 0.125000
v -0.062500 0.125000 0.062500
v -0.062500 0.375000 0.062500
v -0.250000 0.375000 0.250000
v -0.250000 0.625000 0.250000
v -0.250000 0.375000 0.000000
v -0.250000 0.625000 0.000000
v 0.062500 0.375000 0.250000
v 0.062500 0.625000 0.250000
v 0.062500 0.375000 0.000000
v 0.062500 0.625000 0.000000
v 0.062500 0.250000 0.000000
v 0.062500 0.500000 0.000000
v 0.062500 0.250000 -0.312500
v 0.062500 0.500000 -0.312500
v 0.375000 0.250000 0.000000
v 0.375000 0.500000 0.000000
v 0.375000 0.250000 -0.312500
v 0.375000 0.500000 -0.312500
v -0.187500 0.625000 0.125000
v -0.187500 0.750000 0.125000
v -0.187500 0.625000 0.062500
v -0.187500 0.750000 0.062500
v -0.125000 0.625000 0.125000
v -0.125000 0.750000 0.125000
v -0.125000 0.625000 0.062500
v -0.125000 0.750000 0.062500
v -0.312500 0.750000 0.250000
v -0.312500 0.937500 0.250000
v -0.312500 0.750000 0.000000
v -0.312500 0.937500 0.000000
v -0.062500 0.750000 0.250000
v -0.062500 0.937500 0.250000
v -0.062500 0.750000 0.000000
v -0.062500 0.937500 0.000000
v 0.250000 0.500000 -0.062500
v 0.250000 0.750000 -0.062500
v 0.250000 0.500000 -0.125000
v 0.250000 0.750000 -0.125000
v 0.312500 0.500000 -0.062500
v 0.312500 0.750000 -0.062500
v 0.312500 0.500000 -0.125000
v 0.312500 0.750000 -0.125000
v 0.062500 0.750000 0.062500
v 0.062500 1.000000 0.062500
v 0.062500 0.750000 -0.187500
v 0.062500 1.000000 -0.187500
v 0.375000 0.750000 0.062500
v 0.375000 1.000000 0.062500
v 0.375000 0.750000 -0.187500
v 0.375000 1.000000 -0.187500
vt 0.421875 0.781250
vt 0.359375 0.781250
vt 0.359375 0.750000
vt 0.421875 0.750000
vt 0.359375 0.718750
vt 0.421875 0.718750
vt 0.421875 0.843750
vt 0.359375 0.843750
vt 0.359375 0.812500
vt 0.421875 0.812500
vt 0.875000 0.367188
vt 0.906250 0.367188
vt 0.906250 0.382812
vt 0.875000 0.382812
vt 0.875000 0.351562
vt 0.906250 0.351562
vt 0.875000 0.320312
vt 0.906250 0.320312
vt 0.906250 0.335938
vt 0.875000 0.335938
vt 0.195312 0.250000
vt 0.289062 0.250000
vt 0.289062 0.375000
vt 0.195312 0.375000
vt 0.289062 0.500000
vt 0.195312 0.500000
vt 0.289062 0.625000
vt 0.195312 0.625000
vt 0.195312 0.125000
vt 0.289062 0.125000
vt 0.070312 0.500000
vt 0.070312 0.625000
vt 0.414062 0.500000
vt 0.414062 0.625000
vt 0.859375 0.726562
vt 0.796875 0.726562
vt 0.796875 0.710938
vt 0.859375 0.710938
vt 0.859375 0.742188
vt 0.796875 0.742188
vt 0.859375 0.773438
vt 0.796875 0.773438
vt 0.796875 0.757812
vt 0.859375 0.757812
vt 0.601562 0.757812
vt 0.664062 0.757812
vt 0.664062 0.820312
vt 0.601562 0.820312
vt 0.664062 0.898438
vt 0.601562 0.898438
vt 0.664062 0.960938
vt 0.601562 0.960938
vt 0.601562 0.679688
vt 0.664062 0.679688
vt 0.523438 0.898438
vt 0.523438 0.960938
vt 0.742188 0.898438
vt 0.742188 0.960938
vt 0.632812 0.179688
vt 0.632812 0.117188
vt 0.710938 0.117188
vt 0.710938 0.179688
vt 0.789062 0.117188
vt 0.789062 0.179688
vt 0.867188 0.117188
vt 0.867188 0.179688
vt 0.554688 0.179688
vt 0.554688 0.117188
vt 0.789062 0.257812
vt 0.867188 0.257812
vt 0.789062 0.039062
vt 0.867188 0.039062
vt 0.843750 0.820312
vt 0.843750 0.789062
vt 0.859375 0.789062
vt 0.859375 0.820312
vt 0.828125 0.820312
vt 0.828125 0.789062
vt 0.796875 0.820312
vt 0.796875 0.789062
vt 0.812500 0.789062
vt 0.812500 0.820312
vt 0.125000 0.835938
vt 0.125000 0.789062
vt 0.187500 0.789062
vt 0.187500 0.835938
vt 0.250000 0.789062
vt 0.250000 0.835938
vt 0.312500 0.789062
vt 0.312500 0.835938
vt 0.062500 0.835938
vt 0.062500 0.789062
vt 0.250000 0.898438
vt 0.312500 0.898438
vt 0.250000 0.726562
vt 0.312500 0.726562
vt 0.796875 0.671875
vt 0.859375 0.671875
vt 0.859375 0.687500
vt 0.796875 0.687500
vt 0.796875 0.656250
vt 0.859375 0.656250
vt 0.796875 0.625000
vt 0.859375 0.625000
vt 0.859375 0.640625
vt 0.796875 0.640625
vt 0.625000 0.484375
vt 0.625000 0.421875
vt 0.687500 0.421875
vt 0.687500 0.484375
vt 0.765625 0.421875
vt 0.765625 0.484375
vt 0.828125 0.421875
vt 0.828125 0.484375
vt 0.546875 0.484375
vt 0.546875 0.421875
vt 0.765625 0.562500
vt 0.828125 0.562500
vt 0.765625 0.343750
vt 0.828125 0.343750
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/7/3 8/8/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 11/11/2 12/12/2 16/13/2 15/14/2
f 9/15/1 10/16/1 12/12/1 11/11/1
f 15/17/3 16/18/3 14/19/3 13/20/3
f 13/20/4 14/19/4 10/16/4 9/15/4
f 17/21/1 18/22/1 20/23/1 19/24/1
f 19/24/2 20/23/2 24/25/2 23/26/2
f 23/26/3 24/25/3 22/27/3 21/28/3
f 21/29/4 22/30/4 18/22/4 17/21/4
f 19/31/5 23/26/5 21/28/5 17/32/5
f 24/25/6 20/33/6 18/34/6 22/27/6
f 27/35/2 28/36/2 32/37/2 31/38/2
f 25/39/1 26/40/1 28/36/1 27/35/1
f 31/41/3 32/42/3 30/43/3 29/44/3
f 29/44/4 30/43/4 26/40/4 25/39/4
f 33/45/1 34/46/1 36/47/1 35/48/1
f 35/48/2 36/47/2 40/49/2 39/50/2
f 39/50/3 40/49/3 38/51/3 37/52/3
f 37/53/4 38/54/4 34/46/4 33/45/4
f 35/55/5 39/50/5 37/52/5 33/56/5
f 40/49/6 36/57/6 34/58/6 38/51/6
f 41/59/1 42/60/1 44/61/1 43/62/1
f 43/62/2 44/61/2 48/63/2 47/64/2
f 47/64/3 48/63/3 46/65/3 45/66/3
f 45/67/4 46/68/4 42/60/4 41/59/4
f 43/69/5 47/64/5 45/66/5 41/70/5
f 48/63/6 44/71/6 42/72/6 46/65/6
f 51/73/2 52/74/2 56/75/2 55/76/2
f 49/77/1 50/78/1 52/74/1 51/73/1
f 55/79/3 56/80/3 54/81/3 53/82/3
f 53/82/4 54/81/4 50/78/4 49/77/4
f 57/83/1 58/84/1 60/85/1 59/86/1
f 59/86/2 60/85/2 64/87/2 63/88/2
f 63/88/3 64/87/3 62/89/3 61/90/3
f 61/91/4 62/92/4 58/84/4 57/83/4
f 59/93/5 63/88/5 61/90/5 57/94/5
f 64/87/6 60/95/6 58/96/6 62/89/6
f 67/97/2 68/98/2 72/99/2 71/100/2
f 65/101/1 66/102/1 68/98/1 67/97/1
f 71/103/3 72/104/3 70/105/3 69/106/3
f 69/106/4 70/105/4 66/102/4 65/101/4
f 73/107/1 74/108/1 76/109/1 75/110/1
f 75/110/2 76/109/2 80/111/2 79/112/2
f 79/112/3 80/111/3 78/113/3 77/114/3
f 77/115/4 78/116/4 74/108/4 73/107/4
f 75/117/5 79/112/5 77/114/5 73/118/5
f 80/111/6 76/119/6 74/120/6 78/113/6

View File

@ -0,0 +1,160 @@
# Blender v3.2.0 OBJ File: 'plants.blend'
# www.blender.org
o Topiary2_Cube.003
v -0.062500 -0.500000 0.062500
v -0.062500 -0.250000 0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 -0.250000 -0.062500
v 0.062500 -0.500000 0.062500
v 0.062500 -0.250000 0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 -0.250000 -0.062500
v -0.125000 0.812500 0.125000
v -0.125000 1.000000 0.125000
v -0.125000 0.812500 -0.125000
v -0.125000 1.000000 -0.125000
v 0.125000 0.812500 0.125000
v 0.125000 1.000000 0.125000
v 0.125000 0.812500 -0.125000
v 0.125000 1.000000 -0.125000
v -0.250000 -0.250000 0.250000
v -0.250000 0.125000 0.250000
v -0.250000 -0.250000 -0.250000
v -0.250000 0.125000 -0.250000
v 0.250000 -0.250000 0.250000
v 0.250000 0.125000 0.250000
v 0.250000 -0.250000 -0.250000
v 0.250000 0.125000 -0.250000
v -0.031250 0.687500 0.031250
v -0.031250 0.812500 0.031250
v -0.031250 0.687500 -0.031250
v -0.031250 0.812500 -0.031250
v 0.031250 0.687500 0.031250
v 0.031250 0.812500 0.031250
v 0.031250 0.687500 -0.031250
v 0.031250 0.812500 -0.031250
v 0.062500 0.375000 -0.062500
v 0.062500 0.125000 -0.062500
v 0.062500 0.375000 0.062500
v 0.062500 0.125000 0.062500
v -0.062500 0.375000 -0.062500
v -0.062500 0.125000 -0.062500
v -0.062500 0.375000 0.062500
v -0.062500 0.125000 0.062500
v 0.187500 0.687500 -0.187500
v 0.187500 0.375000 -0.187500
v 0.187500 0.687500 0.187500
v 0.187500 0.375000 0.187500
v -0.187500 0.687500 -0.187500
v -0.187500 0.375000 -0.187500
v -0.187500 0.687500 0.187500
v -0.187500 0.375000 0.187500
vt 0.906250 0.703125
vt 0.843750 0.703125
vt 0.843750 0.671875
vt 0.906250 0.671875
vt 0.843750 0.640625
vt 0.906250 0.640625
vt 0.906250 0.765625
vt 0.843750 0.765625
vt 0.843750 0.734375
vt 0.906250 0.734375
vt 0.601562 0.882812
vt 0.664062 0.882812
vt 0.664062 0.945312
vt 0.601562 0.945312
vt 0.710938 0.882812
vt 0.773438 0.882812
vt 0.773438 0.945312
vt 0.710938 0.945312
vt 0.070312 0.882812
vt 0.070312 0.820312
vt 0.101562 0.820312
vt 0.101562 0.882812
vt 0.039062 0.882812
vt 0.039062 0.820312
vt 0.226562 0.312500
vt 0.320312 0.312500
vt 0.320312 0.437500
vt 0.226562 0.437500
vt 0.320312 0.562500
vt 0.226562 0.562500
vt 0.320312 0.687500
vt 0.226562 0.687500
vt 0.226562 0.187500
vt 0.320312 0.187500
vt 0.101562 0.562500
vt 0.101562 0.687500
vt 0.445312 0.562500
vt 0.445312 0.687500
vt 0.265625 0.843750
vt 0.265625 0.812500
vt 0.281250 0.812500
vt 0.281250 0.843750
vt 0.250000 0.843750
vt 0.250000 0.812500
vt 0.218750 0.843750
vt 0.218750 0.812500
vt 0.234375 0.812500
vt 0.234375 0.843750
vt 0.132812 0.882812
vt 0.132812 0.820312
vt 0.164062 0.820312
vt 0.164062 0.882812
vt 0.804688 0.421875
vt 0.898438 0.421875
vt 0.898438 0.515625
vt 0.804688 0.515625
vt 0.632812 0.421875
vt 0.726562 0.421875
vt 0.726562 0.515625
vt 0.632812 0.515625
vt 0.726562 0.140625
vt 0.804688 0.140625
vt 0.804688 0.234375
vt 0.726562 0.234375
vt 0.726562 0.328125
vt 0.804688 0.328125
vt 0.664062 0.695312
vt 0.710938 0.695312
vt 0.710938 0.757812
vt 0.664062 0.757812
vt 0.710938 0.820312
vt 0.664062 0.820312
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/7/3 8/8/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 11/11/5 15/12/5 13/13/5 9/14/5
f 16/15/6 12/16/6 10/17/6 14/18/6
f 36/19/4 35/20/4 39/21/4 40/22/4
f 34/23/3 33/24/3 35/20/3 36/19/3
f 17/25/1 18/26/1 20/27/1 19/28/1
f 19/28/2 20/27/2 24/29/2 23/30/2
f 23/30/3 24/29/3 22/31/3 21/32/3
f 21/33/4 22/34/4 18/26/4 17/25/4
f 19/35/5 23/30/5 21/32/5 17/36/5
f 24/29/6 20/37/6 18/38/6 22/31/6
f 27/39/2 28/40/2 32/41/2 31/42/2
f 25/43/1 26/44/1 28/40/1 27/39/1
f 31/45/3 32/46/3 30/47/3 29/48/3
f 29/48/4 30/47/4 26/44/4 25/43/4
f 38/49/2 37/50/2 33/51/2 34/52/2
f 40/22/1 39/21/1 37/50/1 38/49/1
f 41/53/6 45/54/6 47/55/6 43/56/6
f 46/57/5 42/58/5 44/59/5 48/60/5
f 44/61/4 43/62/4 47/63/4 48/64/4
f 42/58/3 41/53/3 43/56/3 44/59/3
f 46/65/2 45/66/2 41/53/2 42/58/2
f 48/64/1 47/63/1 45/66/1 46/65/1
f 15/12/3 16/15/3 14/18/3 13/13/3
f 13/67/4 14/68/4 10/69/4 9/70/4
f 9/70/1 10/69/1 12/71/1 11/72/1
f 11/72/2 12/71/2 16/15/2 15/12/2

View File

@ -0,0 +1,110 @@
# Blender v3.2.0 OBJ File: 'plants.blend'
# www.blender.org
o Topiary3_Cube.004
v -0.062500 -0.500000 0.062500
v -0.062500 -0.250000 0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 -0.250000 -0.062500
v 0.062500 -0.500000 0.062500
v 0.062500 -0.250000 0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 -0.250000 -0.062500
v -0.125000 0.687500 0.125000
v -0.125000 1.000000 0.125000
v -0.125000 0.687500 -0.125000
v -0.125000 1.000000 -0.125000
v 0.125000 0.687500 0.125000
v 0.125000 1.000000 0.125000
v 0.125000 0.687500 -0.125000
v 0.125000 1.000000 -0.125000
v -0.250000 -0.250000 0.250000
v -0.250000 0.187500 0.250000
v -0.250000 -0.250000 -0.250000
v -0.250000 0.187500 -0.250000
v 0.250000 -0.250000 0.250000
v 0.250000 0.187500 0.250000
v 0.250000 -0.250000 -0.250000
v 0.250000 0.187500 -0.250000
v 0.187500 0.687500 -0.187500
v 0.187500 0.187500 -0.187500
v 0.187500 0.687500 0.187500
v 0.187500 0.187500 0.187500
v -0.187500 0.687500 -0.187500
v -0.187500 0.187500 -0.187500
v -0.187500 0.687500 0.187500
v -0.187500 0.187500 0.187500
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.937500
vt -0.000000 0.937500
vt 0.125000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.750000
vt 0.125000 0.750000
vt 0.125000 0.812500
vt -0.000000 0.812500
vt 0.828125 0.421875
vt 0.703125 0.421875
vt 0.703125 0.296875
vt 0.828125 0.296875
vt 0.671875 0.750000
vt 0.453125 0.750000
vt 0.453125 0.500000
vt 0.671875 0.500000
vt 0.453125 0.250000
vt 0.671875 0.250000
vt 0.453125 -0.000000
vt 0.671875 -0.000000
vt 0.671875 1.000000
vt 0.453125 1.000000
vt 0.921875 0.250000
vt 0.921875 -0.000000
vt 0.203125 0.250000
vt 0.203125 -0.000000
vt 0.187500 0.437500
vt -0.000000 0.437500
vt -0.000000 0.250000
vt 0.187500 0.250000
vt 0.437500 1.000000
vt 0.187500 1.000000
vt 0.187500 0.812500
vt 0.437500 0.812500
vt 0.437500 0.437500
vt 0.437500 0.250000
vt 0.437500 0.625000
vt 0.187500 0.625000
vt 0.984375 0.421875
vt 0.984375 0.296875
vt 0.984375 0.796875
vt 0.828125 0.796875
vt 0.828125 0.671875
vt 0.984375 0.671875
vt 0.828125 0.546875
vt 0.984375 0.546875
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/7/3 8/8/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 16/11/5 12/12/5 10/13/5 14/14/5
f 17/15/1 18/16/1 20/17/1 19/18/1
f 19/18/2 20/17/2 24/19/2 23/20/2
f 23/20/3 24/19/3 22/21/3 21/22/3
f 21/23/4 22/24/4 18/16/4 17/15/4
f 19/25/6 23/20/6 21/22/6 17/26/6
f 24/19/5 20/27/5 18/28/5 22/21/5
f 25/29/5 29/30/5 31/31/5 27/32/5
f 28/33/4 27/34/4 31/35/4 32/36/4
f 26/37/3 25/29/3 27/32/3 28/38/3
f 30/39/2 29/40/2 25/29/2 26/37/2
f 32/36/1 31/35/1 29/40/1 30/39/1
f 15/41/3 16/11/3 14/14/3 13/42/3
f 13/43/4 14/44/4 10/45/4 9/46/4
f 9/46/1 10/45/1 12/47/1 11/48/1
f 11/48/2 12/47/2 16/11/2 15/41/2

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -34,8 +34,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
lobby.sabotage[map_id] = true
local time = meta:get_int('timer')
if time > 0 then
local timer = minetest.get_node_timer(pos)
timer:start(time)
sabotage.show_hud_timed(map_id, time, desc)
sabotage.timer[map_id] = time
elseif time == 0 then
@ -43,10 +41,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
local alert = meta:get_string('alert')
local level = meta:get_int('level') or 0
local terminate = meta:get_string('terminate')
lobby.message_to_level(map_id, 'Level has been sabotaged, proceed with caution.')
lobby.message_to_level(map_id, alert)
minetest.chat_send_player(name, 'You successfully sabotaged this node')
lobby.sabotage_level[map_id] = level
local data = {}
data.pos = pos
data.traitor = name
data.terminate = terminate
sabotage.data[map_id] = data
end
end
end
@ -89,30 +93,43 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
player:set_hp(new_health)
end
if math.random(10) + luck >= chance then
local node = minetest.get_node(pos)
local node_name = node.name
local def = minetest.registered_nodes[node_name]
local flip = def.sabotage_switch
if flip then
minetest.swap_node(pos, {name = flip, param2 = node.param2})
end
local time = meta:get_int('timer')
sabotage.clear_hud(map_id)
lobby.sabotage_level[map_id] = 5
lobby.sabotage[map_id] = false
if terminate == 'true' then
local timer = minetest.get_node_timer(pos)
timer:stop()
lobby.team_win(map_id)
else
local node = minetest.get_node(pos).name
local def = minetest.registered_nodes[node]
local desc = def.description
local xp = meta:get_int('xp')
tasks.only_add_xp(xp, name)
lobby.message_to_level(map_id, desc.. ' was just fixed.')
end
sabotage.timer[map_id] = 0
sabotage.finish(map_id, name, 'team')
end
end
end
end)
function sabotage.finish(map_id, name, winner)
print 'sabotage ended'
if lobby.map[map_id] then
local data = sabotage.data[map_id]
local pos = data.pos
local traitor = data.traitor
local terminate = data.terminate
local node = minetest.get_node(pos)
local node_name = node.name
local def = minetest.registered_nodes[node_name]
local flip = def.sabotage_switch
if flip then
minetest.swap_node(pos, {name = flip, param2 = node.param2})
end
if lobby.map[map_id] > 1 and lobby.traitors[map_id] == traitor then
lobby.sabotage_level[map_id] = 5
lobby.sabotage[map_id] = false
if terminate == 'true' then
if winner == 'team' then
lobby.team_win(map_id)
else
lobby.traitor_win(traitor, map_id)
end
elseif name then
local meta = minetest.get_meta(pos)
local desc = def.description
local xp = meta:get_int('xp')
tasks.only_add_xp(xp, name)
lobby.message_to_level(map_id, desc.. ' was just fixed.')
end
end
end
end

View File

@ -1,7 +1,8 @@
function sabotage.show_hud_timed(map_id, timer, desc)
for _, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if lobby.game[name] == map_id then
local id = lobby.game[name]
if id == map_id or id == map_id..'_ghost' then
sabotage.hud[name] = {
desc = player:hud_add({
hud_elem_type = 'text',
@ -15,7 +16,7 @@ function sabotage.show_hud_timed(map_id, timer, desc)
hud_elem_type = 'text',
position = {x = 1, y = 0.125},
offset = {x = -20, y = 0},
text = 'Time until traitor victory:',
text = 'Time until sabotage ends:',
alignment = {x = -1, y = 0},
scale = {x = 100, y = 100},
}),
@ -38,7 +39,8 @@ end
function sabotage.clear_hud(map_id)
for _, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if lobby.game[name] == map_id then
local id = lobby.game[name]
if id == map_id or id == map_id..'_ghost' then
local idx = sabotage.hud[name]
for key,value in pairs(idx) do
player:hud_remove(value)
@ -50,12 +52,15 @@ end
function sabotage.update_hud(map_id)
local time = sabotage.timer[map_id] - 1
if time < 0 then
sabotage.clear_hud(map_id)
sabotage.finish(map_id)
return
end
sabotage.timer[map_id] = time
for _, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if lobby.game[name] == map_id then
local id = lobby.game[name]
if id == map_id or id == map_id..'_ghost' then
local idx = sabotage.hud[name]
player:hud_change(idx.timer, 'text', time..' seconds')
end
@ -68,7 +73,8 @@ end
function sabotage.show_hud(map_id, desc)
for _, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if lobby.game[name] == map_id then
local id = lobby.game[name]
if id == map_id or id == map_id..'_ghost' then
sabotage.hud[name] = {
desc = player:hud_add({
hud_elem_type = 'text',

View File

@ -2,6 +2,7 @@ sabotage = {}
sabotage.player_pos = {}
sabotage.hud = {}
sabotage.timer = {}
sabotage.data = {}
dofile(minetest.get_modpath('sabotage')..'/formspecs.lua')
dofile(minetest.get_modpath('sabotage')..'/functions.lua')

View File

@ -18,25 +18,3 @@ function sabotage.on_rightclick(pos, node, clicker)
minetest.chat_send_player(name, 'You can\'t interact with this now.')
end
end
function sabotage.on_timer(pos)
local meta = minetest.get_meta(pos)
local traitor = meta:get_string('traitor')
local map_id = meta:get_string('map_id')
local terminate = meta:get_string('terminate')
local node = minetest.get_node(pos)
local node_name = node.name
local def = minetest.registered_nodes[node_name]
local flip = def.sabotage_switch
if flip then
minetest.swap_node(pos, {name = flip, param2 = node.param2})
end
if lobby.map[map_id] then
if lobby.map[map_id] > 1 and lobby.traitors[map_id] == traitor then
sabotage.clear_hud(map_id)
if terminate == 'true' then
lobby.traitor_win(traitor, map_id)
end
end
end
end

View File

@ -16,7 +16,6 @@ minetest.register_node('sabotage:power_switch_on', {
drop = 'sabotage:power_switch_off',
sabotage_switch = 'sabotage:power_switch_off',
on_rightclick = sabotage.on_rightclick,
on_timer = sabotage.on_timer
})
minetest.register_node('sabotage:power_switch_off', { --non-sabotaged version.
@ -31,5 +30,4 @@ minetest.register_node('sabotage:power_switch_off', { --non-sabotaged version.
groups = {breakable=1, sabotage=1},
sabotage_switch = 'sabotage:power_switch_on',
on_rightclick = sabotage.on_rightclick,
on_timer = sabotage.on_timer
})

View File

@ -42,7 +42,27 @@ minetest.register_node('signs:post_directional', {-- Update to degrotate after
on_receive_fields = signs.on_receive_fields
})
minetest.register_node('signs:arrow_hanging', {
drawtype = 'mesh',
mesh = 'signs_arrow_hanging.obj',
description = 'Hanging Arrow Sign',
groups = {breakable=1},
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = 'facedir',
tiles = {'signs_arrow_hanging.png'},
selection_box = {
type = 'fixed',
fixed = {-.45, 0, -.1, .45, .5, .1},
},
collision_box = {
type = 'fixed',
fixed = {-.45, 0, -.1, .45, .5, .1},
},
on_construct = signs.on_construct,
after_place_node = signs.after_place_node,
on_receive_fields = signs.on_receive_fields
})
for i = 1, 6 do
minetest.register_node('signs:poster_'..i, {

View File

@ -51,7 +51,7 @@ minetest.register_node('signs:chalkboard', {
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local name = clicker:get_player_name()
if minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
if not minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
signs.player_pos[name] = pos
minetest.show_formspec(name, 'signs:chalkboard_edit', chalkboard_edit(pos))
else

View File

@ -0,0 +1,172 @@
# Blender v3.2.0 OBJ File: 'sign.blend'
# www.blender.org
o Cube.001_Cube
v 0.318182 0.187500 -0.062500
v 0.318182 0.312500 -0.062500
v 0.318182 0.187500 0.062500
v 0.318182 0.312500 0.062500
v -0.244318 0.187500 -0.062500
v -0.244318 0.312500 -0.062500
v -0.244318 0.187500 0.062500
v -0.244318 0.312500 0.062500
v -0.431818 0.281250 0.062500
v -0.431818 0.218750 0.062500
v -0.431818 0.218750 -0.062500
v -0.431818 0.281250 -0.062500
v -0.244318 0.375000 0.062500
v -0.244318 0.375000 -0.062500
v -0.338068 0.375000 0.062500
v -0.338068 0.375000 -0.062500
v -0.244318 0.125000 -0.062500
v -0.244318 0.125000 0.062500
v -0.338068 0.125000 -0.062500
v -0.338068 0.125000 0.062500
v 0.443182 0.187500 0.062500
v 0.443182 0.187500 -0.062500
v 0.443182 0.312500 -0.062500
v 0.443182 0.312500 0.062500
v 0.318182 0.375000 -0.062500
v 0.318182 0.375000 0.062500
v 0.443182 0.375000 -0.062500
v 0.443182 0.375000 0.062500
v 0.255682 0.312500 -0.031250
v 0.255682 0.500000 -0.031250
v 0.255682 0.312500 0.031250
v 0.255682 0.500000 0.031250
v 0.193182 0.312500 -0.031250
v 0.193182 0.500000 -0.031250
v 0.193182 0.312500 0.031250
v 0.193182 0.500000 0.031250
v -0.119318 0.312500 -0.031250
v -0.119318 0.500000 -0.031250
v -0.119318 0.312500 0.031250
v -0.119318 0.500000 0.031250
v -0.181818 0.312500 -0.031250
v -0.181818 0.500000 -0.031250
v -0.181818 0.312500 0.031250
v -0.181818 0.500000 0.031250
vt 0.125000 0.062500
vt 0.125000 0.187500
vt -0.000000 0.187500
vt -0.000000 0.062500
vt 0.125000 0.312500
vt 0.125000 0.437500
vt 0.687500 0.437500
vt 0.687500 0.312500
vt 0.656250 0.875000
vt 0.656250 1.000000
vt 0.593750 1.000000
vt 0.593750 0.875000
vt 0.687500 0.062500
vt 0.687500 0.187500
vt 0.562500 0.625000
vt -0.000000 0.625000
vt -0.000000 0.500000
vt 0.562500 0.500000
vt -0.000000 0.687500
vt 0.562500 0.687500
vt 0.562500 0.812500
vt -0.000000 0.812500
vt 0.312500 0.875000
vt 0.375000 0.875000
vt 0.375000 1.000000
vt 0.312500 1.000000
vt 0.875000 0.406250
vt 0.875000 0.343750
vt 0.875000 0.093750
vt 0.875000 0.156250
vt 0.687500 -0.000000
vt 0.781250 -0.000000
vt 0.500000 1.000000
vt 0.500000 0.875000
vt 0.687500 0.500000
vt 0.781250 0.500000
vt 0.781250 0.250000
vt 0.687500 0.250000
vt 0.093750 1.000000
vt 0.093750 0.875000
vt 0.187500 0.875000
vt 0.187500 1.000000
vt -0.000000 1.000000
vt -0.000000 0.875000
vt 0.781250 0.250000
vt 0.687500 0.250000
vt 0.687500 0.500000
vt 0.812500 0.500000
vt 0.812500 0.625000
vt 0.687500 0.625000
vt 0.625000 0.687500
vt 0.625000 0.812500
vt -0.000000 0.312500
vt -0.000000 0.437500
vt 0.750000 0.687500
vt 0.750000 0.812500
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 0.250000
vt -0.000000 0.250000
vt 0.875000 0.500000
vt 0.875000 0.625000
vt 0.937500 0.812500
vt 0.937500 1.000000
vt 0.875000 1.000000
vt 0.875000 0.812500
vt 0.812500 1.000000
vt 0.812500 0.812500
vt 0.750000 1.000000
vt 0.750000 0.812500
vt 1.000000 0.812500
vt 1.000000 1.000000
vt 0.750000 0.812500
vt 0.750000 0.625000
vt 0.812500 0.625000
vt 0.812500 0.812500
vt 0.875000 0.625000
vt 0.875000 0.812500
vt 0.937500 0.625000
vt 0.937500 0.812500
vt 1.000000 0.625000
vt 1.000000 0.812500
vn 0.0000 0.0000 -1.0000
vn -0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -0.7071 0.7071 0.0000
vn -0.7071 -0.7071 0.0000
s off
f 1/1/1 2/2/1 23/3/1 22/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 8/9/3 6/10/3 14/11/3 13/12/3
f 5/13/1 6/14/1 2/2/1 1/1/1
f 3/15/4 7/16/4 5/17/4 1/18/4
f 8/19/5 4/20/5 2/21/5 6/22/5
f 10/23/6 9/24/6 12/25/6 11/26/6
f 7/8/2 8/7/2 9/27/2 10/28/2
f 6/14/1 5/13/1 11/29/1 12/30/1
f 11/29/1 5/13/1 17/31/1 19/32/1
f 13/12/5 14/11/5 16/33/5 15/34/5
f 9/27/2 8/7/2 13/35/2 15/36/2
f 6/14/1 12/30/1 16/37/1 14/38/1
f 12/25/7 9/24/7 15/34/7 16/33/7
f 17/39/4 18/40/4 20/41/4 19/42/4
f 10/23/8 11/26/8 19/42/8 20/41/8
f 5/43/3 7/44/3 18/40/3 17/39/3
f 7/8/2 10/28/2 20/45/2 18/46/2
f 22/47/3 23/48/3 24/49/3 21/50/3
f 2/21/6 4/20/6 26/51/6 25/52/6
f 3/15/4 1/18/4 22/47/4 21/50/4
f 4/6/2 3/5/2 21/53/2 24/54/2
f 25/52/5 26/51/5 28/55/5 27/56/5
f 4/6/2 24/54/2 28/57/2 26/58/2
f 23/3/1 2/2/1 25/59/1 27/60/1
f 24/49/3 23/48/3 27/61/3 28/62/3
f 29/63/3 30/64/3 32/65/3 31/66/3
f 31/66/2 32/65/2 36/67/2 35/68/2
f 35/68/6 36/67/6 34/69/6 33/70/6
f 33/71/1 34/72/1 30/64/1 29/63/1
f 37/73/3 38/74/3 40/75/3 39/76/3
f 39/76/2 40/75/2 44/77/2 43/78/2
f 43/78/6 44/77/6 42/79/6 41/80/6
f 41/80/1 42/79/1 38/81/1 37/82/1

View File

@ -62,7 +62,7 @@ minetest.register_node('signs:1_wood', {
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local name = clicker:get_player_name()
if minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
if not minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
signs.player_pos[name] = pos
minetest.show_formspec(name, 'signs:plaque_edit', plaque_edit(pos))
else
@ -96,7 +96,7 @@ minetest.register_node('signs:1_metal', {
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local name = clicker:get_player_name()
if minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
if not minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
signs.player_pos[name] = pos
minetest.show_formspec(name, 'signs:plaque_edit', plaque_edit(pos))
else
@ -130,7 +130,7 @@ minetest.register_node('signs:1_bronze', {
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local name = clicker:get_player_name()
if minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
if not minetest.is_protected(pos, name) or minetest.check_player_privs(name, { server = true }) then
signs.player_pos[name] = pos
minetest.show_formspec(name, 'signs:plaque_edit', plaque_edit(pos))
else

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -93,7 +93,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
end
end
local ran = math.random(1,9)
local ran = math.random(2,9)
meta:set_int('count', count - 1)
meta:set_int('answer', ran)
if count > 1 then