Added shift-clicking to all tasks.
|
@ -1,98 +1,98 @@
|
|||
minetest.register_node("buildingblocks:blue_box", {
|
||||
description = "Blue box",
|
||||
minetest.register_node('buildingblocks: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"
|
||||
'blue_box_top.png',
|
||||
'blue_box_top.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png',
|
||||
'blue_box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:green_box", {
|
||||
description = "Green box",
|
||||
minetest.register_node('buildingblocks:green_box', {
|
||||
description = 'Green box',
|
||||
tiles = {
|
||||
"box_top.png",
|
||||
"box_top.png",
|
||||
"box_side.png",
|
||||
"box_side.png",
|
||||
"box_side.png",
|
||||
"box_side.png"
|
||||
'box_top.png',
|
||||
'box_top.png',
|
||||
'box_side.png',
|
||||
'box_side.png',
|
||||
'box_side.png',
|
||||
'box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:red_box", {
|
||||
description = "Red box",
|
||||
minetest.register_node('buildingblocks: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"
|
||||
'red_box_top.png',
|
||||
'red_box_top.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png',
|
||||
'red_box_side.png'
|
||||
},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor", {
|
||||
description = "floor",
|
||||
tiles = {"floor.png"},
|
||||
minetest.register_node('buildingblocks:floor', {
|
||||
description = 'floor',
|
||||
tiles = {'floor.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_two", {
|
||||
description = "another floor",
|
||||
tiles = {"floor_two.png"},
|
||||
minetest.register_node('buildingblocks:floor_two', {
|
||||
description = 'another floor',
|
||||
tiles = {'floor_two.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_three", {
|
||||
description = "Another floor",
|
||||
tiles = {"floor_three.png"},
|
||||
minetest.register_node('buildingblocks:floor_three', {
|
||||
description = 'Another floor',
|
||||
tiles = {'floor_three.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_four", {
|
||||
description = "Another Floor",
|
||||
tiles = {"floor_four.png"},
|
||||
minetest.register_node('buildingblocks:floor_four', {
|
||||
description = 'Another Floor',
|
||||
tiles = {'floor_four.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_five", {
|
||||
description = "ANOTHER Floor",
|
||||
tiles = {"floor_fifth.png"},
|
||||
minetest.register_node('buildingblocks:floor_five', {
|
||||
description = 'ANOTHER Floor',
|
||||
tiles = {'floor_fifth.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_six", {
|
||||
description = "ANOTHER FLOOR",
|
||||
tiles = {"floor_six.png"},
|
||||
minetest.register_node('buildingblocks:floor_six', {
|
||||
description = 'ANOTHER FLOOR',
|
||||
tiles = {'floor_six.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:floor_seven", {
|
||||
description = "AnOtHeR FlOoR",
|
||||
tiles = {"floor_seven.png"},
|
||||
minetest.register_node('buildingblocks:floor_seven', {
|
||||
description = 'AnOtHeR FlOoR',
|
||||
tiles = {'floor_seven.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:wall", {
|
||||
description = "Wall",
|
||||
tiles = {"wall.png"},
|
||||
minetest.register_node('buildingblocks:wall', {
|
||||
description = 'Wall',
|
||||
tiles = {'wall.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:caution_block", {
|
||||
description = "caution block",
|
||||
tiles = {"caution.png"},
|
||||
minetest.register_node('buildingblocks:caution_block', {
|
||||
description = 'caution block',
|
||||
tiles = {{name = 'caution.png', align_style='world', scale=4}},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
|
||||
minetest.register_node("buildingblocks:vent", {
|
||||
description = "vent block",
|
||||
tiles = {"vent_top.png"},
|
||||
minetest.register_node('buildingblocks:vent', {
|
||||
description = 'vent block',
|
||||
tiles = {'vent_top.png'},
|
||||
groups = {breakable=1},
|
||||
})
|
||||
})
|
||||
|
|
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 48 KiB |
|
@ -31,6 +31,8 @@ color.make_lighter = function(pos, node, clicker)
|
|||
end
|
||||
|
||||
local colors = { -- description, node name, hex color
|
||||
{'Pink', 'pink', '#ff2db1'},
|
||||
{'Aqua', 'aqua', '#00ada4'},
|
||||
{'Red', 'red', '#ff6666'},
|
||||
{'Orange', 'orange', '#ffb366'},
|
||||
{'Yellow', 'yellow', '#ffff66'},
|
||||
|
@ -96,4 +98,21 @@ for i in ipairs(colors) do
|
|||
hex,
|
||||
true)
|
||||
|
||||
minetest.register_node('color:'..name..'_streak', {
|
||||
description = desc..' Laminate',
|
||||
tiles = {{name='color_streak.png', align_style='world', scale=4}},
|
||||
paramtype2 = 'colorfacedir',
|
||||
palette = 'color_'..name..'.png',
|
||||
color = hex,
|
||||
groups = {breakable=1},
|
||||
on_punch = color.make_darker,
|
||||
on_rightclick = color.make_lighter,
|
||||
})
|
||||
|
||||
color.register_stair_and_slab(name..'_streak',
|
||||
{{name='color_streak.png', align_style='world', scale=4}},
|
||||
'color_'..name..'.png',
|
||||
hex,
|
||||
true)
|
||||
|
||||
end
|
||||
|
|
|
@ -127,7 +127,7 @@ function color.register_slab(subname, images, palette, hex, worldaligntex)
|
|||
|
||||
if under and under.name:find('^stairs:slab_') then
|
||||
-- place slab using under node orientation
|
||||
local dir = minetest.dir_to_colorfacedir(vector.subtract(
|
||||
local dir = minetest.dir_to_facedir(vector.subtract(
|
||||
pointed_thing.above, pointed_thing.under), true)
|
||||
|
||||
local p2 = under.param2
|
||||
|
|
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 41 KiB |
|
@ -22,7 +22,7 @@ minetest.register_on_joinplayer(function(player)
|
|||
player:setpos({x=0, y=0, z=0})
|
||||
end
|
||||
if not pro_player(player) then
|
||||
player:setpos({x=-30, y=0, z=12})
|
||||
player:set_pos({x=-30, y=0, z=12})
|
||||
minetest.show_formspec(name, 'lobby:help_1', lobby_help_1)
|
||||
end
|
||||
end)
|
||||
|
@ -40,12 +40,12 @@ minetest.register_on_dieplayer(function(player)
|
|||
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
||||
local pos_node = minetest.get_node(pos)
|
||||
if pos_node.name ~= 'air' then
|
||||
local air = minetest.find_node_near(pos, 1, {"air"})
|
||||
minetest.set_node(air, {name = "lobby:corpse", param2 = param2})
|
||||
local air = minetest.find_node_near(pos, 1, {'air'})
|
||||
minetest.set_node(air, {name = 'lobby:corpse', param2 = param2})
|
||||
lobby.corpse_entry(air, map_id)
|
||||
pos = air
|
||||
else
|
||||
minetest.set_node(pos, {name = "lobby:corpse", param2 = param2})
|
||||
minetest.set_node(pos, {name = 'lobby:corpse', param2 = param2})
|
||||
lobby.corpse_entry(pos, map_id)
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 20 KiB |
|
@ -13,7 +13,9 @@ local formspec_bad =
|
|||
'textarea[.5,;5,2;;;Looks like something is broke.\nGet a new part from a storage locker.]' ..
|
||||
'button_exit[2.5,1.5;3,1;gimme;Grab a part request form]'..
|
||||
'list[current_name;part;6,1;1,1;]'..
|
||||
'list[current_player;main;0,3;8,3;]'
|
||||
'list[current_player;main;0,3;8,3;]'..
|
||||
'listring[current_player;main]'..
|
||||
'listring[current_name;part]'
|
||||
|
||||
minetest.register_node('tasks:engine_0_setup',{
|
||||
description = 'Arc Reactor (setup)',
|
||||
|
|
|
@ -13,7 +13,9 @@ local formspec_bad =
|
|||
'textarea[.5,;5,2;;;Looks like something is broke.\nGet a new part from a storage locker.]' ..
|
||||
'button_exit[2.5,1.5;3,1;gimme;Grab a part request form]'..
|
||||
'list[current_name;part;6,1;1,1;]'..
|
||||
'list[current_player;main;0,3;8,3;]'
|
||||
'list[current_player;main;0,3;8,3;]'..
|
||||
'listring[current_player;main]'..
|
||||
'listring[current_name;part]'
|
||||
|
||||
minetest.register_node('tasks:engine_1_setup',{
|
||||
description = 'Plasma Accelerator (setup)',
|
||||
|
|
|
@ -8,7 +8,9 @@ local trash_bin_formspec =
|
|||
'size[8,6]'..
|
||||
'textarea[.5,;5,2;;;Put trash in its place]' ..
|
||||
'list[current_name;trash;6,1;1,1;]'..
|
||||
'list[current_player;main;0,3;8,3;]'
|
||||
'list[current_player;main;0,3;8,3;]'..
|
||||
'listring[current_player;main]'..
|
||||
'listring[current_name;trash]'
|
||||
|
||||
minetest.register_node('tasks:trash_bin', { --This is the node that can be placed.
|
||||
description = 'Trash Bin',
|
||||
|
@ -67,7 +69,41 @@ minetest.register_node('tasks:trash_bin', { --This is the node that can be place
|
|||
end,
|
||||
})
|
||||
|
||||
for i = 1,2 do
|
||||
minetest.register_node('tasks:trash_1', {
|
||||
description = 'Rubbish',
|
||||
drawtype = 'mesh',
|
||||
mesh = 'decals_mesh.obj',
|
||||
tiles = {'tasks_trash_1.png'},
|
||||
use_texture_alpha = 'clip',
|
||||
inventory_image = 'tasks_trash_1.png',
|
||||
wield_image = 'tasks_trash_1.png',
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
buildable_to = true,
|
||||
stack_max = 1,
|
||||
groups = {breakable=1},
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {{-.4, -.5, -.4, .4, -.45, .4}}
|
||||
},
|
||||
on_drop = lobby.no_drop,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local player_inv = puncher:get_inventory()
|
||||
if not player_inv:contains_item('main', {name='tasks:trash_1', count = 1}) then
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
player_inv:add_item('main', 'tasks:trash_1')
|
||||
minetest.set_node(pos, {name = 'tasks:trash', param2 = 1})
|
||||
local time = math.random(30,600)
|
||||
timer:start(time)
|
||||
else
|
||||
minetest.chat_send_player(puncher:get_player_name(), 'You can only carry one piece of trash at a time.')
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
for i = 2,4 do
|
||||
|
||||
minetest.register_node('tasks:trash_'..i, {
|
||||
description = 'Rubbish',
|
||||
|
@ -81,8 +117,9 @@ for i = 1,2 do
|
|||
paramtype2 = 'facedir',
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
buildable_to = true,
|
||||
stack_max = 1,
|
||||
groups = {breakable=1},
|
||||
groups = {not_in_creative_inventory=1, breakable=1},
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {{-.4, -.5, -.4, .4, -.45, .4}}
|
||||
|
@ -110,10 +147,11 @@ minetest.register_node('tasks:trash', {
|
|||
walkable = false,
|
||||
pointable = false,
|
||||
sunlight_propagates = true,
|
||||
buildable_to = true,
|
||||
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,2)
|
||||
local trash_ran = math.random(1,4)
|
||||
minetest.set_node(pos, {name = 'tasks:trash_'..trash_ran, param2 = ran_param2})
|
||||
end,
|
||||
})
|
||||
|
|
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,5 @@
|
|||
Traitor aims to be a game similar to Among Us. I've never actually played Among Us though, so your mileage may vary. :)
|
||||
|
||||
The game provides nodes and mechanics for building and playing 'levels', but has no mapgen, relying entirely on user generated content for the map. A spawn hub should be built around 0,0,0. New players who haven't yet completed the tutorial or played a level will spawn at -30, 0, 12. Currently both spawn locations are hard-coded, but they will be configurable later.
|
||||
|
||||
To create a new world/server grant youself free and fly, teleport to 0,0,0 and use world edit to create a platform for new players to spawn onto. You may want to build walls around the platform so people can't walk off the edge and fall forever.
|