Skip to content

Commit 3af0713

Browse files
committed
Unify dropped object naming with editor defaults
1 parent 91d52f5 commit 3af0713

4 files changed

Lines changed: 60 additions & 35 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
2+
version = 1
3+
name = "GDevelop"
4+
5+
[setup]
6+
script = ""
7+
8+
[[actions]]
9+
name = "Run"
10+
icon = "run"
11+
command = '''
12+
cd "C:\Users\batah\OneDrive\المستندات\GitHub\GDevelop\newIDE\app"
13+
npm run build
14+
npm start
15+
'''
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// @flow
2+
3+
const objectTypeToDefaultName = {
4+
Sprite: 'NewSprite',
5+
'TiledSpriteObject::TiledSprite': 'NewTiledSprite',
6+
'ParticleSystem::ParticleEmitter': 'NewParticlesEmitter',
7+
'PanelSpriteObject::PanelSprite': 'NewPanelSprite',
8+
'PrimitiveDrawing::Drawer': 'NewShapePainter',
9+
'TextObject::Text': 'NewText',
10+
'BBText::BBText': 'NewBBText',
11+
'BitmapText::BitmapTextObject': 'NewBitmapText',
12+
'TextEntryObject::TextEntry': 'NewTextEntry',
13+
'TileMap::SimpleTileMap': 'NewTileMap',
14+
'TileMap::TileMap': 'NewExternalTileMap',
15+
'TileMap::CollisionMask': 'NewExternalTileMapMask',
16+
'MyDummyExtension::DummyObject': 'NewDummyObject',
17+
'Lighting::LightObject': 'NewLight',
18+
'TextInput::TextInputObject': 'NewTextInput',
19+
'Scene3D::Model3DObject': 'New3DModel',
20+
'Scene3D::Cube3DObject': 'New3DBox',
21+
'SpineObject::SpineObject': 'NewSpine',
22+
'Video::VideoObject': 'NewVideo',
23+
};
24+
25+
export const getDefaultObjectNameForType = (objectType: string): string =>
26+
// $FlowFixMe[invalid-computed-prop]
27+
objectTypeToDefaultName[objectType] || 'NewObject';
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// @flow
2+
import { getDefaultObjectNameForType } from './ObjectTypeDefaultName';
3+
4+
describe('ObjectTypeDefaultName', () => {
5+
it('returns the editor-style default object name for known object types', () => {
6+
expect(getDefaultObjectNameForType('Sprite')).toBe('NewSprite');
7+
expect(getDefaultObjectNameForType('PanelSpriteObject::PanelSprite')).toBe(
8+
'NewPanelSprite'
9+
);
10+
});
11+
12+
it('falls back to NewObject for unknown object types', () => {
13+
expect(getDefaultObjectNameForType('Unknown::Object')).toBe('NewObject');
14+
});
15+
});

newIDE/app/src/ObjectsList/index.js

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ import {
7878
getDroppedSupportedFile,
7979
type DroppedSupportedFile,
8080
} from './DroppedFileObjectSelectorUtils';
81+
import { getDefaultObjectNameForType } from './ObjectTypeDefaultName';
8182

8283
const gd: libGDevelop = global.gd;
8384
const nodePath = optionalRequire('path');
@@ -438,28 +439,6 @@ const getTreeViewItemRightButton = (i18n: I18nType) => (item: TreeViewItem) =>
438439

439440
export const objectWithContextReactDndType = 'GD_OBJECT_WITH_CONTEXT';
440441

441-
const objectTypeToDefaultName = {
442-
Sprite: 'NewSprite',
443-
'TiledSpriteObject::TiledSprite': 'NewTiledSprite',
444-
'ParticleSystem::ParticleEmitter': 'NewParticlesEmitter',
445-
'PanelSpriteObject::PanelSprite': 'NewPanelSprite',
446-
'PrimitiveDrawing::Drawer': 'NewShapePainter',
447-
'TextObject::Text': 'NewText',
448-
'BBText::BBText': 'NewBBText',
449-
'BitmapText::BitmapTextObject': 'NewBitmapText',
450-
'TextEntryObject::TextEntry': 'NewTextEntry',
451-
'TileMap::SimpleTileMap': 'NewTileMap',
452-
'TileMap::TileMap': 'NewExternalTileMap',
453-
'TileMap::CollisionMask': 'NewExternalTileMapMask',
454-
'MyDummyExtension::DummyObject': 'NewDummyObject',
455-
'Lighting::LightObject': 'NewLight',
456-
'TextInput::TextInputObject': 'NewTextInput',
457-
'Scene3D::Model3DObject': 'New3DModel',
458-
'Scene3D::Cube3DObject': 'New3DBox',
459-
'SpineObject::SpineObject': 'NewSpine',
460-
'Video::VideoObject': 'NewVideo',
461-
};
462-
463442
export type ObjectsListInterface = {|
464443
forceUpdateList: () => void,
465444
openNewObjectDialog: () => void,
@@ -712,21 +691,12 @@ const ObjectsList = React.forwardRef<Props, ObjectsListInterface>(
712691
({
713692
objectType,
714693
resourceName,
715-
sourceFileName,
716694
}: {|
717695
objectType: string,
718696
resourceName: string,
719-
sourceFileName: string,
720697
|}) => {
721-
const sourceBaseName = nodePath
722-
? nodePath.basename(sourceFileName, nodePath.extname(sourceFileName))
723-
: sourceFileName.replace(/\.[^/.]+$/, '');
724-
const fallbackName =
725-
// $FlowFixMe[invalid-computed-prop]
726-
objectTypeToDefaultName[objectType] || 'NewObject';
727-
const defaultObjectName = sourceBaseName || fallbackName;
728698
const objectName = newNameGenerator(
729-
defaultObjectName,
699+
getDefaultObjectNameForType(objectType),
730700
candidateName =>
731701
objectsContainer.hasObjectNamed(candidateName) ||
732702
(!!globalObjectsContainer &&
@@ -912,8 +882,7 @@ const ObjectsList = React.forwardRef<Props, ObjectsListInterface>(
912882
? 'New' +
913883
(project.getEventsBasedObject(objectType).getDefaultName() ||
914884
project.getEventsBasedObject(objectType).getName())
915-
: // $FlowFixMe[invalid-computed-prop]
916-
objectTypeToDefaultName[objectType] || 'NewObject';
885+
: getDefaultObjectNameForType(objectType);
917886
const name = newNameGenerator(
918887
defaultName,
919888
name =>
@@ -1999,7 +1968,6 @@ const ObjectsList = React.forwardRef<Props, ObjectsListInterface>(
19991968
insertObjectFromDroppedResource({
20001969
objectType: objectTypeToCreate,
20011970
resourceName,
2002-
sourceFileName: droppedFile.file.name,
20031971
});
20041972
} catch (error) {
20051973
await showAlert({

0 commit comments

Comments
 (0)