feat(tilemap): 增强tilemap编辑器和动画系统

This commit is contained in:
yhh
2025-12-03 16:20:34 +08:00
parent 243b929d5e
commit e1d494b415
24 changed files with 3116 additions and 457 deletions

View File

@@ -20,6 +20,8 @@ export interface LayerState {
visible: boolean;
locked: boolean;
opacity: number;
color: string;
hiddenInGame: boolean;
}
export interface TilemapEditorState {
@@ -86,6 +88,8 @@ export interface TilemapEditorState {
toggleLayerVisibility: (index: number) => void;
toggleLayerLocked: (index: number) => void;
setLayerOpacity: (index: number, opacity: number) => void;
setLayerColor: (index: number, color: string) => void;
setLayerHiddenInGame: (index: number, hidden: boolean) => void;
renameLayer: (index: number, name: string) => void;
}
@@ -215,6 +219,24 @@ export const useTilemapEditorStore = create<TilemapEditorState>((set, get) => ({
set({ layers: newLayers });
},
setLayerColor: (index, color) => {
const { layers } = get();
const layer = layers[index];
if (!layer) return;
const newLayers = [...layers];
newLayers[index] = { ...layer, color };
set({ layers: newLayers });
},
setLayerHiddenInGame: (index, hidden) => {
const { layers } = get();
const layer = layers[index];
if (!layer) return;
const newLayers = [...layers];
newLayers[index] = { ...layer, hiddenInGame: hidden };
set({ layers: newLayers });
},
renameLayer: (index, name) => {
const { layers } = get();
const layer = layers[index];