instant-games-bridge / instant-games-bridge-godot

MIT License
44 stars 3 forks source link

Switch `callback` and `catch_callback` type to `String` for call method name #3

Closed Timofffee closed 1 year ago

Timofffee commented 1 year ago

RU: Сейчас почти все методы имеют необязательные параметры callback и catch_callback, в которых можно указать вызываемые методы типа JavaScriptObject. Однако основная проблема в том, что это засоряет код, так как для этого вам не достаточно просто создать метод, но и нужно прописать еще несколько строк, для того, чтобы это работает. К тому же есть проблема в том, что аргументы будут выглядеть как args[0], args[1], .., что может сбивать с толку и не дает никакой ясности.

Есть предложение сменить условное some_method(callback: JavaScriptObject = null, catch_callback: JavaScriptObject = null) -> void на более логичное some_method(target: Object = null, callback: String = "", catch_target: Object = null, catch_callback: String = "") -> void при этом в качестве строк использовать имена методов, которые будут вызываться.

Безусловно, это добавит еще 2 параметра, но в ответ мы получим более лаконичный вывод. Также это будет выглядеть более "GDScript way".

P.S.: при выходе стабильной версии Godot 4.0, которая будет хорошо работать с вебом все это будет изменено на более красивый вариант, так как GDScript 2, который есть в Godot 4.0 позволяет делать куда больше удобных и красивых вещей.