… | |
… | |
219 | my $x = $o->{x} - $dx; |
219 | my $x = $o->{x} - $dx; |
220 | my $y = $o->{y} - $dy; |
220 | my $y = $o->{y} - $dy; |
221 | |
221 | |
222 | my $ext = $x|$y ? "+$x+$y" : ""; |
222 | my $ext = $x|$y ? "+$x+$y" : ""; |
223 | |
223 | |
224 | $o->{face} .= $ext; |
224 | $o->{face} .= $ext unless /^blank.x11$|^empty.x11$/; |
225 | |
225 | |
226 | my $visibility = delete $o->{visibility} if exists $o->{visibility}; |
226 | my $visibility = delete $o->{visibility} if exists $o->{visibility}; |
227 | my $magicmap = delete $o->{magicmap} if exists $o->{magicmap}; |
227 | my $magicmap = delete $o->{magicmap} if exists $o->{magicmap}; |
228 | |
228 | |
229 | my $anim = delete $o->{anim}; |
229 | my $anim = delete $o->{anim}; |
230 | |
230 | |
231 | if ($anim) { |
231 | if ($anim) { |
232 | $o->{animation} = "$o->{_name}$ext"; |
232 | $o->{animation} = "$o->{_name}"; |
233 | |
233 | |
234 | for (@$anim) { |
234 | for (@$anim) { |
235 | $_ .= $ext unless /^facings\s/; |
235 | $_ .= $ext unless /^facings\s|^blank.x11$|^empty.x11$/; |
236 | } |
236 | } |
237 | |
237 | |
238 | $ANIM{"$o->{_name}$ext"} = |
238 | $ANIM{"$o->{_name}$ext"} = |
239 | join "", map "$_\n", |
239 | join "", map "$_\n", |
240 | "anim $o->{_name}$ext", |
240 | "anim $o->{_name}", |
241 | @$anim, |
241 | @$anim, |
242 | "mina"; |
242 | "mina"; |
243 | } |
243 | } |
244 | |
244 | |
245 | for my $face ($o->{face} || (), @{$anim || []}) { |
245 | for my $face ($o->{face} || (), @{$anim || []}) { |
246 | next if /^facings\s/; |
246 | next if $face =~ /^facings\s|^blank.x11$|^empty.x11$/; |
247 | |
247 | |
248 | my $info = $FACEINFO{$face} ||= {}; |
248 | my $info = $FACEINFO{$face} ||= {}; |
249 | |
249 | |
250 | $info->{visibility} = $visibility if defined $visibility; |
250 | $info->{visibility} = $visibility if defined $visibility; |
251 | $info->{magicmap} = $magicmap if defined $magicmap; |
251 | $info->{magicmap} = $magicmap if defined $magicmap; |
… | |
… | |
321 | while (my ($k, $v) = each %FACEINFO) { |
321 | while (my ($k, $v) = each %FACEINFO) { |
322 | $v->{data32} ||= delete $PNG32{$k}; |
322 | $v->{data32} ||= delete $PNG32{$k}; |
323 | } |
323 | } |
324 | |
324 | |
325 | while (my ($k, $v) = each %FACEINFO) { |
325 | while (my ($k, $v) = each %FACEINFO) { |
326 | exists $v->{data32} or warn "$k: face has no png32. this will crash the server.\n"; |
326 | length $v->{data32} or warn "$k: face has no png32. this will crash the server.\n"; |
327 | |
327 | |
328 | $v->{chksum32} = Digest::MD5::md5 $v->{data32}; |
328 | $v->{chksum32} = Digest::MD5::md5 $v->{data32}; |
329 | } |
329 | } |
330 | |
330 | |
331 | open my $fh, ">:perlio", "$DATADIR/faces~" |
331 | open my $fh, ">:perlio", "$DATADIR/faces~" |