Add credits screen
This commit is contained in:
parent
175cb44fb1
commit
d07e415b37
|
@ -2,22 +2,22 @@ mcl_credits = {
|
|||
players = {},
|
||||
}
|
||||
|
||||
mcl_credits.description = "A faithful Open Source imitation of Minecraft"
|
||||
mcl_credits.description = "A faithful Open Source clone of Minecraft"
|
||||
|
||||
-- Sub-lists are sorted by number of commits
|
||||
-- Sub-lists are sorted by number of commits, but the list should not be rearranged (-> new contributors are just added at the end of the list)
|
||||
mcl_credits.people = {
|
||||
{"Creator of MineClone", {
|
||||
{"Creator of MineClone", 0x0A9400, {
|
||||
"davedevils",
|
||||
}},
|
||||
{"Creator of MineClone2", {
|
||||
{"Creator of MineClone2", 0xFBF837, {
|
||||
"Wuzzy",
|
||||
}},
|
||||
{"Maintainers", {
|
||||
{"Maintainers", 0xFF51D5, {
|
||||
"Fleckenstein",
|
||||
"kay27",
|
||||
"oilboi",
|
||||
}},
|
||||
{"Developers", {
|
||||
{"Developers", 0xF84355, {
|
||||
"bzoss",
|
||||
"AFCMS",
|
||||
"epCode",
|
||||
|
@ -28,7 +28,7 @@ mcl_credits.people = {
|
|||
"Nicu",
|
||||
"aligator",
|
||||
}},
|
||||
{"Contributors", {
|
||||
{"Contributors", 0x52FF00, {
|
||||
"Code-Sploit",
|
||||
"Laurent Rocher",
|
||||
"HimbeerserverDE",
|
||||
|
@ -55,11 +55,11 @@ mcl_credits.people = {
|
|||
"nickolas360",
|
||||
"yutyo",
|
||||
}},
|
||||
{"3D Models", {
|
||||
{"3D Models", 0x0019FF, {
|
||||
"22i",
|
||||
"tobyplowy",
|
||||
}},
|
||||
{"Textures", {
|
||||
{"Textures", 0xFF9705, {
|
||||
"XSSheep",
|
||||
"kingoscargames",
|
||||
"leorockway",
|
||||
|
@ -67,39 +67,125 @@ mcl_credits.people = {
|
|||
}},
|
||||
}
|
||||
|
||||
local function add_hud_element(def, huds, y)
|
||||
def.alignment = {x = 0, y = 0}
|
||||
def.position = {x = 0.5, y = 0}
|
||||
def.offset = {x = 0, y = y}
|
||||
def.z_index = 1001
|
||||
local id = huds.player:hud_add(def)
|
||||
table.insert(huds.ids, id)
|
||||
huds.moving[id] = y
|
||||
return id
|
||||
end
|
||||
|
||||
function mcl_credits.show(player)
|
||||
local name = player:get_player_name()
|
||||
if mcl_credits.players[name] then
|
||||
return
|
||||
end
|
||||
local hud_list = {
|
||||
player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
text = "menu_bg.png",
|
||||
position = {x = 0, y = 0},
|
||||
alignment = {x = 1, y = 1},
|
||||
scale = {x = -100, y = -100},
|
||||
z_index = 1000,
|
||||
})
|
||||
local huds = {
|
||||
new = true, -- workaround for MT < 5.5 (sending hud_add and hud_remove in the same tick)
|
||||
player = player,
|
||||
moving = {},
|
||||
ids = {
|
||||
player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
text = "menu_bg.png",
|
||||
position = {x = 0, y = 0},
|
||||
alignment = {x = 1, y = 1},
|
||||
scale = {x = -100, y = -100},
|
||||
z_index = 1000,
|
||||
}),
|
||||
player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
text = "Sneak to skip",
|
||||
position = {x = 1, y = 1},
|
||||
alignment = {x = -1, y = -1},
|
||||
offset = {x = -5, y = -5},
|
||||
z_index = 1001,
|
||||
number = 0xFFFFFF,
|
||||
})
|
||||
},
|
||||
}
|
||||
mcl_credits.players[name] = hud_list
|
||||
add_hud_element({
|
||||
hud_elem_type = "image",
|
||||
text = "mineclone2_logo.png",
|
||||
scale = {x = 1, y = 1},
|
||||
}, huds, 300, 0)
|
||||
add_hud_element({
|
||||
hud_elem_type = "text",
|
||||
text = mcl_credits.description,
|
||||
number = 0x757575,
|
||||
scale = {x = 5, y = 5},
|
||||
}, huds, 350, 0)
|
||||
local y = 450
|
||||
for _, group in ipairs(mcl_credits.people) do
|
||||
add_hud_element({
|
||||
hud_elem_type = "text",
|
||||
text = group[1],
|
||||
number = group[2],
|
||||
scale = {x = 3, y = 3},
|
||||
}, huds, y, 0)
|
||||
y = y + 25
|
||||
for _, name in ipairs(group[3]) do
|
||||
y = y + 25
|
||||
add_hud_element({
|
||||
hud_elem_type = "text",
|
||||
text = name,
|
||||
number = 0xFFFFFF,
|
||||
scale = {x = 1, y = 1},
|
||||
}, huds, y, 0)
|
||||
end
|
||||
y = y + 200
|
||||
end
|
||||
huds.icon = add_hud_element({
|
||||
hud_elem_type = "image",
|
||||
text = "mineclone2_icon.png",
|
||||
scale = {x = 1, y = 1},
|
||||
}, huds, y)
|
||||
mcl_credits.players[name] = huds
|
||||
end
|
||||
|
||||
function mcl_credits.hide(player)
|
||||
local name = player:get_player_name()
|
||||
local list = mcl_credits.players[name]
|
||||
if list then
|
||||
for _, id in pairs(list) do
|
||||
local huds = mcl_credits.players[name]
|
||||
if huds then
|
||||
for _, id in pairs(huds.ids) do
|
||||
player:hud_remove(id)
|
||||
end
|
||||
end
|
||||
mcl_credits.players[name] = nil
|
||||
end
|
||||
|
||||
controls.register_on_press(function(player, key)
|
||||
if key == "sneak" then
|
||||
mcl_credits.hide(player)
|
||||
elseif key == "aux1" then
|
||||
mcl_credits.show(player)
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
mcl_credits.players[player:get_player_name()] = nil
|
||||
end)
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
for _, huds in pairs(mcl_credits.players) do
|
||||
local player = huds.player
|
||||
if not huds.new and player:get_player_control().sneak then
|
||||
mcl_credits.hide(player)
|
||||
else
|
||||
local moving = {}
|
||||
local any
|
||||
for id, y in pairs(huds.moving) do
|
||||
y = y - 1
|
||||
if y > -100 then
|
||||
if id == huds.icon then
|
||||
y = math.max(400, y)
|
||||
else
|
||||
any = true
|
||||
end
|
||||
player:hud_change(id, "offset", {x = 0, y = y})
|
||||
moving[id] = y
|
||||
end
|
||||
end
|
||||
if not any then
|
||||
mcl_credits.hide(player)
|
||||
end
|
||||
huds.moving = moving
|
||||
end
|
||||
huds.new = false
|
||||
end
|
||||
end)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
name = mcl_credits
|
||||
author = Fleckenstein
|
||||
description = Show a HUD containing the credits
|
||||
depends = controls
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue