From 37ae2328d33bb383f87afff46fbbd731f16c58ae Mon Sep 17 00:00:00 2001 From: gilzoide Date: Wed, 4 Aug 2021 12:59:26 -0300 Subject: [PATCH 1/2] Remove clutter and add only code on par with the blog --- blog/.gdignore | 0 blog/1-design-en.md | 203 ---- blog/1-design-pt.md | 214 ---- blog/2-create-gdnativelibrary-save.png | Bin 83489 -> 0 bytes blog/2-create-gdnativelibrary.png | Bin 63400 -> 0 bytes blog/2-create-resource.png | Bin 105057 -> 0 bytes blog/2-infrastructure-en.md | 137 --- blog/2-pick-so-save.png | Bin 82959 -> 0 bytes blog/2-pick-so.png | Bin 133457 -> 0 bytes blog/2-set-singleton.png | Bin 130329 -> 0 bytes lua_pluginscript.gdnlib | 2 + src/godot_array.lua | 136 --- src/godot_class.lua | 76 -- src/godot_dictionary.lua | 84 -- src/godot_ffi.lua | 1347 ------------------------ src/godot_globals.lua | 194 ---- src/godot_math.lua | 90 -- src/godot_misc.lua | 121 --- src/godot_pool_arrays.lua | 100 -- src/godot_string.lua | 86 -- src/godot_variant.lua | 202 ---- src/in_editor_callbacks.lua | 17 - src/language_gdnative.c | 271 ++--- src/language_gdnative.h | 25 - src/language_in_editor_callbacks.c | 20 - src/late_globals.lua | 31 - src/lps_callbacks.lua | 148 --- src/lps_class_metadata.lua | 107 -- src/lua_init_script.c | 18 - xmake.lua | 64 +- 30 files changed, 123 insertions(+), 3570 deletions(-) delete mode 100644 blog/.gdignore delete mode 100644 blog/1-design-en.md delete mode 100644 blog/1-design-pt.md delete mode 100644 blog/2-create-gdnativelibrary-save.png delete mode 100644 blog/2-create-gdnativelibrary.png delete mode 100644 blog/2-create-resource.png delete mode 100644 blog/2-infrastructure-en.md delete mode 100644 blog/2-pick-so-save.png delete mode 100644 blog/2-pick-so.png delete mode 100644 blog/2-set-singleton.png delete mode 100644 src/godot_array.lua delete mode 100644 src/godot_class.lua delete mode 100644 src/godot_dictionary.lua delete mode 100644 src/godot_ffi.lua delete mode 100644 src/godot_globals.lua delete mode 100644 src/godot_math.lua delete mode 100644 src/godot_misc.lua delete mode 100644 src/godot_pool_arrays.lua delete mode 100644 src/godot_string.lua delete mode 100644 src/godot_variant.lua delete mode 100644 src/in_editor_callbacks.lua delete mode 100644 src/language_gdnative.h delete mode 100644 src/language_in_editor_callbacks.c delete mode 100644 src/late_globals.lua delete mode 100644 src/lps_callbacks.lua delete mode 100644 src/lps_class_metadata.lua delete mode 100644 src/lua_init_script.c diff --git a/blog/.gdignore b/blog/.gdignore deleted file mode 100644 index e69de29..0000000 diff --git a/blog/1-design-en.md b/blog/1-design-en.md deleted file mode 100644 index 96dd3c9..0000000 --- a/blog/1-design-en.md +++ /dev/null @@ -1,203 +0,0 @@ -# Designing a Godot PluginScript for Lua -2021-07-28 | `#Godot #Lua #GDNative #PluginScript #languageBindings` | [*Versão em Português*](1-design-pt.md) - -This is the first article in a series about how I'm approaching the development -of a plugin for using the [Lua](https://www.lua.org/) language in -[Godot game engine](https://godotengine.org/). - -Lua is a simple and small, yet powerful and flexible, scripting language. -Although it [isn't fit for every scenario](https://docs.godotengine.org/en/stable/about/faq.html#what-were-the-motivations-behind-creating-gdscript), -it is certainly a great tool for scripting. -Combining that with the power of [LuaJIT](https://luajit.org/), -one of the fastest dynamic language implementations out there, we can also -[call external C functions via the Foreign Function Interface (FFI)](https://luajit.org/ext_ffi.html)! - -With the dynamic nature of scripting in Godot, all supported languages -can seamlessly communicate with each other and thus we can choose to use the -language that best fits the task in hand for each script. -By the means of [signals](https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html) -and the methods [call](https://docs.godotengine.org/en/stable/classes/class_object.html#class-object-method-call), -[get](https://docs.godotengine.org/en/stable/classes/class_object.html#id1) -and [set](https://docs.godotengine.org/en/stable/classes/class_object.html#id4), -any object can communicate with another one, regardless of the -source language. - -To make Lua be recognized as one of the supported scripting languages for Godot -objects, we will create a PluginScript, which is one of the uses of -[GDNative](https://docs.godotengine.org/en/stable/getting_started/step_by_step/scripting.html#gdnative-c), -the native plugin C API provided by the engine to extend all sorts of -engine systems, such as the scripting one. -One pro of this approach is that only the plugin have to be compiled, -so anyone with a standard prebuilt version of Godot can use it! =D - - -## Goals -- Provide support for the Lua language in Godot in a way that does not require - compiling the engine from scratch -- Be able to seamlessly communicate with any other language supported by Godot, - like GDScript, Visual Script and C#, in an idiomatic way -- Simple script description interface that doesn't need `require`ing anything -- Support for Lua 5.1+ and LuaJIT -- Have a simple build process, where anyone with the cloned source code and - installed build system + toolchain can build the project in a single step - - -## Non-goals -- Provide calls to core Godot classes' methods via native method bindings -- Support multithreading on the Lua side - - -## Script example -This is an example of how a Lua script will look like. There are comments regarding -some design decisions, which may change during development. - -```lua --- Class definitions are regular Lua tables, to be returned from the script -local MyClass = {} - --- Optional: set class as tool, defaults to false -MyClass.tool = true - --- Optional: set base class by name, defaults to 'Reference' -MyClass.extends = 'Node' - --- Optional: give your class a name -MyClass.class_name = 'MyClass' - --- Declare signals -MyClass.something_happened = signal() -MyClass.something_happened_with_args = signal("arg1", "arg2") - --- Values defined in table are registered as properties of the class -MyClass.some_prop = 42 - --- The `property` function adds metadata to defined properties, --- like setter and getter functions -MyClass.some_prop_with_details = property { - -- [1] or ["default"] or ["default_value"] = property default value - 5, - -- [2] or ["type"] = variant type, optional, inferred from default value - -- All Godot variant type names are defined globally as written in - -- GDScript, like bool, int, float, String, Array, Vector2, etc... - -- Notice that Lua <= 5.2 does not differentiate integers from float - -- numbers, so we should always specify `int` where appropriate - type = int, - -- ["set"] or ["setter"] = setter function, optional - set = function(self, value) - self.some_prop_with_details = value - -- Indexing `self` with keys undefined in script will search base - -- class for methods and properties - self:emit_signal("something_happened_with_args", "some_prop_with_details", value) - end, - -- ["get"] or ["getter"] = getter function, optional - get = function(self) - return self.some_prop_with_details - end, - -- ["export"] = export flag, optional, defaults to false - -- Exported properties are editable in the Inspector - export = true, - -- TODO: usage, hint/hint_text, rset_mode -} --- `export` is an alias for `property` with `export = true` -MyClass.some_exported_prop = export { "hello world!" } - --- Functions defined in table are public methods -function MyClass:_init() -- `function t:f(...)` is an alias for `function t.f(self, ...)` - -- Singletons are available globally - local os_name = OS:get_name() - print("MyClass instance initialized! Running on a " .. os_name .. " system") -end - -function MyClass:some_prop_doubled() - return self.some_prop * 2 -end - --- In the end, table with class declaration must be returned from script -return MyClass -``` - - -## Implementation design details -PluginScripts have three important concepts: the Language Description, -Script Manifest and Instances. - -Let's check out what each layer is and how they will behave from a high -level perspective: - - -### Language description -The language description tells Godot how to initialize and finalize our -language runtime, as well as how to load script manifests from source -files. - -When initializing the runtime, a new [lua_State](https://www.lua.org/manual/5.4/manual.html#lua_State) -will be created and Godot functionality setup in it. -The Lua Virtual Machine (VM) will use engine memory management routines, so -that memory is tracked by the performance monitors in debug builds of the -game/application. -All scripts will share this same state. - -There will be a global table named `GD` with some Godot specific -functions, such as [load](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-method-load), -[print](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-method-print), -[push_error](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-method-push-error), -[push_warning](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-method-push-warning) -and [yield](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-method-yield). -Lua's global `print` function will be set to `GD.print` and -[Lua 5.4 warning function](https://www.lua.org/manual/5.4/manual.html#lua_WarnFunction) -will behave like a `push_warning` call. - -Functions that expect file names, like [loadfile](https://www.lua.org/manual/5.4/manual.html#pdf-loadfile) -and [io.open](https://www.lua.org/manual/5.4/manual.html#pdf-io.open), -will be patched to accept paths in the format [`res://*`](https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html#resource-path) -and [`user://*`](https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html#user-path-persistent-data). -Also, a [package searcher](https://www.lua.org/manual/5.4/manual.html#pdf-package.searchers) -will be added so that Lua can [require](https://www.lua.org/manual/5.4/manual.html#pdf-require) -modules from paths relative to `res://`. - -Language finalization will simply [lua_close](https://www.lua.org/manual/5.4/manual.html#lua_close) the state. - - -### Script manifest -Script manifests hold metadata about classes, such as defined signals, -properties and methods, whether class is [tool](https://docs.godotengine.org/en/stable/tutorials/misc/running_code_in_the_editor.html) -and its base class name. - -In Lua, this information will be stored in Lua tables indexed by the -scripts' path. - -When initializing a script, its source code will be loaded and executed. -Scripts must return a table, which defines the class metadata. -Functions declared in the table are registered as class methods and -other variables are declared as properties or signals. - -Script finalization will destroy the manifest table. - - -### Instances -When a script is attached to an object, the engine will call our -PluginScript to initialize the instance data and when the object gets -destroyed or gets the script removed, we get to finalize the data. - -In Lua, instance data will be stored in Lua tables indexed by the -instance owner object's memory address. - -When instances are indexed with a key that is not present, methods and -property default values will be searched in the script manifest and its -base class, in that order. -This table will be passed to methods as their first argument, as if -using Lua's method call notation: `instance:method(...)`. - -Instance finalization will destroy the data table. - - -## Wrapping up -With this high level design in place, we can now start implementing the -plugin! I have created a Git repository for it hosted at -[https://github.com/gilzoide/godot-lua-pluginscript](https://github.com/gilzoide/godot-lua-pluginscript). - -In the next post I'll discuss how to build the necessary infrastructure -for the PluginScript to work, with stubs to the necessary callbacks and -a build system that compiles the project in a single step. - -See you there ;D diff --git a/blog/1-design-pt.md b/blog/1-design-pt.md deleted file mode 100644 index 17890ac..0000000 --- a/blog/1-design-pt.md +++ /dev/null @@ -1,214 +0,0 @@ -# Projetando um PluginScript de Godot para Lua -2021-07-28 | `#Godot #Lua #GDNative #PluginScript #languageBindings` | [*English version*](1-design-en.md) - -Esse é o primeiro artigo de uma série sobre como estou lidando com o -desenvolvimento de um *plugin* para usar a linguagem de programação [Lua](https://www.lua.org/portugues.html) no [motor de jogos Godot](https://godotengine.org/). - -Lua é uma linguagem de *scripting* pequena e simples, mas poderosa e flexível. -Mesmo [não sendo ideal para todos os cenários](https://docs.godotengine.org/pt_BR/stable/about/faq.html#what-were-the-motivations-behind-creating-gdscript), -certamente é uma ótima ferramenta de *scripting*. -Combinando isso com o poder de [LuaJIT](https://luajit.org/), uma das -implementações de linguagens dinâmicas mais rápidas que se tem notícia, podemos -também [chamar funções externas de código C através da *Foreign Function Interface* (FFI)](https://luajit.org/ext_ffi.html)! - -Com a natureza dinâmica do sistema de *scripting* em Godot, -todas as linguagens suportadas podem facilmente comunicar entre si, de -modo que podemos escolher utilizar a linguagem melhor -adaptada à tarefa a ser cumprida para cada *script*. -Utilizando [sinais](https://docs.godotengine.org/pt_BR/stable/getting_started/step_by_step/signals.html) -e os métodos [call](https://docs.godotengine.org/pt_BR/stable/classes/class_object.html#class-object-method-call), -[get](https://docs.godotengine.org/pt_BR/stable/classes/class_object.html#id1) -e [set](https://docs.godotengine.org/pt_BR/stable/classes/class_object.html#id4), -qualquer objeto pode se comunicar com qualquer outro, não importando -a linguagem na qual o código-fonte foi escrito. - -Para fazer com que Lua seja reconhecida como uma linguagem de -*scripting* em Godot, vamos criar um *PluginScript*, que é um dos usos -do sistema [GDNative](https://docs.godotengine.org/pt_BR/stable/getting_started/step_by_step/scripting.html#gdnative-c), -a API em C para desenvolver *plugins* que estendem várias -funcionalidades do motor, incluindo o sistema de *scripting*. -Um dos benefícios desse método é que somente o *plugin* precisa ser -compilado, de modo que qualquer pessoa com uma versão padrão -precompilada de Godot possa utilizá-lo! =D - - -## Objetivos -- Adicionar suporte à linguagem Lua em Godot de um modo que o motor não - precise ser compilado do zero -- Possibilitar que *scripts* Lua se comuniquem transparentemente com - quaisquer outras linguagens suportadas, como GDScript, Visual Script e C# -- Ter uma interface descritiva simples para declarar *scripts* -- Suporte a Lua 5.1+ e LuaJIT -- Ter um processo de construção simples, onde qualquer um com o - código-fonte em mãos e o sistema de construção + *toolchain* - instalados possam compilar o projeto em um único passo - - -## Não objetivos -- Prover meios de chamar métodos nativamente nas classes padrão de Godot - via *method bindings* -- Suportar *multithreading* em Lua - - -## *Script* exemplo -Este é um exemplo de como um *script* Lua se parecerá. Há comentários -explicando algumas decisões de *design*, que podem mudar ao longo do -desenvolvimento do projeto. - -```lua --- Definições de classes são tabelas, que devem ser retornadas no fim do script -local MinhaClasse = {} - --- Opcional: marcar classe como tool -MinhaClasse.tool = true - --- Opcional: declarar o nome da classe base, padrão 'Reference' -MinhaClasse.extends = 'Node' - --- Opcional: dê um nome à sua classe -MinhaClasse.class_name = 'MinhaClasse' - --- Declaração de sinais -MinhaClasse.um_sinal = signal() -MinhaClasse.um_sinal_com_argumentos = signal("arg1", "arg2") - --- Valores definidos na tabela são registrados como propriedades da classe -MinhaClasse.uma_propriedade = 42 - --- A função `property` adiciona metadados às propriedades definidas, --- como métodos setter e getter -MinhaClasse.uma_propriedade_com_detalhes = property { - -- [1] ou ["default"] ou ["default_value"] = valor padrão da propriedade - 5, - -- [2] ou ["type"] = tipo da variante, opcional, inferido do valor padrão - -- Todos os nomes dos tipos de variantes serão definidos globalmente com - -- o mesmo nome em GDScript, como bool, int, float, String, Array, etc... - -- Note que Lua <= 5.2 não diferencia números inteiros de reais, - -- então devemos especificar `int` sempre que apropriado - type = int, - -- ["set"] ou ["setter"] = função setter, opcional - set = function(self, valor) - self.uma_propriedade_com_detalhes = valor - -- Indexar `self` com chaves não definidas no script buscará métodos - -- e propriedades na classe base - self:emit_signal("um_sinal_com_argumentos", "uma_propriedade_com_detalhes", valor) - end, - -- ["get"] ou ["getter"] = função getter, opcional - get = function(self) - return self.uma_propriedade_com_detalhes - end, - -- ["export"] = sinaliza propriedade como exportada, opcional, padrão false - -- Propriedades exportadas são editáveis pelo Inspetor - export = true, - -- TODO: usage, hint/hint_text, rset_mode -} --- `export` é uma versão de `property` com `export = true` -MinhaClasse.uma_propriedade_exportada = export { "hello world!" } - --- Funções definidas na tabela são registrados como métodos -function MinhaClasse:_init() -- `function t:f(...)` é uma abreviação de `function t.f(self, ...)` - -- Singletons estão disponíveis globalmente - local nome_os = OS:get_name() - print("Instância de MinhaClasse inicializada! Rodando em um sistema " .. nome_os) -end - -function MinhaClasse:uma_propriedade_dobrada() - return self.uma_propriedade * 2 -end - --- Ao final do script, a tabela com definição da classe deve ser retornada -return MinhaClasse -``` - - -## Projeto da implementação -*PluginScripts* possuem três conceitos importantes: Descrição da -Linguagem, Manifestos de *Script* e Instâncias. - -Vamos descobrir o que cada uma dessas camadas é e como elas se -comportarão, numa perspectiva alto nível: - - -### Descrição da Linguagem -A descrição da linguagem informa Godot como inicializar e finalizar o -*runtime* da linguagem, além de como carregar manifestos de scripts a -partir de arquivos com código-fonte. - -Ao inicializar a linguagem, um novo [estado (lua_State)](https://www.lua.org/manual/5.2/pt/manual.html#lua_State) -será criado e funcionalidade de Godot adicionada a ele. -A máquina virtual (VM) de Lua utilizará rotinas de gerenciamento de memória do motor, para -que o uso de memória seja rastreado pelo monitor de performance em -*builds* de *debug* dos jogos/aplicações. -Todos os *scripts* compartilharão desse mesmo estado. - -Haverá uma tabela global chamada `GD` com funções específicas de Godot, -como [load](https://docs.godotengine.org/pt_BR/stable/classes/class_%40gdscript.html#class-gdscript-method-load), -[print](https://docs.godotengine.org/pt_BR/stable/classes/class_%40gdscript.html#class-gdscript-method-print), -[push_error](https://docs.godotengine.org/pt_BR/stable/classes/class_%40gdscript.html#class-gdscript-method-push-error), -[push_warning](https://docs.godotengine.org/pt_BR/stable/classes/class_%40gdscript.html#class-gdscript-method-push-warning) -e [yield](https://docs.godotengine.org/pt_BR/stable/classes/class_%40gdscript.html#class-gdscript-method-yield). -A função global de Lua `print` será trocada por `GD.print` e a -[função de aviso em Lua 5.4](https://www.lua.org/manual/5.4/manual.html#lua_WarnFunction) -se comportará como uma chamada a `push_warning`. - -Funções que recebem nomes de arquivos como argumento, por exemplo -[loadfile](https://www.lua.org/manual/5.2/pt/manual.html#pdf-loadfile) -e [io.open](https://www.lua.org/manual/5.2/pt/manual.html#pdf-io.open), -serão atualizadas para aceitar caminhos nos formatos [`res://*`](https://docs.godotengine.org/pt_BR/stable/tutorials/io/data_paths.html#resource-path) -e [`user://*`](https://docs.godotengine.org/pt_BR/stable/tutorials/io/data_paths.html#user-path-persistent-data). -Do mesmo modo, um [localizador de módulos](https://www.lua.org/manual/5.2/pt/manual.html#pdf-package.searchers) -será adicionado para [require](https://www.lua.org/manual/5.2/pt/manual.html#pdf-require) -carregue módulos relativos ao caminho `res://`. - -Ao finalizar a linguagem, o estado da VM será destruído utilizando -[lua_close](https://www.lua.org/manual/5.2/pt/manual.html#lua_close). - - -### Manifestos de *Script* -Manifestos de *script* são estruturas que carregam metadados sobre as -classes declaradas nos *scripts*, por exemplo a definição de sinais, -propriedades e métodos, assim como se a classe roda em modo -[tool](https://docs.godotengine.org/pt_BR/stable/tutorials/misc/running_code_in_the_editor.html) -e o nome de sua classe base. - -Em Lua, essa informação será guardada em tabelas indexadas pelo caminho -dos *scripts*. - -Ao inicializar um *script*, seu código-fonte será carregado e executado. -*Scripts* devem retornar uma tabela, que definirá os metadados da classe. -Funções declaradas na tabela de manifesto são registradas como métodos -da classe e outras variáveis são declaradas como propriedades ou sinais. - -Ao finalizar um *script*, a tabela do manifesto será destruída. - - -### Instâncias -Quando um *script* é adicionado a um objeto, Godot chamará nosso -*PluginScript* para inicializar os dados da instância e quando o objeto -for destruído ou tiver o *script* removido, devemos destruir esses -dados. - -Em Lua, os dados de instâncias serão guardados em tabelas indexadas pelo -endereço de memória do objeto dono do script. - -Quando instâncias são indexadas com uma chave não presente, métodos e -propriedades padrão serão buscados no manifesto do *script* e na classe -base, nessa ordem. -Essa tabela será passada nos métodos como primeiro argumento, como se -usado a notação de chamadas de método em Lua: `instancia:metodo(...)`. - -Ao finalizar uma instância, a tabela será destruída. - - -## Conclusão -Com a funcionalidade projetada, mesmo que somente em alto nível, já -podemos começar a implementar nosso *plugin*! -Eu criei um repositório Git para ele, disponível no endereço -[https://github.com/gilzoide/godot-lua-pluginscript](https://github.com/gilzoide/godot-lua-pluginscript). - -No próximo artigo discutirei como construir a infraestrutura necessária -para nosso *PluginScript* funcionar, com implementações vazias para os -*callbacks* necessários e um sistema de construção para compilar o -projeto em um único passo. - -Vejo vocês lá ;D diff --git a/blog/2-create-gdnativelibrary-save.png b/blog/2-create-gdnativelibrary-save.png deleted file mode 100644 index f379f625161088abc35a36108dd5fcccb35cc3ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83489 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%0D2z|JaI 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 z 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

}yr5wMpvIK{+9 z*}kYU1+h{bDs5L1cdqfhFXTCIr=tDH$IMB zK+kR<+@45NQu*UnCF@7EsP?XwIoddTf-D#z_CG0eOqjFs06_-Q`IQ(`~rBJm^YfumZ(fqg%?#Ca_E@fHk_Eyju0VZksjga!X1uQtGsOiXUYf`Y|Ba>S9>HY6eD9NM{R{TXe*q?Mg_B}*hb zm4yeRZ$i1rYQF#4XV>=tF#sYFF~UPRi3U2qn|iYn_T%$|2=YUCev^^bOd=+!AO|Zx zxy~Lp1cySl^=mJNwXcj-%tCQof7!g(BAgMdVeHqb?Nb zE#J8c>+UXaTAOpPRyk008yC31GO&cf-!z zDX-CFKBuxukHljR3AShH9d5o|QGZDtvkmrKeJbX${6&M_n;>@t31zHB$hz?m8CHLv z?k%#34hgmNU)o~!`bK12l~=X@LZM`B=wo5*$|FG)|1OwaaLv+h+7+*Z05!HxCU~>( z_nj<(a3(CudrWrTd%kSKif*TkPr7EqHU!ey?#i++AV|$umg|YvjOF}zwPJChuD1B( zO-Yl;?=G+temrj0hTE^-o}l(j-X|EPnszfv;;)l-W6GXBU(0gZ)2#L6Rp7&qqgi`S zK1Sm!ohIlKh_X=t_a1VsaDgouQYC#t93#=W^MhyLwxP>E>VH1gg+9h6r%>?2t3`N zDn3Yz=IN4|H&PO)YqKF0en%p_)Q^TDQojPvzI`iEQ+-47e;oYR9E`ll@WW%5_ z_iXv3mq56tV#rAl&6t2}{~h~K)Te;klkc9i$pOuvhR??r?nAMxehFyJEoxx?*O2BT zO7Vr774y>TVPFlA*GuFH$iGtv>2=lT^ zyL5OlGejN8yyxC+iFW4HaSs2FVdC$Ty=2gTsmKoI=KzxdK*-mZisrvd-Xh=A(!IQg zrA%08>X*$|u4z)0gVj#QM=nN%qX14)+ z5iP89h}!IW2fF*BW0%U4y&aL~rJ`RFPWh%e^Bm|Vy$(;V-Xy2Mk=@#^wlq47Doj37 zf3jMDb?D1wtBrD00tbo<&XO!kM(y;fpjSLNu_jgcSD)2kv`8J0?Y{v$3UJME(@(^K z-yr!6opu2X)2C&M1Uk{rl$TCfS+ZUV*Rg( z@M2>kpj=9t!$l9!im%h0oIA>oj1BLPse!(UJ_$_iq$`Ywp&9;o+xtV{Th}A}cv3|) zA4soPY6e?hT`2{bEx?x!HM&=C<$d)DYn8eu5_W|s9O5ydG-e?w99`~~H@uvz*SA!r z%CI_z&mvkdq=MBpB}#0ljTUBhz|fP+ld3wXk?TlHU5O?{ucxIk$qd3?qBjC}@7qiR(B4DJq9i*p^JFR~^NiaiE!IuHS&j-cbuE?6loQ zk)gkTZI;uweL0gA|DK?r2-uLsxH@*wq_)L{3^m!ZQiI8*2<$y7Vt({)hfd_H5C?> zUG{@M%|cclmZE7SVOFg0vMIFX#uLu-lFIh#agx~SVo?5UFIpF|&B1Nz)3d~ZcU3DR zuFQjx&6y4;PxF)CcfoD>k-$7td(>geJ6Z6dpbPAg)XX;`G^*mSB--U=Ssf9fGZEa` zS2DKmE&KE7wxJgoAcYMv|Hx^24AiRQu0v)z6bk^SJG>R22c?A~Y2||2-aVU&Z_|cR zORoi{PhqED&hTW)_?3qQmp#Wjfxt)NoKHyf=#{Cio6yN%Qqt1goyqQ^>^t-a6 z+&>*s>`Ykf&C^^wQr2SHacpMmo#t8hajPEV{Tz+ZdO#M!Gqt6!(}yD+BdGHitPFy3 z8s)+=TE)pePK?gomaiZG75wxC7|xXxA1`L!@-(d(Y@?*?-YaWrGz`)uaw%nF%8us& zc{Fe-YOh>elAM?oW_|&09yE4LN#|!C48_K}RekR+KEZtV1jyy@*itQa&uhhk0^1~+)<02$T51k9cHF9HDPQdx7&E_| zwP)$QXV=qJC71sDjJcbZNJiTYyzI4H6R}82)C8d_ngN0gz46ATlj=1`w>;^ts0s-& z{dBllybt6sxBI5-cB{^-D>YBR#Cg!Ky-y1Xf+{oPLO_8T_1JDQ68g0x(}mrlwOK@J7Zio)iz%v$_5p#Nv(ZcG+^Rk+ z-P?qfD8^Hh@zS4iN^}5CAf7U?$$KvGBb*(_C*}jt0}=)!9g}^r$gG z^b3NshBTM8qX#+d6!qnt+d6gd?Ue6&*o6!9e&9zX_Yb3|C3R*O7V7rloIzJpkbqq( z77)xNmdgqHlv$q-=Yb8hsN*@lUcM_by@UNA8xB=RWV zVu9e8=)XaG!vLL4?GjgQ*^Lh)&!Xa#6vot^MMhdz(R-+lpJ#LyEGY5q<;PhmIf4b4 zh#c7|tvzu4<9%Y<+J}HzX<4hKD7JV^=u+Zb|MjL|o%SM|%K$sC?Y?6PX*UT5f9|+z zt*!pTm%RYZRPgj+1k6qrm1u?HD*yhFKtWN2lGeOA+UeC{VYlKNIli~HA~gZ>6rXIt zS@SvPFWTU<>s}H(#;Tp2+Tx8SnTk0RiU};r27ndPxK)Q0bs%+@DP?)FuYEgsh{)-P z-C|NzZ&%J=ac$uET(A15&Y8fZ6qR_^#qKV`g0lxgJqPCx=xA#BpMa+g=2*~b$8QOj zL@j?g%~Wz9yLct>SX`IR^B;?AuXW;=Sp3^%w3jV&)Ooe{qmbXXYu8Oa3i*6nXjv`0 z3ZDtQsS?+Q9RQu|L+ycGvu<7MTeVE<^Ww^K=%&tI465_U=YGXhI4M@8MGec;I$sJH z5q_MaANfRM)58jjiCAMa?pTOKdfmxt79?|LS>>zQV?#)Tddzkh);t@3`rOKLwg0lm z;HMq23a)940n}=wQUX%IATX8m_Z>LwERD%(s9ch{`;+m}SOV5gj>O7jG##`}V7I0N z;*!H7D{!uL{+H{yM+HLdm|OqaWBdaLo(!V*5)kS*@DeND)#TL)E8p&d>{W;CvWnY>n>lvElu?UdZjBM?IfC5bW#Slv$l15ES0~Qu( z9@FvjQR;^3bBOkU%J*e@BCoERA7N&U^!I!|8GRfS;E+n=bbu`l?0=AI)}#K*+5C+> zy16@%(&ir=8ypn;0Mi`QId8^;aFY#yAHO=j&b%7MEce)8+Xpy4=+w0 z_wRI~9ud|7uv+pWkEY9PL6hwbS!lt0Q{+gx$9LTdS5TsEht4 z_^@-si22Y%Z4+Yh#0z|9k@voJ>ule|loNZ?<7Cl?opK&gnOz@U@5vvCqSd4P2oEY4 z=%c8(TyARK4&A>UIiB`$vJDAr#z9-Gz3SReTJ5g5Srxnz~tIz&cy z9kBH!Em};@@b~PcOmt%xW%@C+gToZR3O13{Ri6#_m+|D~+=?N(fB4zq(fK3%Hs%o} zLA^I-qd;w$_%;MjQx#3c&ieJ~JQ}K)HKUf4c*Yjbwv2X7t@3|+7zsWkZ`3j~NpY6b zX&$tzzGNo#&8+xN1QZxK-2>RB2ss@FeZ-S18uoiyEKE(WQre`%&(LPySwRj74g-)~ zzN5a+qMvdyw)!2P{1}%?!bA%0U55CY?0u`d0*_*5g3n>{?M%#Uq#owSX(CK z#8dGV@Fxf!>xxewqs9ryIyiqd{XidebMnH5-TH8TyQlz6f?2G_7Gal%nN~NL{XBmW zgje2q^fDjNtMEF*4yXysXFG6*Y(oE>Q}$Uo*uSw3<{eb=t1BdZsrG~hMVFqs^etb6 zbl{7AgV@^)gATgHaVYH-kZ4UWfv-UbPH~cR`|Y^jnB+vjb4N1RF~ zIuK9B4Bl(r)b2rsmv7ajzY=tbfi&Vqt>?gxU(Zn+elOjOa7f<#&I%p7>?}7sSR*&t zxFr_5U?g8*#w6N-FKL$^opL*0=pNz}K6xq(8EH|v2fxsmv8b5?*?Rz{DT)xo$isk~nmLmHCxWVOUm#A4v1fIO| zl{xS(`EE*@v!`eoFIal(IuPoKqvX}EC;}2>z#F3&P^5fF5J})#iA-rQyQNw4v~}qp z>4g*E4aP-&$y@w@*>r5yr)~?3r-LTkcCBbEZ@R5bKIg#qTk(V5wbH2U1SAnuITVo(}Ud3_dlsI$P|~w`8}8j%V*aXQlD}e*LJrGYFmF-oT6l zi=+CSWBmjP^Ag+Yj}N~U&UwA!ngG@44oQ^fH*NWTgAg-Vh3WOj+=vMshwkyP!-crZ z=mWq!*`Kn?;=6CqZjDtN6;zu2n8Sr&MZ+M3Mc0ZoD2zd^5-r;dQ&szakG(V!fm^Q9 z^&PgWirI`)lyv?gLt|P&Rk#2=uaX>7!q?-Up#6CjJfOjq;v*L#JV)9hEX+7jZiDuN zPowJ(7#c`tnlTekDX8qf8u;P^~Fbw8|ndd&Q9JS8k%TeY8mxi#Et;*O>Q_UK= z%iR0yfH)bUpr3oCuq`)QN*akH8?=|#a_v418uz|?hAnaIA~wM5S9g(acC(e_j2d9^}7>&#Q>(Obg-vNSR(BUS8Bf5LoK6f9w7xMII#!b!{w?8Zp2ZG zw{F8JLS@a$_%pad23exE>wj!*l@bKL=f3Z6z8U2Sih_~J!6Z%BF=aun!o|;9n4@qa znGd%<3vn8JI*MK{&7}Y}65S-2Gxe1VX{@mw!mPD$rjqD^#?!{3b7>xWM~~>Xe~=Od z!kyyOsmS0L)$2vXkM0x|$=j^@DXg_SpMFAkJG^%zZf-rRXm}Gc3CMWB+uS7i$3WAA zuF0_O&8?qYrEb?PFjg^H;`#uTdX7)!7y7Be`}XTMbFm)5I>|C;MSacWG&XREVvHl9 z8z4Kp$}N76OB}V8j6i}|Z&th0Fgxr?wHzMY`2zvcKMBZciP@EEVidW_+azec2oyP+ z1l+E_%WHhX%42)jn^sjYrzm^?)~_YyO)cG(^3JFtC7Q4qwe`jSxr7b1eQM91nD>C`^L$Wj3_jt^Lp~zKot+N^u=573)B)*c-HWK3pa{3i*4R} zHqnvqH&N(;0=t=2%pk7=M@OF1Y(rc>so7BKAn#@oqu06?$UmVC$Z8&}HA;V$L#!U` zFKZRDVtDgKgG9$=^&<|Ql`{Gu{Q0>e*5a1zZ=zVRAgCahg$Sr*GAS}YmigLSThAqC z=TP$?nPUNUQkDJ{*)30WYL2tuaIT5IJ2fN&sx@WTG`Wytrj ze#aok#&yn#59N_Q=DJ?XmLE@+^=`xw628rQJsaz#8`j~d6KO680B%;{5kjZMmhxmW zT*tq3hIlYO#_fkzg#ApVV^_h^aeps2Frxa=SAtgQMx5mIxi@ zM1@?0>%_@}=D5$fcypYUSxrVDn@-g{TRp&0{#Tl<{e{Yi? zU*2E*t~n)h){FJ(a-#U>conR{4YwBWt{|#NuO*ZXaCuXl!D=QVW%B^M#?m^VNs=?z zS>r)L=R?=;lTXT480H5u)+jKL1jJ^3g7&zlbiT12-C;K!*Wx9l4kq`TE^HQ)ckbbK zU46$(iIqC`on&5Rhp+HjdS(fBY>0TjvBV;?(=TjM6~=Je|8^5pN7FT*%zd|MuHd0F zE{h?%?fV__#`qI9=w~7Q7tcn6^qqBa$O6jC1pEb5FyRy3zO7)8Y|UO+(*YROICuvl zGp&$$AY>YxZfG(X**kuknwGN~^CS2&A0fnK(-La^EEIY6%Ez7z501`00b?`RV_>hW z3kY70`&Awqbw_dp+evcdlqDVBmAG#80#N z*WFXoJt+mOr3ecSj8tq;$k z=owhu1O-}`)p_C$%0#Xyp}PJ#;kW5>UGrsJ_{;I;pu8PqEq7y5>2>T?!ma57%y0xb zAFa}|LYkwZmLom8y?f=%)6ym_M=+U>NY76?=VRukk9bTq8fY=wC$tK6qH{*`4*Wc9 z_&8X^2qYLR1+v?mK7HDVyfneujIgs=tDUtsVYk3PSzD-l9Z*5mQj)*V77%>HfB&+z zSTCMipE${-U92Xn4gut6B)J3D_88`>rMt)k3C|=tkxCezl}_XXEcOSy4L%!;wqEXd z$@_9Ith%*0@qa&=wc;UU!#m*GfOI>gL@l31c~aUZm@vo*B$+zMoL~6AjkqBWZP~Lw zFQM@bm>x&WPoSDL!{g>n%V=NWt2fkk@rr`8*xIMAQ=4cjIAaOx1yVHgS9w*d%f*fz z1uRv&rIP;3LodaAFpuHYyUke_zzRz4NAv?V*V^ky+(CZFhT7T#THTrd zLcVq{S~b60$I^5)oZL0VjVjEpre%|++Ey8gJmN(Lgw=PF*kP*UeP`zSEohV5?e7p_ zNrSjwpHkd!9{z+$k)EYZdr!U`&z}=2Y`NX;f8%(6^UD?Q86iD-d~#AHqcU=vS#Ol( zv|`7d51xXy9Fcq-e+|VtwJn>MT(9PfJ(1J+Tba!ziVf+|f@@w*NEF&F`uLoA&B&(N zo&|Zv^U!@tH5JhrFB$fy2_LpP2wJXEyh9dJlO(wx7EdV0C2{)<_37cLuWZGjR&5ZD1=n3ZDq{Qdv zqvGV-4lk>Aj4QcyIg#^+pJKKXqt#5_&#CwfEvxwU`EHvp&d5|#xY6%Na_zgATKV1m zo41!yL|%5naMyyLR@RvW7dbzM-f?FNF-mbM!(GVm`e&1nY^`2RfzrMx5+DCa**3G$ zq-*J`g*j&R_V|PnT7qk}=?3N1H;J8?4_)HiIAOPQ_{SvwiGKUO1&K3JU3Zq`{m9N3 z^0~yV6&N-fb~D>*8l&o!?LA*+vvcDWO0Q=r{Y+Mp70f3BDtWT0#8FqiT$gBJ8NY&g z?S|qn2L_x*U*@3cluC)>@jva45+{q~HjQ#0)W2~(te|i>uLI&v{u*%uO)J7K}1 z>$V`;mUs0=MXlb;Q-;u<0UoLydywuNHc!0t$oxJ-k${31syy>U!>RP3Ir8-HWK{0-bhUrnEUWxa%x)TU2%kX;$~bHp7==Znd%9$gk{BO z_>raR1}qx#t%8yRj}2XJui%yz`rk)%`{U8%yuZ$|&S(g~84m((hf%{`K}I)uueN)5 z{DA=aY?P;|(OcPSX}2mn*C;LyjxfzecP`za-U{k{)JH)Dm$x8g`kq@g*s0|~eQRV! zu*)l^wB~6$XB}owwSDP19m&(P@zon1Nl?HPvSv7dg>s!I`84X&h{9_OHQ$Ci))q`O z=-(BlF=1@!;TrVkUNY}me8Zi4#5`J>0tan%@KC2jdH%SyM(g zj}!JNnN)U6Z?NcSQ=Z<QY(N zim+T1qH9fh=VZP=baqyGM3v%j>iUOWN-p1n2@yc4a%s>TaZn!_n3WJ%?CyTe{1CQm z7yGBxmZ)qz1us-aDfb%k=on}p`Oidh-56bqWT=a z{(@F2zR4|SEDk?UM7vq{tvV3~OLxSWgiyJ3=7BG1_K{ZD%RxBiTfN2eSvO4mT|eu* zyukSGp3~5wg7)$5bDRC*O?_(m!`b<>R{fO@ID2ha~LDFhzq;#*2o$%|4hVF?Q z^#ne?i^-dCFGLQz`+NwLJazz6#%*GJZHa_+cpd9+WoM+fEabpUWN=E9Pn^ydqJEmF z%3m#%)L=Zvc?!mq<<$lDUdEVfPAt1pWbFm4@?*p##yoHIQO@gJZ4Zfsp()2aQ5EgK z#~Tc4UbXjG?6-;SzBp?v*wXDV7Q;>GnfEHnql*MlSFA+RN#)fP$LcP@5}>%oO1owr za{Ib@OT@BDn~3{;fu>B-l@j~d*t)0p)n+`zDB1L!p@(Jx>6(2HXHP) zcT~Y+@?Be^hVw2lqPSsYaN!Fuw>_sIdXw$vQC!JUi_E3UEWBLTqvf2)yHRm|&pxBU zCV`t_|7n%0up`D=3erA@aBLQcG0xqePHBIbNe9E&rsw&bsWa%TG$0=Y8@5!I^QZ(L z2o^zfJ_g1SbZ{+cSKa?`RKZ{lBnbh8@b#TLy9ZijF6-d)e!p(?`^6E35rPw@w8=I5 z&*T$3_jD%pNJiBpWk6QWZMHz*(ehDllf%dysQEfOytYr!b^%p?u*ekmF6&MZNJk^WstF7UZl{)VSAa^AnV!QdfJN7Q1e<+k})} z6eu0Zbr;UBS6qm@exCh1L2TsA<%*RXF_`8*vOJx z%>z`m{c51yQM_?Yqb8#@2&0jGMMTd;q-E~o71I27`MllaDwVB2TSK&`X;-6E4K8D z4lwvTpe?!0>sT&pjbcQqbz-*-hWTWRHrnA5>-B_+PT4Y>KSf`=w^?`t1T~LfPg?gp z8YL-OmOw4%-jVLb#re+o5qr-=jj+k7 z({i_p$ZK!@$As)*+bRp|q}X2mQ3WxIqD+#kXWiu}xgoE{1uF+tmt>1g!I$)Q)C)Le zsAZ5Fnj{kEVLj{`_N{1pct%hdU(S$ucNPESnYqW67J86vx)&va@Z#jLxk`~{QT>WZ z?{6oe2Ou1}%a&cZif?PPja&AFxS8m&+&r^gTC_7V*JiTvDhnKlRH%krd*m1a+Ewq% z=ITpA)j8zQGi(H}rNAwbToKPp4u~8kO!Qi_5@P#pIGcZ-zqJsWjF}7Dpsf)QbwHR? zW=xwN5nG;7_&-@L^CAR{r=;4#0(o-%R|*CF+m`1$9yMJ6NpITphTP4?r%{%;vOf_OQ)YdLFI1go}~Dv!jDwqdQz zgK{@M48aP?OenPvr<7Bs!XJ$4R8gNwzcp92>tnlnO}0^Z|C~|*44$JE=Dt63PKL^E zF(yhYk2iMUeS523ljpRGo|m6uQ`l}>W6)7t?U(! zVq;HTXv?^uBg<34t)r1}!ri49!`OWIi$}oBO0`3~62@!qNp|URV82S}qq|BPX#A_o zTU>uaKK4VqsH97B)xJKV0fyfWHpgNn@&;BewK=u9CAM{lHS;nd#Er-kYrZV=JM#)Y}s(XJwq?70LmDOQz zr2iVpE~Kg!>IUClTIS~j+_752r$~z}xK2K)H^k>4;&HH*asMi2dN$H3XlKZk@upterdlWV9JOGbC{20%8yfz%`{0@AIc38;% zU2uC+CPqTOTNi$xGKhr>I$DH%><1yGz;tzQw@_%i+&jU=Jk$z&&S#^5xe2fkq9K!L zI8h}qf6_m%vVBrt-99Z96?PeY>xK={P3WDx#_wvdW4qv^avEj5M9y0*hyoLvlIS`J zWvh+7?2Z?a1#W3HPE73Yw9TVAXSnyslMg03B=Z-lN1kZ0@+g}yG(OiUdi!_>Ga;ez zqKc|YQ!OP7RhHa?)F*<_A4hnIRy?o+OARgl|vgr;A1we&HX?BSz)gHm=$R1rZu z79y|(&OQH=rPbjv$}G!Dzy!E;6RWB0!`j|f&&Z^n&XyuS_7HKKDbL}uM4Di?-{w~d zqT}qjj|s2YtDe=-zv1A{Q*=`A9Li$J&aPF9`xwi*`ZR#_g?{zZXY;c%k}I5LBdPz< zrxBIH2Z!Tpfy$IbeyMH46CSS@ZQ>=}B`jX|-Uf z3d389gP6scTAH6%%hNIjuaBI$4av!E{_I=IH{;e?_LkciOZZ^$<|j`p;Rn6r^md`SjUUL18!Bpy(BKSu%YO; zHX|`y@$)#8S+tUK{x4Wb?BwOsVMKW!oQ+kAkK9e2fH7g-E3X05OuY(5E*I@-V{&{3 z-dZMX)`Gu=d4<2289tzmvy%)D{EU;81hDuN)b5(kfrhUII;h9SIgaDO4o+BmlEdXb z;ykJA-Bc)U)Iv#ESmY^GPgPNEBu&w{GZxk*p89$`S3?DV@OsJ%M`=Y}|Ew5m;KTbrS*Vq+yM`!Eyp?XMQg5Q}=+ zA4}#ttKF64RNG?aDn2Z391$7U?Vf%Sl3f6mnO@0qZK}6iJ|(ZohrWeWGAg78kq6!u zsOVA{jbx+X=}UZ~A~4j^CZ{!r$!Q#Rndu(ah4FqN}@=iuY{_^Si2;Z601$xVZeb>9dcb+k1l2JcE|%_q|^?^(}3i=A~vV zRxnFkb=(HH&2k=3bS-QMruAuMp))H_*A#GFmDdKMje7mHQ*80~XL!yoc2u2p6V4$L zJ;o}{R~jTsZ`jkz>YAyVFW*c$a8?vVe^uHd3bwbxrLu8a-f0Hs3ge5)_6N0cMp^7O zL(hWZv8Lk@vn{=ugTiVU&*=*fy40RU+kt)elD8F+>x-^aTT`8#GE6A!l2*fy)m0sb zMI+rnY!YOrmy0BJ(zLB6_UJ6g27Kc6@Jrs?CP=KN#4gp`7fPf2;(915=cR98qCF*s{x-b~{~@%TK$a=!X7#BWRo|Mn zQaHgOPMZ=6R5VB>gp&F4VpMRH;;=n-=`~@VP=Ja>5t!7@^oL;I;Eh%1kV{T=@^W`) z4<|uEPP`j9=SrJ!{c}ad&aEpOo7b8=v5SFl(utCUtEBh{7nR*0)v{Gohv%yDb!5?I ze#5ty@}DYgGW7#Wp_kwoq<30qCt@=|)-lX@t-ankq_oZTcIS}elS7s&gvi0rH2)4t zz{_0JR0ij)FRRl7(x=+n)%@Efm*$6kQ*oy|DWdo8tD`37@rqA;Lq;kX3uC^d&Px~2 zJsVohJg$2B2mFo{hIX{4F)Ia$QLcV-a}xM^WIZrRwU_=7PVc0$zR)`Sr5C7==_)%7 zLvBv`hb2jFm^k;6b#SiiDVPkJZqQ&{8nqtze@@!Uw)D&}RM^wKLrxpCo}|t$NabYZ zC#?`Z7YD3jP2<45g}@m-y{}J+f}}6y0lZ|oxNP&OlZRLH%86$*_O%?YlHtb)zH;Y> zm4ntQkmgTmFWWSN8&!k4X?uRaWQg5DT;Q~*-Jlf*Gi_Ei`|(u9`_~z@Yr%DWnQATFS4nhQBK7 z#JV@jFtQ!3f-=HD<^8G8mlT75J$Zd3-VHd7+M=xws0%^)bL{ZwIMLkEUJWiW(voNeyPFvJ);7!qDOZ&0}VEANDHS9Jd$ z4a6#BDvmg_&^R*i2_!mU_R~2OrQujYJP-BMGLr+#`Pd<5&r;w z+t%n+?FGko$!0oDayzquGAobn-Ma^+8T1}IaiYeObkYp85R_>}9f*KFA-{r4W_y-cjfs{8X@}+S<~XM*BMm|{&1O9E{bKav7Vfq%;awHH40^b2FWMC$AK0Sf)UJN z;kJ^qT}5vO0EsIC92`e-T#vZ7B^-yXg{-*IQ2dxerPcYan6LHb|A>v=5(^84rNgRW zcjX!&F0X|39DY+Bc!A&(2I_*>Ik(xd%@K)llLkY5JkIj3mPSnm)rkHpNiHTTWp5xn_ z8muY{o-t6kPVVj?>*v%EJi*4Ald($2Hr=v6=KyJQYtQ}FlL!vQo&Ozr#c_?!SF~Y^Cs5DsKTD<@dvo=#i>+M_4JzrSecu+r!ym_ISe&b8A%Z5^_ypuI zH$P<7V8{%=k#s)bFhS99tLr=cFh|tlTAph@W(fbU)p@*24~GhmF}9zvTTIomcD#a3 z3phNEPYBhJZFLuNdN~2Z|3=y~TR& z3YHyEU=8OfdHplz4GIuUew*YY0>+DUv-b05DjeL%)G)uwgA&fCmzI|DSq?5-yFYi8 ziVGGsP_O|B;q_e^<#pxnj>6**xBkBRK}D?rHq~Tt(pm6QgHka>EnssScuW)@<**p@ zNad)X+@;Ekl?Hf&xh9Klk-Z%BkMXE5qQ43;NgLz3*Ej%x%T)x5E65U_Y)QtX+&cXJW}W|GsKpRIBc9^s|vpd2xo5?CYy< zAuc&7ike&1?_gwund>M9n!hQaQ3Zu-oxhrS^5@iG5C0s3z(^B;YyS80oh#n@2}fYR a@kIt+X_q5H-}MXryL7?YtmeFT{C@#hp&D-h diff --git a/blog/2-create-gdnativelibrary.png b/blog/2-create-gdnativelibrary.png deleted file mode 100644 index b734762a9c7717a7a6f6300be7b9e6d3b35ba6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63400 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 KboD8(AO8Z=R)j?W diff --git a/blog/2-create-resource.png b/blog/2-create-resource.png deleted file mode 100644 index ceb42181ec5935b9bf55ded846bd5befc2172511..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105057 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

g!+ipwOPJdx1=}sD% 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 diff --git a/blog/2-infrastructure-en.md b/blog/2-infrastructure-en.md deleted file mode 100644 index d09a900..0000000 --- a/blog/2-infrastructure-en.md +++ /dev/null @@ -1,137 +0,0 @@ -# Implementing the infrastructure of a GDNative + PluginScript module -2021-08-03 | `#Godot #Lua #LuaJIT #GDNative #PluginScript #C` | [*Versão em Português*](2-infrastructure-pt.md) - -In the [last post we talked about the design of a plugin for using Lua as a scripting language in Godot](1-design-en.md). -Today we'll start implementing our plugin with the barebones -infrastructure: a [GDNative](https://godotengine.org/article/look-gdnative-architecture) -library that registers [Lua](https://www.lua.org/) as a scripting -language for the [Godot game engine](https://godotengine.org/). -The scripting runtime won't work for now, but Godot will correctly load -our library and import `.lua` files. - - -## How to GDNative -Let's start building an empty GDNative library. -These are shared libraries (DLLs) that are loaded at runtime by the -engine. -They must declare and export the functions `godot_gdnative_init` and -`godot_gdnative_terminate`, to be called when the module is initialized -and terminated, respectively. - -GDNative libraries are loaded only when needed by the project, unless -they are marked as [singletons](https://docs.godotengine.org/en/stable/classes/class_gdnativelibrary.html#class-gdnativelibrary-property-singleton). -Since we want ours to be loaded at project startup, so that Lua scripts -can be imported, we'll make it a singleton. -For this, we also need to declare a function called -`godot_gdnative_singleton`, or Godot won't load our library. -The downside of using singleton GDNative libraries is that they are -never reloaded, so we'll have to reopen the editor each time we -recompile it. - -Ok, time to start this up! -First of all, let's download the [GDNative C API repository](https://github.com/godotengine/godot-headers.git lib/godot-headers). -Since I'm using [Git](https://git-scm.com/) for the project, I'll add it -as a submodule. -I'm using the `lib` directory for maintaining all third-party libraries -at the same place. - -```sh -git submodule add https://github.com/godotengine/godot-headers.git lib/godot-headers -``` - -The GDNative API is very low-level, so I'll also be using my own -[High Level GDNative C/C++ API (HGDN)](https://github.com/gilzoide/high-level-gdnative): - -```sh -git submodule add https://github.com/gilzoide/high-level-gdnative.git lib/high-level-gdnative -``` - -We'll be storing our source files in the `src` folder, for organization. -Here is the skeleton for our GDNative module source, in C: - -```c -/// src/language_gdnative.c - -// HGDN already includes godot-headers -#include "hgdn.h" - -// GDN_EXPORT makes sure our symbols are exported in the way Godot expects -// This is not needed, since symbols are exported by default, but it -// doesn't hurt being explicit about it -GDN_EXPORT void godot_gdnative_init(godot_gdnative_init_options *options) { - hgdn_gdnative_init(options); -} - -GDN_EXPORT void godot_gdnative_terminate(godot_gdnative_terminate_options *options) { - hgdn_gdnative_terminate(options); -} - -GDN_EXPORT void godot_gdnative_singleton() { -} -``` - -Since HGDN is a header-only library, we need a C or C++ file for the -implementation. We could use `src/language_gdnative.c` for this, but -I'll add a new file for it to avoid recompiling HGDN implementation on -future builds: - -```c -// src/hgdn.c -#define HGDN_IMPLEMENTATION -#include "hgdn.h" -``` - -Time to build! -I'll be using [xmake](https://xmake.io) as build system, because it -supports several platforms, as well as cross-compiling, out of the box. -Also, it has a nice package system integrated that we'll use for -embedding Lua/LuaJIT later. -The `xmake.lua` build script is as follows: - -```lua --- xmake.lua -target("lua_pluginscript") - set_kind("shared") - -- Set the output name to something easy to find like `build/lua_pluginscript_linux_x86_64.so` - set_targetdir("$(buildir)") - set_prefixname("") - set_suffixname("_$(os)_$(arch)") - -- Add "-I" flags for locating HGDN and godot-header files - add_includedirs("lib/godot-headers", "lib/high-level-gdnative") - -- src/hgdn.c, src/language_gdnative.c - add_files("src/*.c") -target_end() -``` - -Run `xmake` and, if all goes well, we should have a `.so` or `.dll` or -`.dylib` shared library in the `build` folder. - -Time to open Godot. -I've created a new project and added our module repository at -`addons/godot-lua-pluginscript`. -Now we need to create a new GDNativeLibrary Resource: - -![](2-create-resource.png) - -![](2-create-gdnativelibrary.png) - -![](2-create-gdnativelibrary-save.png) - -Set it as singleton: - -![](2-set-singleton.png) - -And set the library path: - -![](2-pick-so.png) -![](2-pick-so-save.png) - -Restart the editor and our module should be imported, nice! - - - - - - - - diff --git a/blog/2-pick-so-save.png b/blog/2-pick-so-save.png deleted file mode 100644 index 549df2f42c8cc9448db6bc525fe573a7c9904227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82959 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

Uy6m@=ChHsu|Xm9Un5f-ZN0SNIniKA}3y zPo>gMT?W;hk+rY<{c^9WLK_D}$2TDn=ZM+Yh%osYY_Ja-iwc<6XDNDTVX>P|f#5GO z#GA*$$cSWkdsHY?=BU8Jo4Y(zPTTHZp)T~UhpHWwT*(Azo`lxv40IUegqtw1d6NTIY6A-P8i=oT*$f*G$FrZ zQpVjD4sM9bu%y_)qDg^R*zsg`>W-i z6)GJ+fXtYim4I27+ya9Qmc5w!p>1t>cRmkc)M6bCNu5l2I7#cKl^2(c`ggvjY7MEY za-Nx$sg*2q+crz19wUdk1N7o}*#gvyDfIib&gdhBRi78^9y%lqCrvWMTPKtYw0cFOZ1wM(52 z1q{vJ@$)J&V%3Q=xmEEh($hc>w>U{H9JkG>^T5BGmI$35lkj>%)jmpC@Hi@*&G#)| zFrD5NSTW<|9I9B#+dWK}|?RXR|5Zrb6ZXtVH(fr=(&<{LtD zPo87|VYf!IG+ji7&RoX(z_hw2ZEa`rfq)nK*`53yU0Y$~;U@jh6;r9$xJywF++upD*nn&XFcNBs1mhhqHoqQXr!Hz(#WRmRqt5awT$~ z-sw_XLS^4{U{|CGal-VIV@PsuSZ*}A5*v#`G;byj>Cx`22!M7ya^()E?X<}{{Yha} zSdTNw&>_|83*E8F3FD1BkX?U8c7r0;qeiM%-p3!JVpHcbazS|*7*S9?#%mqgN6}8v zW)}ya5l##2sOM>D0C8MJs*sV7m%Sg))E#r9Y>$Z0l5l#ZA&KqoM(3t{0wQ}J1iaX5 z&q!*F|1NXvqe8SH<@dPJmLhELGLyu3NqwY{$q?n&K8};$2TLFM-<)1L+CM(rPI3!- zuBO^He&ugo19_d3j9Ex1YZ*0@;4P33R`X-SgZ0kLbNc+RG|gl1>fOb2TMJ}lD8fgb zbF6-MtZ)T`1E8b7F@ExG1>YzkBGr0w=h2*1Jdg)}8SzIKh4^mn z28gVrs+A~p0Cr!#I(}!UxW@01>H~yuFU($EwpvDd;A83AuUc-O%J8|p+4IW>0mh2I zr5NGN6Rq!0(|_o>#fuv82#e+wS$?jwGUR#*swzemivF-5*|XUvo(&xvfTlw(at$3H zS@y<852k-m(M{|>Oh?{#po+qz=y0io^c@=&{@m=@gaUD3>?7TuJFQ*~E5kVJ&{E9 zQ?`v~s)$J!*t)EXPsbV3S$gAV9!)pWSfvS{J3 z{xiiAa8FER1wl}Uvy6&q>7j}szo=B)`cKE!0k6c^n4zk};~uA$Cp?qEQa~c`iZi{P zFBiW$QtEW_bb-EVu{xyG=ib^VA79}frSwGn-l}?4zk)J?WsmZ)rbIckqd}N1>i+o( z2U$sczpqp%j1vLbH(}`9^kt8lVMXdCM&bzGm-PGZCZt^Q7rXX4)ipBQOqLlPvho5x zuNgMsevKvQHTeeU z5MAHIySdFat9@_|g&+-|f(6e%im>z~j;>eG?#KkU6{O4q;x~3?j#%3^Pi`HjZq6_c zxP#N%HaKLWi+c#~+@)C(_%19&#qn)ho_3VkkW6p@jOSe0>18p=mle8CE_H-{krFyJ zap4FRcs%XQ6*5F!eHKbZ6VDZ@FYXU&aACWcr)vA zpb`7l>s}CejoM~RxX!(RFJGAB6B5b*@YX*%3WtR{`hd{QPS48#<^YaCa?Bli;9R$} z{{c51N>4mQKo54L@@+%?(}H$xrl0iUQdZh(3kjE3SJ>g#z8;ASJdhf-Xa~2tq~c<8 z)qGR}2>cvAKrq^AQqR$H@~o6i%O^sbV|A1ccmAQgV_9uLeP6$Q0rjEs)^gJHM1VgS zP>itI&q)z0yv2dnkdbwS=WFgCmVl_?U8MsDmFj*XL;Nx%H~L9|a{H$MY5nlK#o68F zkS#p`wU`%g-M5G~u!hA4XCNum^VS@-67-=2>CvdqAt{$)B3VS5Sq1~j>E*A)jn*uL z`^Udop?b!51#MVFp@65=I|(WqF$`~#*KJ8Z}0KYn^M+FQv8fk;?l3b zE11Etq0{~j)}AUoZDtQJF-=kwB+s_fEO$@erh4ojL}h7=tMHatAhuZAak=5qsc4SK=XMIi0LF)zzkYhh`L$kL ztpp0_X|ZoY)C<&3H2|eC9iZO@P?k3-@6|U;9u8qsAT#|R#amzQYGDjiCARjOGIlr^ zq71W}JRXCA+Qz=^S>c0}3jtS~5s*&_U94vfXF)C*c-vZ1MM^cPu>XUYI_NvoLuha0j%%rWts}-GO3gHRv7a*8+*nE=hAe zmAm^HBc~5)s z0ITgO8oSQ9zd8SRn*ny{O<1GQEzniu_?4=+B(&f+f3q{GaP#T`8L)#$mh)m)NZ3;T z?onvm7MbSQpay1nd^Wz35RQz5%`=o=K1n7A4QC^^a&64{xdb|>sMW@yG)^>Uq#~|u zTs`m)IZgVMG8X{!HyFJ6Jj@ATl9wLOy1zk$fIx)}cUyq6N`6Vn=t=#J-!jOPSGA4- zpt#Wpj#lqanm0Ekg~WzMB=*Uq(^o$f_m=RoT)$b7ntGKz(X>A1bHdw{@4)WdH5Gwf zzwx)frEgMBULoGbW2mQV%KpZe)#xJ(>e?()!7WNtA^wO~Z`r%P-D#@*M`!ugmg@dK z@7fE1&LY*9FBe9D8dRc$TlechIVFoQ{3sn$NqvhAVMGn@zc2*XvyOLfFk?HQAcf7z zfL~(ikU({wLiHu5*n8cow^c&bd~Qvm7T8I5KB2t;blSF2#TNT=jrO z;-S5V|9o&o7hk@koe1^`-kB{Qh!;?}hUmB$7#A08Z9RIt6`Vf~;=et2#cEw-5&nU?UBBKof7#PSay}Og(_hsNTv-{$&!0ye zd6Dhk1IRGoiqsaiefhFKlvQHkq32Gv$OF-l(8PPU$83P&TcR6VSK<7Icm2KLaxtrB zPA+MLG(gBzh}nSU3vzB-Yr^|LLx~5z{YGP+{DM3d#?xxybXFkcTc~t({FztEu=3)E~XSb7d;ke+qf(0kdm7dHITI^w;L=_|Ff`18KvI6 zakDWWQ!;|~BdQZgZ9@YSt1sdT zYj?|;xza0YvomfV#{S&zhJ-o^X)8FjgwmhS&GhYXJ6P;0+0I7!|4AGk&3+Cvh=#Fl&#;YGgZ; zfg#q|#wNa2DF1r{3N|4;&%`?t z27}dNVqdcZ=KMz2+|ML(ex6DE&^;t@D+sW}>qWk_3eBjsKuCEXl;*c)jM_*8s*#V| zE>F@o9vdylt+8*CHZB|}t@4UByRA}fBFl3vsuXZX?F9m$FwJfQ2OOGrZN=*5w|%h9_j0DE>;Ar%)wh zfz314VuCCc!1hnklf~F;QTJI1G6*;&VrzKQY6Z`3R%ZH2BWIU3baZYfUmcrJ)-%PC`{eCLr>4#rudTE{(gn$?aS17qKd4cDo^V zF)_MxnHDdx>TX-bMZHu(dHCsH9IkUf@#M~r%U6)r+|@h)GX5nBx;9F4DTFNlelHB2 zm9k^Dc(j-G=-%hgk$AzEOZ}Xhi6wGn~lsc2wn+ zbqyhATTpXl8*1kJyxQ2z^VQpCZkT6`M5U>jig=}ziv7($TzD-j{y@_D1$k>hdft>O z-*RHBftsxNP_p-6oz6NKAq)vjadkQ|W~>#ZN{S2)kJ?~DdcDvVZ0peF?3~1^Sn!^C%@P_{-B(u{L)E~;{!`i>sP79 zuUt&k-lX(bB_M*{9NH`!Cvr|OB{S~|4{3vISiYY2zuAm@Pl*0Td@?|M=fF96=%T%m zJmuBbqyD&wFd(-=yGDeJ%}y0&xOouDIoyxxXOQ$~?TEnhrg_98#~_q+J|exfprXNL zf{?P)(4qE-kmU))tr3sjJK{OnPsmWh58jP=46O)BUIi?KA!i03?Uy?)B`#ufpIgJw zR4(2j?hdoAJok8=>eoRb%2Yz74#Bl3WrryuEu*eGL{qgR%<~I?4ZIs$4!DhIT~SO? zZfRc7|Bh858b$l9z*~M-UX#M~ z-Ubg|x*JJg98&VeDfWZM!3)cdQWhK#ca^eoxz%s@8g01uO61n#TbQNG~CjtD4S5 z>N5%Se%}sm#}(Y)?-f2dD$~Irzjhe&{!k)?DeGLaaNj8!5UDU!@u<)1Eb;^Rx)w-(4>ee+;s;(FE5?th) z-4N8Y-dYt zk9W9k9pi&5q+EWLqYD;3Iv<|u)``WXIDb{Q5^vbC@snlFk^3pxEi*@7y*&OTBJx+R zdu{G?6251PK7tuGz+_ayIm;b}!IJnxGh(verv4tcAHjlJRaIS^rF=lrSOHAXAKzmF z+yv?RR((gf5a9Q>Q3!H=p}pvNk1=Zl)Bf9_eWRzgy>+~kHvlN}t@C2R4>(|^@0#Dw zc)kMy`!`)0K4Z7NHaezEz%4%8Jy`_>4%cLvpMcpUJ$oAVLRu3$?baS4&PLKSFHskk z%N+K}?5niX;q2pw6ld$;5IYggG6WnqDGvm-b%F>uUkL*lOx1c%QufO#b6|?R;#nvP zc)GntT*ES*m5|SR>s|w`&*)kWZekC;@B1yu>(^0(6|LXNYraDE(HO+meW?4ez0ZX4 zh3m{RmD7L`0zAl$gzv4|c=zoPQSB;cNywRL{++xP*|ub%_f^W6%#Krc!xE`JPxiWe zXY<-3gT`-*jf-eD@^IBxzU9Cpvgn`pk}LiZk<` z_DBY%DZQNrKx%_-Nw2MNTp}mInFX3jb~{~h>kS>~nJz@`oEsd#L_iZ5Bw;o*SyRwV$b z*grh!m}zkH>*wxSyUg(mT{|DrAe!txt#+F%LEhMrYKL0r)9H@i zv1W3{PCI}hmZA9RWY6MIF$CP0qCMpD*|92m|1@oNV{_$6h1H7Gn$7lHpHKk3BNlUT zfqO8Z6+3z)bId$-KEP2ESdi}5ewnp)P(jQ(;ib85-;X+&+USJu zkdLVIL8l~7&G2bX@()_y9Vgd?nH5{-nYsz@qj;ZfzH3fWq_79AfPZ)P97W8a>Si5L2Ak7ZA(IK;1?OlRFD8<%qM!8p|M`to`9vM4O6H~a2vTKGiv$w(P* z{j5z$FBR)H-aBDGKo%A(XvbB!86#U*@zQ>~5v|@Gf_W^Tl)(W{%wGdIUED0dm!jT; zt(CCe_)#C;c3+?$rMyl}2cT7zE#9*-E6Pdic zs)?soa`dDXlfCyz9gI8+ex!eM2+lMrqcSwM=3QHV(! zI&%VNYop^*-dk3+n7JGd?6Jg}!Z4?~e0a=p3xhZ1d6LG=8SUhgAkB>WoqG0K-f@Sj zeP6HrBN;2K-#&SR6|bQ7n!Zj8w2`tLb6DYZA?Rlv?xc{us(N8sC#$V$T7o0Pf;l$kPPc?7te!{#7oMB;P&Mhg_E<{ry2nAT2m|EDJs_ z|G~bYhH~Xqete02_iut;r8VHekD~PLlbby;eWsa9!K0)KhLJ`krHI_Jn

S#IJl%nmI;=_JC$ovuxpv5DY=1qWB!ouHfUfUb?0vR@tM!FNSrDGjLzsqYn2e0 z&mV*40_7McR#2$^zR7Y%LlK%32$IeL>OwMhft2eEQ~C`i4PQaPf1^5QsMPs0Fa8@N z`yKWGu>&B_@j=_x$UOkGX+>ATD@}cyHELJ4Sod-}&0fw1g1J$X-ExhR?25@ z{Cc#V;g_~|IwR&z(Zi!GbrqA6!6m7 zb4Jwfm;PzP|7W=~fARMKV9Hyd%J7s=>Oab2E||Km4rd(Y{R$!6Uf;JhR&Yt*rTsL# z@k3VP=j4l}k>MC+Lj&3Ff0XO*xu1WBOvFC9b25?P~_k=(Q#E;q(y7=uofMvfV#8?1X z5q_pQ*xtB4LDHi=SCUERDUdk*W&p5kktagF`pxA(MJMT^K8dUEwI(t zZ^>3z3!|ywg~Pg%GoWBYM^CJVZn5)A>Dr8Dl{18iUVr3!#0&c|B}H08h_&E<_Rfod zoQK?j^B^E5RgOKLgn&VH2ygCdN6SvTU{08Z??^6M69R!lA|aP8>T4MI3$ja>zKnR7 z_a<-Su(g6@E}za8^jHnX7NL{QadXETNeJ*&_S3Ml$;>?QhgC7Ch`T+HMhB%lRl$}H zR-nTH1gct8+=EMR=;yM%@FPc83>B4t^TOp02#PWfly0Tv)bS+hK#Ls>Io>?WD!|b7_r^TWNUK^)#=n`P9 z=y2MW1E1$leBb{B(2X|&WLWpHsEWzio8+YPk1|{}tL?xtam$)c1$Cim-181VrtM=` zY%>I#{;;haiEM_6Xtb*uCLk^@EI?+}!o7 z9YGCmpLetgxxF%OQr+$D)^fFpnBpFwoA_suE4 zxp+yLW~h1Eu2$yu1kjmMP+i`H*S7K~5EAb5^O%oz0WN8j+&}CpNKA@ZhXR@ z>s3>(jK6%hNoK%{CfBp|J8byv9$Rch0rnP`lwVScB+xp4!}w8tRauK&@*Q)RPc7V` zg5ngHWtqQ{&H2g7cNm#G7A8;??lOMQagdzW2nSA#3jA~`rA3W?UeG?AY(D8T=a5Wh z%vF~4>ZRsPcl$Rg_C~heHFO^|KzA*w%QoX`URAE2_QV(^+25(jp^w%v%(aN0i4tzI z501&Hh(tz4TIa!Hyas25fC`0L834w2w0GnF@8&AsKq=|pDM+h4df@%@+7PJRD^A&I50zLD% z5u2!gP0O=-^dfaxS1kSSoE11&&W%(Q!w|r~Qn0ki=d2}=6|_I8#?uG%K&r0j$-mrq#3F=x zc_gIC)Pb(2yh^EB_~BAHyVr{-A4Ew>&1CO=_|m&;f1@9NYf0>FkY;Ptc-1pPjol7~P=<25@Ue#Q&uc1Y)q&HJrHqQ?F?fy);;_tf3m3 zH(s#Io}94vv8LSE51lt%u&AP-)q;NO1!>7myFDMRk@!ezeVa0NL@gr0jvus5)o$nc zYB2GyM}{nMV~GQ9+|AP;VDnulmprGwfrlUUYk`I^4v<7aRoN)Yg?u)o+axZ<7ODfT z0j_D)=!T@^+ux{&H**S`*jTPD$bD_8JE)~6@k~nY{-A`U4b0_&_sHKDZqH=?UW5Ue zdS|Wfs{xBFI4I#*SpTc>Sc)|B5buC7L#=MLaYI&q+NAD|S@7;!aEIf$=N8x`m#>b+ z)bx6xn(Y-yld=+ir-(#Jm(jK^6q-r4`Xd=iFj57p0ACvy&vUSKdS0Ov%I2npJoV9V z-Mz$L4cYgkZr{m2U-?POw^s|K3i&ngb!j+4wRN7Vef-#*k2l94S{kHgO;{BvtR3e>iOng*0mAnZEx<933eG0(6Of0p$UiFMz= z318fpt@*NNp6$)azp&2HA@5u_7RmPAIHYW1cn_Ytx7gS1vemAHtnVEA%$nSi$2SJh zBNYZt2Awxt2Hn=u&p9W$heeC1cak}~pISex3R&no&hwD$SRvp$o5xlK_I(;35kk9J zDz8|lSHvrTYqGzmNK*sF5*7t;ZighplrB{%;+sy2n*gMK05@x-w|;potR$_bClcb+ zr0A-rCsv(1k-H~QQ*&hJXU>R#OHipMf+l_c+Fe0>^Qq^Kgd}PvOV3ix@H2+iMv$SX zRxO$RxuVyIuPK>*b?YR?8*+r*oNWxq6Yy~?ji87~*}9msWOf8;p`#NuQ} z1BJe@b+O-39~R8yE4zt08;KLk%O{rfz{EE;lEy)0)!A4Ni(JjWpc;e&=@x z_)ML2e&g5uy+a{sTg<)}#=&n#$&bF#4SJk3u^Dh=64U1?)0fz=apS0aR&b5HBH z-SSc60MGZu@~YXwKhqKg}RN^y{1kTwXOxwNJrFSMwui_l}LkNXW%caO8foZYdFTka^zmcmoRu))Ch6m1tkKEad!+NCj7X}xadAmB#;L|5 z$;;mab*7@udMHZG%rypb0AN|KK6l^5+HD^Ag}vj-T(G|`&dd+Wl1lz4?77eVQoyU4 zqFr4O#9(cr+xMWbJz9g_1(MsXs&6w9Oxa%W0h3ZUlPkqHN{$jMH->Hyu3_+@VzsaH z4x6*e>``ufUB*6Udm#x1ZsLc5eh0y7n5xrn(tB+}`NQuz%@b-ijE=sB`7X>h$NJeq ziGxwDSmP;+@&dm7TZDxp>6h604Ife%h4ZP*(Q!wN>F|}F1C(Qjor81ox@x)c`is)I z{N{UAN9yZat3&&utK!v+V{R)pQ!l3u_M&2R!I;!NACbxqqPJPdi<@=$2=t3|(|wX6 zQ3QN>E@bbRTBsU_Whc&w;ZN8-8(TsXDswZh4srGFKcYloZkXZs{fn?`NfypTi+x;@U)!YPdTl}ddR52!-rp5G;tUhU@$K~x zeBc%27ywpRQ+$8-eEtQerLTZR{r809;F>t?@6$c$Q8CfRCDuy=sCgH`a)}oq+O-@f z{Cv4L1PY7b3LFwwk!qr&%-z?*KC!y`z0gk$Yqjj?&b!_XBue@sDn4ZS6%POmJwHX# zeJ)?>q|?ND-$I%Qv$2*bd&M&VfTVCOq(!0EL`{aL+7nepPj*K$6>38Xl_drwlY{3w z^`}$Q0aK^wu+few;zu6<0Lss||EryzaNFw_irvVr<2pk4e6N$usxffOYt3iOi{l0+ zk#t^_{oMc~GEzgR?%)C+$VLII*tpZSVydH}Xoe3M-ACCEnJ4>g9M;`veds<0fSDBS z{=T<}{aKhrI$Q4UhDR?kt1boUd#Pc*Ehv69^Q79nJrTbcmg^GtggiBxZeRw-AZ9Yp z_Un(D&Wz%%ge$GgR`%{?%|P3{&A7FYCq4kwXwR_wj-uTT1gbaBD=!%Hpsq$LYk755 zCc%4|@?$>32Fe9~=Ym#4_g*u{#2CJ`GE~TeXueDbuvy?D`W58buf_Yc)#M?7@Omz@ zOJFjg!lyZt%dv2QBfm@B+$Trq!$ofC%H_yjK9E7;J4Y zD`EIo$Ag=s*`V$Dw9YOb+Kv7uqYOnzG8ylSKecH@Ed>>nH%kDRQd*!D4y#DME zW=U$Vp8fd2E!c5-vinbNP_pM97mF19Yr_W0VK`Wb_#?@CLBWd{DD$E#k?!0|!#lrn5pnDI$G}@1%GMc#Cq*%KrYJ> zP*fh5HfKNnVIg_6ZR)k@CF80E*{@%bi!mOb%fy@}xsCQ=>tF5`yxSfmhVFZRXFDal z2oA;aS;3d$p@ikiaaT#acnn%I{YrM2*!Z3ME z4tki0YhD=jXw_=9I{2CIbNaQg+BHmO7ZJ<|D#U+Ub{BBARczI)*|lj{m)uOKU)yyk zk7(kKDeL0%xa3TvlHQj&h|pBx4|PsJ#<7gA&CnFabJwSdGd(HTe~a~PYq_i8v5+hg zs_B7lsvO_s;6C{eHh*ueXP3wVhw$Jg==`Pccb3 zwgIpQooFvq6eO|dV=F7`Heaq*Z-&`xkZ zXdRa5vUWLWTW}$?=3S3>j8VHzFgDkcx+K*5$f@4=57BllL89v2=vdpjQQu87^lbBT z;cI?FP{eUh*uI8ra!DO<`$_J)5YqC;jrx5>&3+F{TO-kbHt767F_@Q1f?sf>YAu1sA!zF8#ZGUd5UmEhb<>`dbv-l!1qvQ!!2 zJ^RznYv-p9SPa+GZQv>1M~_HGCWp#gNT|z)c?E};*F4_X(S*m0&?#*iRZ2&wN!nG- z7Ra=i%?(z&#GzINDyiQ^t+`iB=Z4ZVB0V+ZJ7QWPEGQ~xqo2Pmi)Rd# zZq5|nr4Zq9X^SzuaHHa6jrsZWgwL zA!2@9%xXgG$szr5oMdZRr0|;&FJhFb&wBer5qW~en~;PGJzG@EyN;%UL;KP4AKZE? znardRPXw85xF!q(+ZW zrn7n!MkcWrtdM#? zsshTV9;e62o1)rLiNdFrf`)3o)uWV)^Vi@R`F%oZUi0KCbyw}NvYz8_Mhlukh9wg< zvNnarP7>@BkBvJt6UKTN=F{ z)%+;a)&YyUWCmnn6hvR|3{H&rSQ{K9^#PZbH-4VEyXgkqN`VCg333+c;g>LvU1$sC z+Xd_Q#|MT4sMiUb0brt_l%QJN+h1(WoX2rkX4`m_y$dHLvdvxK@w-T>AVTw}Oh|y` zyg?=X&{619``PKIyp#s0oP&g{5Us4IS8ZeKQeY!ChKoaW5H+T_|=~*y*RzF6zEup$_N4;ee{~iVY zP!nmh(?5Jt$ zE$`~admyuPiHkQJd>Gr73HI}c9SJ^0ojWoILIDvLY!1X8yG(s%*A>=3B1S1%xd~y+ zUk!S73+U}B^=$d(nnxu=OwcBWIy$>k;y*e`Y zS;D2ls6qK8FDq%xRvvEXFl&oC3XFFho)uZqh&HHuB6#q%rL)?ZRMdnSn^ugSjPY(z zuj*T+ijPxgvIAL|LN1Y0B(>?Dsc0IFxS*>2~Zl_m;-Rj`?PrQ|~Oi*PM zljYw-CA1sj<~O8}XsoW!(6`ZdnqcydzKZegmwc@a>En9bOrkfp3Ks;^O>-W|X`PZ9 z-TAOSJwGRdurylrSw0Sum6sV=-CsMoZNeBsVDnvuq?6s9TBahg zAlgP@w6>?^HZn;~*s*Jpn+{Vp?(xSjpJb*!t2Ixn&pZsGl-G3&M{p?_bF6OKPn&%O zK}MBNx3_ZGHD{eRp){-A^uJUKAz?Iisl7kX*nZyZ(&Z16-yUMk9^jZ>Yw<09dTUXL zDq4Wx)b9e?Zjy!+7?(MnJlx6@m*Uq}hLb^41Tw8qu4aGy^cs+NEnm-eNa{iVBk zvBkD+HA00ZZ-zMg59h_*j(Ku~vASuVyTNhxk*Gl)kiLCtKd$699HAm=Hi&VakIAS3 zHDirm%@jD*KesPVPuQ;=Z{nmM6!uk3wvBb;!8NWJwTm%-eMitbRp>Ka?7@;5l#C}x z$<6P9(YpN=O#;V9+KKPHAK#4H{T`8$+^opCPe_=URJF;mi8Griw#lT`t<6$@Vxz${ zWCXD7st?@}a`_Ff`e{%g>!v1^VU9k5nBmWm7ke|AbR~Aahb)85en)2LU;Rurn;^jJ zjXq$!QgDx^)gu$W7MMYZ5j-}Z=1K+-_WF{Ss${QU?ZK0+wO#w{QOb__GBu!;<gl-KjAnS{7-?jP2(EUiA3VfSbMJGw(lG+m5AdrtQtzC zz{qk}_BNRW%j2xAl`g;aWlkb*lcP8`+f8gsLOhIF!&+_{Ni636tBfc#5!Bs$or81T z-;h(V`X)QO#>Ym$3QAAHSfYgwYX;H%(aNkh9VSp>Gcy4rxgVNE)=uBX7H+5^XD^Fy zEIy~FA|tz{nf~~6JAjI-fkh&jnVUmuIf`0!d%~Dy*5Gvt&1>S$d)IIe`gpl6;eq9= zzmm8HPm-cUP5h1UrQOohPLjM> zaIZkQ3!Nj&WLSb*4q2fG1x4mk7n$wBPuZ~NCuFQKPItyU(IBvjt9=wk$srY)9!bAy zB;ePWCjek(Yd2D-aPpFIV=gf+WfPh0A#c20@) z2znDmNYEy}_fov*(Y&qB=DZojZXfsle%I-3lkPiQF$HCNk*t?$XmFTh9HGb+M_Wq* z6s&wOfb7I%l;if5HQiH-@5)H=aCP76=HP@yNBs1trm`$6vq4Np-!^B{A(TH-5kD-c zTdqsAR}F`&Zc!qq1_tXo(qAp(9vsu1JnZw|z*PGENLa5`cO!lXz{)ian$(>aB;u25 zd`yhAeoMG8CL|_%5!aN1QxvX|P>u%Y3-EIB*B4qfFZpX15vHjX{kKIw9#czrhne>dpmspFE%iL^Q zKyHa%IHbYRqIep>=Bwlp^ZHGX*UXZidV#c-eh-AxKIY!@i6+;v++5xDWzX4E-dO%w zC_X3ll;TPFt4GqtMXv(q^zq6KZ4w*%UK$FNK`eHKTP4-2Qwgw*AthOAoWm8p5^=pZ42tHyWY3zgx5Y?Uh=0doQJJ zX-lGebMyvQ=IgCOF<8HC`T&%BI43H!@n1#4tu%4P(mloJ_9f|Viq~19-4m+!M!=ga zj#!QvA&zA@IJ-N=rQO(B-xc@@tzCA8YJg%r)J_*gw!qE@RTA_+x7G5gw!pxpny7O09 zFyWZ0x}f=KyyLgy56v$az%Wlum7EOt77Jg$95ol~K*zL{))q``7P!XFZ=ODP*`kRT zw7t_OYXdPbprJSps|$u!Ex8HS9;|AxU3>I*WrPP+K*9^^A+xEz`+a^1lkU>2qxCKG zW%waCFMRgIZwr24VS^4zNAO!vkpBDr zzzLv}f?xZ6(xR-hvkt+3y?+B8c}`XNhX?IXR&nESiZ`#g`l~SNfa4Am%vksRn?|Jm zD5anvbs`e``!wLZ;0HWDiaR2ejUlwLWxQscx-uGH*&KN|$1Rs)Y)rO3FlBsKXe|lU z6>;8s%al2L2aMxPiPW4QtH@4ZZS-i0I0y((;5HK51FDgs2Sv zTu;5|uVy1sbD%#1-ejj$Y_o)j9AFEUo?B>e2vX^kMHIYF zdI)c?gvcuHQy+oep{R9HM`ULIYK-Xg4(yrD0eJyniz~<7$3FdSo|calO^9GMld?&D z?~}Ed{VBlK6JmYjmlhOvaFGAaXSmAD+|Fuwe{CT(mz8-rcEslBo5Lt&Vs-NUHrerl z$h+M9gRg<#*ZMSMqc?BPiQfiHsx-CrXU9~{+<+c~A2E3}!p^HIqtNgr@ z1|Si#Hnz8p7iQ^jPT{k~6{g#c_M_-miULLd*Rgu2F=56hTAThs&PGQ}mZnO)e-n3% zg9zJt0zppWMln#-5HYPr)flj0od*0z4z73A6OW#}(i;09*rX@9v9-wSIyJ)rDtCXd zU~-w5$scW61OK{aVrA>Bh|H|A=69u$*O4I4`XafOzr(gRZPs%w2vA%cPA9VtW8)0} zd22&o{2g5@mN+RApyzEr?h7i&lyJ) zmRD&ul)AoilsEi*sa&9>lvrfg^@fUlcn4-u&D`V z>(CV_9^_dvjhX9GQMIv&&%K;`=4uWgkT_Uvu9CXuY zZy{o#OVt#Ek>lM8%L_}DL$C5YIv*^5Xi-fJ3}E69@=QRC^7A=!_*`eX%h7ir1tBUG+z@43#;-53~tm+_7&t*2<5mEVil`w z`humi7o4&&N?@m#uheMK6~w3UD(`maReIuRd3Q2pSG>MDp-Z5J*GNkxaei~P!oX{4 zKm0eJ3^?}qt2KyYcJ1q4vXvls5G4-W64|?s)s#R-AXQE2LBg>diHE*Y$sQch`@;)e zv;4>>Oe?NoOr*Z#S-WWOwJLQ$baG-K^hmHDWxAZYZGq~ONvieNl9Zi(kRl`t2q^}0 z4)6*QF*2lOCE2nR;`M_HRHog%ClcA@(lDoAe4kupX7}|x3lY5mH9s7gdipxi+DcVM zbWt_5g-4GX(+;G5;HD5ha#Tml?^X5(B(FCdtAWyV&9~;`=m8oFl>H%@Emd8L2KwRN znHHseTytFeh|BYIdRb{bM5VLjp%_^&lXYvk5UaGUdCMEv`8ZQ;3B9q*G}1gD!o+1$H@Cz{ zt$|-mK!yPQ0M`o~)1lp8ingZQq&KLIXC^qt*d$~bItjnoq?vZE)u{9$O{=eUkz1nT zZWFP_q+%Tm<~0PQIhYwlWpgFG)uJ{Zw}dE-0REeSQA9*UuYj=YP>G}BRiqUMbEIxQ zVnQA_{j_ya=B^zo!a4b7Zm&iq=A>A zg zd`*25N22}xCi|Sn7n|t&%J*REZY%`6YG<#8=%^`GytEX?fi9w!s2=by$xj``&u$9* z&h9z|HwO}`d#yL#SCS77y?RJlliR6Yy3yu+rx`<_5+;q1ElH3+Oj1vqM9xpa;TkX9;U)|@dsWpmzq|*6fWCol0{Py%tGLyL1#?K= zW7Ad7Sf6Gr5rewB@?$+{U`(j^aYc5m?+=Kmp1oN){3)n#I~mHNiiw;J8OVupM9LBV zCB^ByCLlYr`zu4yhLY?>1Svt=ZLa@2Y^mC5YOVcwOXcT;>cYCC2^a(0%*xa}!wvgk| zgcI;2l$M&LYT-Dv&@XT|WPDwH{WY$Ixrlit=h(ACUu-Po--~B4B4j&Xi0-w~`s-HV zqPOqa7_YudvKIP*T@uAX>$PX&pu2KW74H~Y=F4elMQd68dt%FT1XvBHT`ndssj|x< zSigNo#~&0r%Q%z-Q99qw2@AW0d`-J}K3Eo{7`sAtgd_`Ec-VQ0?f#&6pKCI?R(vx2 z?II&9OQD+&U5;dBUZr5IHY}CXMs0iU zEuZX(`V^6y0h~Olf;VL7EolIrD2NwM53Vq%@_7fSI)wGv|k^M;U@;7lJt0URBN!0h9M>13< zcu0a_zX1R}1rpP38B4}@k^QZu?--KV@op^07q{xCU$u9gU;me|8SY<;6E}si+hoREIM~~a< z@Qs0biZX&j5tjYM=U8SKY}Ib-@Q}sEUYT^41CTukV2$6i%zgXWe1JSVX)DIVCdiM% zL58C<|LH)!(Wt(zs<<6Sel%b-8Z08h$=jM^K=#vZ{W7XhOwQ%|HJ9PBky%Atl5HVc zQ2~o-xsc({lSTal{5n8j3ceRwz;<$77{W#ER|w+b!68AeQ{36yF=hiykbcX3vckcS z5wFVcOw2QpY;&%;PzHX^v$EDBmAD!G(Pq3(N^CI6=H`uCr7N`?&-WQGQe-nburx4p zO>Pr(6TtHoH$!N>o0gda#$xNLKm6HU-#(3lij@!Pw!At&JlBxi?cwh@^^Kb{FCa-D zCV_wTJ3PZZ@i$ZAdU&jz-{$Kho*F>5AFiz5d>=VT`j|3=jKn7uw$iLOaf2s7cbdQM z)zk6?{&i55?Mv{SV>)d7)2L*)v~YL>u!>eyfP@Kk`e&kJ%WeRrpLycRm{z`*xogv^ zLBrw3->i#H(D(rmU2ijQbLP1{@sp_5@9P-v`=h~#iUP)-Iq(cMxO5{@L;fIPqqP-~ ze)XKJ%pSCPNIF)~2zxgIEdCb6Or(8;8caxhRV!4LIc&^C&ouijJWbq<_e$<;DL3Zt+AklYqiKgF`gT9-99s(62AY6Z zkYp);sE*Cu=r=X6EdX&xznBGg_SU=p^82zv`=$f^yvD#mQd3Zk@F^2h6b zW$Yk7MO}rs@gW~XILxw=1hO|s!4-d(vK=+lu z3=$_MbbH^-<`rH;g?vujLGijxsEluCU}i9~;AV6XHo6n)o`Ea(+Hyktpp|RnQCGdm znJjH#x@!bAajF2S#SXn|K8KfqhzCtsgr8%joA+?Eh3dW@Tn$f@iJqiDJT_vCP1mGxBiEF_n)u^iTIW|;8q0m4UN ze<$DBg2Kq!5XtobE}ySryG?T5Uv*bgL&Ynf>=qyrJ1kd5pVi1gALwmnqio8b*r4wI z_xJ8SHjN~T?IF#3oit|If(N44S70``FI~cd3Vf4{U@&dvV_(X3j_#0$4U`;&dkm(>p`tU3wkqc=_Qm zzR^!|j;RuBFtV`D(S54b60eD!7Z)s2X01k^?Uk(3##8{++T%Kg(t^-d#2<)r4u}r} zvtV@6maHmJ8*=C25W20(Iw}V?NI4C*M$`KCagP1+j1_hXs#_&ma~>`GA%yN39E2On zB_niqcm4KaU3X(AmJ4{(^Svsca^TFm)}1}G4^u=SG8_8ful7VLEc|4l>He5^I896! z8||_#i7?W(A7MSt}*~rSg6+Shk zy(D<@3QnkDGDNQ8HwaQTKGQXq%;xBYxhT4SxLWPi=wWWS8s)~yg7xNEudjz4-^B%r zEYYvLgaqnJMkFt4KJJC5^=w7V+mWy}e2GVe#YId-B<`0e`t8`wt5iAp@`H&`6C$~r zE@W-wzOZa-C<9}i@?=^w2*QW2l0sA9OuO>=QsGqoR+s%IONye+7S9?@<~3D(g+l6k z?kg!)sq_qnk6GUB1BM9u$_ArfExiOFoOh%uk|A}Y)dVPLuHQ#Xzx8Xwwuo)ZP|9o% zxOv~3BKU&W7O5bywvgy7+3I)5H&z_NvH%Ehsl0+UigAQ@uxL9pU( zLKPF zQ>&U0n=&!x$nYajsyuA;0$zwcPCey^Cn}P%lAKXfb>OS8G>|hC+G`d>yJ3n4L+Mx# zQq8TmiK=yd5RReHEILcdT@-kiq)tk#q_y?obWd>1>-4_FB1a&D2g8eO<}~1zvn`h` zHX*qkmbvh7d-i&MQtj#-YP^Ea?NXbd%mbfeJ(Yu$Y1CK|q*W6vLIyBhK>5*e)2G3gjFrcuS?ow^!mzVf%orTTYe30i?4DSMo>ZSX2+b(wHTt3^Qwzc$B$At1Sz|9fNtK&-er05=C ziCL(ireU_Oqe(V83voul%U0|eW?Q)V|9|7vGCDD>3|%qbm* zX%`QAQy`J)Pi9Px2fw3`3Wx-Jtio!lDxMb6`gqroQ@x3PLxY0)S+m*S8s+YDZFPyA zibg-lHf6K4yi;5>#MeqG6KCPEcKXZg5Bdk?1!nh`)s_|_RM6&U!pnYtE8S*&?kftU z>HT8RM*G>^5m&{*Fm=rom+Jm-A{cUR*?Ir5|gZiysshVz+KLBe7>-*oy`YP#FzM|87 zRXqBn^8-sChW+U;P~a}L zuy1#apgie$=Osw>=ctF@)-?Ag-dter&JcyxYDIhDkVUjX{Z~Vm;eKz0^HYAVc(C@_ zlX5_$7!$l5@}BLvxdh_%RV1+8`t$9_e;jBE-#G|Q0fVKczvF9b!Y$&Jw6ytn?X_l4 zxn_z7eE&!ue}9AjN4oZm*#jlaq5u9TCw-pE27f;v88jo#fBqinKZif|87da(3|A|G z?BM~4p85dYY;g` zR2pSt=}(YvD`$A-7s$^?Qv@t~fZp(|)knUKfo-iH%0Gnwa##ul<~A#5K0j0?wO=;g z;+XnA{se57v{mfT<>hW0|0aH17-5BtOSkZ@>k*@N8ufgnN`t~z7HNux_WC?*_>_A= z-GraS-;oH|J2@tlZ+#cu9~$DeI3#zHtmt)D(h>ozptu>UufG=VK;BlYIaKUyl|%40 z%Q$!HnjTwMQICj<(%)$!9KWC4hrsn%3B=vZ*&6Fs zV+s6r7z5h`aVT9egIuVNrt;$<*O&}}HzX?Bp3lVm9rJN!3qG3U+K8>B(C6N2xlbw4 z^93u~3!(}B#JPECqr#xvANVbCM?G&r!-1ULzOB4@r-yh#KHgIw=bsIoRcFp7thI>5 zr}#(4#p^5={dv$uW2U@!)918ZY$Et8U3H&2#Zp|?>h!AAv{#kUsLRC}@9TM-K3jgB zoN9~P-I`7!+qScf zHHU+RpX~txzPdy=>5*%r1OOGWL zwc+6KfVRN*Ds5$=+zOl*6rS(^0mn{r#?b1=v=0CsxbX9p>r`h3SBP+O1L5$-cu9pB z?iwSIB5%X#kPdealHRA1fFMvhz*aM&w={uD%k3Mz5OAG-<{B28V5Cl((L01=wK4X& znHWT31+?w$Twv{Be}o`@uiPN;Y8f&mGjQ<-hf`{KeNI0s z%3aRNhv%i3A)tepI5EjBuqZmlw-A#Uc1*G|d~r+W9{fUv!BQq7dm!-b72hsR&vLb@ zW7E_q%ADnLd0f-9WwlqC^c=GUJ58j^n%GEU^skd6YlJL3;hq?OVB&LmR%38Q2JuJUi=_Jw zJ9iJi&(k_CoZ^X{FXVZE&|WIofZx_Q^Ic1=R!>+`eN6e6jHKsjp%^20XkqWw6C-|_ zJO$RNF)j)@@T8ozhaHb}#{c3Xa~6TO%?-H5#>DL4D{uwI-S_ow!*3H(7@i$rU>=l5 zG&9ZXD0bmfQVgH1Pf~7wvg(#w+0QMJG8VK)uQ3rLPDROq+V{Zakln0 z)F^;bVBh=80&`v$0oLWk0a--CJ*TJg+&9(KJxAz|&NCuKu09A&&Hmw#@fSXbyO%Yb zHD}T)lY(DURA+q={P~AJP>U{cskM)hGv0hT|IXQ<-CvFk zx~;b3L*izYdjR&N-wN_tB`zpS;g;oLOR`U*s;l-RBBn4CBKRqtnIY(A&I5P?H zw*YD9A3ZsgWXM3rJ}%P4QoZm(-<> z!dOV8na}rU3er#EskAS74t*FSjlwTdpj}}05VETJ!1s3I;>fXgC z94-vhw`g6qcD8|uAREA`phsKmgsb0k_oG=ZKMN9{eJfWUY1YbSiN^u3b>e3&epxj&46i_%?2v+8P+Ds|Xs>g!U3QA!~S zlFnHL#`z704sV2qpRb*S z_-)s5m=KJYq3Zo}VBKxxz36r4@Dmbw1$I{pj;No-u5BxPDfBs3J%m&{8Ql@13Tlqy z&>T5uE}ZdEjHL+Rg(g=tu9|U!B1&kN;c~=Fy8S&fo0(rLF^Z^3`L@fIMQJlN5UPd1 zFJzSh*bSdwUq_y>i~|)?hXy6Ga@?U%<%)7bm90UVL6)-}j3qSg94SI-(5gTFrbvK( zDpl)IB3cHB`kzW`TM7-^;o!-ojRpQ5)IW|H-~)`6L)0G>fRnpTpd3KL4~f(lgzo*E zuyICs7()1Oh=hvXtZ;No1GeNtIe;VE_NKnVl#yxhta0lZ+HF$=t|qsf8S1Cn#$ER* zM6f08ZbP}8C}1B_Bp{~Pe`Nn zbP%=_3au`X$7InyPCDkrS@yV&YMJJy)&(}mN*CP7W6;MX#j(6`=Gism6rqu~`y)ko z0Tnb}Fo%900<5zm$RdqSVvaYW3*W*4QdTbb@Nq29-?8-nckoZ#bad9y$~<~T+k(6L z6YlJ@sDGZ{@Awdy^p_i#60~)&vQ*nbR|3Pr0~_a`8nwX41ehWR0xsZVs@QwynESZ~ zITCUVEi&@!k393ofoy0|D}h#VP8Z*T{xWzH9vubup1-a3ocBdpwuqsC^b^L$g?5B8 zxf0cPaAu!H{Jw`+6~q#a_SzRu*Z`^+6Xt+>71)%W@p-_7^%1sre?KprkYGbul`&)g4K@-#t5NxX9^5~%(QRhIk4fHLhhjCr$IsjL z&)<*hc?XQyt)+1oGlVlr8Et(?uErt8@|7%{_u?1-bG8<^?^a-}*y^+cSgy8&|JU2P zM2?&qbEzDTMjv!gL?YeBk6q8dd*~~xjs(2{#~q@`5-s_MaR-n_D5N`*awL} z0cW(c53(8qt^~b6uoAR^g@A%)7^!6<=;nOsZL2Y#0rqXi`9u20U+K3;LBZQ3b!ihD z*B2_v306YJ`M69`MdD4ML8hA@&|e!WWba6;70|3Jd~!{y8wKv;w!Eb<>_V{u@Uz&} zzoK&yOAyGq(%9N7_Dm(NF4T5$CGUR@M=>TTE1^MN*=62knVsvcq$>T+-q z_PYY636QnNSt!)WR@}333)rx_PNRSTyk&K-XgMd}&Vj6~CZk)e*9q801K020v*h;_ zZ|kQ(YTOh8JC=<6oF`{}z=&ndNOs+v)a`=!v@5hQRhGq%dI$j(#N7;&E-NmJY>V&@ zKL;3uJd*N*fam7!78rnfLcha}ZQntRIP@m-0feBuKTAd5;aJk@}nXUDAPX|T-r|^t@c4m%uVN@A0 zH*;MVIP(V6+&96-kKYMMAUv`#*HM*Vxp+_1>5E#A)1S>+{d_~8e`L+mh+7%pnEpC| zbV1$^Ybqp3S$0}6BPo8Ha8LzBN>^(a>pDy!^^>5V0tVWR~FdSc?xYV;?e0Jgi#?QF|q zwZOxK|D81A(z(T01B|k+$?lqEot51ab$=dS)HkKB-7-RcpTPtiD@#i!^mWL8*wB|7 zT1?Kkl;9Ouqr{j|HD1`gnKG`rVYV%vQbHTcxyExJS0Rp;IusqKymjybQ$~8SQl}sv z8(m`O8aMA#|4M+WHeV%0al4v(C){pti}&g(1kNT@nMoNx!(J+_(esbcm1pQPzC(r|ZQ@-`nC*kLUKc^=|4n9p=y+-fw>h zS&&;+QIp5k=?)&flg)E}^>pp`(8HNU>NKX{q$2EMtV!%WrYbpz2qfogbiMAq}+bzNBv zo9VbgW_CjJLUS#eH^6-YXLf)&JVH4vPU%a1m3o)bJd(fCS(=^M zT{;ZUwlN4hfKd&(`m3d=OexWK87+7)O?+EOey+YI|EPBPmac(FA>vxNcd}aTG45lK zpCAt<3kO{(2oEp4_W2qpppJZ6VkDjFHd>Z2O91b94S+ zmWj7AX!2+dn34hKiuS5pmaknuw9 z6qsrZ3gCWgl0WRb;sT!RYd2Kw;_kl8Y(f5RDPWDLNo4ynS(Os5%!Me!=qTrM(u z>}C!Xh^|8^EFd;j#=70c8;m^0Up()x!|&pBXMsY4=yCM_EDLyTCTxW{P9CKElDS`dJ^9(^^cDP2CwJ*>b7I?B%oy$%}GTv4Gt3+FxyD zjK)mK1K9Q41myyeayhaBB8!{*kjGa~X{lqNfgb@#v2c2-(d;xcnS3WlvSy{$vpQ`k zj^m2(cn$^I*(?*F5~>=n3_95Acm$i8QtCQdM$Oxa{m%j*A~8HFXf7A3bdaXSERk)& zs?X4^Y0nY}46G=|VIEojoH27s)jOIihJi_a2W3jE@YGo=UHi7mS4M7Y&-Hx&y6Jn& zTVRf3+IfW6hH&JLd0L{~WS>4n0y=ius3ymQ24y+!cDNFY!D;OB9VMTdpMhi;`Xf}f z6%LEAni!mUv15xiqExOvwTeqQb5cy9iWqTq-L59U5MF;U61{>m_v2SqYGvWXtytYN zeIK-gfUm$9q>;+#is}fu6D;3aoOo(})JVjHS?SqY)2_I`yk9M$I0)v@Z#3 zUxho9g_Aj&Mmkw^2aate7BDN|@_FRTgjcbGS64)SrEJ^WbH?sumPa_ZV>bd#_;?g!{*>ZR) zD^J^v@$dOq)U{=)OHi4bu-7O2}zPP2d3tLu8|7FjD$-(1n%~E%2Rmkr`BY?W) zMhCafLj?RYYp(hxoVf5!9B^VRIR}3KS?L8OhI>Yym2U?}#p{^^q{eU^3Fj5#^EEMa zPChAgekP;Mx}@qO%L-Qu^E=_`98FB`N$jtvv@@4b5WMgBBR@AM<4zi1dk2?`L6t?k zZgk-64$1qfFJcXcZ+c}^(-*)vt8(WaZq#}_iVD;=Z3W2sifLo!E=WnAwAX5{@_=^N$^t=A1dH)MZ z0K^Rb#>QOwB^<7GMV@7HDFQNBJ;S{a)%^El0ocyU|6sydqnAXfN>XIGPV^tZ4E+I2 zr@!gw&@cS&FMpn5m1pwqe&X0voa0b))z=0fIPkQeQ z&X|l=3wFD%gjD9bH3N|S&w-ySt|Hs$)h9zr2qF!#*uQRncVzrvISuXOAU^!}o&7F8 zoCkmZ1)t}ms=frFdT_V@;@#g+9)hcXha_jmhO=TGQ2Ymaodtmfl}Y+tg!lq<|52O$ zALIFtI^f@@H18d1cDU1YSI=4>Er8bTg3XH@wA+*BJAJ{-Tfaps|- zE`1E8!Wr=R-!VEWfHnPt0!TzjwmQwOWpo5Y^PdK)#i*z-s^X;gT{)%U7%KKck7hE*SayN(?^8Th?4_RHc~4{&3vWOV zSW5-5Iz(=F*xSQ_%4pn(Z3FZ`tNUame^0*OD+3TCdrK^G!MOBm%_B8jNaYZ#BZ(GG zqJrAbIwVkSPWR_p+v6_5SeUpWBpFG8L`}1&|J9;*As z(6f10@0sa~Z9~Bux9`5}-l~1A*7YvnyA*f~kc8tbJOZzwA|z?-tl!eD{EQ3?56>n$ z2SZmNoRx!S$wkz!rA8une<6%`Go)cAWIBOtX;EK~=S9d|>hjViJ2 zZ5*zn^H7Ej`%VFs!^^>e2A_~^_ zeLNgP2ybl-3*#2?T8*Qi(0UaW!M}Znft`{ZDHBi0k!s23FUD$DCb}*pCXxNK?j7z$ zY@c8HL5Xuc^xUq<>C4uXKXkdbKjdE4v6Gn|V4Vpii-8#QLs;x1L||QljfkuFi08p2 zn?Vc?c-R$HNwvqFf`_j#Gb`n>hRT+7wTG!bz(x{0{m+iLrYwvzPSHRKTwYN>d2DS5; zfl%u#-vZ?X00?L2W#dXqQa28zXS#g(jX_MM_^pYdz8X#zjE~PtF&6MaFsV^4r8<_Y z)dtmYc3RC-AVr>n6|(KGl|ZGUk?v=d6gvDv#;6@8_Aw0a*#_nv^1u(hSNSRpA zQemI(zE8@_E+4}MrpyevAd9Z+_7@222J+>V?Is?mJMyH^3#B{BI2Pz+$t(Ak%~oCl z`V-50;N!UoEk@DiMC6y_?AdJ#b??*n{AWDiGaO%c-5Npyt6FVP`bjsP(Q~jU=NG8l zAAx1g4sCr`fH4EK#{tTt&BRJWpht!1vOMsteA5y-0tz2154fz>cD+gk_FY&+qu79*g6{+seYtru}Eza$Ejw=H2GI zs0sinNjcgfr1@w$36&60{CP@t6Tj`F&-%d7kV${P3s{JkSzRcvMe2Dzt1k?! zJV>^-u&K<8qo;hBW|3~%4?0Yh1Ju5V&P>Zp1a zChFd{%YT5<3@H+HGa(?Au;Z+6q%}xDF>sGPgVo+Y!P=_FB2ikq&bwi=}5nmyuxZ$X+|5p!7x7)S&9pXvv&Fb{Z* zCq;w?eqguGF7i>xu5hyRhsY3TIhqt0<%fFwo19a{<@r_^zHQZH3m2k%!cMM+Pg>fm zuPKxkwUm~_5gGj2}8032o3NIgQaqdG6JfT!5n!U zLG*7RybHQrL}&Q8Pl3K%<+#_n!kAZpe{J`BOVGu9RyiEN+7siL%HAIQ7SBP_rmsr8s(b;3i{YA|T zG?fD95bi9ub3Pr;fZYC{l7UazmGj%B+jASZ=`fy+kI|B z&-{4v#osXX_l3@j8fO`1aNerlnehK4mH`xp9^P3t7xVutC7h+Iq2nNQSp7GOwsw11 z0=9B<5!V(k+vegkzFB-VF)jL4`Mo>ZE zaJKLy_PAI4xD>dn9M>IBz7a2X8mzx-xxS}|KK9ya_L?yD+iE|xJl(N7we?%p833Z( z=H}3NgD@KkJNI4@pZ3#S^nul3k5>KTLiD`Ypum_g-%)Skame^~^Wn;_-w9z??ddbW zO~KRle6NF{nq4a@S}dr)BYlMwPYAMoAiou~jnq1ScUYRw@9IHPP7V$sLzi9oW&G~^2|He|Sa zP&onw?7+#iuIuDv?X&?O9XT`*YqWXku5;8Siew9=kex&!+t~L?lPqK3g(xkAFvu?ZI`$d+ zv`HwkFJouOGGt%I@Lsp&S-;2ed*9a|9mh=f-1l`~%Xyxk&$-P%E+N&KZAaqV?5aK# zS%Or)s!t^+FoQm!HIv?KB`?@KI=Uym=wS!>XHNJo@Kx=Q*h;(x7j22NOtqt*Gu%vk zH#2=Fx>i6bpTlGDAKo;rZ+-; zcV0+OeKGT0N@yC?Rp8(5G}}>?4LiM`ez#q-8qU4E`07aQ-5sLujvWigcN`4MUP29k zs+!q_#Er3}t#8{CzNCCsNk^*>W9KX@^gX@O>W}RrI#8lqMb0Dm|H4}MV#@RsvXyz@ zLQ&x4<|NXGfwEDcs6u}+J)*oHK_dFD-||{6%KW7KA>d{*n!nt06*shTNOWj6hQ)iV zcI|0WIsGrY$1@I9_9Vg~0;jyNDo;-k>kAE@zLCGr#q;|h^9zJWm3^Bfd$C>M&_s(o z`TA8uOjPO3Yl7kXZq48Ph4Pk(JzO#}>YEATZY5HypRWo~FC^{Y&5Rote7EX-FDYqQ zZ4WO@S847@gUDe)Ya<4HmhTDaTSiphf(ttvWVR zqbf0Bh*UA)h#NRWTpW%*YXGB7-YuT9Xa1h!Cjb24PB@4iGPD~?W<4u&A0z%-dCoRy2|1a4A_m5p&}V#$&Oe7VSam%EiVwnLA{+$3haKgZjnd`?_gz>skjf? zh5xzF0|&0W0*MtL18CF~LtdXP&51n>m>yRUcC#A|SoH}wvXIHZ{&Jh)cT1T*zFmtxJM?tU=G!G zwz_X?dJuMb@kDe@{*BJUPK&XiM10LE3UeKqh{ESTOV)Ooha}ojd4{akD;}G@^L^N@ zCT!pARD}<(UDcRri!>>dG&sNWZeVThMBl(#Z94-_6Pp0SXu{51-Pd`rjt-HHadQj3 zq&m)w7VA_8lL2q(SJ@sQ(@a^-)QeCS0*VRf8!FlYHe5QlS=rOBuzKRO%2z~jPlr%Y zQ(n=x=_@VkEc`Y1{{V{C*aVQhe*iCB|Is{b5aJZmlOWN5;(xd?yy`YeE9BD+*XKJ&!V-fkg_j*qZ zL$B^GX4w^@O4ZnnxE(zEWf|gzU;#+Ulkw?F+?iXOE!dteNH|B5Xj$DE&%`1MJO<*( zCL+?ddhJN485x-W0wj#Dw^r^}WjQ!UZUoiR>}<>Ek5WQH53dkEW!hQC_GN*#oyT{H z4EHWA105y@5Lifx(d~D73hz2onk!jvo>=|O(mot^5~APsLL(wTgQF)8;x=Czhq~}_ zN@>%^2RFk)PwxS$2>_An(z|~Ac%-VzuWPDl4nhQPt*9l0nf!c~%FT;1F0JWv#}$+& z+t?lzxXIL~pcZ62)B~k2!+iGaauMIiVn;v9NSL9;4 zg{;MbBWTb{0yb`%NQu=8MBpk~Td_5TbXCo(4c#BEUy7%{>{3v8MJ{2fmK9Zp<(@Rq z%d&V(>nfo3ttb^3Xa%9h(ibxy0)7;C&EIii`S`tsjJpK^$=WiZ({zih^V@G`d>2>N z`YndMr;a!&*Z{@2w}EW}>F4A7*=J_hN)x;o3mP=_jYs;juXsFovh{9WY@R8T3(_??wCoei0vcBvc z}$=?E1at9n_pr)!W%M>e?VRy9v5?9yA z67xU#gnqs=9MNhIh4`e;lfG^*3hwl+=<)b0+`<;GRnMEpsi^_e6PQuxg5*0u!EA5K z;V`l?;ijO!!R*hXG3j1z?cXx-vM&fdtZc5e$kKTD(ZME z0N_nE`Q>ZXg114X{c%tP0_a-6uEf);rnb8L`}1ncNS!V*B?Cj#F%~YrY=>QA(#Ckt z0z|(A{px~$dW#n%cc>+b;QjbW@6O?G0Q+?PwS7&>j0GgefVOdsE@&&yS+6(Wp zMdn71nsm50m`W5R_n(I7+vnkL5@|RkFg=SjO%s~Bn$}SKDxJ}OUxHcxr@uvn@q6Dn@=$?6(sC8QCSF&iS+9Dih3sJTDS%uCG`9AAvo z9hA8~+NY}8;u&>yxI!-d2vwth3JfeeWW7T+C{?3^hFL`L_an1_1QihzBcyOJS@C5$ zj*bHc;m8ZcXq^k07`t=4Vy893;@c|N#kwzPU&yrVTQnjEb>xK4fQ5antnqM?vG?1z zS;_XZ$3fXvIT3+i`4^!*zka@>1aTqCH@|$z1PQI$5U%1UpS3>YDh-d?5I~X)zcW;3D z=*U?Di?cWEc`PbL?5NUdT}=avhzKn;H8s_i^50VMK+^pWQi3(~-=xI%5Lht?V_+hr z!fv#Aec~<1IT1ISzfiFOKQsnNACr!B-}>4bZ+VDsA@mWIr+scXMg?VD637Sg>Tg4W zX*BChs1>nR$*XIfPk8#`3js8^QM<_7R-ASHu|q%bcBQ=VPbq#m{@{W??6!1Hc`!TY zm=m*&ner<_OO~s*mh$zC$P*N$x4;IBzQ7G%jnHzsB+OxV)*}Eea!qpLLK>*#uPyN% z8@J5^dP!L1IR$`lBWL;?3e-X%dO0NGrR0x6DLa$ET5Yyd|G+%0G>rkj7+Yczr0#i> zb{mrq#Z*`14`z8ktM@YAH>?wH}s~R zc`a1u1Gs={S z9vPu`M$_e2A?#ZT;#Jd|h*-U*9;;$V(LLh?B?+swFK}%M3Zojd5imlNog zMWx*E6&-Rmx{ILx7?wc@R{h%}fQ5Sx1k@vT=DI=8c~GV?$-+aqGeqTf5EbaH_!Vk0 zc#`b)od$GFuT~dc>6vx-!!CeWdEhQ(O^SEWj0f#%wlCk;X#jyWh3_cv97FEk zwinoT8br4?K*{2rv6k(A#ov>9gl^1B%@eaot%5tbq$Qc1pk3@n`c;p$6va*)KaZ;g z#!t^$?T$IoY-h%fAhSIt1I)d-`RLN-N6}7eHS^amhS_%A#fvTcDjKy*+b3`!sgsUH{CWxJ_&8~P=PjMDnGeYFY(lu<65O!g zeO7T;i=Acl9h=PNp_4yWQr@BPTv8|}9efT@grZYD)E?oQ* zD+1<(nX1tQ7>1SThUYKpK`VNWUyx5sRzm>PO$O1HF6_1ypo-7CM-4+nlFYGFZjVYAXf@?r^^6_zl zIOK31!No=7n5#w6|Sx)d4?5|?gq-yEA2F#hu zzcy$Cl4#y!26AtO?yR4PR+}4ABQDJEY|p!ba*LNL2f_s8am$&$n-(J1MF4!>uEh1P zRudA~egzY|Qq?Q3{lZhXK8ju%3HAQ6i|!&au$u+G02YIlIPm5HR^&Y}fs|=|e!VLY zn*w67pd`Y=&h?{pIoHcbQwiO~L!!YyAhGuy#(`&QSOT+{y2bkORQvLMCoYWQ-je}{w0T0&5*a z0zFox1NV0(cu7F6{MMSxvheS;Jb*$O=#ld~Ke!Tls8M+}pc%Dg6C?;E3r>6;+9V9c zadAifo-fUzbKaQX+rG4h1-rNG=`A&dYC;gd`Qm36+ZtuU?}>VrLpjQGtlJZqBzvCG zTU%(&sczqmXkP^AX9D|-qi=9*Hm&Y7U8)rQE>9b!Oy0dyqYy%`nwM5(h~i z^fq%O9TIj$ac;Rcs9=b&E1zUt9ZTAd0%w*Km%GI}CBknZ_HHxz@di=G5tnmc;$Y-D z)!C!LyEL|qz8sJA#?%p$qEjn&>$6LO`4s@7JLU)~92I+23BlMw#~~saMY`L1t(*7d zyMu1Elb>w200TCtfRSi}bH~EGZzyk*matnvyDVbRPvrGurV}wi7^q(64~Bt_ZeNm~ z-g!w_Yt_l7qnz9fkvY`kft5f)?(S+mn8wM-atAqJpa6ANXi3RwbK*Z#XdwuK-jvcF zH@{xH_zNSF_XPJ6R~v?Ywd<_e3sV3;2OBhw-5=(C^*KkM)sXdf#s1acV%7i9r62*| z_5zf&w7-PA4C+3wz84v>PrvTd#s7nU-V1ivBjgXP6o_XAci9g+0N+AS*wy#8p5VoV zjLo4aYhrK{s(3f<+RSH+`fo-v?uJHGRFsjcYb~Lt%(spb?r0Uldi{qbgqFHR?;40H z=o-T;6HKJgPHtNuWWTda71XPdi+DDMuTtiD!g` zS&-MUOKbn>@{l_%7wBf_i7qQEGlDsG1s-kmcE}dFcI|$zm_i&d>9YNW01ErQ8`2DB zq03+|&-DESEfV1B>!1~3c+Y#z3v}YC0uG18`aKh zze5)3E+ev+TI&xQHpd|2K?2-;#|(81SJzejTemQvwOM(o%?cOKX@(@^)U$Mo^fq+6 z&|)44c&Mx*0`EYIbqPqKg|#`xztz6^ZXBQJt;EO9t<}C1Pch4Oswlo1hIytnvAOy+=v^7MjdcYG3Obiuk?L1B<89r2>PX-p+D^CyL*v&`R)&;99 zo+$v~fohBY9;?u?S4x(;dfj)0g;#2&xjAV$nSzvgCmXmGv{#pxaVV*ywGJm8tdh+1 zMeK|py54)g)x?0TQBzdwQ^T$Rcmxt=$)DXHdS4iXTDId77bikaYuEY<8-0|5>f9-g zJWU|vkgJa6U=Ki>S~ktUxU#ZqktPs?Y3t>StD0kEHn(L?uf~ z3!8&1+@&v~Wu-@`6ci+$TSZ5hP4~ecGVzyJf0;mY^6%1dU~BCkmvhu|9(A2n16~V} z-Je0bSdEjK3^|;v2Y&kkA3i-T4PH;pMRm)L5A8Wt%-%N~x(9Er`K}y2&8uMCz8J*I zXq@QFh71$<*PZVk_0|9dbpswea6zQfz4@@dhA9Uzd=Xk#yBw392HhDN7ed{&`&_bK z)*IV>9!sAdjnFDNAI)?I^zL4SqyjkdkV6Ri)78`f!D)3)u5%$~8V~Y;WBJq>knwDe z8dBO>0H!*aP`#EXeDQR}Enj2kYNa`jJXZvf)e9a?ET^SP)9{f|-Q^prb?H#C&wuQ@ zbl~rE&t+?j>RPRs9<&sTN{q4F_b*TT3vqz_SlOeWj+W^GHbNATvFP04G8g)(=K^h^q}};e2)K+H0*gIKGY9JXHP)_cq7ewZmwIrohpWgSD;pcz6F;xE z1wFF_7=rIvD!V8ES-RRVVLJ~%7rFlW@yyNxG`6hmAf#VX{|Jlx(3z2%dqS?FlM$AkoJnc=7 z>-72ieBPe}2N#``%id0N&ex(s;#q>7hx?!r9Q>kJxN0CM1`aP|7F3E3w?-o))GJ&~+ zk{D#C9&A{s;%z?)w2;hbpbpF>zpW-{k5J~D&bPb!`TnR-6eo9_q4+>$pM(_CV}pc9 z9T9yk>&)Y!XBPRrIN#h(NEEy0pw#=H`yKNa;?LzC^#FJ|RJ~c>Zs%)G5H_Wa8KeH6 zOUe9&^lyVgqcIifBG(`PP!Qnt2E|KznEa;jASGW^y5Cdr%NLM}%CYnXM4D6~@~j`l zMchq9ME*qnijR@9qyr)CskuY<>58GEyC6q}`nJwmbV`^_=Bhe^S|w*-^$}~IYkG<` z>v2_r>*o@+V79D{P^#*C%kZlkZn`nL7U?VEVq}*16GmaNz zuToLK6iq0k`!UYbom}a@%lB<=WT>ir7Z01l29MFz=lR-qkj(0w zulXvtX!Uq6HhvzapTCXKB4#>-Cv7jOpAnl|#qIRWs()Ku8Ts>Q{r%~D`gKNOPs6B` z(^dHD#6c?ZK+V&oFDlf$CWbDCqf$Y#W*%_C%4S-<9 zuWssmOpFz~2MATb8efU7&A&E3?4rzURn?fwO#Y>w^P!R3{2RJBzWAW>XFWP(ke`q1FM$eJ91z<2pE%vN6Dv$H z5oU9Ny@1&_bTkCn2Y;%OC&xLtS>g;4cke!GKMK^ZE94Q4L;^oL_u6N#5c$rR45dkB zAOtNxYsnwpt=hA_47Py3qc!LvH}VwK^0oEp7;62yZdAmcp|JOM-OB%ee0BY?-Ws+? zcEL7u8=y*1=;Y<-2qpp3QqarxB?q?~p`~;*k>yg!M6!vC>bJ)pG3~<_(jkIt7jEn! zA?T-tK=ATQHRa@36W;rY%>4XW4D5SQrq@(MgONec(8~*Bu~iu7IxL%sXF%px{r~oF z?W)K>ch^~7zFgpv`daKnlb=`J2f~39?2mDA(**I^*xUCUZEP#HYLOJ~8W@<2u{$Sg zgUU$0qt>u!b1B?zvr4N+8%O762CAVR z(_VB-`N@RW@XlZ;pzfaofJ((?y6b6o_WtXY|R7fNmk=IhxGZv6OH}V_qka3a;HHecDjoS)#0Ez;6SoQ5cFN-42FJ; zMudeU2c*1d8ydb+-~%{m8go%c>BEYq7@WeQytMY%oxc_jv@Hu7e}JbKmoqTxzNW6h z8(`G_tgV{VT8>^t2`l}d9-xmv;j%ow468@Q3z?4M-dg zr{n-}q(+8)P#mepM!L1`|LL5e&}Rf`1%C^O!gWfR|9SqNAli<=U7sZ98Rwm7Tos7c zO^DPgW!I^S)~YiKU%dYe3XrVe6Zr%M!@r)s0&m7Mwm1j{87EuEN#7jgJTTgR8U&<psKv4IhF?V}@SomK|uqAe06D+1!+?khs{qja}WoDqakFYF1mAev@=6h*WTuJu)8e z)GRg`Z|-(gMClcKUGhynLouV`NV@zp`SIN0CwUr*@m`3g+J%^^E^n!lu5VR49d_iI z?l~Hi+V8>^@Pl-@`3W6X70;N$!QI5Up$JWP<|r2>u{7k3hv=Zyj>sGs>H;_z_Ucn zw~FX1Pe~h1V~1;6s`hKu|MO}*&+o|X?17X}I@H|!4bj-ae9J-G95=OwY#O9zbCh1! zY=2$aTlBmF!aE3ITvcR8q~$(D22H4J@&zzRk4t3uiHuz8w!yI- zKb3-0E)`fE>sQ>)rbap~sdRO<(k;1?amwzovB?yE;j&X1u9JPgzCH_z;N!E7!iIuY zzG^F|!T4#&SZP-GU?zj>+7{9HPsLDPL2zl1QS9!ldO?k@PEma;Lq@-o6pf#bLF0ED z^2UIG)OljZoV@|)N_z!0U1J17dS;40yt`5r|MnjF(^PaN`W~qF{-KG1s_bVdx*!i_ z1UL#4)kbPDMMpyv2vP3=IobL7W=-UPR^0#wQMNFMPFi6X~TRl0t^ zc+nz1E6obG)B~dUPlHVV-cF`+yH8z%gG%;fRFDhneGCHk}r-ew9)b-j$u)@=Ab?)PE^$1SD4al zLEEo`?X3BLx&!QxR{I)I#vshNqfdg^FCE!={CrDlbF|nQcT}5@Bl+4|j)~G8j_ZeZ zmvHzFMdQfGJy2z+xUNpY$jl70`6Y^VOdF)Jc-awJz3f(=qY@9PwD6uArsY10EIJI{ z^Sf*|Lv>mBn$mHk=lLw_M+2@girl=?i8$t?Jiu3P>s#~Y=TcC#*1#k_az)cl{)1*W z%@FEM_HFkmE6+Q)PdtB2qe1r(N(_iSr<_|V9`HHue2+C4x%{HueN~I<_)tNW#gE|e z4)dkNTfsuAOiN@ra%Y&W|Z9jn2 z`B&}~%4GON-FfL@*%%L5t?Ctj`+Iz)8&e8$g1?X8gd?jm-7c?JWQbU&!GSB5^A=TD z>m%(H_D6ZRPk4r?D&kydk_w+SsEbgAFbn<(My0>jjvc<)*HVQDW?nhcsFzrEBbj1< zuf&fMP9U|~izpkbKNi0stf(Svy$s;2w4spDundbYm1Jta76_ZX*>P>;X<&q5g%O{- z^>Uh`rqwmP4`m~mAwud|!HZQ)6u}R))0Wy@6Czr1dhON1(+>9?znEl9-uzVLRymLh z5+2M{<3cRGU{P^~`BOh*w`)AiP%kKygB?321M4LCeduO>l@w+JF_Q~{@}Jdufa&KS57E9{!Z(2=TQ)4A=3So>c`YiPzOPNwYA83S~#H= z;ncWZys~nlN~@>FKAyUp{~8~R_!H@-Qx<%_9#jS|s|ZL(tW|&p@&lOCZ(GA?keTdO z4H70;&L-H`cdVoi49@na=xBG=uar|EDH=`i47%kE)eJmkDQj|fR=NTQz$`d`Dh#dp zKUrs7)|k0#TAv!uDjvEV&)E6OnKhwAQ^uWHGrQ*$!Igou>`yE0BHrd2a6`2|@olWj zWXLk(5D#|_C;$cvP0vrY=ne}jn#*K*bDM*EsfHHmA^1AE!`b~nyip;&P9OsV`b=S_ zbp4>8%p7yT4O2^ne9#V};?NyWwz;~GW}A8(VfcsMA@vfvGU;c& zW}q>|)WjCYc_$j>ffa`1D-{nNZJVQPf<5C>%_IEA@@yoq>1rmKYwLpxW5-??ce&af?Px-Jp-L+e5k-S(N(G|zvsB&wwiN-chqn2nQYVW8F^a67GC#I)LFj?}>6*$p#fQ_UDiHz0 zy&H81zcz{IrpC)fKewmMG`B{sbdf;eOHn&7=e7hlSc{ys7Y3JEiRKyikbEiYG4xcu z=i_E>|D>Hy{R_gBg|EfXR&!{6@xAezpEGhYG>M%h*s@Ku(kRRBnf=XAXqtC05tX=& zNIlYd>e>_Tty8gnQ%P$1G5O44Sps2t8fb*CNmsjQIil)gmT$*|DH%MCHZ%?+O1~oZ za>W4>gjcl6jSNh1-8wa*nXY0w1Tgj=$oG z8@kOTkY3IvlF%(D6^f!YTTS-_ZljdiTb$R@7VlDxSHhaSHxyALipIN z7S7gbCU9JR?40r3VdnZE31KyLOs!$C$;WWLUg`*6++^Vo5;sq7@2ce4o5{0mII7<5 z_n+)sL6<61Z}$7`n+XLjYtfJqvTGo`rso!3&n!%9Bl$YzxEOu)VLn#Y&U~8r+c+WD zaxhj|O8DxeK)c~-arDl0@d2ZC?^fx`J8PDLelYU5k81-{tD}4CZmd;P_A@ZUQ}EIy zBQ>Ai{LsWZ-$D0}!=hype9hSdMTeDVll1z1@bAg-UptOtNP~Jvw0!K# zooy)a5w(vW!m0bLzV;p;OTu&|Rt)>tJ#HcrL|b;wKgiiMqYTMx8r*CS?Q2Qe3|=`_ za1y__`PJ?v$HxcmoIx`Gk**nFP@#ZRWVafAlOgk>ee_ybNWqdSuf}wxmHeDUyq_e&xmMI{q^Te!7=4DopEs z^vM!P$PKUd;)(va=NAjAZf8BZj@^91Z|3!*c7edwd%|}M*}0)80BWhxZVwW{+{(^1^tP)dUBfiQW@SW;Ao%{leCE?n}ge5^H?< zLspVXSBLPJfYy4)>Z^*XSB`rYYUU*kR6)VKyTI2+ey~huBU1yX$%o7HxvkF(pIzMQ z536dm>ZuF{&BE3;hJU@4m^4pw(%?1CKqSz>GM}`I@i3ew5j|#fKcD1=Un=xXb21&A z9%I)y$*q2d4BzlO@{^WmzsDJdReE~g^$4>H%^}B9IM#=6pHD8!DM z;DqjZr&?2p{Q>z?pJ>r@b8!JKxCB@1NX>tR(^@^(y<4QzMh$~P95bjhI;6?LF3eD! zme&{T+3`}*j@s>^S{RF8_Ni==iy;Pt0=}V*sn|%La|%!dVxqovYQot|m7nzku061? zFJsJl;cS4KYUgT(Sv@m%Su7^QUi}U*9P@Q5T_h?A`fN!!(%r>7=U2Q5_b7Xgld&`W&2tcUbSj!AVqy%S{WP$^S?)lVL3jnMlafr~%tL^pn02T0qmg5DcA*ZP`J+_yGw zwCC7)uTcb>bNiF^i&lBkR-;=#av?qV$iPPt!^d2SW1s1`Z&}RQ;|7=f)O&!q zVu`D1N9^$FE*$oQT!H7n=#`QsCHzjlkk?#H7nHCQ^q3;7jz;%C6!cu+Tb0tV;$4ld zU1Y`BtIF3q+Y^UB3lrD5lAJj%`I7pFdUwUuES*{L+`Gs(Gkh?gIhCP8Gby5x*F-nA z#Lj23UIe=-Yh3?|OT!j5M`E%a&&YV=yKbK3go8v`CGO{GQ_e=e-39rBTMmG{#0l9~ zpPWV<6^ALsI&HCUZ7>Pyr9j-q3{&i$px+>?2f~6!_df3Z3VhtN|Kb~EHyUv#XVFg4 zg#LhB*OB|-Ce_IMN29g;vY<5vKiX9n;5Pdo5AF(m)Wv?eVpPZScU0WJdh?KkM;$?L z7LPG0j;;~o6Fsua7(?6gz`1srY`~nyWJ!%~zM9_s2z~i? zM7{eF+!L%1)&8CW&)S2d3x^v&rU=Ew$D*6`w4VBb5}2SD;TL}37JdG_-o}LxyK?;4 z5e^+S(^tnS1=6Q15jbQ>JkXS?&>O_L|wH8I19KL;h>r?Um(9P^7HGL zhg3KOn4)!W2(*0VwXe_3wL8BESsvjrCJ)N|*j`4VZ8K|&z6UDj%x=|Zb#PJXm1G<4AG02k!B0S+@h4Cc2tmE;Lp>2Dp_b#-|Up zWO#Ce3TYv&!P~>roPcz9+!aOgRGD#NbWo^l#14Ke=a($*6c4I99N9#y)!noN#H41P@vM_pnv;xjWQDGP9C%3Jgz zO8Rf#HbK>Efbe=?y(!l0#D2-2;nDB}HN80wH{A9UimLaWvU(m=Q^`6Ym=K+kmiI+U z@L;zNKcE0rFjn7^r@sb`;y#Wl-`!b$8EuVBW9)wADz^LDjFGwqpsoNM&v+}L&0FkB zJEbV4xN4A^Qi~I9G4O;oZ!~LV&*&WnxQzY}28J?Faqt9Ed@}W8Dp_JPc{WeCDOCqz zD*o;1-heqYC=YAAwS>a;brD9*bk&Ng5?9+dF1X-Y&rSwBqgSEscMDJ&zy?LP_b<=s zlfm;s&E9FR$zf9K3#Jyu89{dI?#X`=K?|7tCL8-l*HN)* ztF6o{|Ia}Y@ux4!Iyh}As@Y(a*3bzngcQKbCa%k$> zt6X+gBsbXv4 zYN|3s_eQt&e90N^rN%zQ1A?lE4~bv1EO@X^5R%&9knD;2=ZOWHe*AXU)ad*1Dd}Wp zDnYpJ{latd@DbpF}#y81162hhR7WGxxm2QqCbH>i=7wjU!)ud;A=vyswj zrmp&8a|1IRd<^!i0U&VH;skfAt3s9&DA z*fdcVitY4S=qTXFl)o~o{Y#yB^poQ&f*J%;Hd;<+hxt=GGd<3=_2ReyY9Qu&SktoR zTjjTq+M`{Xl~otI9Ab?mObWHi+qVJa5rpY>UZb4XGLg^aJQCuq4M~QANf^zjn2&M><`gwVFs` z!`MA0zSwHpyW)K!Iez0=uIqwhxJhNKm0oxou&$fJVI>E8Kf%A4k=S{)1xH@sL5_8n z`x`TSlng%t2sa5+1lD8wgsx`yCqa|HZ#h6bm-{U`nQg^-Z_$|zGYR}P`jfzDk?fZ> z7!n$1tdB9Pcwtul*K|X6!J<7mo}<7kjx-zHVrZ+$fwlkllPMd&ZHW_cY}@^VTdQkJ zO^knSo>1##iqUu68*R}EnCR+dSFZ&X+Y+Xlb%uHojgUL2im3q;($%fvzvifM>=d`3 zyGeOGt-G9B8BXvb4)Cx928`LDQ?jw|as=iKn7&6?<3XYywz$A|hPaioKYg_njs73Q zS;^sm76sHhZ7JI4JJ9DKXyJWZ3H9ok3cv*+0Ku!omj7w zndwto?E81UN6{D+g?>v02m1!Jcc^TE+C1yW#~2kNm;1}f^&AaD_zUuS0c>E1)-|vk zE(e1Cvkc^!plAd<(w>fe|B4!!|1b8@q~DKEqM*kFlYxpEz6A_IU>_YYfMX|+lywZY zUI=-Wud6^Uv9KgLa$M3Q19-&b&9ZhHw!80N&XGBFXcDM}ldHiNzP+!LFQ)gR7r4$=4EOz?q*&KPJgsJJN zArWzn_Bi2`E0T{al`+25uBEc4XTW=(vUI**T~B2;Uhh?HP$77yrR(R{#M*aR9|XE^ z7a(2uH;VHZ6fmr-51ZPaS8Z9H&uo3#hiZL6?Fm^~qI2}zV->ZdDb19p&o-})of;fl zX=a;ZEy+*ix}O&`DYEZ|+PC%L?#VW<0AT|93EFnt)wTV3UntPgoBWf2?DM8Yen~n6 z1w5}il#yv|?9_;#kQl#(H3j}|$6clw1cdLvrrbCE8!uA^a5@}O=C>-TE}m$v`8lMQ zN?G>v&U)#TeJfBr-9tPYgVR?&0s~3)4i0pJ=rI4{83&yjz})O30HJR{YIzyfRiWR( zuL^aEJkJ}=4~wLWxN6H=&X}B?m4gAssi@Rr3^ZeI)JTly>)U>?TrX?twa*=S5*fNv zUH8QeFL5XSd%}qH-0=HWU-&6fX(K<#>g(IebBx(OOHUabUCcRtJQPq{4JbdMu9xieB^ z_$$YdaE3D1r3uwrY;;=(lH<2s7=1zGY@icUgpId3$0_cWA~XT75AxN}4g|%Uk;1|C zLbJef?gMl_aMHYjM&Qv5DQ_TzAPg=!E8E-G#qc`fETSq>)<9DS1d77Xqb|Z(n+o-e zbrGbesjj$<&vy$=3~+@s(Xazx@aLnS0q#9F&$h63`+OBK(F;wfjA)1V-6DQr;f`o` zRG+>588rA=JN54&&!vJaPnOfH80&779Zh&ug%9cZ@zB>*=KWU5l1Xpw1J|wyC@jmD zJA*E*wt_Gna`7XzGM!)3mx~z~6VWSTI96;<22VLZf64p9FTU7_+2?hZS&IPfb?(KE zCqL*dl+^U<^c)%p^t?&b>e6+LjIa+OKWp!R-6U}BG=UEGWT77X;|sfoc5nWukeSjNrsc@{K`KoS z^-7_rTxjssq#G&F{!`F-3V*<4=yNaNyWk}ph~KwQ3Y%qG|HkV04&9+@lyt0raw8ypcqzql6bRzE1^8r?zM}3s5Xfu@I-~xo<+hq$ zuYCRY{U@oVRZS<5**D$i+3x@Y65BjsG~YfeEZj%Jq`;Byw&#^!_lME+XN6N*u|u<4 zDJ!cdj>xc`IqT$b^|4>vT%w%l$JQznh1;xVG^5Xk&@vj8L|FSN2jCMh{mYSP#39b| zbj>I!TCZ#Vy1#a}`GFe{2nfH$JBd#h0kXjLlruWTchpuk=c7jRr#f3v(R%u|V)xsa z=B`m1$+ZzBuV#KFL>Or>_Gi589qeUUac8dkc>>AA{;W-(JUzq3dKtdHvhNi1*cpDw zVhOf1qT$FN><7CQ0v^DSSqK_8R&6Y05uNK12KDe%okHBg&g8#Nh%ur6$b!#u60u@N zXBbRHCHy&U8F#VA92@xkkSLjSia`vYV(e%?hW_o(GPVNsO(^ zWM+RgR`7>w!cZGdZ%w_ulIx;HKRnhaF;VAFNw`OKkTNnJx*kVfEm?A4b;1A=msjAD zK$U{M^Y4mwBd6@}HonQ)KikQ!B3Nq#YoG)+n8Hb#>Q-HLONXo1kc)Zxg6PNBr81=q(&P zIu|iy58cPxH@IC)zrLJIHpWqj9f9Zh6;~HG4|JvHzH8M?y-@a5Z5=_7HWY4REl4g8 zcRFBbD3n1>dKxi))BBDWTi?ifh>+tqzkEUYErv+U^#k|X^-RrBW}PfrWb9^MfVDFU zpzO9FFT)Wpcjx=Kh0;ch#Nf{~iTMX07NHF7RyCvDEus+oMuM`jG=FL&_IYAd*nCD1 zwlHw*d2om-0!4PVoIhW7u&19k{$qYtwq_JFZ4PPWRF&u9{sTwUN07(6Yem054Z!t^ z2~0U^sSzj0*7B06+zb>;b|r4)0;PoiP(FjIGQHkC&g!P`r1An}xAd0Hbj!2DB{>ee z(I8VSyXhhTJ6xi8Yq~$2+Dja3o)#AHiG%LLlA)q_B4f%F%PDkvq_F65qj~}0wYhR* z&NXHi47KTn$6z42vOo684Yt3>R{(m~G%L z-w7q{)41!>2eK4^i!Irh@F?@ApUiDVG9Cu6t{(4A=gU4%eDo$}wZY}-`-lDKc#fx7 z*%C@|%_iu+&4+PuX3q6L@;dxe77^WSXHR3|`$vaY07nJ&OR|;mts`iGIJmdeo={Z!TC&QWr!{4VTxBJ1&(Ed55D zn%JZa7e4ayF{Yyo=SY5*i@b-FErn?26-q3fakY!~`p;51Y^+tThDyR-G;d>?QpIqr2IDX3yye#I?gdi2Z zu7RtC{FiHQu)fEDI_%HD_O`96Wvpy{bbDt-I7et}li6Xa>kv=AxUOGYF!B=j@h`W* zyNmM;h2yfDPF5uE{39zU&XXQk7f+T!!fjT!Cy% zv>9`;nW{7eKGL?BL-X9Q(*&8fzZ(T7Z<)u~#!T^Zb zSAn}c#pw~9UDozl&jaJP{S5aB`O^0uQG2eBeS+FTT*GR*l{^Uq(EytiFYD0((eVF+F#nqc30Y+jH~=_$&xYR99J?R) z_we2YCoX9us@yJ{4QFiPw+`avtn%-<_1ABp$M`w!ki(Tey(v33)YF-sX6(;)VB4S5 z82xrm<18%slHKW09t~4f!BLi7y7n(3>a1$=H|{Kn)*%gGi=nHFA5IEftSe2BZ4i|B zhqa5pLXG?`-<@CS{gB0E$I5V|Xyj+HwR}udu zRL_rJ<^M9)MCgTunPJfZp_d?=d%ADpEgIUI`{e1agQ$N@jQbM@9O2y*;;?v`Jbm<@ ziTn(@=~@bGVWGc{DI<|9eWIKMw8p?B5Yv?{!V2D*Jad(%>#hOcR)S|-ccZxe{Z4}) zK~upn$IR;yiw{o8nmLEqWF ze6Q=kqyIcOu}HR};=l@-16iOO0SsNcW{5ZN7_h(%G_*%nyOjq(&yG3IXu7Ky-G#G9 z4eBI7;;VOJR1BM=SL=UC_N6UjR-I zXW}yg3tU+~-n;d&IPPREKtJ-I#(+bLUQ!XnPgd2su~L2mWw8+$2E>2no`VWGc@oB7 zl~(82)VF%GyYtF=2IpUv+wQqN5CI3L>MyOb?=t+S(fmJrk%0HxlT6U9{)eD~esbX7 zgK*;Clnt=@k(7CML>___){uyKV1w za|Mf03vbEroy+XC*#|SXM+4wnDH>n4!_M zZBnmdH#S!H_8!}IFas@)yHFSe7=oy`d%#hAtm00Rb(Mfj(wpkc|A(?akB72<-^cN8 zl1k;)LRs&UkPu~Gs~bi3LWD}lzVBuxl@@DCl)Y?8h?v1(w4eydGME`-iNTl|`(Vt> z_jytG>vg|=@6R8<$HPA+U2|Q}>$#lgaUREU>ef81m@tR7*8c#qVJV!>7KX@P70`yy zx%b2QA~rdIrbs~%p$R9OHH`#_pOs{)b`21T2%l4oi%@fAG#8a zZ15vc((TM#!nnrew#mtsMMFe7%Zy8Z3m;0a1P~~sAYbm#MwtR)%lVuhI4Bs&0UD0W z_!6r2 zjQlX707eE0Dv;4L#YsZy-tj8_)Zr4ME#s%rb$HY}; zhu{Rcrg)P_4qIA&sA7UV-`5T#wCNl}P(s_lF!{amHe&)<(vS2(ijLU0IhP>;VO)|0 zU<1H9765FHGQcZsIs+?Z)OC-llv6{fH!2|X1BQbG{x`MaBVd*S+LZ9K5r*E*eSfO6|R5Jf5nV~qcmja8E(UW_?w=K{7*OeoBjYR2O)c~$e}}Icv`cF+g9fW zl{<>GXuf21mlIKnk$;GC8OFb^OUuyv_pOfweUDO<(CXCFj#ppw!G39;)m76}AF*oM zBL)oc6-4#|Ds&l;pvt=Mn-fm<5IRiC!5if)HfRqPf^78PYfu!WTeSUkQkg1 zhpYn@VsRY#`lsE~I~HCi=7SjtaPD&-o!&Ae@^AVKE&q243ai|bfH*+2;mEh5_fc*w zx&kxp2u-lBLmYRov;TWlJJ%Ts-uG5Bn?9&PxX&^A`RCj8oh1+ZyLw4CvaP_J-jSJWkt+sdyLT-s=oQ)g6(D;I<{?kwQ)|U+Pk+IfzKxm(*&&Ec{AKQvZH%H? z6i;hsF*YXAR-n@Be~FNbEk>rx@vEo%+OoHEJV1|GnStNM;n*IcpZ^ zhAGuQ6x;qkd-drk#oQcfKjM8~AF98(N{BmL2%wB0F#exK$$QF7nb#gQz5K!}kXh^& zEvasng?@fh#zP1MeaHXjZrXx60qY{nxgONp`#~-1oLo0)u(YjH@+eK(jGFg0Z1HdI z);o;>x#ZtUk&O*&Ypa%ninIi7S_qdhS}}bsuZO)<6Y^piN7F5Gnh9nDDuL$>|31KL zfuaZ{EM{SLW7bKJWH zqMCp>ks6-W5S0Xq&A{%Wy+hU;S5{G=a5Q|niN4J92(T`kC=`33zBu=LX+sZ}6{q{+ znZ2;4zA9Vl>ywJK$LGVSXD!ZW^o)<>%J7Ptfgan{+f~6_2Yb2q=U1;@ete}Pb^O?I z)r2@>+v|S$;}fa25w6*|!iw6%)sCQ7!EETxY;_lQ<3k`FX@b?=lbNE{bRj|Pgnp8I zs6Qq6uc-NFBsn{~h}7|k1Gw>G>EF`~3T(#bc#~OB4L}^w45aYVCZbk3!oCXr1Kya& z`~4kVT?EeF83mL|A^Rz!DX?FKPDf)W@OU~|xBeb?NDvU+H}+yw#5CvTZ{%`wNtoWu zi8Bbz+q~da+bi#vJBA*XcZ%&-8dUfJ4~ri6#?0WKh$Le1gEfU?&=%XU|D+bkp#Hsh zTW!SiRjP0Z?bcktDzATSR>;^3zhZ13a8l~{mT9NVeTqN!``Lr4P}SJnI;cG_g@U>Z z{JP$kFzFUaSEydk$1$ES<7Ook`c0jE(^ZA^uUGLycd8~dj4s{wK;aJ9soTL$jr78v zRb%lbrUi?*eRgV48C58|Ne(6RB?@TYQS95eQ>x(>tm{0D*p5r4Ocl#}1VDF4u#ANA^HlQMFhEDxV4hc@qweRCN}9zq`i z^!Fs1^yAlmAjjfOFVdz$LD3LI&804%VS7M}Y&n6mpJ=hvTpg%Y{UD^~nn>NCi)==I zuK??NLz{F(tx2v=`k>1=zlN=`-AgdsPc16!XM_%A29h52z)L6u@9gQpf?>Ge>T6KB z5T`m#%}`NI%wqY#YF1O*LL>+;}Qkjfi#P;4Z{EgmhLumSQXyX^)^ zK49I+&hLZQy?SyyJuQnzw5%xqlxk3fe2e9~p4Q<(gKnhL?qmxqb5{_gAc35TKh?_q zgsfC4K6p>-;@e0vbqW>r;kpNH=E$!A3WTB1{{26J{jxt!(5g3{iWAN}sZ2sTjv*t;4wi9qZ0m&(PL3iS3YVCr#`_9S&`2Xfiprmw=rule*r;Vx^ zuc)Br1PaQo6KY^606_tQ2!wThhv*!x;6A}8sz7t~e`EttlKFch{ePS$8;R{Nk~>H& z3RTVa>O*JleCT;Y`E6VNI<_wQhp(*zdh`0w1p$ipjYGoGXG^1Z@XlmSoh>GV9s(Qt zKUCEEb=rX|{ww0IE8hw}_yZcsf9?~)Q$XhWpDSEXs0aHN)CAt86P@15mZ2NORa~}>iTPN0_{;+s=3_Q_Y^@F- zQzcYZA&;P-mwUQ90b8F{30r^a_>LMi@Q|@5zO3Isho#2&+L;BAQ93tcKt7Am?bRHS z@wJ9bUHWNHV;DK0{AM_v?b~t~@cOYKtmrCOg6VtK1bq6#932$(&$gZWbf&-f<8r3K#a`>eRZoZ29T;QG) zH85%&Eod2=&8m2Y<=rP`s+)7QJ{SX=Dbo>KN*vCuz%riM;csHXC&Faj+`{CO)~dDT zBdYvbiV2-m^3b9Q`A}K_-&l7xBSvd!F+lFx3ca2b)iMLL2p@)6rM&2CuOAk%TO!iu zL<{SXxaf;|7da$M&gS&!T+^iEFsP|$A%iv5MfIh4A7&#&Hc?lm&&B(|6M^TZ=@qye z57FZ`Jz|d4G81bG?;cuAq1yyshxKHWusU-lC?b=$A!}no%>UfhnwhMW_|HQE70AO? z^{uUAB2uR5HREVJeX?X*Yqx%`1ZMW9%30*I-as#*E4_nCRDJbQPdvg1g-RWZ1gxER zys*XYitd$yVDyVWm?ulCexRXP|x0%B^^fA!0 z0P1#SCwzpwy!amTzA!6nNSpOl@~-$vEgu-kfI>25HizH0<~?l&wb$^q3=?Pa9TKhG z*=mdLA(lllBfNjU&<}S@ws&Hj$1BX7%4Ww1881I8LtwL3+i8?S9Yk~dX_*r~gjB}y zeebdOWCsy8w+<^`i`5*`zw+%qPG!(*a={cn;p6EUPGI`21N91N2tSRKAx9wfq*P#Z zk|`RuGQUf(81`cJN@8wZ-VLLM^^A+H%u41C zl@YSu8#uCqRc>@5rlS(!>+d4~tzo|I^IFi4fLyo7YgzNO!j?JD;khdMMQS+4N$Wnf z8--zvJ$7?$7s;ivPLvJ_;g?fFA{$|y_-V3nT}ut4!GO{dMY8N#EGDkt0N>~>5wRxP z?eVz5rPkDltg@PUTZ_9jVMv-mC9(n+B970(3bRi!wZGF-9b6rmgOYndw~#WOB?*D$ zL>#P#Tno=yb>LKX7Etcb#!z5<;^Pxvz6y-y!4oI;EByjCWX)Wh1-N|>IwBxFr$oN` zU$ByUsID@28{Hf#R{M^Wg8~9D_Lh|?43#mNK)+VgRvUxrxZXj#OXR|#oi3lf@bW7; zO64>rB+4JY^oNSpx)70-l)e+pl|y*bE(?^BLI}NlNAlXI`F+{&AJkeJA6dx3_a%i} zXDu4Wv?C^Jm`%qMu^c}5`;u1p^ZVj&uMWs(2l?!xk2Os1&bvX7)LFw|?W%Bo0DBCn>2Rxmp(Iq-y+(2J`uqu=w#2)P@v@jf);VSiY zm9RW9XPE_$0-o5+#BY#zD`b5UFd zlmut+eYcDXLOBaH%n~~A*Oj8M`!N-@F9FykslDLLm;pH(R-=Ez30_X@|r+cSGp6?qq|joq7wwPrQkp+mN_6fSt2B!M$BW#q;{z`c*F)@3srfjsztW z2xA0Nk4Mr&AP9wGJX>6?teTP}V23<@TtQK^FROo_3M%TZN6qwq^l4x`axQ)DIbTGF zO9`p~sVcGgz^BCmb9Rhq#SJG*j0VuP4Nb$CtMUjh z9|Y;aEBz0dXEUgFq1Com(O7%aV#9D8YragIR6ut-dRzZPw81I+0_lFV7B9<2UiYwoo!C~x;kd1aB|Ta- zzNQab?}DRM+#CKa{3hbEifGr}7hXOZ;oe zbjJ$;Jv1GH!%B_HnVh%~&>_MZtyH<2yU-I!zu0uLDu9h~4Jy5EKan{)qDnAeeu_uh zW5`O8m_N{Qd2!A^k8WZjFLoruZD;kPEX2jjj=53}N*z!RVqE~{>KS(xft6HDlGw_Z zLP(7$ai&PRK;6e`Wp%CcMy1X%H>I2G zOQY8U!skfmMy(}VZzO}^ok%v>h+53Dr@fsR!buYMeFla+cu zJ$MY2rUIcs_sd307R=yNZA7F76^3_7p}y}G;vE3JaC722hYsLrWqaHX_+-{OqH?>u zVh)F&Dwy&RjGjom5H4OgnU|BxrE_}R*zcl(GmtTNMvZ26@Dz+`&8DeT^ZAOg`dz(O z8)7;P3fz!ltTt10K*FPfLUJe|Y#-P{TpGdz`sgYd>L;ENAB8W?_>`#6-XF00>r8BZ zAbj^9zNPHb+J&L)|UfK{nxJc28k`68aBR*VSiAWjrfCGP>OdU z!is0Oj&>ITo1x}*I2BcVpXPfSynRBx$ieyL07bUgo##0zP)1;ekHr`2cVhnRfy z`zEBGI2E(wl_04bcXJnHJJuh#idl=t1a;0O!q;R}DricH>#Kl( z|0+hA(fB}T$|~S;D3m(}6`Q&Dq_e|glCxR(RKgcQF8wA+A3ba+Cy1zCOd3}#_iC3n zxDh+S_KN+=h;(DRdS=3NfI(;GWD|SIyt5jAaEoq?d6XF{-!e%! zmGQa@4`tAJwJ;DMZ{h-`<~f@Gln9ZMwWSGu{P4%ylN wLTp_*&z~Ktn7p>OZ;x&@`i!5_6{jxDKX*j<*n?{Tz} zziE`QYm-y~@kKTulkJn5x4S|uBLL7kjlZTI(m&q}qY7WQ9l0DUl+knGvJVKL#y$M6 zinK7`PqIyiE4Q^~ywZvT7PLk{C4)zZv-DgJ0M6#3E8x;&78Eo`=MYa zw>cCjmoL4${G}6^sNC)rmHK0L5R`X*VI!M_7cgUgRdIh63w%!e0X_gf|0q)-$R0va zHW6*`IfQ`#ga!~rIQ}yGu@kB-jNSvs`w3MU@Rzr3W+S#Xx`qATmS%CXCAV~iW7?+Q z=2W)=#9LMd)em}FcmACWAymKDOe4oQTvT2IwQ>p2Xamg^m9$!(SSV85ZwO-Ypg#k5 z1XY$d==jjD{~6GYt8Aiw8@C4i>wg9Ys+T~&LSZz7Np1Z4Yr8+hWChpf>C+tXDBi+uWIOpsiy6p=v=p%@BFahuG;`4w3&5FDsFIPYHGO1 z(^THbj2R^05^v+o*B-*l4^VPpK_VOy;3;MhIp4k%H}P{w+-B}db{z=_P7PF?h(_&+YQJ*q`7{Z(Id>&ES1QlmQS9?@Cr%l>qiuA{Bon;Qd-M zQ!>)_Vdrkd!)0VVmK!WWGBn0ma?5%@o^(vI|7SZ<)M8j2Qt5Z2p)}q}o-~x2N*(E(Yo0Pi$zn=@t zKvOWDpjbV`f?MQdq@_JljYcD`sZtr?e?}<+Po`2w%%?SOgSQPYd!ZJ6AGpOT)9D1U zkeo}&bzuwI9-iK)Cl&4hzzzBk0AmXNGaAr5*o%152EUv(c0A=ezw!_dnD*Vrg2LS+E(f*qsg zBhOaYWBkOAo(&&Sum#Tm&eYW0t*xNx<73?y)@Cle+AD&n*T(keVq+f-4h?m^FVrm} zhqlZnTlY~^@A#{MLW2hlS`0sQuXOkL_(U$CDR#uwBt1xsh>F$5_omPzO3>JR6nGT0cZztF7?E5MadIs z84POJ4bE{q{_II@_oMj*5vJ5XrNpDZ*>E}o=5p+vo$)~7;VnpC`5fpwjT8X==iBUs z>lQlDgi+<7C0RMChUv>?fKC^=*kwR?cu_VkcMK9&;I7)?9!@n(!-3+!#yTXsq_h;g zN#P4QZ{N_Wvf1<4Wfeze!U1b!cE9vPFla5ZX2HwGpjSm9+r=?-UMR)B{~cwXTMYhD zuN49peoaoO?s{fxE6)yTWfjaddjivY8i{n9%ecEed1!ioP6)whtxY;De?P~I8y$_Q z;`Wwb7fv>A7YXjHSGmiO1wJ%@K5RF8YzVN&i;}WKhyi6hPt}Lk*PrmbEXRX3ymSJ+ ze|GlPFwz4YatTMxw3pXVxCIP@+k+xVTrze)b0t>jk41p|b!LUHscnQ7xd=g=0kY}i zZ+Nd^<);eeg(JHIzS!+Jz|dLWQT!GVzwp$kE5PspGt4p8-O1{J%w7h+jb{JUcK7Kp^td+B$pcl(m`PeC}pr7@&Ks&o&26k~P&Yl{w`I z+AocWvA$|AcA46l>)Cw?Vi@pKJcuiH3=(41bXkl&1Zk5+gL|Np@0*zG5nY`J9^6dSzyyT1M zwCBz8(pw&gN@3QkXoJ?AJ`PS{Pv7wAX0I$h4aUL}ZHTjXVjt?Pbjjmuj(>6*IfYrR z=ZTL2t=#WAwJkFn8)_R6#8TEFRGGf7H-64N-J$w=S=i6^57!2}G{!j!d9p0Y%4#8m z`hmXkb)P=y1=!{Ec>Dm(pB6;uVQn~_VSV$y)63j3JbViw1J254}$L7TkS4r=$H z(#UeyWS0tH*mwzL4{cW)5(j$ZOrcXijr`BS>&ev`D$+ao1ysOa*G-Lr2~;Ry#u_bh z!~rz3NQ>JrKJ?OwOQ#oG&PIO`c6^xJR24yJ7&?DgcGt_UBp(F!fw-t$s)sEdbQ<9rd!=5C?jAnD)e74Ba(jmdolvkK z!6IAG+MYxfHIZW7sYxqvVXxI-Vh>6oR*OkUdm>MAl`$tZAb!1z1i>JDKAq@wsBl6^ z$>x}Jgw4l7x2bIA{zpaq#W_|Xf@R9r`NvzP1G^w(n-0sAy^29k;ovbzENq|%O$YS( zC5VckIGkbRKcS-%VsU^}CvRIT6HEwSU|@tBT0Jbln6?cT)q86F+z5LJtmPCeeBK4E`(AF~5(VcJn6;6h1M>*~*P=JH z_}WC1>n{52m3#t|W{0>%iTqL^zu_IA??$lXQ1(2rQvvZ$ z*2l}>@5vrcfKH`_YKEGywX;?d**BjBX{GS3Wc;3T8?pNBb3DoZE%jwVxl$N9GkdVu zk#SGxKusMyTkGHogj_4B*3SaG&cmCFmi1B%HHa(?kcslY7WkFRqQs;a*K-_j z_R~AOrb;$)cb1VOYCN8S|Hx;nwLYiP@QDBj-M7aCrBnn^VR&P7-}$f5iNJ3~E7#yG ztFhHIzh+6v1ffZ<3l2Rq`;rOvE}a%g~^@p;Tf>bmDXW5mEpi#&9-k` z2hH1aW1pw(5jD!W^w;H_i)}^zQ56^rv0<&ZY>>ztNwm5&BpA0Di$ighq@3B2;3nrF zE3>Q4HC*EAlD9{(aoTDiN=JFm5v*vSW%>P(;=de$yUPBhGcuTZV7SKwgGfU{9P&k6(9qJL;kKkdj{nZt47dsyO2Y)JtdSlBinzSRFK&Ow0^e$ z$APVeheSn@q^yVzu;uewS*e`Q`}GC^ma%yYCJ{NBo*G<+heSlGFl+`UB(~sL-yY8q z58llP73>8dAKM5vc@LYl_V+($&Ltu$z1c87w5KR5P5RJr8<9F<|NnDs4-}4CI*KiE_Ich|4RSk zSB!s<5Ukw=x*5%MXwWLtReaRxLlHi+PF;{TcHS6p#N@~UgqCAm2JiNxf%JTMGfKze*gRFb&9%xiO9 zPXMrCH$#nPeM@Bhq^hF2H{dGaW@hRbnxI!ySIb~QTV)~&Q;NpofV<`fnK_W~Hsgj+ z_H!hVSl9su)aZ|C&MHIHC*vfWJUmS9$9L(Y1a>jA%UbCY-8 zWr+p`4k96*SpoijZV)5u=GP*%51sYQ#d747B4rF#3cMB`9FkIU4{!_X)o&?0aSHv# zf8J1b#BlKC)>cUK?CkYP?y4c6xNkg=K6^Yh#K!zGZ*eH+FSSX$)x@&?Inb&W?WGiC zOkDs9D1o!~!%kksMPB~d9*(qdz(#%`D76$h86Htju-lOg`s7fNAUFV&7L6$XMy?hj z=o@)r9RntP8xHbk_8vX@`yB(C{x)mUa);yqy2{uRUC#u~dlC{+c5{1)(Uf&DbKzna8avpg9iFGPUm1^?jMW)~p<&QCq5i zWzVhzTMNVBNhhjEl77rnfqz|Ssn5u~mK!FI%IQGXnaQ(Qp@i`G)6EmxYFz>DJJ zJ$5pbLLBWlaezb!LdY#!e2)UL*po}4-{i^f>V7QWRxb7tsY0;2G0~vfA|-=H2dhOA=5|a&zV< zly^IQ0hUtNeQt%~{RwKaZ6%0npHot>XE~e!iWht4hMeN z;_Y~%%mpC&3kwLR|F=c*xPaBxQZ(>LcA7EBxmf*#%JF*n!VXO_D$*&#R@Fn%cz7RxMm)p9B&OkLF3>ar5Wn%7n0y3UUww@;UthyL za9oY3Ci~PP0Iz*nDISMB@az(0ZC$$7-4Ssf?~xOSG(B+x=2@%d)qO;lMTVLiEPnGG zZc+u75%UYnF^z0=L^!}JKG)ks*bWYsRJ>8XX;=L=1CTqv(-KCA4wozddwyKN2W=8$ zTwjF>+17xP-wH_o=K~q8+zEx9L7K3v7tc^*l(FG;v`&QEaO%?d!@z-9hxM4}e`_Ql z9}p*i)xwr7!*6RsC1yh?1vvSu$Qe8bqdlM#2hw50yBCeb0g{}0s7(~!#@qJYa*r9rEeagVDD zX4V4nqAl!PF`=p|8_WT(ThAzf0O^HGx6?Sskzb%461e1rGqtQeaDcv7YGG#^0f@WJ zx3$`cr3*-Xaw-)qE_mx$moeIaSu8V93X1RRC6KjKKL6YW47ID0D`$q0=lyvM@$j-; zb?+Fc)XSHAyfKs?Nb;^-d#(V2CX!MQbwM;3QFkp)^Y&AGk$65ju+TK4vMj)DwuJ2v) zYWeQe+mJR|D&Vr)%haf|>T8jkkx6@SHnvxVJ3(n$|4PHmvo4UMSCa|BEcY+VZ_>hr zL^Au4Y_BLsjzPz6hEiIeDb5b3ewQ(g1U3b4(S<~NKwNZsB>h5TNNgs1!z*REk#2Xi zc1A+JUh7y_LM~+l6*lF59BgZ2z+LNJ@8_QCuSmsQ_z73POxxNDWF2u?&fL$GCz9*;QtmBOh-RI zNcF$boDgMUS*R2rdBeRgb76kH?~=PuuNNX`CSfmV;ezA!1nwh=vg^yhHl!n>NMNFU z!TTz*eC~qBEsOQ~(T=L3FK^m{Ei4=;9k4L!4T~?3v^FH}JoW`p=T4*~G*VnW1LpkQ zKa(dT^kR=o9|ZoyNHX(dNko^C1K#rX57^^49Vr@a)_K~Z=*a7qGu;BBYFS(wbF zEOVN(=GwaIIxL>@@F{r6C?N7u53=(;{qxIYbu27kf#<`sIz4b;%2q=M9@|A2x4QBv zcVE<)ESL2TdK~a@27cW~dqz)=bfpf%GT>$ql!_Ei%?Jkl^`2y+YNmsM&V*reI?dNFObKvbg_MCuep7xg6nk2YdV5mefy%oGxKPdz|}WPUfLa3-L{l5vwZLsA^0ubvCGQQI^MRIRof2y>O<<=9=)iO5*>;4 zek)%W5ymt$Y=>HcZa(Ad3+*nyo)LtaFLoynUGhQXB}dTev2)tXjs>ug^g$8P{{3Bn zCgY(*X_H z@QPlhP}k(Ly)9vvN7FO(w$}E5K;@dLpF7il*55mLUz<~`idk(^ws^X@PHfv7@r$`M ze-sH5e+wAk0dfix<15`1zINXeetn_Zw#OBmj(}7hdIkX8y@Nv({Xc+3_1ZCJ3K#kPOg{l+3XR)QD=S3EbF%J zRD51fGDU+{cj~Cc+NV6ZZte283=m%9jg9S}3Nh0&Qug7ki2c*A@;V&fnAbwimUhIM zJE$9VXKUC8f$qpV!iV@+gV)2@{(Vs3(%{O^i(mY}I@!R8q3;k~(47)9E?U?hOyASr z-=CM8SS6cf{?s+9L%Jx*zUx+=ROh}9K!~h_GsmKD+z8#@1L+p3h$e_jK;u-Ss-~$Z zsvtLgFeXVo`YsBx@}qQ$je{5XD?O0jk^C@`ooZVhYR%YY;-2$ORw_vRkY27xef8^2 z)f$N{UQvuD8h>5ZrcDV2Mk$^ul$sXHQrEi6KQyn6l@_@VVtR1BR#nb?lN|+guQi?D z)tD_Np*i?nNwSBNEJ)85TQ1m(Y9CkBGy|?ygFhE%5)h%tki}~AWQWf^VV4dlDb+ra zCj4_}peWUNNQ>J!G_Qw4Rig>mS6GPg?n$JqJSgliFVekYbM;V$1GU7atSh;;ex~jQ z>pVA9H2RH*cMSd#(H>GV+tVZ<#q9o8<&R2u$@i??%YOak#%qi_UpO|;-Fm)|v_bKP ziYkpe?0>6fopvMxGhjc{xjm^VNv_Ph>Eg$YT0K^rM4%8CWWk|jn^hyDs2@+WF25s- zB>`U#jqIDCcPOZ;{QZh7W9FWwhIk8lA#UV(v}YUTDc6%`%||qW04=!&@Mp~Q1;efo z`zJm+d7W!ZXlVytUJN$`%jWm949RS$;kPF%a2XbP-11AZ5SOS@3<zO3`6X?@FbyVhl;CGNdY|y1Q zMg#iw7v*~+`2oKVKjv@-E(RAtrD6k1g7OXU@kUiK>#J^9gnwzKk<8#J`)r?35cq@xwz4Ug=5^0CwaWRKBWhF ztwXgvCH|^ArrjfbO_ujK;(x&UMc5b5|Asogn(^mj{uAZ zj2K-nSF;OKm2JaGPk5d@sXHK}hwJ7@WzdPTW_|xLfD+p^39 z5RM?r%9_&+Q$YVvCs79#4E1x#Q)?IJwtY z{r|_7VVVa->(LC0Qj|ff9z0Hes$=HRURIvhR}$^lM|%&5ncpl1&pG93V}tFf{NHxW zl#!c+q`DOs?CXTGGs=I=+qTJ^2q6_+G-=!2e8FB@QQ0lJ=~+s;qdN%tclq`uB%IG9v<9f`N(kM!9Fp?ilWq?h z+qfr2W(QYa?Jf+uGSXKgMewu6q9_8UIajaX`jG^5V%3tYA0dIGK)cMx69b~{qLK{Hc=t*u7xak-L-8V;fXL)UM9D1sKWIA@N3kks{P7`DBzZO?Qt@E3hs zlP~_+eYoDLlJTnTBOR--u>^pYMUJ@S9bDwF0JQcd?1teok}tV@sAIl0ttx2I6KBmc4k0yQ zcs~0nX)1cF_zdAMyN8Q*3an_?aviw5ggcUf6lvOS82zQI{Og~C!H>nIfa?2I^B0?` zgBt^7DJZp%$DLx>R>$+W47R9HEQIlXCN9*c8urPU)(3QiNU}erkQr1TS{Ujv?wMH# z93{Sx9?nq2f@53%*5n=^)c>L;<+S@jt%-%Z$!Fc7XwP+A)wM*Z?FpDNz%WT!16A$y zrg^e||38Ci8KtsbelI_x1R=F;MLQ;&pQj#}F(J8BKsw<%0)$22`~*jZe~a#m$Chq% zt;JiuRo=!#6VKh5^Cg{C1UmwQ^*}TLn$>`ARuiC;kYIYn-0c}KcdX%Z4NSOTpOyTC zqHmrMXHx5BdmUX>kK@v&2vDjuqCWu%qZiNU@F5 z6Gwd1!la>b!8wul}3GA+t1-)MLCB@vc><&nIYAsl&3EZ{Uw%sSZI+eCp z8$_D`azcx$*s6MZQ!4Vul~iCj1gz?eE9 zn-P#5uHf{KnxC07G3JYR5D(1)bKt^Gqn*;=;KYHJnYD=L@$_KejCIyQ09fypRMkt~ zv~vmOa};k#G&$W~`on4A#?Qv#^Pdx|It1UVZ#w0^pQou;qmdXFfFx+?fNJ@i{TaPDeeV<#y*30jE-0% zsEO8h0?)#*Y!Bk6Iv+vRQ36t1I}X=#RwW{HsD!)`R+(POsne1sMN1E&-p=3K*81tu zeW!ihd*lK6>FiFVzST5aQw$i|RNl)k(#jApiLyB5cI5uknIjw$L<30&!*K7DrS0E3 z(B?5|9}etFj!N{wJf4(WKu)PY2x5PvwO!|GC1ZWI3QTmh)G}?58)aA1>p6i*iV{Aj zEGDcd_QPxHd!pvwXt)-zzRSs#1b1741BtLIB`({{nekaC=c9=8>6*0U>&8(!7E8@m zq>^4YVc=JPLj3(-H!;fz4yZS`3~fu%k-)!RBl=#*i;fVxy(=$z{qRMiDOR9a2DbF5 zx2U6KMjXM`wf26>Yr1`5_48d@{`I3%+a&wZ z*CM+;M(X-?C|p-B*(847R7G;-+xBQ4PBzKoGrjA=(!6yRs;NoBZhJN5>K$B4R?@z> zJ8L$$z!%G10FSv&z?`R#=O~?4#(n<$lZU7hl^Db*_v{YhWq1I#2n48SRO?P%{MG;HP%8zDYKVn@l!dIB@#Bp`0=NJOG=^ukwl=n~9aJo=t?Bb= zX=wpbUa0_}g(3{-Mj8ipC%fNsk9NNgE(aZ%P?GV#*WK7*en)$MWB}i^r%x9!At51b z_Qp=V-nAJB0?9C#K)aKEe}9I;4(n5ZS=IyEar;~dx8j2W8qqRcpfUzuu>r*=lo?sS zKcOJe0%knaTo9Fqb_MqjT6L+Jy^(k$9S#FmyDeb9@y8o=3Q0+``vx0j5{Lq~5t?po z1&5aXC}3=Zaec?(Yyz(V`Efr$jZ3_)qJUgh=umn^Me8=!^WC|mn`49VIZKTTRn@>8 zMtq-@1rP#`A%m6&=BL#==VV{|O#3=M9i6Y`M91HsFbNSFBE`$vD{EkGf=)N4;|soc zQKDaDgOjLMag)Do9llVsYGqEiDeI-x*QIn#7C82UCX*N3R=L9oGGEoAh)Y4BcV2xMp-}-eC?+iD z!c79b^_jBejtr4)T0W^xp<38UBMyni2FWQt|&H;t$NpM zF`q75Ux|xudE1Db)lIePp}xA|?_JOHe9#mZAml=MMVn*Xb+NrbYS`9#uMzvQlBO+S z4LITK1wqm|Y73xv&*CJ_vZ|u3D&7`V;h5BR+1CJHxk2YGiMd}wsSlQrCh3-v;oPT# zs>x(J0`xr}=eM%;Fz~q+L6XJDNq+=^E^a(81IQx+=G#0$iJ>-pTga}uXG+H2wxMVI z4n*x8u2+nDBJkIiLWrQ9T&t>fa{uaXgfXl*R$=WNT)xG6re_JTL`D0&KpZSyc=V%K zS36a)K5W1;=jvfI>Seh3<=KeK#BS-S=m&eHI;R(WZQ)tG63AmDbkY;OOf1FUy-Su$ zUC+oq<%+_e6__KhI0{$@wW?4e@ZIp7t{sV*|Ep=Q)F(cvPM5r0#Df0*0j*nCYMi-) z37>oFys(`e@*!B`_7k=FEy>TUClUgTqAJEf$AyeWr_2|bA*82u3@W;$*!8a)!liHB zDnVVt8x!3$4toUlrH#z*w$ni=4K(-F&*x3#AJ%sEEY_u4OugxeGvJsc1F4(r3d%gGyTmQ=xD`8g9!J55(S&a8|rl#&tNf%ZN< zrk2CYz_*;RJT(yQmB?uA10C-g5P@P#TCY@xDerL}Ee=_Spo4oIqa{R=q4X6S z@kEwy-}$p%-RF&&bHxkVVdc6}y4|e@eg=AGV*J9KWsjbqws?sI=PZJjkb|iar_${v zM2lm^n|jmDm1nC-oQRu_OHDRfk}>cA;IQuWldH6>rN}GI8{4ysdM8 z?DyaAvYsT{#~ckik>>K2Rz@8+Y#O(1qDOUK@kSiE-V;*RxQ(|%;Np3~>q`}GO;skvEWqZR4`pAVe6 zOL~ACuX2*_4AD#s!$?2Z+i4vEKv${O&ok4HnP4{IFZrtUqN@W)z&iyupDrLi--5#RFu=L?AgbKdIRNJI!y0vsJLlmlH1y+e!aRoG4F7LaS=oNi<#9WpY|jV z?Z^FyY3I8tC{oZB!jiTN4|oL&%>I=9wC>gSDWmXDKhL)JeTfUr+NY=AB*y--qrS^r zbI|~4Lyx7G->Pi6UU#O~OGaDzdsz3+Kt{}EFpx1;Bb|?g%r#G8oO0rVwc>i@B!=y|kBCKI7>>ESd zzMhmdELA_N7qEU~cc7re>o&`sY3G*d2``)c*DdP-4V)6KFE3T=l~3R+3}tY>l(T%; z^RVqP-xu&Ev*b^y&Ib%}=|uO;hE9t)*I;$0M4f^s>9uD|1i<#;mXvAJ5S*0t^j6FF zu^+J3(nCD))|o2!hekI>S(f)Au74i6&0q?XJLgNTsw|4#_qX5Dqw|?knGN@uMh367 zs56;=lK1=gII?%~L>qV+@d$CHp{mO0yzL`E&3P>^bQ-a~_TY%U0sCMLQ9(_@S0_(q zwvGrY2T??^SS!&`R+TZTm~>j{{r60v%8FWP)dP{Lvna#s7pib@8F3qPjfOEG#Te2@461|iYX#SVy%~XB+8m?P!(oH;bdL~cUJ5*HNsnFMT-+z4to;LWV zMSzuYbY?8zRax24wZGFw$%&rjRDn*XuBFnWVjZiTN^2%Og_GqGE-nHk2w%@m(B?AW zM;F=&u!iCSwc_KtmgZyMB&>(cHfWFdG}qI-V4W1ur~nb%a?Hgu@q5hxYqfYO28Xeed6#ZLsPm9msj=kMHyj4}QeBf}J{iGzG)yJzmS2 ze4TWEt)<##)FsHiSg7bVHuL9pnfopKr0S)oSZ+hiP%1NDua2!XQg8D18#F7nb)Lk|AM7ir+SY7Acff%q zSP6Tfy!P0(D}`#ka@eAleojZv$|1lRzGyhOXgI;kQ>zhsX5bctviY^99u&<}Jd_KUK`^Bu<(C>Zz40^s1V%ts#n_ z)}si=|0cCs8N%zF7slG@^n@qa>C!w&53uSX@amWaKnb~@u2<+kt#AK?2=?^6<@iXhiOrKX04KY@XlchIFn zu`RZ)!eLlx+@si7bAEm$JzsVP<(%O)7l2pg=-Zi==z&YLnZhy-*y3n|+rVsT?wj;U zYEqiMOxpuA&OU)Q=&XOaJZddHZUcvJlGq9Skc8@d`%yo9s+Ne>nv^4dMT%#4zceHV zwi-QO;!sf^6{%xn_^G*e-J>J(15xG)m8G%q%5ob=OHXNKX_8|z25q{$g3{N=jZ}vP zTMSGFT{8D*+{XJ0A3FOS^RJuIO8~b`jJLSoe^Lsm+?m9gMZ+L`h}D53$MG^f;Pqqm z+NWTB73>}xPIq|qYn4zX4Ago$v{$*W-rNIZA#XiG012YERYmn+bc01#Bq#x;KYydt z|5S|mS!Y)p>!R~uM71?eCI-G&!>2^`xjB6g>r?yWVWS{Yk-SFq==3<)cUhTUccKb? zh?47X9Rs+!+J2id5p&Ne-`np07LE(x)bIs^FdYL*V&CYu|B_G?DWJ!Um9B+V6+=|r z3I5`Z_W%bxZ6$J`-C}qmSd&*1zbrSI7=LU{<$`mvsorEB(L7CGiLHcc492*pNGd4bVU8aaLN|ppPjKN*JE(;BGwy9mVB*2Yw1eo?5MR?quPu zM}Is?Ko?!3%Dl;LIOuaLv+TH~VLP_0q-`oc@f_YiTGg{-^73 zkK>A7iJ!3>E}+P!s=HWzAo(u(FIphlHbHtBydaq%VlcRWP%7#Yj+gt9-Ex}wya36j zg}nrivAI*glTFjU=s4!EVCrB(0o&!B_)x}sy3~xAXR7K>uWWpFO;6gen7;@;I(^UN zSO_eAglLlymk{FQhz|9ang8rO>Soy9=oDL2gD z!*;#Pp%{-OU*OpgN0F{*ZG}xZ;zmWYjEz;}>>Pu?R5?=xJrR;diEf76hSjT*D%OV! zXSiC^zdS3tMlPqwEm3#2`x8n?ZC!5hcMX_eAi@~?0`^qRV!_h(}?TuCs@~&SO>;LP_In8sGL!~1` zQ>NdIcQaOHj}tC0U`~x3x5e2X=_(yx=!{-1e;qb}o~4C#=&8t9pt9C9+YGXD>k8*$ z%X%-BTBHtAO7(WXIliQI4Q>CAXNEt0UC~_D4^#gPRtiO zTyfAIo`8T&-ohQg6c~tx@5nFZQeJh3CQ7Cqe z#QpW`hpE94Z*y}Gl3u?2%>;MoH8B;SUu%LQTN*&Dn!sURjgkgyd=NHwJ0y}f;o>1F zDER$hO^KkwWcwSrp_gLKwWs-I0B)`_u@>!@Ef-EjB9Q^AOLFq^Me=fTA%6-A)hb(W zm=*5I0)~ZzW4Z;jui8Y(c8hlZ(k)(=HXKjenRvunG=L?v?Wd&^^PWS?>k37Jg(8L9 zl|pbk?yrRh1O%+TfIvMxJ@-scPum9E5h?@;QUbmif3w7-H_iYqux%Asg>%HE;lAMH zZv2U}KW}emm~8sFqvLUZe}9I2`Np{OfanI(1iFQ~w{?qx@&F-8wqlF2 z&5J_raCqN&I2`V}ulyuLxbKM&zkPc?0xYj$#&51o2IZn%kPnd&$Vm9zg>1){X~R83 zANcjkP?f)%;8MvcDJjPaii;nd8)8XlXlOi&;NKBR7MZ)C?)v-IS%>Tsab6A*UI@fT z<7CsRtO?>%IP!(B2Bg?@U->XABC$mDmgt< z6Hi`eS;t&r6&Dq?baYt#R6gb4>gu}Nmqsu9t=hW8e4ipzAf6wT)C13Kh1yw_&?e z&#{OWkYTeav&Twmf{of{{E;YRATlW8t8+x6fe_zE;y#1Y{k>3#n=+?G3iafr!85;5 z2}#K=IW)yC#U1xEWFAAx>!aas-X2-t$JIvV)1tP|+U@yH>A^Rk4s=HS(C_P+&DIIW z+r5*Rg%ckToq4lFe>0dX7wG5Xq^KS+4`G|i#f^jz6u!N&X zNP1d@$yttV_U%;KaC$%<;`b1l!PI$Oa1CnqusvS|e{{00VHJwc+l5&RLx;HoG4Ae+C-}@Bjb+ diff --git a/blog/2-pick-so.png b/blog/2-pick-so.png deleted file mode 100644 index 760627e7a5aebef1148088b0a8a74a7904b9644f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133457 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

L#=WXYz`YO#wKL(~fFo^7^ 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 D(O=1< diff --git a/blog/2-set-singleton.png b/blog/2-set-singleton.png deleted file mode 100644 index 7f44d677ff6de416b58b7e6c29bd25063a0e8ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130329 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�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 diff --git a/lua_pluginscript.gdnlib b/lua_pluginscript.gdnlib index bc4b5e3..e46629a 100644 --- a/lua_pluginscript.gdnlib +++ b/lua_pluginscript.gdnlib @@ -7,6 +7,7 @@ reloadable=false [entry] +OSX.64="res://addons/godot-lua-pluginscript/build/lua_pluginscript_macosx_x86_64.dylib" Windows.64="res://addons/godot-lua-pluginscript/build/lua_pluginscript_windows_x86_64.dll" Windows.32="res://addons/godot-lua-pluginscript/build/lua_pluginscript_windows_x86.dll" X11.64="res://addons/godot-lua-pluginscript/build/lua_pluginscript_linux_x86_64.so" @@ -14,6 +15,7 @@ X11.32="res://addons/godot-lua-pluginscript/build/lua_pluginscript_linux_x86.so" [dependencies] +OSX.64=[ ] Windows.64=[ ] Windows.32=[ ] X11.64=[ ] diff --git a/src/godot_array.lua b/src/godot_array.lua deleted file mode 100644 index 75e70df..0000000 --- a/src/godot_array.lua +++ /dev/null @@ -1,136 +0,0 @@ -local methods = { - tovariant = ffi.C.hgdn_new_array_variant, - varianttype = GD.TYPE_ARRAY, - get = function(self, index) - return api.godot_array_get(self, index):unbox() - end, - set = function(self, index, value) - api.godot_array_set(self, index, Variant(value)) - end, - append = function(self, value) - api.godot_array_append(self, Variant(value)) - end, - clear = api.godot_array_clear, - count = function(self, value) - return api.godot_array_count(self, Variant(value)) - end, - empty = api.godot_array_empty, - erase = function(self, value) - api.godot_array_erase(self, Variant(value)) - end, - front = function(self) - return api.godot_array_front(self):unbox() - end, - back = function(self) - return api.godot_array_back(self):unbox() - end, - find = function(self, what, from) - return api.godot_array_find(self, Variant(what), from or 0) - end, - find_last = function(self, what) - return api.godot_array_find_last(self, Variant(what)) - end, - has = function(self, value) - return api.godot_array_has(self, Variant(value)) - end, - hash = api.godot_array_hash, - insert = function(self, pos, value) - api.godot_array_insert(self, pos, Variant(value)) - end, - invert = api.godot_array_invert, - push_back = function(self, value) - api.godot_array_push_back(self, Variant(value)) - end, - push_front = function(self, value) - api.godot_array_push_front(self, Variant(value)) - end, - pop_back = function(self) - return api.godot_array_pop_back(self):unbox() - end, - pop_front = function(self) - return api.godot_array_pop_front(self):unbox() - end, - remove = api.godot_array_remove, - resize = api.godot_array_resize, - rfind = function(self, what, from) - return api.godot_array_rfind(self, Variant(what), from or -1) - end, - size = function(self) - return api.godot_array_size(self) - end, - sort = api.godot_array_sort, - sort_custom = function(self, obj, func) - api.godot_array_sort_custom(self, obj, String(func)) - end, - bsearch = function(self, value, before) - if before == nil then before = true end - return api.godot_array_bsearch(self, Variant(value), before) - end, - bsearch_custom = function(self, value, obj, func, before) - if before == nil then before = true end - return api.godot_array_bsearch_custom(self, Variant(value), obj, String(func), before) - end, - duplicate = function(self, deep) - return api.godot_array_duplicate(self, deep or false) - end, - slice = function(self, begin, _end, step, deep) - return api.godot_array_slice(self, begin, _end, step, deep or false) - end, -} - -if api_1_1 then - methods.max = function(self) - return api_1_1.godot_array_max(self):unbox() - end - methods.min = function(self) - return api_1_1.godot_array_min(self):unbox() - end - methods.shuffle = api_1_1.godot_array_shuffle -end - -local function array_next(self, index) - index = index + 1 - if index < #self then - return index, self:get(index) - end -end - -local function array_ipairs(self) - return array_next, self, -1 -end - -Array = ffi.metatype('godot_array', { - __new = function(mt, ...) - local self = ffi.new(mt) - api.godot_array_new(self) - for i = 1, select('#', ...) do - local v = select(i, ...) - self:append(v) - end - return self - end, - __gc = api.godot_array_destroy, - __tostring = GD.tostring, - __index = function(self, key) - local numeric_index = tonumber(key) - if numeric_index then - if numeric_index >= 0 and numeric_index < #self then - return methods.get(self, numeric_index) - end - else - return methods[key] - end - end, - __newindex = function(self, key, value) - key = assert(tonumber(key), "Array indices must be numeric") - if key == #self then - methods.append(self, value) - else - methods.set(self, key, value) - end - end, - __concat = concat_gdvalues, - __len = methods.size, - __ipairs = array_ipairs, - __pairs = array_ipairs, -}) diff --git a/src/godot_class.lua b/src/godot_class.lua deleted file mode 100644 index ca81345..0000000 --- a/src/godot_class.lua +++ /dev/null @@ -1,76 +0,0 @@ -local ClassDB = api.godot_global_get_singleton("ClassDB") - -local Variant_p_array = ffi.typeof('godot_variant *[?]') -local const_Variant_pp = ffi.typeof('const godot_variant **') -local VariantCallError = ffi.typeof('godot_variant_call_error') - -local MethodBind = ffi.metatype('godot_method_bind', { - __call = function(self, obj, ...) - local argc = select('#', ...) - local argv = ffi.new(Variant_p_array, argc) - for i = 1, argc do - local arg = select(i, ...) - argv[i - 1] = Variant(arg) - end - local r_error = ffi.new(VariantCallError) - local value = api.godot_method_bind_call(self, Object(obj), ffi.cast(const_Variant_pp, argv), argc, r_error) - if r_error.error == GD.CALL_OK then - return value:unbox() - else - return nil - end - end, -}) - -local MethodBindByName = { - new = function(self, method) - return setmetatable({ method = method }, self) - end, - __call = function(self, obj, ...) - return obj:call(self.method, ...) - end, -} - -local class_methods = { - new = function(self, ...) - local instance = ClassDB:instance(self.class_name) - instance:call('_init', ...) - instance:call('unreference') -- Balance Variant:as_object `reference` call - return instance - end, -} -local Class = { - new = function(self, class_name) - return setmetatable({ class_name = class_name }, self) - end, - __index = function(self, key) - local method = class_methods[key] - if method then return method end - local varkey = Variant(key) - if ClassDB:class_has_integer_constant(self.class_name, varkey) then - local constant = ClassDB:class_get_integer_constant(self.class_name, varkey) - rawset(self, key, constant) - return constant - end - end, -} - -local instance_methods = { - tovariant = function(self) - return Variant(rawget(self, '__owner')) - end, - pcall = function(self, ...) - return rawget(self, '__owner'):pcall(...) - end, - call = function(self, ...) - return rawget(self, '__owner'):call(...) - end, -} -local Instance = { - __index = function(self, key) - local script_value = instance_methods[key] or rawget(self, '__script')[key] - if script_value ~= nil then return script_value end - return rawget(self, '__owner')[key] - end, -} - diff --git a/src/godot_dictionary.lua b/src/godot_dictionary.lua deleted file mode 100644 index 757e36a..0000000 --- a/src/godot_dictionary.lua +++ /dev/null @@ -1,84 +0,0 @@ -local methods = { - tovariant = ffi.C.hgdn_new_dictionary_variant, - varianttype = GD.TYPE_DICTIONARY, - duplicate = function(self, deep) - return api.godot_dictionary_duplicate(self, deep or false) - end, - size = function(self) - return api.godot_dictionary_size(self) - end, - empty = api.godot_dictionary_empty, - clear = api.godot_dictionary_clear, - has = function(self, key) - return api.godot_dictionary_has(self, Variant(key)) - end, - has_all = function(self, ...) - local keys = Array{ ... } - return api.godot_dictionary_has_all(self, keys) - end, - erase = function(self, key) - api.godot_dictionary_erase(self, Variant(key)) - end, - hash = api.godot_dictionary_hash, - keys = api.godot_dictionary_keys, - values = api.godot_dictionary_values, - get = function(self, key) - return api.godot_dictionary_get(self, Variant(key)):unbox() - end, - set = function(self, key, value) - if type(value) == 'nil' then - api.godot_dictionary_erase(self, Variant(key)) - else - api.godot_dictionary_set(self, Variant(key), Variant(value)) - end - end, - next = function(self, key) -- behave like `next(table [, index])` for __pairs - if key ~= nil then - key = Variant(key) - end - local next_key = api.godot_dictionary_next(self, key) - if next_key ~= nil then - return next_key:unbox(), self:get(next_key) - else - return nil - end - end, - to_json = api.godot_dictionary_to_json, -} - -if api_1_1 then - methods.erase_with_return = function(self, key) - return api_1_1.godot_dictionary_erase_with_return(self, Variant(key)) - end - methods.get_with_default = function(self, key, default) - return api_1_1.godot_dictionary_get_with_default(self, Variant(key), Variant(default)) - end -end - -Dictionary = ffi.metatype('godot_dictionary', { - __new = function(mt, value) - local self = ffi.new('godot_dictionary') - if ffi.istype(mt, value) then - api.godot_dictionary_new_copy(self, value) - else - api.godot_dictionary_new(self) - if value then - for k, v in pairs(value) do - self[k] = v - end - end - end - return self - end, - __gc = api.godot_dictionary_destroy, - __tostring = GD.tostring, - __concat = concat_gdvalues, - __index = function(self, key) - return methods[key] or methods.get(self, key) - end, - __newindex = methods.set, - __len = methods.size, - __pairs = function(self) - return methods.next, self, nil - end, -}) diff --git a/src/godot_ffi.lua b/src/godot_ffi.lua deleted file mode 100644 index 70624cf..0000000 --- a/src/godot_ffi.lua +++ /dev/null @@ -1,1347 +0,0 @@ -local ffi = require 'ffi' - -ffi.cdef[[ -// GDNative type definitions -typedef bool godot_bool; -typedef int godot_int; -typedef float godot_real; - -typedef struct godot_object { - uint8_t _dont_touch_that[0]; -} godot_object; -typedef struct godot_string { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_string; -typedef struct godot_char_string { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_char_string; -typedef struct godot_string_name { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_string_name; -typedef struct godot_node_path { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_node_path; -typedef struct godot_rid { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_rid; -typedef struct godot_dictionary { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_dictionary; -typedef struct godot_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_array; - -typedef void godot_pool_byte_array_read_access; -typedef void godot_pool_int_array_read_access; -typedef void godot_pool_real_array_read_access; -typedef void godot_pool_string_array_read_access; -typedef void godot_pool_vector2_array_read_access; -typedef void godot_pool_vector3_array_read_access; -typedef void godot_pool_color_array_read_access; -typedef void godot_pool_array_write_access; -typedef void godot_pool_byte_array_write_access; -typedef void godot_pool_int_array_write_access; -typedef void godot_pool_real_array_write_access; -typedef void godot_pool_string_array_write_access; -typedef void godot_pool_vector2_array_write_access; -typedef void godot_pool_vector3_array_write_access; -typedef void godot_pool_color_array_write_access; -typedef struct godot_pool_byte_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_byte_array; -typedef struct godot_pool_int_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_int_array; -typedef struct godot_pool_real_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_real_array; -typedef struct godot_pool_string_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_string_array; -typedef struct godot_pool_vector2_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_vector2_array; -typedef struct godot_pool_vector3_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_vector3_array; -typedef struct godot_pool_color_array { - uint8_t _dont_touch_that[sizeof(void *)]; -} godot_pool_color_array; - -typedef struct godot_variant { - uint8_t _dont_touch_that[(16 + sizeof(int64_t))]; -} godot_variant; - -// Math type definitions copied from HGDN -typedef union godot_vector2 { - float elements[2]; - // xy - struct { float x, y; }; - // rg - struct { float r, g; }; - // st - struct { float s, t; }; - // uv - struct { float u, v; }; - // Size: width/height - struct { float width, height; }; -} godot_vector2; - -typedef union godot_vector3 { - float elements[3]; - // xyz - struct { float x, y, z; }; - struct { godot_vector2 xy; float _0; }; - struct { float _1; godot_vector2 yz; }; - // rgb - struct { float r, g, b; }; - struct { godot_vector2 rg; float _2; }; - struct { float _3; godot_vector2 gb; }; - // stp - struct { float s, t, p; }; - struct { godot_vector2 st; float _6; }; - struct { float _7; godot_vector2 tp; }; - // uv - struct { float u, v, _4; }; - struct { godot_vector2 uv; float _5; }; - // 3D Size: width/height/depth - struct { float width, height, depth; }; -} godot_vector3; - -typedef union godot_vector4 { - float elements[4]; - // xyzw - struct { float x, y, z, w; }; - struct { godot_vector2 xy; godot_vector2 zw; }; - struct { godot_vector3 xyz; float _0; }; - struct { float _1; godot_vector3 yzw; }; - // rgba - struct { float r, g, b, a; }; - struct { godot_vector2 rg; godot_vector2 ba; }; - struct { godot_vector3 rgb; float _2; }; - struct { float _3; godot_vector3 gba; }; - // stpq - struct { float s, t, p, q; }; - struct { godot_vector2 st; godot_vector2 pq; }; - struct { godot_vector3 stp; float _6; }; - struct { float _7; godot_vector3 tpq; }; - // uv - struct { float u, v; float _4[2]; }; - struct { godot_vector2 uv; float _5[2]; }; -} godot_vector4; -typedef godot_vector4 godot_color; - -typedef union godot_rect2 { - float elements[4]; - struct { float x, y, width, height; }; - struct { godot_vector2 position; godot_vector2 size; }; -} godot_rect2; - -typedef union godot_plane { - float elements[4]; - struct { godot_vector3 normal; float d; }; -} godot_plane; - -typedef union godot_quat { - float elements[4]; - struct { float x, y, z, w; }; - struct { godot_vector2 xy; godot_vector2 zw; }; - struct { godot_vector3 xyz; float _0; }; - struct { float _1; godot_vector3 yzw; }; -} godot_quat; - -typedef struct godot_basis { - godot_vector3 elements[3]; -} godot_basis; - -typedef struct godot_aabb { - godot_vector3 position, size; -} godot_aabb; - -typedef struct godot_transform2d { - godot_vector2 elements[3]; -} godot_transform2d; - -typedef struct godot_transform { - godot_basis basis; - godot_vector3 origin; -} godot_transform; - -// Enums -typedef enum { - GODOT_OK, // (0) - GODOT_FAILED, ///< Generic fail error - GODOT_ERR_UNAVAILABLE, ///< What is requested is unsupported/unavailable - GODOT_ERR_UNCONFIGURED, ///< The object being used hasn't been properly set up yet - GODOT_ERR_UNAUTHORIZED, ///< Missing credentials for requested resource - GODOT_ERR_PARAMETER_RANGE_ERROR, ///< Parameter given out of range (5) - GODOT_ERR_OUT_OF_MEMORY, ///< Out of memory - GODOT_ERR_FILE_NOT_FOUND, - GODOT_ERR_FILE_BAD_DRIVE, - GODOT_ERR_FILE_BAD_PATH, - GODOT_ERR_FILE_NO_PERMISSION, // (10) - GODOT_ERR_FILE_ALREADY_IN_USE, - GODOT_ERR_FILE_CANT_OPEN, - GODOT_ERR_FILE_CANT_WRITE, - GODOT_ERR_FILE_CANT_READ, - GODOT_ERR_FILE_UNRECOGNIZED, // (15) - GODOT_ERR_FILE_CORRUPT, - GODOT_ERR_FILE_MISSING_DEPENDENCIES, - GODOT_ERR_FILE_EOF, - GODOT_ERR_CANT_OPEN, ///< Can't open a resource/socket/file - GODOT_ERR_CANT_CREATE, // (20) - GODOT_ERR_QUERY_FAILED, - GODOT_ERR_ALREADY_IN_USE, - GODOT_ERR_LOCKED, ///< resource is locked - GODOT_ERR_TIMEOUT, - GODOT_ERR_CANT_CONNECT, // (25) - GODOT_ERR_CANT_RESOLVE, - GODOT_ERR_CONNECTION_ERROR, - GODOT_ERR_CANT_ACQUIRE_RESOURCE, - GODOT_ERR_CANT_FORK, - GODOT_ERR_INVALID_DATA, ///< Data passed is invalid (30) - GODOT_ERR_INVALID_PARAMETER, ///< Parameter passed is invalid - GODOT_ERR_ALREADY_EXISTS, ///< When adding, item already exists - GODOT_ERR_DOES_NOT_EXIST, ///< When retrieving/erasing, it item does not exist - GODOT_ERR_DATABASE_CANT_READ, ///< database is full - GODOT_ERR_DATABASE_CANT_WRITE, ///< database is full (35) - GODOT_ERR_COMPILATION_FAILED, - GODOT_ERR_METHOD_NOT_FOUND, - GODOT_ERR_LINK_FAILED, - GODOT_ERR_SCRIPT_FAILED, - GODOT_ERR_CYCLIC_LINK, // (40) - GODOT_ERR_INVALID_DECLARATION, - GODOT_ERR_DUPLICATE_SYMBOL, - GODOT_ERR_PARSE_ERROR, - GODOT_ERR_BUSY, - GODOT_ERR_SKIP, // (45) - GODOT_ERR_HELP, ///< user requested help!! - GODOT_ERR_BUG, ///< a bug in the software certainly happened, due to a double check failing or unexpected behavior. - GODOT_ERR_PRINTER_ON_FIRE, /// the parallel port printer is engulfed in flames -} godot_error; - -typedef enum godot_variant_type { - GODOT_VARIANT_TYPE_NIL, - - // atomic types - GODOT_VARIANT_TYPE_BOOL, - GODOT_VARIANT_TYPE_INT, - GODOT_VARIANT_TYPE_REAL, - GODOT_VARIANT_TYPE_STRING, - - // math types - GODOT_VARIANT_TYPE_VECTOR2, // 5 - GODOT_VARIANT_TYPE_RECT2, - GODOT_VARIANT_TYPE_VECTOR3, - GODOT_VARIANT_TYPE_TRANSFORM2D, - GODOT_VARIANT_TYPE_PLANE, - GODOT_VARIANT_TYPE_QUAT, // 10 - GODOT_VARIANT_TYPE_AABB, - GODOT_VARIANT_TYPE_BASIS, - GODOT_VARIANT_TYPE_TRANSFORM, - - // misc types - GODOT_VARIANT_TYPE_COLOR, - GODOT_VARIANT_TYPE_NODE_PATH, // 15 - GODOT_VARIANT_TYPE_RID, - GODOT_VARIANT_TYPE_OBJECT, - GODOT_VARIANT_TYPE_DICTIONARY, - GODOT_VARIANT_TYPE_ARRAY, // 20 - - // arrays - GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY, - GODOT_VARIANT_TYPE_POOL_INT_ARRAY, - GODOT_VARIANT_TYPE_POOL_REAL_ARRAY, - GODOT_VARIANT_TYPE_POOL_STRING_ARRAY, - GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY, // 25 - GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY, - GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY, -} godot_variant_type; - -typedef enum godot_variant_call_error_error { - GODOT_CALL_ERROR_CALL_OK, - GODOT_CALL_ERROR_CALL_ERROR_INVALID_METHOD, - GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT, - GODOT_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS, - GODOT_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS, - GODOT_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL, -} godot_variant_call_error_error; - -typedef struct godot_variant_call_error { - godot_variant_call_error_error error; - int argument; - godot_variant_type expected; -} godot_variant_call_error; - -typedef enum godot_variant_operator { - // comparison - GODOT_VARIANT_OP_EQUAL, - GODOT_VARIANT_OP_NOT_EQUAL, - GODOT_VARIANT_OP_LESS, - GODOT_VARIANT_OP_LESS_EQUAL, - GODOT_VARIANT_OP_GREATER, - GODOT_VARIANT_OP_GREATER_EQUAL, - - // mathematic - GODOT_VARIANT_OP_ADD, - GODOT_VARIANT_OP_SUBTRACT, - GODOT_VARIANT_OP_MULTIPLY, - GODOT_VARIANT_OP_DIVIDE, - GODOT_VARIANT_OP_NEGATE, - GODOT_VARIANT_OP_POSITIVE, - GODOT_VARIANT_OP_MODULE, - GODOT_VARIANT_OP_STRING_CONCAT, - - // bitwise - GODOT_VARIANT_OP_SHIFT_LEFT, - GODOT_VARIANT_OP_SHIFT_RIGHT, - GODOT_VARIANT_OP_BIT_AND, - GODOT_VARIANT_OP_BIT_OR, - GODOT_VARIANT_OP_BIT_XOR, - GODOT_VARIANT_OP_BIT_NEGATE, - - // logic - GODOT_VARIANT_OP_AND, - GODOT_VARIANT_OP_OR, - GODOT_VARIANT_OP_XOR, - GODOT_VARIANT_OP_NOT, - - // containment - GODOT_VARIANT_OP_IN, - - GODOT_VARIANT_OP_MAX, -} godot_variant_operator; - -typedef enum { - GODOT_VECTOR3_AXIS_X, - GODOT_VECTOR3_AXIS_Y, - GODOT_VECTOR3_AXIS_Z, -} godot_vector3_axis; - -typedef enum { - GODOT_METHOD_RPC_MODE_DISABLED, - GODOT_METHOD_RPC_MODE_REMOTE, - GODOT_METHOD_RPC_MODE_MASTER, - GODOT_METHOD_RPC_MODE_PUPPET, - GODOT_METHOD_RPC_MODE_SLAVE = GODOT_METHOD_RPC_MODE_PUPPET, - GODOT_METHOD_RPC_MODE_REMOTESYNC, - GODOT_METHOD_RPC_MODE_SYNC = GODOT_METHOD_RPC_MODE_REMOTESYNC, - GODOT_METHOD_RPC_MODE_MASTERSYNC, - GODOT_METHOD_RPC_MODE_PUPPETSYNC, -} godot_method_rpc_mode; - -typedef enum { - GODOT_PROPERTY_HINT_NONE, ///< no hint provided. - GODOT_PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step,slider; //slider is optional" - GODOT_PROPERTY_HINT_EXP_RANGE, ///< hint_text = "min,max,step", exponential edit - GODOT_PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc" - GODOT_PROPERTY_HINT_EXP_EASING, /// exponential easing function (Math::ease) - GODOT_PROPERTY_HINT_LENGTH, ///< hint_text= "length" (as integer) - GODOT_PROPERTY_HINT_SPRITE_FRAME, // FIXME: Obsolete: drop whenever we can break compat - GODOT_PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer) - GODOT_PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags) - GODOT_PROPERTY_HINT_LAYERS_2D_RENDER, - GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS, - GODOT_PROPERTY_HINT_LAYERS_3D_RENDER, - GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS, - GODOT_PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc," - GODOT_PROPERTY_HINT_DIR, ///< a directory path must be passed - GODOT_PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc," - GODOT_PROPERTY_HINT_GLOBAL_DIR, ///< a directory path must be passed - GODOT_PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type - GODOT_PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines - GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT, ///< used to set a placeholder text for string properties - GODOT_PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color - GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY, - GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS, - GODOT_PROPERTY_HINT_OBJECT_ID, - GODOT_PROPERTY_HINT_TYPE_STRING, ///< a type string, the hint is the base type to choose - GODOT_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE, ///< so something else can provide this (used in scripts) - GODOT_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE, ///< a method of a type - GODOT_PROPERTY_HINT_METHOD_OF_BASE_TYPE, ///< a method of a base type - GODOT_PROPERTY_HINT_METHOD_OF_INSTANCE, ///< a method of an instance - GODOT_PROPERTY_HINT_METHOD_OF_SCRIPT, ///< a method of a script & base - GODOT_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE, ///< a property of a type - GODOT_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE, ///< a property of a base type - GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance - GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base - GODOT_PROPERTY_HINT_MAX, -} godot_property_hint; - -typedef enum { - GODOT_PROPERTY_USAGE_STORAGE = 1, - GODOT_PROPERTY_USAGE_EDITOR = 2, - GODOT_PROPERTY_USAGE_NETWORK = 4, - GODOT_PROPERTY_USAGE_EDITOR_HELPER = 8, - GODOT_PROPERTY_USAGE_CHECKABLE = 16, //used for editing global variables - GODOT_PROPERTY_USAGE_CHECKED = 32, //used for editing global variables - GODOT_PROPERTY_USAGE_INTERNATIONALIZED = 64, //hint for internationalized strings - GODOT_PROPERTY_USAGE_GROUP = 128, //used for grouping props in the editor - GODOT_PROPERTY_USAGE_CATEGORY = 256, - GODOT_PROPERTY_USAGE_STORE_IF_NONZERO = 512, // FIXME: Obsolete: drop whenever we can break compat - GODOT_PROPERTY_USAGE_STORE_IF_NONONE = 1024, // FIXME: Obsolete: drop whenever we can break compat - GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048, - GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096, - GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192, - GODOT_PROPERTY_USAGE_STORE_IF_NULL = 16384, - GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER = 32768, - GODOT_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 65536, - - GODOT_PROPERTY_USAGE_DEFAULT = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK, - GODOT_PROPERTY_USAGE_DEFAULT_INTL = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK | GODOT_PROPERTY_USAGE_INTERNATIONALIZED, - GODOT_PROPERTY_USAGE_NOEDITOR = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_NETWORK, -} godot_property_usage_flags; - -// Core API -typedef struct godot_method_bind { - uint8_t _dont_touch_that[1]; -} godot_method_bind; - -typedef struct godot_gdnative_api_version { - unsigned int major; - unsigned int minor; -} godot_gdnative_api_version; - -typedef struct godot_gdnative_api_struct godot_gdnative_api_struct; - -struct godot_gdnative_api_struct { - unsigned int type; - godot_gdnative_api_version version; - const godot_gdnative_api_struct *next; -}; - -typedef godot_object *(*godot_class_constructor)(); - -typedef godot_variant (*native_call_cb)(void *, godot_array *); - -typedef struct godot_gdnative_core_api_struct { - unsigned int type; - godot_gdnative_api_version version; - const godot_gdnative_api_struct *next; - unsigned int num_extensions; - const godot_gdnative_api_struct **extensions; - void (*godot_color_new_rgba)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b, const godot_real p_a); - void (*godot_color_new_rgb)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b); - godot_real (*godot_color_get_r)(const godot_color *p_self); - void (*godot_color_set_r)(godot_color *p_self, const godot_real r); - godot_real (*godot_color_get_g)(const godot_color *p_self); - void (*godot_color_set_g)(godot_color *p_self, const godot_real g); - godot_real (*godot_color_get_b)(const godot_color *p_self); - void (*godot_color_set_b)(godot_color *p_self, const godot_real b); - godot_real (*godot_color_get_a)(const godot_color *p_self); - void (*godot_color_set_a)(godot_color *p_self, const godot_real a); - godot_real (*godot_color_get_h)(const godot_color *p_self); - godot_real (*godot_color_get_s)(const godot_color *p_self); - godot_real (*godot_color_get_v)(const godot_color *p_self); - godot_string (*godot_color_as_string)(const godot_color *p_self); - godot_int (*godot_color_to_rgba32)(const godot_color *p_self); - godot_int (*godot_color_to_argb32)(const godot_color *p_self); - godot_real (*godot_color_gray)(const godot_color *p_self); - godot_color (*godot_color_inverted)(const godot_color *p_self); - godot_color (*godot_color_contrasted)(const godot_color *p_self); - godot_color (*godot_color_linear_interpolate)(const godot_color *p_self, const godot_color *p_b, const godot_real p_t); - godot_color (*godot_color_blend)(const godot_color *p_self, const godot_color *p_over); - godot_string (*godot_color_to_html)(const godot_color *p_self, const godot_bool p_with_alpha); - godot_bool (*godot_color_operator_equal)(const godot_color *p_self, const godot_color *p_b); - godot_bool (*godot_color_operator_less)(const godot_color *p_self, const godot_color *p_b); - void (*godot_vector2_new)(godot_vector2 *r_dest, const godot_real p_x, const godot_real p_y); - godot_string (*godot_vector2_as_string)(const godot_vector2 *p_self); - godot_vector2 (*godot_vector2_normalized)(const godot_vector2 *p_self); - godot_real (*godot_vector2_length)(const godot_vector2 *p_self); - godot_real (*godot_vector2_angle)(const godot_vector2 *p_self); - godot_real (*godot_vector2_length_squared)(const godot_vector2 *p_self); - godot_bool (*godot_vector2_is_normalized)(const godot_vector2 *p_self); - godot_real (*godot_vector2_distance_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); - godot_real (*godot_vector2_distance_squared_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); - godot_real (*godot_vector2_angle_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); - godot_real (*godot_vector2_angle_to_point)(const godot_vector2 *p_self, const godot_vector2 *p_to); - godot_vector2 (*godot_vector2_linear_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_real p_t); - godot_vector2 (*godot_vector2_cubic_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t); - godot_vector2 (*godot_vector2_rotated)(const godot_vector2 *p_self, const godot_real p_phi); - godot_vector2 (*godot_vector2_tangent)(const godot_vector2 *p_self); - godot_vector2 (*godot_vector2_floor)(const godot_vector2 *p_self); - godot_vector2 (*godot_vector2_snapped)(const godot_vector2 *p_self, const godot_vector2 *p_by); - godot_real (*godot_vector2_aspect)(const godot_vector2 *p_self); - godot_real (*godot_vector2_dot)(const godot_vector2 *p_self, const godot_vector2 *p_with); - godot_vector2 (*godot_vector2_slide)(const godot_vector2 *p_self, const godot_vector2 *p_n); - godot_vector2 (*godot_vector2_bounce)(const godot_vector2 *p_self, const godot_vector2 *p_n); - godot_vector2 (*godot_vector2_reflect)(const godot_vector2 *p_self, const godot_vector2 *p_n); - godot_vector2 (*godot_vector2_abs)(const godot_vector2 *p_self); - godot_vector2 (*godot_vector2_clamped)(const godot_vector2 *p_self, const godot_real p_length); - godot_vector2 (*godot_vector2_operator_add)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_vector2 (*godot_vector2_operator_subtract)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_vector2 (*godot_vector2_operator_multiply_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_vector2 (*godot_vector2_operator_multiply_scalar)(const godot_vector2 *p_self, const godot_real p_b); - godot_vector2 (*godot_vector2_operator_divide_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_vector2 (*godot_vector2_operator_divide_scalar)(const godot_vector2 *p_self, const godot_real p_b); - godot_bool (*godot_vector2_operator_equal)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_bool (*godot_vector2_operator_less)(const godot_vector2 *p_self, const godot_vector2 *p_b); - godot_vector2 (*godot_vector2_operator_neg)(const godot_vector2 *p_self); - void (*godot_vector2_set_x)(godot_vector2 *p_self, const godot_real p_x); - void (*godot_vector2_set_y)(godot_vector2 *p_self, const godot_real p_y); - godot_real (*godot_vector2_get_x)(const godot_vector2 *p_self); - godot_real (*godot_vector2_get_y)(const godot_vector2 *p_self); - void (*godot_quat_new)(godot_quat *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z, const godot_real p_w); - void (*godot_quat_new_with_axis_angle)(godot_quat *r_dest, const godot_vector3 *p_axis, const godot_real p_angle); - godot_real (*godot_quat_get_x)(const godot_quat *p_self); - void (*godot_quat_set_x)(godot_quat *p_self, const godot_real val); - godot_real (*godot_quat_get_y)(const godot_quat *p_self); - void (*godot_quat_set_y)(godot_quat *p_self, const godot_real val); - godot_real (*godot_quat_get_z)(const godot_quat *p_self); - void (*godot_quat_set_z)(godot_quat *p_self, const godot_real val); - godot_real (*godot_quat_get_w)(const godot_quat *p_self); - void (*godot_quat_set_w)(godot_quat *p_self, const godot_real val); - godot_string (*godot_quat_as_string)(const godot_quat *p_self); - godot_real (*godot_quat_length)(const godot_quat *p_self); - godot_real (*godot_quat_length_squared)(const godot_quat *p_self); - godot_quat (*godot_quat_normalized)(const godot_quat *p_self); - godot_bool (*godot_quat_is_normalized)(const godot_quat *p_self); - godot_quat (*godot_quat_inverse)(const godot_quat *p_self); - godot_real (*godot_quat_dot)(const godot_quat *p_self, const godot_quat *p_b); - godot_vector3 (*godot_quat_xform)(const godot_quat *p_self, const godot_vector3 *p_v); - godot_quat (*godot_quat_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t); - godot_quat (*godot_quat_slerpni)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t); - godot_quat (*godot_quat_cubic_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_quat *p_pre_a, const godot_quat *p_post_b, const godot_real p_t); - godot_quat (*godot_quat_operator_multiply)(const godot_quat *p_self, const godot_real p_b); - godot_quat (*godot_quat_operator_add)(const godot_quat *p_self, const godot_quat *p_b); - godot_quat (*godot_quat_operator_subtract)(const godot_quat *p_self, const godot_quat *p_b); - godot_quat (*godot_quat_operator_divide)(const godot_quat *p_self, const godot_real p_b); - godot_bool (*godot_quat_operator_equal)(const godot_quat *p_self, const godot_quat *p_b); - godot_quat (*godot_quat_operator_neg)(const godot_quat *p_self); - void (*godot_basis_new_with_rows)(godot_basis *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis); - void (*godot_basis_new_with_axis_and_angle)(godot_basis *r_dest, const godot_vector3 *p_axis, const godot_real p_phi); - void (*godot_basis_new_with_euler)(godot_basis *r_dest, const godot_vector3 *p_euler); - godot_string (*godot_basis_as_string)(const godot_basis *p_self); - godot_basis (*godot_basis_inverse)(const godot_basis *p_self); - godot_basis (*godot_basis_transposed)(const godot_basis *p_self); - godot_basis (*godot_basis_orthonormalized)(const godot_basis *p_self); - godot_real (*godot_basis_determinant)(const godot_basis *p_self); - godot_basis (*godot_basis_rotated)(const godot_basis *p_self, const godot_vector3 *p_axis, const godot_real p_phi); - godot_basis (*godot_basis_scaled)(const godot_basis *p_self, const godot_vector3 *p_scale); - godot_vector3 (*godot_basis_get_scale)(const godot_basis *p_self); - godot_vector3 (*godot_basis_get_euler)(const godot_basis *p_self); - godot_real (*godot_basis_tdotx)(const godot_basis *p_self, const godot_vector3 *p_with); - godot_real (*godot_basis_tdoty)(const godot_basis *p_self, const godot_vector3 *p_with); - godot_real (*godot_basis_tdotz)(const godot_basis *p_self, const godot_vector3 *p_with); - godot_vector3 (*godot_basis_xform)(const godot_basis *p_self, const godot_vector3 *p_v); - godot_vector3 (*godot_basis_xform_inv)(const godot_basis *p_self, const godot_vector3 *p_v); - godot_int (*godot_basis_get_orthogonal_index)(const godot_basis *p_self); - void (*godot_basis_new)(godot_basis *r_dest); - void (*godot_basis_new_with_euler_quat)(godot_basis *r_dest, const godot_quat *p_euler); - void (*godot_basis_get_elements)(const godot_basis *p_self, godot_vector3 *p_elements); - godot_vector3 (*godot_basis_get_axis)(const godot_basis *p_self, const godot_int p_axis); - void (*godot_basis_set_axis)(godot_basis *p_self, const godot_int p_axis, const godot_vector3 *p_value); - godot_vector3 (*godot_basis_get_row)(const godot_basis *p_self, const godot_int p_row); - void (*godot_basis_set_row)(godot_basis *p_self, const godot_int p_row, const godot_vector3 *p_value); - godot_bool (*godot_basis_operator_equal)(const godot_basis *p_self, const godot_basis *p_b); - godot_basis (*godot_basis_operator_add)(const godot_basis *p_self, const godot_basis *p_b); - godot_basis (*godot_basis_operator_subtract)(const godot_basis *p_self, const godot_basis *p_b); - godot_basis (*godot_basis_operator_multiply_vector)(const godot_basis *p_self, const godot_basis *p_b); - godot_basis (*godot_basis_operator_multiply_scalar)(const godot_basis *p_self, const godot_real p_b); - void (*godot_vector3_new)(godot_vector3 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z); - godot_string (*godot_vector3_as_string)(const godot_vector3 *p_self); - godot_int (*godot_vector3_min_axis)(const godot_vector3 *p_self); - godot_int (*godot_vector3_max_axis)(const godot_vector3 *p_self); - godot_real (*godot_vector3_length)(const godot_vector3 *p_self); - godot_real (*godot_vector3_length_squared)(const godot_vector3 *p_self); - godot_bool (*godot_vector3_is_normalized)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_normalized)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_inverse)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_snapped)(const godot_vector3 *p_self, const godot_vector3 *p_by); - godot_vector3 (*godot_vector3_rotated)(const godot_vector3 *p_self, const godot_vector3 *p_axis, const godot_real p_phi); - godot_vector3 (*godot_vector3_linear_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_real p_t); - godot_vector3 (*godot_vector3_cubic_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t); - godot_real (*godot_vector3_dot)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_cross)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_basis (*godot_vector3_outer)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_basis (*godot_vector3_to_diagonal_matrix)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_abs)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_floor)(const godot_vector3 *p_self); - godot_vector3 (*godot_vector3_ceil)(const godot_vector3 *p_self); - godot_real (*godot_vector3_distance_to)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_real (*godot_vector3_distance_squared_to)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_real (*godot_vector3_angle_to)(const godot_vector3 *p_self, const godot_vector3 *p_to); - godot_vector3 (*godot_vector3_slide)(const godot_vector3 *p_self, const godot_vector3 *p_n); - godot_vector3 (*godot_vector3_bounce)(const godot_vector3 *p_self, const godot_vector3 *p_n); - godot_vector3 (*godot_vector3_reflect)(const godot_vector3 *p_self, const godot_vector3 *p_n); - godot_vector3 (*godot_vector3_operator_add)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_operator_subtract)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_operator_multiply_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_operator_multiply_scalar)(const godot_vector3 *p_self, const godot_real p_b); - godot_vector3 (*godot_vector3_operator_divide_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_operator_divide_scalar)(const godot_vector3 *p_self, const godot_real p_b); - godot_bool (*godot_vector3_operator_equal)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_bool (*godot_vector3_operator_less)(const godot_vector3 *p_self, const godot_vector3 *p_b); - godot_vector3 (*godot_vector3_operator_neg)(const godot_vector3 *p_self); - void (*godot_vector3_set_axis)(godot_vector3 *p_self, const godot_vector3_axis p_axis, const godot_real p_val); - godot_real (*godot_vector3_get_axis)(const godot_vector3 *p_self, const godot_vector3_axis p_axis); - void (*godot_pool_byte_array_new)(godot_pool_byte_array *r_dest); - void (*godot_pool_byte_array_new_copy)(godot_pool_byte_array *r_dest, const godot_pool_byte_array *p_src); - void (*godot_pool_byte_array_new_with_array)(godot_pool_byte_array *r_dest, const godot_array *p_a); - void (*godot_pool_byte_array_append)(godot_pool_byte_array *p_self, const uint8_t p_data); - void (*godot_pool_byte_array_append_array)(godot_pool_byte_array *p_self, const godot_pool_byte_array *p_array); - godot_error (*godot_pool_byte_array_insert)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data); - void (*godot_pool_byte_array_invert)(godot_pool_byte_array *p_self); - void (*godot_pool_byte_array_push_back)(godot_pool_byte_array *p_self, const uint8_t p_data); - void (*godot_pool_byte_array_remove)(godot_pool_byte_array *p_self, const godot_int p_idx); - void (*godot_pool_byte_array_resize)(godot_pool_byte_array *p_self, const godot_int p_size); - godot_pool_byte_array_read_access *(*godot_pool_byte_array_read)(const godot_pool_byte_array *p_self); - godot_pool_byte_array_write_access *(*godot_pool_byte_array_write)(godot_pool_byte_array *p_self); - void (*godot_pool_byte_array_set)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data); - uint8_t (*godot_pool_byte_array_get)(const godot_pool_byte_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_byte_array_size)(const godot_pool_byte_array *p_self); - void (*godot_pool_byte_array_destroy)(godot_pool_byte_array *p_self); - void (*godot_pool_int_array_new)(godot_pool_int_array *r_dest); - void (*godot_pool_int_array_new_copy)(godot_pool_int_array *r_dest, const godot_pool_int_array *p_src); - void (*godot_pool_int_array_new_with_array)(godot_pool_int_array *r_dest, const godot_array *p_a); - void (*godot_pool_int_array_append)(godot_pool_int_array *p_self, const godot_int p_data); - void (*godot_pool_int_array_append_array)(godot_pool_int_array *p_self, const godot_pool_int_array *p_array); - godot_error (*godot_pool_int_array_insert)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data); - void (*godot_pool_int_array_invert)(godot_pool_int_array *p_self); - void (*godot_pool_int_array_push_back)(godot_pool_int_array *p_self, const godot_int p_data); - void (*godot_pool_int_array_remove)(godot_pool_int_array *p_self, const godot_int p_idx); - void (*godot_pool_int_array_resize)(godot_pool_int_array *p_self, const godot_int p_size); - godot_pool_int_array_read_access *(*godot_pool_int_array_read)(const godot_pool_int_array *p_self); - godot_pool_int_array_write_access *(*godot_pool_int_array_write)(godot_pool_int_array *p_self); - void (*godot_pool_int_array_set)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data); - godot_int (*godot_pool_int_array_get)(const godot_pool_int_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_int_array_size)(const godot_pool_int_array *p_self); - void (*godot_pool_int_array_destroy)(godot_pool_int_array *p_self); - void (*godot_pool_real_array_new)(godot_pool_real_array *r_dest); - void (*godot_pool_real_array_new_copy)(godot_pool_real_array *r_dest, const godot_pool_real_array *p_src); - void (*godot_pool_real_array_new_with_array)(godot_pool_real_array *r_dest, const godot_array *p_a); - void (*godot_pool_real_array_append)(godot_pool_real_array *p_self, const godot_real p_data); - void (*godot_pool_real_array_append_array)(godot_pool_real_array *p_self, const godot_pool_real_array *p_array); - godot_error (*godot_pool_real_array_insert)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data); - void (*godot_pool_real_array_invert)(godot_pool_real_array *p_self); - void (*godot_pool_real_array_push_back)(godot_pool_real_array *p_self, const godot_real p_data); - void (*godot_pool_real_array_remove)(godot_pool_real_array *p_self, const godot_int p_idx); - void (*godot_pool_real_array_resize)(godot_pool_real_array *p_self, const godot_int p_size); - godot_pool_real_array_read_access *(*godot_pool_real_array_read)(const godot_pool_real_array *p_self); - godot_pool_real_array_write_access *(*godot_pool_real_array_write)(godot_pool_real_array *p_self); - void (*godot_pool_real_array_set)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data); - godot_real (*godot_pool_real_array_get)(const godot_pool_real_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_real_array_size)(const godot_pool_real_array *p_self); - void (*godot_pool_real_array_destroy)(godot_pool_real_array *p_self); - void (*godot_pool_string_array_new)(godot_pool_string_array *r_dest); - void (*godot_pool_string_array_new_copy)(godot_pool_string_array *r_dest, const godot_pool_string_array *p_src); - void (*godot_pool_string_array_new_with_array)(godot_pool_string_array *r_dest, const godot_array *p_a); - void (*godot_pool_string_array_append)(godot_pool_string_array *p_self, const godot_string *p_data); - void (*godot_pool_string_array_append_array)(godot_pool_string_array *p_self, const godot_pool_string_array *p_array); - godot_error (*godot_pool_string_array_insert)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data); - void (*godot_pool_string_array_invert)(godot_pool_string_array *p_self); - void (*godot_pool_string_array_push_back)(godot_pool_string_array *p_self, const godot_string *p_data); - void (*godot_pool_string_array_remove)(godot_pool_string_array *p_self, const godot_int p_idx); - void (*godot_pool_string_array_resize)(godot_pool_string_array *p_self, const godot_int p_size); - godot_pool_string_array_read_access *(*godot_pool_string_array_read)(const godot_pool_string_array *p_self); - godot_pool_string_array_write_access *(*godot_pool_string_array_write)(godot_pool_string_array *p_self); - void (*godot_pool_string_array_set)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data); - godot_string (*godot_pool_string_array_get)(const godot_pool_string_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_string_array_size)(const godot_pool_string_array *p_self); - void (*godot_pool_string_array_destroy)(godot_pool_string_array *p_self); - void (*godot_pool_vector2_array_new)(godot_pool_vector2_array *r_dest); - void (*godot_pool_vector2_array_new_copy)(godot_pool_vector2_array *r_dest, const godot_pool_vector2_array *p_src); - void (*godot_pool_vector2_array_new_with_array)(godot_pool_vector2_array *r_dest, const godot_array *p_a); - void (*godot_pool_vector2_array_append)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data); - void (*godot_pool_vector2_array_append_array)(godot_pool_vector2_array *p_self, const godot_pool_vector2_array *p_array); - godot_error (*godot_pool_vector2_array_insert)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data); - void (*godot_pool_vector2_array_invert)(godot_pool_vector2_array *p_self); - void (*godot_pool_vector2_array_push_back)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data); - void (*godot_pool_vector2_array_remove)(godot_pool_vector2_array *p_self, const godot_int p_idx); - void (*godot_pool_vector2_array_resize)(godot_pool_vector2_array *p_self, const godot_int p_size); - godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read)(const godot_pool_vector2_array *p_self); - godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write)(godot_pool_vector2_array *p_self); - void (*godot_pool_vector2_array_set)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data); - godot_vector2 (*godot_pool_vector2_array_get)(const godot_pool_vector2_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_vector2_array_size)(const godot_pool_vector2_array *p_self); - void (*godot_pool_vector2_array_destroy)(godot_pool_vector2_array *p_self); - void (*godot_pool_vector3_array_new)(godot_pool_vector3_array *r_dest); - void (*godot_pool_vector3_array_new_copy)(godot_pool_vector3_array *r_dest, const godot_pool_vector3_array *p_src); - void (*godot_pool_vector3_array_new_with_array)(godot_pool_vector3_array *r_dest, const godot_array *p_a); - void (*godot_pool_vector3_array_append)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data); - void (*godot_pool_vector3_array_append_array)(godot_pool_vector3_array *p_self, const godot_pool_vector3_array *p_array); - godot_error (*godot_pool_vector3_array_insert)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data); - void (*godot_pool_vector3_array_invert)(godot_pool_vector3_array *p_self); - void (*godot_pool_vector3_array_push_back)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data); - void (*godot_pool_vector3_array_remove)(godot_pool_vector3_array *p_self, const godot_int p_idx); - void (*godot_pool_vector3_array_resize)(godot_pool_vector3_array *p_self, const godot_int p_size); - godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read)(const godot_pool_vector3_array *p_self); - godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write)(godot_pool_vector3_array *p_self); - void (*godot_pool_vector3_array_set)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data); - godot_vector3 (*godot_pool_vector3_array_get)(const godot_pool_vector3_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_vector3_array_size)(const godot_pool_vector3_array *p_self); - void (*godot_pool_vector3_array_destroy)(godot_pool_vector3_array *p_self); - void (*godot_pool_color_array_new)(godot_pool_color_array *r_dest); - void (*godot_pool_color_array_new_copy)(godot_pool_color_array *r_dest, const godot_pool_color_array *p_src); - void (*godot_pool_color_array_new_with_array)(godot_pool_color_array *r_dest, const godot_array *p_a); - void (*godot_pool_color_array_append)(godot_pool_color_array *p_self, const godot_color *p_data); - void (*godot_pool_color_array_append_array)(godot_pool_color_array *p_self, const godot_pool_color_array *p_array); - godot_error (*godot_pool_color_array_insert)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data); - void (*godot_pool_color_array_invert)(godot_pool_color_array *p_self); - void (*godot_pool_color_array_push_back)(godot_pool_color_array *p_self, const godot_color *p_data); - void (*godot_pool_color_array_remove)(godot_pool_color_array *p_self, const godot_int p_idx); - void (*godot_pool_color_array_resize)(godot_pool_color_array *p_self, const godot_int p_size); - godot_pool_color_array_read_access *(*godot_pool_color_array_read)(const godot_pool_color_array *p_self); - godot_pool_color_array_write_access *(*godot_pool_color_array_write)(godot_pool_color_array *p_self); - void (*godot_pool_color_array_set)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data); - godot_color (*godot_pool_color_array_get)(const godot_pool_color_array *p_self, const godot_int p_idx); - godot_int (*godot_pool_color_array_size)(const godot_pool_color_array *p_self); - void (*godot_pool_color_array_destroy)(godot_pool_color_array *p_self); - godot_pool_byte_array_read_access *(*godot_pool_byte_array_read_access_copy)(const godot_pool_byte_array_read_access *p_read); - const uint8_t *(*godot_pool_byte_array_read_access_ptr)(const godot_pool_byte_array_read_access *p_read); - void (*godot_pool_byte_array_read_access_operator_assign)(godot_pool_byte_array_read_access *p_read, godot_pool_byte_array_read_access *p_other); - void (*godot_pool_byte_array_read_access_destroy)(godot_pool_byte_array_read_access *p_read); - godot_pool_int_array_read_access *(*godot_pool_int_array_read_access_copy)(const godot_pool_int_array_read_access *p_read); - const godot_int *(*godot_pool_int_array_read_access_ptr)(const godot_pool_int_array_read_access *p_read); - void (*godot_pool_int_array_read_access_operator_assign)(godot_pool_int_array_read_access *p_read, godot_pool_int_array_read_access *p_other); - void (*godot_pool_int_array_read_access_destroy)(godot_pool_int_array_read_access *p_read); - godot_pool_real_array_read_access *(*godot_pool_real_array_read_access_copy)(const godot_pool_real_array_read_access *p_read); - const godot_real *(*godot_pool_real_array_read_access_ptr)(const godot_pool_real_array_read_access *p_read); - void (*godot_pool_real_array_read_access_operator_assign)(godot_pool_real_array_read_access *p_read, godot_pool_real_array_read_access *p_other); - void (*godot_pool_real_array_read_access_destroy)(godot_pool_real_array_read_access *p_read); - godot_pool_string_array_read_access *(*godot_pool_string_array_read_access_copy)(const godot_pool_string_array_read_access *p_read); - const godot_string *(*godot_pool_string_array_read_access_ptr)(const godot_pool_string_array_read_access *p_read); - void (*godot_pool_string_array_read_access_operator_assign)(godot_pool_string_array_read_access *p_read, godot_pool_string_array_read_access *p_other); - void (*godot_pool_string_array_read_access_destroy)(godot_pool_string_array_read_access *p_read); - godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read_access_copy)(const godot_pool_vector2_array_read_access *p_read); - const godot_vector2 *(*godot_pool_vector2_array_read_access_ptr)(const godot_pool_vector2_array_read_access *p_read); - void (*godot_pool_vector2_array_read_access_operator_assign)(godot_pool_vector2_array_read_access *p_read, godot_pool_vector2_array_read_access *p_other); - void (*godot_pool_vector2_array_read_access_destroy)(godot_pool_vector2_array_read_access *p_read); - godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read_access_copy)(const godot_pool_vector3_array_read_access *p_read); - const godot_vector3 *(*godot_pool_vector3_array_read_access_ptr)(const godot_pool_vector3_array_read_access *p_read); - void (*godot_pool_vector3_array_read_access_operator_assign)(godot_pool_vector3_array_read_access *p_read, godot_pool_vector3_array_read_access *p_other); - void (*godot_pool_vector3_array_read_access_destroy)(godot_pool_vector3_array_read_access *p_read); - godot_pool_color_array_read_access *(*godot_pool_color_array_read_access_copy)(const godot_pool_color_array_read_access *p_read); - const godot_color *(*godot_pool_color_array_read_access_ptr)(const godot_pool_color_array_read_access *p_read); - void (*godot_pool_color_array_read_access_operator_assign)(godot_pool_color_array_read_access *p_read, godot_pool_color_array_read_access *p_other); - void (*godot_pool_color_array_read_access_destroy)(godot_pool_color_array_read_access *p_read); - godot_pool_byte_array_write_access *(*godot_pool_byte_array_write_access_copy)(const godot_pool_byte_array_write_access *p_write); - uint8_t *(*godot_pool_byte_array_write_access_ptr)(const godot_pool_byte_array_write_access *p_write); - void (*godot_pool_byte_array_write_access_operator_assign)(godot_pool_byte_array_write_access *p_write, godot_pool_byte_array_write_access *p_other); - void (*godot_pool_byte_array_write_access_destroy)(godot_pool_byte_array_write_access *p_write); - godot_pool_int_array_write_access *(*godot_pool_int_array_write_access_copy)(const godot_pool_int_array_write_access *p_write); - godot_int *(*godot_pool_int_array_write_access_ptr)(const godot_pool_int_array_write_access *p_write); - void (*godot_pool_int_array_write_access_operator_assign)(godot_pool_int_array_write_access *p_write, godot_pool_int_array_write_access *p_other); - void (*godot_pool_int_array_write_access_destroy)(godot_pool_int_array_write_access *p_write); - godot_pool_real_array_write_access *(*godot_pool_real_array_write_access_copy)(const godot_pool_real_array_write_access *p_write); - godot_real *(*godot_pool_real_array_write_access_ptr)(const godot_pool_real_array_write_access *p_write); - void (*godot_pool_real_array_write_access_operator_assign)(godot_pool_real_array_write_access *p_write, godot_pool_real_array_write_access *p_other); - void (*godot_pool_real_array_write_access_destroy)(godot_pool_real_array_write_access *p_write); - godot_pool_string_array_write_access *(*godot_pool_string_array_write_access_copy)(const godot_pool_string_array_write_access *p_write); - godot_string *(*godot_pool_string_array_write_access_ptr)(const godot_pool_string_array_write_access *p_write); - void (*godot_pool_string_array_write_access_operator_assign)(godot_pool_string_array_write_access *p_write, godot_pool_string_array_write_access *p_other); - void (*godot_pool_string_array_write_access_destroy)(godot_pool_string_array_write_access *p_write); - godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write_access_copy)(const godot_pool_vector2_array_write_access *p_write); - godot_vector2 *(*godot_pool_vector2_array_write_access_ptr)(const godot_pool_vector2_array_write_access *p_write); - void (*godot_pool_vector2_array_write_access_operator_assign)(godot_pool_vector2_array_write_access *p_write, godot_pool_vector2_array_write_access *p_other); - void (*godot_pool_vector2_array_write_access_destroy)(godot_pool_vector2_array_write_access *p_write); - godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write_access_copy)(const godot_pool_vector3_array_write_access *p_write); - godot_vector3 *(*godot_pool_vector3_array_write_access_ptr)(const godot_pool_vector3_array_write_access *p_write); - void (*godot_pool_vector3_array_write_access_operator_assign)(godot_pool_vector3_array_write_access *p_write, godot_pool_vector3_array_write_access *p_other); - void (*godot_pool_vector3_array_write_access_destroy)(godot_pool_vector3_array_write_access *p_write); - godot_pool_color_array_write_access *(*godot_pool_color_array_write_access_copy)(const godot_pool_color_array_write_access *p_write); - godot_color *(*godot_pool_color_array_write_access_ptr)(const godot_pool_color_array_write_access *p_write); - void (*godot_pool_color_array_write_access_operator_assign)(godot_pool_color_array_write_access *p_write, godot_pool_color_array_write_access *p_other); - void (*godot_pool_color_array_write_access_destroy)(godot_pool_color_array_write_access *p_write); - void (*godot_array_new)(godot_array *r_dest); - void (*godot_array_new_copy)(godot_array *r_dest, const godot_array *p_src); - void (*godot_array_new_pool_color_array)(godot_array *r_dest, const godot_pool_color_array *p_pca); - void (*godot_array_new_pool_vector3_array)(godot_array *r_dest, const godot_pool_vector3_array *p_pv3a); - void (*godot_array_new_pool_vector2_array)(godot_array *r_dest, const godot_pool_vector2_array *p_pv2a); - void (*godot_array_new_pool_string_array)(godot_array *r_dest, const godot_pool_string_array *p_psa); - void (*godot_array_new_pool_real_array)(godot_array *r_dest, const godot_pool_real_array *p_pra); - void (*godot_array_new_pool_int_array)(godot_array *r_dest, const godot_pool_int_array *p_pia); - void (*godot_array_new_pool_byte_array)(godot_array *r_dest, const godot_pool_byte_array *p_pba); - void (*godot_array_set)(godot_array *p_self, const godot_int p_idx, const godot_variant *p_value); - godot_variant (*godot_array_get)(const godot_array *p_self, const godot_int p_idx); - godot_variant *(*godot_array_operator_index)(godot_array *p_self, const godot_int p_idx); - const godot_variant *(*godot_array_operator_index_const)(const godot_array *p_self, const godot_int p_idx); - void (*godot_array_append)(godot_array *p_self, const godot_variant *p_value); - void (*godot_array_clear)(godot_array *p_self); - godot_int (*godot_array_count)(const godot_array *p_self, const godot_variant *p_value); - godot_bool (*godot_array_empty)(const godot_array *p_self); - void (*godot_array_erase)(godot_array *p_self, const godot_variant *p_value); - godot_variant (*godot_array_front)(const godot_array *p_self); - godot_variant (*godot_array_back)(const godot_array *p_self); - godot_int (*godot_array_find)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from); - godot_int (*godot_array_find_last)(const godot_array *p_self, const godot_variant *p_what); - godot_bool (*godot_array_has)(const godot_array *p_self, const godot_variant *p_value); - godot_int (*godot_array_hash)(const godot_array *p_self); - void (*godot_array_insert)(godot_array *p_self, const godot_int p_pos, const godot_variant *p_value); - void (*godot_array_invert)(godot_array *p_self); - godot_variant (*godot_array_pop_back)(godot_array *p_self); - godot_variant (*godot_array_pop_front)(godot_array *p_self); - void (*godot_array_push_back)(godot_array *p_self, const godot_variant *p_value); - void (*godot_array_push_front)(godot_array *p_self, const godot_variant *p_value); - void (*godot_array_remove)(godot_array *p_self, const godot_int p_idx); - void (*godot_array_resize)(godot_array *p_self, const godot_int p_size); - godot_int (*godot_array_rfind)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from); - godot_int (*godot_array_size)(const godot_array *p_self); - void (*godot_array_sort)(godot_array *p_self); - void (*godot_array_sort_custom)(godot_array *p_self, godot_object *p_obj, const godot_string *p_func); - godot_int (*godot_array_bsearch)(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before); - godot_int (*godot_array_bsearch_custom)(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before); - void (*godot_array_destroy)(godot_array *p_self); - void (*godot_dictionary_new)(godot_dictionary *r_dest); - void (*godot_dictionary_new_copy)(godot_dictionary *r_dest, const godot_dictionary *p_src); - void (*godot_dictionary_destroy)(godot_dictionary *p_self); - godot_int (*godot_dictionary_size)(const godot_dictionary *p_self); - godot_bool (*godot_dictionary_empty)(const godot_dictionary *p_self); - void (*godot_dictionary_clear)(godot_dictionary *p_self); - godot_bool (*godot_dictionary_has)(const godot_dictionary *p_self, const godot_variant *p_key); - godot_bool (*godot_dictionary_has_all)(const godot_dictionary *p_self, const godot_array *p_keys); - void (*godot_dictionary_erase)(godot_dictionary *p_self, const godot_variant *p_key); - godot_int (*godot_dictionary_hash)(const godot_dictionary *p_self); - godot_array (*godot_dictionary_keys)(const godot_dictionary *p_self); - godot_array (*godot_dictionary_values)(const godot_dictionary *p_self); - godot_variant (*godot_dictionary_get)(const godot_dictionary *p_self, const godot_variant *p_key); - void (*godot_dictionary_set)(godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_value); - godot_variant *(*godot_dictionary_operator_index)(godot_dictionary *p_self, const godot_variant *p_key); - const godot_variant *(*godot_dictionary_operator_index_const)(const godot_dictionary *p_self, const godot_variant *p_key); - godot_variant *(*godot_dictionary_next)(const godot_dictionary *p_self, const godot_variant *p_key); - godot_bool (*godot_dictionary_operator_equal)(const godot_dictionary *p_self, const godot_dictionary *p_b); - godot_string (*godot_dictionary_to_json)(const godot_dictionary *p_self); - void (*godot_node_path_new)(godot_node_path *r_dest, const godot_string *p_from); - void (*godot_node_path_new_copy)(godot_node_path *r_dest, const godot_node_path *p_src); - void (*godot_node_path_destroy)(godot_node_path *p_self); - godot_string (*godot_node_path_as_string)(const godot_node_path *p_self); - godot_bool (*godot_node_path_is_absolute)(const godot_node_path *p_self); - godot_int (*godot_node_path_get_name_count)(const godot_node_path *p_self); - godot_string (*godot_node_path_get_name)(const godot_node_path *p_self, const godot_int p_idx); - godot_int (*godot_node_path_get_subname_count)(const godot_node_path *p_self); - godot_string (*godot_node_path_get_subname)(const godot_node_path *p_self, const godot_int p_idx); - godot_string (*godot_node_path_get_concatenated_subnames)(const godot_node_path *p_self); - godot_bool (*godot_node_path_is_empty)(const godot_node_path *p_self); - godot_bool (*godot_node_path_operator_equal)(const godot_node_path *p_self, const godot_node_path *p_b); - void (*godot_plane_new_with_reals)(godot_plane *r_dest, const godot_real p_a, const godot_real p_b, const godot_real p_c, const godot_real p_d); - void (*godot_plane_new_with_vectors)(godot_plane *r_dest, const godot_vector3 *p_v1, const godot_vector3 *p_v2, const godot_vector3 *p_v3); - void (*godot_plane_new_with_normal)(godot_plane *r_dest, const godot_vector3 *p_normal, const godot_real p_d); - godot_string (*godot_plane_as_string)(const godot_plane *p_self); - godot_plane (*godot_plane_normalized)(const godot_plane *p_self); - godot_vector3 (*godot_plane_center)(const godot_plane *p_self); - godot_vector3 (*godot_plane_get_any_point)(const godot_plane *p_self); - godot_bool (*godot_plane_is_point_over)(const godot_plane *p_self, const godot_vector3 *p_point); - godot_real (*godot_plane_distance_to)(const godot_plane *p_self, const godot_vector3 *p_point); - godot_bool (*godot_plane_has_point)(const godot_plane *p_self, const godot_vector3 *p_point, const godot_real p_epsilon); - godot_vector3 (*godot_plane_project)(const godot_plane *p_self, const godot_vector3 *p_point); - godot_bool (*godot_plane_intersect_3)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_plane *p_b, const godot_plane *p_c); - godot_bool (*godot_plane_intersects_ray)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_from, const godot_vector3 *p_dir); - godot_bool (*godot_plane_intersects_segment)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_begin, const godot_vector3 *p_end); - godot_plane (*godot_plane_operator_neg)(const godot_plane *p_self); - godot_bool (*godot_plane_operator_equal)(const godot_plane *p_self, const godot_plane *p_b); - void (*godot_plane_set_normal)(godot_plane *p_self, const godot_vector3 *p_normal); - godot_vector3 (*godot_plane_get_normal)(const godot_plane *p_self); - godot_real (*godot_plane_get_d)(const godot_plane *p_self); - void (*godot_plane_set_d)(godot_plane *p_self, const godot_real p_d); - void (*godot_rect2_new_with_position_and_size)(godot_rect2 *r_dest, const godot_vector2 *p_pos, const godot_vector2 *p_size); - void (*godot_rect2_new)(godot_rect2 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_width, const godot_real p_height); - godot_string (*godot_rect2_as_string)(const godot_rect2 *p_self); - godot_real (*godot_rect2_get_area)(const godot_rect2 *p_self); - godot_bool (*godot_rect2_intersects)(const godot_rect2 *p_self, const godot_rect2 *p_b); - godot_bool (*godot_rect2_encloses)(const godot_rect2 *p_self, const godot_rect2 *p_b); - godot_bool (*godot_rect2_has_no_area)(const godot_rect2 *p_self); - godot_rect2 (*godot_rect2_clip)(const godot_rect2 *p_self, const godot_rect2 *p_b); - godot_rect2 (*godot_rect2_merge)(const godot_rect2 *p_self, const godot_rect2 *p_b); - godot_bool (*godot_rect2_has_point)(const godot_rect2 *p_self, const godot_vector2 *p_point); - godot_rect2 (*godot_rect2_grow)(const godot_rect2 *p_self, const godot_real p_by); - godot_rect2 (*godot_rect2_expand)(const godot_rect2 *p_self, const godot_vector2 *p_to); - godot_bool (*godot_rect2_operator_equal)(const godot_rect2 *p_self, const godot_rect2 *p_b); - godot_vector2 (*godot_rect2_get_position)(const godot_rect2 *p_self); - godot_vector2 (*godot_rect2_get_size)(const godot_rect2 *p_self); - void (*godot_rect2_set_position)(godot_rect2 *p_self, const godot_vector2 *p_pos); - void (*godot_rect2_set_size)(godot_rect2 *p_self, const godot_vector2 *p_size); - void (*godot_aabb_new)(godot_aabb *r_dest, const godot_vector3 *p_pos, const godot_vector3 *p_size); - godot_vector3 (*godot_aabb_get_position)(const godot_aabb *p_self); - void (*godot_aabb_set_position)(const godot_aabb *p_self, const godot_vector3 *p_v); - godot_vector3 (*godot_aabb_get_size)(const godot_aabb *p_self); - void (*godot_aabb_set_size)(const godot_aabb *p_self, const godot_vector3 *p_v); - godot_string (*godot_aabb_as_string)(const godot_aabb *p_self); - godot_real (*godot_aabb_get_area)(const godot_aabb *p_self); - godot_bool (*godot_aabb_has_no_area)(const godot_aabb *p_self); - godot_bool (*godot_aabb_has_no_surface)(const godot_aabb *p_self); - godot_bool (*godot_aabb_intersects)(const godot_aabb *p_self, const godot_aabb *p_with); - godot_bool (*godot_aabb_encloses)(const godot_aabb *p_self, const godot_aabb *p_with); - godot_aabb (*godot_aabb_merge)(const godot_aabb *p_self, const godot_aabb *p_with); - godot_aabb (*godot_aabb_intersection)(const godot_aabb *p_self, const godot_aabb *p_with); - godot_bool (*godot_aabb_intersects_plane)(const godot_aabb *p_self, const godot_plane *p_plane); - godot_bool (*godot_aabb_intersects_segment)(const godot_aabb *p_self, const godot_vector3 *p_from, const godot_vector3 *p_to); - godot_bool (*godot_aabb_has_point)(const godot_aabb *p_self, const godot_vector3 *p_point); - godot_vector3 (*godot_aabb_get_support)(const godot_aabb *p_self, const godot_vector3 *p_dir); - godot_vector3 (*godot_aabb_get_longest_axis)(const godot_aabb *p_self); - godot_int (*godot_aabb_get_longest_axis_index)(const godot_aabb *p_self); - godot_real (*godot_aabb_get_longest_axis_size)(const godot_aabb *p_self); - godot_vector3 (*godot_aabb_get_shortest_axis)(const godot_aabb *p_self); - godot_int (*godot_aabb_get_shortest_axis_index)(const godot_aabb *p_self); - godot_real (*godot_aabb_get_shortest_axis_size)(const godot_aabb *p_self); - godot_aabb (*godot_aabb_expand)(const godot_aabb *p_self, const godot_vector3 *p_to_point); - godot_aabb (*godot_aabb_grow)(const godot_aabb *p_self, const godot_real p_by); - godot_vector3 (*godot_aabb_get_endpoint)(const godot_aabb *p_self, const godot_int p_idx); - godot_bool (*godot_aabb_operator_equal)(const godot_aabb *p_self, const godot_aabb *p_b); - void (*godot_rid_new)(godot_rid *r_dest); - godot_int (*godot_rid_get_id)(const godot_rid *p_self); - void (*godot_rid_new_with_resource)(godot_rid *r_dest, const godot_object *p_from); - godot_bool (*godot_rid_operator_equal)(const godot_rid *p_self, const godot_rid *p_b); - godot_bool (*godot_rid_operator_less)(const godot_rid *p_self, const godot_rid *p_b); - void (*godot_transform_new_with_axis_origin)(godot_transform *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis, const godot_vector3 *p_origin); - void (*godot_transform_new)(godot_transform *r_dest, const godot_basis *p_basis, const godot_vector3 *p_origin); - godot_basis (*godot_transform_get_basis)(const godot_transform *p_self); - void (*godot_transform_set_basis)(godot_transform *p_self, const godot_basis *p_v); - godot_vector3 (*godot_transform_get_origin)(const godot_transform *p_self); - void (*godot_transform_set_origin)(godot_transform *p_self, const godot_vector3 *p_v); - godot_string (*godot_transform_as_string)(const godot_transform *p_self); - godot_transform (*godot_transform_inverse)(const godot_transform *p_self); - godot_transform (*godot_transform_affine_inverse)(const godot_transform *p_self); - godot_transform (*godot_transform_orthonormalized)(const godot_transform *p_self); - godot_transform (*godot_transform_rotated)(const godot_transform *p_self, const godot_vector3 *p_axis, const godot_real p_phi); - godot_transform (*godot_transform_scaled)(const godot_transform *p_self, const godot_vector3 *p_scale); - godot_transform (*godot_transform_translated)(const godot_transform *p_self, const godot_vector3 *p_ofs); - godot_transform (*godot_transform_looking_at)(const godot_transform *p_self, const godot_vector3 *p_target, const godot_vector3 *p_up); - godot_plane (*godot_transform_xform_plane)(const godot_transform *p_self, const godot_plane *p_v); - godot_plane (*godot_transform_xform_inv_plane)(const godot_transform *p_self, const godot_plane *p_v); - void (*godot_transform_new_identity)(godot_transform *r_dest); - godot_bool (*godot_transform_operator_equal)(const godot_transform *p_self, const godot_transform *p_b); - godot_transform (*godot_transform_operator_multiply)(const godot_transform *p_self, const godot_transform *p_b); - godot_vector3 (*godot_transform_xform_vector3)(const godot_transform *p_self, const godot_vector3 *p_v); - godot_vector3 (*godot_transform_xform_inv_vector3)(const godot_transform *p_self, const godot_vector3 *p_v); - godot_aabb (*godot_transform_xform_aabb)(const godot_transform *p_self, const godot_aabb *p_v); - godot_aabb (*godot_transform_xform_inv_aabb)(const godot_transform *p_self, const godot_aabb *p_v); - void (*godot_transform2d_new)(godot_transform2d *r_dest, const godot_real p_rot, const godot_vector2 *p_pos); - void (*godot_transform2d_new_axis_origin)(godot_transform2d *r_dest, const godot_vector2 *p_x_axis, const godot_vector2 *p_y_axis, const godot_vector2 *p_origin); - godot_string (*godot_transform2d_as_string)(const godot_transform2d *p_self); - godot_transform2d (*godot_transform2d_inverse)(const godot_transform2d *p_self); - godot_transform2d (*godot_transform2d_affine_inverse)(const godot_transform2d *p_self); - godot_real (*godot_transform2d_get_rotation)(const godot_transform2d *p_self); - godot_vector2 (*godot_transform2d_get_origin)(const godot_transform2d *p_self); - godot_vector2 (*godot_transform2d_get_scale)(const godot_transform2d *p_self); - godot_transform2d (*godot_transform2d_orthonormalized)(const godot_transform2d *p_self); - godot_transform2d (*godot_transform2d_rotated)(const godot_transform2d *p_self, const godot_real p_phi); - godot_transform2d (*godot_transform2d_scaled)(const godot_transform2d *p_self, const godot_vector2 *p_scale); - godot_transform2d (*godot_transform2d_translated)(const godot_transform2d *p_self, const godot_vector2 *p_offset); - godot_vector2 (*godot_transform2d_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); - godot_vector2 (*godot_transform2d_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); - godot_vector2 (*godot_transform2d_basis_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); - godot_vector2 (*godot_transform2d_basis_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); - godot_transform2d (*godot_transform2d_interpolate_with)(const godot_transform2d *p_self, const godot_transform2d *p_m, const godot_real p_c); - godot_bool (*godot_transform2d_operator_equal)(const godot_transform2d *p_self, const godot_transform2d *p_b); - godot_transform2d (*godot_transform2d_operator_multiply)(const godot_transform2d *p_self, const godot_transform2d *p_b); - void (*godot_transform2d_new_identity)(godot_transform2d *r_dest); - godot_rect2 (*godot_transform2d_xform_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v); - godot_rect2 (*godot_transform2d_xform_inv_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v); - godot_variant_type (*godot_variant_get_type)(const godot_variant *p_v); - void (*godot_variant_new_copy)(godot_variant *r_dest, const godot_variant *p_src); - void (*godot_variant_new_nil)(godot_variant *r_dest); - void (*godot_variant_new_bool)(godot_variant *r_dest, const godot_bool p_b); - void (*godot_variant_new_uint)(godot_variant *r_dest, const uint64_t p_i); - void (*godot_variant_new_int)(godot_variant *r_dest, const int64_t p_i); - void (*godot_variant_new_real)(godot_variant *r_dest, const double p_r); - void (*godot_variant_new_string)(godot_variant *r_dest, const godot_string *p_s); - void (*godot_variant_new_vector2)(godot_variant *r_dest, const godot_vector2 *p_v2); - void (*godot_variant_new_rect2)(godot_variant *r_dest, const godot_rect2 *p_rect2); - void (*godot_variant_new_vector3)(godot_variant *r_dest, const godot_vector3 *p_v3); - void (*godot_variant_new_transform2d)(godot_variant *r_dest, const godot_transform2d *p_t2d); - void (*godot_variant_new_plane)(godot_variant *r_dest, const godot_plane *p_plane); - void (*godot_variant_new_quat)(godot_variant *r_dest, const godot_quat *p_quat); - void (*godot_variant_new_aabb)(godot_variant *r_dest, const godot_aabb *p_aabb); - void (*godot_variant_new_basis)(godot_variant *r_dest, const godot_basis *p_basis); - void (*godot_variant_new_transform)(godot_variant *r_dest, const godot_transform *p_trans); - void (*godot_variant_new_color)(godot_variant *r_dest, const godot_color *p_color); - void (*godot_variant_new_node_path)(godot_variant *r_dest, const godot_node_path *p_np); - void (*godot_variant_new_rid)(godot_variant *r_dest, const godot_rid *p_rid); - void (*godot_variant_new_object)(godot_variant *r_dest, const godot_object *p_obj); - void (*godot_variant_new_dictionary)(godot_variant *r_dest, const godot_dictionary *p_dict); - void (*godot_variant_new_array)(godot_variant *r_dest, const godot_array *p_arr); - void (*godot_variant_new_pool_byte_array)(godot_variant *r_dest, const godot_pool_byte_array *p_pba); - void (*godot_variant_new_pool_int_array)(godot_variant *r_dest, const godot_pool_int_array *p_pia); - void (*godot_variant_new_pool_real_array)(godot_variant *r_dest, const godot_pool_real_array *p_pra); - void (*godot_variant_new_pool_string_array)(godot_variant *r_dest, const godot_pool_string_array *p_psa); - void (*godot_variant_new_pool_vector2_array)(godot_variant *r_dest, const godot_pool_vector2_array *p_pv2a); - void (*godot_variant_new_pool_vector3_array)(godot_variant *r_dest, const godot_pool_vector3_array *p_pv3a); - void (*godot_variant_new_pool_color_array)(godot_variant *r_dest, const godot_pool_color_array *p_pca); - godot_bool (*godot_variant_as_bool)(const godot_variant *p_self); - uint64_t (*godot_variant_as_uint)(const godot_variant *p_self); - int64_t (*godot_variant_as_int)(const godot_variant *p_self); - double (*godot_variant_as_real)(const godot_variant *p_self); - godot_string (*godot_variant_as_string)(const godot_variant *p_self); - godot_vector2 (*godot_variant_as_vector2)(const godot_variant *p_self); - godot_rect2 (*godot_variant_as_rect2)(const godot_variant *p_self); - godot_vector3 (*godot_variant_as_vector3)(const godot_variant *p_self); - godot_transform2d (*godot_variant_as_transform2d)(const godot_variant *p_self); - godot_plane (*godot_variant_as_plane)(const godot_variant *p_self); - godot_quat (*godot_variant_as_quat)(const godot_variant *p_self); - godot_aabb (*godot_variant_as_aabb)(const godot_variant *p_self); - godot_basis (*godot_variant_as_basis)(const godot_variant *p_self); - godot_transform (*godot_variant_as_transform)(const godot_variant *p_self); - godot_color (*godot_variant_as_color)(const godot_variant *p_self); - godot_node_path (*godot_variant_as_node_path)(const godot_variant *p_self); - godot_rid (*godot_variant_as_rid)(const godot_variant *p_self); - godot_object *(*godot_variant_as_object)(const godot_variant *p_self); - godot_dictionary (*godot_variant_as_dictionary)(const godot_variant *p_self); - godot_array (*godot_variant_as_array)(const godot_variant *p_self); - godot_pool_byte_array (*godot_variant_as_pool_byte_array)(const godot_variant *p_self); - godot_pool_int_array (*godot_variant_as_pool_int_array)(const godot_variant *p_self); - godot_pool_real_array (*godot_variant_as_pool_real_array)(const godot_variant *p_self); - godot_pool_string_array (*godot_variant_as_pool_string_array)(const godot_variant *p_self); - godot_pool_vector2_array (*godot_variant_as_pool_vector2_array)(const godot_variant *p_self); - godot_pool_vector3_array (*godot_variant_as_pool_vector3_array)(const godot_variant *p_self); - godot_pool_color_array (*godot_variant_as_pool_color_array)(const godot_variant *p_self); - godot_variant (*godot_variant_call)(godot_variant *p_self, const godot_string *p_method, const godot_variant **p_args, const godot_int p_argcount, godot_variant_call_error *r_error); - godot_bool (*godot_variant_has_method)(const godot_variant *p_self, const godot_string *p_method); - godot_bool (*godot_variant_operator_equal)(const godot_variant *p_self, const godot_variant *p_other); - godot_bool (*godot_variant_operator_less)(const godot_variant *p_self, const godot_variant *p_other); - godot_bool (*godot_variant_hash_compare)(const godot_variant *p_self, const godot_variant *p_other); - godot_bool (*godot_variant_booleanize)(const godot_variant *p_self); - void (*godot_variant_destroy)(godot_variant *p_self); - godot_int (*godot_char_string_length)(const godot_char_string *p_cs); - const char *(*godot_char_string_get_data)(const godot_char_string *p_cs); - void (*godot_char_string_destroy)(godot_char_string *p_cs); - void (*godot_string_new)(godot_string *r_dest); - void (*godot_string_new_copy)(godot_string *r_dest, const godot_string *p_src); - void (*godot_string_new_with_wide_string)(godot_string *r_dest, const wchar_t *p_contents, const int p_size); - const wchar_t *(*godot_string_operator_index)(godot_string *p_self, const godot_int p_idx); - wchar_t (*godot_string_operator_index_const)(const godot_string *p_self, const godot_int p_idx); - const wchar_t *(*godot_string_wide_str)(const godot_string *p_self); - godot_bool (*godot_string_operator_equal)(const godot_string *p_self, const godot_string *p_b); - godot_bool (*godot_string_operator_less)(const godot_string *p_self, const godot_string *p_b); - godot_string (*godot_string_operator_plus)(const godot_string *p_self, const godot_string *p_b); - godot_int (*godot_string_length)(const godot_string *p_self); - signed char (*godot_string_casecmp_to)(const godot_string *p_self, const godot_string *p_str); - signed char (*godot_string_nocasecmp_to)(const godot_string *p_self, const godot_string *p_str); - signed char (*godot_string_naturalnocasecmp_to)(const godot_string *p_self, const godot_string *p_str); - godot_bool (*godot_string_begins_with)(const godot_string *p_self, const godot_string *p_string); - godot_bool (*godot_string_begins_with_char_array)(const godot_string *p_self, const char *p_char_array); - godot_array (*godot_string_bigrams)(const godot_string *p_self); - godot_string (*godot_string_chr)(wchar_t p_character); - godot_bool (*godot_string_ends_with)(const godot_string *p_self, const godot_string *p_string); - godot_int (*godot_string_find)(const godot_string *p_self, godot_string p_what); - godot_int (*godot_string_find_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); - godot_int (*godot_string_findmk)(const godot_string *p_self, const godot_array *p_keys); - godot_int (*godot_string_findmk_from)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from); - godot_int (*godot_string_findmk_from_in_place)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from, godot_int *r_key); - godot_int (*godot_string_findn)(const godot_string *p_self, godot_string p_what); - godot_int (*godot_string_findn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); - godot_int (*godot_string_find_last)(const godot_string *p_self, godot_string p_what); - godot_string (*godot_string_format)(const godot_string *p_self, const godot_variant *p_values); - godot_string (*godot_string_format_with_custom_placeholder)(const godot_string *p_self, const godot_variant *p_values, const char *p_placeholder); - godot_string (*godot_string_hex_encode_buffer)(const uint8_t *p_buffer, godot_int p_len); - godot_int (*godot_string_hex_to_int)(const godot_string *p_self); - godot_int (*godot_string_hex_to_int_without_prefix)(const godot_string *p_self); - godot_string (*godot_string_insert)(const godot_string *p_self, godot_int p_at_pos, godot_string p_string); - godot_bool (*godot_string_is_numeric)(const godot_string *p_self); - godot_bool (*godot_string_is_subsequence_of)(const godot_string *p_self, const godot_string *p_string); - godot_bool (*godot_string_is_subsequence_ofi)(const godot_string *p_self, const godot_string *p_string); - godot_string (*godot_string_lpad)(const godot_string *p_self, godot_int p_min_length); - godot_string (*godot_string_lpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character); - godot_bool (*godot_string_match)(const godot_string *p_self, const godot_string *p_wildcard); - godot_bool (*godot_string_matchn)(const godot_string *p_self, const godot_string *p_wildcard); - godot_string (*godot_string_md5)(const uint8_t *p_md5); - godot_string (*godot_string_num)(double p_num); - godot_string (*godot_string_num_int64)(int64_t p_num, godot_int p_base); - godot_string (*godot_string_num_int64_capitalized)(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex); - godot_string (*godot_string_num_real)(double p_num); - godot_string (*godot_string_num_scientific)(double p_num); - godot_string (*godot_string_num_with_decimals)(double p_num, godot_int p_decimals); - godot_string (*godot_string_pad_decimals)(const godot_string *p_self, godot_int p_digits); - godot_string (*godot_string_pad_zeros)(const godot_string *p_self, godot_int p_digits); - godot_string (*godot_string_replace_first)(const godot_string *p_self, godot_string p_key, godot_string p_with); - godot_string (*godot_string_replace)(const godot_string *p_self, godot_string p_key, godot_string p_with); - godot_string (*godot_string_replacen)(const godot_string *p_self, godot_string p_key, godot_string p_with); - godot_int (*godot_string_rfind)(const godot_string *p_self, godot_string p_what); - godot_int (*godot_string_rfindn)(const godot_string *p_self, godot_string p_what); - godot_int (*godot_string_rfind_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); - godot_int (*godot_string_rfindn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); - godot_string (*godot_string_rpad)(const godot_string *p_self, godot_int p_min_length); - godot_string (*godot_string_rpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character); - godot_real (*godot_string_similarity)(const godot_string *p_self, const godot_string *p_string); - godot_string (*godot_string_sprintf)(const godot_string *p_self, const godot_array *p_values, godot_bool *p_error); - godot_string (*godot_string_substr)(const godot_string *p_self, godot_int p_from, godot_int p_chars); - double (*godot_string_to_double)(const godot_string *p_self); - godot_real (*godot_string_to_float)(const godot_string *p_self); - godot_int (*godot_string_to_int)(const godot_string *p_self); - godot_string (*godot_string_camelcase_to_underscore)(const godot_string *p_self); - godot_string (*godot_string_camelcase_to_underscore_lowercased)(const godot_string *p_self); - godot_string (*godot_string_capitalize)(const godot_string *p_self); - double (*godot_string_char_to_double)(const char *p_what); - godot_int (*godot_string_char_to_int)(const char *p_what); - int64_t (*godot_string_wchar_to_int)(const wchar_t *p_str); - godot_int (*godot_string_char_to_int_with_len)(const char *p_what, godot_int p_len); - int64_t (*godot_string_char_to_int64_with_len)(const wchar_t *p_str, int p_len); - int64_t (*godot_string_hex_to_int64)(const godot_string *p_self); - int64_t (*godot_string_hex_to_int64_with_prefix)(const godot_string *p_self); - int64_t (*godot_string_to_int64)(const godot_string *p_self); - double (*godot_string_unicode_char_to_double)(const wchar_t *p_str, const wchar_t **r_end); - godot_int (*godot_string_get_slice_count)(const godot_string *p_self, godot_string p_splitter); - godot_string (*godot_string_get_slice)(const godot_string *p_self, godot_string p_splitter, godot_int p_slice); - godot_string (*godot_string_get_slicec)(const godot_string *p_self, wchar_t p_splitter, godot_int p_slice); - godot_array (*godot_string_split)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_allow_empty)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_floats)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_floats_allows_empty)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_floats_mk)(const godot_string *p_self, const godot_array *p_splitters); - godot_array (*godot_string_split_floats_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters); - godot_array (*godot_string_split_ints)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_ints_allows_empty)(const godot_string *p_self, const godot_string *p_splitter); - godot_array (*godot_string_split_ints_mk)(const godot_string *p_self, const godot_array *p_splitters); - godot_array (*godot_string_split_ints_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters); - godot_array (*godot_string_split_spaces)(const godot_string *p_self); - wchar_t (*godot_string_char_lowercase)(wchar_t p_char); - wchar_t (*godot_string_char_uppercase)(wchar_t p_char); - godot_string (*godot_string_to_lower)(const godot_string *p_self); - godot_string (*godot_string_to_upper)(const godot_string *p_self); - godot_string (*godot_string_get_basename)(const godot_string *p_self); - godot_string (*godot_string_get_extension)(const godot_string *p_self); - godot_string (*godot_string_left)(const godot_string *p_self, godot_int p_pos); - wchar_t (*godot_string_ord_at)(const godot_string *p_self, godot_int p_idx); - godot_string (*godot_string_plus_file)(const godot_string *p_self, const godot_string *p_file); - godot_string (*godot_string_right)(const godot_string *p_self, godot_int p_pos); - godot_string (*godot_string_strip_edges)(const godot_string *p_self, godot_bool p_left, godot_bool p_right); - godot_string (*godot_string_strip_escapes)(const godot_string *p_self); - void (*godot_string_erase)(godot_string *p_self, godot_int p_pos, godot_int p_chars); - godot_char_string (*godot_string_ascii)(const godot_string *p_self); - godot_char_string (*godot_string_ascii_extended)(const godot_string *p_self); - godot_char_string (*godot_string_utf8)(const godot_string *p_self); - godot_bool (*godot_string_parse_utf8)(godot_string *p_self, const char *p_utf8); - godot_bool (*godot_string_parse_utf8_with_len)(godot_string *p_self, const char *p_utf8, godot_int p_len); - godot_string (*godot_string_chars_to_utf8)(const char *p_utf8); - godot_string (*godot_string_chars_to_utf8_with_len)(const char *p_utf8, godot_int p_len); - uint32_t (*godot_string_hash)(const godot_string *p_self); - uint64_t (*godot_string_hash64)(const godot_string *p_self); - uint32_t (*godot_string_hash_chars)(const char *p_cstr); - uint32_t (*godot_string_hash_chars_with_len)(const char *p_cstr, godot_int p_len); - uint32_t (*godot_string_hash_utf8_chars)(const wchar_t *p_str); - uint32_t (*godot_string_hash_utf8_chars_with_len)(const wchar_t *p_str, godot_int p_len); - godot_pool_byte_array (*godot_string_md5_buffer)(const godot_string *p_self); - godot_string (*godot_string_md5_text)(const godot_string *p_self); - godot_pool_byte_array (*godot_string_sha256_buffer)(const godot_string *p_self); - godot_string (*godot_string_sha256_text)(const godot_string *p_self); - godot_bool (*godot_string_empty)(const godot_string *p_self); - godot_string (*godot_string_get_base_dir)(const godot_string *p_self); - godot_string (*godot_string_get_file)(const godot_string *p_self); - godot_string (*godot_string_humanize_size)(uint64_t p_size); - godot_bool (*godot_string_is_abs_path)(const godot_string *p_self); - godot_bool (*godot_string_is_rel_path)(const godot_string *p_self); - godot_bool (*godot_string_is_resource_file)(const godot_string *p_self); - godot_string (*godot_string_path_to)(const godot_string *p_self, const godot_string *p_path); - godot_string (*godot_string_path_to_file)(const godot_string *p_self, const godot_string *p_path); - godot_string (*godot_string_simplify_path)(const godot_string *p_self); - godot_string (*godot_string_c_escape)(const godot_string *p_self); - godot_string (*godot_string_c_escape_multiline)(const godot_string *p_self); - godot_string (*godot_string_c_unescape)(const godot_string *p_self); - godot_string (*godot_string_http_escape)(const godot_string *p_self); - godot_string (*godot_string_http_unescape)(const godot_string *p_self); - godot_string (*godot_string_json_escape)(const godot_string *p_self); - godot_string (*godot_string_word_wrap)(const godot_string *p_self, godot_int p_chars_per_line); - godot_string (*godot_string_xml_escape)(const godot_string *p_self); - godot_string (*godot_string_xml_escape_with_quotes)(const godot_string *p_self); - godot_string (*godot_string_xml_unescape)(const godot_string *p_self); - godot_string (*godot_string_percent_decode)(const godot_string *p_self); - godot_string (*godot_string_percent_encode)(const godot_string *p_self); - godot_bool (*godot_string_is_valid_float)(const godot_string *p_self); - godot_bool (*godot_string_is_valid_hex_number)(const godot_string *p_self, godot_bool p_with_prefix); - godot_bool (*godot_string_is_valid_html_color)(const godot_string *p_self); - godot_bool (*godot_string_is_valid_identifier)(const godot_string *p_self); - godot_bool (*godot_string_is_valid_integer)(const godot_string *p_self); - godot_bool (*godot_string_is_valid_ip_address)(const godot_string *p_self); - void (*godot_string_destroy)(godot_string *p_self); - void (*godot_string_name_new)(godot_string_name *r_dest, const godot_string *p_name); - void (*godot_string_name_new_data)(godot_string_name *r_dest, const char *p_name); - godot_string (*godot_string_name_get_name)(const godot_string_name *p_self); - uint32_t (*godot_string_name_get_hash)(const godot_string_name *p_self); - const void *(*godot_string_name_get_data_unique_pointer)(const godot_string_name *p_self); - godot_bool (*godot_string_name_operator_equal)(const godot_string_name *p_self, const godot_string_name *p_other); - godot_bool (*godot_string_name_operator_less)(const godot_string_name *p_self, const godot_string_name *p_other); - void (*godot_string_name_destroy)(godot_string_name *p_self); - void (*godot_object_destroy)(godot_object *p_o); - godot_object *(*godot_global_get_singleton)(const char *p_name); - godot_method_bind *(*godot_method_bind_get_method)(const char *p_classname, const char *p_methodname); - void (*godot_method_bind_ptrcall)(godot_method_bind *p_method_bind, godot_object *p_instance, const void **p_args, void *p_ret); - godot_variant (*godot_method_bind_call)(godot_method_bind *p_method_bind, godot_object *p_instance, const godot_variant **p_args, const int p_arg_count, godot_variant_call_error *p_call_error); - godot_class_constructor (*godot_get_class_constructor)(const char *p_classname); - godot_dictionary (*godot_get_global_constants)(); - void (*godot_register_native_call_type)(const char *call_type, native_call_cb p_callback); - void *(*godot_alloc)(int p_bytes); - void *(*godot_realloc)(void *p_ptr, int p_bytes); - void (*godot_free)(void *p_ptr); - void (*godot_print_error)(const char *p_description, const char *p_function, const char *p_file, int p_line); - void (*godot_print_warning)(const char *p_description, const char *p_function, const char *p_file, int p_line); - void (*godot_print)(const godot_string *p_message); -} godot_gdnative_core_api_struct; - -typedef struct godot_gdnative_core_1_1_api_struct { - unsigned int type; - godot_gdnative_api_version version; - const godot_gdnative_api_struct *next; - godot_int (*godot_color_to_abgr32)(const godot_color *p_self); - godot_int (*godot_color_to_abgr64)(const godot_color *p_self); - godot_int (*godot_color_to_argb64)(const godot_color *p_self); - godot_int (*godot_color_to_rgba64)(const godot_color *p_self); - godot_color (*godot_color_darkened)(const godot_color *p_self, const godot_real p_amount); - godot_color (*godot_color_from_hsv)(const godot_color *p_self, const godot_real p_h, const godot_real p_s, const godot_real p_v, const godot_real p_a); - godot_color (*godot_color_lightened)(const godot_color *p_self, const godot_real p_amount); - godot_array (*godot_array_duplicate)(const godot_array *p_self, const godot_bool p_deep); - godot_variant (*godot_array_max)(const godot_array *p_self); - godot_variant (*godot_array_min)(const godot_array *p_self); - void (*godot_array_shuffle)(godot_array *p_self); - godot_basis (*godot_basis_slerp)(const godot_basis *p_self, const godot_basis *p_b, const godot_real p_t); - godot_variant (*godot_dictionary_get_with_default)(const godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_default); - bool (*godot_dictionary_erase_with_return)(godot_dictionary *p_self, const godot_variant *p_key); - godot_node_path (*godot_node_path_get_as_property_path)(const godot_node_path *p_self); - void (*godot_quat_set_axis_angle)(godot_quat *p_self, const godot_vector3 *p_axis, const godot_real p_angle); - godot_rect2 (*godot_rect2_grow_individual)(const godot_rect2 *p_self, const godot_real p_left, const godot_real p_top, const godot_real p_right, const godot_real p_bottom); - godot_rect2 (*godot_rect2_grow_margin)(const godot_rect2 *p_self, const godot_int p_margin, const godot_real p_by); - godot_rect2 (*godot_rect2_abs)(const godot_rect2 *p_self); - godot_string (*godot_string_dedent)(const godot_string *p_self); - godot_string (*godot_string_trim_prefix)(const godot_string *p_self, const godot_string *p_prefix); - godot_string (*godot_string_trim_suffix)(const godot_string *p_self, const godot_string *p_suffix); - godot_string (*godot_string_rstrip)(const godot_string *p_self, const godot_string *p_chars); - godot_pool_string_array (*godot_string_rsplit)(const godot_string *p_self, const godot_string *p_divisor, const godot_bool p_allow_empty, const godot_int p_maxsplit); - godot_quat (*godot_basis_get_quat)(const godot_basis *p_self); - void (*godot_basis_set_quat)(godot_basis *p_self, const godot_quat *p_quat); - void (*godot_basis_set_axis_angle_scale)(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale); - void (*godot_basis_set_euler_scale)(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale); - void (*godot_basis_set_quat_scale)(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale); - bool (*godot_is_instance_valid)(const godot_object *p_object); - void (*godot_quat_new_with_basis)(godot_quat *r_dest, const godot_basis *p_basis); - void (*godot_quat_new_with_euler)(godot_quat *r_dest, const godot_vector3 *p_euler); - void (*godot_transform_new_with_quat)(godot_transform *r_dest, const godot_quat *p_quat); - godot_string (*godot_variant_get_operator_name)(godot_variant_operator p_op); - void (*godot_variant_evaluate)(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid); -} godot_gdnative_core_1_1_api_struct; - -typedef struct godot_gdnative_core_1_2_api_struct { - unsigned int type; - godot_gdnative_api_version version; - const godot_gdnative_api_struct *next; - godot_dictionary (*godot_dictionary_duplicate)(const godot_dictionary *p_self, const godot_bool p_deep); - godot_vector3 (*godot_vector3_move_toward)(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta); - godot_vector2 (*godot_vector2_move_toward)(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta); - godot_int (*godot_string_count)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to); - godot_int (*godot_string_countn)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to); - godot_vector3 (*godot_vector3_direction_to)(const godot_vector3 *p_self, const godot_vector3 *p_to); - godot_vector2 (*godot_vector2_direction_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); - godot_array (*godot_array_slice)(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_step, const godot_bool p_deep); - godot_bool (*godot_pool_byte_array_empty)(const godot_pool_byte_array *p_self); - godot_bool (*godot_pool_int_array_empty)(const godot_pool_int_array *p_self); - godot_bool (*godot_pool_real_array_empty)(const godot_pool_real_array *p_self); - godot_bool (*godot_pool_string_array_empty)(const godot_pool_string_array *p_self); - godot_bool (*godot_pool_vector2_array_empty)(const godot_pool_vector2_array *p_self); - godot_bool (*godot_pool_vector3_array_empty)(const godot_pool_vector3_array *p_self); - godot_bool (*godot_pool_color_array_empty)(const godot_pool_color_array *p_self); - void *(*godot_get_class_tag)(const godot_string_name *p_class); - godot_object *(*godot_object_cast_to)(const godot_object *p_object, void *p_class_tag); - godot_object *(*godot_instance_from_id)(godot_int p_instance_id); -} godot_gdnative_core_1_2_api_struct; - -// PluginScript -typedef void godot_pluginscript_instance_data; -typedef void godot_pluginscript_script_data; -typedef void godot_pluginscript_language_data; - -typedef struct godot_property_attributes { - godot_method_rpc_mode rset_type; - - godot_int type; - godot_property_hint hint; - godot_string hint_string; - godot_property_usage_flags usage; - godot_variant default_value; -} godot_property_attributes; - -typedef struct godot_pluginscript_instance_desc { - godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner); - void (*finish)(godot_pluginscript_instance_data *p_data); - godot_bool (*set_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, const godot_variant *p_value); - godot_bool (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, godot_variant *r_ret); - godot_variant (*call_method)(godot_pluginscript_instance_data *p_data, const godot_string_name *p_method, const godot_variant **p_args, int p_argcount, godot_variant_call_error *r_error); - void (*notification)(godot_pluginscript_instance_data *p_data, int p_notification); - godot_method_rpc_mode (*get_rpc_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_method); - godot_method_rpc_mode (*get_rset_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_variable); - void (*refcount_incremented)(godot_pluginscript_instance_data *p_data); - bool (*refcount_decremented)(godot_pluginscript_instance_data *p_data); // return true if it can die -} godot_pluginscript_instance_desc; - -typedef struct godot_pluginscript_script_manifest { - godot_pluginscript_script_data *data; - godot_string_name name; - godot_bool is_tool; - godot_string_name base; - godot_dictionary member_lines; - godot_array methods; - godot_array signals; - godot_array properties; -} godot_pluginscript_script_manifest; - -typedef struct godot_pluginscript_script_desc { - godot_pluginscript_script_manifest (*init)(godot_pluginscript_language_data *p_data, const godot_string *p_path, const godot_string *p_source, godot_error *r_error); - void (*finish)(godot_pluginscript_script_data *p_data); - godot_pluginscript_instance_desc instance_desc; -} godot_pluginscript_script_desc; - -typedef struct godot_pluginscript_profiling_data { - godot_string_name signature; - godot_int call_count; - godot_int total_time; // In microseconds - godot_int self_time; // In microseconds -} godot_pluginscript_profiling_data; - -typedef struct godot_pluginscript_language_desc { - const char *name; - const char *type; - const char *extension; - const char **recognized_extensions; // NULL terminated array - godot_pluginscript_language_data *(*init)(); - void (*finish)(godot_pluginscript_language_data *p_data); - const char **reserved_words; // NULL terminated array - const char **comment_delimiters; // NULL terminated array - const char **string_delimiters; // NULL terminated array - godot_bool has_named_classes; - godot_bool supports_builtin_mode; - godot_string (*get_template_source_code)(godot_pluginscript_language_data *p_data, const godot_string *p_class_name, const godot_string *p_base_class_name); - godot_bool (*validate)(godot_pluginscript_language_data *p_data, const godot_string *p_script, int *r_line_error, int *r_col_error, godot_string *r_test_error, const godot_string *p_path, godot_pool_string_array *r_functions); - int (*find_function)(godot_pluginscript_language_data *p_data, const godot_string *p_function, const godot_string *p_code); // Can be NULL - godot_string (*make_function)(godot_pluginscript_language_data *p_data, const godot_string *p_class, const godot_string *p_name, const godot_pool_string_array *p_args); - godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint); - void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line); - void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value); - godot_string (*debug_get_error)(godot_pluginscript_language_data *p_data); - int (*debug_get_stack_level_count)(godot_pluginscript_language_data *p_data); - int (*debug_get_stack_level_line)(godot_pluginscript_language_data *p_data, int p_level); - godot_string (*debug_get_stack_level_function)(godot_pluginscript_language_data *p_data, int p_level); - godot_string (*debug_get_stack_level_source)(godot_pluginscript_language_data *p_data, int p_level); - void (*debug_get_stack_level_locals)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth); - void (*debug_get_stack_level_members)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_members, godot_array *p_values, int p_max_subitems, int p_max_depth); - void (*debug_get_globals)(godot_pluginscript_language_data *p_data, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth); - godot_string (*debug_parse_stack_level_expression)(godot_pluginscript_language_data *p_data, int p_level, const godot_string *p_expression, int p_max_subitems, int p_max_depth); - void (*get_public_functions)(godot_pluginscript_language_data *p_data, godot_array *r_functions); - void (*get_public_constants)(godot_pluginscript_language_data *p_data, godot_dictionary *r_constants); - void (*profiling_start)(godot_pluginscript_language_data *p_data); - void (*profiling_stop)(godot_pluginscript_language_data *p_data); - int (*profiling_get_accumulated_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max); - int (*profiling_get_frame_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max); - void (*profiling_frame)(godot_pluginscript_language_data *p_data); - godot_pluginscript_script_desc script_desc; -} godot_pluginscript_language_desc; - -// Global API pointer -const godot_gdnative_core_api_struct *hgdn_core_api; -const godot_gdnative_core_1_1_api_struct *hgdn_core_1_1_api; -const godot_gdnative_core_1_2_api_struct *hgdn_core_1_2_api; - -// Global PluginScript description and callbacks -void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); -godot_error (*lps_script_init_cb)(godot_pluginscript_script_manifest *data, const godot_string *path, const godot_string *source); -void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); -godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); -void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); -godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); -godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); -void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); -void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); - -void (*lps_get_template_source_code_cb)(const godot_string *class_name, const godot_string *base_class_name, godot_string *ret); -godot_bool (*lps_validate_cb)(const godot_string *script, int *line_error, int *col_error, godot_string *test_error, const godot_string *path, godot_pool_string_array *functions); -]] - -api = ffi.C.hgdn_core_api -api_1_1 = ffi.C.hgdn_core_1_1_api -api_1_2 = ffi.C.hgdn_core_1_2_api - diff --git a/src/godot_globals.lua b/src/godot_globals.lua deleted file mode 100644 index 0cb8b6f..0000000 --- a/src/godot_globals.lua +++ /dev/null @@ -1,194 +0,0 @@ -local function concat_gdvalues(a, b) - return api.godot_string_operator_plus(GD.str(a), GD.str(b)) -end - -GD = { - api = api, - api_1_1 = api_1_1, - -- godot_error - OK = ffi.C.GODOT_OK, - FAILED = ffi.C.GODOT_FAILED, - ERR_UNAVAILABLE = ffi.C.GODOT_ERR_UNAVAILABLE, - ERR_UNCONFIGURED = ffi.C.GODOT_ERR_UNCONFIGURED, - ERR_UNAUTHORIZED = ffi.C.GODOT_ERR_UNAUTHORIZED, - ERR_PARAMETER_RANGE_ERROR = ffi.C.GODOT_ERR_PARAMETER_RANGE_ERROR, - ERR_OUT_OF_MEMORY = ffi.C.GODOT_ERR_OUT_OF_MEMORY, - ERR_FILE_NOT_FOUND = ffi.C.GODOT_ERR_FILE_NOT_FOUND, - ERR_FILE_BAD_DRIVE = ffi.C.GODOT_ERR_FILE_BAD_DRIVE, - ERR_FILE_BAD_PATH = ffi.C.GODOT_ERR_FILE_BAD_PATH, - ERR_FILE_NO_PERMISSION = ffi.C.GODOT_ERR_FILE_NO_PERMISSION, - ERR_FILE_ALREADY_IN_USE = ffi.C.GODOT_ERR_FILE_ALREADY_IN_USE, - ERR_FILE_CANT_OPEN = ffi.C.GODOT_ERR_FILE_CANT_OPEN, - ERR_FILE_CANT_WRITE = ffi.C.GODOT_ERR_FILE_CANT_WRITE, - ERR_FILE_CANT_READ = ffi.C.GODOT_ERR_FILE_CANT_READ, - ERR_FILE_UNRECOGNIZED = ffi.C.GODOT_ERR_FILE_UNRECOGNIZED, - ERR_FILE_CORRUPT = ffi.C.GODOT_ERR_FILE_CORRUPT, - ERR_FILE_MISSING_DEPENDENCIES = ffi.C.GODOT_ERR_FILE_MISSING_DEPENDENCIES, - ERR_FILE_EOF = ffi.C.GODOT_ERR_FILE_EOF, - ERR_CANT_OPEN = ffi.C.GODOT_ERR_CANT_OPEN, - ERR_CANT_CREATE = ffi.C.GODOT_ERR_CANT_CREATE, - ERR_QUERY_FAILED = ffi.C.GODOT_ERR_QUERY_FAILED, - ERR_ALREADY_IN_USE = ffi.C.GODOT_ERR_ALREADY_IN_USE, - ERR_LOCKED = ffi.C.GODOT_ERR_LOCKED, - ERR_TIMEOUT = ffi.C.GODOT_ERR_TIMEOUT, - ERR_CANT_CONNECT = ffi.C.GODOT_ERR_CANT_CONNECT, - ERR_CANT_RESOLVE = ffi.C.GODOT_ERR_CANT_RESOLVE, - ERR_CONNECTION_ERROR = ffi.C.GODOT_ERR_CONNECTION_ERROR, - ERR_CANT_ACQUIRE_RESOURCE = ffi.C.GODOT_ERR_CANT_ACQUIRE_RESOURCE, - ERR_CANT_FORK = ffi.C.GODOT_ERR_CANT_FORK, - ERR_INVALID_DATA = ffi.C.GODOT_ERR_INVALID_DATA, - ERR_INVALID_PARAMETER = ffi.C.GODOT_ERR_INVALID_PARAMETER, - ERR_ALREADY_EXISTS = ffi.C.GODOT_ERR_ALREADY_EXISTS, - ERR_DOES_NOT_EXIST = ffi.C.GODOT_ERR_DOES_NOT_EXIST, - ERR_DATABASE_CANT_READ = ffi.C.GODOT_ERR_DATABASE_CANT_READ, - ERR_DATABASE_CANT_WRITE = ffi.C.GODOT_ERR_DATABASE_CANT_WRITE, - ERR_COMPILATION_FAILED = ffi.C.GODOT_ERR_COMPILATION_FAILED, - ERR_METHOD_NOT_FOUND = ffi.C.GODOT_ERR_METHOD_NOT_FOUND, - ERR_LINK_FAILED = ffi.C.GODOT_ERR_LINK_FAILED, - ERR_SCRIPT_FAILED = ffi.C.GODOT_ERR_SCRIPT_FAILED, - ERR_CYCLIC_LINK = ffi.C.GODOT_ERR_CYCLIC_LINK, - ERR_INVALID_DECLARATION = ffi.C.GODOT_ERR_INVALID_DECLARATION, - ERR_DUPLICATE_SYMBOL = ffi.C.GODOT_ERR_DUPLICATE_SYMBOL, - ERR_PARSE_ERROR = ffi.C.GODOT_ERR_PARSE_ERROR, - ERR_BUSY = ffi.C.GODOT_ERR_BUSY, - ERR_SKIP = ffi.C.GODOT_ERR_SKIP, - ERR_HELP = ffi.C.GODOT_ERR_HELP, - ERR_BUG = ffi.C.GODOT_ERR_BUG, - ERR_PRINTER_ON_FIRE = ffi.C.GODOT_ERR_PRINTER_ON_FIRE, - -- godot_variant_type - TYPE_NIL = ffi.C.GODOT_VARIANT_TYPE_NIL, - TYPE_BOOL = ffi.C.GODOT_VARIANT_TYPE_BOOL, - TYPE_INT = ffi.C.GODOT_VARIANT_TYPE_INT, - TYPE_REAL = ffi.C.GODOT_VARIANT_TYPE_REAL, - TYPE_STRING = ffi.C.GODOT_VARIANT_TYPE_STRING, - TYPE_VECTOR2 = ffi.C.GODOT_VARIANT_TYPE_VECTOR2, - TYPE_RECT2 = ffi.C.GODOT_VARIANT_TYPE_RECT2, - TYPE_VECTOR3 = ffi.C.GODOT_VARIANT_TYPE_VECTOR3, - TYPE_TRANSFORM2D = ffi.C.GODOT_VARIANT_TYPE_TRANSFORM2D, - TYPE_PLANE = ffi.C.GODOT_VARIANT_TYPE_PLANE, - TYPE_QUAT = ffi.C.GODOT_VARIANT_TYPE_QUAT, - TYPE_AABB = ffi.C.GODOT_VARIANT_TYPE_AABB, - TYPE_BASIS = ffi.C.GODOT_VARIANT_TYPE_BASIS, - TYPE_TRANSFORM = ffi.C.GODOT_VARIANT_TYPE_TRANSFORM, - TYPE_COLOR = ffi.C.GODOT_VARIANT_TYPE_COLOR, - TYPE_NODE_PATH = ffi.C.GODOT_VARIANT_TYPE_NODE_PATH, - TYPE_RID = ffi.C.GODOT_VARIANT_TYPE_RID, - TYPE_OBJECT = ffi.C.GODOT_VARIANT_TYPE_OBJECT, - TYPE_DICTIONARY = ffi.C.GODOT_VARIANT_TYPE_DICTIONARY, - TYPE_ARRAY = ffi.C.GODOT_VARIANT_TYPE_ARRAY, - TYPE_POOL_BYTE_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY, - TYPE_POOL_INT_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_INT_ARRAY, - TYPE_POOL_REAL_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_REAL_ARRAY, - TYPE_POOL_STRING_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_STRING_ARRAY, - TYPE_POOL_VECTOR2_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY, - TYPE_POOL_VECTOR3_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY, - TYPE_POOL_COLOR_ARRAY = ffi.C.GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY, - -- godot_variant_call_error_error - CALL_OK = ffi.C.GODOT_CALL_ERROR_CALL_OK, - CALL_ERROR_INVALID_METHOD = ffi.C.GODOT_CALL_ERROR_CALL_ERROR_INVALID_METHOD, - CALL_ERROR_INVALID_ARGUMENT = ffi.C.GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT, - CALL_ERROR_TOO_MANY_ARGUMENTS = ffi.C.GODOT_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS, - CALL_ERROR_TOO_FEW_ARGUMENTS = ffi.C.GODOT_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS, - CALL_ERROR_INSTANCE_IS_NULL = ffi.C.GODOT_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL, - -- godot_method_rpc_mode - RPC_MODE_DISABLED = ffi.C.GODOT_METHOD_RPC_MODE_DISABLED, - RPC_MODE_REMOTE = ffi.C.GODOT_METHOD_RPC_MODE_REMOTE, - RPC_MODE_MASTER = ffi.C.GODOT_METHOD_RPC_MODE_MASTER, - RPC_MODE_PUPPET = ffi.C.GODOT_METHOD_RPC_MODE_PUPPET, - RPC_MODE_SLAVE = ffi.C.GODOT_METHOD_RPC_MODE_SLAVE, - RPC_MODE_REMOTESYNC = ffi.C.GODOT_METHOD_RPC_MODE_REMOTESYNC, - RPC_MODE_SYNC = ffi.C.GODOT_METHOD_RPC_MODE_SYNC, - RPC_MODE_MASTERSYNC = ffi.C.GODOT_METHOD_RPC_MODE_MASTERSYNC, - RPC_MODE_PUPPETSYNC = ffi.C.GODOT_METHOD_RPC_MODE_PUPPETSYNC, - -- godot_property_hint - PROPERTY_HINT_NONE = ffi.C.GODOT_PROPERTY_HINT_NONE, - PROPERTY_HINT_RANGE = ffi.C.GODOT_PROPERTY_HINT_RANGE, - PROPERTY_HINT_EXP_RANGE = ffi.C.GODOT_PROPERTY_HINT_EXP_RANGE, - PROPERTY_HINT_ENUM = ffi.C.GODOT_PROPERTY_HINT_ENUM, - PROPERTY_HINT_EXP_EASING = ffi.C.GODOT_PROPERTY_HINT_EXP_EASING, - PROPERTY_HINT_LENGTH = ffi.C.GODOT_PROPERTY_HINT_LENGTH, - PROPERTY_HINT_SPRITE_FRAME = ffi.C.GODOT_PROPERTY_HINT_SPRITE_FRAME, - PROPERTY_HINT_KEY_ACCEL = ffi.C.GODOT_PROPERTY_HINT_KEY_ACCEL, - PROPERTY_HINT_FLAGS = ffi.C.GODOT_PROPERTY_HINT_FLAGS, - PROPERTY_HINT_LAYERS_2D_RENDER = ffi.C.GODOT_PROPERTY_HINT_LAYERS_2D_RENDER, - PROPERTY_HINT_LAYERS_2D_PHYSICS = ffi.C.GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS, - PROPERTY_HINT_LAYERS_3D_RENDER = ffi.C.GODOT_PROPERTY_HINT_LAYERS_3D_RENDER, - PROPERTY_HINT_LAYERS_3D_PHYSICS = ffi.C.GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS, - PROPERTY_HINT_FILE = ffi.C.GODOT_PROPERTY_HINT_FILE, - PROPERTY_HINT_DIR = ffi.C.GODOT_PROPERTY_HINT_DIR, - PROPERTY_HINT_GLOBAL_FILE = ffi.C.GODOT_PROPERTY_HINT_GLOBAL_FILE, - PROPERTY_HINT_GLOBAL_DIR = ffi.C.GODOT_PROPERTY_HINT_GLOBAL_DIR, - PROPERTY_HINT_RESOURCE_TYPE = ffi.C.GODOT_PROPERTY_HINT_RESOURCE_TYPE, - PROPERTY_HINT_MULTILINE_TEXT = ffi.C.GODOT_PROPERTY_HINT_MULTILINE_TEXT, - PROPERTY_HINT_PLACEHOLDER_TEXT = ffi.C.GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT, - PROPERTY_HINT_COLOR_NO_ALPHA = ffi.C.GODOT_PROPERTY_HINT_COLOR_NO_ALPHA, - PROPERTY_HINT_IMAGE_COMPRESS_LOSSY = ffi.C.GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY, - PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS = ffi.C.GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS, - PROPERTY_HINT_OBJECT_ID = ffi.C.GODOT_PROPERTY_HINT_OBJECT_ID, - PROPERTY_HINT_TYPE_STRING = ffi.C.GODOT_PROPERTY_HINT_TYPE_STRING, - PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE = ffi.C.GODOT_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE, - PROPERTY_HINT_METHOD_OF_VARIANT_TYPE = ffi.C.GODOT_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE, - PROPERTY_HINT_METHOD_OF_BASE_TYPE = ffi.C.GODOT_PROPERTY_HINT_METHOD_OF_BASE_TYPE, - PROPERTY_HINT_METHOD_OF_INSTANCE = ffi.C.GODOT_PROPERTY_HINT_METHOD_OF_INSTANCE, - PROPERTY_HINT_METHOD_OF_SCRIPT = ffi.C.GODOT_PROPERTY_HINT_METHOD_OF_SCRIPT, - PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE = ffi.C.GODOT_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE, - PROPERTY_HINT_PROPERTY_OF_BASE_TYPE = ffi.C.GODOT_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE, - PROPERTY_HINT_PROPERTY_OF_INSTANCE = ffi.C.GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, - PROPERTY_HINT_PROPERTY_OF_SCRIPT = ffi.C.GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, - -- godot_property_usage_flags - PROPERTY_USAGE_STORAGE = ffi.C.GODOT_PROPERTY_USAGE_STORAGE, - PROPERTY_USAGE_EDITOR = ffi.C.GODOT_PROPERTY_USAGE_EDITOR, - PROPERTY_USAGE_NETWORK = ffi.C.GODOT_PROPERTY_USAGE_NETWORK, - PROPERTY_USAGE_EDITOR_HELPER = ffi.C.GODOT_PROPERTY_USAGE_EDITOR_HELPER, - PROPERTY_USAGE_CHECKABLE = ffi.C.GODOT_PROPERTY_USAGE_CHECKABLE, - PROPERTY_USAGE_CHECKED = ffi.C.GODOT_PROPERTY_USAGE_CHECKED, - PROPERTY_USAGE_INTERNATIONALIZED = ffi.C.GODOT_PROPERTY_USAGE_INTERNATIONALIZED, - PROPERTY_USAGE_GROUP = ffi.C.GODOT_PROPERTY_USAGE_GROUP, - PROPERTY_USAGE_CATEGORY = ffi.C.GODOT_PROPERTY_USAGE_CATEGORY, - PROPERTY_USAGE_STORE_IF_NONZERO = ffi.C.GODOT_PROPERTY_USAGE_STORE_IF_NONZERO, - PROPERTY_USAGE_STORE_IF_NONONE = ffi.C.GODOT_PROPERTY_USAGE_STORE_IF_NONONE, - PROPERTY_USAGE_NO_INSTANCE_STATE = ffi.C.GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE, - PROPERTY_USAGE_RESTART_IF_CHANGED = ffi.C.GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED, - PROPERTY_USAGE_SCRIPT_VARIABLE = ffi.C.GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE, - PROPERTY_USAGE_STORE_IF_NULL = ffi.C.GODOT_PROPERTY_USAGE_STORE_IF_NULL, - PROPERTY_USAGE_ANIMATE_AS_TRIGGER = ffi.C.GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER, - PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = ffi.C.GODOT_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED, - PROPERTY_USAGE_DEFAULT = ffi.C.GODOT_PROPERTY_USAGE_DEFAULT, - PROPERTY_USAGE_DEFAULT_INTL = ffi.C.GODOT_PROPERTY_USAGE_DEFAULT_INTL, - PROPERTY_USAGE_NOEDITOR = ffi.C.GODOT_PROPERTY_USAGE_NOEDITOR, -} - -bool = ffi.typeof('godot_bool') -int = ffi.typeof('godot_int') -float = ffi.typeof('godot_real') - -if api_1_1 then - GD.is_instance_valid = api_1_1.godot_is_instance_valid -end - -function GD.str(value) - return api.godot_variant_as_string(Variant(value)) -end - -function GD.tostring(value) - return tostring(Variant(value)) -end - -function GD.print(...) - local message = PoolStringArray(...):join('\t') - api.godot_print(message) -end -_G.print = GD.print - -function GD.print_warning(...) - local info = debug.getinfo(2, 'nSl') - local message = tostring(PoolStringArray(...):join('\t')) - api.godot_print_warning(message, info.name, info.short_src, info.currentline) -end - -function GD.print_error(...) - local info = debug.getinfo(2, 'nSl') - local message = tostring(PoolStringArray(...):join('\t')) - api.godot_print_error(message, info.name, info.short_src, info.currentline) -end - diff --git a/src/godot_math.lua b/src/godot_math.lua deleted file mode 100644 index c7b7c3c..0000000 --- a/src/godot_math.lua +++ /dev/null @@ -1,90 +0,0 @@ -Vector2 = ffi.metatype('godot_vector2', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_vector2_variant, - varianttype = GD.TYPE_VECTOR2, - }, - __concat = concat_gdvalues, -}) - -Vector3 = ffi.metatype('godot_vector3', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_vector3_variant, - varianttype = GD.TYPE_VECTOR3, - }, - __concat = concat_gdvalues, -}) - -Vector4 = ffi.metatype('godot_vector4', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_color_variant, - varianttype = GD.TYPE_COLOR, - }, - __concat = concat_gdvalues, -}) -Color = Vector4 - -Rect2 = ffi.metatype('godot_rect2', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_rect2_variant, - varianttype = GD.TYPE_RECT2, - }, - __concat = concat_gdvalues, -}) - -Plane = ffi.metatype('godot_plane', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_plane_variant, - varianttype = GD.TYPE_PLANE, - }, - __concat = concat_gdvalues, -}) - -Quat = ffi.metatype('godot_quat', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_quat_variant, - varianttype = GD.TYPE_QUAT, - }, - __concat = concat_gdvalues, -}) - -Basis = ffi.metatype('godot_basis', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_basis_variant, - varianttype = GD.TYPE_BASIS, - }, - __concat = concat_gdvalues, -}) - -AABB = ffi.metatype('godot_aabb', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_aabb_variant, - varianttype = GD.TYPE_AABB, - }, - __concat = concat_gdvalues, -}) - -Transform2D = ffi.metatype('godot_transform2d', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_transform2d_variant, - varianttype = GD.TYPE_TRANSFORM2D, - }, - __concat = concat_gdvalues, -}) - -Transform = ffi.metatype('godot_transform', { - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_transform_variant, - varianttype = GD.TYPE_TRANSFORM, - }, - __concat = concat_gdvalues, -}) diff --git a/src/godot_misc.lua b/src/godot_misc.lua deleted file mode 100644 index 5abc2ae..0000000 --- a/src/godot_misc.lua +++ /dev/null @@ -1,121 +0,0 @@ -local node_path_methods = { - tovariant = ffi.C.hgdn_new_node_path_variant, - varianttype = GD.TYPE_NODE_PATH, -} -NodePath = ffi.metatype('godot_node_path', { - __new = function(mt, text_or_nodepath) - local self = ffi.new(mt) - if ffi.istype(mt, text_or_nodepath) then - api.godot_node_path_new_copy(self, text_or_nodepath) - elseif ffi.istype(String, text_or_nodepath) then - api.godot_node_path_new(self, text_or_nodepath) - else - api.godot_node_path_new(self, String(text_or_nodepath)) - end - return self - end, - __gc = api.godot_node_path_destroy, - __tostring = function(self) - return tostring(api.godot_node_path_as_string(self)) - end, - __index = node_path_methods, - __concat = concat_gdvalues, -}) - -RID = ffi.metatype('godot_rid', { - __new = function(mt, resource) - local self = ffi.new(mt) - if resource then - api.godot_rid_new_with_resource(self, resource) - else - api.godot_rid_new(self) - end - return self - end, - __tostring = GD.tostring, - __index = { - tovariant = ffi.C.hgdn_new_rid_variant, - varianttype = GD.TYPE_RID, - get_id = api.godot_rid_get_id, - }, - __concat = concat_gdvalues, - __eq = api.godot_rid_operator_equal, - __lt = api.godot_rid_operator_less, -}) - -local object_methods = { - tovariant = ffi.C.hgdn_new_object_variant, - varianttype = GD.TYPE_OBJECT, - pcall = function(self, method, ...) - if self:has_method() then - return true, self:call(method, ...) - else - return false - end - end, - add_user_signal = api.godot_method_bind_get_method('Object', 'add_user_signal'), - call = api.godot_method_bind_get_method('Object', 'call'), - call_deferred = api.godot_method_bind_get_method('Object', 'call_deferred'), - can_translate_messages = api.godot_method_bind_get_method('Object', 'can_translate_messages'), - connect = api.godot_method_bind_get_method('Object', 'connect'), - disconnect = api.godot_method_bind_get_method('Object', 'disconnect'), - emit_signal = api.godot_method_bind_get_method('Object', 'emit_signal'), - free = api.godot_method_bind_get_method('Object', 'free'), - get = api.godot_method_bind_get_method('Object', 'get'), - get_class = api.godot_method_bind_get_method('Object', 'get_class'), - get_incoming_connections = api.godot_method_bind_get_method('Object', 'get_incoming_connections'), - get_indexed = api.godot_method_bind_get_method('Object', 'get_indexed'), - get_instance_id = api.godot_method_bind_get_method('Object', 'get_instance_id'), - get_meta = api.godot_method_bind_get_method('Object', 'get_meta'), - get_meta_list = api.godot_method_bind_get_method('Object', 'get_meta_list'), - get_method_list = api.godot_method_bind_get_method('Object', 'get_method_list'), - get_property_list = api.godot_method_bind_get_method('Object', 'get_property_list'), - get_script = api.godot_method_bind_get_method('Object', 'get_script'), - get_signal_connection_list = api.godot_method_bind_get_method('Object', 'get_signal_connection_list'), - get_signal_list = api.godot_method_bind_get_method('Object', 'get_signal_list'), - has_meta = api.godot_method_bind_get_method('Object', 'has_meta'), - has_method = api.godot_method_bind_get_method('Object', 'has_method'), - has_signal = api.godot_method_bind_get_method('Object', 'has_signal'), - has_user_signal = api.godot_method_bind_get_method('Object', 'has_user_signal'), - is_blocking_signals = api.godot_method_bind_get_method('Object', 'is_blocking_signals'), - is_class = api.godot_method_bind_get_method('Object', 'is_class'), - is_connected = api.godot_method_bind_get_method('Object', 'is_connected'), - is_queued_for_deletion = api.godot_method_bind_get_method('Object', 'is_queued_for_deletion'), - notification = api.godot_method_bind_get_method('Object', 'notification'), - property_list_changed_notify = api.godot_method_bind_get_method('Object', 'property_list_changed_notify'), - remove_meta = api.godot_method_bind_get_method('Object', 'remove_meta'), - set = api.godot_method_bind_get_method('Object', 'set'), - set_block_signals = api.godot_method_bind_get_method('Object', 'set_block_signals'), - set_deferred = api.godot_method_bind_get_method('Object', 'set_deferred'), - set_indexed = api.godot_method_bind_get_method('Object', 'set_indexed'), - set_message_translation = api.godot_method_bind_get_method('Object', 'set_message_translation'), - set_meta = api.godot_method_bind_get_method('Object', 'set_meta'), - set_script = api.godot_method_bind_get_method('Object', 'set_script'), - to_string = api.godot_method_bind_get_method('Object', 'to_string'), - tr = api.godot_method_bind_get_method('Object', 'tr'), -} -Object = ffi.metatype('godot_object', { - __new = function(mt, init) - if ffi.istype(mt, init) then - return init - else - return init.__owner - end - end, - __tostring = GD.tostring, - __index = function(self, key) - if type(key) ~= 'string' then - return - end - local method = object_methods[key] - if method then - return method - end - if self:has_method(key) then - return MethodBindByName:new(key) - else - self:get(key) - end - end, - __concat = concat_gdvalues, -}) diff --git a/src/godot_pool_arrays.lua b/src/godot_pool_arrays.lua deleted file mode 100644 index ca97321..0000000 --- a/src/godot_pool_arrays.lua +++ /dev/null @@ -1,100 +0,0 @@ -local function register_pool_array(kind, element_ctype) - local name = 'Pool' .. kind:sub(1, 1):upper() .. kind:sub(2) .. 'Array' - local kind_type = 'pool_' .. kind .. '_array' - local ctype = 'godot_' .. kind_type - local godot_array_new_pool_array = 'godot_array_new_' .. kind_type - local godot_pool_array_new = ctype .. '_new' - local godot_pool_array_new_copy = ctype .. '_new_copy' - local godot_pool_array_new_with_array = ctype .. '_new_with_array' - - local methods = { - tovariant = ffi.C['hgdn_new_' .. kind_type .. '_variant'], - varianttype = GD['TYPE_POOL_' .. kind:upper() .. '_ARRAY'], - toarray = function(self) - local array = ffi.new(Array) - api[godot_array_new_pool_array](array, self) - return array - end, - get = api[ctype .. '_get'], - set = api[ctype .. '_set'], - append = api[ctype .. '_append'], - append_array = api[ctype .. '_append_array'], - insert = api[ctype .. '_insert'], - invert = api[ctype .. '_invert'], - push_back = api[ctype .. '_push_back'], - remove = api[ctype .. '_remove'], - resize = api[ctype .. '_resize'], - -- TODO: read/write - size = function(self) - return api[ctype .. '_size'](self) - end, - } - - if element_ctype == String then - methods.join = function(self, delimiter) - local result = String(self[0]) - delimiter = String(delimiter) - for i = 1, #self - 1 do - result = result .. delimiter .. self[i] - end - return result - end - end - - if api_1_2 then - methods.empty = api_1_2[ctype .. '_empty'] - end - - _G[name] = ffi.metatype(ctype, { - __new = function(mt, ...) - local self = ffi.new(mt) - local value = ... - if ffi.istype(mt, value) then - api[godot_pool_array_new_copy](self, value) - elseif ffi.istype(Array, value) then - api[godot_pool_array_new_with_array](self, value) - else - api[godot_pool_array_new](self) - local t = type(value) - for i = 1, select('#', ...) do - local v = select(i, ...) - self:append(element_ctype(v)) - end - end - return self - end, - __gc = api[ctype .. '_destroy'], - __tostring = GD.tostring, - __concat = concat_gdvalues, - __index = function(self, key) - local numeric_index = tonumber(key) - if numeric_index then - if numeric_index >= 0 and numeric_index < #self then - return methods.get(self, numeric_index) - end - else - return methods[key] - end - end, - __newindex = function(self, key, value) - key = assert(tonumber(key), "Array indices must be numeric") - if key == #self then - methods.append(self, value) - else - methods.set(self, key, value) - end - end, - __len = methods.size, - __ipairs = array_ipairs, - __pairs = array_ipairs, - }) -end - -register_pool_array('byte', ffi.typeof('uint8_t')) -register_pool_array('int', int) -register_pool_array('real', float) -register_pool_array('string', String) -register_pool_array('vector2', Vector2) -register_pool_array('vector3', Vector3) -register_pool_array('color', Color) - diff --git a/src/godot_string.lua b/src/godot_string.lua deleted file mode 100644 index 483710e..0000000 --- a/src/godot_string.lua +++ /dev/null @@ -1,86 +0,0 @@ -local CharString = ffi.metatype('godot_char_string', { - __gc = api.godot_char_string_destroy, - __tostring = function(self) - local ptr = api.godot_char_string_get_data(self) - return ffi.string(ptr, #self) - end, - __len = function(self) - return api.godot_char_string_length(self) - end, -}) - -local string_methods = { - tovariant = ffi.C.hgdn_new_string_variant, - varianttype = GD.TYPE_STRING, - length = function(self) - return api.godot_string_length(self) - end, - wide_str = api.godot_string_wide_str, - -- TODO: add the rest -} -String = ffi.metatype('godot_string', { - __new = function(mt, ...) - local text, length = ... - if select('#', ...) == 0 then - return api.godot_string_chars_to_utf8('') - elseif ffi.istype(mt, text) then - local self = ffi.new(mt) - api.godot_string_new_copy(self, text) - return self - elseif ffi.istype(StringName, text) then - return text:get_name() - elseif ffi.istype('char *', text) then - if length then - return api.godot_string_chars_to_utf8_with_len(text, length) - else - return api.godot_string_chars_to_utf8(text) - end - elseif ffi.istype('wchar_t *', text) then - local self = ffi.new(mt) - api.godot_string_new_with_wide_string(self, text, length or -1) - return self - elseif ffi.istype('wchar_t', text) or ffi.istype('char', text) then - return api.godot_string_chr(text) - else - text = tostring(text) - return api.godot_string_chars_to_utf8_with_len(text, length or #text) - end - end, - __gc = api.godot_string_destroy, - __tostring = function(self) - return tostring(api.godot_string_utf8(self)) - end, - __len = string_methods.length, - __index = string_methods, - __concat = concat_gdvalues, -}) - -local string_name_methods = { - tovariant = function(self) - return api.godot_string_name_get_name(self):tovariant() - end, - get_name = api.godot_string_name_get_name, - get_hash = api.godot_string_name_get_hash, - get_data_unique_pointer = api.godot_string_name_get_data_unique_pointer, -} -StringName = ffi.metatype('godot_string_name', { - __new = function(mt, text) - text = text or '' - local self = ffi.new(mt) - if ffi.istype(String, text) then - api.godot_string_name_new(self, text) - else - api.godot_string_name_new_data(self, text) - end - return self - end, - __gc = api.godot_string_name_destroy, - __tostring = function(self) - return tostring(self:get_name()) - end, - __len = function(self) - return #self:get_name() - end, - __index = string_name_methods, - __concat = concat_gdvalues, -}) diff --git a/src/godot_variant.lua b/src/godot_variant.lua deleted file mode 100644 index 4ffd678..0000000 --- a/src/godot_variant.lua +++ /dev/null @@ -1,202 +0,0 @@ -ffi.cdef[[ -godot_variant hgdn_new_nil_variant(); -godot_variant hgdn_new_bool_variant(const godot_bool value); -godot_variant hgdn_new_uint_variant(const uint64_t value); -godot_variant hgdn_new_int_variant(const int64_t value); -godot_variant hgdn_new_real_variant(const double value); -godot_variant hgdn_new_vector2_variant(const godot_vector2 value); -godot_variant hgdn_new_vector3_variant(const godot_vector3 value); -godot_variant hgdn_new_rect2_variant(const godot_rect2 value); -godot_variant hgdn_new_plane_variant(const godot_plane value); -godot_variant hgdn_new_quat_variant(const godot_quat value); -godot_variant hgdn_new_aabb_variant(const godot_aabb value); -godot_variant hgdn_new_basis_variant(const godot_basis value); -godot_variant hgdn_new_transform2d_variant(const godot_transform2d value); -godot_variant hgdn_new_transform_variant(const godot_transform value); -godot_variant hgdn_new_color_variant(const godot_color value); -godot_variant hgdn_new_node_path_variant(const godot_node_path *value); -godot_variant hgdn_new_rid_variant(const godot_rid *value); -godot_variant hgdn_new_object_variant(const godot_object *value); -godot_variant hgdn_new_string_variant(const godot_string *value); -godot_variant hgdn_new_cstring_variant(const char *value); -godot_variant hgdn_new_wide_string_variant(const wchar_t *value); -godot_variant hgdn_new_dictionary_variant(const godot_dictionary *value); -godot_variant hgdn_new_array_variant(const godot_array *value); -godot_variant hgdn_new_pool_byte_array_variant(const godot_pool_byte_array *value); -godot_variant hgdn_new_pool_int_array_variant(const godot_pool_int_array *value); -godot_variant hgdn_new_pool_real_array_variant(const godot_pool_real_array *value); -godot_variant hgdn_new_pool_vector2_array_variant(const godot_pool_vector2_array *value); -godot_variant hgdn_new_pool_vector3_array_variant(const godot_pool_vector3_array *value); -godot_variant hgdn_new_pool_color_array_variant(const godot_pool_color_array *value); -godot_variant hgdn_new_pool_string_array_variant(const godot_pool_string_array *value); -]] - -local function Object_gc(obj) - if obj:call('unreference') then - api.godot_object_destroy(obj) - end -end - -local methods = { - tovariant = function(self) - return self - end, - as_bool = api.godot_variant_as_bool, - as_uint = api.godot_variant_as_uint, - as_int = api.godot_variant_as_int, - as_real = api.godot_variant_as_real, - as_string = api.godot_variant_as_string, - as_vector2 = api.godot_variant_as_vector2, - as_rect2 = api.godot_variant_as_rect2, - as_vector3 = api.godot_variant_as_vector3, - as_transform2d = api.godot_variant_as_transform2d, - as_plane = api.godot_variant_as_plane, - as_quat = api.godot_variant_as_quat, - as_aabb = api.godot_variant_as_aabb, - as_basis = api.godot_variant_as_basis, - as_transform = api.godot_variant_as_transform, - as_color = api.godot_variant_as_color, - as_node_path = api.godot_variant_as_node_path, - as_rid = api.godot_variant_as_rid, - as_object = function(self) - local obj = api.godot_variant_as_object(self) - if obj ~= nil and obj:call('reference') then - obj = ffi.gc(obj, Object_gc) - end - return obj - end, - as_dictionary = api.godot_variant_as_dictionary, - as_array = api.godot_variant_as_array, - as_pool_byte_array = api.godot_variant_as_pool_byte_array, - as_pool_int_array = api.godot_variant_as_pool_int_array, - as_pool_real_array = api.godot_variant_as_pool_real_array, - as_pool_string_array = api.godot_variant_as_pool_string_array, - as_pool_vector2_array = api.godot_variant_as_pool_vector2_array, - as_pool_vector3_array = api.godot_variant_as_pool_vector3_array, - as_pool_color_array = api.godot_variant_as_pool_color_array, - get_type = api.godot_variant_get_type, - pcall = function(self, method, ...) - local argc = select('#', ...) - local argv = ffi.new(Variant_p_array, argc) - for i = 1, argc do - local arg = select(i, ...) - argv[i - 1] = Variant(arg) - end - local r_error = ffi.new(VariantCallError) - local value = api.godot_variant_call(self, String(method), ffi.cast(const_Variant_pp, argv), argc, r_error) - if r_error.error == GD.CALL_OK then - return true, value:unbox() - else - return false, r_error - end - end, - call = function(self, method, ...) - local success, value = self:pcall(method, ...) - if success then - return value - else - return nil - end - end, - has_method = function(self, method) - return api.godot_variant_has_method(self, String(method)) - end, - hash_compare = function(self, other) - return api.godot_variant_hash_compare(self, Variant(other)) - end, - booleanize = api.godot_variant_booleanize, - unbox = function(self) - local t = self:get_type() - if t == GD.TYPE_NIL then - return nil - elseif t == GD.TYPE_BOOL then - return api.godot_variant_as_bool(self) - elseif t == GD.TYPE_INT then - return tonumber(api.godot_variant_as_int(self)) - elseif t == GD.TYPE_REAL then - return tonumber(api.godot_variant_as_real(self)) - elseif t == GD.TYPE_STRING then - return api.godot_variant_as_string(self) - elseif t == GD.TYPE_VECTOR2 then - return api.godot_variant_as_vector2(self) - elseif t == GD.TYPE_RECT2 then - return api.godot_variant_as_rect2(self) - elseif t == GD.TYPE_VECTOR3 then - return api.godot_variant_as_vector3(self) - elseif t == GD.TYPE_TRANSFORM2D then - return api.godot_variant_as_transform2d(self) - elseif t == GD.TYPE_PLANE then - return api.godot_variant_as_plane(self) - elseif t == GD.TYPE_QUAT then - return api.godot_variant_as_quat(self) - elseif t == GD.TYPE_AABB then - return api.godot_variant_as_aabb(self) - elseif t == GD.TYPE_BASIS then - return api.godot_variant_as_basis(self) - elseif t == GD.TYPE_TRANSFORM then - return api.godot_variant_as_transform(self) - elseif t == GD.TYPE_COLOR then - return api.godot_variant_as_color(self) - elseif t == GD.TYPE_NODE_PATH then - return api.godot_variant_as_node_path(self) - elseif t == GD.TYPE_RID then - return api.godot_variant_as_rid(self) - elseif t == GD.TYPE_OBJECT then - return self:as_object() - elseif t == GD.TYPE_DICTIONARY then - return api.godot_variant_as_dictionary(self) - elseif t == GD.TYPE_ARRAY then - return api.godot_variant_as_array(self) - elseif t == GD.TYPE_POOL_BYTE_ARRAY then - return api.godot_variant_as_pool_byte_array(self) - elseif t == GD.TYPE_POOL_INT_ARRAY then - return api.godot_variant_as_pool_int_array(self) - elseif t == GD.TYPE_POOL_REAL_ARRAY then - return api.godot_variant_as_pool_real_array(self) - elseif t == GD.TYPE_POOL_STRING_ARRAY then - return api.godot_variant_as_pool_string_array(self) - elseif t == GD.TYPE_POOL_VECTOR2_ARRAY then - return api.godot_variant_as_pool_vector2_array(self) - elseif t == GD.TYPE_POOL_VECTOR3_ARRAY then - return api.godot_variant_as_pool_vector3_array(self) - elseif t == GD.TYPE_POOL_COLOR_ARRAY then - return api.godot_variant_as_pool_color_array(self) - end - end, -} - -Variant = ffi.metatype("godot_variant", { - __new = function(mt, value) - local t = type(value) - if t == 'boolean' then - return ffi.C.hgdn_new_bool_variant(value) - elseif t == 'string' or ffi.istype('char *', value) then - return ffi.C.hgdn_new_cstring_variant(value) - elseif ffi.istype(int, value) then - return ffi.C.hgdn_new_int_variant(value) - elseif t == 'number' or tonumber(value) then - return ffi.C.hgdn_new_real_variant(value) - elseif t == 'table' then - if value.tovariant then - return value:tovariant() - else - return ffi.C.hgdn_new_dictionary_variant(Dictionary(value)) - end - elseif t == 'cdata' and value.tovariant then - return value:tovariant() - end - return ffi.C.hgdn_new_nil_variant() - end, - __gc = api.godot_variant_destroy, - __tostring = function(self) - return tostring(self:as_string()) - end, - __concat = concat_gdvalues, - __index = methods, - __eq = function(a, b) - return api.godot_variant_operator_equal(Variant(a), Variant(b)) - end, - __lt = function(a, b) - return api.godot_variant_operator_less(Variant(a), Variant(b)) - end, -}) diff --git a/src/in_editor_callbacks.lua b/src/in_editor_callbacks.lua deleted file mode 100644 index 13a5b99..0000000 --- a/src/in_editor_callbacks.lua +++ /dev/null @@ -1,17 +0,0 @@ -if Engine:is_editor_hint() then - -- void (*lps_get_template_source_code_cb)(const godot_string *class_name, const godot_string *base_class_name, godot_string *ret) - ffi.C.lps_get_template_source_code_cb = wrap_callback(function(class_name, base_class_name, ret) - ret[0] = String('local ' .. class_name .. ' = {\n\textends = "' .. base_class_name .. '",\n}\n\nreturn ' .. class_name) - end) - - -- godot_bool (*lps_validate_cb)(const godot_string *script, int *line_error, int *col_error, godot_string *test_error, const godot_string *path, godot_pool_string_array *functions); - ffi.C.lps_validate_cb = wrap_callback(function(script, line_error, col_error, test_error, path, functions) - local f, err = loadstring(tostring(script), tostring(path)) - if not f then - local line, msg = err:match(":(%d+):%s*(.*)") - line_error[0] = tonumber(line) - test_error[0] = String(msg) - end - return f ~= nil - end) -end diff --git a/src/language_gdnative.c b/src/language_gdnative.c index 34d82b0..7356739 100644 --- a/src/language_gdnative.c +++ b/src/language_gdnative.c @@ -1,163 +1,123 @@ -#include "lua.h" -#include "lualib.h" -#include "lauxlib.h" - -#include "language_gdnative.h" - -// Callbacks definition -void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); -godot_error (*lps_script_init_cb)(godot_pluginscript_script_manifest *data, const godot_string *path, const godot_string *source); -void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); -godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); -void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); -godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); -godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); -void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); -void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); - -// Language functions -static void *lps_alloc(void *userdata, void *ptr, size_t osize, size_t nsize) { - if (nsize == 0) { - hgdn_free(ptr); - return NULL; - } - else { - return hgdn_realloc(ptr, nsize); - } -} - -static int lps_lua_touserdata(lua_State *L) { - const void *ptr = lua_topointer(L, 1); - lua_pushlightuserdata(L, (void *) ptr); - return 1; -} - -static godot_pluginscript_language_data *lps_language_init() { - lua_State *L = lua_newstate(&lps_alloc, NULL); - lua_register(L, "touserdata", &lps_lua_touserdata); - luaL_openlibs(L); - if (luaL_dostring(L, LUA_INIT_SCRIPT) != 0) { - const char *error_msg = lua_tostring(L, -1); - HGDN_PRINT_ERROR("Error running initialization script: %s", error_msg); - } - return L; -} - -static void lps_language_finish(godot_pluginscript_language_data *data) { - lua_State *L = (lua_State *) data; - lua_gc(L, LUA_GCCOLLECT, 0); - lua_close(L); -} - -static void lps_language_add_global_constant(godot_pluginscript_language_data *data, const godot_string *name, const godot_variant *value) { - lps_language_add_global_constant_cb(name, value); -} - -// Script manifest -static godot_pluginscript_script_manifest lps_script_init(godot_pluginscript_language_data *data, const godot_string *path, const godot_string *source, godot_error *error) { - godot_pluginscript_script_manifest manifest = {}; - manifest.data = data; - hgdn_core_api->godot_string_name_new_data(&manifest.name, ""); - hgdn_core_api->godot_string_name_new_data(&manifest.base, ""); - hgdn_core_api->godot_dictionary_new(&manifest.member_lines); - hgdn_core_api->godot_array_new(&manifest.methods); - hgdn_core_api->godot_array_new(&manifest.signals); - hgdn_core_api->godot_array_new(&manifest.properties); - - godot_error ret = lps_script_init_cb(&manifest, path, source); - if (error) { - *error = ret; - } - - return manifest; -} - -static void lps_script_finish(godot_pluginscript_script_data *data) { - lps_script_finish_cb(data); -} - - -// Instance -static godot_pluginscript_instance_data *lps_instance_init(godot_pluginscript_script_data *data, godot_object *owner) { - return lps_instance_init_cb(data, owner); -} - -static void lps_instance_finish(godot_pluginscript_instance_data *data) { - lps_instance_finish_cb(data); -} - -static godot_bool lps_instance_set_prop(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value) { - return lps_instance_set_prop_cb(data, name, value); -} - -static godot_bool lps_instance_get_prop(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret) { - return lps_instance_get_prop_cb(data, name, ret); -} +// HGDN already includes godot-headers +#include "hgdn.h" -static godot_variant lps_instance_call_method(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant_call_error *error) { - godot_variant var = hgdn_new_nil_variant(); - lps_instance_call_method_cb(data, method, args, argcount, &var, error); - return var; -} - -static void lps_instance_notification(godot_pluginscript_instance_data *data, int notification) { - lps_instance_notification_cb(data, notification); -} - -static godot_pluginscript_language_desc lps_language_desc = { - .name = "Lua", - .type = "Lua", - .extension = "lua", - .recognized_extensions = (const char *[]){ "lua", NULL }, - .init = &lps_language_init, - .finish = &lps_language_finish, - .reserved_words = (const char *[]){ - // Lua keywords - "and", "break", "do", "else", "elseif", "end", - "false", "for", "function", "goto", "if", "in", - "local", "nil", "not", "or", "repeat", "return", - "then", "true", "until", "while", - // Other remarkable identifiers - "self", "_G", "_VERSION", -#if LUA_VERSION_NUM >= 502 - "_ENV", -#endif - "bool", "int", "float", - NULL - }, - .comment_delimiters = (const char *[]){ "--", "--[[ ]]", NULL }, - .string_delimiters = (const char *[]){ "' '", "\" \"", "[[ ]]", "[=[ ]=]", NULL }, - .has_named_classes = false, - .supports_builtin_mode = false, - .add_global_constant = &lps_language_add_global_constant, - - .script_desc = { - .init = &lps_script_init, - .finish = &lps_script_finish, - .instance_desc = { - .init = &lps_instance_init, - .finish = &lps_instance_finish, - .set_prop = &lps_instance_set_prop, - .get_prop = &lps_instance_get_prop, - .call_method = &lps_instance_call_method, - .notification = &lps_instance_notification, - }, - }, +// Called when our language runtime will be initialized +godot_pluginscript_language_data *lps_language_init() { + // TODO + return NULL; +} + +// Called when our language runtime will be terminated +void lps_language_finish(godot_pluginscript_language_data *data) { + // TODO +} + +// Called when Godot registers globals in the language, such as Autoload nodes +void lps_language_add_global_constant(godot_pluginscript_language_data *data, const godot_string *name, const godot_variant *value) { + // TODO +} + +// Called when a Lua script is loaded, e.g.: const SomeScript = preload("res://some_script.lua") +godot_pluginscript_script_manifest lps_script_init(godot_pluginscript_language_data *data, const godot_string *path, const godot_string *source, godot_error *error) { + godot_pluginscript_script_manifest manifest = {}; + // All Godot objects must be initialized, or else our plugin SEGFAULTs + hgdn_core_api->godot_string_name_new_data(&manifest.name, ""); + hgdn_core_api->godot_string_name_new_data(&manifest.base, ""); + hgdn_core_api->godot_dictionary_new(&manifest.member_lines); + hgdn_core_api->godot_array_new(&manifest.methods); + hgdn_core_api->godot_array_new(&manifest.signals); + hgdn_core_api->godot_array_new(&manifest.properties); + // TODO + return manifest; +} + +// Called when a Lua script is unloaded +void lps_script_finish(godot_pluginscript_script_data *data) { + // TODO +} + + +// Called when a Script Instance is being created, e.g.: var instance = SomeScript.new() +godot_pluginscript_instance_data *lps_instance_init(godot_pluginscript_script_data *data, godot_object *owner) { + // TODO + return NULL; +} + +// Called when a Script Instance is being finalized +void lps_instance_finish(godot_pluginscript_instance_data *data) { + // TODO +} + +// Called when setting a property on an instance, e.g.: instance.prop = value +godot_bool lps_instance_set_prop(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value) { + // TODO + return false; +} + +// Called when getting a property on an instance, e.g.: var value = instance.prop +godot_bool lps_instance_get_prop(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret) { + // TODO + return false; +} + +// Called when calling a method on an instance, e.g.: instance.method(args) +godot_variant lps_instance_call_method(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant_call_error *error) { + // TODO + return hgdn_new_nil_variant(); +} + +// Called when a notification is sent to instance +void lps_instance_notification(godot_pluginscript_instance_data *data, int notification) { + // TODO +} + +// Declared as a global variable, because Godot needs the +// memory to be valid until our plugin is unloaded +godot_pluginscript_language_desc lps_language_desc = { + .name = "Lua", + .type = "Lua", + .extension = "lua", + .recognized_extensions = (const char *[]){ "lua", NULL }, + .reserved_words = (const char *[]){ + // Lua keywords + "and", "break", "do", "else", "elseif", "end", + "false", "for", "function", "goto", "if", "in", + "local", "nil", "not", "or", "repeat", "return", + "then", "true", "until", "while", + // Other important identifiers + "self", "_G", "_ENV", "_VERSION", + NULL + }, + .comment_delimiters = (const char *[]){ "--", "--[[ ]]", NULL }, + .string_delimiters = (const char *[]){ "' '", "\" \"", "[[ ]]", "[=[ ]=]", NULL }, + // Lua scripts don't care about the class name + .has_named_classes = false, + // Builtin scripts didn't work for me, so disable for now... + .supports_builtin_mode = false, + + // Callbacks + .init = &lps_language_init, + .finish = &lps_language_finish, + .add_global_constant = &lps_language_add_global_constant, + .script_desc = { + .init = &lps_script_init, + .finish = &lps_script_finish, + .instance_desc = { + .init = &lps_instance_init, + .finish = &lps_instance_finish, + .set_prop = &lps_instance_set_prop, + .get_prop = &lps_instance_get_prop, + .call_method = &lps_instance_call_method, + .notification = &lps_instance_notification, + }, + }, }; -// GDNative functions +// GDN_EXPORT makes sure our symbols are exported in the way Godot expects +// This is not needed, since symbols are exported by default, but it +// doesn't hurt being explicit about it GDN_EXPORT void godot_gdnative_init(godot_gdnative_init_options *options) { hgdn_gdnative_init(options); - - if (!hgdn_pluginscript_api) { - HGDN_PRINT_ERROR("PluginScript is not supported!"); - return; - } - - if (options->in_editor) { - lps_register_in_editor_callbacks(&lps_language_desc); - } - hgdn_pluginscript_api->godot_pluginscript_register_language(&lps_language_desc); } @@ -167,3 +127,4 @@ GDN_EXPORT void godot_gdnative_terminate(godot_gdnative_terminate_options *optio GDN_EXPORT void godot_gdnative_singleton() { } + diff --git a/src/language_gdnative.h b/src/language_gdnative.h deleted file mode 100644 index 3cc13fa..0000000 --- a/src/language_gdnative.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __LPS_LANGUAGE_GDNATIVE_H__ -#define __LPS_LANGUAGE_GDNATIVE_H__ - -#include "hgdn.h" - -extern const char LUA_INIT_SCRIPT[]; - -// Language callbacks, to be patched in Lua via FFI -extern void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); -extern godot_error (*lps_script_init_cb)(godot_pluginscript_script_manifest *data, const godot_string *path, const godot_string *source); -extern void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); -extern godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); -extern void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); -extern godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); -extern godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); -extern void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); -extern void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); - -// In editor callbacks -void lps_register_in_editor_callbacks(godot_pluginscript_language_desc *desc); - -extern void (*lps_get_template_source_code_cb)(const godot_string *class_name, const godot_string *base_class_name, godot_string *ret); -extern godot_bool (*lps_validate_cb)(const godot_string *script, int *line_error, int *col_error, godot_string *test_error, const godot_string *path, godot_pool_string_array *functions); - -#endif diff --git a/src/language_in_editor_callbacks.c b/src/language_in_editor_callbacks.c deleted file mode 100644 index 97285f3..0000000 --- a/src/language_in_editor_callbacks.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "language_gdnative.h" - -void (*lps_get_template_source_code_cb)(const godot_string *class_name, const godot_string *base_class_name, godot_string *ret); -godot_bool (*lps_validate_cb)(const godot_string *script, int *line_error, int *col_error, godot_string *test_error, const godot_string *path, godot_pool_string_array *functions); - -godot_string lps_get_template_source_code(godot_pluginscript_language_data *data, const godot_string *class_name, const godot_string *base_class_name) { - godot_string ret; - lps_get_template_source_code_cb(class_name, base_class_name, &ret); - return ret; -} - -godot_bool lps_validate(godot_pluginscript_language_data *data, const godot_string *script, int *line_error, int *col_error, godot_string *test_error, const godot_string *path, godot_pool_string_array *functions) { - return lps_validate_cb(script, line_error, col_error, test_error, path, functions); -} - -void lps_register_in_editor_callbacks(godot_pluginscript_language_desc *desc) { - desc->get_template_source_code = &lps_get_template_source_code; - desc->validate = &lps_validate; -} - diff --git a/src/late_globals.lua b/src/late_globals.lua deleted file mode 100644 index f0f0acf..0000000 --- a/src/late_globals.lua +++ /dev/null @@ -1,31 +0,0 @@ -for k, v in pairs(api.godot_get_global_constants()) do - GD[tostring(k)] = v -end - -local Engine = api.godot_global_get_singleton("Engine") -setmetatable(_G, { - __index = function(self, key) - key = String(key) - if Engine:has_singleton(key) then - local singleton = Engine:get_singleton(key) - rawset(self, key, singleton) - return singleton - end - if ClassDB:class_exists(key) then - local cls = Class:new(key) - rawset(self, key, cls) - return cls - end - end, -}) - --- References are already got, just register them globally -_G.Engine = Engine -_G.ClassDB = ClassDB --- These classes are registered with a prepending "_" in ClassDB -File = Class:new("_File") -Directory = Class:new("_Directory") -Thread = Class:new("_Thread") -Mutex = Class:new("_Mutex") -Semaphore = Class:new("_Semaphore") - diff --git a/src/lps_callbacks.lua b/src/lps_callbacks.lua deleted file mode 100644 index 2978503..0000000 --- a/src/lps_callbacks.lua +++ /dev/null @@ -1,148 +0,0 @@ -local loadstring = loadstring or load -local unpack = table.unpack or unpack - -local lps_scripts = {} -local lps_instances = {} - -local function pointer_to_index(ptr) - return tonumber(ffi.cast('uintptr_t', ptr)) -end - -local function wrap_callback(f) - -- TODO: use `pcall` on debug only? - return function(...) - return select(2, xpcall(f, GD.print_error, ...)) - end -end - --- void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); -ffi.C.lps_language_add_global_constant_cb = wrap_callback(function(_data, name, value) - _G[tostring(name)] = value:unbox() -end) - --- godot_error (*lps_script_init_cb)(godot_pluginscript_script_manifest *data, const godot_string *path, const godot_string *source); -ffi.C.lps_script_init_cb = wrap_callback(function(manifest, path, source) - path = tostring(path) - source = tostring(source) - local script, err = loadstring(source, path) - if not script then - GD.print_error('Error parsing script: ' .. err) - return GD.ERR_PARSE_ERROR - end - local success, metadata = pcall(script) - if not success then - GD.print_error('Error loading script: ' .. metadata) - return GD.ERR_SCRIPT_FAILED - end - if type(metadata) ~= 'table' then - GD.print_error(path .. ': script must return a table') - return GD.ERR_SCRIPT_FAILED - end - local metadata_index = pointer_to_index(touserdata(metadata)) - lps_scripts[metadata_index] = metadata - for k, v in pairs(metadata) do - if k == 'class_name' then - manifest.name = StringName(v) - elseif k == 'tool' then - manifest.is_tool = bool(v) - elseif k == 'extends' then - manifest.base = StringName(v) - elseif type(v) == 'function' then - local method = method_to_dictionary(v) - method.name = String(k) - manifest.methods:append(method) - elseif is_signal(v) then - local sig = signal_to_dictionary(v) - sig.name = String(k) - manifest.signals:append(sig) - else - local prop, default_value = property_to_dictionary(v) - prop.name = String(k) - -- Maintain default value directly for __indexing - metadata[k] = default_value - manifest.properties:append(prop) - end - end - - if #manifest.name == 0 then - manifest.name = StringName("Reference") - end - - manifest.data = ffi.cast('void *', metadata_index) - return GD.OK -end) - --- void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); -ffi.C.lps_script_finish_cb = wrap_callback(function(data) - lps_scripts[pointer_to_index(data)] = nil -end) - --- godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); -ffi.C.lps_instance_init_cb = wrap_callback(function(script_data, owner) - local script = lps_scripts[pointer_to_index(script_data)] - local instance = setmetatable({ - __owner = owner, - __script = script, - }, Instance) - if script._init then - script._init(instance) - end - local instance_index = pointer_to_index(touserdata(instance)) - lps_instances[instance_index] = instance - return ffi.cast('void *', instance_index) -end) - --- void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); -ffi.C.lps_instance_finish_cb = wrap_callback(function(data) - lps_instances[pointer_to_index(data)] = nil -end) - --- godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); -ffi.C.lps_instance_set_prop_cb = wrap_callback(function(data, name, value) - local self = lps_instances[pointer_to_index(data)] - name = tostring(name) - local prop = self.__script[name] - if prop ~= nil then - self[name] = value:unbox() - return true - else - return false - end -end) - --- godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); -ffi.C.lps_instance_get_prop_cb = wrap_callback(function(data, name, ret) - local self = lps_instances[pointer_to_index(data)] - name = tostring(name) - local prop = self.__script[name] - if prop ~= nil then - ret[0] = Variant(self[name]) - return true - else - return false - end -end) - --- void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); -ffi.C.lps_instance_call_method_cb = wrap_callback(function(data, name, args, argcount, ret, err) - local self = lps_instances[pointer_to_index(data)] - name = tostring(name) - local method = self.__script[name] - if method ~= nil then - local args_table = {} - for i = 1, argcount do - args_table[i] = args[i - 1]:unbox() - end - local unboxed_ret = method(self, unpack(args_table)) - ret[0] = Variant(unboxed_ret) - err.error = GD.CALL_OK - else - err.error = GD.CALL_ERROR_INVALID_METHOD - end -end) - --- void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); -ffi.C.lps_instance_notification_cb = function(data, what) - local self = lps_instances[pointer_to_index(data)] - self:call("_notification", what) -end diff --git a/src/lps_class_metadata.lua b/src/lps_class_metadata.lua deleted file mode 100644 index e748bdb..0000000 --- a/src/lps_class_metadata.lua +++ /dev/null @@ -1,107 +0,0 @@ --- Map names and ctypes to godot_variant_type -local property_types = { - bool = GD.TYPE_BOOL, [bool] = GD.TYPE_BOOL, - int = GD.TYPE_INT, [int] = GD.TYPE_INT, - float = GD.TYPE_FLOAT, [float] = GD.TYPE_FLOAT, - String = GD.TYPE_STRING, [String] = GD.TYPE_STRING, - - Vector2 = GD.TYPE_VECTOR2, [Vector2] = GD.TYPE_VECTOR2, - Rect2 = GD.TYPE_RECT2, [Rect2] = GD.TYPE_RECT2, - Vector3 = GD.TYPE_VECTOR3, [Vector3] = GD.TYPE_VECTOR3, - Transform2D = GD.TYPE_TRANSFORM2D, [Transform2D] = GD.TYPE_TRANSFORM2D, - Plane = GD.TYPE_PLANE, [Plane] = GD.TYPE_PLANE, - Quat = GD.TYPE_QUAT, [Quat] = GD.TYPE_QUAT, - AABB = GD.TYPE_AABB, [AABB] = GD.TYPE_AABB, - Basis = GD.TYPE_BASIS, [Basis] = GD.TYPE_BASIS, - Transform = GD.TYPE_TRANSFORM, [Transform] = GD.TYPE_TRANSFORM, - - Color = GD.TYPE_COLOR, [Color] = GD.TYPE_COLOR, - NodePath = GD.TYPE_NODE_PATH, [NodePath] = GD.TYPE_NODE_PATH, - RID = GD.TYPE_RID, [RID] = GD.TYPE_RID, - Object = GD.TYPE_OBJECT, [Object] = GD.TYPE_OBJECT, - Dictionary = GD.TYPE_DICTIONARY, [Dictionary] = GD.TYPE_DICTIONARY, - Array = GD.TYPE_ARRAY, [Array] = GD.TYPE_ARRAY, - - PoolByteArray = GD.TYPE_POOL_BYTE_ARRAY, [PoolByteArray] = GD.TYPE_POOL_BYTE_ARRAY, - PoolIntArray = GD.TYPE_POOL_INT_ARRAY, [PoolIntArray] = GD.TYPE_POOL_INT_ARRAY, - PoolRealArray = GD.TYPE_POOL_REAL_ARRAY, [PoolRealArray] = GD.TYPE_POOL_REAL_ARRAY, - PoolStringArray = GD.TYPE_POOL_STRING_ARRAY, [PoolStringArray] = GD.TYPE_POOL_STRING_ARRAY, - PoolVector2Array = GD.TYPE_POOL_VECTOR2_ARRAY, [PoolVector2Array] = GD.TYPE_POOL_VECTOR2_ARRAY, - PoolVector3Array = GD.TYPE_POOL_VECTOR3_ARRAY, [PoolVector3Array] = GD.TYPE_POOL_VECTOR3_ARRAY, - PoolColorArray = GD.TYPE_POOL_COLOR_ARRAY, [PoolColorArray] = GD.TYPE_POOL_COLOR_ARRAY, -} - -local function get_property_type(value) - local t = type(value) - if t == 'boolean' then - return GD.TYPE_BOOL - elseif t == 'string' then - return GD.TYPE_STRING - elseif ffi.istype(int, value) then - return GD.TYPE_INT - elseif t == 'number' or tonumber(value) then - return GD.TYPE_REAL - elseif t == 'table' then - return GD.TYPE_DICTIONARY - elseif t == 'cdata' and value.varianttype then - return value.varianttype - end - return GD.TYPE_NIL -end - -local Property = {} - -local function is_property(value) - return getmetatable(value) == Property -end - -local function property_to_dictionary(prop) - local dict, default_value = Dictionary(), nil - if not is_property(prop) then - default_value = prop - dict.default_value = prop - dict.type = get_property_type(prop) - else - default_value = prop[1] or prop.default or prop.default_value - local explicit_type = prop[2] or prop.type - dict.type = property_types[explicit_type] or explicit_type or get_property_type(default_value) or GD.TYPE_NIL - end - dict.default_value = default_value - return dict, default_value -end - -function property(metadata) - if type(metadata) ~= 'table' then - metadata = { metadata } - end - return setmetatable(metadata, Property) -end - -function export(metadata) - local prop = property(metadata) - prop.export = true - return prop -end - -local Signal = {} - -local function is_signal(value) - return getmetatable(value) == Signal -end - -local function signal_to_dictionary(sig) - local dict = Dictionary() - dict.args = Array() - for i = 1, #sig do - dict.args:append(Dictionary{ name = String(sig[i]) }) - end - return dict -end - -function signal(...) - return setmetatable({ ... }, Signal) -end - -local function method_to_dictionary(f) - return Dictionary() -end diff --git a/src/lua_init_script.c b/src/lua_init_script.c deleted file mode 100644 index 6d72b47..0000000 --- a/src/lua_init_script.c +++ /dev/null @@ -1,18 +0,0 @@ -const char LUA_INIT_SCRIPT[] = -#include "godot_ffi.lua.h" -#include "godot_class.lua.h" -#include "godot_globals.lua.h" -#include "godot_variant.lua.h" -#include "godot_string.lua.h" -#include "godot_math.lua.h" -#include "godot_misc.lua.h" -#include "godot_dictionary.lua.h" -#include "godot_array.lua.h" -#include "godot_pool_arrays.lua.h" -#include "lps_class_metadata.lua.h" -#include "lps_callbacks.lua.h" -#include "late_globals.lua.h" - -#include "in_editor_callbacks.lua.h" -; - diff --git a/xmake.lua b/xmake.lua index f8a9237..6afc5a4 100644 --- a/xmake.lua +++ b/xmake.lua @@ -1,66 +1,12 @@ -if GD then return {} end - -option("use-luajit") - set_description("Use LuaJIT instead of vanilla Lua") - set_default(true) - set_showmenu(true) -option("system-lua") - set_description("Use Lua/LuaJIT system package, if available") - set_default(false) - set_showmenu(true) -option_end() - -local lua_or_jit = has_config("use-luajit") and "luajit" or "lua" -add_requires(lua_or_jit, { - system = has_config("system-lua") or false, - config = { - gc64 = true, - }, -}) - --- Embed any file into a `#include`able .h file -rule("embed_header") - on_build_file(function(target, sourcefile, opt) - local target_file = path.join(get_config('buildir'), "include", path.filename(sourcefile) .. ".h") - if os.isfile(target_file) and os.mtime(target_file) > os.mtime(sourcefile) then - return - end - - cprint("${bright green}[%3d%%]:${clear} embed_header %s", opt.progress, sourcefile) - local header_contents = {} - for line in io.lines(sourcefile) do - local escaped_line = line:gsub('\\', '\\\\'):gsub('"', '\\"') - table.insert(header_contents, '"' .. escaped_line .. '\\n"') - end - header_contents = table.concat(header_contents, '\n') - io.writefile(target_file, header_contents) - end) -rule_end() - -target("embed_lua_files") - set_kind("object") - add_files("src/*.lua", { rule = "embed_header" }) -target("cat_init_script") - set_kind("phony") - set_default(false) - on_build(function(target) - local buildir = get_config('buildir') - local embedded_files = {} - for line in io.lines("src/lua_init_script.c") do - local m = line:match("#include%W*([^%.]+%.lua%.h)") - if m then - table.insert(embedded_files, io.readfile(path.join(buildir, "include", m))) - end - end - io.writefile(path.join(buildir, "include", "init_script.lua"), table.concat(embedded_files, '\n')) - end) +-- xmake.lua target("lua_pluginscript") set_kind("shared") + -- Set the output name to something easy to find like `build/lua_pluginscript_linux_x86_64.so` set_targetdir("$(buildir)") set_prefixname("") set_suffixname("_$(os)_$(arch)") + -- Add "-I" flags for locating HGDN and godot-header files + add_includedirs("lib/godot-headers", "lib/high-level-gdnative") + -- src/hgdn.c, src/language_gdnative.c add_files("src/*.c") - add_deps("embed_lua_files") - add_includedirs("lib/godot-headers", "lib/high-level-gdnative", "$(buildir)/include") - add_packages(lua_or_jit) target_end() From 1bb3d3308e2513f8b805cbd8e27c4ea47f67aaa0 Mon Sep 17 00:00:00 2001 From: gilzoide Date: Tue, 17 Aug 2021 17:16:09 -0300 Subject: [PATCH 2/2] Add Lua initialization script with FFI and callbacks --- .editorconfig | 2 +- src/ffi.lua | 1369 ++++++++++++++++++++++++++++++++ src/language_gdnative.c | 86 +- src/pluginscript_callbacks.lua | 63 ++ src/string.lua | 69 ++ src/test.lua | 2 + xmake.lua | 83 +- 7 files changed, 1643 insertions(+), 31 deletions(-) create mode 100644 src/ffi.lua create mode 100644 src/pluginscript_callbacks.lua create mode 100644 src/string.lua create mode 100644 src/test.lua diff --git a/.editorconfig b/.editorconfig index 78c3c87..3da2275 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,7 @@ root = true [*] encoding = utf-8 -indent_style = tab +indent_style = space indent_size = 4 [*.md] diff --git a/src/ffi.lua b/src/ffi.lua new file mode 100644 index 0000000..811d403 --- /dev/null +++ b/src/ffi.lua @@ -0,0 +1,1369 @@ +local ffi = require 'ffi' + +ffi.cdef[[ +// GDNative type definitions +typedef bool godot_bool; +typedef int godot_int; +typedef float godot_real; + +typedef struct godot_object { + uint8_t _dont_touch_that[0]; +} godot_object; +typedef struct godot_string { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_string; +typedef struct godot_char_string { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_char_string; +typedef struct godot_string_name { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_string_name; +typedef struct godot_node_path { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_node_path; +typedef struct godot_rid { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_rid; +typedef struct godot_dictionary { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_dictionary; +typedef struct godot_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_array; + +typedef struct godot_pool_byte_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_byte_array_read_access; +typedef struct godot_pool_int_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_int_array_read_access; +typedef struct godot_pool_real_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_real_array_read_access; +typedef struct godot_pool_string_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_string_array_read_access; +typedef struct godot_pool_vector2_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_vector2_array_read_access; +typedef struct godot_pool_vector3_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_vector3_array_read_access; +typedef struct godot_pool_color_array_read_access { + uint8_t _dont_touch_that[1]; +} godot_pool_color_array_read_access; +typedef struct godot_pool_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_array_write_access; +typedef struct godot_pool_byte_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_byte_array_write_access; +typedef struct godot_pool_int_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_int_array_write_access; +typedef struct godot_pool_real_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_real_array_write_access; +typedef struct godot_pool_string_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_string_array_write_access; +typedef struct godot_pool_vector2_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_vector2_array_write_access; +typedef struct godot_pool_vector3_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_vector3_array_write_access; +typedef struct godot_pool_color_array_write_access { + uint8_t _dont_touch_that[1]; +} godot_pool_color_array_write_access; + +typedef struct godot_pool_byte_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_byte_array; +typedef struct godot_pool_int_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_int_array; +typedef struct godot_pool_real_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_real_array; +typedef struct godot_pool_string_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_string_array; +typedef struct godot_pool_vector2_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_vector2_array; +typedef struct godot_pool_vector3_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_vector3_array; +typedef struct godot_pool_color_array { + uint8_t _dont_touch_that[sizeof(void *)]; +} godot_pool_color_array; + +typedef struct godot_variant { + uint8_t _dont_touch_that[(16 + sizeof(int64_t))]; +} godot_variant; + +// Math type definitions copied from HGDN +typedef union godot_vector2 { + godot_real elements[2]; + // xy + struct { godot_real x, y; }; + // rg + struct { godot_real r, g; }; + // st + struct { godot_real s, t; }; + // uv + struct { godot_real u, v; }; + // Size: width/height + struct { godot_real width, height; }; +} godot_vector2; + +typedef union godot_vector3 { + godot_real elements[3]; + // xyz + struct { godot_real x, y, z; }; + struct { godot_vector2 xy; godot_real _0; }; + struct { godot_real _1; godot_vector2 yz; }; + // rgb + struct { godot_real r, g, b; }; + struct { godot_vector2 rg; godot_real _2; }; + struct { godot_real _3; godot_vector2 gb; }; + // stp + struct { godot_real s, t, p; }; + struct { godot_vector2 st; godot_real _6; }; + struct { godot_real _7; godot_vector2 tp; }; + // uv + struct { godot_real u, v, _4; }; + struct { godot_vector2 uv; godot_real _5; }; + // 3D Size: width/height/depth + struct { godot_real width, height, depth; }; +} godot_vector3; + +typedef union godot_color { + godot_real elements[4]; + // xyzw + struct { godot_real x, y, z, w; }; + struct { godot_vector2 xy; godot_vector2 zw; }; + struct { godot_vector3 xyz; godot_real _0; }; + struct { godot_real _1; godot_vector3 yzw; }; + // rgba + struct { godot_real r, g, b, a; }; + struct { godot_vector2 rg; godot_vector2 ba; }; + struct { godot_vector3 rgb; godot_real _2; }; + struct { godot_real _3; godot_vector3 gba; }; + // stpq + struct { godot_real s, t, p, q; }; + struct { godot_vector2 st; godot_vector2 pq; }; + struct { godot_vector3 stp; godot_real _6; }; + struct { godot_real _7; godot_vector3 tpq; }; + // uv + struct { godot_real u, v; godot_real _4[2]; }; + struct { godot_vector2 uv; godot_real _5[2]; }; +} godot_color; + +typedef union godot_rect2 { + godot_real elements[4]; + struct { godot_real x, y, width, height; }; + struct { godot_vector2 position; godot_vector2 size; }; +} godot_rect2; + +typedef union godot_plane { + godot_real elements[4]; + struct { godot_vector3 normal; godot_real d; }; +} godot_plane; + +typedef union godot_quat { + godot_real elements[4]; + struct { godot_real x, y, z, w; }; + struct { godot_vector2 xy; godot_vector2 zw; }; + struct { godot_vector3 xyz; godot_real _0; }; + struct { godot_real _1; godot_vector3 yzw; }; +} godot_quat; + +typedef struct godot_basis { + godot_vector3 elements[3]; +} godot_basis; + +typedef struct godot_aabb { + godot_vector3 position, size; +} godot_aabb; + +typedef struct godot_transform2d { + godot_vector2 elements[3]; +} godot_transform2d; + +typedef struct godot_transform { + godot_basis basis; + godot_vector3 origin; +} godot_transform; + +// Enums +typedef enum { + GODOT_OK, // (0) + GODOT_FAILED, ///< Generic fail error + GODOT_ERR_UNAVAILABLE, ///< What is requested is unsupported/unavailable + GODOT_ERR_UNCONFIGURED, ///< The object being used hasn't been properly set up yet + GODOT_ERR_UNAUTHORIZED, ///< Missing credentials for requested resource + GODOT_ERR_PARAMETER_RANGE_ERROR, ///< Parameter given out of range (5) + GODOT_ERR_OUT_OF_MEMORY, ///< Out of memory + GODOT_ERR_FILE_NOT_FOUND, + GODOT_ERR_FILE_BAD_DRIVE, + GODOT_ERR_FILE_BAD_PATH, + GODOT_ERR_FILE_NO_PERMISSION, // (10) + GODOT_ERR_FILE_ALREADY_IN_USE, + GODOT_ERR_FILE_CANT_OPEN, + GODOT_ERR_FILE_CANT_WRITE, + GODOT_ERR_FILE_CANT_READ, + GODOT_ERR_FILE_UNRECOGNIZED, // (15) + GODOT_ERR_FILE_CORRUPT, + GODOT_ERR_FILE_MISSING_DEPENDENCIES, + GODOT_ERR_FILE_EOF, + GODOT_ERR_CANT_OPEN, ///< Can't open a resource/socket/file + GODOT_ERR_CANT_CREATE, // (20) + GODOT_ERR_QUERY_FAILED, + GODOT_ERR_ALREADY_IN_USE, + GODOT_ERR_LOCKED, ///< resource is locked + GODOT_ERR_TIMEOUT, + GODOT_ERR_CANT_CONNECT, // (25) + GODOT_ERR_CANT_RESOLVE, + GODOT_ERR_CONNECTION_ERROR, + GODOT_ERR_CANT_ACQUIRE_RESOURCE, + GODOT_ERR_CANT_FORK, + GODOT_ERR_INVALID_DATA, ///< Data passed is invalid (30) + GODOT_ERR_INVALID_PARAMETER, ///< Parameter passed is invalid + GODOT_ERR_ALREADY_EXISTS, ///< When adding, item already exists + GODOT_ERR_DOES_NOT_EXIST, ///< When retrieving/erasing, it item does not exist + GODOT_ERR_DATABASE_CANT_READ, ///< database is full + GODOT_ERR_DATABASE_CANT_WRITE, ///< database is full (35) + GODOT_ERR_COMPILATION_FAILED, + GODOT_ERR_METHOD_NOT_FOUND, + GODOT_ERR_LINK_FAILED, + GODOT_ERR_SCRIPT_FAILED, + GODOT_ERR_CYCLIC_LINK, // (40) + GODOT_ERR_INVALID_DECLARATION, + GODOT_ERR_DUPLICATE_SYMBOL, + GODOT_ERR_PARSE_ERROR, + GODOT_ERR_BUSY, + GODOT_ERR_SKIP, // (45) + GODOT_ERR_HELP, ///< user requested help!! + GODOT_ERR_BUG, ///< a bug in the software certainly happened, due to a double check failing or unexpected behavior. + GODOT_ERR_PRINTER_ON_FIRE, /// the parallel port printer is engulfed in flames +} godot_error; + +typedef enum godot_variant_type { + GODOT_VARIANT_TYPE_NIL, + + // atomic types + GODOT_VARIANT_TYPE_BOOL, + GODOT_VARIANT_TYPE_INT, + GODOT_VARIANT_TYPE_REAL, + GODOT_VARIANT_TYPE_STRING, + + // math types + GODOT_VARIANT_TYPE_VECTOR2, // 5 + GODOT_VARIANT_TYPE_RECT2, + GODOT_VARIANT_TYPE_VECTOR3, + GODOT_VARIANT_TYPE_TRANSFORM2D, + GODOT_VARIANT_TYPE_PLANE, + GODOT_VARIANT_TYPE_QUAT, // 10 + GODOT_VARIANT_TYPE_AABB, + GODOT_VARIANT_TYPE_BASIS, + GODOT_VARIANT_TYPE_TRANSFORM, + + // misc types + GODOT_VARIANT_TYPE_COLOR, + GODOT_VARIANT_TYPE_NODE_PATH, // 15 + GODOT_VARIANT_TYPE_RID, + GODOT_VARIANT_TYPE_OBJECT, + GODOT_VARIANT_TYPE_DICTIONARY, + GODOT_VARIANT_TYPE_ARRAY, // 20 + + // arrays + GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY, + GODOT_VARIANT_TYPE_POOL_INT_ARRAY, + GODOT_VARIANT_TYPE_POOL_REAL_ARRAY, + GODOT_VARIANT_TYPE_POOL_STRING_ARRAY, + GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY, // 25 + GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY, + GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY, +} godot_variant_type; + +typedef enum godot_variant_call_error_error { + GODOT_CALL_ERROR_CALL_OK, + GODOT_CALL_ERROR_CALL_ERROR_INVALID_METHOD, + GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT, + GODOT_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS, + GODOT_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS, + GODOT_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL, +} godot_variant_call_error_error; + +typedef struct godot_variant_call_error { + godot_variant_call_error_error error; + int argument; + godot_variant_type expected; +} godot_variant_call_error; + +typedef enum godot_variant_operator { + // comparison + GODOT_VARIANT_OP_EQUAL, + GODOT_VARIANT_OP_NOT_EQUAL, + GODOT_VARIANT_OP_LESS, + GODOT_VARIANT_OP_LESS_EQUAL, + GODOT_VARIANT_OP_GREATER, + GODOT_VARIANT_OP_GREATER_EQUAL, + + // mathematic + GODOT_VARIANT_OP_ADD, + GODOT_VARIANT_OP_SUBTRACT, + GODOT_VARIANT_OP_MULTIPLY, + GODOT_VARIANT_OP_DIVIDE, + GODOT_VARIANT_OP_NEGATE, + GODOT_VARIANT_OP_POSITIVE, + GODOT_VARIANT_OP_MODULE, + GODOT_VARIANT_OP_STRING_CONCAT, + + // bitwise + GODOT_VARIANT_OP_SHIFT_LEFT, + GODOT_VARIANT_OP_SHIFT_RIGHT, + GODOT_VARIANT_OP_BIT_AND, + GODOT_VARIANT_OP_BIT_OR, + GODOT_VARIANT_OP_BIT_XOR, + GODOT_VARIANT_OP_BIT_NEGATE, + + // logic + GODOT_VARIANT_OP_AND, + GODOT_VARIANT_OP_OR, + GODOT_VARIANT_OP_XOR, + GODOT_VARIANT_OP_NOT, + + // containment + GODOT_VARIANT_OP_IN, + + GODOT_VARIANT_OP_MAX, +} godot_variant_operator; + +typedef enum { + GODOT_VECTOR3_AXIS_X, + GODOT_VECTOR3_AXIS_Y, + GODOT_VECTOR3_AXIS_Z, +} godot_vector3_axis; + +typedef enum { + GODOT_METHOD_RPC_MODE_DISABLED, + GODOT_METHOD_RPC_MODE_REMOTE, + GODOT_METHOD_RPC_MODE_MASTER, + GODOT_METHOD_RPC_MODE_PUPPET, + GODOT_METHOD_RPC_MODE_SLAVE = GODOT_METHOD_RPC_MODE_PUPPET, + GODOT_METHOD_RPC_MODE_REMOTESYNC, + GODOT_METHOD_RPC_MODE_SYNC = GODOT_METHOD_RPC_MODE_REMOTESYNC, + GODOT_METHOD_RPC_MODE_MASTERSYNC, + GODOT_METHOD_RPC_MODE_PUPPETSYNC, +} godot_method_rpc_mode; + +typedef enum { + GODOT_PROPERTY_HINT_NONE, ///< no hint provided. + GODOT_PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step,slider; //slider is optional" + GODOT_PROPERTY_HINT_EXP_RANGE, ///< hint_text = "min,max,step", exponential edit + GODOT_PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc" + GODOT_PROPERTY_HINT_EXP_EASING, /// exponential easing function (Math::ease) + GODOT_PROPERTY_HINT_LENGTH, ///< hint_text= "length" (as integer) + GODOT_PROPERTY_HINT_SPRITE_FRAME, // FIXME: Obsolete: drop whenever we can break compat + GODOT_PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer) + GODOT_PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags) + GODOT_PROPERTY_HINT_LAYERS_2D_RENDER, + GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS, + GODOT_PROPERTY_HINT_LAYERS_3D_RENDER, + GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS, + GODOT_PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc," + GODOT_PROPERTY_HINT_DIR, ///< a directory path must be passed + GODOT_PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc," + GODOT_PROPERTY_HINT_GLOBAL_DIR, ///< a directory path must be passed + GODOT_PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type + GODOT_PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines + GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT, ///< used to set a placeholder text for string properties + GODOT_PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color + GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY, + GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS, + GODOT_PROPERTY_HINT_OBJECT_ID, + GODOT_PROPERTY_HINT_TYPE_STRING, ///< a type string, the hint is the base type to choose + GODOT_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE, ///< so something else can provide this (used in scripts) + GODOT_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE, ///< a method of a type + GODOT_PROPERTY_HINT_METHOD_OF_BASE_TYPE, ///< a method of a base type + GODOT_PROPERTY_HINT_METHOD_OF_INSTANCE, ///< a method of an instance + GODOT_PROPERTY_HINT_METHOD_OF_SCRIPT, ///< a method of a script & base + GODOT_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE, ///< a property of a type + GODOT_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE, ///< a property of a base type + GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance + GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base + GODOT_PROPERTY_HINT_MAX, +} godot_property_hint; + +typedef enum { + GODOT_PROPERTY_USAGE_STORAGE = 1, + GODOT_PROPERTY_USAGE_EDITOR = 2, + GODOT_PROPERTY_USAGE_NETWORK = 4, + GODOT_PROPERTY_USAGE_EDITOR_HELPER = 8, + GODOT_PROPERTY_USAGE_CHECKABLE = 16, //used for editing global variables + GODOT_PROPERTY_USAGE_CHECKED = 32, //used for editing global variables + GODOT_PROPERTY_USAGE_INTERNATIONALIZED = 64, //hint for internationalized strings + GODOT_PROPERTY_USAGE_GROUP = 128, //used for grouping props in the editor + GODOT_PROPERTY_USAGE_CATEGORY = 256, + GODOT_PROPERTY_USAGE_STORE_IF_NONZERO = 512, // FIXME: Obsolete: drop whenever we can break compat + GODOT_PROPERTY_USAGE_STORE_IF_NONONE = 1024, // FIXME: Obsolete: drop whenever we can break compat + GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048, + GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096, + GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192, + GODOT_PROPERTY_USAGE_STORE_IF_NULL = 16384, + GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER = 32768, + GODOT_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 65536, + + GODOT_PROPERTY_USAGE_DEFAULT = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK, + GODOT_PROPERTY_USAGE_DEFAULT_INTL = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK | GODOT_PROPERTY_USAGE_INTERNATIONALIZED, + GODOT_PROPERTY_USAGE_NOEDITOR = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_NETWORK, +} godot_property_usage_flags; + +// Core API +typedef struct godot_method_bind { + uint8_t _dont_touch_that[1]; +} godot_method_bind; + +typedef struct godot_gdnative_api_version { + unsigned int major; + unsigned int minor; +} godot_gdnative_api_version; + +typedef struct godot_gdnative_api_struct { + unsigned int type; + godot_gdnative_api_version version; + const struct godot_gdnative_api_struct *next; +} godot_gdnative_api_struct; + +typedef godot_object *(*godot_class_constructor)(); + +typedef godot_variant (*native_call_cb)(void *, godot_array *); + +typedef struct godot_gdnative_core_api_struct { + unsigned int type; + godot_gdnative_api_version version; + const godot_gdnative_api_struct *next; + unsigned int num_extensions; + const godot_gdnative_api_struct **extensions; + void (*godot_color_new_rgba)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b, const godot_real p_a); + void (*godot_color_new_rgb)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b); + godot_real (*godot_color_get_r)(const godot_color *p_self); + void (*godot_color_set_r)(godot_color *p_self, const godot_real r); + godot_real (*godot_color_get_g)(const godot_color *p_self); + void (*godot_color_set_g)(godot_color *p_self, const godot_real g); + godot_real (*godot_color_get_b)(const godot_color *p_self); + void (*godot_color_set_b)(godot_color *p_self, const godot_real b); + godot_real (*godot_color_get_a)(const godot_color *p_self); + void (*godot_color_set_a)(godot_color *p_self, const godot_real a); + godot_real (*godot_color_get_h)(const godot_color *p_self); + godot_real (*godot_color_get_s)(const godot_color *p_self); + godot_real (*godot_color_get_v)(const godot_color *p_self); + godot_string (*godot_color_as_string)(const godot_color *p_self); + godot_int (*godot_color_to_rgba32)(const godot_color *p_self); + godot_int (*godot_color_to_argb32)(const godot_color *p_self); + godot_real (*godot_color_gray)(const godot_color *p_self); + godot_color (*godot_color_inverted)(const godot_color *p_self); + godot_color (*godot_color_contrasted)(const godot_color *p_self); + godot_color (*godot_color_linear_interpolate)(const godot_color *p_self, const godot_color *p_b, const godot_real p_t); + godot_color (*godot_color_blend)(const godot_color *p_self, const godot_color *p_over); + godot_string (*godot_color_to_html)(const godot_color *p_self, const godot_bool p_with_alpha); + godot_bool (*godot_color_operator_equal)(const godot_color *p_self, const godot_color *p_b); + godot_bool (*godot_color_operator_less)(const godot_color *p_self, const godot_color *p_b); + void (*godot_vector2_new)(godot_vector2 *r_dest, const godot_real p_x, const godot_real p_y); + godot_string (*godot_vector2_as_string)(const godot_vector2 *p_self); + godot_vector2 (*godot_vector2_normalized)(const godot_vector2 *p_self); + godot_real (*godot_vector2_length)(const godot_vector2 *p_self); + godot_real (*godot_vector2_angle)(const godot_vector2 *p_self); + godot_real (*godot_vector2_length_squared)(const godot_vector2 *p_self); + godot_bool (*godot_vector2_is_normalized)(const godot_vector2 *p_self); + godot_real (*godot_vector2_distance_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); + godot_real (*godot_vector2_distance_squared_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); + godot_real (*godot_vector2_angle_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); + godot_real (*godot_vector2_angle_to_point)(const godot_vector2 *p_self, const godot_vector2 *p_to); + godot_vector2 (*godot_vector2_linear_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_real p_t); + godot_vector2 (*godot_vector2_cubic_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t); + godot_vector2 (*godot_vector2_rotated)(const godot_vector2 *p_self, const godot_real p_phi); + godot_vector2 (*godot_vector2_tangent)(const godot_vector2 *p_self); + godot_vector2 (*godot_vector2_floor)(const godot_vector2 *p_self); + godot_vector2 (*godot_vector2_snapped)(const godot_vector2 *p_self, const godot_vector2 *p_by); + godot_real (*godot_vector2_aspect)(const godot_vector2 *p_self); + godot_real (*godot_vector2_dot)(const godot_vector2 *p_self, const godot_vector2 *p_with); + godot_vector2 (*godot_vector2_slide)(const godot_vector2 *p_self, const godot_vector2 *p_n); + godot_vector2 (*godot_vector2_bounce)(const godot_vector2 *p_self, const godot_vector2 *p_n); + godot_vector2 (*godot_vector2_reflect)(const godot_vector2 *p_self, const godot_vector2 *p_n); + godot_vector2 (*godot_vector2_abs)(const godot_vector2 *p_self); + godot_vector2 (*godot_vector2_clamped)(const godot_vector2 *p_self, const godot_real p_length); + godot_vector2 (*godot_vector2_operator_add)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_vector2 (*godot_vector2_operator_subtract)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_vector2 (*godot_vector2_operator_multiply_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_vector2 (*godot_vector2_operator_multiply_scalar)(const godot_vector2 *p_self, const godot_real p_b); + godot_vector2 (*godot_vector2_operator_divide_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_vector2 (*godot_vector2_operator_divide_scalar)(const godot_vector2 *p_self, const godot_real p_b); + godot_bool (*godot_vector2_operator_equal)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_bool (*godot_vector2_operator_less)(const godot_vector2 *p_self, const godot_vector2 *p_b); + godot_vector2 (*godot_vector2_operator_neg)(const godot_vector2 *p_self); + void (*godot_vector2_set_x)(godot_vector2 *p_self, const godot_real p_x); + void (*godot_vector2_set_y)(godot_vector2 *p_self, const godot_real p_y); + godot_real (*godot_vector2_get_x)(const godot_vector2 *p_self); + godot_real (*godot_vector2_get_y)(const godot_vector2 *p_self); + void (*godot_quat_new)(godot_quat *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z, const godot_real p_w); + void (*godot_quat_new_with_axis_angle)(godot_quat *r_dest, const godot_vector3 *p_axis, const godot_real p_angle); + godot_real (*godot_quat_get_x)(const godot_quat *p_self); + void (*godot_quat_set_x)(godot_quat *p_self, const godot_real val); + godot_real (*godot_quat_get_y)(const godot_quat *p_self); + void (*godot_quat_set_y)(godot_quat *p_self, const godot_real val); + godot_real (*godot_quat_get_z)(const godot_quat *p_self); + void (*godot_quat_set_z)(godot_quat *p_self, const godot_real val); + godot_real (*godot_quat_get_w)(const godot_quat *p_self); + void (*godot_quat_set_w)(godot_quat *p_self, const godot_real val); + godot_string (*godot_quat_as_string)(const godot_quat *p_self); + godot_real (*godot_quat_length)(const godot_quat *p_self); + godot_real (*godot_quat_length_squared)(const godot_quat *p_self); + godot_quat (*godot_quat_normalized)(const godot_quat *p_self); + godot_bool (*godot_quat_is_normalized)(const godot_quat *p_self); + godot_quat (*godot_quat_inverse)(const godot_quat *p_self); + godot_real (*godot_quat_dot)(const godot_quat *p_self, const godot_quat *p_b); + godot_vector3 (*godot_quat_xform)(const godot_quat *p_self, const godot_vector3 *p_v); + godot_quat (*godot_quat_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t); + godot_quat (*godot_quat_slerpni)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t); + godot_quat (*godot_quat_cubic_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_quat *p_pre_a, const godot_quat *p_post_b, const godot_real p_t); + godot_quat (*godot_quat_operator_multiply)(const godot_quat *p_self, const godot_real p_b); + godot_quat (*godot_quat_operator_add)(const godot_quat *p_self, const godot_quat *p_b); + godot_quat (*godot_quat_operator_subtract)(const godot_quat *p_self, const godot_quat *p_b); + godot_quat (*godot_quat_operator_divide)(const godot_quat *p_self, const godot_real p_b); + godot_bool (*godot_quat_operator_equal)(const godot_quat *p_self, const godot_quat *p_b); + godot_quat (*godot_quat_operator_neg)(const godot_quat *p_self); + void (*godot_basis_new_with_rows)(godot_basis *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis); + void (*godot_basis_new_with_axis_and_angle)(godot_basis *r_dest, const godot_vector3 *p_axis, const godot_real p_phi); + void (*godot_basis_new_with_euler)(godot_basis *r_dest, const godot_vector3 *p_euler); + godot_string (*godot_basis_as_string)(const godot_basis *p_self); + godot_basis (*godot_basis_inverse)(const godot_basis *p_self); + godot_basis (*godot_basis_transposed)(const godot_basis *p_self); + godot_basis (*godot_basis_orthonormalized)(const godot_basis *p_self); + godot_real (*godot_basis_determinant)(const godot_basis *p_self); + godot_basis (*godot_basis_rotated)(const godot_basis *p_self, const godot_vector3 *p_axis, const godot_real p_phi); + godot_basis (*godot_basis_scaled)(const godot_basis *p_self, const godot_vector3 *p_scale); + godot_vector3 (*godot_basis_get_scale)(const godot_basis *p_self); + godot_vector3 (*godot_basis_get_euler)(const godot_basis *p_self); + godot_real (*godot_basis_tdotx)(const godot_basis *p_self, const godot_vector3 *p_with); + godot_real (*godot_basis_tdoty)(const godot_basis *p_self, const godot_vector3 *p_with); + godot_real (*godot_basis_tdotz)(const godot_basis *p_self, const godot_vector3 *p_with); + godot_vector3 (*godot_basis_xform)(const godot_basis *p_self, const godot_vector3 *p_v); + godot_vector3 (*godot_basis_xform_inv)(const godot_basis *p_self, const godot_vector3 *p_v); + godot_int (*godot_basis_get_orthogonal_index)(const godot_basis *p_self); + void (*godot_basis_new)(godot_basis *r_dest); + void (*godot_basis_new_with_euler_quat)(godot_basis *r_dest, const godot_quat *p_euler); + void (*godot_basis_get_elements)(const godot_basis *p_self, godot_vector3 *p_elements); + godot_vector3 (*godot_basis_get_axis)(const godot_basis *p_self, const godot_int p_axis); + void (*godot_basis_set_axis)(godot_basis *p_self, const godot_int p_axis, const godot_vector3 *p_value); + godot_vector3 (*godot_basis_get_row)(const godot_basis *p_self, const godot_int p_row); + void (*godot_basis_set_row)(godot_basis *p_self, const godot_int p_row, const godot_vector3 *p_value); + godot_bool (*godot_basis_operator_equal)(const godot_basis *p_self, const godot_basis *p_b); + godot_basis (*godot_basis_operator_add)(const godot_basis *p_self, const godot_basis *p_b); + godot_basis (*godot_basis_operator_subtract)(const godot_basis *p_self, const godot_basis *p_b); + godot_basis (*godot_basis_operator_multiply_vector)(const godot_basis *p_self, const godot_basis *p_b); + godot_basis (*godot_basis_operator_multiply_scalar)(const godot_basis *p_self, const godot_real p_b); + void (*godot_vector3_new)(godot_vector3 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z); + godot_string (*godot_vector3_as_string)(const godot_vector3 *p_self); + godot_int (*godot_vector3_min_axis)(const godot_vector3 *p_self); + godot_int (*godot_vector3_max_axis)(const godot_vector3 *p_self); + godot_real (*godot_vector3_length)(const godot_vector3 *p_self); + godot_real (*godot_vector3_length_squared)(const godot_vector3 *p_self); + godot_bool (*godot_vector3_is_normalized)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_normalized)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_inverse)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_snapped)(const godot_vector3 *p_self, const godot_vector3 *p_by); + godot_vector3 (*godot_vector3_rotated)(const godot_vector3 *p_self, const godot_vector3 *p_axis, const godot_real p_phi); + godot_vector3 (*godot_vector3_linear_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_real p_t); + godot_vector3 (*godot_vector3_cubic_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t); + godot_real (*godot_vector3_dot)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_cross)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_basis (*godot_vector3_outer)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_basis (*godot_vector3_to_diagonal_matrix)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_abs)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_floor)(const godot_vector3 *p_self); + godot_vector3 (*godot_vector3_ceil)(const godot_vector3 *p_self); + godot_real (*godot_vector3_distance_to)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_real (*godot_vector3_distance_squared_to)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_real (*godot_vector3_angle_to)(const godot_vector3 *p_self, const godot_vector3 *p_to); + godot_vector3 (*godot_vector3_slide)(const godot_vector3 *p_self, const godot_vector3 *p_n); + godot_vector3 (*godot_vector3_bounce)(const godot_vector3 *p_self, const godot_vector3 *p_n); + godot_vector3 (*godot_vector3_reflect)(const godot_vector3 *p_self, const godot_vector3 *p_n); + godot_vector3 (*godot_vector3_operator_add)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_operator_subtract)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_operator_multiply_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_operator_multiply_scalar)(const godot_vector3 *p_self, const godot_real p_b); + godot_vector3 (*godot_vector3_operator_divide_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_operator_divide_scalar)(const godot_vector3 *p_self, const godot_real p_b); + godot_bool (*godot_vector3_operator_equal)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_bool (*godot_vector3_operator_less)(const godot_vector3 *p_self, const godot_vector3 *p_b); + godot_vector3 (*godot_vector3_operator_neg)(const godot_vector3 *p_self); + void (*godot_vector3_set_axis)(godot_vector3 *p_self, const godot_vector3_axis p_axis, const godot_real p_val); + godot_real (*godot_vector3_get_axis)(const godot_vector3 *p_self, const godot_vector3_axis p_axis); + void (*godot_pool_byte_array_new)(godot_pool_byte_array *r_dest); + void (*godot_pool_byte_array_new_copy)(godot_pool_byte_array *r_dest, const godot_pool_byte_array *p_src); + void (*godot_pool_byte_array_new_with_array)(godot_pool_byte_array *r_dest, const godot_array *p_a); + void (*godot_pool_byte_array_append)(godot_pool_byte_array *p_self, const uint8_t p_data); + void (*godot_pool_byte_array_append_array)(godot_pool_byte_array *p_self, const godot_pool_byte_array *p_array); + godot_error (*godot_pool_byte_array_insert)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data); + void (*godot_pool_byte_array_invert)(godot_pool_byte_array *p_self); + void (*godot_pool_byte_array_push_back)(godot_pool_byte_array *p_self, const uint8_t p_data); + void (*godot_pool_byte_array_remove)(godot_pool_byte_array *p_self, const godot_int p_idx); + void (*godot_pool_byte_array_resize)(godot_pool_byte_array *p_self, const godot_int p_size); + godot_pool_byte_array_read_access *(*godot_pool_byte_array_read)(const godot_pool_byte_array *p_self); + godot_pool_byte_array_write_access *(*godot_pool_byte_array_write)(godot_pool_byte_array *p_self); + void (*godot_pool_byte_array_set)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data); + uint8_t (*godot_pool_byte_array_get)(const godot_pool_byte_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_byte_array_size)(const godot_pool_byte_array *p_self); + void (*godot_pool_byte_array_destroy)(godot_pool_byte_array *p_self); + void (*godot_pool_int_array_new)(godot_pool_int_array *r_dest); + void (*godot_pool_int_array_new_copy)(godot_pool_int_array *r_dest, const godot_pool_int_array *p_src); + void (*godot_pool_int_array_new_with_array)(godot_pool_int_array *r_dest, const godot_array *p_a); + void (*godot_pool_int_array_append)(godot_pool_int_array *p_self, const godot_int p_data); + void (*godot_pool_int_array_append_array)(godot_pool_int_array *p_self, const godot_pool_int_array *p_array); + godot_error (*godot_pool_int_array_insert)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data); + void (*godot_pool_int_array_invert)(godot_pool_int_array *p_self); + void (*godot_pool_int_array_push_back)(godot_pool_int_array *p_self, const godot_int p_data); + void (*godot_pool_int_array_remove)(godot_pool_int_array *p_self, const godot_int p_idx); + void (*godot_pool_int_array_resize)(godot_pool_int_array *p_self, const godot_int p_size); + godot_pool_int_array_read_access *(*godot_pool_int_array_read)(const godot_pool_int_array *p_self); + godot_pool_int_array_write_access *(*godot_pool_int_array_write)(godot_pool_int_array *p_self); + void (*godot_pool_int_array_set)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data); + godot_int (*godot_pool_int_array_get)(const godot_pool_int_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_int_array_size)(const godot_pool_int_array *p_self); + void (*godot_pool_int_array_destroy)(godot_pool_int_array *p_self); + void (*godot_pool_real_array_new)(godot_pool_real_array *r_dest); + void (*godot_pool_real_array_new_copy)(godot_pool_real_array *r_dest, const godot_pool_real_array *p_src); + void (*godot_pool_real_array_new_with_array)(godot_pool_real_array *r_dest, const godot_array *p_a); + void (*godot_pool_real_array_append)(godot_pool_real_array *p_self, const godot_real p_data); + void (*godot_pool_real_array_append_array)(godot_pool_real_array *p_self, const godot_pool_real_array *p_array); + godot_error (*godot_pool_real_array_insert)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data); + void (*godot_pool_real_array_invert)(godot_pool_real_array *p_self); + void (*godot_pool_real_array_push_back)(godot_pool_real_array *p_self, const godot_real p_data); + void (*godot_pool_real_array_remove)(godot_pool_real_array *p_self, const godot_int p_idx); + void (*godot_pool_real_array_resize)(godot_pool_real_array *p_self, const godot_int p_size); + godot_pool_real_array_read_access *(*godot_pool_real_array_read)(const godot_pool_real_array *p_self); + godot_pool_real_array_write_access *(*godot_pool_real_array_write)(godot_pool_real_array *p_self); + void (*godot_pool_real_array_set)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data); + godot_real (*godot_pool_real_array_get)(const godot_pool_real_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_real_array_size)(const godot_pool_real_array *p_self); + void (*godot_pool_real_array_destroy)(godot_pool_real_array *p_self); + void (*godot_pool_string_array_new)(godot_pool_string_array *r_dest); + void (*godot_pool_string_array_new_copy)(godot_pool_string_array *r_dest, const godot_pool_string_array *p_src); + void (*godot_pool_string_array_new_with_array)(godot_pool_string_array *r_dest, const godot_array *p_a); + void (*godot_pool_string_array_append)(godot_pool_string_array *p_self, const godot_string *p_data); + void (*godot_pool_string_array_append_array)(godot_pool_string_array *p_self, const godot_pool_string_array *p_array); + godot_error (*godot_pool_string_array_insert)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data); + void (*godot_pool_string_array_invert)(godot_pool_string_array *p_self); + void (*godot_pool_string_array_push_back)(godot_pool_string_array *p_self, const godot_string *p_data); + void (*godot_pool_string_array_remove)(godot_pool_string_array *p_self, const godot_int p_idx); + void (*godot_pool_string_array_resize)(godot_pool_string_array *p_self, const godot_int p_size); + godot_pool_string_array_read_access *(*godot_pool_string_array_read)(const godot_pool_string_array *p_self); + godot_pool_string_array_write_access *(*godot_pool_string_array_write)(godot_pool_string_array *p_self); + void (*godot_pool_string_array_set)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data); + godot_string (*godot_pool_string_array_get)(const godot_pool_string_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_string_array_size)(const godot_pool_string_array *p_self); + void (*godot_pool_string_array_destroy)(godot_pool_string_array *p_self); + void (*godot_pool_vector2_array_new)(godot_pool_vector2_array *r_dest); + void (*godot_pool_vector2_array_new_copy)(godot_pool_vector2_array *r_dest, const godot_pool_vector2_array *p_src); + void (*godot_pool_vector2_array_new_with_array)(godot_pool_vector2_array *r_dest, const godot_array *p_a); + void (*godot_pool_vector2_array_append)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data); + void (*godot_pool_vector2_array_append_array)(godot_pool_vector2_array *p_self, const godot_pool_vector2_array *p_array); + godot_error (*godot_pool_vector2_array_insert)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data); + void (*godot_pool_vector2_array_invert)(godot_pool_vector2_array *p_self); + void (*godot_pool_vector2_array_push_back)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data); + void (*godot_pool_vector2_array_remove)(godot_pool_vector2_array *p_self, const godot_int p_idx); + void (*godot_pool_vector2_array_resize)(godot_pool_vector2_array *p_self, const godot_int p_size); + godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read)(const godot_pool_vector2_array *p_self); + godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write)(godot_pool_vector2_array *p_self); + void (*godot_pool_vector2_array_set)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data); + godot_vector2 (*godot_pool_vector2_array_get)(const godot_pool_vector2_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_vector2_array_size)(const godot_pool_vector2_array *p_self); + void (*godot_pool_vector2_array_destroy)(godot_pool_vector2_array *p_self); + void (*godot_pool_vector3_array_new)(godot_pool_vector3_array *r_dest); + void (*godot_pool_vector3_array_new_copy)(godot_pool_vector3_array *r_dest, const godot_pool_vector3_array *p_src); + void (*godot_pool_vector3_array_new_with_array)(godot_pool_vector3_array *r_dest, const godot_array *p_a); + void (*godot_pool_vector3_array_append)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data); + void (*godot_pool_vector3_array_append_array)(godot_pool_vector3_array *p_self, const godot_pool_vector3_array *p_array); + godot_error (*godot_pool_vector3_array_insert)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data); + void (*godot_pool_vector3_array_invert)(godot_pool_vector3_array *p_self); + void (*godot_pool_vector3_array_push_back)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data); + void (*godot_pool_vector3_array_remove)(godot_pool_vector3_array *p_self, const godot_int p_idx); + void (*godot_pool_vector3_array_resize)(godot_pool_vector3_array *p_self, const godot_int p_size); + godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read)(const godot_pool_vector3_array *p_self); + godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write)(godot_pool_vector3_array *p_self); + void (*godot_pool_vector3_array_set)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data); + godot_vector3 (*godot_pool_vector3_array_get)(const godot_pool_vector3_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_vector3_array_size)(const godot_pool_vector3_array *p_self); + void (*godot_pool_vector3_array_destroy)(godot_pool_vector3_array *p_self); + void (*godot_pool_color_array_new)(godot_pool_color_array *r_dest); + void (*godot_pool_color_array_new_copy)(godot_pool_color_array *r_dest, const godot_pool_color_array *p_src); + void (*godot_pool_color_array_new_with_array)(godot_pool_color_array *r_dest, const godot_array *p_a); + void (*godot_pool_color_array_append)(godot_pool_color_array *p_self, const godot_color *p_data); + void (*godot_pool_color_array_append_array)(godot_pool_color_array *p_self, const godot_pool_color_array *p_array); + godot_error (*godot_pool_color_array_insert)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data); + void (*godot_pool_color_array_invert)(godot_pool_color_array *p_self); + void (*godot_pool_color_array_push_back)(godot_pool_color_array *p_self, const godot_color *p_data); + void (*godot_pool_color_array_remove)(godot_pool_color_array *p_self, const godot_int p_idx); + void (*godot_pool_color_array_resize)(godot_pool_color_array *p_self, const godot_int p_size); + godot_pool_color_array_read_access *(*godot_pool_color_array_read)(const godot_pool_color_array *p_self); + godot_pool_color_array_write_access *(*godot_pool_color_array_write)(godot_pool_color_array *p_self); + void (*godot_pool_color_array_set)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data); + godot_color (*godot_pool_color_array_get)(const godot_pool_color_array *p_self, const godot_int p_idx); + godot_int (*godot_pool_color_array_size)(const godot_pool_color_array *p_self); + void (*godot_pool_color_array_destroy)(godot_pool_color_array *p_self); + godot_pool_byte_array_read_access *(*godot_pool_byte_array_read_access_copy)(const godot_pool_byte_array_read_access *p_read); + const uint8_t *(*godot_pool_byte_array_read_access_ptr)(const godot_pool_byte_array_read_access *p_read); + void (*godot_pool_byte_array_read_access_operator_assign)(godot_pool_byte_array_read_access *p_read, godot_pool_byte_array_read_access *p_other); + void (*godot_pool_byte_array_read_access_destroy)(godot_pool_byte_array_read_access *p_read); + godot_pool_int_array_read_access *(*godot_pool_int_array_read_access_copy)(const godot_pool_int_array_read_access *p_read); + const godot_int *(*godot_pool_int_array_read_access_ptr)(const godot_pool_int_array_read_access *p_read); + void (*godot_pool_int_array_read_access_operator_assign)(godot_pool_int_array_read_access *p_read, godot_pool_int_array_read_access *p_other); + void (*godot_pool_int_array_read_access_destroy)(godot_pool_int_array_read_access *p_read); + godot_pool_real_array_read_access *(*godot_pool_real_array_read_access_copy)(const godot_pool_real_array_read_access *p_read); + const godot_real *(*godot_pool_real_array_read_access_ptr)(const godot_pool_real_array_read_access *p_read); + void (*godot_pool_real_array_read_access_operator_assign)(godot_pool_real_array_read_access *p_read, godot_pool_real_array_read_access *p_other); + void (*godot_pool_real_array_read_access_destroy)(godot_pool_real_array_read_access *p_read); + godot_pool_string_array_read_access *(*godot_pool_string_array_read_access_copy)(const godot_pool_string_array_read_access *p_read); + const godot_string *(*godot_pool_string_array_read_access_ptr)(const godot_pool_string_array_read_access *p_read); + void (*godot_pool_string_array_read_access_operator_assign)(godot_pool_string_array_read_access *p_read, godot_pool_string_array_read_access *p_other); + void (*godot_pool_string_array_read_access_destroy)(godot_pool_string_array_read_access *p_read); + godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read_access_copy)(const godot_pool_vector2_array_read_access *p_read); + const godot_vector2 *(*godot_pool_vector2_array_read_access_ptr)(const godot_pool_vector2_array_read_access *p_read); + void (*godot_pool_vector2_array_read_access_operator_assign)(godot_pool_vector2_array_read_access *p_read, godot_pool_vector2_array_read_access *p_other); + void (*godot_pool_vector2_array_read_access_destroy)(godot_pool_vector2_array_read_access *p_read); + godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read_access_copy)(const godot_pool_vector3_array_read_access *p_read); + const godot_vector3 *(*godot_pool_vector3_array_read_access_ptr)(const godot_pool_vector3_array_read_access *p_read); + void (*godot_pool_vector3_array_read_access_operator_assign)(godot_pool_vector3_array_read_access *p_read, godot_pool_vector3_array_read_access *p_other); + void (*godot_pool_vector3_array_read_access_destroy)(godot_pool_vector3_array_read_access *p_read); + godot_pool_color_array_read_access *(*godot_pool_color_array_read_access_copy)(const godot_pool_color_array_read_access *p_read); + const godot_color *(*godot_pool_color_array_read_access_ptr)(const godot_pool_color_array_read_access *p_read); + void (*godot_pool_color_array_read_access_operator_assign)(godot_pool_color_array_read_access *p_read, godot_pool_color_array_read_access *p_other); + void (*godot_pool_color_array_read_access_destroy)(godot_pool_color_array_read_access *p_read); + godot_pool_byte_array_write_access *(*godot_pool_byte_array_write_access_copy)(const godot_pool_byte_array_write_access *p_write); + uint8_t *(*godot_pool_byte_array_write_access_ptr)(const godot_pool_byte_array_write_access *p_write); + void (*godot_pool_byte_array_write_access_operator_assign)(godot_pool_byte_array_write_access *p_write, godot_pool_byte_array_write_access *p_other); + void (*godot_pool_byte_array_write_access_destroy)(godot_pool_byte_array_write_access *p_write); + godot_pool_int_array_write_access *(*godot_pool_int_array_write_access_copy)(const godot_pool_int_array_write_access *p_write); + godot_int *(*godot_pool_int_array_write_access_ptr)(const godot_pool_int_array_write_access *p_write); + void (*godot_pool_int_array_write_access_operator_assign)(godot_pool_int_array_write_access *p_write, godot_pool_int_array_write_access *p_other); + void (*godot_pool_int_array_write_access_destroy)(godot_pool_int_array_write_access *p_write); + godot_pool_real_array_write_access *(*godot_pool_real_array_write_access_copy)(const godot_pool_real_array_write_access *p_write); + godot_real *(*godot_pool_real_array_write_access_ptr)(const godot_pool_real_array_write_access *p_write); + void (*godot_pool_real_array_write_access_operator_assign)(godot_pool_real_array_write_access *p_write, godot_pool_real_array_write_access *p_other); + void (*godot_pool_real_array_write_access_destroy)(godot_pool_real_array_write_access *p_write); + godot_pool_string_array_write_access *(*godot_pool_string_array_write_access_copy)(const godot_pool_string_array_write_access *p_write); + godot_string *(*godot_pool_string_array_write_access_ptr)(const godot_pool_string_array_write_access *p_write); + void (*godot_pool_string_array_write_access_operator_assign)(godot_pool_string_array_write_access *p_write, godot_pool_string_array_write_access *p_other); + void (*godot_pool_string_array_write_access_destroy)(godot_pool_string_array_write_access *p_write); + godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write_access_copy)(const godot_pool_vector2_array_write_access *p_write); + godot_vector2 *(*godot_pool_vector2_array_write_access_ptr)(const godot_pool_vector2_array_write_access *p_write); + void (*godot_pool_vector2_array_write_access_operator_assign)(godot_pool_vector2_array_write_access *p_write, godot_pool_vector2_array_write_access *p_other); + void (*godot_pool_vector2_array_write_access_destroy)(godot_pool_vector2_array_write_access *p_write); + godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write_access_copy)(const godot_pool_vector3_array_write_access *p_write); + godot_vector3 *(*godot_pool_vector3_array_write_access_ptr)(const godot_pool_vector3_array_write_access *p_write); + void (*godot_pool_vector3_array_write_access_operator_assign)(godot_pool_vector3_array_write_access *p_write, godot_pool_vector3_array_write_access *p_other); + void (*godot_pool_vector3_array_write_access_destroy)(godot_pool_vector3_array_write_access *p_write); + godot_pool_color_array_write_access *(*godot_pool_color_array_write_access_copy)(const godot_pool_color_array_write_access *p_write); + godot_color *(*godot_pool_color_array_write_access_ptr)(const godot_pool_color_array_write_access *p_write); + void (*godot_pool_color_array_write_access_operator_assign)(godot_pool_color_array_write_access *p_write, godot_pool_color_array_write_access *p_other); + void (*godot_pool_color_array_write_access_destroy)(godot_pool_color_array_write_access *p_write); + void (*godot_array_new)(godot_array *r_dest); + void (*godot_array_new_copy)(godot_array *r_dest, const godot_array *p_src); + void (*godot_array_new_pool_color_array)(godot_array *r_dest, const godot_pool_color_array *p_pca); + void (*godot_array_new_pool_vector3_array)(godot_array *r_dest, const godot_pool_vector3_array *p_pv3a); + void (*godot_array_new_pool_vector2_array)(godot_array *r_dest, const godot_pool_vector2_array *p_pv2a); + void (*godot_array_new_pool_string_array)(godot_array *r_dest, const godot_pool_string_array *p_psa); + void (*godot_array_new_pool_real_array)(godot_array *r_dest, const godot_pool_real_array *p_pra); + void (*godot_array_new_pool_int_array)(godot_array *r_dest, const godot_pool_int_array *p_pia); + void (*godot_array_new_pool_byte_array)(godot_array *r_dest, const godot_pool_byte_array *p_pba); + void (*godot_array_set)(godot_array *p_self, const godot_int p_idx, const godot_variant *p_value); + godot_variant (*godot_array_get)(const godot_array *p_self, const godot_int p_idx); + godot_variant *(*godot_array_operator_index)(godot_array *p_self, const godot_int p_idx); + const godot_variant *(*godot_array_operator_index_const)(const godot_array *p_self, const godot_int p_idx); + void (*godot_array_append)(godot_array *p_self, const godot_variant *p_value); + void (*godot_array_clear)(godot_array *p_self); + godot_int (*godot_array_count)(const godot_array *p_self, const godot_variant *p_value); + godot_bool (*godot_array_empty)(const godot_array *p_self); + void (*godot_array_erase)(godot_array *p_self, const godot_variant *p_value); + godot_variant (*godot_array_front)(const godot_array *p_self); + godot_variant (*godot_array_back)(const godot_array *p_self); + godot_int (*godot_array_find)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from); + godot_int (*godot_array_find_last)(const godot_array *p_self, const godot_variant *p_what); + godot_bool (*godot_array_has)(const godot_array *p_self, const godot_variant *p_value); + godot_int (*godot_array_hash)(const godot_array *p_self); + void (*godot_array_insert)(godot_array *p_self, const godot_int p_pos, const godot_variant *p_value); + void (*godot_array_invert)(godot_array *p_self); + godot_variant (*godot_array_pop_back)(godot_array *p_self); + godot_variant (*godot_array_pop_front)(godot_array *p_self); + void (*godot_array_push_back)(godot_array *p_self, const godot_variant *p_value); + void (*godot_array_push_front)(godot_array *p_self, const godot_variant *p_value); + void (*godot_array_remove)(godot_array *p_self, const godot_int p_idx); + void (*godot_array_resize)(godot_array *p_self, const godot_int p_size); + godot_int (*godot_array_rfind)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from); + godot_int (*godot_array_size)(const godot_array *p_self); + void (*godot_array_sort)(godot_array *p_self); + void (*godot_array_sort_custom)(godot_array *p_self, godot_object *p_obj, const godot_string *p_func); + godot_int (*godot_array_bsearch)(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before); + godot_int (*godot_array_bsearch_custom)(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before); + void (*godot_array_destroy)(godot_array *p_self); + void (*godot_dictionary_new)(godot_dictionary *r_dest); + void (*godot_dictionary_new_copy)(godot_dictionary *r_dest, const godot_dictionary *p_src); + void (*godot_dictionary_destroy)(godot_dictionary *p_self); + godot_int (*godot_dictionary_size)(const godot_dictionary *p_self); + godot_bool (*godot_dictionary_empty)(const godot_dictionary *p_self); + void (*godot_dictionary_clear)(godot_dictionary *p_self); + godot_bool (*godot_dictionary_has)(const godot_dictionary *p_self, const godot_variant *p_key); + godot_bool (*godot_dictionary_has_all)(const godot_dictionary *p_self, const godot_array *p_keys); + void (*godot_dictionary_erase)(godot_dictionary *p_self, const godot_variant *p_key); + godot_int (*godot_dictionary_hash)(const godot_dictionary *p_self); + godot_array (*godot_dictionary_keys)(const godot_dictionary *p_self); + godot_array (*godot_dictionary_values)(const godot_dictionary *p_self); + godot_variant (*godot_dictionary_get)(const godot_dictionary *p_self, const godot_variant *p_key); + void (*godot_dictionary_set)(godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_value); + godot_variant *(*godot_dictionary_operator_index)(godot_dictionary *p_self, const godot_variant *p_key); + const godot_variant *(*godot_dictionary_operator_index_const)(const godot_dictionary *p_self, const godot_variant *p_key); + godot_variant *(*godot_dictionary_next)(const godot_dictionary *p_self, const godot_variant *p_key); + godot_bool (*godot_dictionary_operator_equal)(const godot_dictionary *p_self, const godot_dictionary *p_b); + godot_string (*godot_dictionary_to_json)(const godot_dictionary *p_self); + void (*godot_node_path_new)(godot_node_path *r_dest, const godot_string *p_from); + void (*godot_node_path_new_copy)(godot_node_path *r_dest, const godot_node_path *p_src); + void (*godot_node_path_destroy)(godot_node_path *p_self); + godot_string (*godot_node_path_as_string)(const godot_node_path *p_self); + godot_bool (*godot_node_path_is_absolute)(const godot_node_path *p_self); + godot_int (*godot_node_path_get_name_count)(const godot_node_path *p_self); + godot_string (*godot_node_path_get_name)(const godot_node_path *p_self, const godot_int p_idx); + godot_int (*godot_node_path_get_subname_count)(const godot_node_path *p_self); + godot_string (*godot_node_path_get_subname)(const godot_node_path *p_self, const godot_int p_idx); + godot_string (*godot_node_path_get_concatenated_subnames)(const godot_node_path *p_self); + godot_bool (*godot_node_path_is_empty)(const godot_node_path *p_self); + godot_bool (*godot_node_path_operator_equal)(const godot_node_path *p_self, const godot_node_path *p_b); + void (*godot_plane_new_with_reals)(godot_plane *r_dest, const godot_real p_a, const godot_real p_b, const godot_real p_c, const godot_real p_d); + void (*godot_plane_new_with_vectors)(godot_plane *r_dest, const godot_vector3 *p_v1, const godot_vector3 *p_v2, const godot_vector3 *p_v3); + void (*godot_plane_new_with_normal)(godot_plane *r_dest, const godot_vector3 *p_normal, const godot_real p_d); + godot_string (*godot_plane_as_string)(const godot_plane *p_self); + godot_plane (*godot_plane_normalized)(const godot_plane *p_self); + godot_vector3 (*godot_plane_center)(const godot_plane *p_self); + godot_vector3 (*godot_plane_get_any_point)(const godot_plane *p_self); + godot_bool (*godot_plane_is_point_over)(const godot_plane *p_self, const godot_vector3 *p_point); + godot_real (*godot_plane_distance_to)(const godot_plane *p_self, const godot_vector3 *p_point); + godot_bool (*godot_plane_has_point)(const godot_plane *p_self, const godot_vector3 *p_point, const godot_real p_epsilon); + godot_vector3 (*godot_plane_project)(const godot_plane *p_self, const godot_vector3 *p_point); + godot_bool (*godot_plane_intersect_3)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_plane *p_b, const godot_plane *p_c); + godot_bool (*godot_plane_intersects_ray)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_from, const godot_vector3 *p_dir); + godot_bool (*godot_plane_intersects_segment)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_begin, const godot_vector3 *p_end); + godot_plane (*godot_plane_operator_neg)(const godot_plane *p_self); + godot_bool (*godot_plane_operator_equal)(const godot_plane *p_self, const godot_plane *p_b); + void (*godot_plane_set_normal)(godot_plane *p_self, const godot_vector3 *p_normal); + godot_vector3 (*godot_plane_get_normal)(const godot_plane *p_self); + godot_real (*godot_plane_get_d)(const godot_plane *p_self); + void (*godot_plane_set_d)(godot_plane *p_self, const godot_real p_d); + void (*godot_rect2_new_with_position_and_size)(godot_rect2 *r_dest, const godot_vector2 *p_pos, const godot_vector2 *p_size); + void (*godot_rect2_new)(godot_rect2 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_width, const godot_real p_height); + godot_string (*godot_rect2_as_string)(const godot_rect2 *p_self); + godot_real (*godot_rect2_get_area)(const godot_rect2 *p_self); + godot_bool (*godot_rect2_intersects)(const godot_rect2 *p_self, const godot_rect2 *p_b); + godot_bool (*godot_rect2_encloses)(const godot_rect2 *p_self, const godot_rect2 *p_b); + godot_bool (*godot_rect2_has_no_area)(const godot_rect2 *p_self); + godot_rect2 (*godot_rect2_clip)(const godot_rect2 *p_self, const godot_rect2 *p_b); + godot_rect2 (*godot_rect2_merge)(const godot_rect2 *p_self, const godot_rect2 *p_b); + godot_bool (*godot_rect2_has_point)(const godot_rect2 *p_self, const godot_vector2 *p_point); + godot_rect2 (*godot_rect2_grow)(const godot_rect2 *p_self, const godot_real p_by); + godot_rect2 (*godot_rect2_expand)(const godot_rect2 *p_self, const godot_vector2 *p_to); + godot_bool (*godot_rect2_operator_equal)(const godot_rect2 *p_self, const godot_rect2 *p_b); + godot_vector2 (*godot_rect2_get_position)(const godot_rect2 *p_self); + godot_vector2 (*godot_rect2_get_size)(const godot_rect2 *p_self); + void (*godot_rect2_set_position)(godot_rect2 *p_self, const godot_vector2 *p_pos); + void (*godot_rect2_set_size)(godot_rect2 *p_self, const godot_vector2 *p_size); + void (*godot_aabb_new)(godot_aabb *r_dest, const godot_vector3 *p_pos, const godot_vector3 *p_size); + godot_vector3 (*godot_aabb_get_position)(const godot_aabb *p_self); + void (*godot_aabb_set_position)(const godot_aabb *p_self, const godot_vector3 *p_v); + godot_vector3 (*godot_aabb_get_size)(const godot_aabb *p_self); + void (*godot_aabb_set_size)(const godot_aabb *p_self, const godot_vector3 *p_v); + godot_string (*godot_aabb_as_string)(const godot_aabb *p_self); + godot_real (*godot_aabb_get_area)(const godot_aabb *p_self); + godot_bool (*godot_aabb_has_no_area)(const godot_aabb *p_self); + godot_bool (*godot_aabb_has_no_surface)(const godot_aabb *p_self); + godot_bool (*godot_aabb_intersects)(const godot_aabb *p_self, const godot_aabb *p_with); + godot_bool (*godot_aabb_encloses)(const godot_aabb *p_self, const godot_aabb *p_with); + godot_aabb (*godot_aabb_merge)(const godot_aabb *p_self, const godot_aabb *p_with); + godot_aabb (*godot_aabb_intersection)(const godot_aabb *p_self, const godot_aabb *p_with); + godot_bool (*godot_aabb_intersects_plane)(const godot_aabb *p_self, const godot_plane *p_plane); + godot_bool (*godot_aabb_intersects_segment)(const godot_aabb *p_self, const godot_vector3 *p_from, const godot_vector3 *p_to); + godot_bool (*godot_aabb_has_point)(const godot_aabb *p_self, const godot_vector3 *p_point); + godot_vector3 (*godot_aabb_get_support)(const godot_aabb *p_self, const godot_vector3 *p_dir); + godot_vector3 (*godot_aabb_get_longest_axis)(const godot_aabb *p_self); + godot_int (*godot_aabb_get_longest_axis_index)(const godot_aabb *p_self); + godot_real (*godot_aabb_get_longest_axis_size)(const godot_aabb *p_self); + godot_vector3 (*godot_aabb_get_shortest_axis)(const godot_aabb *p_self); + godot_int (*godot_aabb_get_shortest_axis_index)(const godot_aabb *p_self); + godot_real (*godot_aabb_get_shortest_axis_size)(const godot_aabb *p_self); + godot_aabb (*godot_aabb_expand)(const godot_aabb *p_self, const godot_vector3 *p_to_point); + godot_aabb (*godot_aabb_grow)(const godot_aabb *p_self, const godot_real p_by); + godot_vector3 (*godot_aabb_get_endpoint)(const godot_aabb *p_self, const godot_int p_idx); + godot_bool (*godot_aabb_operator_equal)(const godot_aabb *p_self, const godot_aabb *p_b); + void (*godot_rid_new)(godot_rid *r_dest); + godot_int (*godot_rid_get_id)(const godot_rid *p_self); + void (*godot_rid_new_with_resource)(godot_rid *r_dest, const godot_object *p_from); + godot_bool (*godot_rid_operator_equal)(const godot_rid *p_self, const godot_rid *p_b); + godot_bool (*godot_rid_operator_less)(const godot_rid *p_self, const godot_rid *p_b); + void (*godot_transform_new_with_axis_origin)(godot_transform *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis, const godot_vector3 *p_origin); + void (*godot_transform_new)(godot_transform *r_dest, const godot_basis *p_basis, const godot_vector3 *p_origin); + godot_basis (*godot_transform_get_basis)(const godot_transform *p_self); + void (*godot_transform_set_basis)(godot_transform *p_self, const godot_basis *p_v); + godot_vector3 (*godot_transform_get_origin)(const godot_transform *p_self); + void (*godot_transform_set_origin)(godot_transform *p_self, const godot_vector3 *p_v); + godot_string (*godot_transform_as_string)(const godot_transform *p_self); + godot_transform (*godot_transform_inverse)(const godot_transform *p_self); + godot_transform (*godot_transform_affine_inverse)(const godot_transform *p_self); + godot_transform (*godot_transform_orthonormalized)(const godot_transform *p_self); + godot_transform (*godot_transform_rotated)(const godot_transform *p_self, const godot_vector3 *p_axis, const godot_real p_phi); + godot_transform (*godot_transform_scaled)(const godot_transform *p_self, const godot_vector3 *p_scale); + godot_transform (*godot_transform_translated)(const godot_transform *p_self, const godot_vector3 *p_ofs); + godot_transform (*godot_transform_looking_at)(const godot_transform *p_self, const godot_vector3 *p_target, const godot_vector3 *p_up); + godot_plane (*godot_transform_xform_plane)(const godot_transform *p_self, const godot_plane *p_v); + godot_plane (*godot_transform_xform_inv_plane)(const godot_transform *p_self, const godot_plane *p_v); + void (*godot_transform_new_identity)(godot_transform *r_dest); + godot_bool (*godot_transform_operator_equal)(const godot_transform *p_self, const godot_transform *p_b); + godot_transform (*godot_transform_operator_multiply)(const godot_transform *p_self, const godot_transform *p_b); + godot_vector3 (*godot_transform_xform_vector3)(const godot_transform *p_self, const godot_vector3 *p_v); + godot_vector3 (*godot_transform_xform_inv_vector3)(const godot_transform *p_self, const godot_vector3 *p_v); + godot_aabb (*godot_transform_xform_aabb)(const godot_transform *p_self, const godot_aabb *p_v); + godot_aabb (*godot_transform_xform_inv_aabb)(const godot_transform *p_self, const godot_aabb *p_v); + void (*godot_transform2d_new)(godot_transform2d *r_dest, const godot_real p_rot, const godot_vector2 *p_pos); + void (*godot_transform2d_new_axis_origin)(godot_transform2d *r_dest, const godot_vector2 *p_x_axis, const godot_vector2 *p_y_axis, const godot_vector2 *p_origin); + godot_string (*godot_transform2d_as_string)(const godot_transform2d *p_self); + godot_transform2d (*godot_transform2d_inverse)(const godot_transform2d *p_self); + godot_transform2d (*godot_transform2d_affine_inverse)(const godot_transform2d *p_self); + godot_real (*godot_transform2d_get_rotation)(const godot_transform2d *p_self); + godot_vector2 (*godot_transform2d_get_origin)(const godot_transform2d *p_self); + godot_vector2 (*godot_transform2d_get_scale)(const godot_transform2d *p_self); + godot_transform2d (*godot_transform2d_orthonormalized)(const godot_transform2d *p_self); + godot_transform2d (*godot_transform2d_rotated)(const godot_transform2d *p_self, const godot_real p_phi); + godot_transform2d (*godot_transform2d_scaled)(const godot_transform2d *p_self, const godot_vector2 *p_scale); + godot_transform2d (*godot_transform2d_translated)(const godot_transform2d *p_self, const godot_vector2 *p_offset); + godot_vector2 (*godot_transform2d_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); + godot_vector2 (*godot_transform2d_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); + godot_vector2 (*godot_transform2d_basis_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); + godot_vector2 (*godot_transform2d_basis_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v); + godot_transform2d (*godot_transform2d_interpolate_with)(const godot_transform2d *p_self, const godot_transform2d *p_m, const godot_real p_c); + godot_bool (*godot_transform2d_operator_equal)(const godot_transform2d *p_self, const godot_transform2d *p_b); + godot_transform2d (*godot_transform2d_operator_multiply)(const godot_transform2d *p_self, const godot_transform2d *p_b); + void (*godot_transform2d_new_identity)(godot_transform2d *r_dest); + godot_rect2 (*godot_transform2d_xform_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v); + godot_rect2 (*godot_transform2d_xform_inv_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v); + godot_variant_type (*godot_variant_get_type)(const godot_variant *p_v); + void (*godot_variant_new_copy)(godot_variant *r_dest, const godot_variant *p_src); + void (*godot_variant_new_nil)(godot_variant *r_dest); + void (*godot_variant_new_bool)(godot_variant *r_dest, const godot_bool p_b); + void (*godot_variant_new_uint)(godot_variant *r_dest, const uint64_t p_i); + void (*godot_variant_new_int)(godot_variant *r_dest, const int64_t p_i); + void (*godot_variant_new_real)(godot_variant *r_dest, const double p_r); + void (*godot_variant_new_string)(godot_variant *r_dest, const godot_string *p_s); + void (*godot_variant_new_vector2)(godot_variant *r_dest, const godot_vector2 *p_v2); + void (*godot_variant_new_rect2)(godot_variant *r_dest, const godot_rect2 *p_rect2); + void (*godot_variant_new_vector3)(godot_variant *r_dest, const godot_vector3 *p_v3); + void (*godot_variant_new_transform2d)(godot_variant *r_dest, const godot_transform2d *p_t2d); + void (*godot_variant_new_plane)(godot_variant *r_dest, const godot_plane *p_plane); + void (*godot_variant_new_quat)(godot_variant *r_dest, const godot_quat *p_quat); + void (*godot_variant_new_aabb)(godot_variant *r_dest, const godot_aabb *p_aabb); + void (*godot_variant_new_basis)(godot_variant *r_dest, const godot_basis *p_basis); + void (*godot_variant_new_transform)(godot_variant *r_dest, const godot_transform *p_trans); + void (*godot_variant_new_color)(godot_variant *r_dest, const godot_color *p_color); + void (*godot_variant_new_node_path)(godot_variant *r_dest, const godot_node_path *p_np); + void (*godot_variant_new_rid)(godot_variant *r_dest, const godot_rid *p_rid); + void (*godot_variant_new_object)(godot_variant *r_dest, const godot_object *p_obj); + void (*godot_variant_new_dictionary)(godot_variant *r_dest, const godot_dictionary *p_dict); + void (*godot_variant_new_array)(godot_variant *r_dest, const godot_array *p_arr); + void (*godot_variant_new_pool_byte_array)(godot_variant *r_dest, const godot_pool_byte_array *p_pba); + void (*godot_variant_new_pool_int_array)(godot_variant *r_dest, const godot_pool_int_array *p_pia); + void (*godot_variant_new_pool_real_array)(godot_variant *r_dest, const godot_pool_real_array *p_pra); + void (*godot_variant_new_pool_string_array)(godot_variant *r_dest, const godot_pool_string_array *p_psa); + void (*godot_variant_new_pool_vector2_array)(godot_variant *r_dest, const godot_pool_vector2_array *p_pv2a); + void (*godot_variant_new_pool_vector3_array)(godot_variant *r_dest, const godot_pool_vector3_array *p_pv3a); + void (*godot_variant_new_pool_color_array)(godot_variant *r_dest, const godot_pool_color_array *p_pca); + godot_bool (*godot_variant_as_bool)(const godot_variant *p_self); + uint64_t (*godot_variant_as_uint)(const godot_variant *p_self); + int64_t (*godot_variant_as_int)(const godot_variant *p_self); + double (*godot_variant_as_real)(const godot_variant *p_self); + godot_string (*godot_variant_as_string)(const godot_variant *p_self); + godot_vector2 (*godot_variant_as_vector2)(const godot_variant *p_self); + godot_rect2 (*godot_variant_as_rect2)(const godot_variant *p_self); + godot_vector3 (*godot_variant_as_vector3)(const godot_variant *p_self); + godot_transform2d (*godot_variant_as_transform2d)(const godot_variant *p_self); + godot_plane (*godot_variant_as_plane)(const godot_variant *p_self); + godot_quat (*godot_variant_as_quat)(const godot_variant *p_self); + godot_aabb (*godot_variant_as_aabb)(const godot_variant *p_self); + godot_basis (*godot_variant_as_basis)(const godot_variant *p_self); + godot_transform (*godot_variant_as_transform)(const godot_variant *p_self); + godot_color (*godot_variant_as_color)(const godot_variant *p_self); + godot_node_path (*godot_variant_as_node_path)(const godot_variant *p_self); + godot_rid (*godot_variant_as_rid)(const godot_variant *p_self); + godot_object *(*godot_variant_as_object)(const godot_variant *p_self); + godot_dictionary (*godot_variant_as_dictionary)(const godot_variant *p_self); + godot_array (*godot_variant_as_array)(const godot_variant *p_self); + godot_pool_byte_array (*godot_variant_as_pool_byte_array)(const godot_variant *p_self); + godot_pool_int_array (*godot_variant_as_pool_int_array)(const godot_variant *p_self); + godot_pool_real_array (*godot_variant_as_pool_real_array)(const godot_variant *p_self); + godot_pool_string_array (*godot_variant_as_pool_string_array)(const godot_variant *p_self); + godot_pool_vector2_array (*godot_variant_as_pool_vector2_array)(const godot_variant *p_self); + godot_pool_vector3_array (*godot_variant_as_pool_vector3_array)(const godot_variant *p_self); + godot_pool_color_array (*godot_variant_as_pool_color_array)(const godot_variant *p_self); + godot_variant (*godot_variant_call)(godot_variant *p_self, const godot_string *p_method, const godot_variant **p_args, const godot_int p_argcount, godot_variant_call_error *r_error); + godot_bool (*godot_variant_has_method)(const godot_variant *p_self, const godot_string *p_method); + godot_bool (*godot_variant_operator_equal)(const godot_variant *p_self, const godot_variant *p_other); + godot_bool (*godot_variant_operator_less)(const godot_variant *p_self, const godot_variant *p_other); + godot_bool (*godot_variant_hash_compare)(const godot_variant *p_self, const godot_variant *p_other); + godot_bool (*godot_variant_booleanize)(const godot_variant *p_self); + void (*godot_variant_destroy)(godot_variant *p_self); + godot_int (*godot_char_string_length)(const godot_char_string *p_cs); + const char *(*godot_char_string_get_data)(const godot_char_string *p_cs); + void (*godot_char_string_destroy)(godot_char_string *p_cs); + void (*godot_string_new)(godot_string *r_dest); + void (*godot_string_new_copy)(godot_string *r_dest, const godot_string *p_src); + void (*godot_string_new_with_wide_string)(godot_string *r_dest, const wchar_t *p_contents, const int p_size); + const wchar_t *(*godot_string_operator_index)(godot_string *p_self, const godot_int p_idx); + wchar_t (*godot_string_operator_index_const)(const godot_string *p_self, const godot_int p_idx); + const wchar_t *(*godot_string_wide_str)(const godot_string *p_self); + godot_bool (*godot_string_operator_equal)(const godot_string *p_self, const godot_string *p_b); + godot_bool (*godot_string_operator_less)(const godot_string *p_self, const godot_string *p_b); + godot_string (*godot_string_operator_plus)(const godot_string *p_self, const godot_string *p_b); + godot_int (*godot_string_length)(const godot_string *p_self); + signed char (*godot_string_casecmp_to)(const godot_string *p_self, const godot_string *p_str); + signed char (*godot_string_nocasecmp_to)(const godot_string *p_self, const godot_string *p_str); + signed char (*godot_string_naturalnocasecmp_to)(const godot_string *p_self, const godot_string *p_str); + godot_bool (*godot_string_begins_with)(const godot_string *p_self, const godot_string *p_string); + godot_bool (*godot_string_begins_with_char_array)(const godot_string *p_self, const char *p_char_array); + godot_array (*godot_string_bigrams)(const godot_string *p_self); + godot_string (*godot_string_chr)(wchar_t p_character); + godot_bool (*godot_string_ends_with)(const godot_string *p_self, const godot_string *p_string); + godot_int (*godot_string_find)(const godot_string *p_self, godot_string p_what); + godot_int (*godot_string_find_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); + godot_int (*godot_string_findmk)(const godot_string *p_self, const godot_array *p_keys); + godot_int (*godot_string_findmk_from)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from); + godot_int (*godot_string_findmk_from_in_place)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from, godot_int *r_key); + godot_int (*godot_string_findn)(const godot_string *p_self, godot_string p_what); + godot_int (*godot_string_findn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); + godot_int (*godot_string_find_last)(const godot_string *p_self, godot_string p_what); + godot_string (*godot_string_format)(const godot_string *p_self, const godot_variant *p_values); + godot_string (*godot_string_format_with_custom_placeholder)(const godot_string *p_self, const godot_variant *p_values, const char *p_placeholder); + godot_string (*godot_string_hex_encode_buffer)(const uint8_t *p_buffer, godot_int p_len); + godot_int (*godot_string_hex_to_int)(const godot_string *p_self); + godot_int (*godot_string_hex_to_int_without_prefix)(const godot_string *p_self); + godot_string (*godot_string_insert)(const godot_string *p_self, godot_int p_at_pos, godot_string p_string); + godot_bool (*godot_string_is_numeric)(const godot_string *p_self); + godot_bool (*godot_string_is_subsequence_of)(const godot_string *p_self, const godot_string *p_string); + godot_bool (*godot_string_is_subsequence_ofi)(const godot_string *p_self, const godot_string *p_string); + godot_string (*godot_string_lpad)(const godot_string *p_self, godot_int p_min_length); + godot_string (*godot_string_lpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character); + godot_bool (*godot_string_match)(const godot_string *p_self, const godot_string *p_wildcard); + godot_bool (*godot_string_matchn)(const godot_string *p_self, const godot_string *p_wildcard); + godot_string (*godot_string_md5)(const uint8_t *p_md5); + godot_string (*godot_string_num)(double p_num); + godot_string (*godot_string_num_int64)(int64_t p_num, godot_int p_base); + godot_string (*godot_string_num_int64_capitalized)(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex); + godot_string (*godot_string_num_real)(double p_num); + godot_string (*godot_string_num_scientific)(double p_num); + godot_string (*godot_string_num_with_decimals)(double p_num, godot_int p_decimals); + godot_string (*godot_string_pad_decimals)(const godot_string *p_self, godot_int p_digits); + godot_string (*godot_string_pad_zeros)(const godot_string *p_self, godot_int p_digits); + godot_string (*godot_string_replace_first)(const godot_string *p_self, godot_string p_key, godot_string p_with); + godot_string (*godot_string_replace)(const godot_string *p_self, godot_string p_key, godot_string p_with); + godot_string (*godot_string_replacen)(const godot_string *p_self, godot_string p_key, godot_string p_with); + godot_int (*godot_string_rfind)(const godot_string *p_self, godot_string p_what); + godot_int (*godot_string_rfindn)(const godot_string *p_self, godot_string p_what); + godot_int (*godot_string_rfind_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); + godot_int (*godot_string_rfindn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from); + godot_string (*godot_string_rpad)(const godot_string *p_self, godot_int p_min_length); + godot_string (*godot_string_rpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character); + godot_real (*godot_string_similarity)(const godot_string *p_self, const godot_string *p_string); + godot_string (*godot_string_sprintf)(const godot_string *p_self, const godot_array *p_values, godot_bool *p_error); + godot_string (*godot_string_substr)(const godot_string *p_self, godot_int p_from, godot_int p_chars); + double (*godot_string_to_double)(const godot_string *p_self); + godot_real (*godot_string_to_float)(const godot_string *p_self); + godot_int (*godot_string_to_int)(const godot_string *p_self); + godot_string (*godot_string_camelcase_to_underscore)(const godot_string *p_self); + godot_string (*godot_string_camelcase_to_underscore_lowercased)(const godot_string *p_self); + godot_string (*godot_string_capitalize)(const godot_string *p_self); + double (*godot_string_char_to_double)(const char *p_what); + godot_int (*godot_string_char_to_int)(const char *p_what); + int64_t (*godot_string_wchar_to_int)(const wchar_t *p_str); + godot_int (*godot_string_char_to_int_with_len)(const char *p_what, godot_int p_len); + int64_t (*godot_string_char_to_int64_with_len)(const wchar_t *p_str, int p_len); + int64_t (*godot_string_hex_to_int64)(const godot_string *p_self); + int64_t (*godot_string_hex_to_int64_with_prefix)(const godot_string *p_self); + int64_t (*godot_string_to_int64)(const godot_string *p_self); + double (*godot_string_unicode_char_to_double)(const wchar_t *p_str, const wchar_t **r_end); + godot_int (*godot_string_get_slice_count)(const godot_string *p_self, godot_string p_splitter); + godot_string (*godot_string_get_slice)(const godot_string *p_self, godot_string p_splitter, godot_int p_slice); + godot_string (*godot_string_get_slicec)(const godot_string *p_self, wchar_t p_splitter, godot_int p_slice); + godot_array (*godot_string_split)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_allow_empty)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_floats)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_floats_allows_empty)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_floats_mk)(const godot_string *p_self, const godot_array *p_splitters); + godot_array (*godot_string_split_floats_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters); + godot_array (*godot_string_split_ints)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_ints_allows_empty)(const godot_string *p_self, const godot_string *p_splitter); + godot_array (*godot_string_split_ints_mk)(const godot_string *p_self, const godot_array *p_splitters); + godot_array (*godot_string_split_ints_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters); + godot_array (*godot_string_split_spaces)(const godot_string *p_self); + wchar_t (*godot_string_char_lowercase)(wchar_t p_char); + wchar_t (*godot_string_char_uppercase)(wchar_t p_char); + godot_string (*godot_string_to_lower)(const godot_string *p_self); + godot_string (*godot_string_to_upper)(const godot_string *p_self); + godot_string (*godot_string_get_basename)(const godot_string *p_self); + godot_string (*godot_string_get_extension)(const godot_string *p_self); + godot_string (*godot_string_left)(const godot_string *p_self, godot_int p_pos); + wchar_t (*godot_string_ord_at)(const godot_string *p_self, godot_int p_idx); + godot_string (*godot_string_plus_file)(const godot_string *p_self, const godot_string *p_file); + godot_string (*godot_string_right)(const godot_string *p_self, godot_int p_pos); + godot_string (*godot_string_strip_edges)(const godot_string *p_self, godot_bool p_left, godot_bool p_right); + godot_string (*godot_string_strip_escapes)(const godot_string *p_self); + void (*godot_string_erase)(godot_string *p_self, godot_int p_pos, godot_int p_chars); + godot_char_string (*godot_string_ascii)(const godot_string *p_self); + godot_char_string (*godot_string_ascii_extended)(const godot_string *p_self); + godot_char_string (*godot_string_utf8)(const godot_string *p_self); + godot_bool (*godot_string_parse_utf8)(godot_string *p_self, const char *p_utf8); + godot_bool (*godot_string_parse_utf8_with_len)(godot_string *p_self, const char *p_utf8, godot_int p_len); + godot_string (*godot_string_chars_to_utf8)(const char *p_utf8); + godot_string (*godot_string_chars_to_utf8_with_len)(const char *p_utf8, godot_int p_len); + uint32_t (*godot_string_hash)(const godot_string *p_self); + uint64_t (*godot_string_hash64)(const godot_string *p_self); + uint32_t (*godot_string_hash_chars)(const char *p_cstr); + uint32_t (*godot_string_hash_chars_with_len)(const char *p_cstr, godot_int p_len); + uint32_t (*godot_string_hash_utf8_chars)(const wchar_t *p_str); + uint32_t (*godot_string_hash_utf8_chars_with_len)(const wchar_t *p_str, godot_int p_len); + godot_pool_byte_array (*godot_string_md5_buffer)(const godot_string *p_self); + godot_string (*godot_string_md5_text)(const godot_string *p_self); + godot_pool_byte_array (*godot_string_sha256_buffer)(const godot_string *p_self); + godot_string (*godot_string_sha256_text)(const godot_string *p_self); + godot_bool (*godot_string_empty)(const godot_string *p_self); + godot_string (*godot_string_get_base_dir)(const godot_string *p_self); + godot_string (*godot_string_get_file)(const godot_string *p_self); + godot_string (*godot_string_humanize_size)(uint64_t p_size); + godot_bool (*godot_string_is_abs_path)(const godot_string *p_self); + godot_bool (*godot_string_is_rel_path)(const godot_string *p_self); + godot_bool (*godot_string_is_resource_file)(const godot_string *p_self); + godot_string (*godot_string_path_to)(const godot_string *p_self, const godot_string *p_path); + godot_string (*godot_string_path_to_file)(const godot_string *p_self, const godot_string *p_path); + godot_string (*godot_string_simplify_path)(const godot_string *p_self); + godot_string (*godot_string_c_escape)(const godot_string *p_self); + godot_string (*godot_string_c_escape_multiline)(const godot_string *p_self); + godot_string (*godot_string_c_unescape)(const godot_string *p_self); + godot_string (*godot_string_http_escape)(const godot_string *p_self); + godot_string (*godot_string_http_unescape)(const godot_string *p_self); + godot_string (*godot_string_json_escape)(const godot_string *p_self); + godot_string (*godot_string_word_wrap)(const godot_string *p_self, godot_int p_chars_per_line); + godot_string (*godot_string_xml_escape)(const godot_string *p_self); + godot_string (*godot_string_xml_escape_with_quotes)(const godot_string *p_self); + godot_string (*godot_string_xml_unescape)(const godot_string *p_self); + godot_string (*godot_string_percent_decode)(const godot_string *p_self); + godot_string (*godot_string_percent_encode)(const godot_string *p_self); + godot_bool (*godot_string_is_valid_float)(const godot_string *p_self); + godot_bool (*godot_string_is_valid_hex_number)(const godot_string *p_self, godot_bool p_with_prefix); + godot_bool (*godot_string_is_valid_html_color)(const godot_string *p_self); + godot_bool (*godot_string_is_valid_identifier)(const godot_string *p_self); + godot_bool (*godot_string_is_valid_integer)(const godot_string *p_self); + godot_bool (*godot_string_is_valid_ip_address)(const godot_string *p_self); + void (*godot_string_destroy)(godot_string *p_self); + void (*godot_string_name_new)(godot_string_name *r_dest, const godot_string *p_name); + void (*godot_string_name_new_data)(godot_string_name *r_dest, const char *p_name); + godot_string (*godot_string_name_get_name)(const godot_string_name *p_self); + uint32_t (*godot_string_name_get_hash)(const godot_string_name *p_self); + const void *(*godot_string_name_get_data_unique_pointer)(const godot_string_name *p_self); + godot_bool (*godot_string_name_operator_equal)(const godot_string_name *p_self, const godot_string_name *p_other); + godot_bool (*godot_string_name_operator_less)(const godot_string_name *p_self, const godot_string_name *p_other); + void (*godot_string_name_destroy)(godot_string_name *p_self); + void (*godot_object_destroy)(godot_object *p_o); + godot_object *(*godot_global_get_singleton)(const char *p_name); + godot_method_bind *(*godot_method_bind_get_method)(const char *p_classname, const char *p_methodname); + void (*godot_method_bind_ptrcall)(godot_method_bind *p_method_bind, godot_object *p_instance, const void **p_args, void *p_ret); + godot_variant (*godot_method_bind_call)(godot_method_bind *p_method_bind, godot_object *p_instance, const godot_variant **p_args, const int p_arg_count, godot_variant_call_error *p_call_error); + godot_class_constructor (*godot_get_class_constructor)(const char *p_classname); + godot_dictionary (*godot_get_global_constants)(); + void (*godot_register_native_call_type)(const char *call_type, native_call_cb p_callback); + void *(*godot_alloc)(int p_bytes); + void *(*godot_realloc)(void *p_ptr, int p_bytes); + void (*godot_free)(void *p_ptr); + void (*godot_print_error)(const char *p_description, const char *p_function, const char *p_file, int p_line); + void (*godot_print_warning)(const char *p_description, const char *p_function, const char *p_file, int p_line); + void (*godot_print)(const godot_string *p_message); +} godot_gdnative_core_api_struct; + +typedef struct godot_gdnative_core_1_1_api_struct { + unsigned int type; + godot_gdnative_api_version version; + const godot_gdnative_api_struct *next; + godot_int (*godot_color_to_abgr32)(const godot_color *p_self); + godot_int (*godot_color_to_abgr64)(const godot_color *p_self); + godot_int (*godot_color_to_argb64)(const godot_color *p_self); + godot_int (*godot_color_to_rgba64)(const godot_color *p_self); + godot_color (*godot_color_darkened)(const godot_color *p_self, const godot_real p_amount); + godot_color (*godot_color_from_hsv)(const godot_color *p_self, const godot_real p_h, const godot_real p_s, const godot_real p_v, const godot_real p_a); + godot_color (*godot_color_lightened)(const godot_color *p_self, const godot_real p_amount); + godot_array (*godot_array_duplicate)(const godot_array *p_self, const godot_bool p_deep); + godot_variant (*godot_array_max)(const godot_array *p_self); + godot_variant (*godot_array_min)(const godot_array *p_self); + void (*godot_array_shuffle)(godot_array *p_self); + godot_basis (*godot_basis_slerp)(const godot_basis *p_self, const godot_basis *p_b, const godot_real p_t); + godot_variant (*godot_dictionary_get_with_default)(const godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_default); + bool (*godot_dictionary_erase_with_return)(godot_dictionary *p_self, const godot_variant *p_key); + godot_node_path (*godot_node_path_get_as_property_path)(const godot_node_path *p_self); + void (*godot_quat_set_axis_angle)(godot_quat *p_self, const godot_vector3 *p_axis, const godot_real p_angle); + godot_rect2 (*godot_rect2_grow_individual)(const godot_rect2 *p_self, const godot_real p_left, const godot_real p_top, const godot_real p_right, const godot_real p_bottom); + godot_rect2 (*godot_rect2_grow_margin)(const godot_rect2 *p_self, const godot_int p_margin, const godot_real p_by); + godot_rect2 (*godot_rect2_abs)(const godot_rect2 *p_self); + godot_string (*godot_string_dedent)(const godot_string *p_self); + godot_string (*godot_string_trim_prefix)(const godot_string *p_self, const godot_string *p_prefix); + godot_string (*godot_string_trim_suffix)(const godot_string *p_self, const godot_string *p_suffix); + godot_string (*godot_string_rstrip)(const godot_string *p_self, const godot_string *p_chars); + godot_pool_string_array (*godot_string_rsplit)(const godot_string *p_self, const godot_string *p_divisor, const godot_bool p_allow_empty, const godot_int p_maxsplit); + godot_quat (*godot_basis_get_quat)(const godot_basis *p_self); + void (*godot_basis_set_quat)(godot_basis *p_self, const godot_quat *p_quat); + void (*godot_basis_set_axis_angle_scale)(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale); + void (*godot_basis_set_euler_scale)(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale); + void (*godot_basis_set_quat_scale)(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale); + bool (*godot_is_instance_valid)(const godot_object *p_object); + void (*godot_quat_new_with_basis)(godot_quat *r_dest, const godot_basis *p_basis); + void (*godot_quat_new_with_euler)(godot_quat *r_dest, const godot_vector3 *p_euler); + void (*godot_transform_new_with_quat)(godot_transform *r_dest, const godot_quat *p_quat); + godot_string (*godot_variant_get_operator_name)(godot_variant_operator p_op); + void (*godot_variant_evaluate)(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid); +} godot_gdnative_core_1_1_api_struct; + +typedef struct godot_gdnative_core_1_2_api_struct { + unsigned int type; + godot_gdnative_api_version version; + const godot_gdnative_api_struct *next; + godot_dictionary (*godot_dictionary_duplicate)(const godot_dictionary *p_self, const godot_bool p_deep); + godot_vector3 (*godot_vector3_move_toward)(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta); + godot_vector2 (*godot_vector2_move_toward)(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta); + godot_int (*godot_string_count)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to); + godot_int (*godot_string_countn)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to); + godot_vector3 (*godot_vector3_direction_to)(const godot_vector3 *p_self, const godot_vector3 *p_to); + godot_vector2 (*godot_vector2_direction_to)(const godot_vector2 *p_self, const godot_vector2 *p_to); + godot_array (*godot_array_slice)(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_step, const godot_bool p_deep); + godot_bool (*godot_pool_byte_array_empty)(const godot_pool_byte_array *p_self); + godot_bool (*godot_pool_int_array_empty)(const godot_pool_int_array *p_self); + godot_bool (*godot_pool_real_array_empty)(const godot_pool_real_array *p_self); + godot_bool (*godot_pool_string_array_empty)(const godot_pool_string_array *p_self); + godot_bool (*godot_pool_vector2_array_empty)(const godot_pool_vector2_array *p_self); + godot_bool (*godot_pool_vector3_array_empty)(const godot_pool_vector3_array *p_self); + godot_bool (*godot_pool_color_array_empty)(const godot_pool_color_array *p_self); + void *(*godot_get_class_tag)(const godot_string_name *p_class); + godot_object *(*godot_object_cast_to)(const godot_object *p_object, void *p_class_tag); + godot_object *(*godot_instance_from_id)(godot_int p_instance_id); +} godot_gdnative_core_1_2_api_struct; + +// PluginScript +typedef void godot_pluginscript_instance_data; +typedef void godot_pluginscript_script_data; +typedef void godot_pluginscript_language_data; + +typedef struct godot_property_attributes { + godot_method_rpc_mode rset_type; + + godot_int type; + godot_property_hint hint; + godot_string hint_string; + godot_property_usage_flags usage; + godot_variant default_value; +} godot_property_attributes; + +typedef struct godot_pluginscript_instance_desc { + godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner); + void (*finish)(godot_pluginscript_instance_data *p_data); + godot_bool (*set_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, const godot_variant *p_value); + godot_bool (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, godot_variant *r_ret); + godot_variant (*call_method)(godot_pluginscript_instance_data *p_data, const godot_string_name *p_method, const godot_variant **p_args, int p_argcount, godot_variant_call_error *r_error); + void (*notification)(godot_pluginscript_instance_data *p_data, int p_notification); + godot_method_rpc_mode (*get_rpc_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_method); + godot_method_rpc_mode (*get_rset_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_variable); + void (*refcount_incremented)(godot_pluginscript_instance_data *p_data); + bool (*refcount_decremented)(godot_pluginscript_instance_data *p_data); // return true if it can die +} godot_pluginscript_instance_desc; + +typedef struct godot_pluginscript_script_manifest { + godot_pluginscript_script_data *data; + godot_string_name name; + godot_bool is_tool; + godot_string_name base; + godot_dictionary member_lines; + godot_array methods; + godot_array signals; + godot_array properties; +} godot_pluginscript_script_manifest; + +typedef struct godot_pluginscript_script_desc { + godot_pluginscript_script_manifest (*init)(godot_pluginscript_language_data *p_data, const godot_string *p_path, const godot_string *p_source, godot_error *r_error); + void (*finish)(godot_pluginscript_script_data *p_data); + godot_pluginscript_instance_desc instance_desc; +} godot_pluginscript_script_desc; + +typedef struct godot_pluginscript_profiling_data { + godot_string_name signature; + godot_int call_count; + godot_int total_time; // In microseconds + godot_int self_time; // In microseconds +} godot_pluginscript_profiling_data; + +typedef struct godot_pluginscript_language_desc { + const char *name; + const char *type; + const char *extension; + const char **recognized_extensions; // NULL terminated array + godot_pluginscript_language_data *(*init)(); + void (*finish)(godot_pluginscript_language_data *p_data); + const char **reserved_words; // NULL terminated array + const char **comment_delimiters; // NULL terminated array + const char **string_delimiters; // NULL terminated array + godot_bool has_named_classes; + godot_bool supports_builtin_mode; + godot_string (*get_template_source_code)(godot_pluginscript_language_data *p_data, const godot_string *p_class_name, const godot_string *p_base_class_name); + godot_bool (*validate)(godot_pluginscript_language_data *p_data, const godot_string *p_script, int *r_line_error, int *r_col_error, godot_string *r_test_error, const godot_string *p_path, godot_pool_string_array *r_functions); + int (*find_function)(godot_pluginscript_language_data *p_data, const godot_string *p_function, const godot_string *p_code); // Can be NULL + godot_string (*make_function)(godot_pluginscript_language_data *p_data, const godot_string *p_class, const godot_string *p_name, const godot_pool_string_array *p_args); + godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint); + void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line); + void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value); + godot_string (*debug_get_error)(godot_pluginscript_language_data *p_data); + int (*debug_get_stack_level_count)(godot_pluginscript_language_data *p_data); + int (*debug_get_stack_level_line)(godot_pluginscript_language_data *p_data, int p_level); + godot_string (*debug_get_stack_level_function)(godot_pluginscript_language_data *p_data, int p_level); + godot_string (*debug_get_stack_level_source)(godot_pluginscript_language_data *p_data, int p_level); + void (*debug_get_stack_level_locals)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth); + void (*debug_get_stack_level_members)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_members, godot_array *p_values, int p_max_subitems, int p_max_depth); + void (*debug_get_globals)(godot_pluginscript_language_data *p_data, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth); + godot_string (*debug_parse_stack_level_expression)(godot_pluginscript_language_data *p_data, int p_level, const godot_string *p_expression, int p_max_subitems, int p_max_depth); + void (*get_public_functions)(godot_pluginscript_language_data *p_data, godot_array *r_functions); + void (*get_public_constants)(godot_pluginscript_language_data *p_data, godot_dictionary *r_constants); + void (*profiling_start)(godot_pluginscript_language_data *p_data); + void (*profiling_stop)(godot_pluginscript_language_data *p_data); + int (*profiling_get_accumulated_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max); + int (*profiling_get_frame_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max); + void (*profiling_frame)(godot_pluginscript_language_data *p_data); + godot_pluginscript_script_desc script_desc; +} godot_pluginscript_language_desc; + +// Global API pointers +const godot_gdnative_core_api_struct *hgdn_core_api; + +// Global PluginScript callbacks +void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); +void (*lps_script_init_cb)(godot_pluginscript_script_manifest *manifest, const godot_string *path, const godot_string *source, godot_error *error); +void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); +godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); +void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); +godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); +godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); +void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); +void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); +]] + +-- `hgdn_core_api` will be already initialized at this point +-- by the call to `hgdn_gdnative_init` at `godot_gdnative_init` +local api = ffi.C.hgdn_core_api diff --git a/src/language_gdnative.c b/src/language_gdnative.c index 7356739..ff61695 100644 --- a/src/language_gdnative.c +++ b/src/language_gdnative.c @@ -1,25 +1,66 @@ // HGDN already includes godot-headers #include "hgdn.h" +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" + +extern const char LUA_INIT_SCRIPT[]; + +// Callbacks to be implemented in Lua +void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); +// LuaJIT callbacks cannot return C aggregate types by value, so +// `manifest` will be created in C and passed by reference +// Ref: https://luajit.org/ext_ffi_semantics.html#callback +void (*lps_script_init_cb)(godot_pluginscript_script_manifest *manifest, const godot_string *path, const godot_string *source, godot_error *error); +void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); +godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); +void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); +godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); +godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); +// Same caveat as `lps_script_init_cb` +void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); +void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); + +// lua_Alloc function: https://www.lua.org/manual/5.4/manual.html#lua_Alloc +// Use `hgdn_free` and `hgdn_realloc` to make memory requests +// go through Godot, so memory usage is tracked on debug builds +void *lps_alloc(void *userdata, void *ptr, size_t osize, size_t nsize) { + if (nsize == 0) { + hgdn_free(ptr); + return NULL; + } + else { + return hgdn_realloc(ptr, nsize); + } +} // Called when our language runtime will be initialized godot_pluginscript_language_data *lps_language_init() { - // TODO - return NULL; + lua_State *L = lua_newstate(&lps_alloc, NULL); + luaL_openlibs(L); // Load core Lua libraries + if (luaL_dostring(L, LUA_INIT_SCRIPT) != 0) { + const char *error_msg = lua_tostring(L, -1); + HGDN_PRINT_ERROR("Error running initialization script: %s", error_msg); + } + return L; } // Called when our language runtime will be terminated void lps_language_finish(godot_pluginscript_language_data *data) { - // TODO + lua_close((lua_State *) data); } // Called when Godot registers globals in the language, such as Autoload nodes void lps_language_add_global_constant(godot_pluginscript_language_data *data, const godot_string *name, const godot_variant *value) { - // TODO + lps_language_add_global_constant_cb(name, value); } // Called when a Lua script is loaded, e.g.: const SomeScript = preload("res://some_script.lua") godot_pluginscript_script_manifest lps_script_init(godot_pluginscript_language_data *data, const godot_string *path, const godot_string *source, godot_error *error) { - godot_pluginscript_script_manifest manifest = {}; + godot_pluginscript_script_manifest manifest = { + .data = NULL, + .is_tool = false, + }; // All Godot objects must be initialized, or else our plugin SEGFAULTs hgdn_core_api->godot_string_name_new_data(&manifest.name, ""); hgdn_core_api->godot_string_name_new_data(&manifest.base, ""); @@ -27,48 +68,51 @@ godot_pluginscript_script_manifest lps_script_init(godot_pluginscript_language_d hgdn_core_api->godot_array_new(&manifest.methods); hgdn_core_api->godot_array_new(&manifest.signals); hgdn_core_api->godot_array_new(&manifest.properties); - // TODO + + godot_error cb_error = GODOT_ERR_SCRIPT_FAILED; + lps_script_init_cb(&manifest, path, source, &cb_error); + if (error) { + *error = cb_error; + } + return manifest; } // Called when a Lua script is unloaded void lps_script_finish(godot_pluginscript_script_data *data) { - // TODO + lps_script_finish_cb(data); } - // Called when a Script Instance is being created, e.g.: var instance = SomeScript.new() godot_pluginscript_instance_data *lps_instance_init(godot_pluginscript_script_data *data, godot_object *owner) { - // TODO - return NULL; + return lps_instance_init_cb(data, owner); } // Called when a Script Instance is being finalized void lps_instance_finish(godot_pluginscript_instance_data *data) { - // TODO + lps_instance_finish_cb(data); } // Called when setting a property on an instance, e.g.: instance.prop = value godot_bool lps_instance_set_prop(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value) { - // TODO - return false; + return lps_instance_set_prop_cb(data, name, value); } // Called when getting a property on an instance, e.g.: var value = instance.prop godot_bool lps_instance_get_prop(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret) { - // TODO - return false; + return lps_instance_get_prop_cb(data, name, ret); } // Called when calling a method on an instance, e.g.: instance.method(args) godot_variant lps_instance_call_method(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant_call_error *error) { - // TODO - return hgdn_new_nil_variant(); + godot_variant var = hgdn_new_nil_variant(); + lps_instance_call_method_cb(data, method, args, argcount, &var, error); + return var; } // Called when a notification is sent to instance void lps_instance_notification(godot_pluginscript_instance_data *data, int notification) { - // TODO + lps_instance_notification_cb(data, notification); } // Declared as a global variable, because Godot needs the @@ -117,12 +161,12 @@ godot_pluginscript_language_desc lps_language_desc = { // This is not needed, since symbols are exported by default, but it // doesn't hurt being explicit about it GDN_EXPORT void godot_gdnative_init(godot_gdnative_init_options *options) { - hgdn_gdnative_init(options); - hgdn_pluginscript_api->godot_pluginscript_register_language(&lps_language_desc); + hgdn_gdnative_init(options); + hgdn_pluginscript_api->godot_pluginscript_register_language(&lps_language_desc); } GDN_EXPORT void godot_gdnative_terminate(godot_gdnative_terminate_options *options) { - hgdn_gdnative_terminate(options); + hgdn_gdnative_terminate(options); } GDN_EXPORT void godot_gdnative_singleton() { diff --git a/src/pluginscript_callbacks.lua b/src/pluginscript_callbacks.lua new file mode 100644 index 0000000..9a3e0c4 --- /dev/null +++ b/src/pluginscript_callbacks.lua @@ -0,0 +1,63 @@ +-- Error printing facility +local function print_error(message) + local info = debug.getinfo(2, 'nSl') + api.godot_print_error(message, info.name, info.short_src, info.currentline) +end + +-- All callbacks will be run in protected mode, to avoid errors in Lua +-- aborting the game/application +-- If an error is thrown, it will be printed in the output console +local function wrap_callback(f) + return function(...) + local success, result = xpcall(f, print_error, ...) + return result + end +end + +-- void (*lps_language_add_global_constant_cb)(const godot_string *name, const godot_variant *value); +ffi.C.lps_language_add_global_constant_cb = wrap_callback(function(name, value) + api.godot_print(String('TODO: add_global_constant')) +end) + +-- void (*lps_script_init_cb)(godot_pluginscript_script_manifest *manifest, const godot_string *path, const godot_string *source, godot_error *error); +ffi.C.lps_script_init_cb = wrap_callback(function(manifest, path, source, err) + api.godot_print(String('TODO: script_init ' .. path)) +end) + +-- void (*lps_script_finish_cb)(godot_pluginscript_script_data *data); +ffi.C.lps_script_finish_cb = wrap_callback(function(data) + api.godot_print(String('TODO: script_finish')) +end) + +-- godot_pluginscript_instance_data *(*lps_instance_init_cb)(godot_pluginscript_script_data *data, godot_object *owner); +ffi.C.lps_instance_init_cb = wrap_callback(function(script_data, owner) + api.godot_print(String('TODO: instance_init')) + return nil +end) + +-- void (*lps_instance_finish_cb)(godot_pluginscript_instance_data *data); +ffi.C.lps_instance_finish_cb = wrap_callback(function(data) + api.godot_print(String('TODO: instance_finish')) +end) + +-- godot_bool (*lps_instance_set_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, const godot_variant *value); +ffi.C.lps_instance_set_prop_cb = wrap_callback(function(data, name, value) + api.godot_print(String('TODO: instance_set_prop')) + return false +end) + +-- godot_bool (*lps_instance_get_prop_cb)(godot_pluginscript_instance_data *data, const godot_string *name, godot_variant *ret); +ffi.C.lps_instance_get_prop_cb = wrap_callback(function(data, name, ret) + api.godot_print(String('TODO: instance_get_prop')) + return false +end) + +-- void (*lps_instance_call_method_cb)(godot_pluginscript_instance_data *data, const godot_string_name *method, const godot_variant **args, int argcount, godot_variant *ret, godot_variant_call_error *error); +ffi.C.lps_instance_call_method_cb = wrap_callback(function(data, name, args, argcount, ret, err) + api.godot_print(String('TODO: instance_call_method')) +end) + +-- void (*lps_instance_notification_cb)(godot_pluginscript_instance_data *data, int notification); +ffi.C.lps_instance_notification_cb = wrap_callback(function(data, what) + api.godot_print(String('TODO: instance_notification')) +end) diff --git a/src/string.lua b/src/string.lua new file mode 100644 index 0000000..f7422cc --- /dev/null +++ b/src/string.lua @@ -0,0 +1,69 @@ +-- Notice that even `api` being declared as a local variable at +-- `src/ffi.lua`, since all files will get concatenated before run, we +-- can access it here + +-- String methods, taken from the GDNative API and adjusted to feel +-- more idiomatic to Lua, when necessary +local string_methods = { + -- Get the String length, in wide characters + length = api.godot_string_length, + -- Return the String as a Lua string, encoded as UTF-8 + utf8 = function(self) + -- `godot_string` holds wide characters, so we need to get a + -- character string, then create a Lua string from it + local char_string = api.godot_string_utf8(self) + local pointer = api.godot_char_string_get_data(char_string) + local length = api.godot_char_string_length(char_string) + local lua_string = ffi.string(pointer, length) + -- Just as in C, we need to destroy the objects we own + api.godot_char_string_destroy(char_string) + return lua_string + end, +} + +-- String metatype, used to construct instances of `godot_string` +-- Notice that we make this a global variable, so scripts can use it +-- right away +String = ffi.metatype('godot_string', { + -- Constructor method + -- Calling `String(value)` will create a string that holds the + -- contents of `value` after passing it through `tostring` + __new = function(metatype, value) + local self = ffi.new(metatype) + -- if `value` is another String, just create a copy + if ffi.istype(metatype, value) then + api.godot_string_new_copy(self, value) + -- general case + else + local str = tostring(value) + api.godot_string_parse_utf8_with_len(self, str, #str) + end + return self + end, + -- Destructor method + __gc = api.godot_string_destroy, + -- Setting `__index` to the methods table makes methods available + -- from instances, e.g.: `godot_string:length()` + __index = string_methods, + -- Length operation: `#godot_string` returns the String length + __len = function(self) + return string_methods.length(self) + end, + -- Calling `tostring(string)` will call this metamethod + __tostring = string_methods.utf8, + -- Concatenation operation: `godot_string .. godot_string` + -- will create a new String with both contents concatenated + __concat = function(a, b) + -- Converting `a` and `b` to Strings make expressions like + -- `42 .. some_godot_string .. " some Lua string "` possible + local str = api.godot_string_operator_plus(String(a), String(b)) + -- LuaJIT can't be sure if data returned from a C function must + -- be garbage-collected or not, since C APIs may require the + -- caller to clean the memory up or not. + -- Explicitly track the return in cases where we own the data, + -- such as this one: in the GDNative API, when a function + -- returns a struct/union and not a pointer, we own the data. + ffi.gc(str, api.godot_string_destroy) + return str + end, +}) diff --git a/src/test.lua b/src/test.lua new file mode 100644 index 0000000..0548205 --- /dev/null +++ b/src/test.lua @@ -0,0 +1,2 @@ +local message = String "Hello world from Lua! \\o/" +api.godot_print(message) diff --git a/xmake.lua b/xmake.lua index 6afc5a4..ce5574d 100644 --- a/xmake.lua +++ b/xmake.lua @@ -1,12 +1,77 @@ -- xmake.lua +add_requires("luajit", { + -- Force xmake to build and embed LuaJIT, + -- instead of searching for it in the system + system = false, + -- Turn on LuaJIT's GC64 mode, enabling full memory range on 64-bit systems, + -- also allowing custom memory allocation functions to be hooked to Lua + config = { + gc64 = true, + }, +}) + +rule("generate_init_script") + -- The rule "generate_init_script" builds an object file + set_kind("object") + on_buildcmd_files(function(target, batchcmds, sourcebatch, opt) + -- Path for built Lua script: `build/init_script.lua` + local full_script_path = vformat("$(buildir)/init_script.lua") + -- Path for the C file with embedded script will be `build/init_script.c` + local script_c_path = vformat("$(buildir)/init_script.c") + -- This is how we add a new object file to a xmake target + local script_obj_path = target:objectfile(script_c_path) + table.insert(target:objectfiles(), script_obj_path) + + batchcmds:show_progress(opt.progress, "${color.build.object}embed.lua (%s)", table.concat(sourcebatch.sourcefiles, ', ')) + -- Execute `cat src/*.lua > build/init_script.lua` + batchcmds:execv("cat", sourcebatch.sourcefiles, { stdout = full_script_path }) + -- Execute `sed -e ↓SED_SCRIPT_BELOW↓ build/init_script.lua > build/init_script.c` + batchcmds:execv("sed", { "-e", [[ + # Escape backslashes (`s` substitutes content, `g` means change all occurrences in line) + s/\\/\\\\/g + # Escape quotes + s/"/\\"/g + # Add starting quote (`^` matches the begining of the line) + s/^/"/ + # Add ending newline and quote (`$` matches the end of the line) + s/$/\\n"/ + # Add C declaration lines: + # before first line (`i` inserts a line before `1`, the first line) + 1 i const char LUA_INIT_SCRIPT[] = + # and after last line (`a` appends a line after `$`, the last line) + $ a ; + ]], full_script_path }, { stdout = script_c_path }) + -- Finally, compile the generated C file + batchcmds:compile(script_c_path, script_obj_path) + -- The following informs xmake to only rebuild the + -- object file if source files are changed + batchcmds:add_depfiles(sourcebatch.sourcefiles) + batchcmds:set_depmtime(os.mtime(script_obj_path)) + end) +rule_end() + target("lua_pluginscript") - set_kind("shared") - -- Set the output name to something easy to find like `build/lua_pluginscript_linux_x86_64.so` - set_targetdir("$(buildir)") - set_prefixname("") - set_suffixname("_$(os)_$(arch)") - -- Add "-I" flags for locating HGDN and godot-header files - add_includedirs("lib/godot-headers", "lib/high-level-gdnative") - -- src/hgdn.c, src/language_gdnative.c - add_files("src/*.c") + set_kind("shared") + -- Set the output name to something easy to find like `build/lua_pluginscript_linux_x86_64.so` + set_targetdir("$(buildir)") + set_prefixname("") + set_suffixname("_$(os)_$(arch)") + -- Add "-I" flags for locating HGDN and godot-header files + add_includedirs("lib/godot-headers", "lib/high-level-gdnative") + -- src/hgdn.c, src/language_gdnative.c + add_files("src/*.c") + add_files( + -- Notice that the order is important! + -- First, FFI declarations + "src/ffi.lua", + -- Then String implementation + "src/string.lua", + -- Then PluginScript callbacks + "src/pluginscript_callbacks.lua", + -- Finally, our test code + "src/test.lua", + { rule = "generate_init_script" } + ) + -- Add "luajit" as dependency + add_packages("luajit") target_end()