godotengine / godot

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

Wrong gdns inheritance information in project.godot #38866

Open piiertho opened 4 years ago

piiertho commented 4 years ago

Godot version:

3.2.1

OS/device including version:

Windows 10 and Ubuntu 18.04 LTS

Issue description:

Importing addon containing gdns script won't set inheritance in project.godot. ie you have something like :

{
"base": "",
"class": "IsometricMap",
"language": "NativeScript",
"path": "res://addons/IsometricMap/GdnsScripts/positionable/IsometricMap.gdns"
}

for all nativescript. Note the base field. Bug only on Windows and Linux, all fine in OSX.

Steps to reproduce:

1 - Download addons folder of fake release of 2.5D Isometric map editor 2 - Add it to new project. 3 - Add res://addons/IsometricMap/IsometricServer.tscn to autoload with name IsoServer. 4 - Restart Godot and try to create an isometric map using custom node in a new scene.

It will say it cannot find class ''.

Minimal reproduction project:

See steps to reproduce

KieranCarden commented 4 years ago

Would like to add I'm experiencing this on OS X 10.13.3, Godot version 3.2.1, same project

KieranCarden commented 4 years ago

@Calinou a bit more insight: bringing up each .gdns file in the inspector that is missing the base field, if I check the singleton property, and then immediately uncheck it (back to default so nothing has changed), it seems to properly populate and save the base field. I'm not sure why this is, but once I did that it hasn't reverted. Might help track this down?

Screen Shot 2020-06-11 at 1 39 11 PM
{
"base": "Node2D",
"class": "IsometricMap",
"language": "NativeScript",
"path": "res://addons/IsometricMap/GdnsScripts/positionable/IsometricMap.gdns"
}
KieranCarden commented 4 years ago

After a bit of testing on another branch that required this, it also seems like the Load Once property may play a role in this as well. Sometimes running through the steps above, only toggling the Singleton property works as documented, however sometimes it doesn't until I've also done the same with the Load Once property. Not sure entirely sure why sometimes it requires only one, and other times it requires both.