mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Add cache clearing method for tilemap objects and use it when reloading resources
This commit is contained in:
@@ -1044,7 +1044,9 @@ module.exports = {
|
||||
.setExtensionInformation(
|
||||
'TileMap',
|
||||
_('Tilemap'),
|
||||
"The Tilemap object can be used to display tile-based objects. It's a good way to create maps for RPG, strategy games or create objects by assembling tiles, useful for platformer, retro-looking games, etc...",
|
||||
_(
|
||||
"The Tilemap object can be used to display tile-based objects. It's a good way to create maps for RPG, strategy games or create objects by assembling tiles, useful for platformer, retro-looking games, etc..."
|
||||
),
|
||||
'Todor Imreorov',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
@@ -1061,6 +1063,25 @@ module.exports = {
|
||||
return extension;
|
||||
},
|
||||
|
||||
registerClearCache: function (
|
||||
objectsRenderingService /*: ObjectsRenderingService */
|
||||
) {
|
||||
const TilemapHelper = objectsRenderingService.requireModule(
|
||||
__dirname,
|
||||
'helper/TileMapHelper'
|
||||
);
|
||||
|
||||
const clearCaches = (
|
||||
project /* InstanceHolder - gdProject in the editor */
|
||||
) => {
|
||||
/** @type {TileMapHelper.TileMapManager} */
|
||||
const manager = TilemapHelper.TileMapManager.getManager(project);
|
||||
manager.clearCaches();
|
||||
};
|
||||
|
||||
objectsRenderingService.registerClearCache(clearCaches);
|
||||
},
|
||||
|
||||
/**
|
||||
* You can optionally add sanity tests that will check the basic working
|
||||
* of your extension behaviors/objects by instantiating behaviors/objects
|
||||
|
@@ -62,6 +62,7 @@ import MosaicEditorsDisplay from './MosaicEditorsDisplay';
|
||||
import SwipeableDrawerEditorsDisplay from './SwipeableDrawerEditorsDisplay';
|
||||
import { type SceneEditorsDisplayInterface } from './EditorsDisplay.flow';
|
||||
import newNameGenerator from '../Utils/NewNameGenerator';
|
||||
import ObjectsRenderingService from '../ObjectsRendering/ObjectsRenderingService';
|
||||
|
||||
const gd: libGDevelop = global.gd;
|
||||
|
||||
@@ -235,6 +236,9 @@ export default class SceneEditor extends React.Component<Props, State> {
|
||||
gd.ProjectBrowserHelper.exposeProjectObjects(project, objectsCollector);
|
||||
const objectNames = objectsCollector.getObjectNames().toJSArray();
|
||||
objectsCollector.delete();
|
||||
ObjectsRenderingService.renderersCacheClearingMethods.forEach(clear =>
|
||||
clear(project)
|
||||
);
|
||||
objectNames.forEach(objectName => {
|
||||
editorDisplay.instancesHandlers.resetInstanceRenderersFor(objectName);
|
||||
});
|
||||
|
Reference in New Issue
Block a user