… | |
… | |
420 | undef |
420 | undef |
421 | }; |
421 | }; |
422 | } |
422 | } |
423 | |
423 | |
424 | sub face_update { |
424 | sub face_update { |
425 | my ($self, $facenum, $face) = @_; |
425 | my ($self, $facenum, $face, $changed) = @_; |
426 | |
426 | |
427 | $self->{tilecache}->put ($face->{id} => $face->{image}); #TODO: try to avoid duplicate writes |
427 | $self->{tilecache}->put ($face->{id} => $face->{image}) if $changed; |
428 | |
428 | |
429 | $self->set_texture ($face->{id} => delete $face->{image}); |
429 | $self->set_texture ($face->{id} => delete $face->{image}); |
430 | } |
430 | } |
431 | |
431 | |
432 | sub set_texture { |
432 | sub set_texture { |
… | |
… | |
919 | sub destroy { |
919 | sub destroy { |
920 | my ($self) = @_; |
920 | my ($self) = @_; |
921 | |
921 | |
922 | #Carp::cluck "debug\n";#d# #todo# enable: destroy gets called twice because scalar keys {} is 1 |
922 | #Carp::cluck "debug\n";#d# #todo# enable: destroy gets called twice because scalar keys {} is 1 |
923 | |
923 | |
|
|
924 | $self->{conn}->send ("ext npc_dialog_end $self->{token}") if $self->{token}; |
924 | delete $self->{conn}{npc_dialog}; |
925 | delete $self->{conn}{npc_dialog}; |
925 | $self->{conn}->disconnect_ext ($self->{token}); |
926 | $self->{conn}->disconnect_ext ($self->{token}); |
926 | |
927 | |
927 | $self->SUPER::destroy; |
928 | $self->SUPER::destroy; |
928 | } |
929 | } |