@@ -20,6 +20,7 @@ import { type EventsFunctionsExtensionsState } from '../EventsFunctionsExtension
20
20
import { mapVector } from '../Utils/MapFor' ;
21
21
import { toNewGdMapStringString } from '../Utils/MapStringString' ;
22
22
import { getInsertionParentAndPositionFromSelection } from '../Utils/ObjectFolders' ;
23
+ import { allResourceKindsAndMetadata } from '../ResourcesList/ResourceSource' ;
23
24
24
25
const gd : libGDevelop = global . gd ;
25
26
@@ -110,30 +111,17 @@ export const installResource = (
110
111
return ;
111
112
}
112
113
113
- // The resource does not exist yet, add it. Note that the "origin" will be preserved.
114
- let newResource = null ;
115
- if ( serializedResource . kind === 'image' ) {
116
- newResource = new gd . ImageResource ( ) ;
117
- } else if ( serializedResource . kind === 'audio' ) {
118
- newResource = new gd . AudioResource ( ) ;
119
- } else if ( serializedResource . kind === 'font' ) {
120
- newResource = new gd . FontResource ( ) ;
121
- } else if ( serializedResource . kind === 'video' ) {
122
- newResource = new gd . VideoResource ( ) ;
123
- } else if ( serializedResource . kind === 'json' ) {
124
- newResource = new gd . JsonResource ( ) ;
125
- } else if ( serializedResource . kind === 'model3D' ) {
126
- newResource = new gd . Model3DResource ( ) ;
127
- } else if ( serializedResource . kind === 'atlas' ) {
128
- newResource = new gd . AtlasResource ( ) ;
129
- } else if ( serializedResource . kind === 'spine' ) {
130
- newResource = new gd . SpineResource ( ) ;
131
- } else {
114
+ const resourceKindMetadata = allResourceKindsAndMetadata . find (
115
+ resourceKind => resourceKind . kind === serializedResource . kind
116
+ ) ;
117
+ if ( ! resourceKindMetadata ) {
132
118
throw new Error (
133
119
`Resource of kind "${ serializedResource . kind } " is not supported.`
134
120
) ;
135
121
}
136
122
123
+ // The resource does not exist yet, add it. Note that the "origin" will be preserved.
124
+ const newResource = resourceKindMetadata . createNewResource ( ) ;
137
125
unserializeFromJSObject ( newResource , serializedResource ) ;
138
126
139
127
if ( newResource . getKind ( ) === 'image' ) {
0 commit comments