Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 30x 30x 30x 30x 30x 30x 1x 1x 1x 1x 30x 30x | import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import entitiesActions from "store/features/entities/entitiesActions";
import { addNewSongFile } from "store/features/trackerDocument/trackerDocumentState";
import trackerDocumentActions from "store/features/trackerDocument/trackerDocumentActions";
export type NavigationSection =
| "world"
| "sprites"
| "backgrounds"
| "music"
| "sounds"
| "palettes"
| "dialogue"
| "settings";
export interface NavigationState {
section: NavigationSection;
id: string;
}
export const initialState: NavigationState = {
section: "world",
id: "",
};
const navigationSlice = createSlice({
name: "navigation",
initialState,
reducers: {
setSection: (state, action: PayloadAction<NavigationSection>) => {
state.section = action.payload;
},
setNavigationId: (state, action: PayloadAction<string>) => {
state.id = action.payload;
},
},
extraReducers: (builder) =>
builder
// Select newly created palette in sidebar
.addCase(entitiesActions.addPalette, (state, action) => {
state.id = action.payload.paletteId;
})
// Select newly duplicated palette in sidebar
.addCase(entitiesActions.duplicatePalette, (state, action) => {
state.id = action.payload.newPaletteId;
})
// When adding a new song file jump to it in navigator
.addCase(addNewSongFile.fulfilled, (state, action) => {
state.id = action.payload.data.id;
})
// When adding a importing song file jump to it in navigator
.addCase(
trackerDocumentActions.convertModToUgeSong.fulfilled,
(state, action) => {
state.id = action.payload.data.id;
},
),
});
export const { actions } = navigationSlice;
export default navigationSlice.reducer;
|