New furniture, and stashes.
|
@ -76,7 +76,7 @@ if minetest.global_exists("sfinv") then -- sfinv installed
|
|||
get = function(self, player, context)
|
||||
local can_worldedit = minetest.check_player_privs(player, {worldedit=true})
|
||||
local fs = orig_get(self, player, context)
|
||||
return fs .. (can_worldedit and "image_button[7,4;1,1;inventory_plus_worldedit_gui.png;worldedit_gui;]" or "")
|
||||
return fs .. (can_worldedit and "image_button[0,4;1,1;inventory_plus_worldedit_gui.png;worldedit_gui;]" or "")
|
||||
end
|
||||
})
|
||||
|
||||
|
|
|
@ -1,98 +1,98 @@
|
|||
minetest.register_node('buildingblocks:blue_box', {
|
||||
description = 'Blue box',
|
||||
description = 'Blue Box',
|
||||
tiles = {
|
||||
'blue_box_top.png',
|
||||
'blue_box_top.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png'
|
||||
'bb_blue_box_top.png',
|
||||
'bb_blue_box_top.png',
|
||||
'bb_blue_box_side.png',
|
||||
'bb_blue_box_side.png',
|
||||
'bb_blue_box_side.png',
|
||||
'bb_blue_box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:green_box', {
|
||||
description = 'Green box',
|
||||
description = 'Green Box',
|
||||
tiles = {
|
||||
'box_top.png',
|
||||
'box_top.png',
|
||||
'box_side.png',
|
||||
'box_side.png',
|
||||
'box_side.png',
|
||||
'box_side.png'
|
||||
'bb_green_box_top.png',
|
||||
'bb_green_box_top.png',
|
||||
'bb_green_box_side.png',
|
||||
'bb_green_box_side.png',
|
||||
'bb_green_box_side.png',
|
||||
'bb_green_box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:red_box', {
|
||||
description = 'Red box',
|
||||
description = 'Red Box',
|
||||
tiles = {
|
||||
'red_box_top.png',
|
||||
'red_box_top.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png'
|
||||
'bb_red_box_top.png',
|
||||
'bb_red_box_top.png',
|
||||
'bb_red_box_side.png',
|
||||
'bb_red_box_side.png',
|
||||
'bb_red_box_side.png',
|
||||
'bb_red_box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor', {
|
||||
description = 'floor',
|
||||
tiles = {'floor.png'},
|
||||
description = 'Grey Floor',
|
||||
tiles = {'bb_floor.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_two', {
|
||||
description = 'another floor',
|
||||
tiles = {'floor_two.png'},
|
||||
description = 'Red Tile Floor',
|
||||
tiles = {'bb_floor_two.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_three', {
|
||||
description = 'Another floor',
|
||||
tiles = {'floor_three.png'},
|
||||
description = 'Beige Floor',
|
||||
tiles = {'bb_floor_three.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_four', {
|
||||
description = 'Another Floor',
|
||||
tiles = {'floor_four.png'},
|
||||
description = 'Tan Floor',
|
||||
tiles = {'bb_floor_four.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_five', {
|
||||
description = 'ANOTHER Floor',
|
||||
tiles = {'floor_fifth.png'},
|
||||
description = 'Green Floor',
|
||||
tiles = {'bb_floor_fifth.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_six', {
|
||||
description = 'ANOTHER FLOOR',
|
||||
tiles = {'floor_six.png'},
|
||||
description = 'Checkerboard Floor',
|
||||
tiles = {'bb_floor_six.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:floor_seven', {
|
||||
description = 'AnOtHeR FlOoR',
|
||||
tiles = {'floor_seven.png'},
|
||||
description = 'Loopy Floor',
|
||||
tiles = {'bb_floor_seven.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:wall', {
|
||||
description = 'Wall',
|
||||
tiles = {'wall.png'},
|
||||
description = 'Blue Alien Wall',
|
||||
tiles = {'bb_wall.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:caution_block', {
|
||||
description = 'caution block',
|
||||
tiles = {{name = 'caution.png', align_style='world', scale=4}},
|
||||
description = 'Caution Block',
|
||||
tiles = {{name = 'bb_caution.png', align_style='world', scale=4}},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('buildingblocks:vent', {
|
||||
description = 'vent block',
|
||||
tiles = {'vent_top.png'},
|
||||
description = 'Vent Block',
|
||||
tiles = {'bb_vent_top.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
|
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 722 B |
Before Width: | Height: | Size: 828 B |
Before Width: | Height: | Size: 870 B |
Before Width: | Height: | Size: 692 B |
Before Width: | Height: | Size: 680 B |
Before Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 928 B |
Before Width: | Height: | Size: 687 B |
Before Width: | Height: | Size: 836 B |
Before Width: | Height: | Size: 653 B |
Before Width: | Height: | Size: 921 B |
Before Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 655 B |
|
@ -211,7 +211,7 @@ local function show_bulletin(player, board_name, index)
|
|||
local stack = ItemStack(def.cost)
|
||||
local player_inventory = minetest.get_inventory({type="player", name=player_name})
|
||||
tip = S("Post bulletin with this icon at the cost of 1 post-it note")
|
||||
has_cost = player_inventory:contains_item("main", stack)
|
||||
has_cost = player_inventory:contains_item("builder", stack) or player_inventory:contains_item("player", def.cost)
|
||||
else
|
||||
tip = S("Post bulletin with this icon")
|
||||
has_cost = true
|
||||
|
@ -319,7 +319,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
local player_inventory = minetest.get_inventory({type="player", name=player_name})
|
||||
local has_cost = true
|
||||
if def.cost then
|
||||
has_cost = player_inventory:contains_item("main", def.cost)
|
||||
has_cost = player_inventory:contains_item("builder", def.cost) or player_inventory:contains_item("player", def.cost)
|
||||
end
|
||||
|
||||
if fields.text ~= "" and (has_cost or admin) then
|
||||
|
|
|
@ -26,8 +26,8 @@ for i in ipairs(dye_table) do
|
|||
{-.5, 0, 1.35, .5, .5, 1.5}}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
end
|
||||
|
|
|
@ -74,8 +74,8 @@ function furniture.curtain_removal(pos, node, digger)
|
|||
minetest.remove_node(pos)
|
||||
|
||||
local player_inv = digger:get_inventory()
|
||||
if player_inv:room_for_item('main', 'furniture:curtain_'..height..'s_'..color..'_1') then
|
||||
player_inv:add_item('main', 'furniture:curtain_'..height..'s_'..color..'_1')
|
||||
if player_inv:room_for_item('player', 'furniture:curtain_'..height..'s_'..color..'_1') then
|
||||
player_inv:add_item('player', 'furniture:curtain_'..height..'s_'..color..'_1')
|
||||
else
|
||||
local drop_pos = digger:get_pos()
|
||||
minetest.add_item(drop_pos, 'furniture:curtain_'..height..'s_'..color..'_1')
|
||||
|
|
|
@ -15,8 +15,8 @@ minetest.register_node('furniture:fence_1_a', {
|
|||
fixed = {-.5, -.5, -.0625, .5, .5, .0625},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:fence_1_b', {
|
||||
|
@ -42,8 +42,8 @@ minetest.register_node('furniture:fence_1_b', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:fence_1_c', {
|
||||
|
@ -69,8 +69,8 @@ minetest.register_node('furniture:fence_1_c', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:fence_1_d', {
|
||||
|
@ -98,8 +98,8 @@ minetest.register_node('furniture:fence_1_d', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:fence_1_e', {
|
||||
|
@ -127,8 +127,8 @@ minetest.register_node('furniture:fence_1_e', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:fence_1_f', {
|
||||
|
@ -158,6 +158,6 @@ minetest.register_node('furniture:fence_1_f', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
|
|
@ -1,52 +1,6 @@
|
|||
local esc = minetest.formspec_escape
|
||||
local title, text = '', ''
|
||||
|
||||
function furniture.storage_24_form(pos, name)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local spos = pos.x .. "," .. pos.y .. "," .. pos.z
|
||||
local existing_name = meta:get_string('infotext')
|
||||
name = name or existing_name
|
||||
local formspec =
|
||||
'size[8,7.75]'..
|
||||
'list[nodemeta:'..spos..';main;0,0;8,3;]'..
|
||||
'field[1.3,3.3;2,1;description;;'..name..']'..
|
||||
'button[3,3;1,1;save;Save]'..
|
||||
'button[4,3;1,1;sort;Sort]'..
|
||||
'list[current_player;main;0,4;8,4;]'..
|
||||
'listring[]'
|
||||
return formspec
|
||||
end
|
||||
|
||||
function furniture.storage_32_form(pos, name)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local existing_name = meta:get_string('infotext')
|
||||
name = name or existing_name
|
||||
local formspec =
|
||||
'size[8,8.75]'..
|
||||
'list[current_name;main;0,0;8,4;]'..
|
||||
'field[1.3,4.3;2,1;description;;'..name..']'..
|
||||
'button[3,4;1,1;save;Save]'..
|
||||
'button[4,4;1,1;sort;Sort]'..
|
||||
'list[current_player;main;0,5;8,4;]'..
|
||||
'listring[]'
|
||||
return formspec
|
||||
end
|
||||
|
||||
function furniture.storage_60_form(pos, name)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local existing_name = meta:get_string('infotext')
|
||||
name = name or existing_name
|
||||
local formspec =
|
||||
'size[10,10.75]'..
|
||||
'list[current_name;main;0,0;10,6;]'..
|
||||
'field[2.3,6.3;2,1;description;;'..name..']'..
|
||||
'button[4,6;1,1;save;Save]'..
|
||||
'button[5,6;1,1;sort;Sort]'..
|
||||
'list[current_player;main;1,7;8,4;]'..
|
||||
'listring[]'
|
||||
return formspec
|
||||
end
|
||||
|
||||
local lectern_formspec =
|
||||
'size[11,8]'..
|
||||
'no_prepend[]'..
|
||||
|
|
|
@ -19,6 +19,35 @@ furniture.dyes = {
|
|||
{'white', 'White', '#ffffff'},
|
||||
}
|
||||
|
||||
furniture.playing = function(player) -- Is player playing or building a level?
|
||||
local name = player:get_player_name()
|
||||
if minetest.check_player_privs(player, {creative = true}) then
|
||||
return false --Has creative, is building level
|
||||
else
|
||||
return true --Does not have creative, in playing level
|
||||
end
|
||||
end
|
||||
|
||||
furniture.punch = function(pos, node, puncher, pointed_thing)
|
||||
if furniture.playing(puncher) then
|
||||
furniture.stash_punch(pos, node, puncher, pointed_thing)
|
||||
else
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local paramtype2 = def.paramtype2
|
||||
if paramtype2 == 'colorfacedir' then
|
||||
furniture.dye_more(pos, node, puncher, pointed_thing)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
furniture.right_click = function(pos, node, clicker)
|
||||
if furniture.playing(clicker) then
|
||||
--nothing yet
|
||||
else
|
||||
furniture.dye_less(pos, node, clicker)
|
||||
end
|
||||
end
|
||||
|
||||
furniture.stash_punch = function(pos, node, puncher, pointed_thing)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
|
|
@ -14,9 +14,9 @@ minetest.register_node('furniture:cabinet_wall', {
|
|||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.3, .5, .5, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:cabinet_counter', {
|
||||
|
@ -35,9 +35,9 @@ minetest.register_node('furniture:cabinet_counter', {
|
|||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.5, .5, .5, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:microwave', {
|
||||
|
@ -57,3 +57,31 @@ minetest.register_node('furniture:microwave', {
|
|||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:oven', {
|
||||
description = 'Oven',
|
||||
drawtype = 'mesh',
|
||||
mesh = 'furniture_oven.obj',
|
||||
tiles = {'furniture_oven.png'},
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:refrigerator_industrial', {
|
||||
description = 'Industrial Refrigerator',
|
||||
drawtype = 'mesh',
|
||||
mesh = 'furniture_refrigerator_industrial.obj',
|
||||
tiles = {'furniture_refrigerator_industrial.png'},
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.375, .5, 1.5, .5},
|
||||
},
|
||||
collision_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.375, .5, 1.5, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
|
|
@ -15,7 +15,7 @@ minetest.register_node('furniture:lectern', {
|
|||
type = 'fixed',
|
||||
fixed = {-.3, -.5, -.3, .3, .5, .3},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
groups = {breakable=1, stash=1},
|
||||
after_place_node = function(pos, placer)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string('owner', placer:get_player_name())
|
||||
|
@ -45,5 +45,5 @@ minetest.register_node('furniture:lectern', {
|
|||
minetest.log("action", (player_name or "").." wrote \""..fields.title.."\" to lectern at "..minetest.pos_to_string(pos))
|
||||
end
|
||||
end,
|
||||
on_punch = furniture.dye_more
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
|
|
@ -15,3 +15,23 @@ minetest.register_node('furniture:ceiling_fan', {
|
|||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:grandfather_clock', {
|
||||
description = 'Grandfather Clock',
|
||||
drawtype = 'mesh',
|
||||
mesh = 'furniture_grandfather_clock.obj',
|
||||
tiles = {'furniture_grandfather_clock.png'},
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.325, -.5, 0, .325, 1.4375, .4375},
|
||||
},
|
||||
collision_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.325, -.5, 0, .325, 1.4375, .4375},
|
||||
},
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
# Blender v2.93.5 OBJ File: 'furniture.blend'
|
||||
# www.blender.org
|
||||
o Grandfather_clock_Cube.030
|
||||
v -0.375000 -0.500000 0.437500
|
||||
v -0.375000 -0.187500 0.437500
|
||||
v -0.375000 -0.500000 0.000000
|
||||
v -0.375000 -0.187500 0.000000
|
||||
v 0.375000 -0.500000 0.437500
|
||||
v 0.375000 -0.187500 0.437500
|
||||
v 0.375000 -0.500000 0.000000
|
||||
v 0.375000 -0.187500 0.000000
|
||||
v -0.312500 -0.187500 0.437500
|
||||
v -0.312500 1.375000 0.437500
|
||||
v -0.312500 -0.187500 0.062500
|
||||
v -0.312500 1.375000 0.062500
|
||||
v 0.312500 -0.187500 0.437500
|
||||
v 0.312500 1.375000 0.437500
|
||||
v 0.312500 -0.187500 0.062500
|
||||
v 0.312500 1.375000 0.062500
|
||||
v -0.375000 1.375000 0.437500
|
||||
v -0.375000 1.437500 0.437500
|
||||
v -0.375000 1.375000 0.000000
|
||||
v -0.375000 1.437500 0.000000
|
||||
v 0.375000 1.375000 0.437500
|
||||
v 0.375000 1.437500 0.437500
|
||||
v 0.375000 1.375000 0.000000
|
||||
v 0.375000 1.437500 0.000000
|
||||
v -0.312500 -0.187500 0.187500
|
||||
v -0.312500 1.375000 0.187500
|
||||
v 0.312500 -0.187500 0.187500
|
||||
v 0.312500 1.375000 0.187500
|
||||
vt 0.343750 0.187500
|
||||
vt 0.265625 0.187500
|
||||
vt 0.265625 0.078125
|
||||
vt 0.343750 0.078125
|
||||
vt 0.265625 0.000000
|
||||
vt 0.078125 0.078125
|
||||
vt 0.078125 0.000000
|
||||
vt -0.000000 0.078125
|
||||
vt 0.078125 0.187500
|
||||
vt -0.000000 0.187500
|
||||
vt 0.078125 0.265625
|
||||
vt 0.265625 0.265625
|
||||
vt 0.000000 0.281250
|
||||
vt 0.000000 0.671875
|
||||
vt 0.093750 0.671875
|
||||
vt 0.093750 0.281250
|
||||
vt 0.250000 0.671875
|
||||
vt 0.250000 0.281250
|
||||
vt 0.343750 0.671875
|
||||
vt 0.343750 0.281250
|
||||
vt 0.500000 0.671875
|
||||
vt 0.500000 0.281250
|
||||
vt 0.265625 0.687500
|
||||
vt 0.281250 0.687500
|
||||
vt 0.281250 0.796875
|
||||
vt 0.265625 0.796875
|
||||
vt 0.265625 0.812500
|
||||
vt 0.078125 0.812500
|
||||
vt 0.078125 0.796875
|
||||
vt 0.062500 0.796875
|
||||
vt 0.062500 0.687500
|
||||
vt 0.078125 0.687500
|
||||
vt 0.078125 0.937500
|
||||
vt 0.078125 0.921875
|
||||
vt 0.265625 0.921875
|
||||
vt 0.265625 0.937500
|
||||
vt 0.671875 0.000000
|
||||
vt 0.671875 0.390625
|
||||
vt 0.515625 0.390625
|
||||
vt 0.515625 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/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 10/14/1 12/15/1 11/16/1
|
||||
f 8/6/5 4/3/5 2/2/5 6/9/5
|
||||
f 11/16/2 12/15/2 16/17/2 15/18/2
|
||||
f 15/18/3 16/17/3 14/19/3 13/20/3
|
||||
f 13/20/4 14/19/4 10/21/4 9/22/4
|
||||
f 17/23/1 18/24/1 20/25/1 19/26/1
|
||||
f 19/26/2 20/27/2 24/28/2 23/29/2
|
||||
f 23/29/3 24/30/3 22/31/3 21/32/3
|
||||
f 21/33/4 22/34/4 18/35/4 17/36/4
|
||||
f 24/28/5 20/27/5 18/35/5 22/34/5
|
||||
f 17/23/6 19/26/6 23/29/6 21/32/6
|
||||
f 25/37/2 26/38/2 28/39/2 27/40/2
|
|
@ -0,0 +1,88 @@
|
|||
# Blender v2.93.5 OBJ File: 'furniture.blend'
|
||||
# www.blender.org
|
||||
o Oven_Cube.032
|
||||
v -0.500000 -0.500000 0.375000
|
||||
v -0.500000 0.500000 0.375000
|
||||
v -0.500000 -0.500000 -0.437500
|
||||
v -0.500000 0.500000 -0.437500
|
||||
v 0.500000 -0.500000 0.375000
|
||||
v 0.500000 0.500000 0.375000
|
||||
v 0.500000 -0.500000 -0.437500
|
||||
v 0.500000 0.500000 -0.437500
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.687500 0.375000
|
||||
v -0.500000 0.687500 0.375000
|
||||
v 0.500000 0.687500 0.500000
|
||||
v -0.500000 0.687500 0.500000
|
||||
v -0.375000 0.250000 -0.500000
|
||||
v 0.375000 0.250000 -0.500000
|
||||
v 0.375000 0.312500 -0.500000
|
||||
v -0.375000 0.312500 -0.500000
|
||||
v -0.375000 0.250000 -0.437500
|
||||
v 0.375000 0.250000 -0.437500
|
||||
v 0.375000 0.312500 -0.437500
|
||||
v -0.375000 0.312500 -0.437500
|
||||
vt 0.937500 0.000000
|
||||
vt 0.937500 0.250000
|
||||
vt 0.734375 0.250000
|
||||
vt 0.734375 0.000000
|
||||
vt 0.484375 0.250000
|
||||
vt 0.484375 0.000000
|
||||
vt 0.281250 0.250000
|
||||
vt 0.281250 0.000000
|
||||
vt 0.484375 0.453125
|
||||
vt 0.734375 0.453125
|
||||
vt 0.734375 0.500000
|
||||
vt 0.484375 0.500000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.250000
|
||||
vt 0.000000 0.250000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.968750 0.000000
|
||||
vt 0.968750 0.250000
|
||||
vt 0.210938 0.328125
|
||||
vt 0.210938 0.343750
|
||||
vt 0.023438 0.343750
|
||||
vt 0.023438 0.328125
|
||||
vt 0.734375 0.531250
|
||||
vt 0.484375 0.531250
|
||||
vt 0.968750 0.296875
|
||||
vt 0.937500 0.296875
|
||||
vt 0.281250 0.296875
|
||||
vt 0.250000 0.296875
|
||||
vt 0.000000 0.296875
|
||||
vt 0.007812 0.343750
|
||||
vt 0.007812 0.328125
|
||||
vt 0.023438 0.312500
|
||||
vt 0.210938 0.312500
|
||||
vt 0.226562 0.328125
|
||||
vt 0.226562 0.343750
|
||||
vt 0.210938 0.359375
|
||||
vt 0.023438 0.359375
|
||||
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 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 6/9/2 2/10/2 14/11/2 13/12/2
|
||||
f 8/5/4 4/3/4 2/10/4 6/9/4
|
||||
f 12/13/5 11/14/5 10/15/5 9/16/5
|
||||
f 5/8/3 6/7/3 11/14/3 12/13/3
|
||||
f 2/2/1 1/1/1 9/17/1 10/18/1
|
||||
f 18/19/5 19/20/5 20/21/5 17/22/5
|
||||
f 13/12/4 14/11/4 16/23/4 15/24/4
|
||||
f 2/2/1 10/18/1 16/25/1 14/26/1
|
||||
f 11/14/3 6/7/3 13/27/3 15/28/3
|
||||
f 10/15/5 11/14/5 15/28/5 16/29/5
|
||||
f 17/22/3 20/21/3 24/30/3 21/31/3
|
||||
f 18/19/4 17/22/4 21/32/4 22/33/4
|
||||
f 19/20/1 18/19/1 22/34/1 23/35/1
|
||||
f 20/21/6 19/20/6 23/36/6 24/37/6
|
|
@ -0,0 +1,110 @@
|
|||
# Blender v2.93.5 OBJ File: 'furniture.blend'
|
||||
# www.blender.org
|
||||
o Refrigerator_industrial_Cube.033
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 1.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.375000
|
||||
v -0.500000 1.500000 -0.375000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 1.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.375000
|
||||
v 0.500000 1.500000 -0.375000
|
||||
v -0.093750 0.312500 -0.375000
|
||||
v -0.093750 1.375000 -0.375000
|
||||
v -0.093750 0.312500 -0.437500
|
||||
v -0.093750 1.375000 -0.437500
|
||||
v -0.031250 0.312500 -0.375000
|
||||
v -0.031250 1.375000 -0.375000
|
||||
v -0.031250 0.312500 -0.437500
|
||||
v -0.031250 1.375000 -0.437500
|
||||
v 0.031250 0.312500 -0.375000
|
||||
v 0.031250 1.375000 -0.375000
|
||||
v 0.031250 0.312500 -0.437500
|
||||
v 0.031250 1.375000 -0.437500
|
||||
v 0.093750 0.312500 -0.375000
|
||||
v 0.093750 1.375000 -0.375000
|
||||
v 0.093750 0.312500 -0.437500
|
||||
v 0.093750 1.375000 -0.437500
|
||||
v -0.406250 0.187500 -0.375000
|
||||
v 0.406250 0.187500 -0.375000
|
||||
v -0.406250 0.187500 -0.437500
|
||||
v 0.406250 0.187500 -0.437500
|
||||
v -0.406250 0.125000 -0.375000
|
||||
v 0.406250 0.125000 -0.375000
|
||||
v -0.406250 0.125000 -0.437500
|
||||
v 0.406250 0.125000 -0.437500
|
||||
vt 0.937500 -0.000000
|
||||
vt 0.937500 0.500000
|
||||
vt 0.718750 0.500000
|
||||
vt 0.718750 -0.000000
|
||||
vt 0.468750 0.500000
|
||||
vt 0.468750 -0.000000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.250000 -0.000000
|
||||
vt 0.000000 0.500000
|
||||
vt 0.000000 -0.000000
|
||||
vt 0.109375 0.523438
|
||||
vt 0.109375 0.789062
|
||||
vt 0.093750 0.789062
|
||||
vt 0.093750 0.523438
|
||||
vt 0.718750 0.718750
|
||||
vt 0.468750 0.718750
|
||||
vt 0.078125 0.789062
|
||||
vt 0.078125 0.523438
|
||||
vt 0.062500 0.789062
|
||||
vt 0.062500 0.523438
|
||||
vt 0.054688 0.523438
|
||||
vt 0.054688 0.789062
|
||||
vt 0.039062 0.789062
|
||||
vt 0.039062 0.523438
|
||||
vt 0.093750 0.804688
|
||||
vt 0.078125 0.804688
|
||||
vt 0.093750 0.507812
|
||||
vt 0.078125 0.507812
|
||||
vt 0.023438 0.789062
|
||||
vt 0.023438 0.523438
|
||||
vt 0.007812 0.789062
|
||||
vt 0.007812 0.523438
|
||||
vt 0.039062 0.804688
|
||||
vt 0.023438 0.804688
|
||||
vt 0.039062 0.507812
|
||||
vt 0.023438 0.507812
|
||||
vt 0.117188 0.789062
|
||||
vt 0.117188 0.585938
|
||||
vt 0.132812 0.585938
|
||||
vt 0.132812 0.789062
|
||||
vt 0.148438 0.585938
|
||||
vt 0.148438 0.789062
|
||||
vt 0.164062 0.585938
|
||||
vt 0.164062 0.789062
|
||||
vt 0.132812 0.570312
|
||||
vt 0.148438 0.570312
|
||||
vt 0.132812 0.804688
|
||||
vt 0.148438 0.804688
|
||||
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/8/4 6/7/4 2/9/4 1/10/4
|
||||
f 9/11/1 10/12/1 12/13/1 11/14/1
|
||||
f 8/5/5 4/3/5 2/15/5 6/16/5
|
||||
f 11/14/2 12/13/2 16/17/2 15/18/2
|
||||
f 15/18/3 16/17/3 14/19/3 13/20/3
|
||||
f 17/21/1 18/22/1 20/23/1 19/24/1
|
||||
f 16/17/5 12/13/5 10/25/5 14/26/5
|
||||
f 9/27/6 11/14/6 15/18/6 13/28/6
|
||||
f 19/24/2 20/23/2 24/29/2 23/30/2
|
||||
f 23/30/3 24/29/3 22/31/3 21/32/3
|
||||
f 24/29/5 20/23/5 18/33/5 22/34/5
|
||||
f 17/35/6 19/24/6 23/30/6 21/36/6
|
||||
f 25/37/5 26/38/5 28/39/5 27/40/5
|
||||
f 27/40/2 28/39/2 32/41/2 31/42/2
|
||||
f 31/42/6 32/41/6 30/43/6 29/44/6
|
||||
f 32/41/3 28/39/3 26/45/3 30/46/3
|
||||
f 25/47/1 27/40/1 31/42/1 29/48/1
|
|
@ -0,0 +1,179 @@
|
|||
# Blender v2.93.5 OBJ File: 'furniture.blend'
|
||||
# www.blender.org
|
||||
o Water_cooler_Cube.031
|
||||
v -0.375000 0.500000 0.437500
|
||||
v -0.375000 0.687500 0.437500
|
||||
v -0.375000 0.500000 -0.312500
|
||||
v -0.375000 0.687500 -0.312500
|
||||
v -0.187500 0.500000 0.437500
|
||||
v -0.187500 0.687500 0.437500
|
||||
v -0.187500 0.500000 -0.312500
|
||||
v -0.187500 0.687500 -0.312500
|
||||
v -0.312500 0.750000 0.375000
|
||||
v -0.312500 1.500000 0.375000
|
||||
v -0.312500 0.750000 -0.250000
|
||||
v -0.312500 1.500000 -0.250000
|
||||
v 0.312500 0.750000 0.375000
|
||||
v 0.312500 1.500000 0.375000
|
||||
v 0.312500 0.750000 -0.250000
|
||||
v 0.312500 1.500000 -0.250000
|
||||
v -0.125000 0.687500 0.187500
|
||||
v -0.125000 0.750000 0.187500
|
||||
v -0.125000 0.687500 -0.062500
|
||||
v -0.125000 0.750000 -0.062500
|
||||
v 0.125000 0.687500 0.187500
|
||||
v 0.125000 0.750000 0.187500
|
||||
v 0.125000 0.687500 -0.062500
|
||||
v 0.125000 0.750000 -0.062500
|
||||
v -0.375000 0.125000 0.437500
|
||||
v -0.375000 0.125000 -0.312500
|
||||
v -0.187500 0.125000 0.437500
|
||||
v -0.187500 0.125000 -0.312500
|
||||
v -0.375000 -0.500000 0.437500
|
||||
v -0.375000 -0.500000 -0.312500
|
||||
v -0.187500 -0.500000 0.437500
|
||||
v -0.187500 -0.500000 -0.312500
|
||||
v 0.187500 0.500000 0.437500
|
||||
v 0.187500 0.687500 0.437500
|
||||
v 0.187500 0.500000 -0.312500
|
||||
v 0.187500 0.687500 -0.312500
|
||||
v 0.187500 0.125000 0.437500
|
||||
v 0.187500 0.125000 -0.312500
|
||||
v 0.187500 -0.500000 0.437500
|
||||
v 0.187500 -0.500000 -0.312500
|
||||
v 0.375000 0.500000 0.437500
|
||||
v 0.375000 0.687500 0.437500
|
||||
v 0.375000 0.500000 -0.312500
|
||||
v 0.375000 0.687500 -0.312500
|
||||
v 0.375000 0.125000 0.437500
|
||||
v 0.375000 0.125000 -0.312500
|
||||
v 0.375000 -0.500000 0.437500
|
||||
v 0.375000 -0.500000 -0.312500
|
||||
v -0.187500 0.125000 -0.187500
|
||||
v -0.187500 0.500000 -0.187500
|
||||
v 0.187500 0.125000 -0.187500
|
||||
v 0.187500 0.500000 -0.187500
|
||||
vt 0.750000 0.250000
|
||||
vt 0.750000 0.296875
|
||||
vt 0.562500 0.296875
|
||||
vt 0.562500 0.250000
|
||||
vt 0.515625 0.296875
|
||||
vt 0.515625 0.250000
|
||||
vt 0.046875 0.156250
|
||||
vt 0.046875 0.000000
|
||||
vt 0.140625 0.000000
|
||||
vt 0.140625 0.156250
|
||||
vt 0.046875 0.250000
|
||||
vt 0.046875 0.296875
|
||||
vt 0.000000 0.296875
|
||||
vt 0.000000 0.250000
|
||||
vt 0.531250 0.492188
|
||||
vt 0.531250 0.507812
|
||||
vt 0.468750 0.507812
|
||||
vt 0.468750 0.492188
|
||||
vt 0.562500 0.484375
|
||||
vt 0.515625 0.484375
|
||||
vt 0.625000 0.656250
|
||||
vt 0.625000 0.843750
|
||||
vt 0.468750 0.843750
|
||||
vt 0.468750 0.656250
|
||||
vt 0.312500 0.843750
|
||||
vt 0.312500 0.656250
|
||||
vt 0.156250 0.843750
|
||||
vt 0.156250 0.656250
|
||||
vt -0.000000 0.843750
|
||||
vt -0.000000 0.656250
|
||||
vt -0.000000 0.500000
|
||||
vt 0.156250 0.500000
|
||||
vt 0.156250 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt 0.406250 0.507812
|
||||
vt 0.406250 0.492188
|
||||
vt 0.343750 0.507812
|
||||
vt 0.343750 0.492188
|
||||
vt 0.593750 0.492188
|
||||
vt 0.593750 0.507812
|
||||
vt 0.562500 0.156250
|
||||
vt 0.750000 0.156250
|
||||
vt 0.367188 0.335938
|
||||
vt 0.367188 0.429688
|
||||
vt 0.335938 0.429688
|
||||
vt 0.335938 0.335938
|
||||
vt 0.000000 0.156250
|
||||
vt 0.515625 0.156250
|
||||
vt 0.140625 0.250000
|
||||
vt 0.140625 0.296875
|
||||
vt 0.562500 0.000000
|
||||
vt 0.750000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.515625 0.000000
|
||||
vt 0.187500 0.156250
|
||||
vt 0.187500 0.250000
|
||||
vt 0.421875 0.000000
|
||||
vt 0.421875 0.156250
|
||||
vt 0.375000 0.156250
|
||||
vt 0.375000 0.000000
|
||||
vt 0.187500 0.296875
|
||||
vt 0.421875 0.484375
|
||||
vt 0.421875 0.296875
|
||||
vt 0.421875 0.250000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.375000 0.296875
|
||||
vt 0.187500 0.000000
|
||||
vt 0.375000 0.484375
|
||||
vt 0.242188 0.429688
|
||||
vt 0.242188 0.335938
|
||||
vt 0.335938 0.460938
|
||||
vt 0.242188 0.460938
|
||||
vt 0.242188 0.304688
|
||||
vt 0.335938 0.304688
|
||||
vt 0.210938 0.429688
|
||||
vt 0.210938 0.335938
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 1.0000 0.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 27/7/3 31/8/3 39/9/3 37/10/3
|
||||
f 5/11/3 6/12/3 2/13/3 1/14/3
|
||||
f 17/15/1 18/16/1 20/17/1 19/18/1
|
||||
f 8/5/4 4/3/4 2/19/4 6/20/4
|
||||
f 9/21/1 10/22/1 12/23/1 11/24/1
|
||||
f 11/24/2 12/23/2 16/25/2 15/26/2
|
||||
f 15/26/5 16/25/5 14/27/5 13/28/5
|
||||
f 13/28/3 14/27/3 10/29/3 9/30/3
|
||||
f 11/31/6 15/32/6 13/28/6 9/30/6
|
||||
f 16/33/4 12/34/4 10/29/4 14/27/4
|
||||
f 19/18/2 20/17/2 24/35/2 23/36/2
|
||||
f 23/36/5 24/35/5 22/37/5 21/38/5
|
||||
f 21/39/3 22/40/3 18/16/3 17/15/3
|
||||
f 1/1/1 3/4/1 26/41/1 25/42/1
|
||||
f 28/43/5 7/44/5 50/45/5 49/46/5
|
||||
f 5/11/3 1/14/3 25/47/3 27/7/3
|
||||
f 3/4/2 7/6/2 28/48/2 26/41/2
|
||||
f 6/12/3 5/11/3 33/49/3 34/50/3
|
||||
f 25/42/1 26/41/1 30/51/1 29/52/1
|
||||
f 27/7/3 25/47/3 29/53/3 31/8/3
|
||||
f 26/41/2 28/48/2 32/54/2 30/51/2
|
||||
f 33/49/3 37/10/3 45/55/3 41/56/3
|
||||
f 40/57/2 38/58/2 46/59/2 48/60/2
|
||||
f 34/50/3 33/49/3 41/56/3 42/61/3
|
||||
f 5/11/3 27/7/3 37/10/3 33/49/3
|
||||
f 8/5/4 6/20/4 34/62/4 36/63/4
|
||||
f 7/6/2 8/5/2 36/63/2 35/64/2
|
||||
f 32/54/2 28/48/2 38/58/2 40/57/2
|
||||
f 43/65/5 44/66/5 42/61/5 41/56/5
|
||||
f 43/65/5 41/56/5 45/55/5 46/59/5
|
||||
f 46/59/5 45/55/5 47/67/5 48/60/5
|
||||
f 36/63/4 34/62/4 42/68/4 44/66/4
|
||||
f 35/64/2 36/63/2 44/66/2 43/65/2
|
||||
f 37/10/3 39/9/3 47/67/3 45/55/3
|
||||
f 38/58/2 35/64/2 43/65/2 46/59/2
|
||||
f 49/46/2 50/45/2 52/69/2 51/70/2
|
||||
f 7/71/6 35/72/6 52/69/6 50/45/6
|
||||
f 38/73/4 28/74/4 49/46/4 51/70/4
|
||||
f 35/75/1 38/76/1 51/70/1 52/69/1
|
|
@ -13,7 +13,9 @@ minetest.register_node('furniture:file_cabinet', {
|
|||
type = 'fixed',
|
||||
fixed = {-.45, -.5, -.5, .45, 1, .45},
|
||||
},
|
||||
groups = {breakable=1,stash=1},
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:pc_old', {
|
||||
|
@ -152,7 +154,26 @@ minetest.register_node('furniture:desk', {
|
|||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.5, 1.5, .5, .5}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:water_cooler', {
|
||||
description = 'Water Cooler',
|
||||
drawtype = 'mesh',
|
||||
mesh = 'furniture_water_cooler.obj',
|
||||
tiles = {'furniture_water_cooler.png'},
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.375, -.5, -.3125, .375, 1.5, .4375},
|
||||
},
|
||||
collision_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-.45, -.5, -.5, .45, 1.5, .45},
|
||||
},
|
||||
_sound = 'server_rack',
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
|
|
@ -15,8 +15,8 @@ minetest.register_node('furniture:stool_short', {
|
|||
fixed = {-.375, -.5, -.375, .375, 0, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:stool_tall', {
|
||||
|
@ -36,8 +36,8 @@ minetest.register_node('furniture:stool_tall', {
|
|||
fixed = {-.375, -.5, -.375, .375, .5, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:chair', {
|
||||
|
@ -57,8 +57,8 @@ minetest.register_node('furniture:chair', {
|
|||
fixed = {-.375, -.5, -.375, .375, 0, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:bench', {
|
||||
|
@ -78,8 +78,8 @@ minetest.register_node('furniture:bench', {
|
|||
fixed = {-.375, -.5, -.375, 1.375, 0, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:bench_with_back', {
|
||||
|
@ -101,8 +101,8 @@ minetest.register_node('furniture:bench_with_back', {
|
|||
{-.375, 0, .275, 1.375, .5, .375}}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:bench_picnic', {
|
||||
|
@ -128,8 +128,8 @@ minetest.register_node('furniture:bench_picnic', {
|
|||
}
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
---Cushioned items. Yay. :P
|
||||
|
@ -158,8 +158,8 @@ for i in ipairs(dye_table) do
|
|||
fixed = {-.375, -.5, -.375, .375, 0, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:stool_tall_'..name, {
|
||||
|
@ -180,8 +180,8 @@ for i in ipairs(dye_table) do
|
|||
fixed = {-.375, -.5, -.375, .375, .5, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:chair_'..name, {
|
||||
|
@ -202,8 +202,8 @@ for i in ipairs(dye_table) do
|
|||
fixed = {-.375, -.5, -.375, .375, 0, .375},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:cushion_half_'..name, {
|
||||
|
|
|
@ -15,9 +15,9 @@ minetest.register_node('furniture:chest_small', {
|
|||
type = 'fixed',
|
||||
fixed = {-.4, -.5, -.3, .4, .2, .4},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:chest', {
|
||||
|
@ -37,9 +37,9 @@ minetest.register_node('furniture:chest', {
|
|||
type = 'fixed',
|
||||
fixed = {-.45, -.5, -.4, .45, .4, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
||||
minetest.register_node('furniture:chest_large', {
|
||||
|
@ -59,7 +59,7 @@ minetest.register_node('furniture:chest_large', {
|
|||
type = 'fixed',
|
||||
fixed = {-.5, -.5, -.4, 1.5, .3, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
groups = {breakable=1, stash=1},
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
|
|
@ -15,6 +15,6 @@ minetest.register_node('furniture:table_basic', {
|
|||
fixed = {-.5, -.5, -.5, 1.5, .5, .5},
|
||||
},
|
||||
groups = {breakable=1},
|
||||
on_rightclick = furniture.dye_less,
|
||||
on_punch = furniture.dye_more
|
||||
on_rightclick = furniture.right_click,
|
||||
on_punch = furniture.punch
|
||||
})
|
||||
|
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 11 KiB |
|
@ -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)--Add extra inventories for playing games and clothing/cosmetics
|
||||
player:get_inventory():set_size('main', 8*4)--Add extra inventories for playing games
|
||||
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)
|
||||
|
|
|
@ -65,6 +65,32 @@ minetest.register_node('lobby:button_0', {
|
|||
meta:set_string('formspec', button_create(id, name, player_count, xp, pos, desc))
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner = meta:get_string('owner')
|
||||
local loc = meta:get_string('pos')
|
||||
if puncher:get_player_name() == owner then
|
||||
if loc == '' then
|
||||
local pos_x = math.random(-3100,3100)
|
||||
local pos_y = math.random(-100,3100)
|
||||
local pos_z = math.random(-3100,3100)
|
||||
local pos = {x = pos_x, y = pos_y, z = pos_z}
|
||||
if not minetest.is_protected(pos, puncher) then
|
||||
minetest.load_area(pos)
|
||||
worldedit.cube(pos, 5, 1, 5, 'levels:floor_white', false)
|
||||
meta:set_string('pos', pos_x..','..pos_y..','..pos_z)
|
||||
puncher:set_pos({x = pos_x, y = pos_y+2, z = pos_z})
|
||||
minetest.set_node(pos, {name = 'lights:block_4'})
|
||||
end
|
||||
else
|
||||
local x, y, z = string.match(loc, "^(-?%d+),(-?%d+),(-?%d+)$")
|
||||
local pos_x = tonumber(x)
|
||||
local pos_y = tonumber(y)
|
||||
local pos_z = tonumber(z)
|
||||
puncher:set_pos({x = pos_x, y = pos_y+2, z = pos_z})
|
||||
end
|
||||
end
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner = meta:get_string('owner')
|
||||
|
@ -88,9 +114,9 @@ minetest.register_node('lobby:button_0', {
|
|||
local map_id = fields.ID
|
||||
local dist = tonumber(minetest.settings:get("map_generation_limit") or 31000)
|
||||
local x, y, z = string.match(fields.pos, "^(-?%d+),(-?%d+),(-?%d+)$")
|
||||
local pos_x = tonumber(x) or 50000
|
||||
local pos_y = tonumber(y) or 50000
|
||||
local pos_z = tonumber(z) or 50000
|
||||
local pos_x = tonumber(x)
|
||||
local pos_y = tonumber(y)
|
||||
local pos_z = tonumber(z)
|
||||
local saveable = 0
|
||||
if pos_x > dist or pos_x < -dist or pos_y > dist or pos_y < -dist or pos_z > dist or pos_z < -dist then
|
||||
minetest.chat_send_player(player_name, 'Double check your spawn pos, values seem to be invalid.')
|
||||
|
@ -118,6 +144,13 @@ minetest.register_node('lobby:button_0', {
|
|||
end
|
||||
elseif fields ['discard'] then
|
||||
meta:set_string('owner', '')
|
||||
meta:set_string('infotext', '')
|
||||
meta:set_string('id', '')
|
||||
meta:set_string('name', '')
|
||||
meta:set_string('player_count', '')
|
||||
meta:set_string('xp', '')
|
||||
meta:set_string('pos', '')
|
||||
meta:set_string('desc', '')
|
||||
lobby.give_xp(sender, 15)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -34,9 +34,9 @@ minetest.register_on_dieplayer(function(player)
|
|||
local name = player:get_player_name()
|
||||
local map_id = lobby.game[name]
|
||||
player:set_physics_override({speed=1})
|
||||
local player_inv = player:get_inventory()
|
||||
player_inv:set_list('main', {})
|
||||
if map_id ~= 'lobby' then
|
||||
local player_inv = player:get_inventory()
|
||||
player_inv:set_list('main', {})
|
||||
local player_attributes = player:get_meta()
|
||||
local traitor = lobby.traitors[map_id]
|
||||
local pos = vector.round(player:get_pos())
|
||||
|
|
|
@ -16,7 +16,7 @@ local function lobby_shop_priv(player)
|
|||
' 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,2.75;5,1;toggle_build;Toggle builder privileges]'..
|
||||
'button[6,4;5,1;health;Increase your HP ('..((health+1)*10)..' XP)]'
|
||||
if luck < 10 then
|
||||
formspec = formspec..
|
||||
|
@ -71,15 +71,26 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
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
|
||||
elseif fields.toggle_build then
|
||||
if not not_builder(player) then
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.creative = true
|
||||
privs.fly = true
|
||||
privs.fast = true
|
||||
privs.worldedit = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
minetest.chat_send_player(name, 'Privs restored!')
|
||||
if privs.creative == true then
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.creative = nil
|
||||
privs.fly = nil
|
||||
privs.fast = nil
|
||||
privs.worldedit = nil
|
||||
privs.areas = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
minetest.chat_send_player(name, 'Privs revoked! Play some games in the lobby')
|
||||
else
|
||||
privs.creative = true
|
||||
privs.fly = true
|
||||
privs.fast = true
|
||||
privs.worldedit = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
minetest.chat_send_player(name, 'Privs restored!')
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(name, 'You need to buy the Builder priv first!')
|
||||
end
|
||||
|
|
|
@ -38,7 +38,7 @@ end
|
|||
|
||||
local theme_inv = [[
|
||||
listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]
|
||||
list[current_player;main;0,5;8,4;]
|
||||
list[current_player;main;0,5;8,4;]
|
||||
]]
|
||||
|
||||
function sfinv.make_formspec(player, context, content, show_inv, size)
|
||||
|
|
|
@ -1,32 +1,79 @@
|
|||
-- sfinv/init.lua
|
||||
|
||||
dofile(minetest.get_modpath("sfinv") .. "/api.lua")
|
||||
dofile(minetest.get_modpath('sfinv') .. '/api.lua')
|
||||
|
||||
-- Load support for MT game translation.
|
||||
local S = minetest.get_translator("sfinv")
|
||||
local S = minetest.get_translator('sfinv')
|
||||
local esc = minetest.formspec_escape
|
||||
local modstorage = minetest.get_mod_storage()
|
||||
|
||||
sfinv.register_page("sfinv:help", {
|
||||
title = S("Help"),
|
||||
sfinv.register_page('sfinv:help', {
|
||||
title = S('Help'),
|
||||
get = function(self, player, context)
|
||||
local player_attributes = player:get_meta()
|
||||
local xp = player_attributes:get_float('xp')
|
||||
local luck = player_attributes:get_int('luck')
|
||||
local health = player_attributes:get_int('hp')
|
||||
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'..
|
||||
'textarea[.25,0;2,2;;;Player Stats:\n XP: '..xp..'\n HP: '..health..'\n Luck: '..luck..']'..
|
||||
'textarea[1.5,0;6.75,10.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. '..
|
||||
'Visit the shop to buy upgrades, privileges, and at some point cosmetics!\n\n'..
|
||||
' To create your own level(s) purchase the builder priv and claim a level button.]'
|
||||
, true)
|
||||
, false)
|
||||
else
|
||||
local player_attributes = player:get_meta()
|
||||
local xp = player_attributes:get_float('xp') or 0
|
||||
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)
|
||||
'textarea[.25,0;2,2;;;Player Stats:\n XP: '..xp..'\n HP: '..health..'\n Luck: '..luck..']'..
|
||||
'textarea[1.5,0;6.75,10.5;;; As a builder you have the ability to create your own levels, individually or collaboratively with other builders. '..
|
||||
'Build any size and with any theme, your imagination is the only limit. (Contact the admin if you need specific nodes/tasks.) '..
|
||||
'The spawn area on the level needs to be at minimum 5x5 to prevent players from spawning inside of objects or outside of the map.\n\n'..
|
||||
' The first step to building a level is to select an area on the map. '..
|
||||
'You should always protect your area as soon as possible to prevent others from damaging it. '..
|
||||
'You can always make it larger and add other players to it if you want to build with a friend. '..
|
||||
'Once you have the level in a safely playable state you can claim a button in the spawn lobby and fill out the required information. '..
|
||||
'The button can be edited by right-clicking with the hammer or wrench. You can also unclaim a button this way. (Note: this won\'t delete the level)\n\n'..
|
||||
' Tasks, once placed can be configured with the wrench tool. You can set the infotext, XP reward, and time range for the task to become available.\n\n'..
|
||||
' Standard doors from the doors mod can be locked with the wrench. '..
|
||||
'There are several options for the type of locking, and further information is given when configuring the lock.\n\n'..
|
||||
' Many items that would normally hold inventory can be setup with a stash of eight items. '..
|
||||
'Currently cabinets, chests, clocks, and file cabinets can hold items. '..
|
||||
'Punch them with a wrench to setup what items should be available for drops. ]'
|
||||
, false)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
sfinv.register_page('sfinv:notes', {
|
||||
title = 'Notes',
|
||||
get = function(self, player, context)
|
||||
local content = modstorage:get_string(player:get_player_name())
|
||||
context.notes = content
|
||||
return sfinv.make_formspec(player, context,
|
||||
'textarea[0.25,0;8,10;content;;'..esc(content)..']'..
|
||||
'textarea[.25,8.75;5.5,.6;;;BE SURE TO HIT THE SAVE BUTTON!!!]'..
|
||||
'button[6,8.5;2,1;save_player_note;Save]'
|
||||
, false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, fields)
|
||||
if fields.content then
|
||||
print 'content!'
|
||||
context.notes = fields.content
|
||||
end
|
||||
end,
|
||||
on_leave = function(self, player, context)
|
||||
print (context.notes)
|
||||
--modstorage:set_string(name, context.content)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
local name = player:get_player_name()
|
||||
if fields.save_player_note then
|
||||
modstorage:set_string(name, fields.content)
|
||||
end
|
||||
end)
|
||||
|
||||
sfinv.register_page('sfinv:xp', {
|
||||
title = 'XP',
|
||||
is_in_nav = function(self, player, context)
|
||||
|
@ -36,11 +83,11 @@ sfinv.register_page('sfinv:xp', {
|
|||
local player_attributes = player:get_meta()
|
||||
local xp = player_attributes:get_float('xp') or 0
|
||||
return sfinv.make_formspec(player, context,
|
||||
'textarea[.25,0;8.5,3;;; You currently have '..xp..' points available. use these points to buy perks in a store.\n'..
|
||||
' This is NOT a pay to win scheme. Items are cosmetic or give buffs, but won\'t protect you from the traitor in any fashion.\n'..
|
||||
' If you want to build your own levels you can purchase "buttons" with your points, and the required privileges to create. '..
|
||||
'textarea[.25,0;8,5;;; You currently have '..xp..' points available. use these points to buy perks in a store.\n\n'..
|
||||
' This is NOT a pay to win scheme. Items are cosmetic or give buffs, but won\'t protect you from the traitor in any fashion.\n\n'..
|
||||
' If you want to build your own levels you can purchase \'buttons\' with your points, and the required privileges to create. '..
|
||||
'When joining a game your privileges are cleared, but can be reset once you\'re back in the lobby'..
|
||||
' You earn 25 points for every level you win, either as the traitor, or a surviving team member. You can also earn 1 point for each task you complete in the lobby.]'
|
||||
, true)
|
||||
, false)
|
||||
end
|
||||
})
|
||||
|
|
|
@ -112,7 +112,7 @@ minetest.register_node('tasks:trash_1', {
|
|||
end,
|
||||
})
|
||||
|
||||
for i = 2,4 do
|
||||
for i = 2,8 do
|
||||
|
||||
minetest.register_node('tasks:trash_'..i, {
|
||||
description = 'Rubbish',
|
||||
|
@ -169,7 +169,7 @@ minetest.register_node('tasks:trash', {
|
|||
groups = {not_in_creative_inventory=1, breakable=1},
|
||||
on_timer = function(pos)
|
||||
local ran_param2 = math.random(0,3)
|
||||
local trash_ran = math.random(1,4)
|
||||
local trash_ran = math.random(1,8)
|
||||
minetest.set_node(pos, {name = 'tasks:trash_'..trash_ran, param2 = ran_param2})
|
||||
end,
|
||||
})
|
||||
|
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |