Skip to content

Commit 131c83a

Browse files
committed
add manual zoom for sprites
1 parent f7bfb32 commit 131c83a

File tree

4 files changed

+32
-10
lines changed

4 files changed

+32
-10
lines changed

CHANGELOG

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Changelog
22

3+
## [unreleased]
4+
35
## [1.1.3]
46
- Upgrade to electron 12
57

app/components/sprites/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import React, { Component } from 'react';
22
import { environment } from '#store/environment';
3+
import { spriteState } from './state';
34
import { observer } from 'mobx-react';
45
import { Sprite } from './sprite';
56
import { SortableContainer, SortableElement } from 'react-sortable-hoc';
7+
import { Slider } from '#ui';
68
import {
79
baseSize,
810
margin,
@@ -127,6 +129,12 @@ export const Sprites = observer(class Sprites extends DimensionsComponent {
127129
scroll={scroll}
128130
/>
129131
</div>
132+
<Slider
133+
store={spriteState}
134+
accessor="zoom"
135+
min="1"
136+
max="8"
137+
/>
130138
</div>
131139
);
132140
}

app/components/sprites/sprite.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { observer } from 'mobx-react';
44
import { Mapping } from '#components/mappings/mapping';
55
import { getBounds } from '#components/mappings/state/bounds';
66
import SVARS from 'sass-variables';
7+
import { spriteState } from './state';
78

89
const { max, min, abs, floor } = Math;
910

@@ -15,15 +16,8 @@ export const Sprite = observer(class Sprite extends Component {
1516

1617
const { index, mappings, buffer } = this.props.data;
1718

18-
let extent = 25;
19-
if (mappings.length) {
20-
const { minX, minY, maxX, maxY } = getBounds(mappings);
21-
22-
extent = max(abs(minX), maxX, abs(minY), maxY);
23-
}
24-
25-
const scale = min(5, max(floor(100 / extent), 1));
26-
19+
// const scale = min(5, max(floor(100 / spriteState.zoom), 1));
20+
const scale = spriteState.zoom;
2721
return <div
2822
className="sprite"
2923
style={{
@@ -45,7 +39,7 @@ export const Sprite = observer(class Sprite extends Component {
4539
style={{zIndex: mappingIndex}}
4640
>
4741
<Mapping
48-
scale={scale}
42+
scale={spriteState.zoom}
4943
data={mapping}
5044
tileBuffer={buffer}
5145
/>

app/components/sprites/state.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { observable, computed, action, autorun, toJS, makeObservable } from 'mobx';
2+
import { storage } from '#store/storage';
3+
4+
class SpriteState {
5+
6+
zoom = 4;
7+
8+
constructor() {
9+
makeObservable(this, {
10+
zoom: observable,
11+
});
12+
}
13+
14+
}
15+
16+
const spriteState = new SpriteState();
17+
storage(spriteState, 'sprite-state', ['zoom']);
18+
export { spriteState };

0 commit comments

Comments
 (0)