The active tilemap layer can be renamed from the painting section, and a Show setting fades or hides the other layers in the scene view while the tilemap is selected (#138)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bfbcbe604c
commit
f53279d065
10 files changed
+248
-13
No files matched your search
@@ -34,6 +34,7 @@ import {
|
||||
tilemapSize,
|
||||
} from '../../src/core/model/tilemap';
|
||||
import { tilemapsUsing } from '../../src/core/model/usages';
|
||||
import { DIMMED_LAYER_ALPHA, layerAlpha } from '../../src/viewport/tilemap';
|
||||
import { groupByTile, tileMesh } from '../../src/viewport/tilemapMesh';
|
||||
import { makeProject, roundTrip } from '../helpers';
|
||||
|
||||
@@ -318,6 +319,18 @@ describe('the layers of a tilemap', () => {
|
||||
expect(f.assetOf().layers.map((l) => l.name)).toEqual(['Layer 1', 'Roofs']);
|
||||
});
|
||||
|
||||
it('renames a layer without the spaces around it, refuses a blank name and undoes to the old one', () => {
|
||||
const f = makeTilemap();
|
||||
f.stack.execute(new RenameTilemapLayerCommand(f.tilemapId, f.layerId(), ' Ground '));
|
||||
expect(f.assetOf().layers[0]!.name).toBe('Ground');
|
||||
expect(() => f.stack.execute(new RenameTilemapLayerCommand(f.tilemapId, f.layerId(), ' '))).toThrow(
|
||||
'A layer needs a name',
|
||||
);
|
||||
expect(f.assetOf().layers[0]!.name).toBe('Ground');
|
||||
f.stack.undo();
|
||||
expect(f.assetOf().layers[0]!.name).toBe('Layer 1');
|
||||
});
|
||||
|
||||
it('keeps the last layer, because there has to be one to paint on', () => {
|
||||
const f = makeTilemap();
|
||||
expect(() => f.stack.execute(new RemoveTilemapLayerCommand(f.tilemapId, f.layerId()))).toThrow(
|
||||
@@ -338,6 +351,17 @@ describe('the layers of a tilemap', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('how the scene view shows the layers next to the painted one', () => {
|
||||
it('draws all of them whole, fades the others or leaves them out', () => {
|
||||
expect(layerAlpha('a', null)).toBe(1);
|
||||
expect(layerAlpha('b', { layerId: 'a', mode: 'all' })).toBe(1);
|
||||
expect(layerAlpha('a', { layerId: 'a', mode: 'dim' })).toBe(1);
|
||||
expect(layerAlpha('b', { layerId: 'a', mode: 'dim' })).toBe(DIMMED_LAYER_ALPHA);
|
||||
expect(layerAlpha('a', { layerId: 'a', mode: 'solo' })).toBe(1);
|
||||
expect(layerAlpha('b', { layerId: 'a', mode: 'solo' })).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('a tilemap in the document', () => {
|
||||
it('survives a round trip with its layers and cells', () => {
|
||||
const f = makeTilemap();
|
||||
|
||||
Reference in new issue
Block a user