utopia-rise / godot-kotlin-jvm

Godot Kotlin JVM Module
MIT License
613 stars 44 forks source link

Fix PathScript caching. #635

Closed CedNaru closed 4 months ago

CedNaru commented 4 months ago

We never properly cached the Kotlin and Java Scripts. Each time you reload the .jar, new ones are created instead of updating the ones already here which triggers a nasty side effect.

The original Script is replaced inside the ResourceLoader by the new one. And its path taken as well. The consequence is that if you got a Godot scene opened when reloading and then save, the script is no longer recognized as an external resource (because no path) and is stored as an internal script (which we don't support).

I also move the content of update_export to another method. The reason is that Godot calls that method whenever it detects a change in the source files, which is totally useless in our case because only the .jar matters.

This doesn't require testing on each OS, but I welcome if you can monkey proof the reloading behaviour with gdj and Kotlin scripts.