Added ropbox

master
Nathan Salapat 2022-08-11 21:58:16 -05:00
parent 80fd11d709
commit 1528c1f964
9 changed files with 234 additions and 18 deletions

View File

@ -102,6 +102,7 @@ dofile(minetest.get_modpath('furniture')..'/news.lua')
dofile(minetest.get_modpath('furniture')..'/office.lua') --Things you'd find in an office.
dofile(minetest.get_modpath('furniture')..'/outdoors.lua')
dofile(minetest.get_modpath('furniture')..'/retail_shelving.lua') --Shelves like you'd find in a store.
dofile(minetest.get_modpath('furniture')..'/ropebox.lua')
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,34 @@
# Blender v3.2.1 OBJ File: 'furniture.blend'
# www.blender.org
o Ropebox_rope_end_Cube.072
v -0.062500 -0.187500 0.062500
v -0.062500 0.500000 0.062500
v -0.062500 -0.187500 -0.062500
v -0.062500 0.500000 -0.062500
v 0.062500 -0.187500 0.062500
v 0.062500 0.500000 0.062500
v 0.062500 -0.187500 -0.062500
v 0.062500 0.500000 -0.062500
vt 0.125000 0.062500
vt 0.125000 0.406250
vt 0.062500 0.406250
vt 0.062500 0.062500
vt 0.000000 0.406250
vt 0.000000 0.062500
vt 0.250000 0.062500
vt 0.250000 0.406250
vt 0.187500 0.406250
vt 0.187500 0.062500
vt 0.062500 0.000000
vt 0.000000 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
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 1/11/5 3/4/5 7/6/5 5/12/5

View File

@ -0,0 +1,30 @@
# Blender v3.2.1 OBJ File: 'furniture.blend'
# www.blender.org
o Ropebox_rope_mid_Cube.069
v -0.062500 -0.500000 0.062500
v -0.062500 0.500000 0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 0.500000 -0.062500
v 0.062500 -0.500000 0.062500
v 0.062500 0.500000 0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 0.500000 -0.062500
vt 0.875000 0.218750
vt 0.875000 0.718750
vt 0.812500 0.718750
vt 0.812500 0.218750
vt 0.750000 0.718750
vt 0.750000 0.218750
vt 1.000000 0.218750
vt 1.000000 0.718750
vt 0.937500 0.718750
vt 0.937500 0.218750
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
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

View File

@ -0,0 +1,82 @@
# Blender v3.2.1 OBJ File: 'furniture.blend'
# www.blender.org
o Ropebox_Cube.068
v -0.125000 0.062500 0.187500
v -0.125000 0.437500 0.187500
v -0.125000 0.062500 -0.187500
v -0.125000 0.437500 -0.187500
v 0.125000 0.062500 0.187500
v 0.125000 0.437500 0.187500
v 0.125000 0.062500 -0.187500
v 0.125000 0.437500 -0.187500
v -0.062500 0.437500 0.125000
v -0.062500 0.500000 0.125000
v -0.062500 0.437500 -0.125000
v -0.062500 0.500000 -0.125000
v 0.062500 0.437500 0.125000
v 0.062500 0.500000 0.125000
v 0.062500 0.437500 -0.125000
v 0.062500 0.500000 -0.125000
v -0.062500 -0.500000 0.062500
v -0.062500 0.062500 0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 0.062500 -0.062500
v 0.062500 -0.500000 0.062500
v 0.062500 0.062500 0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 0.062500 -0.062500
vt 0.312500 0.687500
vt 0.312500 0.875000
vt 0.125000 0.875000
vt 0.125000 0.687500
vt 0.000000 0.875000
vt 0.000000 0.687500
vt 0.625000 0.687500
vt 0.625000 0.875000
vt 0.437500 0.875000
vt 0.437500 0.687500
vt 0.625000 0.562500
vt 0.437500 0.562500
vt 0.625000 1.000000
vt 0.437500 1.000000
vt 0.187500 1.000000
vt 0.187500 0.968750
vt 0.296875 0.968750
vt 0.296875 1.000000
vt 0.359375 0.968750
vt 0.359375 1.000000
vt 0.000000 1.000000
vt 0.000000 0.968750
vt 0.125000 0.968750
vt 0.125000 1.000000
vt 0.875000 0.718750
vt 0.875000 1.000000
vt 0.812500 1.000000
vt 0.812500 0.718750
vt 0.750000 1.000000
vt 0.750000 0.718750
vt 1.000000 0.718750
vt 1.000000 1.000000
vt 0.937500 1.000000
vt 0.937500 0.718750
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/7/3 8/8/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/7/5 5/10/5 1/12/5
f 8/8/6 4/13/6 2/14/6 6/9/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/21/3 16/22/3 14/23/3 13/24/3
f 13/24/4 14/23/4 10/16/4 9/15/4
f 17/25/1 18/26/1 20/27/1 19/28/1
f 19/28/2 20/27/2 24/29/2 23/30/2
f 23/31/3 24/32/3 22/33/3 21/34/3
f 21/34/4 22/33/4 18/26/4 17/25/4

View File

@ -0,0 +1,85 @@
local function after_dig_node(pos)
local node = minetest.get_node(pos)
local above_pos = {x=pos.x, y=pos.y+1, z=pos.z}
local above_name = minetest.get_node(above_pos).name
if above_name == 'furniture:ropebox_mid' then
minetest.set_node(above_pos, {name = 'furniture:ropebox_end', param2 = node.param2})
end
local below_pos = {x=pos.x, y=pos.y-1, z=pos.z}
local below_name = minetest.get_node(below_pos).name
while below_name == 'furniture:ropebox_mid' do
minetest.remove_node(below_pos)
below_pos = {x=below_pos.x, y=below_pos.y-1, z=below_pos.z}
below_name = minetest.get_node(below_pos).name
end
if below_name == 'furniture:ropebox_end' then
minetest.remove_node(below_pos)
end
end
minetest.register_node('furniture:ropebox_top', {
description = 'Ropbox',
drawtype = 'mesh',
mesh = 'furniture_ropebox_top.obj',
tiles = {'furniture_ropebox.png'},
paramtype = 'light',
paramtype2 = 'facedir',
climbable = true,
sunlight_propagates = true,
walkable = false,
groups = {breakable=1},
after_place_node = function(pos)
local node = minetest.get_node(pos)
local below_pos = {x=pos.x, y=pos.y-1, z=pos.z}
local below_name = minetest.get_node(below_pos).name
while below_name == 'air' do
minetest.set_node(below_pos, {name = 'furniture:ropebox_mid', param2 = node.param2})
below_pos = {x=below_pos.x, y=below_pos.y-1, z=below_pos.z}
below_name = minetest.get_node(below_pos).name
end
if below_name ~= 'air' then
local pos = {x=below_pos.x, y=below_pos.y+1, z=below_pos.z}
minetest.set_node(pos, {name = 'furniture:ropebox_end', param2 = node.param2})
end
end,
after_dig_node = after_dig_node
})
local box = {
type = 'fixed',
fixed = {
{-.2, -.5, -.2, .2, .5, .2}}}
minetest.register_node('furniture:ropebox_mid', {
description = 'Ropbox',
drawtype = 'mesh',
mesh = 'furniture_ropebox_mid.obj',
tiles = {'furniture_ropebox.png'},
paramtype = 'light',
paramtype2 = 'facedir',
drop = '',
climbable = true,
sunlight_propagates = true,
walkable = false,
selection_box = box,
collision_box = box,
groups = {breakable=1, not_in_creative_inventory=1},
after_dig_node = after_dig_node
})
minetest.register_node('furniture:ropebox_end', {
description = 'Ropbox',
drawtype = 'mesh',
mesh = 'furniture_ropebox_end.obj',
tiles = {'furniture_ropebox.png'},
paramtype = 'light',
paramtype2 = 'facedir',
drop = '',
climbable = true,
sunlight_propagates = true,
walkable = false,
selection_box = box,
collision_box = box,
groups = {breakable=1, not_in_creative_inventory=1},
after_dig_node = after_dig_node
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -16,19 +16,3 @@ levels.register_basic('scifi_14', 'Sci-fi 14', 'hard')
levels.register_basic('scifi_15', 'Sci-fi 15', 'hard')
levels.register_basic('scifi_16', 'Sci-fi 16', 'hard')
levels.register_basic('scifi_17', 'Sci-fi 17', 'hard')
minetest.register_abm({ --This can be removed in a few weeks/months, as all levels:floor nodes should have been replaced.
label = 'convert bad nodes to color nodes.',
nodenames = {'levels:floor_red', 'levels:floor_cyan', 'levels:floor_white'},
interval = 1,
chance = 1,
action = function(pos, node)
if node.name == 'levels:floor_red' then
minetest.set_node(pos, {name = 'color:red_blocks', param2 = 80})
elseif node.name == 'levels:floor_cyan' then
minetest.set_node(pos, {name = 'color:aqua_blocks', param2 = 42})
elseif node.name == 'levels:floor_white' then
minetest.set_node(pos, {name = 'color:grey_blocks', param2 = 60})
end
end
})

View File

@ -112,7 +112,7 @@ minetest.register_node('lobby:button_0', {
if owner == '' then
minetest.show_formspec(player_name, 'lobby:button_claim', button_claim(pos))
elseif owner == player_name or minetest.check_player_privs(clicker, {server = true}) then
minetest.show_formspec(player_name, 'lobby:button_create', button_create(id, name, player_count, xp, pos, desc, builders, solo))
minetest.show_formspec(player_name, 'lobby:button_create', button_create(id, name, 3, 50, pos, desc, builders, solo))
else
minetest.show_formspec(player_name, 'lobby:button_display', button_display(id, name, owner, player_count, xp, pos, desc))
lobby.stat[player_name] = id

View File

@ -360,7 +360,7 @@ minetest.register_node('ship:energy_support', {
local beam_select = {
type = 'fixed',
fixed = {
{-.2, -.5, -.2, .2, .5, .2},},}
{-.2, -.5, -.2, .2, .5, .2}}}
minetest.register_node('ship:energy_beam', {
drawtype = 'mesh',