Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
illuna-minetest
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Illuna-Minetest
illuna-minetest
Commits
8cf26bb0
Commit
8cf26bb0
authored
9 years ago
by
Jean-Patrick Guerrero
Committed by
Zeno-
9 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Mainmenu: Code cleaning
parent
65db88d2
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
builtin/mainmenu/common.lua
+49
-101
49 additions, 101 deletions
builtin/mainmenu/common.lua
builtin/mainmenu/tab_multiplayer.lua
+47
-57
47 additions, 57 deletions
builtin/mainmenu/tab_multiplayer.lua
with
96 additions
and
158 deletions
builtin/mainmenu/common.lua
+
49
−
101
View file @
8cf26bb0
...
...
@@ -22,8 +22,7 @@ menudata = {}
--------------------------------------------------------------------------------
-- Local cached values
--------------------------------------------------------------------------------
local
min_supp_proto
local
max_supp_proto
local
min_supp_proto
,
max_supp_proto
function
common_update_cached_supp_proto
()
min_supp_proto
=
core
.
get_min_supp_proto
()
...
...
@@ -36,31 +35,24 @@ common_update_cached_supp_proto()
--------------------------------------------------------------------------------
local
function
render_client_count
(
n
)
if
n
>
99
then
return
'99+'
elseif
n
>=
0
then
return
tostring
(
n
)
else
return
'?'
end
if
n
>
99
then
return
'99+'
elseif
n
>=
0
then
return
tostring
(
n
)
else
return
'?'
end
end
local
function
configure_selected_world_params
(
idx
)
local
worldconfig
=
modmgr
.
get_worldconfig
(
menudata
.
worldlist
:
get_list
()[
idx
].
path
)
if
worldconfig
.
creative_mode
~=
nil
then
local
worldconfig
=
modmgr
.
get_worldconfig
(
menudata
.
worldlist
:
get_list
()[
idx
].
path
)
if
worldconfig
.
creative_mode
then
core
.
setting_set
(
"creative_mode"
,
worldconfig
.
creative_mode
)
end
if
worldconfig
.
enable_damage
~=
nil
then
if
worldconfig
.
enable_damage
then
core
.
setting_set
(
"enable_damage"
,
worldconfig
.
enable_damage
)
end
end
--------------------------------------------------------------------------------
function
image_column
(
tooltip
,
flagname
)
return
"image,"
..
"tooltip="
..
core
.
formspec_escape
(
tooltip
)
..
","
..
return
"image,tooltip="
..
core
.
formspec_escape
(
tooltip
)
..
","
..
"0="
..
core
.
formspec_escape
(
defaulttexturedir
..
"blank.png"
)
..
","
..
"1="
..
core
.
formspec_escape
(
defaulttexturedir
..
"server_flags_"
..
flagname
..
".png"
)
end
...
...
@@ -69,13 +61,13 @@ end
function
order_favorite_list
(
list
)
local
res
=
{}
--orders the favorite list after support
for
i
=
1
,
#
list
,
1
do
for
i
=
1
,
#
list
do
local
fav
=
list
[
i
]
if
is_server_protocol_compat
(
fav
.
proto_min
,
fav
.
proto_max
)
then
res
[
#
res
+
1
]
=
fav
end
end
for
i
=
1
,
#
list
,
1
do
for
i
=
1
,
#
list
do
local
fav
=
list
[
i
]
if
not
is_server_protocol_compat
(
fav
.
proto_min
,
fav
.
proto_max
)
then
res
[
#
res
+
1
]
=
fav
...
...
@@ -87,21 +79,12 @@ end
--------------------------------------------------------------------------------
function
render_favorite
(
spec
,
is_favorite
)
local
text
=
""
if
spec
.
name
~=
nil
then
if
spec
.
name
then
text
=
text
..
core
.
formspec_escape
(
spec
.
name
:
trim
())
-- if spec.description ~= nil and
-- core.formspec_escape(spec.description):trim() ~= "" then
-- text = text .. " (" .. core.formspec_escape(spec.description) .. ")"
-- end
else
if
spec
.
address
~=
nil
then
text
=
text
..
spec
.
address
:
trim
()
if
spec
.
port
~=
nil
then
text
=
text
..
":"
..
spec
.
port
end
elseif
spec
.
address
then
text
=
text
..
spec
.
address
:
trim
()
if
spec
.
port
then
text
=
text
..
":"
..
spec
.
port
end
end
...
...
@@ -114,33 +97,24 @@ function render_favorite(spec, is_favorite)
details
=
"0,"
end
if
spec
.
clients
~=
nil
and
spec
.
clients_max
~=
nil
then
if
spec
.
clients
and
spec
.
clients_max
then
local
clients_color
=
''
local
clients_percent
=
100
*
spec
.
clients
/
spec
.
clients_max
-- Choose a color depending on how many clients are connected
-- (relatively to clients_max)
if
spec
.
clients
==
0
then
clients_color
=
''
-- 0 players: default/white
elseif
spec
.
clients
==
spec
.
clients_max
then
clients_color
=
'#dd5b5b'
-- full server: red (darker)
elseif
clients_percent
<=
60
then
clients_color
=
'#a1e587'
-- 0-60%: green
elseif
clients_percent
<=
90
then
clients_color
=
'#ffdc97'
-- 60-90%: yellow
else
clients_color
=
'#ffba97'
-- 90-100%: orange
if
grey_out
then
clients_color
=
'#aaaaaa'
elseif
spec
.
clients
==
0
then
clients_color
=
''
-- 0 players: default/white
elseif
clients_percent
<=
60
then
clients_color
=
'#a1e587'
-- 0-60%: green
elseif
clients_percent
<=
90
then
clients_color
=
'#ffdc97'
-- 60-90%: yellow
elseif
clients_percent
==
100
then
clients_color
=
'#dd5b5b'
-- full server: red (darker)
else
clients_color
=
'#ffba97'
-- 90-100%: orange
end
if
grey_out
then
client
s
_co
lor
=
'#aaaaaa'
end
details
=
details
..
clients_color
..
','
..
render_
client_co
unt
(
spec
.
clients
)
..
',/,'
..
r
end
er_client_count
(
spec
.
clients_max
)
..
','
details
=
details
..
clients_color
..
','
..
render_client_count
(
spec
.
clients
)
..
','
..
'/,'
..
render_client_count
(
spec
.
clients_max
)
..
','
elseif
grey_out
then
details
=
details
..
'#aaaaaa,?,/,?,'
else
...
...
@@ -191,56 +165,36 @@ end
--------------------------------------------------------------------------------
function
menu_render_worldlist
()
local
retval
=
""
local
current_worldlist
=
menudata
.
worldlist
:
get_list
()
for
i
,
v
in
ipairs
(
current_worldlist
)
do
if
retval
~=
""
then
retval
=
retval
..
","
end
for
i
,
v
in
ipairs
(
current_worldlist
)
do
if
retval
~=
""
then
retval
=
retval
..
","
end
retval
=
retval
..
core
.
formspec_escape
(
v
.
name
)
..
" \\["
..
core
.
formspec_escape
(
v
.
gameid
)
..
"
\\
]"
" \\["
..
core
.
formspec_escape
(
v
.
gameid
)
..
"
\\
]"
end
return
retval
end
--------------------------------------------------------------------------------
function
menu_handle_key_up_down
(
fields
,
textlist
,
settingname
)
if
fields
[
"key_up"
]
then
local
oldidx
=
core
.
get_textlist_index
(
textlist
)
if
oldidx
~=
nil
and
oldidx
>
1
then
local
newidx
=
oldidx
-
1
core
.
setting_set
(
settingname
,
menudata
.
worldlist
:
get_raw_index
(
newidx
))
configure_selected_world_params
(
newidx
)
function
menu_handle_key_up_down
(
fields
,
textlist
,
settingname
)
local
oldidx
,
newidx
=
core
.
get_textlist_index
(
textlist
)
if
fields
.
key_up
or
fields
.
key_down
then
if
fields
.
key_up
and
oldidx
and
oldidx
>
1
then
newidx
=
oldidx
-
1
elseif
fields
.
key_down
and
oldidx
and
oldidx
<
menudata
.
worldlist
:
size
()
then
newidx
=
oldidx
+
1
end
core
.
setting_set
(
settingname
,
menudata
.
worldlist
:
get_raw_index
(
newidx
))
configure_selected_world_params
(
newidx
)
return
true
end
if
fields
[
"key_down"
]
then
local
oldidx
=
core
.
get_textlist_index
(
textlist
)
if
oldidx
~=
nil
and
oldidx
<
menudata
.
worldlist
:
size
()
then
local
newidx
=
oldidx
+
1
core
.
setting_set
(
settingname
,
menudata
.
worldlist
:
get_raw_index
(
newidx
))
configure_selected_world_params
(
newidx
)
end
return
true
end
return
false
end
--------------------------------------------------------------------------------
function
asyncOnlineFavourites
()
if
not
menudata
.
public_known
then
menudata
.
public_known
=
{{
name
=
fgettext
(
"Loading..."
),
...
...
@@ -267,24 +221,18 @@ function asyncOnlineFavourites()
end
--------------------------------------------------------------------------------
function
text2textlist
(
xpos
,
ypos
,
width
,
height
,
tl_name
,
textlen
,
text
,
transparency
)
local
textlines
=
core
.
splittext
(
text
,
textlen
)
function
text2textlist
(
xpos
,
ypos
,
width
,
height
,
tl_name
,
textlen
,
text
,
transparency
)
local
textlines
=
core
.
splittext
(
text
,
textlen
)
local
retval
=
"textlist["
..
xpos
..
","
..
ypos
..
";"
..
width
..
","
..
height
..
";"
..
tl_name
..
";"
local
retval
=
"textlist["
..
xpos
..
","
..
ypos
..
";"
..
width
..
","
..
height
..
";"
..
tl_name
..
";"
for
i
=
1
,
#
textlines
,
1
do
textlines
[
i
]
=
textlines
[
i
]:
gsub
(
"
\r
"
,
""
)
for
i
=
1
,
#
textlines
do
textlines
[
i
]
=
textlines
[
i
]:
gsub
(
"
\r
"
,
""
)
retval
=
retval
..
core
.
formspec_escape
(
textlines
[
i
])
..
","
end
retval
=
retval
..
";0;"
if
transparency
then
retval
=
retval
..
"true"
end
if
transparency
then
retval
=
retval
..
"true"
end
retval
=
retval
..
"]"
return
retval
...
...
@@ -297,10 +245,10 @@ end
--------------------------------------------------------------------------------
function
is_server_protocol_compat_or_error
(
server_proto_min
,
server_proto_max
)
if
not
is_server_protocol_compat
(
server_proto_min
,
server_proto_max
)
then
local
server_prot_ver_info
local
client_prot_ver_info
local
server_prot_ver_info
,
client_prot_ver_info
local
s_p_min
=
server_proto_min
or
13
local
s_p_max
=
server_proto_max
or
24
if
s_p_min
~=
s_p_max
then
server_prot_ver_info
=
fgettext_ne
(
"Server supports protocol versions between $1 and $2. "
,
s_p_min
,
s_p_max
)
...
...
@@ -329,7 +277,7 @@ function menu_worldmt(selected, setting, value)
local
filename
=
world
.
path
..
DIR_DELIM
..
"world.mt"
local
world_conf
=
Settings
(
filename
)
if
value
~=
nil
then
if
value
then
if
not
world_conf
:
write
()
then
core
.
log
(
"error"
,
"Failed to write world config file"
)
end
...
...
@@ -347,7 +295,7 @@ function menu_worldmt_legacy(selected)
local
modes_names
=
{
"creative_mode"
,
"enable_damage"
,
"server_announce"
}
for
_
,
mode_name
in
pairs
(
modes_names
)
do
local
mode_val
=
menu_worldmt
(
selected
,
mode_name
)
if
mode_val
~=
nil
then
if
mode_val
then
core
.
setting_set
(
mode_name
,
mode_val
)
else
menu_worldmt
(
selected
,
mode_name
,
core
.
setting_get
(
mode_name
))
...
...
This diff is collapsed.
Click to expand it.
builtin/mainmenu/tab_multiplayer.lua
+
47
−
57
View file @
8cf26bb0
...
...
@@ -81,7 +81,7 @@ local function get_formspec(tabview, name, tabdata)
end
end
if
tabdata
.
fav_selected
~=
nil
then
if
tabdata
.
fav_selected
then
retval
=
retval
..
";"
..
tabdata
.
fav_selected
..
"]"
else
retval
=
retval
..
";0]"
...
...
@@ -92,13 +92,13 @@ end
--------------------------------------------------------------------------------
local
function
main_button_handler
(
tabview
,
fields
,
name
,
tabdata
)
if
fields
[
"
te_name
"
]
~=
nil
then
gamedata
.
playername
=
fields
[
"
te_name
"
]
core
.
setting_set
(
"name"
,
fields
[
"
te_name
"
]
)
if
fields
.
te_name
then
gamedata
.
playername
=
fields
.
te_name
core
.
setting_set
(
"name"
,
fields
.
te_name
)
end
if
fields
[
"
favourites
"
]
~=
nil
then
local
event
=
core
.
explode_table_event
(
fields
[
"
favourites
"
]
)
if
fields
.
favourites
then
local
event
=
core
.
explode_table_event
(
fields
.
favourites
)
local
fav
=
menudata
.
favorites
[
event
.
row
]
if
event
.
type
==
"DCL"
then
...
...
@@ -108,21 +108,22 @@ local function main_button_handler(tabview, fields, name, tabdata)
fav
.
proto_min
,
fav
.
proto_max
)
then
return
true
end
gamedata
.
address
=
fav
.
address
gamedata
.
port
=
fav
.
port
gamedata
.
playername
=
fields
[
"te_name"
]
if
fields
[
"te_pwd"
]
~=
nil
then
gamedata
.
password
=
fields
[
"te_pwd"
]
end
gamedata
.
playername
=
fields
.
te_name
gamedata
.
selected_world
=
0
if
fields
.
te_pwd
then
gamedata
.
password
=
fields
.
te_pwd
end
gamedata
.
servername
=
fav
.
name
gamedata
.
serverdescription
=
fav
.
description
if
gamedata
.
address
~=
nil
and
gamedata
.
port
~=
nil
then
core
.
setting_set
(
"address"
,
gamedata
.
address
)
core
.
setting_set
(
"remote_port"
,
gamedata
.
port
)
if
gamedata
.
address
and
gamedata
.
port
then
core
.
setting_set
(
"address"
,
gamedata
.
address
)
core
.
setting_set
(
"remote_port"
,
gamedata
.
port
)
core
.
start
()
end
end
...
...
@@ -144,47 +145,41 @@ local function main_button_handler(tabview, fields, name, tabdata)
end
end
if
address
~=
nil
and
port
~=
nil
then
core
.
setting_set
(
"address"
,
address
)
core
.
setting_set
(
"remote_port"
,
port
)
if
address
and
port
then
core
.
setting_set
(
"address"
,
address
)
core
.
setting_set
(
"remote_port"
,
port
)
end
tabdata
.
fav_selected
=
event
.
row
end
return
true
end
end
if
fields
[
"key_up"
]
~=
nil
or
fields
[
"key_down"
]
~=
nil
then
if
fields
.
key_up
or
fields
.
key_down
then
local
fav_idx
=
core
.
get_table_index
(
"favourites"
)
local
fav
=
menudata
.
favorites
[
fav_idx
]
if
fav_idx
~=
nil
then
if
fields
[
"
key_up
"
]
~=
nil
and
fav_idx
>
1
then
fav_idx
=
fav_idx
-
1
else
if
fields
[
"
key_down
"
]
and
fav_idx
<
#
menudata
.
favorites
then
fav_idx
=
fav_idx
+
1
end
end
if
fav_idx
then
if
fields
.
key_up
and
fav_idx
>
1
then
fav_idx
=
fav_idx
-
1
elseif
fields
.
key_down
and
fav_idx
<
#
menudata
.
favorites
then
fav_idx
=
fav_idx
+
1
end
else
fav_idx
=
1
end
if
menudata
.
favorites
==
nil
or
menudata
.
favorites
[
fav_idx
]
==
nil
then
if
not
menudata
.
favorites
or
not
fav
then
tabdata
.
fav_selected
=
0
return
true
end
local
address
=
menudata
.
favorites
[
fav_idx
].
address
local
port
=
menudata
.
favorites
[
fav_idx
].
port
if
address
~=
nil
and
port
~=
nil
then
core
.
setting_set
(
"address"
,
address
)
core
.
setting_set
(
"remote_port"
,
port
)
local
address
=
fav
.
address
local
port
=
fav
.
port
if
address
and
port
then
core
.
setting_set
(
"address"
,
address
)
core
.
setting_set
(
"remote_port"
,
port
)
end
tabdata
.
fav_selected
=
fav_idx
...
...
@@ -204,22 +199,19 @@ local function main_button_handler(tabview, fields, name, tabdata)
return
true
end
if
(
fields
[
"btn_mp_connect"
]
~=
nil
or
fields
[
"key_enter"
]
~=
nil
)
and
fields
[
"te_address"
]
~=
nil
and
fields
[
"te_port"
]
~=
nil
then
gamedata
.
playername
=
fields
[
"te_name"
]
gamedata
.
password
=
fields
[
"te_pwd"
]
gamedata
.
address
=
fields
[
"te_address"
]
gamedata
.
port
=
fields
[
"te_port"
]
if
(
fields
.
btn_mp_connect
or
fields
.
key_enter
)
and
fields
.
te_address
and
fields
.
te_port
then
gamedata
.
playername
=
fields
.
te_name
gamedata
.
password
=
fields
.
te_pwd
gamedata
.
address
=
fields
.
te_address
gamedata
.
port
=
fields
.
te_port
gamedata
.
selected_world
=
0
local
fav_idx
=
core
.
get_table_index
(
"favourites"
)
local
fav
=
menudata
.
favorites
[
fav_idx
]
if
fav_idx
~=
nil
and
fav_idx
<=
#
menudata
.
favorites
and
menudata
.
favorites
[
fav_idx
]
.
address
==
fields
[
"
te_address
"
]
and
menudata
.
favorites
[
fav_idx
]
.
port
==
fields
[
"
te_port
"
]
then
if
fav_idx
and
fav_idx
<=
#
menudata
.
favorites
and
fav
.
address
==
fields
.
te_address
and
fav
.
port
==
fields
.
te_port
then
local
fav
=
menudata
.
favorites
[
fav_idx
]
gamedata
.
servername
=
fav
.
name
gamedata
.
serverdescription
=
fav
.
description
...
...
@@ -233,10 +225,8 @@ local function main_button_handler(tabview, fields, name, tabdata)
gamedata
.
serverdescription
=
""
end
gamedata
.
selected_world
=
0
core
.
setting_set
(
"address"
,
fields
[
"te_address"
])
core
.
setting_set
(
"remote_port"
,
fields
[
"te_port"
])
core
.
setting_set
(
"address"
,
fields
.
te_address
)
core
.
setting_set
(
"remote_port"
,
fields
.
te_port
)
core
.
start
()
return
true
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment