godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.13k stars 21.19k forks source link

Filter to export non-resource files should accept full file names instead of always requiring wildcard selectors #17053

Closed sprite-1 closed 6 months ago

sprite-1 commented 6 years ago

Godot version:

3..0.1

OS/device including version:

Windows 10

Issue description:

While exporting the game, there's a filter to list the non-resource files that you still want to get packed along with the game resources. However, this field only accepts wildcards entries. I think it would be great if it also accepted individual full names. Say I want to export error_list.txt.

This works. image

This doesn't work. image

This also doesn't work but it would be nice if it did just for those edge-cases. image

It's generally just a small QoL improvement over the currently implemented one.

aaronfranke commented 5 years ago

There doesn't appear to be a way to filter for folders or paths either, this doesn't work:

1

neikeq commented 5 years ago

Does prefixing the folder with res:// work?

aaronfranke commented 5 years ago

@neikeq Yes, it does. res://Assets/* works, this fixed some of the issues I was having with exports.

Ranoller commented 5 years ago

This filter works bad. .json files are always exported, no mathers if are in this filter .txt files are included if are in the filter other personal extensions (EJ: .ajson, .tjson) never exports, no mathers if are in the filter. This should be fixed for 3.2....

Related (buggy, not fully accomplished) https://github.com/godotengine/godot/issues/9860

kone9 commented 4 years ago

I am testing this problem in Godot 3.2 stable and in linux mint 19.02 it does not export the folder separately, in my case I want to use a .txt file from the application but it does not export the file.txt

Captura de pantalla_2020-02-05_17-51-39 Captura de pantalla_2020-02-05_17-52-00 Captura de pantalla_2020-02-05_17-52-38

If I export the project by choosing only the scenes and since I am using a .txt file for reading reading to test directly, the program closes Captura de pantalla_2020-02-05_17-54-06 Captura de pantalla_2020-02-05_17-55-17 Captura de pantalla_2020-02-05_17-58-12

Console ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ``ariel@ariel:~$ '/home/ariel/Escritorio/exportado yousef/index.x86_64' Godot Engine v3.2.stable.official - https://godotengine.org OpenGL ES 2.0 Renderer: GeForce 9800 GT/PCIe/SSE2

ERROR: load_interactive: Condition "err != OK" is true. Returned: Ref() At: scene/resources/resource_format_text.cpp:1228. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: SceneTree: Default Environment as specified in Project Settings (Rendering -> Environment -> Default Environment) could not be loaded. At: scene/main/scene_tree.cpp:2115. ERROR: load_source_code: Condition "err" is true. Returned: err At: modules/gdscript/gdscript.cpp:806. ERROR: load: Condition "err != OK" is true. Returned: RES() At: modules/gdscript/gdscript.cpp:2244. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: start: Condition "res.is_null()" is true. Continuing. At: main/main.cpp:1684. WARNING: _update_root_rect: Font oversampling only works with the resize modes 'Keep Width', 'Keep Height', and 'Expand'. At: scene/main/scene_tree.cpp:1153. ERROR: load_interactive: Condition "err != OK" is true. Returned: Ref() At: core/io/resource_format_binary.cpp:986. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: Method failed. Returning: error At: core/io/resource_format_binary.cpp:655. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/suelos/solo_suelo/roca.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas_importadas/suelos/roca.glb At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/suelos/suelos_terminados/mosaico_roca.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas/suelos/solo_suelo/roca.tscn At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/Escena_principal.tscn:6 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas/suelos/suelos_terminados/mosaico_roca.tscn At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: start: Condition "!scene" is true. Returned: false At: main/main.cpp:1864. ERROR: ~List: Condition "_first != null" is true. At: ./core/self_list.h:112. ERROR: ~List: Condition "_first != null" is true. At: ./core/self_list.h:112. WARNING: cleanup: ObjectDB Instances still exist! At: core/object.cpp:2071. ariel@ariel:~$

kone9 commented 4 years ago

@kone9 You should include just base_de_datos/* instead of res://. We should throw an error about this Captura de pantalla_2020-02-05_17-59-22 Captura de pantalla_2020-02-05_17-59-41

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Captura de pantalla_2020-02-05_18-00-51 Captura de pantalla_2020-02-05_18-02-07 Captura de pantalla_2020-02-05_18-01-51

In this case, the program closes and the console shows this. ``ariel@ariel:~$ '/home/ariel/Escritorio/exportado yousef/index.x86_64' Godot Engine v3.2.stable.official - https://godotengine.org OpenGL ES 2.0 Renderer: GeForce 9800 GT/PCIe/SSE2

ERROR: load_interactive: Condition "err != OK" is true. Returned: Ref() At: scene/resources/resource_format_text.cpp:1228. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: SceneTree: Default Environment as specified in Project Settings (Rendering -> Environment -> Default Environment) could not be loaded. At: scene/main/scene_tree.cpp:2115. ERROR: load_source_code: Condition "err" is true. Returned: err At: modules/gdscript/gdscript.cpp:806. ERROR: load: Condition "err != OK" is true. Returned: RES() At: modules/gdscript/gdscript.cpp:2244. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: start: Condition "res.is_null()" is true. Continuing. At: main/main.cpp:1684. WARNING: _update_root_rect: Font oversampling only works with the resize modes 'Keep Width', 'Keep Height', and 'Expand'. At: scene/main/scene_tree.cpp:1153. ERROR: load_interactive: Condition "err != OK" is true. Returned: Ref() At: core/io/resource_format_binary.cpp:986. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: Method failed. Returning: error At: core/io/resource_format_binary.cpp:655. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/suelos/solo_suelo/roca.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas_importadas/suelos/roca.glb At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/suelos/suelos_terminados/mosaico_roca.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas/suelos/solo_suelo/roca.tscn At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: poll: res://escenas/Escena_principal.tscn:6 - Parse Error: [ext_resource] referenced nonexistent resource at: res://escenas/suelos/suelos_terminados/mosaico_roca.tscn At: scene/resources/resource_format_text.cpp:440. ERROR: load: Condition "err != OK" is true. Returned: RES() At: core/io/resource_loader.cpp:208. ERROR: _load: Condition "found" is true. Returned: RES() At: core/io/resource_loader.cpp:278. ERROR: start: Condition "!scene" is true. Returned: false At: main/main.cpp:1864. ERROR: ~List: Condition "_first != null" is true. At: ./core/self_list.h:112. ERROR: ~List: Condition "_first != null" is true. At: ./core/self_list.h:112. WARNING: cleanup: ObjectDB Instances still exist! At: core/object.cpp:2071. ariel@ariel:~$

kone9 commented 4 years ago

@kone9 You should include just base_de_datos/* instead of res://. We should throw an error about this

Even if the name changes, the exact same problem happens .. Will it have to do with the file system?

kone9 commented 4 years ago

I made this small project to change the numbers directly from the ".txt" and I leave it to test in my case in linux mint xfce 19.02 I could not export, I will have to install windows 10. prueba_exportar_godot.zip

aaronfranke commented 1 year ago

Is this bug still a problem in Godot 4.x?

Daniel-The-Fox commented 1 year ago

For me, in version 4.1.3, unfortunately yes... 😢

sungmini commented 9 months ago

Same thing in 4.2.1... Is there a solution to this?

KoBeWi commented 6 months ago

File filters use String.matchn() against full path, thus you can provide full file path if you don't want to use wildcards. If that's not sufficient, open a proposal.