Just pushing code.

master
Nathan Salapat 2021-10-22 20:30:22 -05:00
parent ac1bc24e75
commit c5ff874f9f
144 changed files with 3373 additions and 346 deletions

View File

@ -2,17 +2,17 @@ artwork = {}
local full = {
type = 'fixed',
fixed = {-1, -1, -1, 1, -.45, 1},
fixed = {-1, -.5, -1, 1, -.45, 1},
}
local landscape = {
type = 'fixed',
fixed = {-1, -1, -.75, 1, -.45, .75},
fixed = {-1, -.5, -.75, 1, -.45, .75},
}
local portrait = {
type = 'fixed',
fixed = {-.75, -1, -1, .75, -.45, 1},
fixed = {-.75, -.5, -1, .75, -.45, 1},
}
function artwork.register_full(name, desc)

Binary file not shown.

Binary file not shown.

View File

@ -23,4 +23,9 @@ artwork.register_portrait('a6', 'Giuliano de\' Medici')
artwork.register_portrait('a7', 'Ginevra de\' Benci')
artwork.register_portrait('a11', 'Tulips')
artwork.register_full('b4', 'Hawk in Flight')
artwork.register_landscape('b2', 'Cardinal')
artwork.register_landscape('b3', 'Robin')
artwork.register_portrait('b1', 'Nathan')

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -102,11 +102,36 @@ local transform = {
},
}
function doors.door_toggle(pos, node, clicker)
function doors.door_toggle(pos, node, clicker, close)
local meta = minetest.get_meta(pos)
node = node or minetest.get_node(pos)
local def = minetest.registered_nodes[node.name]
local name = def.door.name
local player_name = clicker:get_player_name()
local lock_status = meta:get_int('lock_s')
if not close then
local wield = clicker:get_wielded_item()
local wield_name = wield:get_name()
if lock_status == 1 and (minetest.is_protected(pos, player_name) or not minetest.check_player_privs(player_name, { creative = true })) then
return
elseif lock_status == 2 then
local key = meta:get_string('key')
if wield_name ~= key then
local def = minetest.registered_items[key]
local key_name = def.description
minetest.chat_send_player(player_name, 'This door can be opened/closed with a '..key_name..'.')
return
else
minetest.after(3, function()
doors.door_toggle(pos, nil, clicker, true)
end)
end
elseif lock_status >= 3 then
minetest.chat_send_player(player_name, 'The lock looks cheap, you might be able to pick it.')
return
end
end
local state = meta:get_string('state')
if state == '' then
@ -119,7 +144,6 @@ function doors.door_toggle(pos, node, clicker)
else
state = tonumber(state)
end
-- until Lua-5.2 we have no bitwise operators :(
if state % 2 == 1 then
state = state - 1
@ -143,7 +167,6 @@ function doors.door_toggle(pos, node, clicker)
minetest.sound_play(def.door.sounds[2],
{pos = pos, gain = 0.3, max_hear_distance = 10}, true)
end
minetest.swap_node(pos, {
name = 'doors:'..name .. transform[state + 1][dir+1].v,
param2 = transform[state + 1][dir+1].param2
@ -425,3 +448,72 @@ function doors.register_trapdoor(name, def)
doors.registered_trapdoors['doors:'..name_opened] = true
doors.registered_trapdoors['doors:'..name_closed] = true
end
function doors.lock(pos, name)
local meta = minetest.get_meta(pos)
local status = meta:get_int('lock_s')
local key_i = meta:get_int('key_i')
local infotext = meta:get_string('infotext')
minetest.show_formspec(name, 'doors:configuration', doors.lock_formspec(status, key_i, infotext))
end
local keys = {
'doors:key_skeleton', 'doors:key_modern', 'doors:keycard_red', 'doors:keycard_green', 'doors:keycard_blue'
}
function doors.lock_formspec(status, key_i, infotext)
local formspec =
'formspec_version[3]'..
'size[8,8]'..
'textarea[.5,.5;7,4.25;;;Set the lock status here, different numbers mean different things, the following breakdown should be helpful.\n'..
'!!!This is still a work in progress, and may change in the future!!!\n\n'..
'0: Standard door, anybody can open it.\n'..
'1: Locked door, only people within the area protection can open. Not pickable.\n'..
'2: Locked door, uses Key to open.\n'..
'3-13: locked door, can be picked, higher values are harder to pick.\n\n'..
'Lock picking is NOT implemented at this time.]'..
'field[1,5;6,.5;infotext;Infotext;'..infotext..']'..
'field[1,6;2,.5;status;Lock Status;'..status..']'..
'dropdown[4,6;3,.5;key;'..table.concat(keys, ',')..';'..key_i..']'..
'button_exit[5,7;2,.5;save;Submit]'
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = player:get_player_name()
if formname == 'doors:configuration' then
if fields.save then
local state = tonumber(fields.status)
if state >= 0 and state <= 13 then
local pos = tasks.player_config[name]
local meta = minetest.get_meta(pos)
local info = fields.infotext
local lower = string.lower(info)
meta:set_int('lock_s', state)
if state == 0 then
meta:set_string('infotext', info)
elseif state == 2 then
if string.find(lower, 'lock') then
meta:set_string('infotext', info)
else
meta:set_string('infotext', info..' (locked)')
end
for i, index in ipairs(keys) do
if index == fields.key then
meta:set_string('key', fields.key)
meta:set_int('key_i', i)
end
end
else
if string.find(lower, 'lock') then
meta:set_string('infotext', info)
else
meta:set_string('infotext', info..' (locked)')
end
end
else
minetest.chat_send_player(name, 'Faulty input, try again.')
end
end
end
end)

View File

@ -5,7 +5,10 @@ doors = {}
doors.registered_doors = {}
doors.registered_trapdoors = {}
doors.player_config = {}
dofile(minetest.get_modpath('doors') .. '/functions.lua')
dofile(minetest.get_modpath('doors') .. '/doors.lua')
dofile(minetest.get_modpath('doors') .. '/trapdoors.lua')
dofile(minetest.get_modpath('doors') .. '/keys.lua')
dofile(minetest.get_modpath('doors') .. '/lock_picking.lua')

39
mods/doors/keys.lua Normal file
View File

@ -0,0 +1,39 @@
minetest.register_craftitem('doors:key_skeleton', {
description = 'Skeleton Key',
inventory_image = 'doors_key_skeleton.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_drop = lobby.no_drop
})
minetest.register_craftitem('doors:key_modern', {
description = 'Modern Key',
inventory_image = 'doors_key_modern.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_drop = lobby.no_drop
})
minetest.register_craftitem('doors:keycard_red', {
description = 'Red Key Card',
inventory_image = 'doors_keycard_red.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_drop = lobby.no_drop
})
minetest.register_craftitem('doors:keycard_green', {
description = 'Green Key Card',
inventory_image = 'doors_keycard_green.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_drop = lobby.no_drop
})
minetest.register_craftitem('doors:keycard_blue', {
description = 'Blue Key Card',
inventory_image = 'doors_keycard_blue.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_drop = lobby.no_drop
})

View File

@ -0,0 +1,50 @@
minetest.register_craftitem('doors:lock_pick', {
description = 'Lock Picking Tool',
inventory_image = 'doors_lock_pick.png',
stack_max = 1,
groups = {not_in_creative_inventory=1, stashable=1},
on_use = function(itemstack, user, pointed_thing)
local pos = minetest.get_pointed_thing_position(pointed_thing)
local meta = minetest.get_meta(pos)
local status = meta:get_int('lock_s')
if status >= 3 then
local name = user:get_player_name()
doors.player_config[name] = pos
minetest.show_formspec(name, 'doors:lock_picking', doors.lock_picking_formspec(status))
end
end,
on_drop = lobby.no_drop
})
function doors.lock_picking_formspec(dif)
local button_size = string.format("%.2f", (13/dif))
local bounds = 8-math.ceil(button_size)
local ran_x = math.random(0, bounds)
local ran_y = math.random(1, bounds)
local formspec =
'formspec_version[3]'..
'size[8,8]'..
'textarea[.5,.5;7,1;;;Is breaking and entering your thing? If you don\'t break the lock is it technically breaking and entering???]'..
'textarea[.5,7.5;7,1;;;Picking locks is a shot in the dark, just like this.]'..
'image_button[0,0;8,8;tasks_blank.png;failure;;true;false;tasks_blank.png]'..
'image_button['..ran_x..','..ran_y..';'..button_size..','..button_size..';tasks_blank.png1;success;;true;false;tasks_blank.png]'
return formspec
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = player:get_player_name()
if formname == 'doors:lock_picking' then
if fields.success then
local pos = doors.player_config[name]
minetest.chat_send_player(name, 'nice work!')
minetest.close_formspec(name, 'doors:lock_picking')
doors.door_toggle(pos, nil, player, true)
minetest.after(3, function()
doors.door_toggle(pos, nil, player, true)
end)
elseif fields.failure then
minetest.chat_send_player(name, 'Try again!')
minetest.close_formspec(name, 'doors:lock_picking')
end
end
end)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,17 @@
minetest.register_node('furniture:medicine_cabinet', {
description = 'Medicine Cabinet',
drawtype = 'mesh',
mesh = 'furniture_medicine_cabinet.obj',
tiles = {'furniture_medicine_cabinet.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.375, -.4375, .36, .375, .5, .5},
},
collision_box = {
type = 'fixed',
fixed = {-.375, -.4375, .36, .375, .5, .5},
},
groups = {breakable=1, stash=1},
})

View File

@ -1,4 +1,4 @@
fdir_table = {
local fdir_table = {
{ 1, 0 },
{ 0, -1 },
{ -1, 0 },

View File

@ -19,6 +19,29 @@ furniture.dyes = {
{'white', 'White', '#ffffff'},
}
furniture.stash_punch = function(pos, node, puncher, pointed_thing)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if not inv:is_empty('stash') then
local name = puncher:get_player_name()
local player_attributes = puncher:get_meta()
local luck = (player_attributes:get_int('luck') or 1) * 10
local chance = math.random(0,105)
if luck >= chance then
local stuff = inv:get_list('stash')
local random = math.random(1,8)
local item = stuff[random]
local drop = item:get_name()
local player_inv = puncher:get_inventory()
if player_inv:room_for_item('main', drop) then
player_inv:add_item('main', drop)
else
minetest.chat_send_player(name, 'You don\'t have room for that.')
end
end
end
end
furniture.dye_more = function(pos, node, puncher, pointed_thing)
local player = puncher:get_player_name()
local wield = puncher:get_wielded_item()
@ -37,11 +60,15 @@ furniture.dye_less = function(pos, node, clicker)
minetest.swap_node(pos, {name = node.name, param2 = node.param2-32})
end
dofile(minetest.get_modpath('furniture')..'/bathroom.lua') --Things you'd find in a bathroom
dofile(minetest.get_modpath('furniture')..'/bedroom.lua') --Things you'd find in a bedroom.
dofile(minetest.get_modpath('furniture')..'/decor.lua')
dofile(minetest.get_modpath('furniture')..'/fences.lua')
dofile(minetest.get_modpath('furniture')..'/formspecs.lua') --Formspecs for the nodes.
dofile(minetest.get_modpath('furniture')..'/kitchen.lua') --appliances and counters
dofile(minetest.get_modpath('furniture')..'/library.lua') --Books things.
dofile(minetest.get_modpath('furniture')..'/misc.lua') --Miscilanious things that don't particularly fit any single category
dofile(minetest.get_modpath('furniture')..'/office.lua') --Things you'd find in an office.
dofile(minetest.get_modpath('furniture')..'/seating.lua') --chairs, benches, stools
dofile(minetest.get_modpath('furniture')..'/storage.lua') --Chests, boxes, etc.
dofile(minetest.get_modpath('furniture')..'/tables.lua') --Not sure if I'll ever have more than one table.

View File

@ -0,0 +1,59 @@
minetest.register_node('furniture:cabinet_wall', {
description = 'Wall Mounted Cabinet',
drawtype = 'mesh',
mesh = 'furniture_cabinet_wall.obj',
tiles = {'furniture_cabinet_wall.png'},
paramtype = 'light',
paramtype2 = 'colorfacedir',
palette = 'furniture_stain_palette.png',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.3, .5, .5, .5},
},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.3, .5, .5, .5},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:cabinet_counter', {
description = 'Cabinet with Countertop',
drawtype = 'mesh',
mesh = 'furniture_cabinet_counter.obj',
tiles = {'furniture_cabinet_counter.png'},
paramtype = 'light',
paramtype2 = 'colorfacedir',
palette = 'furniture_stain_palette.png',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5},
},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:microwave', {
description = 'Microwave',
drawtype = 'mesh',
mesh = 'furniture_microwave.obj',
tiles = {'furniture_microwave.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.425, -.5, -.375, .425, .2, .4},
},
collision_box = {
type = 'fixed',
fixed = {-.425, -.5, -.375, .425, .2, .4},
},
groups = {breakable=1},
})

View File

@ -5,3 +5,6 @@ Copyright 2020 Nathan Salapat
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
server_rack, by the_toilet_guy CCA
https://freesound.org/people/the_toilet_guy/sounds/98930/

17
mods/furniture/misc.lua Normal file
View File

@ -0,0 +1,17 @@
minetest.register_node('furniture:ceiling_fan', {
description = 'Ceiling Fan',
drawtype = 'mesh',
mesh = 'furniture_ceiling_fan.obj',
tiles = {'furniture_ceiling_fan.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.4, .25, -.4, .4, .5, .4},
},
collision_box = {
type = 'fixed',
fixed = {-.4, .25, -.4, .4, .5, .4},
},
groups = {breakable=1},
})

View File

@ -0,0 +1,169 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o Ceiling_fan_Cube.001
v -0.062500 0.312500 0.062500
v -0.062500 0.437500 0.062500
v -0.062500 0.312500 -0.062500
v -0.062500 0.437500 -0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.437500 0.062500
v 0.062500 0.312500 -0.062500
v 0.062500 0.437500 -0.062500
v -0.031250 0.437500 0.031250
v -0.031250 0.500000 0.031250
v -0.031250 0.437500 -0.031250
v -0.031250 0.500000 -0.031250
v 0.031250 0.437500 0.031250
v 0.031250 0.500000 0.031250
v 0.031250 0.437500 -0.031250
v 0.031250 0.500000 -0.031250
v 0.000000 0.312500 0.062500
v 0.000000 0.375000 0.062500
v 0.125000 0.312500 0.062500
v 0.125000 0.375000 0.062500
v 0.000000 0.312500 0.437500
v 0.000000 0.375000 0.437500
v 0.125000 0.312500 0.437500
v 0.125000 0.375000 0.437500
v -0.437500 0.312500 0.125000
v -0.437500 0.375000 0.125000
v -0.437500 0.312500 0.000000
v -0.437500 0.375000 0.000000
v -0.062500 0.312500 0.125000
v -0.062500 0.375000 0.125000
v -0.062500 0.312500 0.000000
v -0.062500 0.375000 0.000000
v -0.000000 0.375000 -0.062500
v -0.000000 0.312500 -0.062500
v -0.125000 0.375000 -0.062500
v -0.125000 0.312500 -0.062500
v -0.000000 0.375000 -0.437500
v -0.000000 0.312500 -0.437500
v -0.125000 0.375000 -0.437500
v -0.125000 0.312500 -0.437500
v 0.437500 0.375000 -0.125000
v 0.437500 0.312500 -0.125000
v 0.437500 0.375000 0.000000
v 0.437500 0.312500 0.000000
v 0.062500 0.375000 -0.125000
v 0.062500 0.312500 -0.125000
v 0.062500 0.375000 0.000000
v 0.062500 0.312500 0.000000
vt 0.750000 0.750000
vt 0.750000 0.625000
vt 0.875000 0.625000
vt 0.875000 0.750000
vt 1.000000 0.750000
vt 1.000000 0.875000
vt 0.875000 0.875000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.625000 0.750000
vt 0.062500 0.937500
vt 0.062500 1.000000
vt 0.000000 1.000000
vt 0.000000 0.937500
vt 0.250000 0.937500
vt 0.250000 1.000000
vt 0.187500 1.000000
vt 0.187500 0.937500
vt 0.125000 1.000000
vt 0.125000 0.937500
vt 0.312500 0.500000
vt 0.375000 0.500000
vt 0.375000 0.625000
vt 0.312500 0.625000
vt 0.187500 0.500000
vt 0.125000 0.500000
vt 0.125000 0.125000
vt 0.187500 0.125000
vt 0.312500 0.000000
vt 0.375000 0.000000
vt 0.375000 0.125000
vt 0.312500 0.125000
vt 0.000000 0.500000
vt 0.000000 0.125000
vt 0.937500 0.500000
vt 1.000000 0.500000
vt 1.000000 0.625000
vt 0.937500 0.625000
vt 0.812500 0.500000
vt 0.750000 0.500000
vt 0.750000 0.125000
vt 0.812500 0.125000
vt 0.937500 0.000000
vt 1.000000 0.000000
vt 1.000000 0.125000
vt 0.937500 0.125000
vt 0.625000 0.500000
vt 0.625000 0.125000
vt 0.125000 0.500000
vt -0.000000 0.500000
vt -0.000000 0.125000
vt 0.125000 0.125000
vt 0.187500 0.500000
vt 0.187500 0.125000
vt 0.312500 0.125000
vt 0.312500 0.500000
vt 0.375000 0.125000
vt 0.375000 0.500000
vt 0.312500 0.000000
vt 0.375000 0.000000
vt 0.375000 0.625000
vt 0.312500 0.625000
vt 0.750000 0.500000
vt 0.625000 0.500000
vt 0.625000 0.125000
vt 0.750000 0.125000
vt 0.812500 0.500000
vt 0.812500 0.125000
vt 0.937500 0.125000
vt 0.937500 0.500000
vt 1.000000 0.125000
vt 1.000000 0.500000
vt 0.937500 -0.000000
vt 1.000000 -0.000000
vt 1.000000 0.625000
vt 0.937500 0.625000
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/5/2 8/6/2 7/7/2
f 7/7/3 8/8/3 6/9/3 5/10/3
f 5/10/4 6/11/4 2/12/4 1/1/4
f 3/4/5 7/7/5 5/10/5 1/1/5
f 9/13/1 10/14/1 12/15/1 11/16/1
f 11/17/2 12/18/2 16/19/2 15/20/2
f 15/20/3 16/19/3 14/21/3 13/22/3
f 13/22/4 14/21/4 10/14/4 9/13/4
f 17/23/2 18/24/2 20/25/2 19/26/2
f 19/27/3 20/28/3 24/29/3 23/30/3
f 23/31/4 24/32/4 22/33/4 21/34/4
f 21/34/1 22/33/1 18/24/1 17/23/1
f 19/27/5 23/30/5 21/34/5 17/23/5
f 20/28/6 18/35/6 22/36/6 24/29/6
f 25/37/1 26/38/1 28/39/1 27/40/1
f 27/41/2 28/42/2 32/43/2 31/44/2
f 31/45/3 32/46/3 30/47/3 29/48/3
f 29/48/4 30/47/4 26/38/4 25/37/4
f 27/41/5 31/44/5 29/48/5 25/37/5
f 28/42/6 26/49/6 30/50/6 32/43/6
f 37/51/6 39/52/6 35/53/6 33/54/6
f 38/55/5 34/56/5 36/57/5 40/58/5
f 36/57/1 35/59/1 39/60/1 40/58/1
f 34/61/4 33/62/4 35/59/4 36/57/4
f 38/55/3 37/51/3 33/54/3 34/56/3
f 40/58/2 39/60/2 37/63/2 38/64/2
f 45/65/6 47/66/6 43/67/6 41/68/6
f 46/69/5 42/70/5 44/71/5 48/72/5
f 44/71/4 43/73/4 47/74/4 48/72/4
f 42/75/3 41/76/3 43/73/3 44/71/3
f 46/69/2 45/65/2 41/68/2 42/70/2
f 48/72/1 47/74/1 45/77/1 46/78/1

View File

@ -0,0 +1,152 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o Desk_Cube.001
v -1.437500 0.437500 0.500000
v -1.437500 0.437500 -0.437500
v -1.437500 -0.500000 -0.437500
v 0.500000 0.437500 0.500000
v 0.500000 0.437500 -0.500000
v -1.437500 -0.500000 0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 0.500000 0.500000
v -1.500000 0.437500 0.500000
v -1.500000 0.437500 -0.500000
v -1.500000 0.500000 0.500000
v -1.500000 0.500000 -0.500000
v -1.500000 -0.500000 0.500000
v -1.500000 -0.500000 -0.437500
v -1.500000 0.437500 -0.437500
v -0.500000 -0.500000 0.500000
v -0.500000 0.437500 0.500000
v -0.500000 -0.500000 -0.437500
v -0.500000 0.437500 -0.437500
v 0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.437500
v 0.500000 0.437500 -0.437500
v -1.437500 0.000000 0.500000
v -1.437500 0.312500 0.500000
v -1.437500 0.000000 0.437500
v -1.437500 0.312500 0.437500
v -0.500000 0.000000 0.500000
v -0.500000 0.312500 0.500000
v -0.500000 0.000000 0.437500
v -0.500000 0.312500 0.437500
v -0.437500 0.000000 -0.437500
v -0.437500 0.375000 -0.437500
v -0.437500 0.000000 -0.468750
v -0.437500 0.375000 -0.468750
v 0.437500 0.000000 -0.437500
v 0.437500 0.375000 -0.437500
v 0.437500 0.000000 -0.468750
v 0.437500 0.375000 -0.468750
v -0.437500 -0.437500 -0.437500
v -0.437500 -0.062500 -0.437500
v -0.437500 -0.437500 -0.468750
v -0.437500 -0.062500 -0.468750
v 0.437500 -0.437500 -0.437500
v 0.437500 -0.062500 -0.437500
v 0.437500 -0.437500 -0.468750
v 0.437500 -0.062500 -0.468750
vt 0.250000 0.468750
vt 0.015625 0.468750
vt 0.015625 0.234375
vt 0.250000 0.234375
vt 0.234375 0.234375
vt 0.234375 0.000000
vt 0.484375 0.000000
vt 0.484375 0.234375
vt 0.000000 0.234375
vt 0.000000 0.000000
vt 0.265625 0.468750
vt 0.265625 0.234375
vt 0.484375 0.468750
vt 0.484375 0.718750
vt 0.468750 0.718750
vt 0.468750 0.468750
vt 0.484375 1.000000
vt 0.484375 0.984375
vt 0.984375 0.984375
vt 0.984375 1.000000
vt 0.484375 0.734375
vt 0.984375 0.734375
vt 0.000000 0.468750
vt 0.000000 0.234375
vt 0.984375 0.468750
vt 0.984375 0.718750
vt 1.000000 0.468750
vt 1.000000 0.718750
vt 0.718750 0.000000
vt 0.718750 0.234375
vt 0.500000 0.468750
vt 0.500000 0.234375
vt 0.968750 0.000000
vt 0.968750 0.234375
vt 0.007812 0.781250
vt 0.007812 0.875000
vt 0.000000 0.875000
vt 0.000000 0.781250
vt 0.234375 0.687500
vt 0.234375 0.765625
vt 0.000000 0.765625
vt 0.000000 0.687500
vt 0.226562 0.781250
vt 0.226562 0.875000
vt 0.000000 0.671875
vt 0.000000 0.593750
vt 0.234375 0.593750
vt 0.234375 0.671875
vt 0.000000 0.578125
vt 0.234375 0.578125
vt 0.234375 0.898438
vt 0.234375 0.992188
vt 0.226562 0.992188
vt 0.226562 0.898438
vt 0.007812 0.992188
vt 0.007812 0.898438
vt 0.000000 0.992188
vt 0.000000 0.898438
vt 0.234375 0.781250
vt 0.234375 0.875000
vt 0.007812 0.890625
vt 0.226562 0.890625
vt 0.226562 1.000000
vt 0.007812 1.000000
vt 0.007812 0.773438
vt 0.226562 0.773438
vt 0.226562 0.882812
vt 0.007812 0.882812
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 14/1/1 13/2/1 9/3/1 15/4/1
f 18/5/2 19/6/2 22/7/2 21/8/2
f 16/9/1 17/10/1 19/6/1 18/5/1
f 3/11/2 14/1/2 15/4/2 2/12/2
f 4/13/3 5/14/3 7/15/3 8/16/3
f 4/17/4 8/18/4 11/19/4 9/20/4
f 7/21/5 12/22/5 11/19/5 8/18/5
f 6/23/4 1/24/4 9/3/4 13/2/4
f 5/14/6 4/13/6 9/25/6 10/26/6
f 10/26/1 9/25/1 11/27/1 12/28/1
f 21/8/3 22/7/3 4/29/3 20/30/3
f 6/31/3 3/11/3 2/12/3 1/32/3
f 5/14/2 10/26/2 12/22/2 7/21/2
f 20/30/4 4/29/4 17/33/4 16/34/4
f 45/35/3 46/36/3 44/37/3 43/38/3
f 25/39/2 26/40/2 30/41/2 29/42/2
f 41/43/2 42/44/2 46/36/2 45/35/2
f 27/45/4 28/46/4 24/47/4 23/48/4
f 25/39/6 29/42/6 27/45/6 23/48/6
f 30/49/5 26/50/5 24/47/5 28/46/5
f 31/51/1 32/52/1 34/53/1 33/54/1
f 33/54/2 34/53/2 38/55/2 37/56/2
f 37/56/3 38/55/3 36/57/3 35/58/3
f 39/59/1 40/60/1 42/44/1 41/43/1
f 33/54/6 37/56/6 35/61/6 31/62/6
f 38/55/5 34/53/5 32/63/5 36/64/5
f 41/43/6 45/35/6 43/65/6 39/66/6
f 46/36/5 42/44/5 40/67/5 44/68/5

View File

@ -0,0 +1,34 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o Cube.001_Cube.014
v 0.437500 -0.500000 -0.500000
v 0.437500 1.000000 -0.500000
v 0.437500 -0.500000 0.437500
v 0.437500 1.000000 0.437500
v -0.437500 -0.500000 -0.500000
v -0.437500 1.000000 -0.500000
v -0.437500 -0.500000 0.437500
v -0.437500 1.000000 0.437500
vt 0.468750 -0.000000
vt 0.468750 0.375000
vt 0.234375 0.375000
vt 0.234375 -0.000000
vt 0.000000 0.375000
vt 0.000000 -0.000000
vt 0.921875 -0.000000
vt 0.921875 0.375000
vt 0.687500 0.375000
vt 0.687500 -0.000000
vt 0.234375 0.609375
vt 0.000000 0.609375
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
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 8/5/5 4/3/5 2/11/5 6/12/5

View File

@ -0,0 +1,34 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o Medicine_Cabinet_Cube.026
v -0.375000 -0.437500 0.500000
v -0.375000 0.500000 0.500000
v -0.375000 -0.437500 0.375000
v -0.375000 0.500000 0.375000
v 0.375000 -0.437500 0.500000
v 0.375000 0.500000 0.500000
v 0.375000 -0.437500 0.375000
v 0.375000 0.500000 0.375000
vt 0.500000 0.062500
vt 0.500000 0.531250
vt 0.437500 0.531250
vt 0.437500 0.062500
vt 0.062500 0.531250
vt 0.062500 0.062500
vt 0.000000 0.531250
vt 0.000000 0.062500
vt 0.062500 0.000000
vt 0.437500 0.000000
vt 0.437500 0.593750
vt 0.062500 0.593750
vn -1.0000 0.0000 0.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
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/6/3 8/5/3 6/7/3 5/8/3
f 3/4/4 7/6/4 5/9/4 1/10/4
f 8/5/5 4/3/5 2/11/5 6/12/5

View File

@ -0,0 +1,151 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o Microwave_Cube.018
v -0.437500 -0.437500 0.375000
v -0.437500 0.187500 0.375000
v -0.437500 -0.437500 -0.375000
v -0.437500 0.187500 -0.375000
v 0.437500 -0.437500 0.375000
v 0.437500 0.187500 0.375000
v 0.437500 -0.437500 -0.375000
v 0.437500 0.187500 -0.375000
v -0.312500 -0.375000 0.437500
v -0.312500 0.000000 0.437500
v -0.312500 -0.375000 0.375000
v -0.312500 0.000000 0.375000
v 0.312500 -0.375000 0.437500
v 0.312500 0.000000 0.437500
v 0.312500 -0.375000 0.375000
v 0.312500 0.000000 0.375000
v -0.375000 -0.500000 -0.250000
v -0.375000 -0.437500 -0.250000
v -0.375000 -0.500000 -0.312500
v -0.375000 -0.437500 -0.312500
v -0.312500 -0.500000 -0.250000
v -0.312500 -0.437500 -0.250000
v -0.312500 -0.500000 -0.312500
v -0.312500 -0.437500 -0.312500
v 0.312500 -0.500000 -0.250000
v 0.312500 -0.437500 -0.250000
v 0.312500 -0.500000 -0.312500
v 0.312500 -0.437500 -0.312500
v 0.375000 -0.500000 -0.250000
v 0.375000 -0.437500 -0.250000
v 0.375000 -0.500000 -0.312500
v 0.375000 -0.437500 -0.312500
v 0.312500 -0.500000 0.312500
v 0.312500 -0.437500 0.312500
v 0.312500 -0.500000 0.250000
v 0.312500 -0.437500 0.250000
v 0.375000 -0.500000 0.312500
v 0.375000 -0.437500 0.312500
v 0.375000 -0.500000 0.250000
v 0.375000 -0.437500 0.250000
v -0.375000 -0.500000 0.312500
v -0.375000 -0.437500 0.312500
v -0.375000 -0.500000 0.250000
v -0.375000 -0.437500 0.250000
v -0.312500 -0.500000 0.312500
v -0.312500 -0.437500 0.312500
v -0.312500 -0.500000 0.250000
v -0.312500 -0.437500 0.250000
vt 0.601562 0.000000
vt 0.601562 0.156250
vt 0.414062 0.156250
vt 0.414062 0.000000
vt 0.195312 0.156250
vt 0.195312 0.000000
vt 0.007812 0.156250
vt 0.007812 0.000000
vt 0.195312 0.500000
vt 0.195312 0.343750
vt 0.414062 0.343750
vt 0.414062 0.500000
vt 0.414062 0.687500
vt 0.195312 0.687500
vt 0.015625 0.179688
vt 0.015625 0.273438
vt 0.000000 0.273438
vt 0.000000 0.179688
vt 0.117188 0.320312
vt 0.117188 0.335938
vt 0.101562 0.335938
vt 0.101562 0.320312
vt 0.187500 0.179688
vt 0.187500 0.273438
vt 0.171875 0.273438
vt 0.171875 0.179688
vt 0.015625 0.164062
vt 0.171875 0.164062
vt 0.171875 0.289062
vt 0.015625 0.289062
vt 0.085938 0.335938
vt 0.085938 0.320312
vt 0.070312 0.335938
vt 0.070312 0.320312
vt 0.132812 0.320312
vt 0.132812 0.335938
vt 0.062500 0.296875
vt 0.062500 0.312500
vt 0.046875 0.312500
vt 0.046875 0.296875
vt 0.031250 0.312500
vt 0.031250 0.296875
vt 0.015625 0.312500
vt 0.015625 0.296875
vt 0.000000 0.312500
vt 0.000000 0.296875
vt 0.015625 0.320312
vt 0.015625 0.335938
vt 0.000000 0.335938
vt 0.000000 0.320312
vt 0.062500 0.320312
vt 0.062500 0.335938
vt 0.046875 0.335938
vt 0.046875 0.320312
vt 0.031250 0.335938
vt 0.031250 0.320312
vt 0.101562 0.296875
vt 0.101562 0.312500
vt 0.085938 0.312500
vt 0.085938 0.296875
vt 0.070312 0.312500
vt 0.070312 0.296875
vt 0.132812 0.296875
vt 0.132812 0.312500
vt 0.117188 0.312500
vt 0.117188 0.296875
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/6/3 8/5/3 6/7/3 5/8/3
f 5/9/4 6/10/4 2/11/4 1/12/4
f 3/13/5 7/14/5 5/9/5 1/12/5
f 8/5/6 4/3/6 2/11/6 6/10/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 17/19/1 18/20/1 20/21/1 19/22/1
f 15/23/3 16/24/3 14/25/3 13/26/3
f 13/26/4 14/25/4 10/16/4 9/15/4
f 11/27/5 15/28/5 13/26/5 9/15/5
f 16/29/6 12/30/6 10/16/6 14/25/6
f 19/22/2 20/21/2 24/31/2 23/32/2
f 23/32/3 24/31/3 22/33/3 21/34/3
f 21/35/4 22/36/4 18/20/4 17/19/4
f 25/37/1 26/38/1 28/39/1 27/40/1
f 27/40/2 28/39/2 32/41/2 31/42/2
f 31/42/3 32/41/3 30/43/3 29/44/3
f 29/44/4 30/43/4 26/45/4 25/46/4
f 33/47/1 34/48/1 36/49/1 35/50/1
f 35/51/2 36/52/2 40/53/2 39/54/2
f 39/54/3 40/53/3 38/55/3 37/56/3
f 37/56/4 38/55/4 34/48/4 33/47/4
f 41/57/1 42/58/1 44/59/1 43/60/1
f 43/60/2 44/59/2 48/61/2 47/62/2
f 47/63/3 48/64/3 46/65/3 45/66/3
f 45/66/4 46/65/4 42/58/4 41/57/4

View File

@ -0,0 +1,66 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o PC_Laptop_Cube.025
v -0.437500 -0.448353 0.374050
v -0.437500 0.167152 0.482581
v -0.437500 -0.437500 0.312500
v -0.437500 0.178005 0.421030
v 0.437500 -0.448353 0.374050
v 0.437500 0.167152 0.482581
v 0.437500 -0.437500 0.312500
v 0.437500 0.178005 0.421030
v 0.437500 -0.437500 -0.312500
v 0.437500 -0.500000 -0.312500
v 0.437500 -0.437500 0.312500
v 0.437500 -0.500000 0.312500
v -0.437500 -0.437500 -0.312500
v -0.437500 -0.500000 -0.312500
v -0.437500 -0.437500 0.312500
v -0.437500 -0.500000 0.312500
vt 0.500000 0.031250
vt 0.500000 0.343750
vt 0.468750 0.343750
vt 0.468750 0.031250
vt 0.031250 0.343750
vt 0.031250 0.031250
vt -0.000000 0.343750
vt -0.000000 0.031250
vt 0.031250 0.687500
vt 0.031250 0.375000
vt 0.468750 0.375000
vt 0.468750 0.687500
vt 0.031250 0.000000
vt 0.468750 0.000000
vt 0.968750 -0.000000
vt 0.968750 0.031250
vt 0.531250 0.031250
vt 0.531250 -0.000000
vt 1.000000 0.343750
vt 0.968750 0.343750
vt 1.000000 0.031250
vt 0.531250 0.375000
vt 0.531250 0.343750
vt 0.968750 0.375000
vt 0.500000 0.031250
vt 0.500000 0.343750
vn -1.0000 -0.0000 0.0000
vn 0.0000 0.1736 -0.9848
vn 1.0000 0.0000 0.0000
vn 0.0000 -0.1736 0.9848
vn 0.0000 -0.9848 -0.1736
vn 0.0000 0.9848 0.1736
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.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/6/3 8/5/3 6/7/3 5/8/3
f 5/9/4 6/10/4 2/11/4 1/12/4
f 3/4/5 7/6/5 5/13/5 1/14/5
f 8/5/6 4/3/6 2/11/6 6/10/6
f 14/15/7 13/16/7 9/17/7 10/18/7
f 16/19/1 15/20/1 13/16/1 14/21/1
f 12/22/8 11/23/8 15/20/8 16/24/8
f 9/17/9 13/16/9 15/20/9 11/23/9
f 10/25/3 9/17/3 11/23/3 12/26/3

View File

@ -0,0 +1,185 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o PC_Old_Cube.016
v 0.406250 -0.187500 -0.156250
v 0.406250 0.437500 -0.156250
v 0.406250 -0.187500 -0.031250
v 0.406250 0.437500 -0.031250
v -0.343750 -0.187500 -0.156250
v -0.343750 0.437500 -0.156250
v -0.343750 -0.187500 -0.031250
v -0.343750 0.437500 -0.031250
v 0.343750 -0.187500 -0.031250
v 0.343750 0.375000 -0.031250
v 0.343750 -0.187500 0.406250
v 0.343750 0.375000 0.406250
v -0.281250 -0.187500 -0.031250
v -0.281250 0.375000 -0.031250
v -0.281250 -0.187500 0.406250
v -0.281250 0.375000 0.406250
v 0.281250 -0.125000 0.406250
v 0.281250 0.312500 0.406250
v 0.281250 -0.125000 0.468750
v 0.281250 0.312500 0.468750
v -0.218750 -0.125000 0.406250
v -0.218750 0.312500 0.406250
v -0.218750 -0.125000 0.468750
v -0.218750 0.312500 0.468750
v 0.218750 -0.250000 -0.031250
v 0.218750 -0.187500 -0.031250
v 0.218750 -0.250000 0.281250
v 0.218750 -0.187500 0.281250
v -0.156250 -0.250000 -0.031250
v -0.156250 -0.187500 -0.031250
v -0.156250 -0.250000 0.281250
v -0.156250 -0.187500 0.281250
v 0.468750 -0.500000 -0.187500
v 0.468750 -0.250000 -0.187500
v 0.468750 -0.500000 0.500000
v 0.468750 -0.250000 0.500000
v -0.406250 -0.500000 -0.187500
v -0.406250 -0.250000 -0.187500
v -0.406250 -0.500000 0.500000
v -0.406250 -0.250000 0.500000
v 0.468750 -0.500000 -0.500000
v 0.468750 -0.437500 -0.500000
v 0.468750 -0.500000 -0.250000
v 0.468750 -0.437500 -0.250000
v -0.281250 -0.500000 -0.500000
v -0.281250 -0.437500 -0.500000
v -0.281250 -0.500000 -0.250000
v -0.281250 -0.437500 -0.250000
v -0.312500 -0.500000 -0.468750
v -0.312500 -0.437500 -0.468750
v -0.312500 -0.500000 -0.281250
v -0.312500 -0.437500 -0.281250
v -0.437500 -0.500000 -0.468750
v -0.437500 -0.437500 -0.468750
v -0.437500 -0.500000 -0.281250
v -0.437500 -0.437500 -0.281250
vt 0.031250 0.148438
vt 0.031250 0.304688
vt 0.000000 0.304688
vt 0.000000 0.148438
vt 0.031250 0.492188
vt 0.031250 0.335938
vt 0.218750 0.335938
vt 0.218750 0.492188
vt 0.250000 0.148438
vt 0.250000 0.304688
vt 0.218750 0.304688
vt 0.218750 0.148438
vt 0.031250 0.117188
vt 0.218750 0.117188
vt 0.398438 0.609375
vt 0.398438 0.757812
vt 0.281250 0.757812
vt 0.281250 0.609375
vt 0.140625 0.757812
vt 0.140625 0.609375
vt 0.023438 0.757812
vt 0.023438 0.609375
vt 0.156250 0.875000
vt 0.156250 0.984375
vt 0.140625 0.984375
vt 0.140625 0.875000
vt 0.140625 0.507812
vt 0.281250 0.507812
vt 0.281250 0.859375
vt 0.140625 0.859375
vt 0.015625 0.984375
vt 0.015625 0.875000
vt 0.000000 0.984375
vt 0.000000 0.875000
vt 0.015625 0.859375
vt 0.140625 0.859375
vt 0.140625 1.000000
vt 0.015625 1.000000
vt 0.015625 0.406250
vt 0.000000 0.406250
vt 0.000000 0.328125
vt 0.015625 0.328125
vt 0.015625 0.671875
vt 0.000000 0.671875
vt 0.000000 0.578125
vt 0.015625 0.578125
vt 0.000000 0.500000
vt 0.015625 0.500000
vt 0.265625 0.093750
vt 0.328125 0.093750
vt 0.328125 0.265625
vt 0.265625 0.265625
vt 0.328125 0.328125
vt 0.546875 0.265625
vt 0.546875 0.328125
vt 0.609375 0.265625
vt 0.546875 0.093750
vt 0.609375 0.093750
vt 0.328125 0.031250
vt 0.546875 0.031250
vt 0.000000 0.015625
vt 0.015625 0.015625
vt 0.015625 0.078125
vt 0.000000 0.078125
vt 0.015625 0.093750
vt 0.203125 0.078125
vt 0.203125 0.093750
vt 0.218750 0.078125
vt 0.203125 0.015625
vt 0.218750 0.015625
vt 0.015625 0.000000
vt 0.203125 0.000000
vt 0.234375 0.015625
vt 0.250000 0.015625
vt 0.250000 0.062500
vt 0.234375 0.062500
vt 0.250000 0.078125
vt 0.281250 0.062500
vt 0.281250 0.078125
vt 0.296875 0.062500
vt 0.281250 0.015625
vt 0.296875 0.015625
vt 0.250000 0.000000
vt 0.281250 0.000000
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/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/11/4 2/2/4 1/1/4
f 3/13/5 7/14/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/2/6 6/11/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/17/2 16/19/2 15/20/2
f 15/20/3 16/19/3 14/21/3 13/22/3
f 17/23/1 18/24/1 20/25/1 19/26/1
f 11/18/5 15/20/5 13/27/5 9/28/5
f 16/19/6 12/17/6 10/29/6 14/30/6
f 19/26/2 20/25/2 24/31/2 23/32/2
f 23/32/3 24/31/3 22/33/3 21/34/3
f 19/26/5 23/32/5 21/35/5 17/36/5
f 24/31/6 20/25/6 18/37/6 22/38/6
f 25/39/1 26/40/1 28/41/1 27/42/1
f 27/43/2 28/44/2 32/45/2 31/46/2
f 31/46/3 32/45/3 30/47/3 29/48/3
f 29/48/4 30/47/4 26/40/4 25/39/4
f 33/49/1 34/50/1 36/51/1 35/52/1
f 35/53/2 36/51/2 40/54/2 39/55/2
f 39/56/3 40/54/3 38/57/3 37/58/3
f 34/50/4 33/59/4 37/60/4 38/57/4
f 40/54/6 36/51/6 34/50/6 38/57/6
f 41/61/1 42/62/1 44/63/1 43/64/1
f 43/65/2 44/63/2 48/66/2 47/67/2
f 47/68/3 48/66/3 46/69/3 45/70/3
f 42/62/4 41/71/4 45/72/4 46/69/4
f 48/66/6 44/63/6 42/62/6 46/69/6
f 49/73/1 50/74/1 52/75/1 51/76/1
f 51/77/2 52/75/2 56/78/2 55/79/2
f 55/80/3 56/78/3 54/81/3 53/82/3
f 50/74/4 49/83/4 53/84/4 54/81/4
f 56/78/6 52/75/6 50/74/6 54/81/6

View File

@ -0,0 +1,239 @@
# Blender v2.91.2 OBJ File: 'furniture.blend'
# www.blender.org
o PC_Screen_Cube.020
v 0.468750 -0.500000 -0.312500
v 0.468750 -0.437500 -0.312500
v 0.468750 -0.500000 -0.062500
v 0.468750 -0.437500 -0.062500
v -0.281250 -0.500000 -0.312500
v -0.281250 -0.437500 -0.312500
v -0.281250 -0.500000 -0.062500
v -0.281250 -0.437500 -0.062500
v -0.312500 -0.500000 -0.281250
v -0.312500 -0.437500 -0.281250
v -0.312500 -0.500000 -0.093750
v -0.312500 -0.437500 -0.093750
v -0.437500 -0.500000 -0.281250
v -0.437500 -0.437500 -0.281250
v -0.437500 -0.500000 -0.093750
v -0.437500 -0.437500 -0.093750
v -0.937500 -0.375000 0.375000
v -0.937500 0.437500 0.375000
v -0.937500 -0.375000 0.312500
v -0.937500 0.437500 0.312500
v 0.937500 -0.375000 0.375000
v 0.937500 0.437500 0.375000
v 0.937500 -0.375000 0.312500
v 0.937500 0.437500 0.312500
v -0.062500 -0.437500 0.500000
v -0.062500 0.187500 0.500000
v -0.062500 -0.437500 0.437500
v -0.062500 0.187500 0.437500
v 0.062500 -0.437500 0.500000
v 0.062500 0.187500 0.500000
v 0.062500 -0.437500 0.437500
v 0.062500 0.187500 0.437500
v -0.062500 -0.500000 0.437500
v -0.062500 -0.500000 0.500000
v 0.062500 -0.500000 0.437500
v 0.062500 -0.500000 0.500000
v 0.250000 -0.437500 0.500000
v 0.250000 -0.437500 0.437500
v 0.250000 -0.500000 0.500000
v 0.250000 -0.500000 0.437500
v -0.250000 -0.437500 0.437500
v -0.250000 -0.437500 0.500000
v -0.250000 -0.500000 0.437500
v -0.250000 -0.500000 0.500000
v -0.312500 -0.437500 0.437500
v -0.312500 -0.437500 0.500000
v -0.312500 -0.500000 0.437500
v -0.312500 -0.500000 0.500000
v 0.312500 -0.437500 0.500000
v 0.312500 -0.437500 0.437500
v 0.312500 -0.500000 0.500000
v 0.312500 -0.500000 0.437500
v 0.250000 -0.500000 0.312500
v 0.250000 -0.437500 0.312500
v -0.250000 -0.500000 0.312500
v -0.250000 -0.437500 0.312500
v -0.312500 -0.500000 0.312500
v -0.312500 -0.437500 0.312500
v 0.312500 -0.500000 0.312500
v 0.312500 -0.437500 0.312500
v -0.062500 0.000000 0.437500
v -0.062500 0.125000 0.437500
v -0.062500 0.000000 0.375000
v -0.062500 0.125000 0.375000
v 0.062500 0.000000 0.437500
v 0.062500 0.125000 0.437500
v 0.062500 0.000000 0.375000
v 0.062500 0.125000 0.375000
v -0.062500 0.187500 0.500000
v -0.062500 0.187500 0.437500
v 0.062500 0.187500 0.500000
v 0.062500 0.187500 0.437500
vt 0.507812 0.015625
vt 0.523438 0.015625
vt 0.523438 0.078125
vt 0.507812 0.078125
vt 0.523438 0.093750
vt 0.710938 0.078125
vt 0.710938 0.093750
vt 0.726562 0.078125
vt 0.710938 0.015625
vt 0.726562 0.015625
vt 0.523438 -0.000000
vt 0.710938 0.000000
vt 0.796875 0.062500
vt 0.781250 0.062500
vt 0.781250 0.015625
vt 0.796875 0.015625
vt 0.781250 0.000000
vt 0.750000 0.015625
vt 0.750000 0.000000
vt 0.734375 0.015625
vt 0.750000 0.062500
vt 0.734375 0.062500
vt 0.781250 0.078125
vt 0.750000 0.078125
vt 0.500000 0.015625
vt 0.500000 0.218750
vt 0.484375 0.218750
vt 0.484375 0.015625
vt 0.015625 0.218750
vt 0.015625 0.015625
vt 0.000000 0.218750
vt 0.000000 0.015625
vt 0.015625 0.437500
vt 0.015625 0.234375
vt 0.484375 0.234375
vt 0.484375 0.437500
vt 0.015625 0.000000
vt 0.484375 0.000000
vt 0.140625 0.507812
vt 0.140625 0.664062
vt 0.125000 0.664062
vt 0.125000 0.507812
vt 0.117188 0.484375
vt 0.117188 0.640625
vt 0.085938 0.640625
vt 0.085938 0.484375
vt 0.187500 0.507812
vt 0.187500 0.664062
vt 0.171875 0.664062
vt 0.171875 0.507812
vt 0.046875 0.531250
vt 0.062500 0.531250
vt 0.062500 0.578125
vt 0.046875 0.578125
vt 0.171875 0.679688
vt 0.140625 0.679688
vt 0.140625 0.492188
vt 0.171875 0.492188
vt 0.085938 0.468750
vt 0.117188 0.468750
vt 0.078125 0.492188
vt 0.078125 0.507812
vt 0.031250 0.507812
vt 0.031250 0.492188
vt 0.062500 0.593750
vt 0.046875 0.593750
vt 0.078125 0.531250
vt 0.078125 0.578125
vt 0.039062 0.484375
vt 0.039062 0.468750
vt 0.164062 0.468750
vt 0.164062 0.484375
vt 0.078125 0.523438
vt 0.031250 0.523438
vt 0.015625 0.507812
vt 0.015625 0.523438
vt 0.000000 0.523438
vt 0.000000 0.507812
vt 0.015625 0.492188
vt 0.062500 0.609375
vt 0.046875 0.609375
vt 0.195312 0.468750
vt 0.195312 0.484375
vt 0.078125 0.593750
vt 0.031250 0.554688
vt 0.031250 0.570312
vt 0.015625 0.570312
vt 0.015625 0.554688
vt 0.000000 0.578125
vt 0.015625 0.578125
vt 0.015625 0.593750
vt 0.000000 0.593750
vt 0.015625 0.609375
vt 0.007812 0.484375
vt 0.007812 0.468750
vt 0.000000 0.554688
vt 0.000000 0.445312
vt 0.031250 0.445312
vt 0.031250 0.460938
vt 0.000000 0.460938
vt 0.093750 0.460938
vt 0.062500 0.460938
vt 0.062500 0.445312
vt 0.093750 0.445312
vt 0.125000 0.460938
vt 0.125000 0.445312
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/5/2 4/3/2 8/6/2 7/7/2
f 7/8/3 8/6/3 6/9/3 5/10/3
f 2/2/4 1/11/4 5/12/4 6/9/4
f 8/6/5 4/3/5 2/2/5 6/9/5
f 9/13/1 10/14/1 12/15/1 11/16/1
f 11/17/2 12/15/2 16/18/2 15/19/2
f 15/20/3 16/18/3 14/21/3 13/22/3
f 10/14/4 9/23/4 13/24/4 14/21/4
f 16/18/5 12/15/5 10/14/5 14/21/5
f 17/25/3 18/26/3 20/27/3 19/28/3
f 19/28/4 20/27/4 24/29/4 23/30/4
f 23/30/1 24/29/1 22/31/1 21/32/1
f 21/33/2 22/34/2 18/35/2 17/36/2
f 19/28/6 23/30/6 21/37/6 17/38/6
f 24/29/5 20/27/5 18/35/5 22/34/5
f 25/39/3 26/40/3 28/41/3 27/42/3
f 27/43/4 28/44/4 32/45/4 31/46/4
f 31/47/1 32/48/1 30/49/1 29/50/1
f 29/50/2 30/49/2 26/40/2 25/39/2
f 31/51/5 29/52/5 37/53/5 38/54/5
f 32/55/5 28/56/5 26/40/5 30/49/5
f 29/50/2 25/39/2 34/57/2 36/58/2
f 27/43/4 31/46/4 35/59/4 33/60/4
f 34/61/2 25/62/2 42/63/2 44/64/2
f 38/54/5 37/53/5 49/65/5 50/66/5
f 29/52/2 36/67/2 39/68/2 37/53/2
f 35/59/4 31/46/4 38/69/4 40/70/4
f 27/43/4 33/60/4 43/71/4 41/72/4
f 25/62/5 27/73/5 41/74/5 42/63/5
f 46/75/3 45/76/3 47/77/3 48/78/3
f 44/64/2 42/63/2 46/75/2 48/79/2
f 42/63/5 41/74/5 45/76/5 46/75/5
f 50/66/1 49/65/1 51/80/1 52/81/1
f 41/72/1 43/71/1 55/82/1 56/83/1
f 37/53/2 39/68/2 51/84/2 49/65/2
f 56/85/4 55/86/4 57/87/4 58/88/4
f 53/89/4 54/90/4 60/91/4 59/92/4
f 38/54/5 50/66/5 60/91/5 54/90/5
f 50/66/1 52/81/1 59/93/1 60/91/1
f 40/70/3 38/69/3 54/94/3 53/95/3
f 45/76/5 41/74/5 56/85/5 58/88/5
f 47/77/3 45/76/3 58/88/3 57/96/3
f 61/97/3 62/98/3 64/99/3 63/100/3
f 67/101/1 68/102/1 66/103/1 65/104/1
f 63/105/6 67/101/6 65/104/6 61/106/6
f 68/102/5 64/99/5 62/98/5 66/103/5
l 72 32
l 30 71
l 69 26
l 28 70

View File

@ -0,0 +1,63 @@
# Blender v2.93.5 OBJ File: 'furniture.blend'
# www.blender.org
o Server_rack_1_Cube.027
v -0.437500 -0.500000 0.500000
v -0.437500 1.500000 0.500000
v -0.437500 -0.500000 -0.500000
v -0.437500 1.500000 -0.500000
v 0.437500 -0.500000 0.500000
v 0.437500 1.500000 0.500000
v 0.437500 -0.500000 -0.500000
v 0.437500 1.500000 -0.500000
v -0.375000 1.437500 -0.500000
v 0.375000 1.437500 -0.500000
v 0.375000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.500000
v -0.375000 1.437500 -0.437500
v 0.375000 1.437500 -0.437500
v 0.375000 -0.500000 -0.437500
v -0.375000 -0.500000 -0.437500
vt 0.687500 -0.000000
vt 0.687500 0.500000
vt 0.937500 0.500000
vt 0.937500 -0.000000
vt 0.000000 0.500000
vt 0.218750 0.500000
vt 0.203125 0.484375
vt 0.015625 0.484375
vt 0.218750 -0.000000
vt 0.468750 0.500000
vt 0.468750 -0.000000
vt 0.000000 0.000000
vt 0.015625 0.000000
vt 0.000000 0.750000
vt 0.218750 0.750000
vt 0.203125 -0.000000
vt 0.242188 0.984375
vt 0.242188 0.500000
vt 0.257812 0.500000
vt 0.257812 0.984375
vt 0.460938 0.500000
vt 0.460938 0.984375
vt 0.445312 0.984375
vt 0.445312 0.500000
vt 0.445312 1.000000
vt 0.257812 1.000000
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 4/5/2 8/6/2 10/7/2 9/8/2
f 7/9/3 8/6/3 6/10/3 5/11/3
f 5/11/4 6/10/4 2/2/4 1/1/4
f 3/12/2 4/5/2 9/8/2 12/13/2
f 8/6/5 4/5/5 2/14/5 6/15/5
f 7/9/2 11/16/2 10/7/2 8/6/2
f 10/17/1 11/18/1 15/19/1 14/20/1
f 12/21/3 9/22/3 13/23/3 16/24/3
f 9/25/6 10/26/6 14/20/6 13/23/6
f 14/20/2 15/19/2 16/24/2 13/23/2

View File

@ -0,0 +1,63 @@
# Blender v2.93.5 OBJ File: 'furniture.blend'
# www.blender.org
o Server_rack_2_Cube.028
v -0.437500 -0.500000 0.500000
v -0.437500 1.000000 0.500000
v -0.437500 -0.500000 -0.500000
v -0.437500 1.000000 -0.500000
v 0.437500 -0.500000 0.500000
v 0.437500 1.000000 0.500000
v 0.437500 -0.500000 -0.500000
v 0.437500 1.000000 -0.500000
v -0.375000 0.937500 -0.500000
v 0.375000 0.937500 -0.500000
v 0.375000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.500000
v -0.375000 0.937500 -0.437500
v 0.375000 0.937500 -0.437500
v 0.375000 -0.500000 -0.437500
v -0.375000 -0.500000 -0.437500
vt 0.687500 0.125000
vt 0.687500 0.500000
vt 0.937500 0.500000
vt 0.937500 0.125000
vt -0.000000 0.500000
vt 0.218750 0.500000
vt 0.203125 0.484375
vt 0.015625 0.484375
vt 0.218750 0.125000
vt 0.468750 0.500000
vt 0.468750 0.125000
vt -0.000000 0.125000
vt 0.015625 0.125000
vt -0.000000 0.750000
vt 0.218750 0.750000
vt 0.203125 0.125000
vt 0.242188 0.984375
vt 0.242188 0.625000
vt 0.257812 0.625000
vt 0.257812 0.984375
vt 0.460938 0.625000
vt 0.460938 0.984375
vt 0.445312 0.984375
vt 0.445312 0.625000
vt 0.445312 1.000000
vt 0.257812 1.000000
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 4/5/2 8/6/2 10/7/2 9/8/2
f 7/9/3 8/6/3 6/10/3 5/11/3
f 5/11/4 6/10/4 2/2/4 1/1/4
f 3/12/2 4/5/2 9/8/2 12/13/2
f 8/6/5 4/5/5 2/14/5 6/15/5
f 7/9/2 11/16/2 10/7/2 8/6/2
f 10/17/1 11/18/1 15/19/1 14/20/1
f 12/21/3 9/22/3 13/23/3 16/24/3
f 9/25/6 10/26/6 14/20/6 13/23/6
f 14/20/2 15/19/2 16/24/2 13/23/2

View File

@ -0,0 +1,63 @@
# Blender v2.93.5 OBJ File: 'furniture.blend'
# www.blender.org
o Server_rack_3_Cube.029
v -0.437500 -0.500000 0.500000
v -0.437500 0.500000 0.500000
v -0.437500 -0.500000 -0.500000
v -0.437500 0.500000 -0.500000
v 0.437500 -0.500000 0.500000
v 0.437500 0.500000 0.500000
v 0.437500 -0.500000 -0.500000
v 0.437500 0.500000 -0.500000
v -0.375000 0.437500 -0.500000
v 0.375000 0.437500 -0.500000
v 0.375000 -0.500000 -0.500000
v -0.375000 -0.500000 -0.500000
v -0.375000 0.437500 -0.437500
v 0.375000 0.437500 -0.437500
v 0.375000 -0.500000 -0.437500
v -0.375000 -0.500000 -0.437500
vt 0.687500 0.234375
vt 0.687500 0.500000
vt 0.937500 0.500000
vt 0.937500 0.234375
vt 0.000000 0.500000
vt 0.218750 0.500000
vt 0.203125 0.484375
vt 0.015625 0.484375
vt 0.218750 0.234375
vt 0.468750 0.500000
vt 0.468750 0.234375
vt 0.000000 0.234375
vt 0.015625 0.234375
vt 0.000000 0.750000
vt 0.218750 0.750000
vt 0.203125 0.234375
vt 0.242188 0.984375
vt 0.242188 0.734375
vt 0.257812 0.734375
vt 0.257812 0.984375
vt 0.460938 0.734375
vt 0.460938 0.984375
vt 0.445312 0.984375
vt 0.445312 0.734375
vt 0.445312 1.000000
vt 0.257812 1.000000
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 4/5/2 8/6/2 10/7/2 9/8/2
f 7/9/3 8/6/3 6/10/3 5/11/3
f 5/11/4 6/10/4 2/2/4 1/1/4
f 3/12/2 4/5/2 9/8/2 12/13/2
f 8/6/5 4/5/5 2/14/5 6/15/5
f 7/9/2 11/16/2 10/7/2 8/6/2
f 10/17/1 11/18/1 15/19/1 14/20/1
f 12/21/3 9/22/3 13/23/3 16/24/3
f 9/25/6 10/26/6 14/20/6 13/23/6
f 14/20/2 15/19/2 16/24/2 13/23/2

158
mods/furniture/office.lua Normal file
View File

@ -0,0 +1,158 @@
minetest.register_node('furniture:file_cabinet', {
description = 'File Cabinet',
drawtype = 'mesh',
mesh = 'furniture_file_cabinet.obj',
tiles = {'furniture_file_cabinet.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1, .45},
},
collision_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1, .45},
},
groups = {breakable=1,stash=1},
})
minetest.register_node('furniture:pc_old', {
description = 'Old Personal Computer',
drawtype = 'mesh',
mesh = 'furniture_pc_old.obj',
tiles = {'furniture_pc_old.png'},
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 4,
selection_box = {
type = 'fixed',
fixed = {{-.475, -.5, -.25, .45, -.25, .5},
{-.4, -.25, -.25, .35, .45, .45}}
},
collision_box = {
type = 'fixed',
fixed = {{-.475, -.5, -.25, .45, -.25, .5},
{-.4, -.25, -.25, .35, .45, .45}}
},
groups = {breakable=1},
})
minetest.register_node('furniture:pc_screen', {
description = 'Ultrawide monitor',
drawtype = 'mesh',
mesh = 'furniture_pc_screen.obj',
tiles = {'furniture_pc_screen.png'},
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 4,
selection_box = {
type = 'fixed',
fixed = {{-.45, -.5, -.35, .45, -.45, 0},
{-.95, -.45, .3, .95, .45, .45}}
},
collision_box = {
type = 'fixed',
fixed = {{-.45, -.5, -.35, .45, -.45, 0},
{-.95, -.45, .3, .95, .45, .45}}
},
groups = {breakable=1},
})
minetest.register_node('furniture:pc_laptop', {
description = 'Laptop',
drawtype = 'mesh',
mesh = 'furniture_pc_laptop.obj',
tiles = {'furniture_pc_laptop.png'},
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 4,
selection_box = {
type = 'fixed',
fixed = {{-.45, -.5, -.35, .45, -.45, .35},
{-.45, -.45, .25, .45, .15, .5}}
},
collision_box = {
type = 'fixed',
fixed = {{-.45, -.5, -.35, .45, -.45, .35},
{-.45, -.45, .25, .45, .15, .5}}
},
groups = {breakable=1},
})
minetest.register_node('furniture:server_1', {
description = 'Tall Server Rack',
drawtype = 'mesh',
mesh = 'furniture_server_rack_1.obj',
tiles = {'furniture_server_rack_1.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1.5, .45},
},
collision_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1.5, .45},
},
_sound = 'server_rack',
groups = {breakable=1, plays_sound=1},
})
minetest.register_node('furniture:server_2', {
description = 'Medium Server Rack',
drawtype = 'mesh',
mesh = 'furniture_server_rack_2.obj',
tiles = {'furniture_server_rack_2.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1, .45},
},
collision_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, 1, .45},
},
_sound = 'server_rack',
groups = {breakable=1, plays_sound=1},
})
minetest.register_node('furniture:server_3', {
description = 'Short Server Rack',
drawtype = 'mesh',
mesh = 'furniture_server_rack_3.obj',
tiles = {'furniture_server_rack_3.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, .5, .45},
},
collision_box = {
type = 'fixed',
fixed = {-.45, -.5, -.5, .45, .5, .45},
},
_sound = 'server_rack',
groups = {breakable=1, plays_sound=1},
})
minetest.register_node('furniture:desk', {
description = 'Desk',
drawtype = 'mesh',
mesh = 'furniture_desk.obj',
tiles = {'furniture_desk.png'},
paramtype = 'light',
paramtype2 = 'colorfacedir',
palette = 'furniture_stain_palette.png',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, 1.5, .5, .5}
},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, 1.5, .5, .5}
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})

Binary file not shown.

View File

@ -16,6 +16,8 @@ minetest.register_node('furniture:chest_small', {
fixed = {-.4, -.5, -.3, .4, .2, .4},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:chest', {
@ -36,6 +38,8 @@ minetest.register_node('furniture:chest', {
fixed = {-.45, -.5, -.4, .45, .4, .5},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:chest_large', {
@ -59,45 +63,3 @@ minetest.register_node('furniture:chest_large', {
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:cabinet_wall', {
description = 'Wall Mounted Cabinet',
drawtype = 'mesh',
mesh = 'furniture_cabinet_wall.obj',
tiles = {'furniture_cabinet_wall.png'},
paramtype = 'light',
paramtype2 = 'colorfacedir',
palette = 'furniture_stain_palette.png',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.3, .5, .5, .5},
},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.3, .5, .5, .5},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})
minetest.register_node('furniture:cabinet_counter', {
description = 'Cabinet with Countertop',
drawtype = 'mesh',
mesh = 'furniture_cabinet_counter.obj',
tiles = {'furniture_cabinet_counter.png'},
paramtype = 'light',
paramtype2 = 'colorfacedir',
palette = 'furniture_stain_palette.png',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5},
},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5},
},
groups = {breakable=1},
on_rightclick = furniture.dye_less,
on_punch = furniture.dye_more
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

View File

@ -96,7 +96,7 @@ end
-- Update appearance when the player joins
minetest.register_on_joinplayer(function(player)
player:get_inventory():set_size('main', 8*4)
player:get_inventory():set_size('main', 8*4)--Add extra inventories for playing games and clothing/cosmetics
gamer.player_attached[player:get_player_name()] = false
gamer.player_set_model(player, 'gamer_model.b3d')
player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30)
@ -156,3 +156,16 @@ minetest.register_globalstep(function(dtime)
end
end
end)
local function player_heal()
for _, player in pairs(minetest.get_connected_players()) do
local hp = player:get_hp()
local breath = player:get_breath()
local max_hp = player:get_properties().hp_max
if hp > 0 and hp < max_hp and breath > 0 then
player:set_hp(hp + 1)
end
end
minetest.after(3.0, player_heal)
end
minetest.after(5.0, player_heal)

1
mods/gamer/mod.conf Normal file
View File

@ -0,0 +1 @@
name = gamer

View File

@ -1,16 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="32" height="32" viewBox="0 0 32 32"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<desc>lights.blend, (Blender 2.91.2)</desc>
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="0.000,6.000 4.000,6.000 4.000,10.000 0.000,10.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="0.000,28.000 0.000,32.000 4.000,32.000 4.000,28.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="12.000,10.000 12.000,28.000 16.000,28.000 16.000,10.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="8.000,10.000 12.000,10.000 12.000,28.000 8.000,28.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="4.000,10.000 8.000,10.000 8.000,28.000 4.000,28.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="0.000,10.000 0.000,28.000 4.000,28.000 4.000,10.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="32.000,32.000 32.000,14.000 18.000,14.000 18.000,32.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="18.000,32.000 32.000,32.000 32.000,14.000 18.000,14.000 " />
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -136,18 +136,18 @@ minetest.register_node('lobby:button_1', {
local item = itemstack:get_name()
local player_name = clicker:get_player_name()
local owner = meta:get_string('owner')
if item ~= 'creative:tool_breaking' then
if item == 'creative:tool_breaking' or item == 'tasks:configurator' then
if owner == player_name or minetest.check_player_privs(clicker, {server = true}) then
minetest.swap_node(pos, {name = 'lobby:button_0'})
lobby.savedata.IDs[id] = false
end
else
local name = meta:get_string('name')
local player_count = meta:get_string('player_count')
local xp = meta:get_string('xp')
local pos = meta:get_string('pos')
local desc = meta:get_string('desc')
meta:set_string('formspec', button_display(id, name, player_count, xp, pos, desc))
else
if owner == player_name or minetest.check_player_privs(clicker, {server = true}) then
minetest.swap_node(pos, {name = 'lobby:button_0'})
lobby.savedata.IDs[id] = false
end
end
end,
on_punch = function(pos, node, puncher, pointed_thing)

View File

@ -1,34 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="128" height="128" viewBox="0 0 128 128"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<desc>shops.blend, (Blender 2.91.2)</desc>
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="24.000,99.000 24.000,71.000 6.000,71.000 6.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="90.000,128.000 90.000,100.000 38.000,100.000 38.000,128.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="58.000,0.000 58.000,14.000 64.000,14.000 64.000,0.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="76.000,99.000 76.000,71.000 24.000,71.000 24.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="58.000,0.000 6.000,0.000 6.000,14.000 58.000,14.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="110.000,128.000 110.000,100.000 96.000,100.000 96.000,128.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="6.000,14.000 6.000,0.000 0.000,0.000 0.000,14.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="128.000,99.000 128.000,47.000 124.000,47.000 124.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="90.000,100.000 90.000,128.000 96.000,128.000 96.000,100.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="32.000,128.000 32.000,100.000 18.000,100.000 18.000,128.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="38.000,128.000 38.000,100.000 32.000,100.000 32.000,128.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="18.000,128.000 18.000,100.000 0.000,100.000 0.000,128.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="116.000,99.000 116.000,47.000 112.000,47.000 112.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="6.000,99.000 6.000,71.000 0.000,71.000 0.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="94.000,71.000 94.000,99.000 100.000,99.000 100.000,71.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="120.000,99.000 120.000,47.000 116.000,47.000 116.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="64.000,14.000 58.000,14.000 58.000,32.000 64.000,32.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="110.000,100.000 110.000,128.000 128.000,128.000 128.000,100.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="76.000,71.000 76.000,99.000 94.000,99.000 94.000,71.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="124.000,99.000 124.000,47.000 120.000,47.000 120.000,99.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="6.000,14.000 0.000,14.000 0.000,32.000 6.000,32.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="98.000,70.000 98.000,18.000 94.000,18.000 94.000,70.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="102.000,70.000 102.000,18.000 98.000,18.000 98.000,70.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="106.000,70.000 106.000,18.000 102.000,18.000 102.000,70.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="110.000,70.000 110.000,18.000 106.000,18.000 106.000,70.000 " />
<polygon stroke="black" stroke-width="1" fill="rgb(204, 204, 204)" fill-opacity="0.25" points="128.000,0.000 72.000,0.000 72.000,16.000 128.000,16.000 " />
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -11,11 +11,14 @@ end
minetest.register_on_joinplayer(function(player)
local name = player:get_player_name()
local player_attributes = player:get_meta()
local max_hp = player_attributes:get_int('hp')
if max_hp < 20 then
player_attributes:set_int('hp', 20)
end
player_attributes:set_string('ghost', 'false')
lobby.suspect[name] = 0
lobby.game[name] = 'lobby'
lobby.voted[name] = true
player:set_hp(40)
if not_builder(player) then
local player_inv = player:get_inventory()
player_inv:set_list('main', {})

View File

@ -5,14 +5,26 @@ end
local function lobby_shop_priv(player)
local player_attributes = player:get_meta()
local xp = player_attributes:get_float('xp') or 0
local xp = player_attributes:get_float('xp')
local luck = player_attributes:get_int('luck')
local health = player_attributes:get_int('hp')
local formspec =
'formspec_version[3]'..
'size[12,12]'..
'textarea[0.5,0.5;11,2;;; You currently have '..xp..' xp available. Spend them on privileges! If you run low collect trash from the lobby, or play some levels with friends. Playing levels will revoke some privileges, but you can restore them here.]'..
'label[1,2.5;If you want to build your own levels you\'ll need the builder priv. \nThis will give you, fly, fast, creative, and worldedit.]'..
'button[1,3.5;4,1;builder;Builder Priv (100XP)]'..
'button[7,3.5;4,1;build;Restore builder privs (FREE!!!)]'
'textarea[.5,.5;2,2;;;Player Stats:\n XP: '..xp..'\n HP: '..health..'\n Luck: '..luck..']'..
'textarea[2.5,.5;9,2;;; Spend your XP here! If you run low collect trash from the lobby, or play some levels with friends.'..
' Playing levels will revoke some privileges, but you can restore them here. If you want to build your own levels you\'ll need the builder priv.'..
' This will give you: fly, fast, creative, and worldedit.\n Luck will help you find stashed items. Higher HP will let you take more damage before dying.]'..
'button[1,2.75;5,1;builder;Builder Priv (100XP)]'..
'button[6,2.75;5,1;build;Restore builder privs (FREE!!!)]'..
'button[6,4;5,1;health;Increase your HP ('..((health+1)*10)..' XP)]'
if luck < 10 then
formspec = formspec..
'button[1,4;5,1;luck;Increase your luck ('..((luck+1)*100)..' XP)]'
else
formspec = formspec..
'button[1,4;5,1;nil;Max luck ]'
end
return formspec
end
@ -35,7 +47,7 @@ minetest.register_node('lobby:shop_priv', {
on_rightclick = function(pos, node, clicker, itemstack)
local meta = minetest.get_meta(pos)
local name = clicker:get_player_name()
meta:set_string('infotext', 'Privilege Shop')
meta:set_string('infotext', 'Shop, spend XP here.')
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(clicker))
end,
})
@ -43,6 +55,7 @@ minetest.register_node('lobby:shop_priv', {
minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = player:get_player_name()
if formname == 'lobby:shop_priv' then
local player_attributes = player:get_meta()
if fields.builder then
if lobby.take_xp(player, 100) and not_builder(player) then
minetest.chat_send_player(player:get_player_name(), 'You just bought the Builder Privilege!')
@ -52,12 +65,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
privs.fly = true
privs.fast = true
privs.worldedit = true
privs.areas = true
minetest.set_player_privs(name, privs)
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(player))
else
minetest.chat_send_player(name, 'You either don\'t have 100 XP or you already have the priv.')
end
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(player))
elseif fields.build then
if not not_builder(player) then
local privs = minetest.get_player_privs(name)
@ -65,12 +78,31 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
privs.fly = true
privs.fast = true
privs.worldedit = true
privs.areas = true
minetest.set_player_privs(name, privs)
minetest.chat_send_player(name, 'Privs restored!')
else
minetest.chat_send_player(name, 'You need to buy the Builder priv first!')
end
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(player))
elseif fields.luck then
local luck = player_attributes:get_int('luck') or 0
local xp = (luck+1)*100
if lobby.take_xp(player, xp) then
player_attributes:set_int('luck', luck+1)
else
minetest.chat_send_player(name, 'You need more XP!')
end
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(player))
elseif fields.health then
local health = player_attributes:get_int('hp')
local xp = (health+1)*10
if lobby.take_xp(player, xp) then
player:set_properties({hp_max = health+1})
player_attributes:set_int('hp', health+1)
else
minetest.chat_send_player(name, 'You need more XP!')
end
minetest.show_formspec(name, 'lobby:shop_priv', lobby_shop_priv(player))
end
end
end)

View File

@ -6,7 +6,7 @@ minetest.register_node('mail:mailbox', {
paramtype = 'light',
paramtype2 = 'facedir',
sunlight_propagates = true,
groups = {breakable=1},
groups = {breakable=1, not_in_creative_inventory=1},
on_rightclick = function(pos, node, clicker)
local name = clicker:get_player_name()
mail.show_inbox(name)

100
mods/platformer/buttons.lua Normal file
View File

@ -0,0 +1,100 @@
local function button_formspec(xp, pos)
local formspec =
'formspec_version[3]'..
'size[8,6]'..
'textarea[.5,.5;7,2;;;You can change the POS manually if you want, if you provide bad data everybody that punches the button will see you are an idiot, so test your stuff. :)]'..
'field[1,4;2,.5;pos;Return pos (x,y,z);'..pos..']'..
'field[5,4;2,.5;xp;XP;'..xp..']'..
'button_exit[5,5;2,.5;save;Submit]'
return formspec
end
local button_box = {
type = 'fixed',
fixed = {
{-.4375, -.5, -.4375, .4375, .3125, .4375},},}
minetest.register_node('platformer:button', {
description = 'XP Button',
drawtype = 'mesh',
mesh = 'platformer_button.obj',
tiles = {'platformer_button.png'},
paramtype = 'light',
light_source = 10,
selection_box = button_box,
collision_box = button_box,
groups = {breakable = 1, not_in_creative_inventory=1},
after_place_node = function(pos, placer)
if minetest.check_player_privs(placer:get_player_name(), {server = true}) then
local meta = minetest.get_meta(pos)
local saved_data = platformer.player_config[placer:get_player_name()] or {x=0,y=0,z=0}
local saved_pos = minetest.pos_to_string(saved_data, 1)
meta:set_string('owner', placer:get_player_name())
meta:set_int('xp', 1)
meta:set_string('pos', saved_pos)
else
minetest.chat_send_player(placer:get_player_name(), 'How did you get this? No matter, you are not allowed to place it!')
minetest.remove_node(pos)
end
end,
on_rightclick = function(pos, node, clicker, itemstack)
local meta = minetest.get_meta(pos)
local owner = meta:get_string('owner')
local item = itemstack:get_name()
local name = clicker:get_player_name()
if item == 'tasks:configurator' then
if owner == name or minetest.check_player_privs(clicker, {server = true}) then
tasks.player_config[name] = pos
local xp = meta:get_int('xp')
local pos = meta:get_string('pos')
minetest.show_formspec(name, 'platformer:button', button_formspec(xp, pos))
end
end
end,
on_use = function(itemstack, user, pointed_thing)
local pos = minetest.get_pointed_thing_position(pointed_thing)
local name = user:get_player_name()
local new_pos = {x=pos.x, y=pos.y+2, z=pos.z}
platformer.player_config[name] = new_pos
minetest.chat_send_player(name, 'Spawn point saved, use again to reset.')
end,
on_punch = function(pos, node, puncher)
local wield = puncher:get_wielded_item()
local wield_name = wield:get_name()
local name = puncher:get_player_name()
if wield_name == 'tasks:configurator' then
local meta = minetest.get_meta(pos)
local owner = meta:get_string('owner')
if owner == name or minetest.check_player_privs(clicker, {server = true}) then
tasks.player_config[name] = pos
local xp = meta:get_int('xp')
local pos = meta:get_string('pos')
minetest.show_formspec(name, 'platformer:button', button_formspec(xp, pos))
end
elseif wield_name ~= 'creative:tool_breaking' then
local meta = minetest.get_meta(pos)
local spawn = meta:get_string('pos')
local spawn_pos = minetest.string_to_pos(spawn)
if spawn_pos ~= nil then
local xp = meta:get_int('xp')
puncher:set_pos(spawn_pos)
lobby.give_xp(puncher, xp)
else
local owner = meta:get_string('owner')
minetest.chat_send_player(puncher:get_player_name(), 'Looks like '..owner..' misconfigured this button, sorry. Use /spawn to get back to the lobby.')
end
end
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = player:get_player_name()
if formname == 'platformer:button' then
if fields.save then
local pos = tasks.player_config[name]
local meta = minetest.get_meta(pos)
meta:set_int('xp', fields.xp)
meta:set_string('pos', fields.pos)
end
end
end)

5
mods/platformer/init.lua Normal file
View File

@ -0,0 +1,5 @@
platformer = {}
platformer.player_config = {}
dofile(minetest.get_modpath('platformer')..'/platforms.lua')
dofile(minetest.get_modpath('platformer')..'/buttons.lua')

2
mods/platformer/mod.conf Normal file
View File

@ -0,0 +1,2 @@
name = platformer
depends = tasks, lobby

View File

@ -0,0 +1,160 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o Cube.001_Cube.006
v -0.375000 -0.500000 0.375000
v -0.375000 0.250000 0.375000
v -0.375000 -0.500000 -0.375000
v -0.375000 0.250000 -0.375000
v 0.375000 -0.500000 0.375000
v 0.375000 0.250000 0.375000
v 0.375000 -0.500000 -0.375000
v 0.375000 0.250000 -0.375000
v -0.437500 -0.437500 0.312500
v -0.375000 -0.437500 0.312500
v -0.437500 -0.437500 -0.312500
v -0.375000 -0.437500 -0.312500
v -0.437500 0.187500 0.312500
v -0.375000 0.187500 0.312500
v -0.437500 0.187500 -0.312500
v -0.375000 0.187500 -0.312500
v 0.375000 0.187500 0.312500
v 0.437500 0.187500 0.312500
v 0.375000 0.187500 -0.312500
v 0.437500 0.187500 -0.312500
v 0.375000 -0.437500 0.312500
v 0.437500 -0.437500 0.312500
v 0.375000 -0.437500 -0.312500
v 0.437500 -0.437500 -0.312500
v 0.312500 0.312500 -0.312500
v 0.312500 0.250000 -0.312500
v 0.312500 0.312500 0.312500
v 0.312500 0.250000 0.312500
v -0.312500 0.312500 -0.312500
v -0.312500 0.250000 -0.312500
v -0.312500 0.312500 0.312500
v -0.312500 0.250000 0.312500
v 0.312500 -0.437500 0.437500
v 0.312500 -0.437500 0.375000
v -0.312500 -0.437500 0.437500
v -0.312500 -0.437500 0.375000
v 0.312500 0.187500 0.437500
v 0.312500 0.187500 0.375000
v -0.312500 0.187500 0.437500
v -0.312500 0.187500 0.375000
v 0.312500 0.187500 -0.375000
v 0.312500 0.187500 -0.437500
v -0.312500 0.187500 -0.375000
v -0.312500 0.187500 -0.437500
v 0.312500 -0.437500 -0.375000
v 0.312500 -0.437500 -0.437500
v -0.312500 -0.437500 -0.375000
v -0.312500 -0.437500 -0.437500
vt 0.000000 0.187500
vt 0.187500 0.187500
vt 0.187500 0.375000
vt 0.000000 0.375000
vt 0.187500 0.562500
vt 0.375000 0.375000
vt 0.375000 0.562500
vt 0.562500 0.375000
vt 0.375000 0.187500
vt 0.562500 0.187500
vt 0.375000 0.000000
vt 0.187500 0.000000
vt 0.757812 0.828125
vt 0.757812 0.984375
vt 0.601562 0.984375
vt 0.601562 0.828125
vt 0.601562 1.000000
vt 0.757812 1.000000
vt 0.757812 0.812500
vt 0.601562 0.812500
vt 0.195312 0.828125
vt 0.210938 0.828125
vt 0.210938 0.984375
vt 0.195312 0.984375
vt 0.562500 0.812500
vt 0.562500 0.828125
vt 0.406250 0.828125
vt 0.406250 0.812500
vt 0.585938 0.828125
vt 0.585938 0.984375
vt 0.578125 0.984375
vt 0.562500 0.984375
vt 0.578125 0.828125
vt 0.406250 0.984375
vt 0.390625 0.828125
vt 0.390625 0.984375
vt 0.406250 1.000000
vt 0.562500 1.000000
vt 0.367188 0.828125
vt 0.367188 0.984375
vt 0.210938 1.000000
vt 0.367188 1.000000
vt 0.367188 0.812500
vt 0.210938 0.812500
vt 0.382812 0.984375
vt 0.382812 0.828125
vt 0.773438 0.984375
vt 0.773438 0.828125
vt 0.015625 0.828125
vt 0.171875 0.828125
vt 0.171875 0.984375
vt 0.015625 0.984375
vt 0.187500 0.984375
vt 0.187500 0.828125
vt 0.000000 0.828125
vt 0.000000 0.984375
vt 0.968750 0.984375
vt 0.953125 0.984375
vt 0.953125 0.828125
vt 0.968750 0.828125
vt 0.015625 1.000000
vt 0.171875 1.000000
vt 0.796875 1.000000
vt 0.796875 0.984375
vt 0.953125 1.000000
vt 0.796875 0.828125
vt 0.953125 0.812500
vt 0.796875 0.812500
vt 0.781250 0.828125
vt 0.781250 0.984375
vt 0.171875 0.812500
vt 0.015625 0.812500
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/5/2 4/3/2 8/6/2 7/7/2
f 7/8/3 8/6/3 6/9/3 5/10/3
f 5/11/4 6/9/4 2/2/4 1/12/4
f 9/13/1 13/14/1 15/15/1 11/16/1
f 8/6/5 4/3/5 2/2/5 6/9/5
f 16/17/5 15/15/5 13/14/5 14/18/5
f 10/19/6 9/13/6 11/16/6 12/20/6
f 30/21/2 29/22/2 25/23/2 26/24/2
f 21/25/4 22/26/4 18/27/4 17/28/4
f 12/29/2 11/16/2 15/15/2 16/30/2
f 23/31/6 24/32/6 22/26/6 21/33/6
f 24/32/3 20/34/3 18/27/3 22/26/3
f 17/35/5 18/27/5 20/34/5 19/36/5
f 19/37/2 20/34/2 24/32/2 23/38/2
f 25/23/5 29/22/5 31/39/5 27/40/5
f 26/41/3 25/23/3 27/40/3 28/42/3
f 32/43/1 31/39/1 29/22/1 30/44/1
f 28/45/4 27/40/4 31/39/4 32/46/4
f 14/47/4 13/14/4 9/13/4 10/48/4
f 33/49/4 37/50/4 39/51/4 35/52/4
f 40/53/5 39/51/5 37/50/5 38/54/5
f 34/55/6 33/49/6 35/52/6 36/56/6
f 45/57/3 46/58/3 42/59/3 41/60/3
f 36/61/1 35/52/1 39/51/1 40/62/1
f 47/63/6 48/64/6 46/58/6 45/65/6
f 48/64/2 44/66/2 42/59/2 46/58/2
f 41/67/5 42/59/5 44/66/5 43/68/5
f 43/69/1 44/66/1 48/64/1 47/70/1
f 38/71/3 37/50/3 33/49/3 34/72/3

View File

@ -0,0 +1,63 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o Cube.001_Cube
v -1.000000 0.375000 0.562500
v -1.000000 0.468750 0.562500
v -1.000000 0.375000 -0.562500
v -1.000000 0.468750 -0.562500
v 1.000000 0.375000 0.562500
v 1.000000 0.468750 0.562500
v 1.000000 0.375000 -0.562500
v 1.000000 0.468750 -0.562500
v -0.625000 0.187500 0.312500
v -0.625000 0.375000 0.312500
v -0.625000 0.187500 -0.312500
v -0.625000 0.375000 -0.312500
v 0.625000 0.187500 0.312500
v 0.625000 0.375000 0.312500
v 0.625000 0.187500 -0.312500
v 0.625000 0.375000 -0.312500
vt 0.281250 0.976562
vt 0.281250 1.000000
vt 0.000000 1.000000
vt 0.000000 0.976562
vt 0.609375 0.976562
vt 0.585938 0.976562
vt 0.585938 0.476562
vt 0.609375 0.476562
vt 0.000000 0.476562
vt 0.000000 0.453125
vt 0.281250 0.453125
vt 0.281250 0.476562
vt 0.304688 0.476562
vt 0.304688 0.976562
vt 0.953125 0.953125
vt 0.953125 1.000000
vt 0.796875 1.000000
vt 0.796875 0.953125
vt 0.750000 0.953125
vt 0.750000 0.640625
vt 0.796875 0.640625
vt 0.796875 0.593750
vt 0.953125 0.593750
vt 0.953125 0.640625
vt 1.000000 0.640625
vt 1.000000 0.953125
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/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/13/4 2/14/4 1/1/4
f 3/4/5 7/9/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/14/6 6/13/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/19/2 16/20/2 15/21/2
f 15/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/25/4 10/26/4 9/15/4
f 11/18/5 15/21/5 13/24/5 9/15/5

View File

@ -0,0 +1,63 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o platform_x2_Cube.002
v 1.000000 0.375000 -0.562500
v 1.000000 0.468750 -0.562500
v 1.000000 0.375000 0.562500
v 1.000000 0.468750 0.562500
v -1.000000 0.375000 -0.562500
v -1.000000 0.468750 -0.562500
v -1.000000 0.375000 0.562500
v -1.000000 0.468750 0.562500
v 0.625000 0.187500 -0.312500
v 0.625000 0.375000 -0.312500
v 0.625000 0.187500 0.312500
v 0.625000 0.375000 0.312500
v -0.625000 0.187500 -0.312500
v -0.625000 0.375000 -0.312500
v -0.625000 0.187500 0.312500
v -0.625000 0.375000 0.312500
vt 0.281250 0.976562
vt 0.281250 1.000000
vt 0.000000 1.000000
vt 0.000000 0.976562
vt 0.609375 0.976562
vt 0.585938 0.976562
vt 0.585938 0.476562
vt 0.609375 0.476562
vt 0.000000 0.476562
vt 0.000000 0.453125
vt 0.281250 0.453125
vt 0.281250 0.476562
vt 0.304688 0.476562
vt 0.304688 0.976562
vt 0.953125 0.953125
vt 0.953125 1.000000
vt 0.796875 1.000000
vt 0.796875 0.953125
vt 0.750000 0.953125
vt 0.750000 0.640625
vt 0.796875 0.640625
vt 0.796875 0.593750
vt 0.953125 0.593750
vt 0.953125 0.640625
vt 1.000000 0.640625
vt 1.000000 0.953125
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/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/13/4 2/14/4 1/1/4
f 3/4/5 7/9/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/14/6 6/13/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/19/2 16/20/2 15/21/2
f 15/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/25/4 10/26/4 9/15/4
f 11/18/5 15/21/5 13/24/5 9/15/5

View File

@ -0,0 +1,63 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o platform_z_Cube.005
v -0.562500 0.375000 0.562500
v -0.562500 0.468750 0.562500
v -0.562500 0.375000 -0.562500
v -0.562500 0.468750 -0.562500
v 0.562500 0.375000 0.562500
v 0.562500 0.468750 0.562500
v 0.562500 0.375000 -0.562500
v 0.562500 0.468750 -0.562500
v -0.312500 0.187500 0.312500
v -0.312500 0.375000 0.312500
v -0.312500 0.187500 -0.312500
v -0.312500 0.375000 -0.312500
v 0.312500 0.187500 0.312500
v 0.312500 0.375000 0.312500
v 0.312500 0.187500 -0.312500
v 0.312500 0.375000 -0.312500
vt 0.281250 0.976562
vt 0.281250 1.000000
vt 0.000000 1.000000
vt 0.000000 0.976562
vt 0.609375 0.976562
vt 0.585938 0.976562
vt 0.585938 0.695312
vt 0.609375 0.695312
vt 0.000000 0.695312
vt 0.000000 0.671875
vt 0.281250 0.671875
vt 0.281250 0.695312
vt 0.304688 0.695312
vt 0.304688 0.976562
vt 0.796875 0.953125
vt 0.750000 0.953125
vt 0.750000 0.796875
vt 0.796875 0.796875
vt 0.796875 0.750000
vt 0.953125 0.750000
vt 0.953125 0.796875
vt 1.000000 0.796875
vt 1.000000 0.953125
vt 0.953125 0.953125
vt 0.953125 1.000000
vt 0.796875 1.000000
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/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/13/4 2/14/4 1/1/4
f 3/4/5 7/9/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/14/6 6/13/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/19/2 16/20/2 15/21/2
f 15/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/25/4 10/26/4 9/15/4
f 11/18/5 15/21/5 13/24/5 9/15/5

View File

@ -0,0 +1,63 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o platform_z2_Cube.004
v 0.562500 0.375000 1.000000
v 0.562500 0.468750 1.000000
v -0.562500 0.375000 1.000000
v -0.562500 0.468750 1.000000
v 0.562500 0.375000 -1.000000
v 0.562500 0.468750 -1.000000
v -0.562500 0.375000 -1.000000
v -0.562500 0.468750 -1.000000
v 0.312500 0.187500 0.625000
v 0.312500 0.375000 0.625000
v -0.312500 0.187500 0.625000
v -0.312500 0.375000 0.625000
v 0.312500 0.187500 -0.625000
v 0.312500 0.375000 -0.625000
v -0.312500 0.187500 -0.625000
v -0.312500 0.375000 -0.625000
vt 0.281250 0.976562
vt 0.281250 1.000000
vt 0.000000 1.000000
vt 0.000000 0.976562
vt 0.609375 0.976562
vt 0.585938 0.976562
vt 0.585938 0.476562
vt 0.609375 0.476562
vt 0.000000 0.476562
vt 0.000000 0.453125
vt 0.281250 0.453125
vt 0.281250 0.476562
vt 0.304688 0.476562
vt 0.304688 0.976562
vt 0.953125 0.953125
vt 0.953125 1.000000
vt 0.796875 1.000000
vt 0.796875 0.953125
vt 0.750000 0.953125
vt 0.750000 0.640625
vt 0.796875 0.640625
vt 0.796875 0.593750
vt 0.953125 0.593750
vt 0.953125 0.640625
vt 1.000000 0.640625
vt 1.000000 0.953125
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 -0.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
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/13/4 2/14/4 1/1/4
f 3/4/5 7/9/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/14/6 6/13/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/19/2 16/20/2 15/21/2
f 15/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/25/4 10/26/4 9/15/4
f 11/18/5 15/21/5 13/24/5 9/15/5

View File

@ -0,0 +1,63 @@
# Blender v2.91.2 OBJ File: 'platformer.blend'
# www.blender.org
o platform_z1_Cube.003
v -0.562500 0.375000 -1.000000
v -0.562500 0.468750 -1.000000
v 0.562500 0.375000 -1.000000
v 0.562500 0.468750 -1.000000
v -0.562500 0.375000 1.000000
v -0.562500 0.468750 1.000000
v 0.562500 0.375000 1.000000
v 0.562500 0.468750 1.000000
v -0.312500 0.187500 -0.625000
v -0.312500 0.375000 -0.625000
v 0.312500 0.187500 -0.625000
v 0.312500 0.375000 -0.625000
v -0.312500 0.187500 0.625000
v -0.312500 0.375000 0.625000
v 0.312500 0.187500 0.625000
v 0.312500 0.375000 0.625000
vt 0.281250 0.976562
vt 0.281250 1.000000
vt 0.000000 1.000000
vt 0.000000 0.976562
vt 0.609375 0.976562
vt 0.585938 0.976562
vt 0.585938 0.476562
vt 0.609375 0.476562
vt 0.000000 0.476562
vt 0.000000 0.453125
vt 0.281250 0.453125
vt 0.281250 0.476562
vt 0.304688 0.476562
vt 0.304688 0.976562
vt 0.953125 0.953125
vt 0.953125 1.000000
vt 0.796875 1.000000
vt 0.796875 0.953125
vt 0.750000 0.953125
vt 0.750000 0.640625
vt 0.796875 0.640625
vt 0.796875 0.593750
vt 0.953125 0.593750
vt 0.953125 0.640625
vt 1.000000 0.640625
vt 1.000000 0.953125
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.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
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/12/4 6/13/4 2/14/4 1/1/4
f 3/4/5 7/9/5 5/12/5 1/1/5
f 8/7/6 4/6/6 2/14/6 6/13/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/18/2 12/19/2 16/20/2 15/21/2
f 15/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/25/4 10/26/4 9/15/4
f 11/18/5 15/21/5 13/24/5 9/15/5

View File

@ -0,0 +1,171 @@
local x_box = {
type = 'fixed',
fixed = {
{-1, .25, -.5625, 1, .5, .5625},},}
local y_box = {
type = 'fixed',
fixed = {
{-.5625, .25, -.5625, .5625, .5, .5625},},}
local z_box = {
type = 'fixed',
fixed = {
{-.5625, .25, -1, .5625, .5, 1},},}
minetest.register_node('platformer:x1', {
description = 'X axis (positive)',
drawtype = 'mesh',
mesh = 'platformer_platform_x1.obj',
tiles = {'platformer_platform_xz.png'},
light_source = 2,
selection_box = x_box,
collision_box = x_box,
groups = {breakable = 1},
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x+1, y=pos.y, z=pos.z}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:x1'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:x2'})
end
end
})
minetest.register_node('platformer:x2', {
description = 'X axis (negative)',
drawtype = 'mesh',
mesh = 'platformer_platform_x2.obj',
tiles = {'platformer_platform_xz.png'},
light_source = 2,
selection_box = x_box,
collision_box = x_box,
groups = {breakable = 1, not_in_creative_inventory=1},
drops = 'platformer:x1',
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x-1, y=pos.y, z=pos.z}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:x2'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:x1'})
end
end
})
minetest.register_node('platformer:y1', {
description = 'y axis (positive)',
drawtype = 'mesh',
mesh = 'platformer_platform_y.obj',
tiles = {'platformer_platform_y.png'},
climbable = true,
walkable = false,
light_source = 2,
selection_box = y_box,
collision_box = y_box,
groups = {breakable = 1},
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x, y=pos.y+1, z=pos.z}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:y1'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:y2'})
end
end
})
minetest.register_node('platformer:y2', {
description = 'y axis (negative)',
drawtype = 'mesh',
mesh = 'platformer_platform_y.obj',
tiles = {'platformer_platform_y.png'},
climbable = true,
walkable = false,
light_source = 2,
selection_box = y_box,
collision_box = y_box,
groups = {breakable = 1, not_in_creative_inventory=1},
drops = 'platformer:y1',
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x, y=pos.y-1, z=pos.z}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:y2'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:y1'})
end
end
})
minetest.register_node('platformer:z1', {
description = 'z axis (positive)',
drawtype = 'mesh',
mesh = 'platformer_platform_z1.obj',
tiles = {'platformer_platform_xz.png'},
light_source = 2,
selection_box = z_box,
collision_box = z_box,
groups = {breakable = 1},
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x, y=pos.y, z=pos.z+1}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:z1'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:z2'})
end
end
})
minetest.register_node('platformer:z2', {
description = 'z axis (negative)',
drawtype = 'mesh',
mesh = 'platformer_platform_z2.obj',
tiles = {'platformer_platform_xz.png'},
light_source = 2,
selection_box = z_box,
collision_box = z_box,
groups = {breakable = 1, not_in_creative_inventory=1},
drops = 'platformer:z1',
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos)
local new_pos = {x=pos.x, y=pos.y, z=pos.z-1}
local new_node = minetest.get_node(new_pos).name
if new_node == 'air' then
minetest.set_node(new_pos, {name='platformer:z2'})
minetest.set_node(pos, {name='air'})
else
minetest.set_node(pos, {name='platformer:z1'})
end
end
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -11,8 +11,7 @@ sfinv.register_page("sfinv:help", {
if not creative.is_enabled_for(player:get_player_name()) then
return sfinv.make_formspec(player, context,
'textarea[.25,0;8.5,5;;; Traitor is a game based on Among Us. Your goal is to vote out the traitor if you are not the traitor, or to kill all the other players if you are the traitor.\n'..
' To create your own level(s) purchase the builder priv and travel to some unclaimed space on the map. (there is no mapgen so just fly around) Note the coordinates where players should spawn in, and put those into the button. '..
'Fill out the other required fields. Be sure and protect your level so no other builders ruin it. Then invite your friends to play! ]'
' To create your own level(s) purchase the builder priv and claim a level button.]'
, true)
else
local player_attributes = player:get_meta()
@ -20,6 +19,7 @@ sfinv.register_page("sfinv:help", {
return sfinv.make_formspec(player, context,
'textarea[.25,0;8.5,5;;; Look at you fancy pants, you can build your own levels!\n'..
' Keep in mind that the spawn location should be 5x5 at minimum to prevent players from spawning in outside of the spawn area.\n'..
'If you make a mistake on the level button you can edit it by right-clicking the button with the hammer or the wrench, you can also discard and unclaim the button this way.\n'..
' Protect your levels! Add other players to the protection if you want them to be able to help build. If you make the area too small you can always make it larger.\n\n\n\n'..
' You currently have '..xp..' points available.]'
, true)

View File

@ -12,3 +12,4 @@ dofile(minetest.get_modpath('ship')..'/objects.lua')
dofile(minetest.get_modpath('ship')..'/other.lua')
dofile(minetest.get_modpath('ship')..'/rails.lua')
dofile(minetest.get_modpath('ship')..'/walls.lua')
dofile(minetest.get_modpath('ship')..'/laser_gate.lua')

141
mods/ship/laser_gate.lua Normal file
View File

@ -0,0 +1,141 @@
local fdir_table = {
{ 1, 0 },
{ 0, -1 },
{ -1, 0 },
{ 0, 1 },
{ 1, 0 },
{ 0, -1 },
{ -1, 0 },
{ 0, 1 },
}
local laser_gate = {
type = 'fixed',
fixed = {
{-.5, -.3, -.2, .5, .3, .2},},}
minetest.register_node('ship:laser_gate', {
description = 'Laser Gate',
drawtype = 'mesh',
mesh = 'ship_laser_gate.obj',
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 10,
tiles = {'ship_laser_gate.png'},
groups = {breakable=1},
selection_box = laser_gate,
collision_box = laser_gate,
after_place_node = function(pos, placer, itemstack)
local node = minetest.get_node(pos)
local fdir = node.param2
local length = 0
if fdir == 1 then -- negative z
local pos1 = {x=pos.x, y=pos.y, z=pos.z-1}
local pos1_name = minetest.get_node(pos1).name
while pos1_name == 'air' and length <= 10 do
length = length + 1
pos1 = {x=pos1.x, y=pos1.y, z=pos1.z-1}
pos1_name = minetest.get_node(pos1).name
end
if length >= 1 then
minetest.set_node(pos, {name = 'ship:laser_gate_l', param2 = fdir})
for i = 1, (length-1) do
local place_pos = {x=pos.x, y=pos.y, z=pos.z-i}
minetest.set_node(place_pos, {name = 'ship:laser_gate_m', param2 = fdir})
end
local end_pos = {x=pos.x, y=pos.y, z=pos.z-length}
minetest.set_node(end_pos, {name = 'ship:laser_gate_r', param2 = fdir})
end
elseif fdir == 2 then -- negative x
local pos1 = {x=pos.x-1, y=pos.y, z=pos.z}
local pos1_name = minetest.get_node(pos1).name
while pos1_name == 'air' and length <= 10 do
length = length + 1
pos1 = {x=pos1.x-1, y=pos1.y, z=pos1.z}
pos1_name = minetest.get_node(pos1).name
end
if length >= 1 then
minetest.set_node(pos, {name = 'ship:laser_gate_l', param2 = fdir})
for i = 1, (length-1) do
local place_pos = {x=pos.x-i, y=pos.y, z=pos.z}
minetest.set_node(place_pos, {name = 'ship:laser_gate_m', param2 = fdir})
end
local end_pos = {x=pos.x-length, y=pos.y, z=pos.z}
minetest.set_node(end_pos, {name = 'ship:laser_gate_r', param2 = fdir})
end
elseif fdir == 3 then -- positive z
local pos1 = {x=pos.x, y=pos.y, z=pos.z+1}
local pos1_name = minetest.get_node(pos1).name
while pos1_name == 'air' and length <= 10 do
length = length + 1
pos1 = {x=pos1.x, y=pos1.y, z=pos1.z+1}
pos1_name = minetest.get_node(pos1).name
end
if length >= 1 then
minetest.set_node(pos, {name = 'ship:laser_gate_l', param2 = fdir})
for i = 1, (length-1) do
local place_pos = {x=pos.x, y=pos.y, z=pos.z+i}
minetest.set_node(place_pos, {name = 'ship:laser_gate_m', param2 = fdir})
end
local end_pos = {x=pos.x, y=pos.y, z=pos.z+length}
minetest.set_node(end_pos, {name = 'ship:laser_gate_r', param2 = fdir})
end
elseif fdir == 0 then -- positive x
local pos1 = {x=pos.x+1, y=pos.y, z=pos.z}
local pos1_name = minetest.get_node(pos1).name
while pos1_name == 'air' and length <= 10 do
length = length + 1
pos1 = {x=pos1.x+1, y=pos1.y, z=pos1.z}
pos1_name = minetest.get_node(pos1).name
end
if length >= 1 then
minetest.set_node(pos, {name = 'ship:laser_gate_l', param2 = fdir})
for i = 1, (length-1) do
local place_pos = {x=pos.x+i, y=pos.y, z=pos.z}
minetest.set_node(place_pos, {name = 'ship:laser_gate_m', param2 = fdir})
end
local end_pos = {x=pos.x+length, y=pos.y, z=pos.z}
minetest.set_node(end_pos, {name = 'ship:laser_gate_r', param2 = fdir})
end
end
end,
})
minetest.register_node('ship:laser_gate_l', {
drawtype = 'mesh',
mesh = 'ship_laser_gate_L.obj',
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 10,
tiles = {'ship_laser_gate.png'},
groups = {breakable=1, not_in_creative_inventory=1},
drop = 'ship:laser_gate',
selection_box = laser_gate,
collision_box = laser_gate,
})
minetest.register_node('ship:laser_gate_r', {
drawtype = 'mesh',
mesh = 'ship_laser_gate_R.obj',
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 10,
tiles = {'ship_laser_gate.png'},
groups = {breakable=1, not_in_creative_inventory=1},
drop = 'ship:laser_gate',
selection_box = laser_gate,
collision_box = laser_gate,
})
minetest.register_node('ship:laser_gate_m', {
drawtype = 'mesh',
mesh = 'ship_laser_gate_M.obj',
paramtype = 'light',
paramtype2 = 'facedir',
light_source = 10,
tiles = {'ship_laser_gate.png'},
groups = {breakable=1, not_in_creative_inventory=1},
drop = 'ship:laser_gate',
selection_box = laser_gate,
collision_box = laser_gate,
})

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,154 @@
# Blender v2.91.2 OBJ File: 'SpaceShip.blend'
# www.blender.org
o Laser_gate_Cube.029
v 0.500000 -0.312500 -0.062500
v 0.500000 -0.187500 -0.062500
v 0.500000 -0.312500 0.062500
v 0.500000 -0.187500 0.062500
v 0.437500 -0.312500 -0.062500
v 0.437500 -0.187500 -0.062500
v 0.437500 -0.312500 0.062500
v 0.437500 -0.187500 0.062500
v 0.500000 0.187500 -0.062500
v 0.500000 0.312500 -0.062500
v 0.500000 0.187500 0.062500
v 0.500000 0.312500 0.062500
v 0.437500 0.187500 -0.062500
v 0.437500 0.312500 -0.062500
v 0.437500 0.187500 0.062500
v 0.437500 0.312500 0.062500
v 0.437500 0.218750 -0.031250
v 0.437500 0.281250 -0.031250
v 0.437500 0.218750 0.031250
v 0.437500 0.281250 0.031250
v -0.437500 0.218750 -0.031250
v -0.437500 0.281250 -0.031250
v -0.437500 0.218750 0.031250
v -0.437500 0.281250 0.031250
v 0.437500 -0.281250 -0.031250
v 0.437500 -0.218750 -0.031250
v 0.437500 -0.281250 0.031250
v 0.437500 -0.218750 0.031250
v -0.437500 -0.281250 -0.031250
v -0.437500 -0.218750 -0.031250
v -0.437500 -0.281250 0.031250
v -0.437500 -0.218750 0.031250
v -0.500000 -0.312500 0.062500
v -0.500000 -0.187500 0.062500
v -0.500000 -0.312500 -0.062500
v -0.500000 -0.187500 -0.062500
v -0.437500 -0.312500 0.062500
v -0.437500 -0.187500 0.062500
v -0.437500 -0.312500 -0.062500
v -0.437500 -0.187500 -0.062500
v -0.500000 0.187500 0.062500
v -0.500000 0.312500 0.062500
v -0.500000 0.187500 -0.062500
v -0.500000 0.312500 -0.062500
v -0.437500 0.187500 0.062500
v -0.437500 0.312500 0.062500
v -0.437500 0.187500 -0.062500
v -0.437500 0.312500 -0.062500
vt 0.968750 0.781250
vt 0.968750 0.906250
vt 0.906250 0.906250
vt 0.906250 0.781250
vt 0.968750 0.093750
vt 0.968750 0.218750
vt 0.906250 0.218750
vt 0.906250 0.093750
vt 0.781250 0.218750
vt 0.781250 0.093750
vt 0.718750 0.218750
vt 0.718750 0.093750
vt 0.906250 0.031250
vt 0.781250 0.031250
vt 0.906250 0.281250
vt 0.781250 0.281250
vt 0.781250 0.906250
vt 0.781250 0.781250
vt 0.718750 0.906250
vt 0.718750 0.781250
vt 0.906250 0.718750
vt 0.781250 0.718750
vt 0.906250 0.968750
vt 0.781250 0.968750
vt 0.406250 0.937500
vt 0.343750 0.937500
vt 0.343750 0.062500
vt 0.406250 0.062500
vt 0.093750 0.937500
vt 0.031250 0.937500
vt 0.031250 0.062500
vt 0.093750 0.062500
vt 0.468750 0.062500
vt 0.531250 0.062500
vt 0.531250 0.937500
vt 0.468750 0.937500
vt 0.593750 0.062500
vt 0.593750 0.937500
vt 0.156250 0.062500
vt 0.218750 0.062500
vt 0.218750 0.937500
vt 0.156250 0.937500
vt 0.281250 0.062500
vt 0.281250 0.937500
vt 0.968750 0.781250
vt 0.968750 0.906250
vt 0.906250 0.906250
vt 0.906250 0.781250
vt 0.968750 0.093750
vt 0.968750 0.218750
vt 0.906250 0.218750
vt 0.906250 0.093750
vt 0.781250 0.218750
vt 0.781250 0.093750
vt 0.718750 0.218750
vt 0.718750 0.093750
vt 0.906250 0.031250
vt 0.781250 0.031250
vt 0.906250 0.281250
vt 0.781250 0.281250
vt 0.781250 0.906250
vt 0.781250 0.781250
vt 0.718750 0.906250
vt 0.718750 0.781250
vt 0.906250 0.718750
vt 0.781250 0.718750
vt 0.906250 0.968750
vt 0.781250 0.968750
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
vn 1.0000 0.0000 0.0000
s off
f 11/1/1 12/2/1 16/3/1 15/4/1
f 3/5/1 4/6/1 8/7/1 7/8/1
f 7/8/2 8/7/2 6/9/2 5/10/2
f 5/10/3 6/9/3 2/11/3 1/12/3
f 3/13/4 7/8/4 5/10/4 1/14/4
f 8/7/5 4/15/5 2/16/5 6/9/5
f 15/4/2 16/3/2 14/17/2 13/18/2
f 13/18/3 14/17/3 10/19/3 9/20/3
f 11/21/4 15/4/4 13/18/4 9/22/4
f 16/3/5 12/23/5 10/24/5 14/17/5
f 19/25/1 20/26/1 24/27/1 23/28/1
f 27/29/1 28/30/1 32/31/1 31/32/1
f 21/33/3 22/34/3 18/35/3 17/36/3
f 19/25/4 23/28/4 21/33/4 17/36/4
f 24/37/5 20/38/5 18/35/5 22/34/5
f 29/39/3 30/40/3 26/41/3 25/42/3
f 27/29/4 31/32/4 29/39/4 25/42/4
f 32/43/5 28/44/5 26/41/5 30/40/5
f 43/45/3 44/46/3 48/47/3 47/48/3
f 35/49/3 36/50/3 40/51/3 39/52/3
f 39/52/6 40/51/6 38/53/6 37/54/6
f 37/54/1 38/53/1 34/55/1 33/56/1
f 35/57/4 39/52/4 37/54/4 33/58/4
f 40/51/5 36/59/5 34/60/5 38/53/5
f 47/48/6 48/47/6 46/61/6 45/62/6
f 45/62/1 46/61/1 42/63/1 41/64/1
f 43/65/4 47/48/4 45/62/4 41/66/4
f 48/47/5 44/67/5 42/68/5 46/61/5

View File

@ -0,0 +1,103 @@
# Blender v2.91.2 OBJ File: 'SpaceShip.blend'
# www.blender.org
o Laser_gate_L_Cube.027
v 0.500000 -0.312500 -0.062500
v 0.500000 -0.187500 -0.062500
v 0.500000 -0.312500 0.062500
v 0.500000 -0.187500 0.062500
v 0.437500 -0.312500 -0.062500
v 0.437500 -0.187500 -0.062500
v 0.437500 -0.312500 0.062500
v 0.437500 -0.187500 0.062500
v 0.500000 0.187500 -0.062500
v 0.500000 0.312500 -0.062500
v 0.500000 0.187500 0.062500
v 0.500000 0.312500 0.062500
v 0.437500 0.187500 -0.062500
v 0.437500 0.312500 -0.062500
v 0.437500 0.187500 0.062500
v 0.437500 0.312500 0.062500
v 0.437500 0.218750 -0.031250
v 0.437500 0.281250 -0.031250
v 0.437500 0.218750 0.031250
v 0.437500 0.281250 0.031250
v -0.500000 0.218750 -0.031250
v -0.500000 0.281250 -0.031250
v -0.500000 0.218750 0.031250
v -0.500000 0.281250 0.031250
v 0.437500 -0.281250 -0.031250
v 0.437500 -0.218750 -0.031250
v 0.437500 -0.281250 0.031250
v 0.437500 -0.218750 0.031250
v -0.500000 -0.281250 -0.031250
v -0.500000 -0.218750 -0.031250
v -0.500000 -0.281250 0.031250
v -0.500000 -0.218750 0.031250
vt 0.968750 0.781250
vt 0.968750 0.906250
vt 0.906250 0.906250
vt 0.906250 0.781250
vt 0.968750 0.093750
vt 0.968750 0.218750
vt 0.906250 0.218750
vt 0.906250 0.093750
vt 0.781250 0.218750
vt 0.781250 0.093750
vt 0.718750 0.218750
vt 0.718750 0.093750
vt 0.906250 0.031250
vt 0.781250 0.031250
vt 0.906250 0.281250
vt 0.781250 0.281250
vt 0.781250 0.906250
vt 0.781250 0.781250
vt 0.718750 0.906250
vt 0.718750 0.781250
vt 0.906250 0.718750
vt 0.781250 0.718750
vt 0.906250 0.968750
vt 0.781250 0.968750
vt 0.406250 0.968750
vt 0.343750 0.968750
vt 0.343750 0.031250
vt 0.406250 0.031250
vt 0.093750 0.968750
vt 0.031250 0.968750
vt 0.031250 0.031250
vt 0.093750 0.031250
vt 0.468750 0.031250
vt 0.531250 0.031250
vt 0.531250 0.968750
vt 0.468750 0.968750
vt 0.593750 0.031250
vt 0.593750 0.968750
vt 0.156250 0.031250
vt 0.218750 0.031250
vt 0.218750 0.968750
vt 0.156250 0.968750
vt 0.281250 0.031250
vt 0.281250 0.968750
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 11/1/1 12/2/1 16/3/1 15/4/1
f 3/5/1 4/6/1 8/7/1 7/8/1
f 7/8/2 8/7/2 6/9/2 5/10/2
f 5/10/3 6/9/3 2/11/3 1/12/3
f 3/13/4 7/8/4 5/10/4 1/14/4
f 8/7/5 4/15/5 2/16/5 6/9/5
f 15/4/2 16/3/2 14/17/2 13/18/2
f 13/18/3 14/17/3 10/19/3 9/20/3
f 11/21/4 15/4/4 13/18/4 9/22/4
f 16/3/5 12/23/5 10/24/5 14/17/5
f 19/25/1 20/26/1 24/27/1 23/28/1
f 27/29/1 28/30/1 32/31/1 31/32/1
f 21/33/3 22/34/3 18/35/3 17/36/3
f 19/25/4 23/28/4 21/33/4 17/36/4
f 24/37/5 20/38/5 18/35/5 22/34/5
f 29/39/3 30/40/3 26/41/3 25/42/3
f 27/29/4 31/32/4 29/39/4 25/42/4
f 32/43/5 28/44/5 26/41/5 30/40/5

View File

@ -0,0 +1,52 @@
# Blender v2.91.2 OBJ File: 'SpaceShip.blend'
# www.blender.org
o Laser_gate_M_Cube.028
v -0.500000 0.218750 0.031250
v -0.500000 0.281250 0.031250
v -0.500000 0.218750 -0.031250
v -0.500000 0.281250 -0.031250
v 0.500000 0.218750 0.031250
v 0.500000 0.281250 0.031250
v 0.500000 0.218750 -0.031250
v 0.500000 0.281250 -0.031250
v -0.500000 -0.281250 0.031250
v -0.500000 -0.218750 0.031250
v -0.500000 -0.281250 -0.031250
v -0.500000 -0.218750 -0.031250
v 0.500000 -0.281250 0.031250
v 0.500000 -0.218750 0.031250
v 0.500000 -0.281250 -0.031250
v 0.500000 -0.218750 -0.031250
vt 0.406250 1.000000
vt 0.343750 1.000000
vt 0.343750 0.000000
vt 0.406250 0.000000
vt 0.093750 1.000000
vt 0.031250 1.000000
vt 0.031250 0.000000
vt 0.093750 0.000000
vt 0.468750 0.000000
vt 0.531250 0.000000
vt 0.531250 1.000000
vt 0.468750 1.000000
vt 0.593750 0.000000
vt 0.593750 1.000000
vt 0.156250 0.000000
vt 0.218750 0.000000
vt 0.218750 1.000000
vt 0.156250 1.000000
vt 0.281250 0.000000
vt 0.281250 1.000000
vn 0.0000 0.0000 -1.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 3/1/1 4/2/1 8/3/1 7/4/1
f 11/5/1 12/6/1 16/7/1 15/8/1
f 5/9/2 6/10/2 2/11/2 1/12/2
f 3/1/3 7/4/3 5/9/3 1/12/3
f 8/13/4 4/14/4 2/11/4 6/10/4
f 13/15/2 14/16/2 10/17/2 9/18/2
f 11/5/3 15/8/3 13/15/3 9/18/3
f 16/19/4 12/20/4 10/17/4 14/16/4

View File

@ -0,0 +1,103 @@
# Blender v2.91.2 OBJ File: 'SpaceShip.blend'
# www.blender.org
o Laser_gate_R_Cube.023
v -0.500000 -0.312500 0.062500
v -0.500000 -0.187500 0.062500
v -0.500000 -0.312500 -0.062500
v -0.500000 -0.187500 -0.062500
v -0.437500 -0.312500 0.062500
v -0.437500 -0.187500 0.062500
v -0.437500 -0.312500 -0.062500
v -0.437500 -0.187500 -0.062500
v -0.500000 0.187500 0.062500
v -0.500000 0.312500 0.062500
v -0.500000 0.187500 -0.062500
v -0.500000 0.312500 -0.062500
v -0.437500 0.187500 0.062500
v -0.437500 0.312500 0.062500
v -0.437500 0.187500 -0.062500
v -0.437500 0.312500 -0.062500
v -0.437500 0.218750 0.031250
v -0.437500 0.281250 0.031250
v -0.437500 0.218750 -0.031250
v -0.437500 0.281250 -0.031250
v 0.500000 0.218750 0.031250
v 0.500000 0.281250 0.031250
v 0.500000 0.218750 -0.031250
v 0.500000 0.281250 -0.031250
v -0.437500 -0.281250 0.031250
v -0.437500 -0.218750 0.031250
v -0.437500 -0.281250 -0.031250
v -0.437500 -0.218750 -0.031250
v 0.500000 -0.281250 0.031250
v 0.500000 -0.218750 0.031250
v 0.500000 -0.281250 -0.031250
v 0.500000 -0.218750 -0.031250
vt 0.968750 0.781250
vt 0.968750 0.906250
vt 0.906250 0.906250
vt 0.906250 0.781250
vt 0.968750 0.093750
vt 0.968750 0.218750
vt 0.906250 0.218750
vt 0.906250 0.093750
vt 0.781250 0.218750
vt 0.781250 0.093750
vt 0.718750 0.218750
vt 0.718750 0.093750
vt 0.906250 0.031250
vt 0.781250 0.031250
vt 0.906250 0.281250
vt 0.781250 0.281250
vt 0.781250 0.906250
vt 0.781250 0.781250
vt 0.718750 0.906250
vt 0.718750 0.781250
vt 0.906250 0.718750
vt 0.781250 0.718750
vt 0.906250 0.968750
vt 0.781250 0.968750
vt 0.406250 0.968750
vt 0.343750 0.968750
vt 0.343750 0.031250
vt 0.406250 0.031250
vt 0.093750 0.968750
vt 0.031250 0.968750
vt 0.031250 0.031250
vt 0.093750 0.031250
vt 0.468750 0.031250
vt 0.531250 0.031250
vt 0.531250 0.968750
vt 0.468750 0.968750
vt 0.593750 0.031250
vt 0.593750 0.968750
vt 0.156250 0.031250
vt 0.218750 0.031250
vt 0.218750 0.968750
vt 0.156250 0.968750
vt 0.281250 0.031250
vt 0.281250 0.968750
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 11/1/1 12/2/1 16/3/1 15/4/1
f 3/5/1 4/6/1 8/7/1 7/8/1
f 7/8/2 8/7/2 6/9/2 5/10/2
f 5/10/3 6/9/3 2/11/3 1/12/3
f 3/13/4 7/8/4 5/10/4 1/14/4
f 8/7/5 4/15/5 2/16/5 6/9/5
f 15/4/2 16/3/2 14/17/2 13/18/2
f 13/18/3 14/17/3 10/19/3 9/20/3
f 11/21/4 15/4/4 13/18/4 9/22/4
f 16/3/5 12/23/5 10/24/5 14/17/5
f 19/25/1 20/26/1 24/27/1 23/28/1
f 27/29/1 28/30/1 32/31/1 31/32/1
f 21/33/3 22/34/3 18/35/3 17/36/3
f 19/25/4 23/28/4 21/33/4 17/36/4
f 24/37/5 20/38/5 18/35/5 22/34/5
f 29/39/3 30/40/3 26/41/3 25/42/3
f 27/29/4 31/32/4 29/39/4 25/42/4
f 32/43/5 28/44/5 26/41/5 30/40/5

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -21,3 +21,27 @@ Licensed as Creative Commons 0
Savanna from https://freesound.org/people/reinsamba/sounds/58230/
Licensed as Creative Commons Attribution
Sounds by Nathan Salapat, CC by SA
engines
small river by HerbertBoland CCA
https://freesound.org/people/HerbertBoland/sounds/28168/
pub_ambience by Zacki_17 CC0
https://freesound.org/people/Zacki_17/sounds/369545/
Sounds from Sonniss.com GDC 2018
LICENSE: ROYALTY-FREE | contact: timothy@sonniss.com | @sonnissdotcom
office_noise
traffic_intersection
construction_noise
washing_machine
subway
engines
energy_wave
pulsing_vibrations
radio_static
spraying_water
underwater
coyote

View File

@ -1,5 +1,6 @@
local sounds_table = {
'coniferous_forest', 'deciduous_forest', 'desert', 'grassland', 'icesheet', 'ocean_beach', 'rainforest,savanna'
'coniferous_forest', 'deciduous_forest', 'desert', 'grassland', 'icesheet', 'ocean_beach', 'rainforest' , 'savanna', 'engines', 'office_noise', 'traffic_intersection', 'construction_noise',
'washing_machine', 'subway', 'energy_wave', 'pulsing_vibrations', 'radio_static', 'spraying_water', 'underwater', 'coyote', 'small_river', 'pub_ambience'
}
local function formspec_selection(sound, dist)
@ -15,8 +16,6 @@ end
minetest.register_node('sounds:speaker', {
description = 'Speaker',
tiles = {'sounds_speaker.png'},
--drawtype = 'mesh',
--mesh = 'sounds_speaker.obj',
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
@ -45,6 +44,7 @@ minetest.register_node('sounds:speaker', {
if fields ['save'] then
meta:set_string('sound', fields.Sound)
meta:set_int('dist', fields.Distance)
minetest.sound_play(fields.Sound, {to_player = name, gain = 1})
for i, sounds_index in ipairs(sounds_table) do
if sounds_index == fields.Sound then
meta:set_int('sound_index', i)
@ -66,3 +66,15 @@ minetest.register_abm({
minetest.sound_play(sound, {pos = pos, gain = 1, max_hear_distance = dist})
end,
})
minetest.register_abm({
nodenames = {'group:plays_sound'},
interval = 60,
chance = 10,
action = function(pos)
local node = minetest.get_node(pos)
local def = minetest.registered_nodes[node.name]
local sound = def._sound
minetest.sound_play(sound, {pos = pos, gain = 1, max_hear_distance = 5})
end
})

Binary file not shown.

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