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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | 46x 46x 46x 46x 46x 46x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x | import { PayloadAction, CaseReducer } from "@reduxjs/toolkit";
import {
EntitiesState,
ScriptNormalized,
} from "shared/lib/entities/entitiesTypes";
import {
ensureSymbolsUnique,
updateAllCustomEventsArgs,
normalizeEntityResources,
} from "shared/lib/entities/entitiesHelpers";
import type { LoadProjectResult } from "lib/project/loadProjectData";
import { decompressProjectResources } from "shared/lib/resources/compression";
import {
actorsAdapter,
triggersAdapter,
scenesAdapter,
actorPrefabsAdapter,
triggerPrefabsAdapter,
scriptEventsAdapter,
backgroundsAdapter,
spriteSheetsAdapter,
metaspritesAdapter,
metaspriteTilesAdapter,
spriteAnimationsAdapter,
spriteStatesAdapter,
palettesAdapter,
customEventsAdapter,
musicAdapter,
soundsAdapter,
fontsAdapter,
avatarsAdapter,
emotesAdapter,
tilesetsAdapter,
variablesAdapter,
constantsAdapter,
notesAdapter,
engineFieldValuesAdapter,
} from "store/features/entities/adapters";
import {
fixAllScenesWithModifiedBackgrounds,
updateMonoOverrideIds,
} from "store/features/entities/reducers/backgroundsReducers";
export const loadProject: CaseReducer<
EntitiesState,
PayloadAction<LoadProjectResult>
> = (state, action) => {
const uncompressedResources = decompressProjectResources(
action.payload.resources,
);
const data = normalizeEntityResources(uncompressedResources);
actorsAdapter.setAll(state.actors, data.entities.actors || {});
triggersAdapter.setAll(state.triggers, data.entities.triggers || {});
scenesAdapter.setAll(state.scenes, data.entities.scenes || {});
actorPrefabsAdapter.setAll(
state.actorPrefabs,
data.entities.actorPrefabs || {},
);
triggerPrefabsAdapter.setAll(
state.triggerPrefabs,
data.entities.triggerPrefabs || {},
);
scriptEventsAdapter.setAll(
state.scriptEvents,
data.entities.scriptEvents || {},
);
backgroundsAdapter.setAll(state.backgrounds, data.entities.backgrounds || {});
spriteSheetsAdapter.setAll(state.spriteSheets, data.entities.sprites || {});
metaspritesAdapter.setAll(state.metasprites, data.entities.metasprites || {});
metaspriteTilesAdapter.setAll(
state.metaspriteTiles,
data.entities.metaspriteTiles || {},
);
spriteAnimationsAdapter.setAll(
state.spriteAnimations,
data.entities.spriteAnimations || {},
);
spriteStatesAdapter.setAll(
state.spriteStates,
data.entities.spriteStates || {},
);
palettesAdapter.setAll(state.palettes, data.entities.palettes || {});
musicAdapter.setAll(state.music, data.entities.music || {});
soundsAdapter.setAll(state.sounds, data.entities.sounds || {});
fontsAdapter.setAll(state.fonts, data.entities.fonts || {});
avatarsAdapter.setAll(state.avatars, data.entities.avatars || {});
emotesAdapter.setAll(state.emotes, data.entities.emotes || {});
tilesetsAdapter.setAll(state.tilesets, data.entities.tilesets || {});
customEventsAdapter.setAll(state.customEvents, data.entities.scripts || {});
variablesAdapter.setAll(state.variables, data.entities.variables || {});
constantsAdapter.setAll(state.constants, data.entities.constants || {});
engineFieldValuesAdapter.setAll(
state.engineFieldValues,
data.entities.engineFieldValues || {},
);
notesAdapter.setAll(state.notes, data.entities.notes || {});
fixAllScenesWithModifiedBackgrounds(state);
updateMonoOverrideIds(state);
ensureSymbolsUnique(state);
updateAllCustomEventsArgs(
Object.values(state.customEvents.entities) as ScriptNormalized[],
state.scriptEvents.entities,
action.payload.scriptEventDefs,
);
};
|