Deliantra-Client

 view release on metacpan or  search on metacpan

DC/Protocol.pm  view on Meta::CPAN

   my ($self, $facenum, $face, $changed) = @_;

   if ($face->{type} == 0) {
      # image, FT_FACE
      DC::DB::put tilecache => $face->{id} => $face->{data}, sub { }
         if $changed;

      $self->have_tile ($face->{id}, delete $face->{data});

   } elsif ($face->{type} & 1) {
      # split metadata case, FT_MUSIC, FT_SOUND
      if ($changed) { # new data
         my ($meta, $data) = unpack "(w/a*)*", $face->{data};
         $face->{data} = $meta;

         # rely on strict ordering here and also on later fetch
         DC::DB::put res_data => $face->{name} => $data, sub { };
         DC::DB::put res_meta => $face->{name} => $meta, sub { };
      }

      $face->{data} = $self->{json_coder}->decode ($face->{data});



( run in 2.597 seconds using v1.01-cache-2.11-cpan-71847e10f99 )