Games-Construder
view release on metacpan or search on metacpan
lib/Games/Construder/Client/Frontend.pm view on Meta::CPAN
glViewport (0, 0, $WIDTH, $HEIGHT);
}
sub fog {
my ($self) = @_;
$self->{res}->{config}->{fog} eq ''
? $FOG_DEFAULT
: $self->{res}->{config}->{fog}
}
sub update_fog {
my ($self) = @_;
my $fog = $FOGS{$self->fog ()} || $FOGS{$FOG_DEFAULT};
glClearColor (@$fog);
glFogfv_p (GL_FOG_COLOR, @$fog);
}
# 0 front 1 top 2 back 3 left 4 right 5 bottom
my @indices = (
qw/ 0 1 2 3 /, # 0 front
qw/ 1 5 6 2 /, # 1 top
lib/Games/Construder/Client/Frontend.pm view on Meta::CPAN
sub input_mouse_button : event_cb {
my ($self, $btn, $down) = @_;
return unless $down;
my $sbp = $self->{selected_box};
my $sbbp = $self->{selected_build_box};
$self->position_action ($sbp, $sbbp, $btn);
}
sub update_player_pos : event_cb {
my ($self, $pos) = @_;
}
sub visible_chunks_changed : event_cb {
my ($self, $new, $old, $req) = @_;
# TODO: $req might be issued again and again with the same chunks,
# we should mabye rate limit that for more bandwidth friendly
# behaviour
}
lib/Games/Construder/Client/UI.pm view on Meta::CPAN
$font eq 'big' ? $BIG_FONT : $font eq 'small' ? $SMALL_FONT : $NORM_FONT;
}
sub fit_size_pot {
my ($size) = @_;
my $gls = 1;
$gls++ while $size->[0] > (2**$gls) || $size->[1] > (2**$gls);
2**$gls
}
sub update {
my ($self, $gui_desc) = @_;
if (defined $gui_desc) {
delete $self->{key_repeat};
$self->{desc} = $gui_desc;
}
my $win = $self->{desc}->{window};
$self->{element_offset} = 0;
lib/Games/Construder/Server/Player.pm view on Meta::CPAN
delete $self->{upd_score_hl_tmout};
delete $self->{death_timer};
delete $self->{tick_timer};
ctr_log (info => "Player %s logged out", $self->{name});
#d# print Devel::FindRef::track $self;
}
my $world_c = 0;
sub update_pos {
my ($self, $pos, $lv) = @_;
if ($self->{freeze_update_pos} ne '') {
ctr_log (debug => "update_pos thrown away, awaiting teleport confirmation!");
return;
}
my $opos = $self->{data}->{pos};
$self->{data}->{pos} = $pos;
my $olv = $self->{data}->{look_vec} || [0,0,0];
lib/Games/Construder/Server/Player.pm view on Meta::CPAN
$self->send_client ({ cmd => "chunk", pos => $chnk }, \$buf);
$self->{sent_chunks}->{$id} = $chnk;
delete $self->{to_send_chunks}->{$id};
}
sub msg {
my ($self, $error, $msg) = @_;
$self->{uis}->{msgbox}->show ($error, $msg);
}
sub update_score {
my ($self, $hl) = @_;
$self->{uis}->{score}->show ($hl);
}
sub query {
my ($self, $pos) = @_;
return unless @$pos;
world_mutate_at ($pos, sub {
my ($data) = @_;
lib/Games/Construder/Server/Player.pm view on Meta::CPAN
$assign->{sel_mat} = $left[$i + 1];
last;
}
}
delete $self->{assign_ment_hl};
$self->update_assignment_highlight;
$self->{uis}->{assignment_time}->show;
}
sub update_assignment_highlight {
my ($self) = @_;
my $assign = $self->{data}->{assignment};
my $selected = $assign->{sel_mat};
if ($assign->{left}->{$selected} <= 0) {
($assign->{sel_mat}) = grep {
$assign->{left}->{$_} > 0
} keys %{$assign->{left}};
delete $self->{assign_ment_hl};
}
lib/Games/Construder/Server/UI.pm view on Meta::CPAN
sub hide_ui {
my ($self, $name) = @_;
$self->{pl}->{uis}->{$name}->hide;
}
sub delete_ui {
my ($self, @args) = @_;
$self->{pl}->delete_ui (@args);
}
sub update {
my ($self, @args) = @_;
$self->show (@args) if $self->{shown};
}
sub show {
my ($self, @args) = @_;
my $lyout = $self->layout (@args);
$lyout->{commands}->{default_keys} = { $self->commands };
if ($self->{cmd_need_select_boxes}) {
$lyout->{commands}->{need_selected_boxes} = 1;
( run in 0.539 second using v1.01-cache-2.11-cpan-49f99fa48dc )