Deliantra-Client
view release on metacpan or search on metacpan
bin/deliantra view on Meta::CPAN
$tbl2->add_at ($col + 1, $row, new DC::UI::Image
font => $FONT_FIXED,
can_hover => 1,
can_events => 1,
path => "ui/resist/resist_$_.png",
tooltip => $resist_names{$_}->[1],
);
$tbl2->add_at ($col + 0, $row, new DC::UI::Label
text => $resist_names{$_}->[0],
font => $FONT_FIXED,
align => 1,
can_hover => 1,
can_events => 1,
tooltip => $resist_names{$_}->[1],
);
$row++;
if ($row % 6 == 0) {
$col += 4;
$row = 0;
}
}
#update_stats_window ({});
$r
}
sub skill_window {
my $sw = new DC::UI::ScrolledWindow (expand => 1);
$sw->add ($STATWIDS->{skill_tbl} = new DC::UI::Table expand => 1, col_expand => [0, 0, 1, .1, 0, 0, 1, .1]);
$sw
}
sub formsep($) {
scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1
}
my $METASERVER_ATIME;
sub update_metaserver {
my ($metaserver_dialog) = @_;
$METASERVER = $metaserver_dialog
if defined $metaserver_dialog;
return if $METASERVER_ATIME > time;
$METASERVER_ATIME = time + 60;
my $table = $METASERVER->{table};
$table->clear;
$table->add_at (0, 0, my $label = new DC::UI::Label max_w => $WIDTH * 0.8, text => "fetching server list...");
my $ok = 0;
DC::background {
my $ua = DC::lwp_useragent;
DC::background_msg DC::decode_json +(DC::lwp_check $ua->get ($META_SERVER))->decoded_content;
} sub {
my ($msg) = @_;
if ($msg) {
$table->clear;
my @tip = (
"The current number of users logged in on the server.",
"The hostname of the server.",
"The time this server has been running without being restarted.",
"Short information about this server provided by its admins.",
);
my @col = qw(#Users Host Uptime Version Description);
$table->add_at ($_, 0, new DC::UI::Label
can_hover => 1, can_events => 1, fg => [1, 1, 0],
text => $col[$_], tooltip => $tip[$_])
for 0 .. $#col;
my @align = qw(1 0.5 1 1 0);
my $y = 0;
for my $m (@{ $msg->{servers} }) {
my ($ip, $last, $host, $users, $version, $desc, $ibytes, $obytes, $uptime, $highlight) =
@$m{qw(ip age hostname users version description ibytes obytes uptime highlight)};
for ($desc) {
s/<br>/\n/gi;
s/<li>/\n· /gi;
s/<.*?>//sgi;
s/&/&/g;
s/</</g;
s/>/>/g;
}
$uptime = sprintf "%dd %02d:%02d:%02d",
(int $uptime / 86400),
(int $uptime / 3600) % 24,
(int $uptime / 60) % 60,
$uptime % 60;
$m = [$users, $host, $uptime, $version, $desc];
$y++;
$table->add_at (scalar @$m, $y, new DC::UI::VBox children => [
(new DC::UI::Button
text => "Use",
tooltip => "Put this server into the <b>Host:Port</b> field",
on_activate => sub {
$HOST_ENTRY->set_text ($CFG->{profile}{default}{host} = $host);
$METASERVER->hide;
0
},
),
(new DC::UI::Empty expand => 1),
]);
$table->add_at ($_, $y, new DC::UI::Label
max_w => $::WIDTH * 0.4,
ellipsise => 0,
align => $align[$_],
( run in 1.859 second using v1.01-cache-2.11-cpan-39bf76dae61 )