1
0
Fork 0
MineClone2/mods/HUD/mcl_credits/init.lua

265 lines
5.1 KiB
Lua
Raw Normal View History

2021-07-11 11:42:12 +00:00
local modname = minetest.get_current_modname()
local S = minetest.get_translator(modname)
2021-04-04 17:13:46 +00:00
mcl_credits = {
players = {},
}
2021-07-11 11:42:12 +00:00
mcl_credits.description = S("A faithful Open Source clone of Minecraft")
2021-04-04 17:13:46 +00:00
2021-04-06 09:55:21 +00:00
-- 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)
2021-04-04 17:13:46 +00:00
mcl_credits.people = {
2021-07-11 11:42:12 +00:00
{ S("Creator of MineClone"), 0x0A9400, {
2021-04-04 17:13:46 +00:00
"davedevils",
}},
2021-07-11 11:42:12 +00:00
{ S("Creator of MineClone2"), 0xFBF837, {
2021-04-04 17:13:46 +00:00
"Wuzzy",
}},
2021-07-11 11:42:12 +00:00
{ S("Maintainers"), 0xFF51D5, {
2021-04-04 17:13:46 +00:00
"Fleckenstein",
"kay27",
"oilboi",
}},
2021-07-11 11:42:12 +00:00
{ S("Developers"), 0xF84355, {
2021-04-04 17:13:46 +00:00
"bzoss",
"AFCMS",
"epCode",
"ryvnf",
"iliekprogrammar",
"MysticTempest",
"Rootyjr",
"Nicu",
"aligator",
2021-04-14 14:37:07 +00:00
"Code-Sploit",
2021-05-10 19:47:51 +00:00
"NO11",
2021-04-04 17:13:46 +00:00
}},
2021-07-11 11:42:12 +00:00
{ S("Contributors"), 0x52FF00, {
2021-04-04 17:13:46 +00:00
"Laurent Rocher",
"HimbeerserverDE",
"TechDudie",
"Alexander Minges",
"ArTee3",
"ZeDique la Ruleta",
"pitchum",
"wuniversales",
"Bu-Gee",
"David McMackins II",
"Nicholas Niro",
"Wouters Dorian",
"Blue Blancmange",
"Jared Moody",
"Li0n",
"Midgard",
"Saku Laesvuori",
"Yukitty",
"ZedekThePD",
"aldum",
"dBeans",
"nickolas360",
"yutyo",
2021-04-06 14:06:44 +00:00
"ztianyang",
"j45",
2021-04-04 17:13:46 +00:00
}},
2021-04-06 10:14:43 +00:00
{"MineClone5", 0xA60014, {
"kay27",
"Debiankaios",
"epCode",
"NO11",
"j45",
}},
2021-07-11 11:42:12 +00:00
{ S("Original Mod Authors"), 0x343434, {
2021-04-12 12:03:51 +00:00
"Wuzzy",
"Fleckenstein",
"BlockMen",
"TenPlus1",
"PilzAdam",
"ryvnf",
"stujones11",
"Arcelmi",
"celeron55",
"maikerumine",
"GunshipPenguin",
"Qwertymine3",
"Rochambeau",
"rubenwardy",
"stu",
"oilboi",
"4aiman",
"Kahrl",
"Krock",
"UgnilJoZ",
"lordfingle",
"22i",
"bzoss",
"kilbith",
"xeranas",
"kddekadenz",
"sofar",
"4Evergreen4",
"jordan4ibanez",
"paramat",
}},
2021-07-11 11:42:12 +00:00
{ S("3D Models"), 0x0019FF, {
2021-04-04 17:13:46 +00:00
"22i",
"tobyplowy",
"epCode",
2021-04-04 17:13:46 +00:00
}},
2021-07-11 11:42:12 +00:00
{ S("Textures"), 0xFF9705, {
2021-04-04 17:13:46 +00:00
"XSSheep",
"Wuzzy",
2021-04-04 17:13:46 +00:00
"kingoscargames",
"leorockway",
"xMrVizzy",
2021-05-10 19:47:51 +00:00
"yutyo",
"NO11",
}},
2021-07-11 11:42:12 +00:00
{ S("Translations"), 0x00FF60, {
"Wuzzy",
"Rocher Laurent",
"wuniversales",
"kay27",
"pitchum",
2021-04-04 17:13:46 +00:00
}},
}
2021-04-06 09:55:21 +00:00
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
2021-04-04 17:13:46 +00:00
function mcl_credits.show(player)
local name = player:get_player_name()
if mcl_credits.players[name] then
return
end
2021-04-06 09:55:21 +00:00
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",
2021-07-10 17:32:01 +00:00
text = "credits_bg.png",
2021-04-06 09:55:21 +00:00
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",
2021-07-11 11:42:12 +00:00
text = S("Sneak to skip"),
2021-04-06 09:55:21 +00:00
position = {x = 1, y = 1},
alignment = {x = -1, y = -1},
offset = {x = -5, y = -5},
z_index = 1001,
number = 0xFFFFFF,
}),
player:hud_add({
hud_elem_type = "text",
2021-07-11 11:42:12 +00:00
text = " "..S("Jump to speed up (additionally sprint)"),
position = {x = 0, y = 1},
alignment = {x = 1, y = -1},
offset = {x = -5, y = -5},
z_index = 1002,
number = 0xFFFFFF,
}),
2021-04-06 09:55:21 +00:00
},
2021-04-04 17:13:46 +00:00
}
2021-04-06 09:55:21 +00:00
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
2021-04-04 17:13:46 +00:00
end
function mcl_credits.hide(player)
local name = player:get_player_name()
2021-04-06 09:55:21 +00:00
local huds = mcl_credits.players[name]
if huds then
for _, id in pairs(huds.ids) do
2021-04-04 17:13:46 +00:00
player:hud_remove(id)
end
end
mcl_credits.players[name] = nil
end
2021-04-06 09:55:21 +00:00
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
local control = player:get_player_control()
if not huds.new and control.sneak then
2021-04-06 09:55:21 +00:00
mcl_credits.hide(player)
else
local moving = {}
local any
for id, y in pairs(huds.moving) do
2021-07-11 11:11:22 +00:00
y = y - 1
2021-07-11 11:42:12 +00:00
2021-07-11 11:11:22 +00:00
if control.jump then
y = y - 2
if control.aux1 then
y = y - 5
end
end
2021-04-06 09:55:21 +00:00
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
2021-04-04 17:13:46 +00:00
end
end)