
    UHjg                    h    U d Z ddlmZ ddlmZmZ i Zded<   d
dZ	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	ddZ
y	)z>Small shared renderer for map thumbnails used by review tools.    )annotations)load_tileset_rgb	source_xyz(dict[str, tuple[int, int, bytes, bytes]]TILESET_CACHEc                H    | t         vrt        |       t         | <   t         |    S )N)r   r   )names    */home/exedev/hwanse/tools/map_thumbnail.pycached_tilesetr
      s$    = .t4d    c                "   	
  d    d   z   d   z  t        |z  |z  d      
t        dt        
z              t        dt        
z              t        d      z  z  	 j	                  d      xs  j	                  d      g}t         j	                  d      xs g       d 	
f
d	}|d
v r | d   d   |d   d       |dk(  r%t         d         dkD  r | d   d   |d   d       n)|dk(  r$t         d         dkD  r | d   d   |d   d       |dk(  r%t         d         dkD  r | d   d   |d   d       n)|dk(  r$t         d         dkD  r | d   d   |d   d       t        	      fS )NtileSizewidthheight   )   r   r   layerTilesetstilesetemptyLayer1Tilesc           
       
 t        |      \  }}}}i }t              D ]  }t        dz
  t        |z              }	|	z  }
|	z  }t              D ]  }t        dz
  t        |z              }|z  }| |
d   z  |z      }|dk(  s	|dkD  r|v r@||vrt	        |||      ||<   ||   }|_|d   |z  z   }|d   |z   }|dk  s|dk  s
||k\  s||k\  r||z  |z   dz  }|||dz    }||k(  r|z  |z   dz  }|||dz      y )Nr   r   r      )r
   rangeminintr   ) layertileset_namelayer_indextileset_widthtileset_heighttileset_rgbtransparentsource_cacheymap_pixel_ytile_ylocal_yxmap_pixel_xtile_xtilesourcesrc_xsrc_ysrccolordstempty_layer1_tilesr   infooutscalethumb_heightthumb_widthtile_index_mode	tile_sizer   s                          r	   
draw_layerz$render_thumbnail.<locals>.draw_layer"   s   BPQ]B^?~{K:<|$ 	+Afqj#a%i.9K I-F!I-G;' +!%!)SU^<$	1Vd7m3f<=19qT=O5O|+)24-Ygirtx)yL&%d+>q	[9%<=q	G+19	Um-CuP^G^},u49#C#'2K';*a/%*C#'")+		+r   >   layer0bothFirstTilesetbothSceneTilesetslayer1UnderFirstTilesetlayer1UnderSceneTilesetslayersr   r=   r<   r;   r:   )r   z	list[int]r   strr   r   returnNone)r   maxr   	bytearraygetsetlenbytes)r1   	max_width
max_heightvisual_moder6   layer_tilesetsr8   r0   r   r2   r3   r4   r5   r7   r   s   `   `  @@@@@@@@r	   render_thumbnailrL      s    Z IMI%E(^i'F	E!:#6:EaUU]+,Kq#fun-.L
I

,|
;CXXo.G488I3F2GNTXX&89?R@+ +:   A  A4>!$nQ&7;00Sh5H15L4>!$nQ&7;	1	1c$x.6IA6M4>!$nQ&7;))c$x..AA.E4>!$nQ&7;	*	*s4>/BQ/F4>!$nQ&7;eCj00r   c                    | syt        |       dz  }d}t        dt        |       d      D ]  }| ||dz    dk(  s|dz  } |r||z  S dS )Ng        r   r   s   r   )rF   r   )rgbpixels
backgroundoffsets       r	   background_ratiorR   L   sf    X]FJ3s8Q' v
#6!OJ #):1c1r   N)r   r?   r@   ztuple[int, int, bytes, bytes])r9   
row40_zero)r1   dictrH   r   rI   r   rJ   r?   r6   r?   r@   ztuple[int, int, bytes])rN   rG   r@   float)__doc__
__future__r   render_map_previewr   r   r   __annotations__r
   rL   rR    r   r	   <module>r[      sk    D " : ;=7 <  '81
8181 81 	81
 81 81v2r   