@@ -2,8 +2,11 @@ import React, { Component } from 'react';
22import { environment } from '#store/environment' ;
33import { observer } from 'mobx-react' ;
44import { Mapping } from '#components/mappings/mapping' ;
5+ import { getBounds } from '#components/mappings/state/bounds' ;
56import SVARS from '!!sass-variables-loader!#styles/variables.scss' ;
67
8+ const { max, min, abs, floor } = Math ;
9+
710@observer
811export class Sprite extends Component {
912
@@ -13,35 +16,42 @@ export class Sprite extends Component {
1316
1417 const { index, mappings, buffer } = this . props . data ;
1518
19+ let extent = 25 ;
20+ if ( mappings . length ) {
21+ const { minX, minY, maxX, maxY } = getBounds ( mappings ) ;
22+
23+ extent = max ( abs ( minX ) , maxX , abs ( minY ) , maxY ) ;
24+ }
25+
26+ const scale = min ( 5 , max ( floor ( 100 / extent ) , 1 ) ) ;
27+
1628 return < div
1729 className = "sprite"
1830 style = { {
1931 border : `1px solid ${ SVARS [ currentSprite == index ? 'magenta' : 'blue' ] } ` ,
2032 } }
2133 >
22- < div >
23- < div className = "index" >
24- 0x{ index . toString ( 16 ) . toUpperCase ( ) }
25- </ div >
26- { ! mappings . length && (
27- < div className = "blank" >
28- [BLANK]
29- </ div >
30- ) }
31- < div >
32- { mappings . slice ( 0 ) . reverse ( ) . map ( ( mapping , mappingIndex ) => {
33- return < div
34- key = { mappingIndex }
35- style = { { zIndex : mappingIndex } }
36- >
37- < Mapping
38- data = { mapping }
39- tileBuffer = { buffer }
40- />
41- </ div > ;
42- } ) }
43- </ div >
34+ < div className = "index" >
35+ 0x{ index . toString ( 16 ) . toUpperCase ( ) }
4436 </ div >
37+
38+ { ! mappings . length && (
39+ < div className = "blank" >
40+ [BLANK]
41+ </ div >
42+ ) }
43+ { mappings . slice ( 0 ) . reverse ( ) . map ( ( mapping , mappingIndex ) => {
44+ return < div
45+ key = { mappingIndex }
46+ style = { { zIndex : mappingIndex } }
47+ >
48+ < Mapping
49+ scale = { scale }
50+ data = { mapping }
51+ tileBuffer = { buffer }
52+ />
53+ </ div > ;
54+ } ) }
4555 </ div > ;
4656 }
4757
0 commit comments