New furniture, and stashes.

master
Nathan Salapat 2021-10-29 20:25:22 -05:00
parent c5ff874f9f
commit 0c5d20892e
66 changed files with 796 additions and 182 deletions

View File

@ -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
})

View File

@ -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},
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 870 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

View File

@ -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

View File

@ -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

View File

@ -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')

View File

@ -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
})

View File

@ -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[]'..

View File

@ -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()

View File

@ -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},
})

View File

@ -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
})

View File

@ -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
})

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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},
})

View File

@ -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, {

View File

@ -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
})

View File

@ -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
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

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)--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)

View File

@ -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

View File

@ -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())

View File

@ -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

View File

@ -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)

View File

@ -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
})

View File

@ -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,
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB