-
Notifications
You must be signed in to change notification settings - Fork 916
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix LDtk tile map resources export with the fast loading #5951
Changes from 5 commits
b5bb407
75e97e2
877693d
59e760e
4e9a901
9770dae
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,28 +25,29 @@ bool ProjectResourcesCopier::CopyAllResourcesTo( | |
bool updateOriginalProject, | ||
bool preserveAbsoluteFilenames, | ||
bool preserveDirectoryStructure) { | ||
|
||
// Check if there are some resources with absolute filenames | ||
gd::ResourcesAbsolutePathChecker absolutePathChecker(fs); | ||
gd::ResourcesAbsolutePathChecker absolutePathChecker(originalProject.GetResourcesManager(), fs); | ||
gd::ResourceExposer::ExposeWholeProjectResources(originalProject, absolutePathChecker); | ||
|
||
auto projectDirectory = fs.DirNameFrom(originalProject.GetProjectFile()); | ||
std::cout << "Copying all resources from " << projectDirectory << " to " | ||
<< destinationDirectory << "..." << std::endl; | ||
|
||
gd::Project& project = originalProject; | ||
if (!updateOriginalProject) { | ||
std::shared_ptr<gd::Project> clonedProject(new gd::Project(originalProject)); | ||
project = *clonedProject; | ||
} | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This seems incorrect and is probably linked to issue you may have encountered: A reference can't be changed after it's set. So when you do When a reference is first assigned, it says to which object it points to. But then when you change it, it modifies the object itself, not the reference. |
||
// Get the resources to be copied | ||
gd::ResourcesMergingHelper resourcesMergingHelper(fs); | ||
gd::ResourcesMergingHelper resourcesMergingHelper(project.GetResourcesManager(), fs); | ||
resourcesMergingHelper.SetBaseDirectory(projectDirectory); | ||
resourcesMergingHelper.PreserveDirectoriesStructure( | ||
preserveDirectoryStructure); | ||
resourcesMergingHelper.PreserveAbsoluteFilenames( | ||
preserveAbsoluteFilenames); | ||
|
||
if (updateOriginalProject) { | ||
gd::ResourceExposer::ExposeWholeProjectResources(originalProject, resourcesMergingHelper); | ||
} else { | ||
std::shared_ptr<gd::Project> project(new gd::Project(originalProject)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note that I think this is a overly complicated way of writing: |
||
gd::ResourceExposer::ExposeWholeProjectResources(*project, resourcesMergingHelper); | ||
} | ||
gd::ResourceExposer::ExposeWholeProjectResources(project, resourcesMergingHelper); | ||
|
||
// Copy resources | ||
map<gd::String, gd::String>& resourcesNewFilename = | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,8 +3,7 @@ | |
* Copyright 2008-2016 Florian Rival ([email protected]). All rights | ||
* reserved. This project is released under the MIT License. | ||
*/ | ||
#ifndef RESOURCESABSOLUTEPATHCHECKER_H | ||
#define RESOURCESABSOLUTEPATHCHECKER_H | ||
#pragma once | ||
|
||
#include "GDCore/IDE/AbstractFileSystem.h" | ||
#include "GDCore/IDE/Project/ArbitraryResourceWorker.h" | ||
|
@@ -22,10 +21,10 @@ namespace gd { | |
*/ | ||
class GD_CORE_API ResourcesAbsolutePathChecker | ||
: public ArbitraryResourceWorker { | ||
public: | ||
ResourcesAbsolutePathChecker(AbstractFileSystem& fileSystem) | ||
: ArbitraryResourceWorker(), | ||
hasAbsoluteFilenames(false), | ||
public: | ||
ResourcesAbsolutePathChecker(gd::ResourcesManager &resourcesManager, | ||
AbstractFileSystem &fileSystem) | ||
: ArbitraryResourceWorker(resourcesManager), hasAbsoluteFilenames(false), | ||
fs(fileSystem){}; | ||
virtual ~ResourcesAbsolutePathChecker(){}; | ||
|
||
|
@@ -47,5 +46,3 @@ class GD_CORE_API ResourcesAbsolutePathChecker | |
}; | ||
|
||
} // namespace gd | ||
|
||
#endif // RESOURCESABSOLUTEPATHCHECKER_H |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why only those 2 types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only these kind of resources are depending on external files.