diff --git a/addons/lua-gdextension/CHANGELOG.md b/addons/lua-gdextension/CHANGELOG.md new file mode 100644 index 0000000..1800008 --- /dev/null +++ b/addons/lua-gdextension/CHANGELOG.md @@ -0,0 +1,195 @@ +# Changelog +## [Unreleased](https://github.com/gilzoide/lua-gdextension/compare/0.7.0...HEAD) + + +## [0.7.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.7.0) +### Added +- Support for setting up RPC method configurations in `LuaScript`s via a table or Dictionary called `rpc_config`. + Use the new `rpc` global function that mimics GDScript's [@rpc annotation](https://docs.godotengine.org/en/stable/classes/class_%40gdscript.html#class-gdscript-annotation-rpc) for the values. + ```lua + MyClass.rpc_config = { + method1 = rpc("authority", "unreliable_ordered", "call_local", 1), + method2 = rpc("any_peer", "reliable", "call_remote"), + } + ``` +- Support for accessing constants and enums from `VariantType`s, such as `Vector2.ZERO` and `Vector2.Axis`. +- Support for power operator between Variants. + Even if only `int` and `float` support them and most people won't ever use them as `Variant` values, add it for completion. +- [Lua Language Server (LLS)](https://luals.github.io/) definition files + `.luarc.json` configuration file that helps with code completion in IDEs that support it +- `GDCLASS` function that returns a table suitable for defining Godot Classes in LuaScripts. + The only thing special about it is that `pairs` iterates over its keys in order of insertion, so that its properties and methods are shown in order of definition in the Godot Editor. +- Calling `get_method_list` on objects with a `LuaScript` attached now returns methods defined in script +- Support for Android devices with 16KB page sizes + +### Fixed +- Increment reference count of returned `LuaState` from `LuaObject.get_lua_state` +- Memory leak when indexing Variants with numbers +- Avoid losing exported properties in scenes/resources when reloading a Lua script fails + +### Changed +- Updated godot-cpp to 4.5 + + +## [0.6.1](https://github.com/gilzoide/lua-gdextension/releases/tag/0.6.1) +### Fixed +- Access [autoloaded nodes](https://docs.godotengine.org/en/stable/tutorials/scripting/singletons_autoload.html) when `GODOT_SINGLETONS` library is open +- Access [named classes](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html#registering-named-classes) when `GODOT_CLASSES` library is open + + +## [0.6.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.6.0) +### Added +- Support for constructing typed arrays in Lua using the idiom `Array[some_type]()` +- Support for constructing typed dictionaries in Lua using the idiom `Dictionary[key_type][value_type]()` +- Support for typed arrays, typed dictionaries and classes in exported properties: + ```lua + MyScript.exported_node_array = export(Array[Node]) + MyScript.exported_int_valued_dict = export(Dictionary[Variant][int]) + MyScript.exported_texture_property = export(Texture) + -- or + MyScript.exported_node_array = export({ type = Array[Node] }) + MyScript.exported_int_valued_dict = export({ type = Dictionary[Variant][int] }) + MyScript.exported_texture_property = export({ type = Texture }) + ``` +- `is_instance_valid` utility function when opening `GODOT_UTILITY_FUNCTIONS` library +- Support for older Linux distros using GLIBC on par with Ubuntu 22.04 +- Parser API based on Tree Sitter + + Adds the `LuaParser`, `LuaAST`, `LuaASTNode` and `LuaASTQuery` classes + +### Changed +- `LuaScriptInstance`'s data table is passed as `self` to methods instead of their owner `Object` + + For this to work, the table now has a metatable to access its owner when necessary +- `LuaScript`s now have a "Import Behavior" property, defaulting to "Automatic" + + In "Automatic" behavior, Lua code is evaluated only if it looks like a Godot script. + Lua code that looks like a Godot script is one that ends by returning a named variable (`return MyClassVariable`) or a table constructed inline (`return {...}`) + + In "Always Evaluate" behavior, Lua code will always be evaluated + + In "Don't Load" behavior, Lua code will not be loaded nor evaluated at all + + Note that only evaluated scripts can be attached to Godot Objects. +- Variant and `LuaScriptInstance` methods are now converted to Callable, so they can be more easily passed to Godot APIs such as `Signal.connect` + ```lua + -- Before this change, we had to manually instantiate Callable + some_signal:connect(Callable(self, "method_name")) + -- Now we can pass the method directly + some_signal:connect(self.method_name) + ``` + +### Fixed +- Fixed cyclic references from `LuaScriptInstance` <-> `LuaState`, avoiding leaks of `LuaScript`s +- Fixed cyclic references from `LuaScriptProperty` <-> `LuaState`, avoiding memory leaks +- Support for built-in Variant types in exported properties when passed directly to `export`: + ```lua + MyScript.exported_dictionary = export(Dictionary) + ``` +- Convert null Object Variants (``) to `nil` when passing them to Lua +- Convert freed Object Variants (``) to `nil` when passing them to Lua +- Fixed `LuaJIT core/library version mismatch` errors in LuaJIT builds +- `LuaScriptResourceFormatLoader::_load` now respects the cache mode, fixing "Another resource is loaded from path 'res://...' (possible cyclic resource inclusion)." errors +- Error messages from Lua code using the wrong stack index +- Crashes when passing Lua primitives to `typeof`, `Variant.is`, `Variant.get_type`, `Variant.booleanize`, `Variant.duplicate`, `Variant.get_type_name`, `Variant.hash`, `Variant.recursive_hash` and `Variant.hash_compare` +- The `addons/lua-gdextension/build/.gdignore` file was added to the distributed build. + This fixes import errors when opening the Godot editor with the LuaJIT build. + + +## [0.5.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.5.0) +### Added +- Support for Linux arm64 +- `LuaTable.get_metatable` and `LuaTable.set_metatable` methods +- Support for building with LuaJIT +- `LuaState.get_lua_runtime`, `LuaState.get_lua_version_num` and `LuaState.get_lua_version_string` methods + + +## [0.4.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.4.0) +### Added +- `LuaCoroutine.completed` and `LuaCoroutine.failed` signals +- `await` function similar to GDScript's, allowing coroutines to yield and resume automatically when a signal is emitted +- Support for Web exports +- Support for Windows arm64 +- Support for calling static methods from Godot classes, like `FileAccess.open` +- Custom [Lua 5.4+ warning function](https://www.lua.org/manual/5.4/manual.html#lua_setwarnf) that sends messages to `push_warning` +- `LuaThread` class as a superclass for `LuaCoroutine`. + This new class is used when converting a LuaState's main thread to Variant. +- `LuaState.main_thread` property for getting a Lua state's main thread of execution +- Support for setting hooks to `LuaThread`s, including the main thread + +### Changed +- `LuaObject` instances are reused when wrapping the same Lua object, so that `==` and `is_same` can be used properly +- The following methods of LuaScripts run in pooled coroutines, so that `await` can be used in them: regular method calls, setter functions, `_init`, `_notification` +- Godot 4.4 is now the minimum version necessary to use this addon + +### Fixed +- Use `xcframework` instead of `dylib` in iOS exports +- Crash when Lua errors, but the error object is not a string +- Crash when reloading the GDExtension + + +## [0.3.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.3.0) +### Added +- Editor plugin that registers the Lua REPL tab, where you can try Lua code using an empty `LuaState` +- Support for calling Godot String methods using Lua strings +- Optional support for `res://` and `user://` relative paths in package searchers, `loadfile` and `dofile`. + Open the `GODOT_LOCAL_PATHS` library to activate this behavior. +- `LuaState.LoadMode` enum for specifying the Lua load mode: text, binary or any +- `LuaState.do_buffer` and `LuaState.load_buffer` methods for loading Lua code from possibly binary chunks +- `LuaState.package_path` and `LuaState.package_cpath` properties for accessing the value of Lua's [`package.path`](https://www.lua.org/manual/5.4/manual.html#pdf-package.path) and [`package.cpath`](https://www.lua.org/manual/5.4/manual.html#pdf-package.cpath) +- `LuaState.get_lua_exec_dir` static method to get the executable directory used to replace "!" when setting `package_path` and `package_cpath` properties. + When running in the Godot editor, it returns the globalized version of `res://` path. + Otherwise, it returns the base directory of the executable. +- Advanced project settings for setting the `LuaScriptLanguage` state's `package_path` and `package_cpath` properties +- `LuaState.are_libraries_opened` method for checking if a subset of libraries were already opened +- `LuaState.create_function` method for creating a `LuaFunction` from a `Callable` +- API documentation is now available in the Godot editor + +### Changed +- The GDExtension is now marked as reloadable +- Renamed `LuaCoroutine::LuaCoroutineStatus` to `LuaCoroutine::Status` +- `LuaState.load_file` and `LuaState.do_file` now receive the load mode instead of buffer size +- `Callable` values when passed to Lua are wrapped as Lua functions when `GODOT_VARIANT` library is not opened, making it possible to call them in sandboxed environments +- Lua is now compiled as C++ + +### Removed +- `VariantType::has_static_method` internal method + +### Fixed +- Bind `LuaCoroutine::status` property with correct enum type +- Bind `LuaError::status` property as int with correct enum type +- Crash when calling utility functions from Lua +- Compilation for Windows using MSVC + + +## [0.2.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.2.0) +### Added +- Lua is now available as a scripting language for Godot objects, so that you can create your games entirely in Lua! +- `LuaObject.get_lua_state` method for getting the `LuaState` of a Lua object +- `LuaTable.clear` method +- `LuaTable.rawget` and `LuaTable.rawset` methods that don't trigger metamethods +- `LuaFunction.to_callable` method to easily turn Lua functions to Callable +- `LuaState.load_string` and `LuaState.load_files` for loading Lua code without executing it +- Support for passing a `LuaTable` as `_ENV` in `LuaState.do_string` and `LuaState.do_file` +- Support for `PackedVector4Array` variant type +- "Bouncing Logo" sample scene + +### Changed +- Minimum Godot version supported is now 4.3 +- Android target API changed to 21 (Android Lollipop 5.0) +- In Lua, `print` is now bound to Godot's `printt` to match Lua's behavior of adding `\t` between passed arguments + +### Removed +- `LuaTable.get_value` and `LuaTable.set_value`, use `LuaTable.get` and `LuaTable.set` instead + +### Fixed +- Use `PROPERTY_USAGE_NONE` for `LuaState.globals` and `LuaState.registry`, fixing instance leaks +- Lua stack handling in `LuaTable` and utility function wrapper code, fixing crashes +- `typeof` utility function now returns a `VariantType` instead of a value unusable by Lua +- Lua objects coming from a different `LuaState` are passed as Variants to Lua instead of being unwrapped, fixing crashes + + +## [0.1.0](https://github.com/gilzoide/lua-gdextension/releases/tag/0.1.0) +### Added +- `LuaState` class for holding a Lua state and interacting with it. + You may create as many instances as you want, each one representing an independent Lua state. +- `LuaCoroutine`, `LuaFunction`, `LuaLightUserdata`, `LuaTable` and `LuaUserdata` classes that wrap instances from a Lua state in Godot. +- `LuaError` class that represents errors from Lua code. +- Support for registering `Variant` type in Lua states, so that any Godot data can be manipulated in Lua. +- Support for registering Godot classes in Lua, so you can create instances and access integer constants. +- Support for adding access to Godot singleton objects in Lua, accessible directly by name. +- Support for registering Godot utility functions in Lua, like `print`, `lerp` and `is_same`. +- Support for adding access to Godot global enums in Lua, like `OK`, `TYPE_STRING` and `SIDE_LEFT`. diff --git a/addons/lua-gdextension/LICENSE b/addons/lua-gdextension/LICENSE new file mode 100644 index 0000000..5ed49c5 --- /dev/null +++ b/addons/lua-gdextension/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2026 Gil Barbosa Reis. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/lua-gdextension/LuaScript_icon.svg b/addons/lua-gdextension/LuaScript_icon.svg new file mode 100644 index 0000000..6f3b766 --- /dev/null +++ b/addons/lua-gdextension/LuaScript_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/lua-gdextension/LuaScript_icon.svg.import b/addons/lua-gdextension/LuaScript_icon.svg.import new file mode 100644 index 0000000..57338be --- /dev/null +++ b/addons/lua-gdextension/LuaScript_icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de52k4kdp6s7y" +path="res://.godot/imported/LuaScript_icon.svg-e936c81a8c0f686739c63104e1bb3341.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/lua-gdextension/LuaScript_icon.svg" +dest_files=["res://.godot/imported/LuaScript_icon.svg-e936c81a8c0f686739c63104e1bb3341.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/lua-gdextension/README.md b/addons/lua-gdextension/README.md new file mode 100644 index 0000000..b7edfc0 --- /dev/null +++ b/addons/lua-gdextension/README.md @@ -0,0 +1,241 @@ +# Lua GDExtension +[![Godot Asset Library page](https://img.shields.io/static/v1?logo=godotengine&label=asset%20library%20%28Lua%205.4%29&color=478CBF&message=0.7.0)](https://godotengine.org/asset-library/asset/2330) +[![Godot Asset Library page](https://img.shields.io/static/v1?logo=godotengine&label=asset%20library%20%28LuaJIT%29&color=478CBF&message=0.7.0)](https://godotengine.org/asset-library/asset/2330) +[![Build and Test workflow](https://github.com/gilzoide/lua-gdextension/actions/workflows/build.yml/badge.svg)](https://github.com/gilzoide/lua-gdextension/actions/workflows/build.yml) + +Lua GDExtension icon + +Extension for using the [Lua programming language](https://www.lua.org/) in Godot 4.4+ + +With this addon, you can program your game or application directly in Lua. +You can also create sandboxed Lua states for external modding/scripting support, as many as necessary. + +This plugin is available in the Asset Library as: +- [Lua GDExtension](https://godotengine.org/asset-library/asset/2330) (Lua 5.4 version) +- [Lua GDExtension + LuaJIT](https://godotengine.org/asset-library/asset/4119) (LuaJIT version) + + +## Features +- Create Godot scripts directly in Lua, making it possible to use Lua as an alternative to GDScript or C# +- Create additional Lua states for external modding/scripting support, as many as necessary +- Manage Lua tables, functions and coroutines directly from GDScript, C# or any other scripting language in Godot +- Select which Lua libraries and Godot APIs will be available per Lua state, making sandboxing easier: + + Lua libraries are the same as Lua/C, like `base`, `package` and `io` libraries + + Godot APIs: + + Create and manipulate Variant values + + Instantiate objects and access class constants + + Access singleton objects by name + + Global utility functions, like Godot's `print_rich`, `lerp` and `is_same`. + Also adds an `await` function that mimics GDScript's `await` keyword (only supported when running in a coroutine). + + Global enums, like `OK`, `TYPE_STRING` and `SIDE_LEFT` + + Patch Lua `package.searchers`, `require`, `loadfile` and `dofile` to accept paths relative to `res://` and `user://` +- Editor plugin with Lua REPL for testing out Lua snippets +- Choose between Lua 5.4 or LuaJIT v2.1 runtimes (distributed as separate addons) + + Note: LuaJIT does not support WebAssebly, so Lua 5.4 is always used in Web platform + + +## Lua scripting in Godot +This addon registers a [ScriptLanguageExtension](https://docs.godotengine.org/en/stable/classes/class_scriptlanguageextension.html) so that Godot objects can be scripted directly in Lua. + +For Lua scripts to be usable in Nodes and Resources, they must return a table with the script metadata containing methods, properties, signals, etc... +```lua +-- This is our script metadata table. +-- +-- It stores metadata such as its base class, global class_name, icon, +-- as well as any declared properties, methods and signals +local LuaBouncingLogo = { + -- base class (optional, defaults to RefCounted) + extends = Sprite2D, + -- if true, allow the script to be executed by the editor (optional) + tool = false, + -- global class name (optional) + class_name = "LuaBouncingLogo", + + -- Declare properties + linear_velocity = export(100), + initial_angle = export_range(-360, 360, "degrees", float), + -- Declare signals + bounced = signal(), +} + +-- Called when the node enters the scene tree for the first time. +function LuaBouncingLogo:_ready() + self.position = self:get_viewport():get_size() / 2 + self.movement = Vector2(self.linear_velocity, 0):rotated(deg_to_rad(self.initial_angle)) + + -- To connect a signal in Lua, you can use the method name just like in GDScript + self.bounced:connect(self._on_bounced) +end + +-- Called every frame. 'delta' is the elapsed time since the previous frame. +function LuaBouncingLogo:_process(delta) + local viewport_size = self:get_viewport():get_size() + local viewport_rect = Rect2(Vector2(), viewport_size) + if not viewport_rect:encloses(self.global_transform * self:get_rect()) then + self.movement = self.movement:rotated(deg_to_rad(90)) + self.bounced:emit() + end + self.position = self.position + self.movement * delta +end + +function LuaBouncingLogo:_on_bounced() + print("Bounced =D") +end + +-- Setup method RPC configs by creating the `rpc_config` table +-- Each key is a method name and the value is a `rpc` config like GDScript's `@rpc` +LuaBouncingLogo.rpc_config = { + _on_bounced = rpc("authority", "unreliable_ordered", "call_local", 1), +} + +-- Return the metadata table for the script to be usable by Godot objects +return LuaBouncingLogo +``` + + +## Calling Lua from Godot +The following classes are registered in Godot for creating Lua states and interacting with them: `LuaState`, `LuaTable`, `LuaUserdata`, `LuaLightUserdata`, `LuaFunction`, `LuaCoroutine`, `LuaThread`, `LuaDebug` and `LuaError`. + +Usage example in GDScript: +```gdscript +# 1. Create a Lua state +var lua = LuaState.new() +# 2. Import Lua and Godot APIs into the state +# Optionally pass which libraries should be opened to the method +lua.open_libraries() + +# 3. Run Lua code using `LuaState.do_string` or `LuaState.do_file` +var result = lua.do_string(""" + local vector = Vector2(1, 2) + return { + this_is_a_table = true, + vector = vector, + } +""") +# 4. Access results from Lua code directly in Godot +# When errors occur, instances of `LuaError` will be returned +if result is LuaError: + printerr("Error in Lua code: ", result) +else: + print(result) # [LuaTable:0x556069ee50ab] + print(result["this_is_a_table"]) # true + print(result["vector"]) # (1, 2) + print(result["invalid key"]) # + +# 5. Access the global _G table via `LuaState.globals` property +assert(lua.globals is LuaTable) +lua.globals["a_godot_callable"] = func(): print("Hello from GDScript!") +lua.do_string(""" + a_godot_callable() -- 'Hello from GDScript!' +""") +``` + + +## Calling Godot from Lua +- Instantiate and manipulate Godot objects, just like in GDScript. + ```lua + local v = Vector3(1, 2, 3) + print(v.x) -- 1 + -- Note: use ":" instead of "." to call methods in Lua + print(v:length()) -- 3.74165749549866 + + local n = Node:new() + print(n:is_inside_tree()) -- false + n:queue_free() + ``` +- Typed Arrays and Dictionaries are also supported + ```lua + -- Element type: int + local int_array = Array[int]() + -- Element type: Node + local node_array = Array[Node]() + + -- Key: int, Value: bool + local int_to_bool_dict = Dictionary[int][bool]() + -- Key: Variant, Value: Node + local node_valued_dict = Dictionary[Variant][Node]() + ``` +- Call Godot utility functions. + ```lua + local d1 = Dictionary() + local d2 = Dictionary() + print(is_same(d1, d2)) -- false + print(is_same(d2, d2)) -- true + + print(lerp(5, 10, 0.15)) -- 5.75 + ``` +- Access singleton objects by name. + ```lua + assert(OS == Engine:get_singleton("OS")) + ``` +- Construct Array/Dictionary using Lua tables. + ```lua + local array = Array{ "value 0", "value 1" } + -- Godot Arrays are indexed from 0, instead of 1 + print(array[0]) -- "value 0" + print(array[1]) -- "value 1" + print(array[2]) -- nil + + local dict = Dictionary{ hello = "world" } + print(dict) -- { "hello": "world" } + print(dict["hello"]) -- "world" + print(dict["invalid key"]) -- nil + ``` +- Iterate over values using `pairs` for types that support it, like Arrays, packed arrays, Dictionaries and some math types. + ```lua + local dictionary = Dictionary{ hello = "world", key = "value" } + for key, value in pairs(dictionary) do + print(key .. ": " .. value) + end + ``` +- Length operator (`#`) as a shortcut for calling the `size()` method in any object that supports it. + ```lua + local array = Array{ 1, 2, 3, 4 } + print(#array) -- 4 + ``` +- Runtime type check using the `Variant.is` method. + ```lua + local array = Array() + print(Variant.is(array, Array)) -- true + print(Variant.is(array, 'Array')) -- true + -- Also available using the method notation from Variant objects + print(array:is(Array)) -- true + print(array:is(Dictionary)) -- false + print(array:is(RefCounted)) -- false + ``` +- Making protected calls using `pcall`. + ```lua + local v = Vector2(1, 2) + print(v:pcall('length')) -- true 2.2360680103302 + print(v:pcall('invalid method')) -- false "Invalid method" + ``` + + +## TODO +- [X] Bind Variant types to Lua +- [X] Bind utility functions to Lua +- [X] Bind enums and constants to Lua +- [X] Add support for getting global singletons from Lua +- [X] Add support for getting classes from Lua +- [X] Add optional support for `res://` relative paths in `require`, `loadfile` and `dofile` +- [X] Add support for `await`ing signals +- [X] Submit to Asset Library +- [X] Lua ScriptLanguageExtension + + [X] Add support for property hints / usage flags (including export) + + [X] Add support for property getter / setter + + [X] Add `export_*` functions mimicking GDScript annotations for better UX + + [X] Add support for setting up method RPC configurations +- [X] Support for building with LuaJIT +- [X] Support WebAssembly platform +- [X] Support Windows arm64 platform +- [X] Support Linux arm64 platform +- [ ] Support Linux arm32 and rv64 platform +- [X] Use framework in iOS (possibly a xcframework supporting the iOS simulator as well) +- [X] Automated unit tests +- [X] Automated build and distribution +- [X] Lua REPL editor plugin + + +## Other projects for using Lua in Godot 4 +- https://github.com/WeaselGames/godot_luaAPI +- https://github.com/perbone/luascript diff --git a/addons/lua-gdextension/build/.gdignore b/addons/lua-gdextension/build/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/Info.plist b/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/Info.plist new file mode 100644 index 0000000..15bf8aa --- /dev/null +++ b/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/Info.plist @@ -0,0 +1,27 @@ + + + + + AvailableLibraries + + + BinaryPath + libgodot-cpp.ios.template_debug.universal.a + LibraryIdentifier + ios-arm64 + LibraryPath + libgodot-cpp.ios.template_debug.universal.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_debug.universal.a b/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_debug.universal.a new file mode 100644 index 0000000..f9fd8e7 Binary files /dev/null and b/addons/lua-gdextension/build/libgodot-cpp.ios.template_debug.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_debug.universal.a differ diff --git a/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/Info.plist b/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/Info.plist new file mode 100644 index 0000000..40fab56 --- /dev/null +++ b/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/Info.plist @@ -0,0 +1,27 @@ + + + + + AvailableLibraries + + + BinaryPath + libgodot-cpp.ios.template_release.universal.a + LibraryIdentifier + ios-arm64 + LibraryPath + libgodot-cpp.ios.template_release.universal.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_release.universal.a b/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_release.universal.a new file mode 100644 index 0000000..9c94783 Binary files /dev/null and b/addons/lua-gdextension/build/libgodot-cpp.ios.template_release.universal.xcframework/ios-arm64/libgodot-cpp.ios.template_release.universal.a differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm32.so b/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm32.so new file mode 100644 index 0000000..19ca35c Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm64.so b/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm64.so new file mode 100644 index 0000000..292757a Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_debug.arm64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_32.so b/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_32.so new file mode 100644 index 0000000..ac5c830 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_64.so b/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_64.so new file mode 100644 index 0000000..c3f5ad2 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_debug.x86_64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_release.arm32.so b/addons/lua-gdextension/build/libluagdextension.android.template_release.arm32.so new file mode 100644 index 0000000..7a59778 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_release.arm32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_release.arm64.so b/addons/lua-gdextension/build/libluagdextension.android.template_release.arm64.so new file mode 100644 index 0000000..4b8bbd7 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_release.arm64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_32.so b/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_32.so new file mode 100644 index 0000000..a8f519e Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_64.so b/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_64.so new file mode 100644 index 0000000..a6603f1 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.android.template_release.x86_64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/Info.plist b/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/Info.plist new file mode 100644 index 0000000..e3e19cd --- /dev/null +++ b/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/Info.plist @@ -0,0 +1,27 @@ + + + + + AvailableLibraries + + + BinaryPath + libluagdextension.ios.template_debug.universal.a + LibraryIdentifier + ios-arm64 + LibraryPath + libluagdextension.ios.template_debug.universal.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/ios-arm64/libluagdextension.ios.template_debug.universal.a b/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/ios-arm64/libluagdextension.ios.template_debug.universal.a new file mode 100644 index 0000000..28090d0 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.ios.template_debug.universal.xcframework/ios-arm64/libluagdextension.ios.template_debug.universal.a differ diff --git a/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/Info.plist b/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/Info.plist new file mode 100644 index 0000000..3ff3f4b --- /dev/null +++ b/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/Info.plist @@ -0,0 +1,27 @@ + + + + + AvailableLibraries + + + BinaryPath + libluagdextension.ios.template_release.universal.a + LibraryIdentifier + ios-arm64 + LibraryPath + libluagdextension.ios.template_release.universal.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/ios-arm64/libluagdextension.ios.template_release.universal.a b/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/ios-arm64/libluagdextension.ios.template_release.universal.a new file mode 100644 index 0000000..75e6994 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.ios.template_release.universal.xcframework/ios-arm64/libluagdextension.ios.template_release.universal.a differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_debug.arm64.so b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.arm64.so new file mode 100644 index 0000000..195bcc6 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.arm64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_32.so b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_32.so new file mode 100644 index 0000000..932a1ef Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_64.so b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_64.so new file mode 100644 index 0000000..232a477 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_debug.x86_64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_release.arm64.so b/addons/lua-gdextension/build/libluagdextension.linux.template_release.arm64.so new file mode 100644 index 0000000..34e1b56 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_release.arm64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_32.so b/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_32.so new file mode 100644 index 0000000..862f5d9 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_32.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_64.so b/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_64.so new file mode 100644 index 0000000..a35c35b Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.linux.template_release.x86_64.so differ diff --git a/addons/lua-gdextension/build/libluagdextension.macos.template_debug.universal.dylib b/addons/lua-gdextension/build/libluagdextension.macos.template_debug.universal.dylib new file mode 100644 index 0000000..b06a111 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.macos.template_debug.universal.dylib differ diff --git a/addons/lua-gdextension/build/libluagdextension.macos.template_release.universal.dylib b/addons/lua-gdextension/build/libluagdextension.macos.template_release.universal.dylib new file mode 100644 index 0000000..1216ad9 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.macos.template_release.universal.dylib differ diff --git a/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.nothreads.wasm b/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.nothreads.wasm new file mode 100644 index 0000000..4e3deac Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.nothreads.wasm differ diff --git a/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.wasm b/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.wasm new file mode 100644 index 0000000..6e5155d Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.web.template_debug.wasm32.wasm differ diff --git a/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.nothreads.wasm b/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.nothreads.wasm new file mode 100644 index 0000000..919f4f2 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.nothreads.wasm differ diff --git a/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.wasm b/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.wasm new file mode 100644 index 0000000..487aaa7 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.web.template_release.wasm32.wasm differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.dll new file mode 100644 index 0000000..bc29d99 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.exp new file mode 100644 index 0000000..d4d1562 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.lib new file mode 100644 index 0000000..3cd2cb2 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.arm64.lib differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.dll new file mode 100644 index 0000000..173080d Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.exp new file mode 100644 index 0000000..873c894 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.lib new file mode 100644 index 0000000..daa5540 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_32.lib differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.dll new file mode 100644 index 0000000..8436f58 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.exp new file mode 100644 index 0000000..520e1d7 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.lib new file mode 100644 index 0000000..c3f3fe9 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_debug.x86_64.lib differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.dll new file mode 100644 index 0000000..731c1a7 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.exp new file mode 100644 index 0000000..09c83c6 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.lib new file mode 100644 index 0000000..f3a43d8 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.arm64.lib differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.dll new file mode 100644 index 0000000..7b24ce8 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.exp new file mode 100644 index 0000000..e437f73 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.lib new file mode 100644 index 0000000..e4a55cc Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_32.lib differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.dll b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.dll new file mode 100644 index 0000000..f8cdab8 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.dll differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.exp b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.exp new file mode 100644 index 0000000..5077023 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.exp differ diff --git a/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.lib b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.lib new file mode 100644 index 0000000..92f6a49 Binary files /dev/null and b/addons/lua-gdextension/build/libluagdextension.windows.template_release.x86_64.lib differ diff --git a/addons/lua-gdextension/icon.png b/addons/lua-gdextension/icon.png new file mode 100644 index 0000000..759b48a Binary files /dev/null and b/addons/lua-gdextension/icon.png differ diff --git a/addons/lua-gdextension/icon.png.import b/addons/lua-gdextension/icon.png.import new file mode 100644 index 0000000..fb41eac --- /dev/null +++ b/addons/lua-gdextension/icon.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cih6ia8rwpfa3" +path="res://.godot/imported/icon.png-a1b6b69ff83c17f55db0a93e5e3a4f5d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/lua-gdextension/icon.png" +dest_files=["res://.godot/imported/icon.png-a1b6b69ff83c17f55db0a93e5e3a4f5d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/lua-gdextension/lua_api_definitions/.gdignore b/addons/lua-gdextension/lua_api_definitions/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/addons/lua-gdextension/lua_api_definitions/builtin_classes.lua b/addons/lua-gdextension/lua_api_definitions/builtin_classes.lua new file mode 100644 index 0000000..d648cd5 --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/builtin_classes.lua @@ -0,0 +1,4473 @@ +--- This file was automatically generated by generate_lua_godot_api.py +--- @meta +--- @diagnostic disable: param-type-mismatch +--- @diagnostic disable: redundant-parameter + +----------------------------------------------------------- +-- Builtin Classes (a.k.a. Variants) +----------------------------------------------------------- + +--- @class Variant +--- @overload fun(): Variant +--- @overload fun(from: any): Variant +--- @operator concat(any): String +Variant = {} + +--- @param self any +--- @return bool +function Variant.booleanize(self) end + +--- @param self any +--- @return Variant +function Variant.duplicate(self) end + +--- @param method string +--- @return Variant +function Variant:call(method, ...) end + +--- @param method string +--- @return Variant +function Variant:pcall(method, ...) end + +--- @param self any +--- @return Variant.Type +function Variant.get_type(self) end + +--- @param self any +--- @return string +function Variant.get_type_name(self) end + +--- @param self any +--- @return integer +function Variant.hash(self) end + +--- @param self any +--- @param recursion_count integer +--- @return integer +function Variant.recursive_hash(self, recursion_count) end + +--- @param other any +--- @return bool +function Variant.hash_compare(self, other) end + +--- @param self any +--- @param type any +--- @return bool +function Variant.is(self, type) end + + +----------------------------------------------------------- +-- bool +----------------------------------------------------------- + +--- @alias bool boolean +--- @return bool +function bool() end + + +----------------------------------------------------------- +-- int +----------------------------------------------------------- + +--- @alias int integer +--- @return int +function int() end + + +----------------------------------------------------------- +-- float +----------------------------------------------------------- + +--- @alias float number +--- @return float +function float() end + + +----------------------------------------------------------- +-- String +----------------------------------------------------------- + +--- @alias String string +String = string + +--- @param self string +--- @param to String +--- @return int +function string.casecmp_to(self, to) end + +--- @param self string +--- @param to String +--- @return int +function string.nocasecmp_to(self, to) end + +--- @param self string +--- @param to String +--- @return int +function string.naturalcasecmp_to(self, to) end + +--- @param self string +--- @param to String +--- @return int +function string.naturalnocasecmp_to(self, to) end + +--- @param self string +--- @param to String +--- @return int +function string.filecasecmp_to(self, to) end + +--- @param self string +--- @param to String +--- @return int +function string.filenocasecmp_to(self, to) end + +--- @param self string +--- @return int +function string.length(self) end + +--- @param self string +--- @param from int +--- @param len int? Default: -1 +--- @return String +function string.substr(self, from, len) end + +--- @param self string +--- @param delimiter String +--- @param slice int +--- @return String +function string.get_slice(self, delimiter, slice) end + +--- @param self string +--- @param delimiter int +--- @param slice int +--- @return String +function string.get_slicec(self, delimiter, slice) end + +--- @param self string +--- @param delimiter String +--- @return int +function string.get_slice_count(self, delimiter) end + +--- @param self string +--- @param what String +--- @param from int? Default: 0 +--- @return int +function string.find(self, what, from) end + +--- @param self string +--- @param what String +--- @param from int? Default: 0 +--- @return int +function string.findn(self, what, from) end + +--- @param self string +--- @param what String +--- @param from int? Default: 0 +--- @param to int? Default: 0 +--- @return int +function string.count(self, what, from, to) end + +--- @param self string +--- @param what String +--- @param from int? Default: 0 +--- @param to int? Default: 0 +--- @return int +function string.countn(self, what, from, to) end + +--- @param self string +--- @param what String +--- @param from int? Default: -1 +--- @return int +function string.rfind(self, what, from) end + +--- @param self string +--- @param what String +--- @param from int? Default: -1 +--- @return int +function string.rfindn(self, what, from) end + +--- @param self string +--- @param expr String +--- @return bool +function string.match(self, expr) end + +--- @param self string +--- @param expr String +--- @return bool +function string.matchn(self, expr) end + +--- @param self string +--- @param text String +--- @return bool +function string.begins_with(self, text) end + +--- @param self string +--- @param text String +--- @return bool +function string.ends_with(self, text) end + +--- @param self string +--- @param text String +--- @return bool +function string.is_subsequence_of(self, text) end + +--- @param self string +--- @param text String +--- @return bool +function string.is_subsequence_ofn(self, text) end + +--- @param self string +--- @return PackedStringArray +function string.bigrams(self) end + +--- @param self string +--- @param text String +--- @return float +function string.similarity(self, text) end + +--- @param self string +--- @param values any +--- @param placeholder String? Default: "{_}" +--- @return String +function string.format(self, values, placeholder) end + +--- @param self string +--- @param what String +--- @param forwhat String +--- @return String +function string.replace(self, what, forwhat) end + +--- @param self string +--- @param what String +--- @param forwhat String +--- @return String +function string.replacen(self, what, forwhat) end + +--- @param self string +--- @param key int +--- @param with int +--- @return String +function string.replace_char(self, key, with) end + +--- @param self string +--- @param keys String +--- @param with int +--- @return String +function string.replace_chars(self, keys, with) end + +--- @param self string +--- @param what int +--- @return String +function string.remove_char(self, what) end + +--- @param self string +--- @param chars String +--- @return String +function string.remove_chars(self, chars) end + +--- @param self string +--- @return String +function string.reverse(self) end + +--- @param self string +--- @param position int +--- @param what String +--- @return String +function string.insert(self, position, what) end + +--- @param self string +--- @param position int +--- @param chars int? Default: 1 +--- @return String +function string.erase(self, position, chars) end + +--- @param self string +--- @return String +function string.capitalize(self) end + +--- @param self string +--- @return String +function string.to_camel_case(self) end + +--- @param self string +--- @return String +function string.to_pascal_case(self) end + +--- @param self string +--- @return String +function string.to_snake_case(self) end + +--- @param self string +--- @return String +function string.to_kebab_case(self) end + +--- @param self string +--- @param delimiter String? Default: "" +--- @param allow_empty bool? Default: true +--- @param maxsplit int? Default: 0 +--- @return PackedStringArray +function string.split(self, delimiter, allow_empty, maxsplit) end + +--- @param self string +--- @param delimiter String? Default: "" +--- @param allow_empty bool? Default: true +--- @param maxsplit int? Default: 0 +--- @return PackedStringArray +function string.rsplit(self, delimiter, allow_empty, maxsplit) end + +--- @param self string +--- @param delimiter String +--- @param allow_empty bool? Default: true +--- @return PackedFloat64Array +function string.split_floats(self, delimiter, allow_empty) end + +--- @param self string +--- @param parts PackedStringArray +--- @return String +function string.join(self, parts) end + +--- @param self string +--- @return String +function string.to_upper(self) end + +--- @param self string +--- @return String +function string.to_lower(self) end + +--- @param self string +--- @param length int +--- @return String +function string.left(self, length) end + +--- @param self string +--- @param length int +--- @return String +function string.right(self, length) end + +--- @param self string +--- @param left bool? Default: true +--- @param right bool? Default: true +--- @return String +function string.strip_edges(self, left, right) end + +--- @param self string +--- @return String +function string.strip_escapes(self) end + +--- @param self string +--- @param chars String +--- @return String +function string.lstrip(self, chars) end + +--- @param self string +--- @param chars String +--- @return String +function string.rstrip(self, chars) end + +--- @param self string +--- @return String +function string.get_extension(self) end + +--- @param self string +--- @return String +function string.get_basename(self) end + +--- @param self string +--- @param path String +--- @return String +function string.path_join(self, path) end + +--- @param self string +--- @param at int +--- @return int +function string.unicode_at(self, at) end + +--- @param self string +--- @param prefix String +--- @return String +function string.indent(self, prefix) end + +--- @param self string +--- @return String +function string.dedent(self) end + +--- @param self string +--- @return int +function string.hash(self) end + +--- @param self string +--- @return String +function string.md5_text(self) end + +--- @param self string +--- @return String +function string.sha1_text(self) end + +--- @param self string +--- @return String +function string.sha256_text(self) end + +--- @param self string +--- @return PackedByteArray +function string.md5_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.sha1_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.sha256_buffer(self) end + +--- @param self string +--- @return bool +function string.is_empty(self) end + +--- @param self string +--- @param what String +--- @return bool +function string.contains(self, what) end + +--- @param self string +--- @param what String +--- @return bool +function string.containsn(self, what) end + +--- @param self string +--- @return bool +function string.is_absolute_path(self) end + +--- @param self string +--- @return bool +function string.is_relative_path(self) end + +--- @param self string +--- @return String +function string.simplify_path(self) end + +--- @param self string +--- @return String +function string.get_base_dir(self) end + +--- @param self string +--- @return String +function string.get_file(self) end + +--- @param self string +--- @param escape_quotes bool? Default: false +--- @return String +function string.xml_escape(self, escape_quotes) end + +--- @param self string +--- @return String +function string.xml_unescape(self) end + +--- @param self string +--- @return String +function string.uri_encode(self) end + +--- @param self string +--- @return String +function string.uri_decode(self) end + +--- @param self string +--- @return String +function string.uri_file_decode(self) end + +--- @param self string +--- @return String +function string.c_escape(self) end + +--- @param self string +--- @return String +function string.c_unescape(self) end + +--- @param self string +--- @return String +function string.json_escape(self) end + +--- @param self string +--- @return String +function string.validate_node_name(self) end + +--- @param self string +--- @return String +function string.validate_filename(self) end + +--- @param self string +--- @return bool +function string.is_valid_ascii_identifier(self) end + +--- @param self string +--- @return bool +function string.is_valid_unicode_identifier(self) end + +--- @param self string +--- @return bool +function string.is_valid_identifier(self) end + +--- @param self string +--- @return bool +function string.is_valid_int(self) end + +--- @param self string +--- @return bool +function string.is_valid_float(self) end + +--- @param self string +--- @param with_prefix bool? Default: false +--- @return bool +function string.is_valid_hex_number(self, with_prefix) end + +--- @param self string +--- @return bool +function string.is_valid_html_color(self) end + +--- @param self string +--- @return bool +function string.is_valid_ip_address(self) end + +--- @param self string +--- @return bool +function string.is_valid_filename(self) end + +--- @param self string +--- @return int +function string.to_int(self) end + +--- @param self string +--- @return float +function string.to_float(self) end + +--- @param self string +--- @return int +function string.hex_to_int(self) end + +--- @param self string +--- @return int +function string.bin_to_int(self) end + +--- @param self string +--- @param min_length int +--- @param character String? Default: " " +--- @return String +function string.lpad(self, min_length, character) end + +--- @param self string +--- @param min_length int +--- @param character String? Default: " " +--- @return String +function string.rpad(self, min_length, character) end + +--- @param self string +--- @param digits int +--- @return String +function string.pad_decimals(self, digits) end + +--- @param self string +--- @param digits int +--- @return String +function string.pad_zeros(self, digits) end + +--- @param self string +--- @param prefix String +--- @return String +function string.trim_prefix(self, prefix) end + +--- @param self string +--- @param suffix String +--- @return String +function string.trim_suffix(self, suffix) end + +--- @param self string +--- @return PackedByteArray +function string.to_ascii_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.to_utf8_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.to_utf16_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.to_utf32_buffer(self) end + +--- @param self string +--- @return PackedByteArray +function string.to_wchar_buffer(self) end + +--- @param self string +--- @param encoding String? Default: "" +--- @return PackedByteArray +function string.to_multibyte_char_buffer(self, encoding) end + +--- @param self string +--- @return PackedByteArray +function string.hex_decode(self) end + +--- static +--- @param self string +--- @param number float +--- @return String +function string.num_scientific(self, number) end + +--- static +--- @param self string +--- @param number float +--- @param decimals int? Default: -1 +--- @return String +function string.num(self, number, decimals) end + +--- static +--- @param self string +--- @param number int +--- @param base int? Default: 10 +--- @param capitalize_hex bool? Default: false +--- @return String +function string.num_int64(self, number, base, capitalize_hex) end + +--- static +--- @param self string +--- @param number int +--- @param base int? Default: 10 +--- @param capitalize_hex bool? Default: false +--- @return String +function string.num_uint64(self, number, base, capitalize_hex) end + +--- static +--- @param self string +--- @param code int +--- @return String +function string.chr(self, code) end + +--- static +--- @param self string +--- @param size int +--- @return String +function string.humanize_size(self, size) end + + +----------------------------------------------------------- +-- Vector2 +----------------------------------------------------------- + +--- @class Vector2: Variant, { [int]: float? } +--- @field x float +--- @field y float +--- @overload fun(): Vector2 +--- @overload fun(from: Vector2): Vector2 +--- @overload fun(from: Vector2i): Vector2 +--- @overload fun(x: float, y: float): Vector2 +--- @operator unm(): Vector2 +--- @operator mul(int): Vector2 +--- @operator div(int): Vector2 +--- @operator mul(float): Vector2 +--- @operator div(float): Vector2 +--- @operator add(Vector2): Vector2 +--- @operator sub(Vector2): Vector2 +--- @operator mul(Vector2): Vector2 +--- @operator div(Vector2): Vector2 +--- @operator mul(Transform2D): Vector2 +Vector2 = {} + +Vector2.ZERO = Vector2(0, 0) +Vector2.ONE = Vector2(1, 1) +Vector2.INF = Vector2(math.huge, math.huge) +Vector2.LEFT = Vector2(-1, 0) +Vector2.RIGHT = Vector2(1, 0) +Vector2.UP = Vector2(0, -1) +Vector2.DOWN = Vector2(0, 1) + +--- @enum Vector2.Axis +Vector2.Axis = { + AXIS_X = 0, + AXIS_Y = 1, +} + +--- @return float +function Vector2:angle() end + +--- @param to Vector2 +--- @return float +function Vector2:angle_to(to) end + +--- @param to Vector2 +--- @return float +function Vector2:angle_to_point(to) end + +--- @param to Vector2 +--- @return Vector2 +function Vector2:direction_to(to) end + +--- @param to Vector2 +--- @return float +function Vector2:distance_to(to) end + +--- @param to Vector2 +--- @return float +function Vector2:distance_squared_to(to) end + +--- @return float +function Vector2:length() end + +--- @return float +function Vector2:length_squared() end + +--- @param length float? Default: 1.0 +--- @return Vector2 +function Vector2:limit_length(length) end + +--- @return Vector2 +function Vector2:normalized() end + +--- @return bool +function Vector2:is_normalized() end + +--- @param to Vector2 +--- @return bool +function Vector2:is_equal_approx(to) end + +--- @return bool +function Vector2:is_zero_approx() end + +--- @return bool +function Vector2:is_finite() end + +--- @param mod float +--- @return Vector2 +function Vector2:posmod(mod) end + +--- @param modv Vector2 +--- @return Vector2 +function Vector2:posmodv(modv) end + +--- @param b Vector2 +--- @return Vector2 +function Vector2:project(b) end + +--- @param to Vector2 +--- @param weight float +--- @return Vector2 +function Vector2:lerp(to, weight) end + +--- @param to Vector2 +--- @param weight float +--- @return Vector2 +function Vector2:slerp(to, weight) end + +--- @param b Vector2 +--- @param pre_a Vector2 +--- @param post_b Vector2 +--- @param weight float +--- @return Vector2 +function Vector2:cubic_interpolate(b, pre_a, post_b, weight) end + +--- @param b Vector2 +--- @param pre_a Vector2 +--- @param post_b Vector2 +--- @param weight float +--- @param b_t float +--- @param pre_a_t float +--- @param post_b_t float +--- @return Vector2 +function Vector2:cubic_interpolate_in_time(b, pre_a, post_b, weight, b_t, pre_a_t, post_b_t) end + +--- @param control_1 Vector2 +--- @param control_2 Vector2 +--- @param _end Vector2 +--- @param t float +--- @return Vector2 +function Vector2:bezier_interpolate(control_1, control_2, _end, t) end + +--- @param control_1 Vector2 +--- @param control_2 Vector2 +--- @param _end Vector2 +--- @param t float +--- @return Vector2 +function Vector2:bezier_derivative(control_1, control_2, _end, t) end + +--- @return int +function Vector2:max_axis_index() end + +--- @return int +function Vector2:min_axis_index() end + +--- @param to Vector2 +--- @param delta float +--- @return Vector2 +function Vector2:move_toward(to, delta) end + +--- @param angle float +--- @return Vector2 +function Vector2:rotated(angle) end + +--- @return Vector2 +function Vector2:orthogonal() end + +--- @return Vector2 +function Vector2:floor() end + +--- @return Vector2 +function Vector2:ceil() end + +--- @return Vector2 +function Vector2:round() end + +--- @return float +function Vector2:aspect() end + +--- @param with Vector2 +--- @return float +function Vector2:dot(with) end + +--- @param n Vector2 +--- @return Vector2 +function Vector2:slide(n) end + +--- @param n Vector2 +--- @return Vector2 +function Vector2:bounce(n) end + +--- @param line Vector2 +--- @return Vector2 +function Vector2:reflect(line) end + +--- @param with Vector2 +--- @return float +function Vector2:cross(with) end + +--- @return Vector2 +function Vector2:abs() end + +--- @return Vector2 +function Vector2:sign() end + +--- @param min Vector2 +--- @param max Vector2 +--- @return Vector2 +function Vector2:clamp(min, max) end + +--- @param min float +--- @param max float +--- @return Vector2 +function Vector2:clampf(min, max) end + +--- @param step Vector2 +--- @return Vector2 +function Vector2:snapped(step) end + +--- @param step float +--- @return Vector2 +function Vector2:snappedf(step) end + +--- @param with Vector2 +--- @return Vector2 +function Vector2:min(with) end + +--- @param with float +--- @return Vector2 +function Vector2:minf(with) end + +--- @param with Vector2 +--- @return Vector2 +function Vector2:max(with) end + +--- @param with float +--- @return Vector2 +function Vector2:maxf(with) end + +--- static +--- @param angle float +--- @return Vector2 +function Vector2:from_angle(angle) end + + +----------------------------------------------------------- +-- Vector2i +----------------------------------------------------------- + +--- @class Vector2i: Variant, { [int]: int? } +--- @field x int +--- @field y int +--- @overload fun(): Vector2i +--- @overload fun(from: Vector2i): Vector2i +--- @overload fun(from: Vector2): Vector2i +--- @overload fun(x: int, y: int): Vector2i +--- @operator unm(): Vector2i +--- @operator mul(int): Vector2i +--- @operator div(int): Vector2i +--- @operator mod(int): Vector2i +--- @operator mul(float): Vector2 +--- @operator div(float): Vector2 +--- @operator add(Vector2i): Vector2i +--- @operator sub(Vector2i): Vector2i +--- @operator mul(Vector2i): Vector2i +--- @operator div(Vector2i): Vector2i +--- @operator mod(Vector2i): Vector2i +Vector2i = {} + +Vector2i.ZERO = Vector2i(0, 0) +Vector2i.ONE = Vector2i(1, 1) +Vector2i.MIN = Vector2i(-2147483648, -2147483648) +Vector2i.MAX = Vector2i(2147483647, 2147483647) +Vector2i.LEFT = Vector2i(-1, 0) +Vector2i.RIGHT = Vector2i(1, 0) +Vector2i.UP = Vector2i(0, -1) +Vector2i.DOWN = Vector2i(0, 1) + +--- @enum Vector2i.Axis +Vector2i.Axis = { + AXIS_X = 0, + AXIS_Y = 1, +} + +--- @return float +function Vector2i:aspect() end + +--- @return int +function Vector2i:max_axis_index() end + +--- @return int +function Vector2i:min_axis_index() end + +--- @param to Vector2i +--- @return float +function Vector2i:distance_to(to) end + +--- @param to Vector2i +--- @return int +function Vector2i:distance_squared_to(to) end + +--- @return float +function Vector2i:length() end + +--- @return int +function Vector2i:length_squared() end + +--- @return Vector2i +function Vector2i:sign() end + +--- @return Vector2i +function Vector2i:abs() end + +--- @param min Vector2i +--- @param max Vector2i +--- @return Vector2i +function Vector2i:clamp(min, max) end + +--- @param min int +--- @param max int +--- @return Vector2i +function Vector2i:clampi(min, max) end + +--- @param step Vector2i +--- @return Vector2i +function Vector2i:snapped(step) end + +--- @param step int +--- @return Vector2i +function Vector2i:snappedi(step) end + +--- @param with Vector2i +--- @return Vector2i +function Vector2i:min(with) end + +--- @param with int +--- @return Vector2i +function Vector2i:mini(with) end + +--- @param with Vector2i +--- @return Vector2i +function Vector2i:max(with) end + +--- @param with int +--- @return Vector2i +function Vector2i:maxi(with) end + + +----------------------------------------------------------- +-- Rect2 +----------------------------------------------------------- + +--- @class Rect2: Variant +--- @field position Vector2 +--- @field size Vector2 +--- @field end Vector2 +--- @overload fun(): Rect2 +--- @overload fun(from: Rect2): Rect2 +--- @overload fun(from: Rect2i): Rect2 +--- @overload fun(position: Vector2, size: Vector2): Rect2 +--- @overload fun(x: float, y: float, width: float, height: float): Rect2 +--- @operator mul(Transform2D): Rect2 +Rect2 = {} + +--- @return Vector2 +function Rect2:get_center() end + +--- @return float +function Rect2:get_area() end + +--- @return bool +function Rect2:has_area() end + +--- @param point Vector2 +--- @return bool +function Rect2:has_point(point) end + +--- @param rect Rect2 +--- @return bool +function Rect2:is_equal_approx(rect) end + +--- @return bool +function Rect2:is_finite() end + +--- @param b Rect2 +--- @param include_borders bool? Default: false +--- @return bool +function Rect2:intersects(b, include_borders) end + +--- @param b Rect2 +--- @return bool +function Rect2:encloses(b) end + +--- @param b Rect2 +--- @return Rect2 +function Rect2:intersection(b) end + +--- @param b Rect2 +--- @return Rect2 +function Rect2:merge(b) end + +--- @param to Vector2 +--- @return Rect2 +function Rect2:expand(to) end + +--- @param direction Vector2 +--- @return Vector2 +function Rect2:get_support(direction) end + +--- @param amount float +--- @return Rect2 +function Rect2:grow(amount) end + +--- @param side int +--- @param amount float +--- @return Rect2 +function Rect2:grow_side(side, amount) end + +--- @param left float +--- @param top float +--- @param right float +--- @param bottom float +--- @return Rect2 +function Rect2:grow_individual(left, top, right, bottom) end + +--- @return Rect2 +function Rect2:abs() end + + +----------------------------------------------------------- +-- Rect2i +----------------------------------------------------------- + +--- @class Rect2i: Variant +--- @field position Vector2i +--- @field size Vector2i +--- @field end Vector2i +--- @overload fun(): Rect2i +--- @overload fun(from: Rect2i): Rect2i +--- @overload fun(from: Rect2): Rect2i +--- @overload fun(position: Vector2i, size: Vector2i): Rect2i +--- @overload fun(x: int, y: int, width: int, height: int): Rect2i +Rect2i = {} + +--- @return Vector2i +function Rect2i:get_center() end + +--- @return int +function Rect2i:get_area() end + +--- @return bool +function Rect2i:has_area() end + +--- @param point Vector2i +--- @return bool +function Rect2i:has_point(point) end + +--- @param b Rect2i +--- @return bool +function Rect2i:intersects(b) end + +--- @param b Rect2i +--- @return bool +function Rect2i:encloses(b) end + +--- @param b Rect2i +--- @return Rect2i +function Rect2i:intersection(b) end + +--- @param b Rect2i +--- @return Rect2i +function Rect2i:merge(b) end + +--- @param to Vector2i +--- @return Rect2i +function Rect2i:expand(to) end + +--- @param amount int +--- @return Rect2i +function Rect2i:grow(amount) end + +--- @param side int +--- @param amount int +--- @return Rect2i +function Rect2i:grow_side(side, amount) end + +--- @param left int +--- @param top int +--- @param right int +--- @param bottom int +--- @return Rect2i +function Rect2i:grow_individual(left, top, right, bottom) end + +--- @return Rect2i +function Rect2i:abs() end + + +----------------------------------------------------------- +-- Vector3 +----------------------------------------------------------- + +--- @class Vector3: Variant, { [int]: float? } +--- @field x float +--- @field y float +--- @field z float +--- @overload fun(): Vector3 +--- @overload fun(from: Vector3): Vector3 +--- @overload fun(from: Vector3i): Vector3 +--- @overload fun(x: float, y: float, z: float): Vector3 +--- @operator unm(): Vector3 +--- @operator mul(int): Vector3 +--- @operator div(int): Vector3 +--- @operator mul(float): Vector3 +--- @operator div(float): Vector3 +--- @operator add(Vector3): Vector3 +--- @operator sub(Vector3): Vector3 +--- @operator mul(Vector3): Vector3 +--- @operator div(Vector3): Vector3 +--- @operator mul(Quaternion): Vector3 +--- @operator mul(Basis): Vector3 +--- @operator mul(Transform3D): Vector3 +Vector3 = {} + +Vector3.ZERO = Vector3(0, 0, 0) +Vector3.ONE = Vector3(1, 1, 1) +Vector3.INF = Vector3(math.huge, math.huge, math.huge) +Vector3.LEFT = Vector3(-1, 0, 0) +Vector3.RIGHT = Vector3(1, 0, 0) +Vector3.UP = Vector3(0, 1, 0) +Vector3.DOWN = Vector3(0, -1, 0) +Vector3.FORWARD = Vector3(0, 0, -1) +Vector3.BACK = Vector3(0, 0, 1) +Vector3.MODEL_LEFT = Vector3(1, 0, 0) +Vector3.MODEL_RIGHT = Vector3(-1, 0, 0) +Vector3.MODEL_TOP = Vector3(0, 1, 0) +Vector3.MODEL_BOTTOM = Vector3(0, -1, 0) +Vector3.MODEL_FRONT = Vector3(0, 0, 1) +Vector3.MODEL_REAR = Vector3(0, 0, -1) + +--- @enum Vector3.Axis +Vector3.Axis = { + AXIS_X = 0, + AXIS_Y = 1, + AXIS_Z = 2, +} + +--- @return int +function Vector3:min_axis_index() end + +--- @return int +function Vector3:max_axis_index() end + +--- @param to Vector3 +--- @return float +function Vector3:angle_to(to) end + +--- @param to Vector3 +--- @param axis Vector3 +--- @return float +function Vector3:signed_angle_to(to, axis) end + +--- @param to Vector3 +--- @return Vector3 +function Vector3:direction_to(to) end + +--- @param to Vector3 +--- @return float +function Vector3:distance_to(to) end + +--- @param to Vector3 +--- @return float +function Vector3:distance_squared_to(to) end + +--- @return float +function Vector3:length() end + +--- @return float +function Vector3:length_squared() end + +--- @param length float? Default: 1.0 +--- @return Vector3 +function Vector3:limit_length(length) end + +--- @return Vector3 +function Vector3:normalized() end + +--- @return bool +function Vector3:is_normalized() end + +--- @param to Vector3 +--- @return bool +function Vector3:is_equal_approx(to) end + +--- @return bool +function Vector3:is_zero_approx() end + +--- @return bool +function Vector3:is_finite() end + +--- @return Vector3 +function Vector3:inverse() end + +--- @param min Vector3 +--- @param max Vector3 +--- @return Vector3 +function Vector3:clamp(min, max) end + +--- @param min float +--- @param max float +--- @return Vector3 +function Vector3:clampf(min, max) end + +--- @param step Vector3 +--- @return Vector3 +function Vector3:snapped(step) end + +--- @param step float +--- @return Vector3 +function Vector3:snappedf(step) end + +--- @param axis Vector3 +--- @param angle float +--- @return Vector3 +function Vector3:rotated(axis, angle) end + +--- @param to Vector3 +--- @param weight float +--- @return Vector3 +function Vector3:lerp(to, weight) end + +--- @param to Vector3 +--- @param weight float +--- @return Vector3 +function Vector3:slerp(to, weight) end + +--- @param b Vector3 +--- @param pre_a Vector3 +--- @param post_b Vector3 +--- @param weight float +--- @return Vector3 +function Vector3:cubic_interpolate(b, pre_a, post_b, weight) end + +--- @param b Vector3 +--- @param pre_a Vector3 +--- @param post_b Vector3 +--- @param weight float +--- @param b_t float +--- @param pre_a_t float +--- @param post_b_t float +--- @return Vector3 +function Vector3:cubic_interpolate_in_time(b, pre_a, post_b, weight, b_t, pre_a_t, post_b_t) end + +--- @param control_1 Vector3 +--- @param control_2 Vector3 +--- @param _end Vector3 +--- @param t float +--- @return Vector3 +function Vector3:bezier_interpolate(control_1, control_2, _end, t) end + +--- @param control_1 Vector3 +--- @param control_2 Vector3 +--- @param _end Vector3 +--- @param t float +--- @return Vector3 +function Vector3:bezier_derivative(control_1, control_2, _end, t) end + +--- @param to Vector3 +--- @param delta float +--- @return Vector3 +function Vector3:move_toward(to, delta) end + +--- @param with Vector3 +--- @return float +function Vector3:dot(with) end + +--- @param with Vector3 +--- @return Vector3 +function Vector3:cross(with) end + +--- @param with Vector3 +--- @return Basis +function Vector3:outer(with) end + +--- @return Vector3 +function Vector3:abs() end + +--- @return Vector3 +function Vector3:floor() end + +--- @return Vector3 +function Vector3:ceil() end + +--- @return Vector3 +function Vector3:round() end + +--- @param mod float +--- @return Vector3 +function Vector3:posmod(mod) end + +--- @param modv Vector3 +--- @return Vector3 +function Vector3:posmodv(modv) end + +--- @param b Vector3 +--- @return Vector3 +function Vector3:project(b) end + +--- @param n Vector3 +--- @return Vector3 +function Vector3:slide(n) end + +--- @param n Vector3 +--- @return Vector3 +function Vector3:bounce(n) end + +--- @param n Vector3 +--- @return Vector3 +function Vector3:reflect(n) end + +--- @return Vector3 +function Vector3:sign() end + +--- @return Vector2 +function Vector3:octahedron_encode() end + +--- @param with Vector3 +--- @return Vector3 +function Vector3:min(with) end + +--- @param with float +--- @return Vector3 +function Vector3:minf(with) end + +--- @param with Vector3 +--- @return Vector3 +function Vector3:max(with) end + +--- @param with float +--- @return Vector3 +function Vector3:maxf(with) end + +--- static +--- @param uv Vector2 +--- @return Vector3 +function Vector3:octahedron_decode(uv) end + + +----------------------------------------------------------- +-- Vector3i +----------------------------------------------------------- + +--- @class Vector3i: Variant, { [int]: int? } +--- @field x int +--- @field y int +--- @field z int +--- @overload fun(): Vector3i +--- @overload fun(from: Vector3i): Vector3i +--- @overload fun(from: Vector3): Vector3i +--- @overload fun(x: int, y: int, z: int): Vector3i +--- @operator unm(): Vector3i +--- @operator mul(int): Vector3i +--- @operator div(int): Vector3i +--- @operator mod(int): Vector3i +--- @operator mul(float): Vector3 +--- @operator div(float): Vector3 +--- @operator add(Vector3i): Vector3i +--- @operator sub(Vector3i): Vector3i +--- @operator mul(Vector3i): Vector3i +--- @operator div(Vector3i): Vector3i +--- @operator mod(Vector3i): Vector3i +Vector3i = {} + +Vector3i.ZERO = Vector3i(0, 0, 0) +Vector3i.ONE = Vector3i(1, 1, 1) +Vector3i.MIN = Vector3i(-2147483648, -2147483648, -2147483648) +Vector3i.MAX = Vector3i(2147483647, 2147483647, 2147483647) +Vector3i.LEFT = Vector3i(-1, 0, 0) +Vector3i.RIGHT = Vector3i(1, 0, 0) +Vector3i.UP = Vector3i(0, 1, 0) +Vector3i.DOWN = Vector3i(0, -1, 0) +Vector3i.FORWARD = Vector3i(0, 0, -1) +Vector3i.BACK = Vector3i(0, 0, 1) + +--- @enum Vector3i.Axis +Vector3i.Axis = { + AXIS_X = 0, + AXIS_Y = 1, + AXIS_Z = 2, +} + +--- @return int +function Vector3i:min_axis_index() end + +--- @return int +function Vector3i:max_axis_index() end + +--- @param to Vector3i +--- @return float +function Vector3i:distance_to(to) end + +--- @param to Vector3i +--- @return int +function Vector3i:distance_squared_to(to) end + +--- @return float +function Vector3i:length() end + +--- @return int +function Vector3i:length_squared() end + +--- @return Vector3i +function Vector3i:sign() end + +--- @return Vector3i +function Vector3i:abs() end + +--- @param min Vector3i +--- @param max Vector3i +--- @return Vector3i +function Vector3i:clamp(min, max) end + +--- @param min int +--- @param max int +--- @return Vector3i +function Vector3i:clampi(min, max) end + +--- @param step Vector3i +--- @return Vector3i +function Vector3i:snapped(step) end + +--- @param step int +--- @return Vector3i +function Vector3i:snappedi(step) end + +--- @param with Vector3i +--- @return Vector3i +function Vector3i:min(with) end + +--- @param with int +--- @return Vector3i +function Vector3i:mini(with) end + +--- @param with Vector3i +--- @return Vector3i +function Vector3i:max(with) end + +--- @param with int +--- @return Vector3i +function Vector3i:maxi(with) end + + +----------------------------------------------------------- +-- Transform2D +----------------------------------------------------------- + +--- @class Transform2D: Variant, { [int]: Vector2? } +--- @field x Vector2 +--- @field y Vector2 +--- @field origin Vector2 +--- @overload fun(): Transform2D +--- @overload fun(from: Transform2D): Transform2D +--- @overload fun(rotation: float, position: Vector2): Transform2D +--- @overload fun(rotation: float, scale: Vector2, skew: float, position: Vector2): Transform2D +--- @overload fun(x_axis: Vector2, y_axis: Vector2, origin: Vector2): Transform2D +--- @operator mul(int): Transform2D +--- @operator div(int): Transform2D +--- @operator mul(float): Transform2D +--- @operator div(float): Transform2D +--- @operator mul(Vector2): Vector2 +--- @operator mul(Rect2): Rect2 +--- @operator mul(Transform2D): Transform2D +--- @operator mul(PackedVector2Array): PackedVector2Array +Transform2D = {} + +Transform2D.IDENTITY = Transform2D(1, 0, 0, 1, 0, 0) +Transform2D.FLIP_X = Transform2D(-1, 0, 0, 1, 0, 0) +Transform2D.FLIP_Y = Transform2D(1, 0, 0, -1, 0, 0) + +--- @return Transform2D +function Transform2D:inverse() end + +--- @return Transform2D +function Transform2D:affine_inverse() end + +--- @return float +function Transform2D:get_rotation() end + +--- @return Vector2 +function Transform2D:get_origin() end + +--- @return Vector2 +function Transform2D:get_scale() end + +--- @return float +function Transform2D:get_skew() end + +--- @return Transform2D +function Transform2D:orthonormalized() end + +--- @param angle float +--- @return Transform2D +function Transform2D:rotated(angle) end + +--- @param angle float +--- @return Transform2D +function Transform2D:rotated_local(angle) end + +--- @param scale Vector2 +--- @return Transform2D +function Transform2D:scaled(scale) end + +--- @param scale Vector2 +--- @return Transform2D +function Transform2D:scaled_local(scale) end + +--- @param offset Vector2 +--- @return Transform2D +function Transform2D:translated(offset) end + +--- @param offset Vector2 +--- @return Transform2D +function Transform2D:translated_local(offset) end + +--- @return float +function Transform2D:determinant() end + +--- @param v Vector2 +--- @return Vector2 +function Transform2D:basis_xform(v) end + +--- @param v Vector2 +--- @return Vector2 +function Transform2D:basis_xform_inv(v) end + +--- @param xform Transform2D +--- @param weight float +--- @return Transform2D +function Transform2D:interpolate_with(xform, weight) end + +--- @return bool +function Transform2D:is_conformal() end + +--- @param xform Transform2D +--- @return bool +function Transform2D:is_equal_approx(xform) end + +--- @return bool +function Transform2D:is_finite() end + +--- @param target Vector2? Default: Vector2(0, 0) +--- @return Transform2D +function Transform2D:looking_at(target) end + + +----------------------------------------------------------- +-- Vector4 +----------------------------------------------------------- + +--- @class Vector4: Variant, { [int]: float? } +--- @field x float +--- @field y float +--- @field z float +--- @field w float +--- @overload fun(): Vector4 +--- @overload fun(from: Vector4): Vector4 +--- @overload fun(from: Vector4i): Vector4 +--- @overload fun(x: float, y: float, z: float, w: float): Vector4 +--- @operator unm(): Vector4 +--- @operator mul(int): Vector4 +--- @operator div(int): Vector4 +--- @operator mul(float): Vector4 +--- @operator div(float): Vector4 +--- @operator add(Vector4): Vector4 +--- @operator sub(Vector4): Vector4 +--- @operator mul(Vector4): Vector4 +--- @operator div(Vector4): Vector4 +--- @operator mul(Projection): Vector4 +Vector4 = {} + +Vector4.ZERO = Vector4(0, 0, 0, 0) +Vector4.ONE = Vector4(1, 1, 1, 1) +Vector4.INF = Vector4(math.huge, math.huge, math.huge, math.huge) + +--- @enum Vector4.Axis +Vector4.Axis = { + AXIS_X = 0, + AXIS_Y = 1, + AXIS_Z = 2, + AXIS_W = 3, +} + +--- @return int +function Vector4:min_axis_index() end + +--- @return int +function Vector4:max_axis_index() end + +--- @return float +function Vector4:length() end + +--- @return float +function Vector4:length_squared() end + +--- @return Vector4 +function Vector4:abs() end + +--- @return Vector4 +function Vector4:sign() end + +--- @return Vector4 +function Vector4:floor() end + +--- @return Vector4 +function Vector4:ceil() end + +--- @return Vector4 +function Vector4:round() end + +--- @param to Vector4 +--- @param weight float +--- @return Vector4 +function Vector4:lerp(to, weight) end + +--- @param b Vector4 +--- @param pre_a Vector4 +--- @param post_b Vector4 +--- @param weight float +--- @return Vector4 +function Vector4:cubic_interpolate(b, pre_a, post_b, weight) end + +--- @param b Vector4 +--- @param pre_a Vector4 +--- @param post_b Vector4 +--- @param weight float +--- @param b_t float +--- @param pre_a_t float +--- @param post_b_t float +--- @return Vector4 +function Vector4:cubic_interpolate_in_time(b, pre_a, post_b, weight, b_t, pre_a_t, post_b_t) end + +--- @param mod float +--- @return Vector4 +function Vector4:posmod(mod) end + +--- @param modv Vector4 +--- @return Vector4 +function Vector4:posmodv(modv) end + +--- @param step Vector4 +--- @return Vector4 +function Vector4:snapped(step) end + +--- @param step float +--- @return Vector4 +function Vector4:snappedf(step) end + +--- @param min Vector4 +--- @param max Vector4 +--- @return Vector4 +function Vector4:clamp(min, max) end + +--- @param min float +--- @param max float +--- @return Vector4 +function Vector4:clampf(min, max) end + +--- @return Vector4 +function Vector4:normalized() end + +--- @return bool +function Vector4:is_normalized() end + +--- @param to Vector4 +--- @return Vector4 +function Vector4:direction_to(to) end + +--- @param to Vector4 +--- @return float +function Vector4:distance_to(to) end + +--- @param to Vector4 +--- @return float +function Vector4:distance_squared_to(to) end + +--- @param with Vector4 +--- @return float +function Vector4:dot(with) end + +--- @return Vector4 +function Vector4:inverse() end + +--- @param to Vector4 +--- @return bool +function Vector4:is_equal_approx(to) end + +--- @return bool +function Vector4:is_zero_approx() end + +--- @return bool +function Vector4:is_finite() end + +--- @param with Vector4 +--- @return Vector4 +function Vector4:min(with) end + +--- @param with float +--- @return Vector4 +function Vector4:minf(with) end + +--- @param with Vector4 +--- @return Vector4 +function Vector4:max(with) end + +--- @param with float +--- @return Vector4 +function Vector4:maxf(with) end + + +----------------------------------------------------------- +-- Vector4i +----------------------------------------------------------- + +--- @class Vector4i: Variant, { [int]: int? } +--- @field x int +--- @field y int +--- @field z int +--- @field w int +--- @overload fun(): Vector4i +--- @overload fun(from: Vector4i): Vector4i +--- @overload fun(from: Vector4): Vector4i +--- @overload fun(x: int, y: int, z: int, w: int): Vector4i +--- @operator unm(): Vector4i +--- @operator mul(int): Vector4i +--- @operator div(int): Vector4i +--- @operator mod(int): Vector4i +--- @operator mul(float): Vector4 +--- @operator div(float): Vector4 +--- @operator add(Vector4i): Vector4i +--- @operator sub(Vector4i): Vector4i +--- @operator mul(Vector4i): Vector4i +--- @operator div(Vector4i): Vector4i +--- @operator mod(Vector4i): Vector4i +Vector4i = {} + +Vector4i.ZERO = Vector4i(0, 0, 0, 0) +Vector4i.ONE = Vector4i(1, 1, 1, 1) +Vector4i.MIN = Vector4i(-2147483648, -2147483648, -2147483648, -2147483648) +Vector4i.MAX = Vector4i(2147483647, 2147483647, 2147483647, 2147483647) + +--- @enum Vector4i.Axis +Vector4i.Axis = { + AXIS_X = 0, + AXIS_Y = 1, + AXIS_Z = 2, + AXIS_W = 3, +} + +--- @return int +function Vector4i:min_axis_index() end + +--- @return int +function Vector4i:max_axis_index() end + +--- @return float +function Vector4i:length() end + +--- @return int +function Vector4i:length_squared() end + +--- @return Vector4i +function Vector4i:sign() end + +--- @return Vector4i +function Vector4i:abs() end + +--- @param min Vector4i +--- @param max Vector4i +--- @return Vector4i +function Vector4i:clamp(min, max) end + +--- @param min int +--- @param max int +--- @return Vector4i +function Vector4i:clampi(min, max) end + +--- @param step Vector4i +--- @return Vector4i +function Vector4i:snapped(step) end + +--- @param step int +--- @return Vector4i +function Vector4i:snappedi(step) end + +--- @param with Vector4i +--- @return Vector4i +function Vector4i:min(with) end + +--- @param with int +--- @return Vector4i +function Vector4i:mini(with) end + +--- @param with Vector4i +--- @return Vector4i +function Vector4i:max(with) end + +--- @param with int +--- @return Vector4i +function Vector4i:maxi(with) end + +--- @param to Vector4i +--- @return float +function Vector4i:distance_to(to) end + +--- @param to Vector4i +--- @return int +function Vector4i:distance_squared_to(to) end + + +----------------------------------------------------------- +-- Plane +----------------------------------------------------------- + +--- @class Plane: Variant +--- @field x float +--- @field y float +--- @field z float +--- @field d float +--- @field normal Vector3 +--- @overload fun(): Plane +--- @overload fun(from: Plane): Plane +--- @overload fun(normal: Vector3): Plane +--- @overload fun(normal: Vector3, d: float): Plane +--- @overload fun(normal: Vector3, point: Vector3): Plane +--- @overload fun(point1: Vector3, point2: Vector3, point3: Vector3): Plane +--- @overload fun(a: float, b: float, c: float, d: float): Plane +--- @operator unm(): Plane +--- @operator mul(Transform3D): Plane +Plane = {} + +Plane.PLANE_YZ = Plane(1, 0, 0, 0) +Plane.PLANE_XZ = Plane(0, 1, 0, 0) +Plane.PLANE_XY = Plane(0, 0, 1, 0) + +--- @return Plane +function Plane:normalized() end + +--- @return Vector3 +function Plane:get_center() end + +--- @param to_plane Plane +--- @return bool +function Plane:is_equal_approx(to_plane) end + +--- @return bool +function Plane:is_finite() end + +--- @param point Vector3 +--- @return bool +function Plane:is_point_over(point) end + +--- @param point Vector3 +--- @return float +function Plane:distance_to(point) end + +--- @param point Vector3 +--- @param tolerance float? Default: 1e-05 +--- @return bool +function Plane:has_point(point, tolerance) end + +--- @param point Vector3 +--- @return Vector3 +function Plane:project(point) end + +--- @param b Plane +--- @param c Plane +--- @return any +function Plane:intersect_3(b, c) end + +--- @param from Vector3 +--- @param dir Vector3 +--- @return any +function Plane:intersects_ray(from, dir) end + +--- @param from Vector3 +--- @param to Vector3 +--- @return any +function Plane:intersects_segment(from, to) end + + +----------------------------------------------------------- +-- Quaternion +----------------------------------------------------------- + +--- @class Quaternion: Variant, { [int]: float? } +--- @field x float +--- @field y float +--- @field z float +--- @field w float +--- @overload fun(): Quaternion +--- @overload fun(from: Quaternion): Quaternion +--- @overload fun(from: Basis): Quaternion +--- @overload fun(axis: Vector3, angle: float): Quaternion +--- @overload fun(arc_from: Vector3, arc_to: Vector3): Quaternion +--- @overload fun(x: float, y: float, z: float, w: float): Quaternion +--- @operator unm(): Quaternion +--- @operator mul(int): Quaternion +--- @operator div(int): Quaternion +--- @operator mul(float): Quaternion +--- @operator div(float): Quaternion +--- @operator mul(Vector3): Vector3 +--- @operator add(Quaternion): Quaternion +--- @operator sub(Quaternion): Quaternion +--- @operator mul(Quaternion): Quaternion +Quaternion = {} + +Quaternion.IDENTITY = Quaternion(0, 0, 0, 1) + +--- @return float +function Quaternion:length() end + +--- @return float +function Quaternion:length_squared() end + +--- @return Quaternion +function Quaternion:normalized() end + +--- @return bool +function Quaternion:is_normalized() end + +--- @param to Quaternion +--- @return bool +function Quaternion:is_equal_approx(to) end + +--- @return bool +function Quaternion:is_finite() end + +--- @return Quaternion +function Quaternion:inverse() end + +--- @return Quaternion +function Quaternion:log() end + +--- @return Quaternion +function Quaternion:exp() end + +--- @param to Quaternion +--- @return float +function Quaternion:angle_to(to) end + +--- @param with Quaternion +--- @return float +function Quaternion:dot(with) end + +--- @param to Quaternion +--- @param weight float +--- @return Quaternion +function Quaternion:slerp(to, weight) end + +--- @param to Quaternion +--- @param weight float +--- @return Quaternion +function Quaternion:slerpni(to, weight) end + +--- @param b Quaternion +--- @param pre_a Quaternion +--- @param post_b Quaternion +--- @param weight float +--- @return Quaternion +function Quaternion:spherical_cubic_interpolate(b, pre_a, post_b, weight) end + +--- @param b Quaternion +--- @param pre_a Quaternion +--- @param post_b Quaternion +--- @param weight float +--- @param b_t float +--- @param pre_a_t float +--- @param post_b_t float +--- @return Quaternion +function Quaternion:spherical_cubic_interpolate_in_time(b, pre_a, post_b, weight, b_t, pre_a_t, post_b_t) end + +--- @param order int? Default: 2 +--- @return Vector3 +function Quaternion:get_euler(order) end + +--- static +--- @param euler Vector3 +--- @return Quaternion +function Quaternion:from_euler(euler) end + +--- @return Vector3 +function Quaternion:get_axis() end + +--- @return float +function Quaternion:get_angle() end + + +----------------------------------------------------------- +-- AABB +----------------------------------------------------------- + +--- @class AABB: Variant +--- @field position Vector3 +--- @field size Vector3 +--- @field end Vector3 +--- @overload fun(): AABB +--- @overload fun(from: AABB): AABB +--- @overload fun(position: Vector3, size: Vector3): AABB +--- @operator mul(Transform3D): AABB +AABB = {} + +--- @return AABB +function AABB:abs() end + +--- @return Vector3 +function AABB:get_center() end + +--- @return float +function AABB:get_volume() end + +--- @return bool +function AABB:has_volume() end + +--- @return bool +function AABB:has_surface() end + +--- @param point Vector3 +--- @return bool +function AABB:has_point(point) end + +--- @param aabb AABB +--- @return bool +function AABB:is_equal_approx(aabb) end + +--- @return bool +function AABB:is_finite() end + +--- @param with AABB +--- @return bool +function AABB:intersects(with) end + +--- @param with AABB +--- @return bool +function AABB:encloses(with) end + +--- @param plane Plane +--- @return bool +function AABB:intersects_plane(plane) end + +--- @param with AABB +--- @return AABB +function AABB:intersection(with) end + +--- @param with AABB +--- @return AABB +function AABB:merge(with) end + +--- @param to_point Vector3 +--- @return AABB +function AABB:expand(to_point) end + +--- @param by float +--- @return AABB +function AABB:grow(by) end + +--- @param direction Vector3 +--- @return Vector3 +function AABB:get_support(direction) end + +--- @return Vector3 +function AABB:get_longest_axis() end + +--- @return int +function AABB:get_longest_axis_index() end + +--- @return float +function AABB:get_longest_axis_size() end + +--- @return Vector3 +function AABB:get_shortest_axis() end + +--- @return int +function AABB:get_shortest_axis_index() end + +--- @return float +function AABB:get_shortest_axis_size() end + +--- @param idx int +--- @return Vector3 +function AABB:get_endpoint(idx) end + +--- @param from Vector3 +--- @param to Vector3 +--- @return any +function AABB:intersects_segment(from, to) end + +--- @param from Vector3 +--- @param dir Vector3 +--- @return any +function AABB:intersects_ray(from, dir) end + + +----------------------------------------------------------- +-- Basis +----------------------------------------------------------- + +--- @class Basis: Variant, { [int]: Vector3? } +--- @field x Vector3 +--- @field y Vector3 +--- @field z Vector3 +--- @overload fun(): Basis +--- @overload fun(from: Basis): Basis +--- @overload fun(from: Quaternion): Basis +--- @overload fun(axis: Vector3, angle: float): Basis +--- @overload fun(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3): Basis +--- @operator mul(int): Basis +--- @operator div(int): Basis +--- @operator mul(float): Basis +--- @operator div(float): Basis +--- @operator mul(Vector3): Vector3 +--- @operator mul(Basis): Basis +Basis = {} + +Basis.IDENTITY = Basis(1, 0, 0, 0, 1, 0, 0, 0, 1) +Basis.FLIP_X = Basis(-1, 0, 0, 0, 1, 0, 0, 0, 1) +Basis.FLIP_Y = Basis(1, 0, 0, 0, -1, 0, 0, 0, 1) +Basis.FLIP_Z = Basis(1, 0, 0, 0, 1, 0, 0, 0, -1) + +--- @return Basis +function Basis:inverse() end + +--- @return Basis +function Basis:transposed() end + +--- @return Basis +function Basis:orthonormalized() end + +--- @return float +function Basis:determinant() end + +--- @param axis Vector3 +--- @param angle float +--- @return Basis +function Basis:rotated(axis, angle) end + +--- @param scale Vector3 +--- @return Basis +function Basis:scaled(scale) end + +--- @param scale Vector3 +--- @return Basis +function Basis:scaled_local(scale) end + +--- @return Vector3 +function Basis:get_scale() end + +--- @param order int? Default: 2 +--- @return Vector3 +function Basis:get_euler(order) end + +--- @param with Vector3 +--- @return float +function Basis:tdotx(with) end + +--- @param with Vector3 +--- @return float +function Basis:tdoty(with) end + +--- @param with Vector3 +--- @return float +function Basis:tdotz(with) end + +--- @param to Basis +--- @param weight float +--- @return Basis +function Basis:slerp(to, weight) end + +--- @return bool +function Basis:is_conformal() end + +--- @param b Basis +--- @return bool +function Basis:is_equal_approx(b) end + +--- @return bool +function Basis:is_finite() end + +--- @return Quaternion +function Basis:get_rotation_quaternion() end + +--- static +--- @param target Vector3 +--- @param up Vector3? Default: Vector3(0, 1, 0) +--- @param use_model_front bool? Default: false +--- @return Basis +function Basis:looking_at(target, up, use_model_front) end + +--- static +--- @param scale Vector3 +--- @return Basis +function Basis:from_scale(scale) end + +--- static +--- @param euler Vector3 +--- @param order int? Default: 2 +--- @return Basis +function Basis:from_euler(euler, order) end + + +----------------------------------------------------------- +-- Transform3D +----------------------------------------------------------- + +--- @class Transform3D: Variant +--- @field basis Basis +--- @field origin Vector3 +--- @overload fun(): Transform3D +--- @overload fun(from: Transform3D): Transform3D +--- @overload fun(basis: Basis, origin: Vector3): Transform3D +--- @overload fun(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3, origin: Vector3): Transform3D +--- @overload fun(from: Projection): Transform3D +--- @operator mul(int): Transform3D +--- @operator div(int): Transform3D +--- @operator mul(float): Transform3D +--- @operator div(float): Transform3D +--- @operator mul(Vector3): Vector3 +--- @operator mul(Plane): Plane +--- @operator mul(AABB): AABB +--- @operator mul(Transform3D): Transform3D +--- @operator mul(PackedVector3Array): PackedVector3Array +Transform3D = {} + +Transform3D.IDENTITY = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +Transform3D.FLIP_X = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +Transform3D.FLIP_Y = Transform3D(1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0) +Transform3D.FLIP_Z = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) + +--- @return Transform3D +function Transform3D:inverse() end + +--- @return Transform3D +function Transform3D:affine_inverse() end + +--- @return Transform3D +function Transform3D:orthonormalized() end + +--- @param axis Vector3 +--- @param angle float +--- @return Transform3D +function Transform3D:rotated(axis, angle) end + +--- @param axis Vector3 +--- @param angle float +--- @return Transform3D +function Transform3D:rotated_local(axis, angle) end + +--- @param scale Vector3 +--- @return Transform3D +function Transform3D:scaled(scale) end + +--- @param scale Vector3 +--- @return Transform3D +function Transform3D:scaled_local(scale) end + +--- @param offset Vector3 +--- @return Transform3D +function Transform3D:translated(offset) end + +--- @param offset Vector3 +--- @return Transform3D +function Transform3D:translated_local(offset) end + +--- @param target Vector3 +--- @param up Vector3? Default: Vector3(0, 1, 0) +--- @param use_model_front bool? Default: false +--- @return Transform3D +function Transform3D:looking_at(target, up, use_model_front) end + +--- @param xform Transform3D +--- @param weight float +--- @return Transform3D +function Transform3D:interpolate_with(xform, weight) end + +--- @param xform Transform3D +--- @return bool +function Transform3D:is_equal_approx(xform) end + +--- @return bool +function Transform3D:is_finite() end + + +----------------------------------------------------------- +-- Projection +----------------------------------------------------------- + +--- @class Projection: Variant, { [int]: Vector4? } +--- @field x Vector4 +--- @field y Vector4 +--- @field z Vector4 +--- @field w Vector4 +--- @overload fun(): Projection +--- @overload fun(from: Projection): Projection +--- @overload fun(from: Transform3D): Projection +--- @overload fun(x_axis: Vector4, y_axis: Vector4, z_axis: Vector4, w_axis: Vector4): Projection +--- @operator mul(Vector4): Vector4 +--- @operator mul(Projection): Projection +Projection = {} + +Projection.IDENTITY = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) +Projection.ZERO = Projection(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +--- @enum Projection.Planes +Projection.Planes = { + PLANE_NEAR = 0, + PLANE_FAR = 1, + PLANE_LEFT = 2, + PLANE_TOP = 3, + PLANE_RIGHT = 4, + PLANE_BOTTOM = 5, +} + +--- static +--- @param flip_y bool +--- @return Projection +function Projection:create_depth_correction(flip_y) end + +--- static +--- @param rect Rect2 +--- @return Projection +function Projection:create_light_atlas_rect(rect) end + +--- static +--- @param fovy float +--- @param aspect float +--- @param z_near float +--- @param z_far float +--- @param flip_fov bool? Default: false +--- @return Projection +function Projection:create_perspective(fovy, aspect, z_near, z_far, flip_fov) end + +--- static +--- @param fovy float +--- @param aspect float +--- @param z_near float +--- @param z_far float +--- @param flip_fov bool +--- @param eye int +--- @param intraocular_dist float +--- @param convergence_dist float +--- @return Projection +function Projection:create_perspective_hmd(fovy, aspect, z_near, z_far, flip_fov, eye, intraocular_dist, convergence_dist) end + +--- static +--- @param eye int +--- @param aspect float +--- @param intraocular_dist float +--- @param display_width float +--- @param display_to_lens float +--- @param oversample float +--- @param z_near float +--- @param z_far float +--- @return Projection +function Projection:create_for_hmd(eye, aspect, intraocular_dist, display_width, display_to_lens, oversample, z_near, z_far) end + +--- static +--- @param left float +--- @param right float +--- @param bottom float +--- @param top float +--- @param z_near float +--- @param z_far float +--- @return Projection +function Projection:create_orthogonal(left, right, bottom, top, z_near, z_far) end + +--- static +--- @param size float +--- @param aspect float +--- @param z_near float +--- @param z_far float +--- @param flip_fov bool? Default: false +--- @return Projection +function Projection:create_orthogonal_aspect(size, aspect, z_near, z_far, flip_fov) end + +--- static +--- @param left float +--- @param right float +--- @param bottom float +--- @param top float +--- @param z_near float +--- @param z_far float +--- @return Projection +function Projection:create_frustum(left, right, bottom, top, z_near, z_far) end + +--- static +--- @param size float +--- @param aspect float +--- @param offset Vector2 +--- @param z_near float +--- @param z_far float +--- @param flip_fov bool? Default: false +--- @return Projection +function Projection:create_frustum_aspect(size, aspect, offset, z_near, z_far, flip_fov) end + +--- static +--- @param aabb AABB +--- @return Projection +function Projection:create_fit_aabb(aabb) end + +--- @return float +function Projection:determinant() end + +--- @param new_znear float +--- @return Projection +function Projection:perspective_znear_adjusted(new_znear) end + +--- @param plane int +--- @return Plane +function Projection:get_projection_plane(plane) end + +--- @return Projection +function Projection:flipped_y() end + +--- @param offset Vector2 +--- @return Projection +function Projection:jitter_offseted(offset) end + +--- static +--- @param fovx float +--- @param aspect float +--- @return float +function Projection:get_fovy(fovx, aspect) end + +--- @return float +function Projection:get_z_far() end + +--- @return float +function Projection:get_z_near() end + +--- @return float +function Projection:get_aspect() end + +--- @return float +function Projection:get_fov() end + +--- @return bool +function Projection:is_orthogonal() end + +--- @return Vector2 +function Projection:get_viewport_half_extents() end + +--- @return Vector2 +function Projection:get_far_plane_half_extents() end + +--- @return Projection +function Projection:inverse() end + +--- @param for_pixel_width int +--- @return int +function Projection:get_pixels_per_meter(for_pixel_width) end + +--- @return float +function Projection:get_lod_multiplier() end + + +----------------------------------------------------------- +-- Color +----------------------------------------------------------- + +--- @class Color: Variant, { [int]: float? } +--- @field r float +--- @field g float +--- @field b float +--- @field a float +--- @field r8 int +--- @field g8 int +--- @field b8 int +--- @field a8 int +--- @field h float +--- @field s float +--- @field v float +--- @field ok_hsl_h float +--- @field ok_hsl_s float +--- @field ok_hsl_l float +--- @overload fun(): Color +--- @overload fun(from: Color): Color +--- @overload fun(from: Color, alpha: float): Color +--- @overload fun(r: float, g: float, b: float): Color +--- @overload fun(r: float, g: float, b: float, a: float): Color +--- @overload fun(code: String): Color +--- @overload fun(code: String, alpha: float): Color +--- @operator unm(): Color +--- @operator mul(int): Color +--- @operator div(int): Color +--- @operator mul(float): Color +--- @operator div(float): Color +--- @operator add(Color): Color +--- @operator sub(Color): Color +--- @operator mul(Color): Color +--- @operator div(Color): Color +Color = {} + +Color.ALICE_BLUE = Color(0.9411765, 0.972549, 1, 1) +Color.ANTIQUE_WHITE = Color(0.98039216, 0.92156863, 0.84313726, 1) +Color.AQUA = Color(0, 1, 1, 1) +Color.AQUAMARINE = Color(0.49803922, 1, 0.83137256, 1) +Color.AZURE = Color(0.9411765, 1, 1, 1) +Color.BEIGE = Color(0.9607843, 0.9607843, 0.8627451, 1) +Color.BISQUE = Color(1, 0.89411765, 0.76862746, 1) +Color.BLACK = Color(0, 0, 0, 1) +Color.BLANCHED_ALMOND = Color(1, 0.92156863, 0.8039216, 1) +Color.BLUE = Color(0, 0, 1, 1) +Color.BLUE_VIOLET = Color(0.5411765, 0.16862746, 0.8862745, 1) +Color.BROWN = Color(0.64705884, 0.16470589, 0.16470589, 1) +Color.BURLYWOOD = Color(0.87058824, 0.72156864, 0.5294118, 1) +Color.CADET_BLUE = Color(0.37254903, 0.61960787, 0.627451, 1) +Color.CHARTREUSE = Color(0.49803922, 1, 0, 1) +Color.CHOCOLATE = Color(0.8235294, 0.4117647, 0.11764706, 1) +Color.CORAL = Color(1, 0.49803922, 0.3137255, 1) +Color.CORNFLOWER_BLUE = Color(0.39215687, 0.58431375, 0.92941177, 1) +Color.CORNSILK = Color(1, 0.972549, 0.8627451, 1) +Color.CRIMSON = Color(0.8627451, 0.078431375, 0.23529412, 1) +Color.CYAN = Color(0, 1, 1, 1) +Color.DARK_BLUE = Color(0, 0, 0.54509807, 1) +Color.DARK_CYAN = Color(0, 0.54509807, 0.54509807, 1) +Color.DARK_GOLDENROD = Color(0.72156864, 0.5254902, 0.043137256, 1) +Color.DARK_GRAY = Color(0.6627451, 0.6627451, 0.6627451, 1) +Color.DARK_GREEN = Color(0, 0.39215687, 0, 1) +Color.DARK_KHAKI = Color(0.7411765, 0.7176471, 0.41960785, 1) +Color.DARK_MAGENTA = Color(0.54509807, 0, 0.54509807, 1) +Color.DARK_OLIVE_GREEN = Color(0.33333334, 0.41960785, 0.18431373, 1) +Color.DARK_ORANGE = Color(1, 0.54901963, 0, 1) +Color.DARK_ORCHID = Color(0.6, 0.19607843, 0.8, 1) +Color.DARK_RED = Color(0.54509807, 0, 0, 1) +Color.DARK_SALMON = Color(0.9137255, 0.5882353, 0.47843137, 1) +Color.DARK_SEA_GREEN = Color(0.56078434, 0.7372549, 0.56078434, 1) +Color.DARK_SLATE_BLUE = Color(0.28235295, 0.23921569, 0.54509807, 1) +Color.DARK_SLATE_GRAY = Color(0.18431373, 0.30980393, 0.30980393, 1) +Color.DARK_TURQUOISE = Color(0, 0.80784315, 0.81960785, 1) +Color.DARK_VIOLET = Color(0.5803922, 0, 0.827451, 1) +Color.DEEP_PINK = Color(1, 0.078431375, 0.5764706, 1) +Color.DEEP_SKY_BLUE = Color(0, 0.7490196, 1, 1) +Color.DIM_GRAY = Color(0.4117647, 0.4117647, 0.4117647, 1) +Color.DODGER_BLUE = Color(0.11764706, 0.5647059, 1, 1) +Color.FIREBRICK = Color(0.69803923, 0.13333334, 0.13333334, 1) +Color.FLORAL_WHITE = Color(1, 0.98039216, 0.9411765, 1) +Color.FOREST_GREEN = Color(0.13333334, 0.54509807, 0.13333334, 1) +Color.FUCHSIA = Color(1, 0, 1, 1) +Color.GAINSBORO = Color(0.8627451, 0.8627451, 0.8627451, 1) +Color.GHOST_WHITE = Color(0.972549, 0.972549, 1, 1) +Color.GOLD = Color(1, 0.84313726, 0, 1) +Color.GOLDENROD = Color(0.85490197, 0.64705884, 0.1254902, 1) +Color.GRAY = Color(0.74509805, 0.74509805, 0.74509805, 1) +Color.GREEN = Color(0, 1, 0, 1) +Color.GREEN_YELLOW = Color(0.6784314, 1, 0.18431373, 1) +Color.HONEYDEW = Color(0.9411765, 1, 0.9411765, 1) +Color.HOT_PINK = Color(1, 0.4117647, 0.7058824, 1) +Color.INDIAN_RED = Color(0.8039216, 0.36078432, 0.36078432, 1) +Color.INDIGO = Color(0.29411766, 0, 0.50980395, 1) +Color.IVORY = Color(1, 1, 0.9411765, 1) +Color.KHAKI = Color(0.9411765, 0.9019608, 0.54901963, 1) +Color.LAVENDER = Color(0.9019608, 0.9019608, 0.98039216, 1) +Color.LAVENDER_BLUSH = Color(1, 0.9411765, 0.9607843, 1) +Color.LAWN_GREEN = Color(0.4862745, 0.9882353, 0, 1) +Color.LEMON_CHIFFON = Color(1, 0.98039216, 0.8039216, 1) +Color.LIGHT_BLUE = Color(0.6784314, 0.84705883, 0.9019608, 1) +Color.LIGHT_CORAL = Color(0.9411765, 0.5019608, 0.5019608, 1) +Color.LIGHT_CYAN = Color(0.8784314, 1, 1, 1) +Color.LIGHT_GOLDENROD = Color(0.98039216, 0.98039216, 0.8235294, 1) +Color.LIGHT_GRAY = Color(0.827451, 0.827451, 0.827451, 1) +Color.LIGHT_GREEN = Color(0.5647059, 0.93333334, 0.5647059, 1) +Color.LIGHT_PINK = Color(1, 0.7137255, 0.75686276, 1) +Color.LIGHT_SALMON = Color(1, 0.627451, 0.47843137, 1) +Color.LIGHT_SEA_GREEN = Color(0.1254902, 0.69803923, 0.6666667, 1) +Color.LIGHT_SKY_BLUE = Color(0.5294118, 0.80784315, 0.98039216, 1) +Color.LIGHT_SLATE_GRAY = Color(0.46666667, 0.53333336, 0.6, 1) +Color.LIGHT_STEEL_BLUE = Color(0.6901961, 0.76862746, 0.87058824, 1) +Color.LIGHT_YELLOW = Color(1, 1, 0.8784314, 1) +Color.LIME = Color(0, 1, 0, 1) +Color.LIME_GREEN = Color(0.19607843, 0.8039216, 0.19607843, 1) +Color.LINEN = Color(0.98039216, 0.9411765, 0.9019608, 1) +Color.MAGENTA = Color(1, 0, 1, 1) +Color.MAROON = Color(0.6901961, 0.1882353, 0.3764706, 1) +Color.MEDIUM_AQUAMARINE = Color(0.4, 0.8039216, 0.6666667, 1) +Color.MEDIUM_BLUE = Color(0, 0, 0.8039216, 1) +Color.MEDIUM_ORCHID = Color(0.7294118, 0.33333334, 0.827451, 1) +Color.MEDIUM_PURPLE = Color(0.5764706, 0.4392157, 0.85882354, 1) +Color.MEDIUM_SEA_GREEN = Color(0.23529412, 0.7019608, 0.44313726, 1) +Color.MEDIUM_SLATE_BLUE = Color(0.48235294, 0.40784314, 0.93333334, 1) +Color.MEDIUM_SPRING_GREEN = Color(0, 0.98039216, 0.6039216, 1) +Color.MEDIUM_TURQUOISE = Color(0.28235295, 0.81960785, 0.8, 1) +Color.MEDIUM_VIOLET_RED = Color(0.78039217, 0.08235294, 0.52156866, 1) +Color.MIDNIGHT_BLUE = Color(0.09803922, 0.09803922, 0.4392157, 1) +Color.MINT_CREAM = Color(0.9607843, 1, 0.98039216, 1) +Color.MISTY_ROSE = Color(1, 0.89411765, 0.88235295, 1) +Color.MOCCASIN = Color(1, 0.89411765, 0.70980394, 1) +Color.NAVAJO_WHITE = Color(1, 0.87058824, 0.6784314, 1) +Color.NAVY_BLUE = Color(0, 0, 0.5019608, 1) +Color.OLD_LACE = Color(0.99215686, 0.9607843, 0.9019608, 1) +Color.OLIVE = Color(0.5019608, 0.5019608, 0, 1) +Color.OLIVE_DRAB = Color(0.41960785, 0.5568628, 0.13725491, 1) +Color.ORANGE = Color(1, 0.64705884, 0, 1) +Color.ORANGE_RED = Color(1, 0.27058825, 0, 1) +Color.ORCHID = Color(0.85490197, 0.4392157, 0.8392157, 1) +Color.PALE_GOLDENROD = Color(0.93333334, 0.9098039, 0.6666667, 1) +Color.PALE_GREEN = Color(0.59607846, 0.9843137, 0.59607846, 1) +Color.PALE_TURQUOISE = Color(0.6862745, 0.93333334, 0.93333334, 1) +Color.PALE_VIOLET_RED = Color(0.85882354, 0.4392157, 0.5764706, 1) +Color.PAPAYA_WHIP = Color(1, 0.9372549, 0.8352941, 1) +Color.PEACH_PUFF = Color(1, 0.85490197, 0.7254902, 1) +Color.PERU = Color(0.8039216, 0.52156866, 0.24705882, 1) +Color.PINK = Color(1, 0.7529412, 0.79607844, 1) +Color.PLUM = Color(0.8666667, 0.627451, 0.8666667, 1) +Color.POWDER_BLUE = Color(0.6901961, 0.8784314, 0.9019608, 1) +Color.PURPLE = Color(0.627451, 0.1254902, 0.9411765, 1) +Color.REBECCA_PURPLE = Color(0.4, 0.2, 0.6, 1) +Color.RED = Color(1, 0, 0, 1) +Color.ROSY_BROWN = Color(0.7372549, 0.56078434, 0.56078434, 1) +Color.ROYAL_BLUE = Color(0.25490198, 0.4117647, 0.88235295, 1) +Color.SADDLE_BROWN = Color(0.54509807, 0.27058825, 0.07450981, 1) +Color.SALMON = Color(0.98039216, 0.5019608, 0.44705883, 1) +Color.SANDY_BROWN = Color(0.95686275, 0.6431373, 0.3764706, 1) +Color.SEA_GREEN = Color(0.18039216, 0.54509807, 0.34117648, 1) +Color.SEASHELL = Color(1, 0.9607843, 0.93333334, 1) +Color.SIENNA = Color(0.627451, 0.32156864, 0.1764706, 1) +Color.SILVER = Color(0.7529412, 0.7529412, 0.7529412, 1) +Color.SKY_BLUE = Color(0.5294118, 0.80784315, 0.92156863, 1) +Color.SLATE_BLUE = Color(0.41568628, 0.3529412, 0.8039216, 1) +Color.SLATE_GRAY = Color(0.4392157, 0.5019608, 0.5647059, 1) +Color.SNOW = Color(1, 0.98039216, 0.98039216, 1) +Color.SPRING_GREEN = Color(0, 1, 0.49803922, 1) +Color.STEEL_BLUE = Color(0.27450982, 0.50980395, 0.7058824, 1) +Color.TAN = Color(0.8235294, 0.7058824, 0.54901963, 1) +Color.TEAL = Color(0, 0.5019608, 0.5019608, 1) +Color.THISTLE = Color(0.84705883, 0.7490196, 0.84705883, 1) +Color.TOMATO = Color(1, 0.3882353, 0.2784314, 1) +Color.TRANSPARENT = Color(1, 1, 1, 0) +Color.TURQUOISE = Color(0.2509804, 0.8784314, 0.8156863, 1) +Color.VIOLET = Color(0.93333334, 0.50980395, 0.93333334, 1) +Color.WEB_GRAY = Color(0.5019608, 0.5019608, 0.5019608, 1) +Color.WEB_GREEN = Color(0, 0.5019608, 0, 1) +Color.WEB_MAROON = Color(0.5019608, 0, 0, 1) +Color.WEB_PURPLE = Color(0.5019608, 0, 0.5019608, 1) +Color.WHEAT = Color(0.9607843, 0.87058824, 0.7019608, 1) +Color.WHITE = Color(1, 1, 1, 1) +Color.WHITE_SMOKE = Color(0.9607843, 0.9607843, 0.9607843, 1) +Color.YELLOW = Color(1, 1, 0, 1) +Color.YELLOW_GREEN = Color(0.6039216, 0.8039216, 0.19607843, 1) + +--- @return int +function Color:to_argb32() end + +--- @return int +function Color:to_abgr32() end + +--- @return int +function Color:to_rgba32() end + +--- @return int +function Color:to_argb64() end + +--- @return int +function Color:to_abgr64() end + +--- @return int +function Color:to_rgba64() end + +--- @param with_alpha bool? Default: true +--- @return String +function Color:to_html(with_alpha) end + +--- @param min Color? Default: Color(0, 0, 0, 0) +--- @param max Color? Default: Color(1, 1, 1, 1) +--- @return Color +function Color:clamp(min, max) end + +--- @return Color +function Color:inverted() end + +--- @param to Color +--- @param weight float +--- @return Color +function Color:lerp(to, weight) end + +--- @param amount float +--- @return Color +function Color:lightened(amount) end + +--- @param amount float +--- @return Color +function Color:darkened(amount) end + +--- @param over Color +--- @return Color +function Color:blend(over) end + +--- @return float +function Color:get_luminance() end + +--- @return Color +function Color:srgb_to_linear() end + +--- @return Color +function Color:linear_to_srgb() end + +--- @param to Color +--- @return bool +function Color:is_equal_approx(to) end + +--- static +--- @param hex int +--- @return Color +function Color:hex(hex) end + +--- static +--- @param hex int +--- @return Color +function Color:hex64(hex) end + +--- static +--- @param rgba String +--- @return Color +function Color:html(rgba) end + +--- static +--- @param color String +--- @return bool +function Color:html_is_valid(color) end + +--- static +--- @param str String +--- @param default Color +--- @return Color +function Color:from_string(str, default) end + +--- static +--- @param h float +--- @param s float +--- @param v float +--- @param alpha float? Default: 1.0 +--- @return Color +function Color:from_hsv(h, s, v, alpha) end + +--- static +--- @param h float +--- @param s float +--- @param l float +--- @param alpha float? Default: 1.0 +--- @return Color +function Color:from_ok_hsl(h, s, l, alpha) end + +--- static +--- @param rgbe int +--- @return Color +function Color:from_rgbe9995(rgbe) end + +--- static +--- @param r8 int +--- @param g8 int +--- @param b8 int +--- @param a8 int? Default: 255 +--- @return Color +function Color:from_rgba8(r8, g8, b8, a8) end + + +----------------------------------------------------------- +-- StringName +----------------------------------------------------------- + +--- @alias StringName string +StringName = string + + +----------------------------------------------------------- +-- NodePath +----------------------------------------------------------- + +--- @class NodePath: Variant +--- @overload fun(): NodePath +--- @overload fun(from: NodePath): NodePath +--- @overload fun(from: String): NodePath +NodePath = {} + +--- @return bool +function NodePath:is_absolute() end + +--- @return int +function NodePath:get_name_count() end + +--- @param idx int +--- @return StringName +function NodePath:get_name(idx) end + +--- @return int +function NodePath:get_subname_count() end + +--- @return int +function NodePath:hash() end + +--- @param idx int +--- @return StringName +function NodePath:get_subname(idx) end + +--- @return StringName +function NodePath:get_concatenated_names() end + +--- @return StringName +function NodePath:get_concatenated_subnames() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return NodePath +function NodePath:slice(begin, _end) end + +--- @return NodePath +function NodePath:get_as_property_path() end + +--- @return bool +function NodePath:is_empty() end + + +----------------------------------------------------------- +-- RID +----------------------------------------------------------- + +--- @class RID: Variant +--- @overload fun(): RID +--- @overload fun(from: RID): RID +RID = {} + +--- @return bool +function RID:is_valid() end + +--- @return int +function RID:get_id() end + + +----------------------------------------------------------- +-- Callable +----------------------------------------------------------- + +--- @class Callable: Variant +--- @overload fun(): Callable +--- @overload fun(from: Callable): Callable +--- @overload fun(object: Object, method: StringName): Callable +Callable = {} + +--- static +--- @param variant any +--- @param method StringName +--- @return Callable +function Callable:create(variant, method) end + +--- @param arguments Array +--- @return any +function Callable:callv(arguments) end + +--- @return bool +function Callable:is_null() end + +--- @return bool +function Callable:is_custom() end + +--- @return bool +function Callable:is_standard() end + +--- @return bool +function Callable:is_valid() end + +--- @return Object +function Callable:get_object() end + +--- @return int +function Callable:get_object_id() end + +--- @return StringName +function Callable:get_method() end + +--- @return int +function Callable:get_argument_count() end + +--- @return int +function Callable:get_bound_arguments_count() end + +--- @return Array +function Callable:get_bound_arguments() end + +--- @return int +function Callable:get_unbound_arguments_count() end + +--- @return int +function Callable:hash() end + +--- @param arguments Array +--- @return Callable +function Callable:bindv(arguments) end + +--- @param argcount int +--- @return Callable +function Callable:unbind(argcount) end + +--- @return any +function Callable:call(...) end + +function Callable:call_deferred(...) end + +function Callable:rpc(...) end + +--- @param peer_id int +function Callable:rpc_id(peer_id, ...) end + +--- @return Callable +function Callable:bind(...) end + + +----------------------------------------------------------- +-- Signal +----------------------------------------------------------- + +--- @class Signal: Variant +--- @overload fun(): Signal +--- @overload fun(from: Signal): Signal +--- @overload fun(object: Object, signal: StringName): Signal +Signal = {} + +--- @return bool +function Signal:is_null() end + +--- @return Object +function Signal:get_object() end + +--- @return int +function Signal:get_object_id() end + +--- @return StringName +function Signal:get_name() end + +--- @param callable Callable +--- @param flags int? Default: 0 +--- @return int +function Signal:connect(callable, flags) end + +--- @param callable Callable +function Signal:disconnect(callable) end + +--- @param callable Callable +--- @return bool +function Signal:is_connected(callable) end + +--- @return Array +function Signal:get_connections() end + +--- @return bool +function Signal:has_connections() end + +function Signal:emit(...) end + + +----------------------------------------------------------- +-- Dictionary +----------------------------------------------------------- + +--- @class Dictionary: Variant, { [any]: any } +--- @overload fun(from: table): Dictionary +--- @overload fun(): Dictionary +--- @overload fun(from: Dictionary): Dictionary +--- @overload fun(base: Dictionary, key_type: int, key_class_name: StringName, key_script: Variant, value_type: int, value_class_name: StringName, value_script: Variant): Dictionary +Dictionary = {} + +--- @return int +function Dictionary:size() end + +--- @return bool +function Dictionary:is_empty() end + +function Dictionary:clear() end + +--- @param dictionary Dictionary +function Dictionary:assign(dictionary) end + +function Dictionary:sort() end + +--- @param dictionary Dictionary +--- @param overwrite bool? Default: false +function Dictionary:merge(dictionary, overwrite) end + +--- @param dictionary Dictionary +--- @param overwrite bool? Default: false +--- @return Dictionary +function Dictionary:merged(dictionary, overwrite) end + +--- @param key any +--- @return bool +function Dictionary:has(key) end + +--- @param keys Array +--- @return bool +function Dictionary:has_all(keys) end + +--- @param value any +--- @return any +function Dictionary:find_key(value) end + +--- @param key any +--- @return bool +function Dictionary:erase(key) end + +--- @return int +function Dictionary:hash() end + +--- @return Array +function Dictionary:keys() end + +--- @return Array +function Dictionary:values() end + +--- @param deep bool? Default: false +--- @return Dictionary +function Dictionary:duplicate(deep) end + +--- @param deep_subresources_mode int? Default: 1 +--- @return Dictionary +function Dictionary:duplicate_deep(deep_subresources_mode) end + +--- @param key any +--- @param default any? Default: null +--- @return any +function Dictionary:get(key, default) end + +--- @param key any +--- @param default any? Default: null +--- @return any +function Dictionary:get_or_add(key, default) end + +--- @param key any +--- @param value any +--- @return bool +function Dictionary:set(key, value) end + +--- @return bool +function Dictionary:is_typed() end + +--- @return bool +function Dictionary:is_typed_key() end + +--- @return bool +function Dictionary:is_typed_value() end + +--- @param dictionary Dictionary +--- @return bool +function Dictionary:is_same_typed(dictionary) end + +--- @param dictionary Dictionary +--- @return bool +function Dictionary:is_same_typed_key(dictionary) end + +--- @param dictionary Dictionary +--- @return bool +function Dictionary:is_same_typed_value(dictionary) end + +--- @return int +function Dictionary:get_typed_key_builtin() end + +--- @return int +function Dictionary:get_typed_value_builtin() end + +--- @return StringName +function Dictionary:get_typed_key_class_name() end + +--- @return StringName +function Dictionary:get_typed_value_class_name() end + +--- @return any +function Dictionary:get_typed_key_script() end + +--- @return any +function Dictionary:get_typed_value_script() end + +function Dictionary:make_read_only() end + +--- @return bool +function Dictionary:is_read_only() end + +--- @param dictionary Dictionary +--- @param recursion_count int +--- @return bool +function Dictionary:recursive_equal(dictionary, recursion_count) end + + +----------------------------------------------------------- +-- Array +----------------------------------------------------------- + +--- @class Array: Variant, { [int]: any } +--- @overload fun(from: table): Array +--- @overload fun(): Array +--- @overload fun(from: Array): Array +--- @overload fun(base: Array, type: int, class_name: StringName, script: Variant): Array +--- @overload fun(from: PackedByteArray): Array +--- @overload fun(from: PackedInt32Array): Array +--- @overload fun(from: PackedInt64Array): Array +--- @overload fun(from: PackedFloat32Array): Array +--- @overload fun(from: PackedFloat64Array): Array +--- @overload fun(from: PackedStringArray): Array +--- @overload fun(from: PackedVector2Array): Array +--- @overload fun(from: PackedVector3Array): Array +--- @overload fun(from: PackedColorArray): Array +--- @overload fun(from: PackedVector4Array): Array +--- @operator add(Array): Array +Array = {} + +--- @return int +function Array:size() end + +--- @return bool +function Array:is_empty() end + +function Array:clear() end + +--- @return int +function Array:hash() end + +--- @param array Array +function Array:assign(array) end + +--- @param index int +--- @return any +function Array:get(index) end + +--- @param index int +--- @param value any +function Array:set(index, value) end + +--- @param value any +function Array:push_back(value) end + +--- @param value any +function Array:push_front(value) end + +--- @param value any +function Array:append(value) end + +--- @param array Array +function Array:append_array(array) end + +--- @param size int +--- @return int +function Array:resize(size) end + +--- @param position int +--- @param value any +--- @return int +function Array:insert(position, value) end + +--- @param position int +function Array:remove_at(position) end + +--- @param value any +function Array:fill(value) end + +--- @param value any +function Array:erase(value) end + +--- @return any +function Array:front() end + +--- @return any +function Array:back() end + +--- @return any +function Array:pick_random() end + +--- @param what any +--- @param from int? Default: 0 +--- @return int +function Array:find(what, from) end + +--- @param method Callable +--- @param from int? Default: 0 +--- @return int +function Array:find_custom(method, from) end + +--- @param what any +--- @param from int? Default: -1 +--- @return int +function Array:rfind(what, from) end + +--- @param method Callable +--- @param from int? Default: -1 +--- @return int +function Array:rfind_custom(method, from) end + +--- @param value any +--- @return int +function Array:count(value) end + +--- @param value any +--- @return bool +function Array:has(value) end + +--- @return any +function Array:pop_back() end + +--- @return any +function Array:pop_front() end + +--- @param position int +--- @return any +function Array:pop_at(position) end + +function Array:sort() end + +--- @param func Callable +function Array:sort_custom(func) end + +function Array:shuffle() end + +--- @param value any +--- @param before bool? Default: true +--- @return int +function Array:bsearch(value, before) end + +--- @param value any +--- @param func Callable +--- @param before bool? Default: true +--- @return int +function Array:bsearch_custom(value, func, before) end + +function Array:reverse() end + +--- @param deep bool? Default: false +--- @return Array +function Array:duplicate(deep) end + +--- @param deep_subresources_mode int? Default: 1 +--- @return Array +function Array:duplicate_deep(deep_subresources_mode) end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @param step int? Default: 1 +--- @param deep bool? Default: false +--- @return Array +function Array:slice(begin, _end, step, deep) end + +--- @param method Callable +--- @return Array +function Array:filter(method) end + +--- @param method Callable +--- @return Array +function Array:map(method) end + +--- @param method Callable +--- @param accum any? Default: null +--- @return any +function Array:reduce(method, accum) end + +--- @param method Callable +--- @return bool +function Array:any(method) end + +--- @param method Callable +--- @return bool +function Array:all(method) end + +--- @return any +function Array:max() end + +--- @return any +function Array:min() end + +--- @return bool +function Array:is_typed() end + +--- @param array Array +--- @return bool +function Array:is_same_typed(array) end + +--- @return int +function Array:get_typed_builtin() end + +--- @return StringName +function Array:get_typed_class_name() end + +--- @return any +function Array:get_typed_script() end + +function Array:make_read_only() end + +--- @return bool +function Array:is_read_only() end + + +----------------------------------------------------------- +-- PackedByteArray +----------------------------------------------------------- + +--- @class PackedByteArray: Variant, { [int]: int? } +--- @overload fun(): PackedByteArray +--- @overload fun(from: PackedByteArray): PackedByteArray +--- @overload fun(from: Array): PackedByteArray +--- @operator add(PackedByteArray): PackedByteArray +PackedByteArray = {} + +--- @param index int +--- @return int +function PackedByteArray:get(index) end + +--- @param index int +--- @param value int +function PackedByteArray:set(index, value) end + +--- @return int +function PackedByteArray:size() end + +--- @return bool +function PackedByteArray:is_empty() end + +--- @param value int +--- @return bool +function PackedByteArray:push_back(value) end + +--- @param value int +--- @return bool +function PackedByteArray:append(value) end + +--- @param array PackedByteArray +function PackedByteArray:append_array(array) end + +--- @param index int +function PackedByteArray:remove_at(index) end + +--- @param at_index int +--- @param value int +--- @return int +function PackedByteArray:insert(at_index, value) end + +--- @param value int +function PackedByteArray:fill(value) end + +--- @param new_size int +--- @return int +function PackedByteArray:resize(new_size) end + +function PackedByteArray:clear() end + +--- @param value int +--- @return bool +function PackedByteArray:has(value) end + +function PackedByteArray:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedByteArray +function PackedByteArray:slice(begin, _end) end + +function PackedByteArray:sort() end + +--- @param value int +--- @param before bool? Default: true +--- @return int +function PackedByteArray:bsearch(value, before) end + +--- @return PackedByteArray +function PackedByteArray:duplicate() end + +--- @param value int +--- @param from int? Default: 0 +--- @return int +function PackedByteArray:find(value, from) end + +--- @param value int +--- @param from int? Default: -1 +--- @return int +function PackedByteArray:rfind(value, from) end + +--- @param value int +--- @return int +function PackedByteArray:count(value) end + +--- @param value int +--- @return bool +function PackedByteArray:erase(value) end + +--- @return String +function PackedByteArray:get_string_from_ascii() end + +--- @return String +function PackedByteArray:get_string_from_utf8() end + +--- @return String +function PackedByteArray:get_string_from_utf16() end + +--- @return String +function PackedByteArray:get_string_from_utf32() end + +--- @return String +function PackedByteArray:get_string_from_wchar() end + +--- @param encoding String? Default: "" +--- @return String +function PackedByteArray:get_string_from_multibyte_char(encoding) end + +--- @return String +function PackedByteArray:hex_encode() end + +--- @param compression_mode int? Default: 0 +--- @return PackedByteArray +function PackedByteArray:compress(compression_mode) end + +--- @param buffer_size int +--- @param compression_mode int? Default: 0 +--- @return PackedByteArray +function PackedByteArray:decompress(buffer_size, compression_mode) end + +--- @param max_output_size int +--- @param compression_mode int? Default: 0 +--- @return PackedByteArray +function PackedByteArray:decompress_dynamic(max_output_size, compression_mode) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_u8(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_s8(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_u16(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_s16(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_u32(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_s32(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_u64(byte_offset) end + +--- @param byte_offset int +--- @return int +function PackedByteArray:decode_s64(byte_offset) end + +--- @param byte_offset int +--- @return float +function PackedByteArray:decode_half(byte_offset) end + +--- @param byte_offset int +--- @return float +function PackedByteArray:decode_float(byte_offset) end + +--- @param byte_offset int +--- @return float +function PackedByteArray:decode_double(byte_offset) end + +--- @param byte_offset int +--- @param allow_objects bool? Default: false +--- @return bool +function PackedByteArray:has_encoded_var(byte_offset, allow_objects) end + +--- @param byte_offset int +--- @param allow_objects bool? Default: false +--- @return any +function PackedByteArray:decode_var(byte_offset, allow_objects) end + +--- @param byte_offset int +--- @param allow_objects bool? Default: false +--- @return int +function PackedByteArray:decode_var_size(byte_offset, allow_objects) end + +--- @return PackedInt32Array +function PackedByteArray:to_int32_array() end + +--- @return PackedInt64Array +function PackedByteArray:to_int64_array() end + +--- @return PackedFloat32Array +function PackedByteArray:to_float32_array() end + +--- @return PackedFloat64Array +function PackedByteArray:to_float64_array() end + +--- @return PackedVector2Array +function PackedByteArray:to_vector2_array() end + +--- @return PackedVector3Array +function PackedByteArray:to_vector3_array() end + +--- @return PackedVector4Array +function PackedByteArray:to_vector4_array() end + +--- @return PackedColorArray +function PackedByteArray:to_color_array() end + +--- @param offset int? Default: 0 +--- @param count int? Default: -1 +function PackedByteArray:bswap16(offset, count) end + +--- @param offset int? Default: 0 +--- @param count int? Default: -1 +function PackedByteArray:bswap32(offset, count) end + +--- @param offset int? Default: 0 +--- @param count int? Default: -1 +function PackedByteArray:bswap64(offset, count) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_u8(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_s8(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_u16(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_s16(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_u32(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_s32(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_u64(byte_offset, value) end + +--- @param byte_offset int +--- @param value int +function PackedByteArray:encode_s64(byte_offset, value) end + +--- @param byte_offset int +--- @param value float +function PackedByteArray:encode_half(byte_offset, value) end + +--- @param byte_offset int +--- @param value float +function PackedByteArray:encode_float(byte_offset, value) end + +--- @param byte_offset int +--- @param value float +function PackedByteArray:encode_double(byte_offset, value) end + +--- @param byte_offset int +--- @param value any +--- @param allow_objects bool? Default: false +--- @return int +function PackedByteArray:encode_var(byte_offset, value, allow_objects) end + + +----------------------------------------------------------- +-- PackedInt32Array +----------------------------------------------------------- + +--- @class PackedInt32Array: Variant, { [int]: int? } +--- @overload fun(): PackedInt32Array +--- @overload fun(from: PackedInt32Array): PackedInt32Array +--- @overload fun(from: Array): PackedInt32Array +--- @operator add(PackedInt32Array): PackedInt32Array +PackedInt32Array = {} + +--- @param index int +--- @return int +function PackedInt32Array:get(index) end + +--- @param index int +--- @param value int +function PackedInt32Array:set(index, value) end + +--- @return int +function PackedInt32Array:size() end + +--- @return bool +function PackedInt32Array:is_empty() end + +--- @param value int +--- @return bool +function PackedInt32Array:push_back(value) end + +--- @param value int +--- @return bool +function PackedInt32Array:append(value) end + +--- @param array PackedInt32Array +function PackedInt32Array:append_array(array) end + +--- @param index int +function PackedInt32Array:remove_at(index) end + +--- @param at_index int +--- @param value int +--- @return int +function PackedInt32Array:insert(at_index, value) end + +--- @param value int +function PackedInt32Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedInt32Array:resize(new_size) end + +function PackedInt32Array:clear() end + +--- @param value int +--- @return bool +function PackedInt32Array:has(value) end + +function PackedInt32Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedInt32Array +function PackedInt32Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedInt32Array:to_byte_array() end + +function PackedInt32Array:sort() end + +--- @param value int +--- @param before bool? Default: true +--- @return int +function PackedInt32Array:bsearch(value, before) end + +--- @return PackedInt32Array +function PackedInt32Array:duplicate() end + +--- @param value int +--- @param from int? Default: 0 +--- @return int +function PackedInt32Array:find(value, from) end + +--- @param value int +--- @param from int? Default: -1 +--- @return int +function PackedInt32Array:rfind(value, from) end + +--- @param value int +--- @return int +function PackedInt32Array:count(value) end + +--- @param value int +--- @return bool +function PackedInt32Array:erase(value) end + + +----------------------------------------------------------- +-- PackedInt64Array +----------------------------------------------------------- + +--- @class PackedInt64Array: Variant, { [int]: int? } +--- @overload fun(): PackedInt64Array +--- @overload fun(from: PackedInt64Array): PackedInt64Array +--- @overload fun(from: Array): PackedInt64Array +--- @operator add(PackedInt64Array): PackedInt64Array +PackedInt64Array = {} + +--- @param index int +--- @return int +function PackedInt64Array:get(index) end + +--- @param index int +--- @param value int +function PackedInt64Array:set(index, value) end + +--- @return int +function PackedInt64Array:size() end + +--- @return bool +function PackedInt64Array:is_empty() end + +--- @param value int +--- @return bool +function PackedInt64Array:push_back(value) end + +--- @param value int +--- @return bool +function PackedInt64Array:append(value) end + +--- @param array PackedInt64Array +function PackedInt64Array:append_array(array) end + +--- @param index int +function PackedInt64Array:remove_at(index) end + +--- @param at_index int +--- @param value int +--- @return int +function PackedInt64Array:insert(at_index, value) end + +--- @param value int +function PackedInt64Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedInt64Array:resize(new_size) end + +function PackedInt64Array:clear() end + +--- @param value int +--- @return bool +function PackedInt64Array:has(value) end + +function PackedInt64Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedInt64Array +function PackedInt64Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedInt64Array:to_byte_array() end + +function PackedInt64Array:sort() end + +--- @param value int +--- @param before bool? Default: true +--- @return int +function PackedInt64Array:bsearch(value, before) end + +--- @return PackedInt64Array +function PackedInt64Array:duplicate() end + +--- @param value int +--- @param from int? Default: 0 +--- @return int +function PackedInt64Array:find(value, from) end + +--- @param value int +--- @param from int? Default: -1 +--- @return int +function PackedInt64Array:rfind(value, from) end + +--- @param value int +--- @return int +function PackedInt64Array:count(value) end + +--- @param value int +--- @return bool +function PackedInt64Array:erase(value) end + + +----------------------------------------------------------- +-- PackedFloat32Array +----------------------------------------------------------- + +--- @class PackedFloat32Array: Variant, { [int]: float? } +--- @overload fun(): PackedFloat32Array +--- @overload fun(from: PackedFloat32Array): PackedFloat32Array +--- @overload fun(from: Array): PackedFloat32Array +--- @operator add(PackedFloat32Array): PackedFloat32Array +PackedFloat32Array = {} + +--- @param index int +--- @return float +function PackedFloat32Array:get(index) end + +--- @param index int +--- @param value float +function PackedFloat32Array:set(index, value) end + +--- @return int +function PackedFloat32Array:size() end + +--- @return bool +function PackedFloat32Array:is_empty() end + +--- @param value float +--- @return bool +function PackedFloat32Array:push_back(value) end + +--- @param value float +--- @return bool +function PackedFloat32Array:append(value) end + +--- @param array PackedFloat32Array +function PackedFloat32Array:append_array(array) end + +--- @param index int +function PackedFloat32Array:remove_at(index) end + +--- @param at_index int +--- @param value float +--- @return int +function PackedFloat32Array:insert(at_index, value) end + +--- @param value float +function PackedFloat32Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedFloat32Array:resize(new_size) end + +function PackedFloat32Array:clear() end + +--- @param value float +--- @return bool +function PackedFloat32Array:has(value) end + +function PackedFloat32Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedFloat32Array +function PackedFloat32Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedFloat32Array:to_byte_array() end + +function PackedFloat32Array:sort() end + +--- @param value float +--- @param before bool? Default: true +--- @return int +function PackedFloat32Array:bsearch(value, before) end + +--- @return PackedFloat32Array +function PackedFloat32Array:duplicate() end + +--- @param value float +--- @param from int? Default: 0 +--- @return int +function PackedFloat32Array:find(value, from) end + +--- @param value float +--- @param from int? Default: -1 +--- @return int +function PackedFloat32Array:rfind(value, from) end + +--- @param value float +--- @return int +function PackedFloat32Array:count(value) end + +--- @param value float +--- @return bool +function PackedFloat32Array:erase(value) end + + +----------------------------------------------------------- +-- PackedFloat64Array +----------------------------------------------------------- + +--- @class PackedFloat64Array: Variant, { [int]: float? } +--- @overload fun(): PackedFloat64Array +--- @overload fun(from: PackedFloat64Array): PackedFloat64Array +--- @overload fun(from: Array): PackedFloat64Array +--- @operator add(PackedFloat64Array): PackedFloat64Array +PackedFloat64Array = {} + +--- @param index int +--- @return float +function PackedFloat64Array:get(index) end + +--- @param index int +--- @param value float +function PackedFloat64Array:set(index, value) end + +--- @return int +function PackedFloat64Array:size() end + +--- @return bool +function PackedFloat64Array:is_empty() end + +--- @param value float +--- @return bool +function PackedFloat64Array:push_back(value) end + +--- @param value float +--- @return bool +function PackedFloat64Array:append(value) end + +--- @param array PackedFloat64Array +function PackedFloat64Array:append_array(array) end + +--- @param index int +function PackedFloat64Array:remove_at(index) end + +--- @param at_index int +--- @param value float +--- @return int +function PackedFloat64Array:insert(at_index, value) end + +--- @param value float +function PackedFloat64Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedFloat64Array:resize(new_size) end + +function PackedFloat64Array:clear() end + +--- @param value float +--- @return bool +function PackedFloat64Array:has(value) end + +function PackedFloat64Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedFloat64Array +function PackedFloat64Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedFloat64Array:to_byte_array() end + +function PackedFloat64Array:sort() end + +--- @param value float +--- @param before bool? Default: true +--- @return int +function PackedFloat64Array:bsearch(value, before) end + +--- @return PackedFloat64Array +function PackedFloat64Array:duplicate() end + +--- @param value float +--- @param from int? Default: 0 +--- @return int +function PackedFloat64Array:find(value, from) end + +--- @param value float +--- @param from int? Default: -1 +--- @return int +function PackedFloat64Array:rfind(value, from) end + +--- @param value float +--- @return int +function PackedFloat64Array:count(value) end + +--- @param value float +--- @return bool +function PackedFloat64Array:erase(value) end + + +----------------------------------------------------------- +-- PackedStringArray +----------------------------------------------------------- + +--- @class PackedStringArray: Variant, { [int]: String? } +--- @overload fun(): PackedStringArray +--- @overload fun(from: PackedStringArray): PackedStringArray +--- @overload fun(from: Array): PackedStringArray +--- @operator add(PackedStringArray): PackedStringArray +PackedStringArray = {} + +--- @param index int +--- @return String +function PackedStringArray:get(index) end + +--- @param index int +--- @param value String +function PackedStringArray:set(index, value) end + +--- @return int +function PackedStringArray:size() end + +--- @return bool +function PackedStringArray:is_empty() end + +--- @param value String +--- @return bool +function PackedStringArray:push_back(value) end + +--- @param value String +--- @return bool +function PackedStringArray:append(value) end + +--- @param array PackedStringArray +function PackedStringArray:append_array(array) end + +--- @param index int +function PackedStringArray:remove_at(index) end + +--- @param at_index int +--- @param value String +--- @return int +function PackedStringArray:insert(at_index, value) end + +--- @param value String +function PackedStringArray:fill(value) end + +--- @param new_size int +--- @return int +function PackedStringArray:resize(new_size) end + +function PackedStringArray:clear() end + +--- @param value String +--- @return bool +function PackedStringArray:has(value) end + +function PackedStringArray:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedStringArray +function PackedStringArray:slice(begin, _end) end + +--- @return PackedByteArray +function PackedStringArray:to_byte_array() end + +function PackedStringArray:sort() end + +--- @param value String +--- @param before bool? Default: true +--- @return int +function PackedStringArray:bsearch(value, before) end + +--- @return PackedStringArray +function PackedStringArray:duplicate() end + +--- @param value String +--- @param from int? Default: 0 +--- @return int +function PackedStringArray:find(value, from) end + +--- @param value String +--- @param from int? Default: -1 +--- @return int +function PackedStringArray:rfind(value, from) end + +--- @param value String +--- @return int +function PackedStringArray:count(value) end + +--- @param value String +--- @return bool +function PackedStringArray:erase(value) end + + +----------------------------------------------------------- +-- PackedVector2Array +----------------------------------------------------------- + +--- @class PackedVector2Array: Variant, { [int]: Vector2? } +--- @overload fun(): PackedVector2Array +--- @overload fun(from: PackedVector2Array): PackedVector2Array +--- @overload fun(from: Array): PackedVector2Array +--- @operator mul(Transform2D): PackedVector2Array +--- @operator add(PackedVector2Array): PackedVector2Array +PackedVector2Array = {} + +--- @param index int +--- @return Vector2 +function PackedVector2Array:get(index) end + +--- @param index int +--- @param value Vector2 +function PackedVector2Array:set(index, value) end + +--- @return int +function PackedVector2Array:size() end + +--- @return bool +function PackedVector2Array:is_empty() end + +--- @param value Vector2 +--- @return bool +function PackedVector2Array:push_back(value) end + +--- @param value Vector2 +--- @return bool +function PackedVector2Array:append(value) end + +--- @param array PackedVector2Array +function PackedVector2Array:append_array(array) end + +--- @param index int +function PackedVector2Array:remove_at(index) end + +--- @param at_index int +--- @param value Vector2 +--- @return int +function PackedVector2Array:insert(at_index, value) end + +--- @param value Vector2 +function PackedVector2Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedVector2Array:resize(new_size) end + +function PackedVector2Array:clear() end + +--- @param value Vector2 +--- @return bool +function PackedVector2Array:has(value) end + +function PackedVector2Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedVector2Array +function PackedVector2Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedVector2Array:to_byte_array() end + +function PackedVector2Array:sort() end + +--- @param value Vector2 +--- @param before bool? Default: true +--- @return int +function PackedVector2Array:bsearch(value, before) end + +--- @return PackedVector2Array +function PackedVector2Array:duplicate() end + +--- @param value Vector2 +--- @param from int? Default: 0 +--- @return int +function PackedVector2Array:find(value, from) end + +--- @param value Vector2 +--- @param from int? Default: -1 +--- @return int +function PackedVector2Array:rfind(value, from) end + +--- @param value Vector2 +--- @return int +function PackedVector2Array:count(value) end + +--- @param value Vector2 +--- @return bool +function PackedVector2Array:erase(value) end + + +----------------------------------------------------------- +-- PackedVector3Array +----------------------------------------------------------- + +--- @class PackedVector3Array: Variant, { [int]: Vector3? } +--- @overload fun(): PackedVector3Array +--- @overload fun(from: PackedVector3Array): PackedVector3Array +--- @overload fun(from: Array): PackedVector3Array +--- @operator mul(Transform3D): PackedVector3Array +--- @operator add(PackedVector3Array): PackedVector3Array +PackedVector3Array = {} + +--- @param index int +--- @return Vector3 +function PackedVector3Array:get(index) end + +--- @param index int +--- @param value Vector3 +function PackedVector3Array:set(index, value) end + +--- @return int +function PackedVector3Array:size() end + +--- @return bool +function PackedVector3Array:is_empty() end + +--- @param value Vector3 +--- @return bool +function PackedVector3Array:push_back(value) end + +--- @param value Vector3 +--- @return bool +function PackedVector3Array:append(value) end + +--- @param array PackedVector3Array +function PackedVector3Array:append_array(array) end + +--- @param index int +function PackedVector3Array:remove_at(index) end + +--- @param at_index int +--- @param value Vector3 +--- @return int +function PackedVector3Array:insert(at_index, value) end + +--- @param value Vector3 +function PackedVector3Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedVector3Array:resize(new_size) end + +function PackedVector3Array:clear() end + +--- @param value Vector3 +--- @return bool +function PackedVector3Array:has(value) end + +function PackedVector3Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedVector3Array +function PackedVector3Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedVector3Array:to_byte_array() end + +function PackedVector3Array:sort() end + +--- @param value Vector3 +--- @param before bool? Default: true +--- @return int +function PackedVector3Array:bsearch(value, before) end + +--- @return PackedVector3Array +function PackedVector3Array:duplicate() end + +--- @param value Vector3 +--- @param from int? Default: 0 +--- @return int +function PackedVector3Array:find(value, from) end + +--- @param value Vector3 +--- @param from int? Default: -1 +--- @return int +function PackedVector3Array:rfind(value, from) end + +--- @param value Vector3 +--- @return int +function PackedVector3Array:count(value) end + +--- @param value Vector3 +--- @return bool +function PackedVector3Array:erase(value) end + + +----------------------------------------------------------- +-- PackedColorArray +----------------------------------------------------------- + +--- @class PackedColorArray: Variant, { [int]: Color? } +--- @overload fun(): PackedColorArray +--- @overload fun(from: PackedColorArray): PackedColorArray +--- @overload fun(from: Array): PackedColorArray +--- @operator add(PackedColorArray): PackedColorArray +PackedColorArray = {} + +--- @param index int +--- @return Color +function PackedColorArray:get(index) end + +--- @param index int +--- @param value Color +function PackedColorArray:set(index, value) end + +--- @return int +function PackedColorArray:size() end + +--- @return bool +function PackedColorArray:is_empty() end + +--- @param value Color +--- @return bool +function PackedColorArray:push_back(value) end + +--- @param value Color +--- @return bool +function PackedColorArray:append(value) end + +--- @param array PackedColorArray +function PackedColorArray:append_array(array) end + +--- @param index int +function PackedColorArray:remove_at(index) end + +--- @param at_index int +--- @param value Color +--- @return int +function PackedColorArray:insert(at_index, value) end + +--- @param value Color +function PackedColorArray:fill(value) end + +--- @param new_size int +--- @return int +function PackedColorArray:resize(new_size) end + +function PackedColorArray:clear() end + +--- @param value Color +--- @return bool +function PackedColorArray:has(value) end + +function PackedColorArray:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedColorArray +function PackedColorArray:slice(begin, _end) end + +--- @return PackedByteArray +function PackedColorArray:to_byte_array() end + +function PackedColorArray:sort() end + +--- @param value Color +--- @param before bool? Default: true +--- @return int +function PackedColorArray:bsearch(value, before) end + +--- @return PackedColorArray +function PackedColorArray:duplicate() end + +--- @param value Color +--- @param from int? Default: 0 +--- @return int +function PackedColorArray:find(value, from) end + +--- @param value Color +--- @param from int? Default: -1 +--- @return int +function PackedColorArray:rfind(value, from) end + +--- @param value Color +--- @return int +function PackedColorArray:count(value) end + +--- @param value Color +--- @return bool +function PackedColorArray:erase(value) end + + +----------------------------------------------------------- +-- PackedVector4Array +----------------------------------------------------------- + +--- @class PackedVector4Array: Variant, { [int]: Vector4? } +--- @overload fun(): PackedVector4Array +--- @overload fun(from: PackedVector4Array): PackedVector4Array +--- @overload fun(from: Array): PackedVector4Array +--- @operator add(PackedVector4Array): PackedVector4Array +PackedVector4Array = {} + +--- @param index int +--- @return Vector4 +function PackedVector4Array:get(index) end + +--- @param index int +--- @param value Vector4 +function PackedVector4Array:set(index, value) end + +--- @return int +function PackedVector4Array:size() end + +--- @return bool +function PackedVector4Array:is_empty() end + +--- @param value Vector4 +--- @return bool +function PackedVector4Array:push_back(value) end + +--- @param value Vector4 +--- @return bool +function PackedVector4Array:append(value) end + +--- @param array PackedVector4Array +function PackedVector4Array:append_array(array) end + +--- @param index int +function PackedVector4Array:remove_at(index) end + +--- @param at_index int +--- @param value Vector4 +--- @return int +function PackedVector4Array:insert(at_index, value) end + +--- @param value Vector4 +function PackedVector4Array:fill(value) end + +--- @param new_size int +--- @return int +function PackedVector4Array:resize(new_size) end + +function PackedVector4Array:clear() end + +--- @param value Vector4 +--- @return bool +function PackedVector4Array:has(value) end + +function PackedVector4Array:reverse() end + +--- @param begin int +--- @param _end int? Default: 2147483647 +--- @return PackedVector4Array +function PackedVector4Array:slice(begin, _end) end + +--- @return PackedByteArray +function PackedVector4Array:to_byte_array() end + +function PackedVector4Array:sort() end + +--- @param value Vector4 +--- @param before bool? Default: true +--- @return int +function PackedVector4Array:bsearch(value, before) end + +--- @return PackedVector4Array +function PackedVector4Array:duplicate() end + +--- @param value Vector4 +--- @param from int? Default: 0 +--- @return int +function PackedVector4Array:find(value, from) end + +--- @param value Vector4 +--- @param from int? Default: -1 +--- @return int +function PackedVector4Array:rfind(value, from) end + +--- @param value Vector4 +--- @return int +function PackedVector4Array:count(value) end + +--- @param value Vector4 +--- @return bool +function PackedVector4Array:erase(value) end + + diff --git a/addons/lua-gdextension/lua_api_definitions/classes.lua b/addons/lua-gdextension/lua_api_definitions/classes.lua new file mode 100644 index 0000000..7e3a24d --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/classes.lua @@ -0,0 +1,77635 @@ +--- This file was automatically generated by generate_lua_godot_api.py +--- @meta + +----------------------------------------------------------- +-- AESContext +----------------------------------------------------------- + +--- @class AESContext: RefCounted, { [string]: any } +AESContext = {} + +--- @return AESContext +function AESContext:new() end + +--- @alias AESContext.Mode `AESContext.MODE_ECB_ENCRYPT` | `AESContext.MODE_ECB_DECRYPT` | `AESContext.MODE_CBC_ENCRYPT` | `AESContext.MODE_CBC_DECRYPT` | `AESContext.MODE_MAX` +AESContext.MODE_ECB_ENCRYPT = 0 +AESContext.MODE_ECB_DECRYPT = 1 +AESContext.MODE_CBC_ENCRYPT = 2 +AESContext.MODE_CBC_DECRYPT = 3 +AESContext.MODE_MAX = 4 + +--- @param mode AESContext.Mode +--- @param key PackedByteArray +--- @param iv PackedByteArray? Default: PackedByteArray() +--- @return Error +function AESContext:start(mode, key, iv) end + +--- @param src PackedByteArray +--- @return PackedByteArray +function AESContext:update(src) end + +--- @return PackedByteArray +function AESContext:get_iv_state() end + +function AESContext:finish() end + + +----------------------------------------------------------- +-- AStar2D +----------------------------------------------------------- + +--- @class AStar2D: RefCounted, { [string]: any } +--- @field neighbor_filter_enabled bool +AStar2D = {} + +--- @return AStar2D +function AStar2D:new() end + +--- @param from_id int +--- @param neighbor_id int +--- @return bool +function AStar2D:_filter_neighbor(from_id, neighbor_id) end + +--- @param from_id int +--- @param end_id int +--- @return float +function AStar2D:_estimate_cost(from_id, end_id) end + +--- @param from_id int +--- @param to_id int +--- @return float +function AStar2D:_compute_cost(from_id, to_id) end + +--- @return int +function AStar2D:get_available_point_id() end + +--- @param id int +--- @param position Vector2 +--- @param weight_scale float? Default: 1.0 +function AStar2D:add_point(id, position, weight_scale) end + +--- @param id int +--- @return Vector2 +function AStar2D:get_point_position(id) end + +--- @param id int +--- @param position Vector2 +function AStar2D:set_point_position(id, position) end + +--- @param id int +--- @return float +function AStar2D:get_point_weight_scale(id) end + +--- @param id int +--- @param weight_scale float +function AStar2D:set_point_weight_scale(id, weight_scale) end + +--- @param id int +function AStar2D:remove_point(id) end + +--- @param id int +--- @return bool +function AStar2D:has_point(id) end + +--- @param id int +--- @return PackedInt64Array +function AStar2D:get_point_connections(id) end + +--- @return PackedInt64Array +function AStar2D:get_point_ids() end + +--- @param enabled bool +function AStar2D:set_neighbor_filter_enabled(enabled) end + +--- @return bool +function AStar2D:is_neighbor_filter_enabled() end + +--- @param id int +--- @param disabled bool? Default: true +function AStar2D:set_point_disabled(id, disabled) end + +--- @param id int +--- @return bool +function AStar2D:is_point_disabled(id) end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +function AStar2D:connect_points(id, to_id, bidirectional) end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +function AStar2D:disconnect_points(id, to_id, bidirectional) end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +--- @return bool +function AStar2D:are_points_connected(id, to_id, bidirectional) end + +--- @return int +function AStar2D:get_point_count() end + +--- @return int +function AStar2D:get_point_capacity() end + +--- @param num_nodes int +function AStar2D:reserve_space(num_nodes) end + +function AStar2D:clear() end + +--- @param to_position Vector2 +--- @param include_disabled bool? Default: false +--- @return int +function AStar2D:get_closest_point(to_position, include_disabled) end + +--- @param to_position Vector2 +--- @return Vector2 +function AStar2D:get_closest_position_in_segment(to_position) end + +--- @param from_id int +--- @param to_id int +--- @param allow_partial_path bool? Default: false +--- @return PackedVector2Array +function AStar2D:get_point_path(from_id, to_id, allow_partial_path) end + +--- @param from_id int +--- @param to_id int +--- @param allow_partial_path bool? Default: false +--- @return PackedInt64Array +function AStar2D:get_id_path(from_id, to_id, allow_partial_path) end + + +----------------------------------------------------------- +-- AStar3D +----------------------------------------------------------- + +--- @class AStar3D: RefCounted, { [string]: any } +--- @field neighbor_filter_enabled bool +AStar3D = {} + +--- @return AStar3D +function AStar3D:new() end + +--- @param from_id int +--- @param neighbor_id int +--- @return bool +function AStar3D:_filter_neighbor(from_id, neighbor_id) end + +--- @param from_id int +--- @param end_id int +--- @return float +function AStar3D:_estimate_cost(from_id, end_id) end + +--- @param from_id int +--- @param to_id int +--- @return float +function AStar3D:_compute_cost(from_id, to_id) end + +--- @return int +function AStar3D:get_available_point_id() end + +--- @param id int +--- @param position Vector3 +--- @param weight_scale float? Default: 1.0 +function AStar3D:add_point(id, position, weight_scale) end + +--- @param id int +--- @return Vector3 +function AStar3D:get_point_position(id) end + +--- @param id int +--- @param position Vector3 +function AStar3D:set_point_position(id, position) end + +--- @param id int +--- @return float +function AStar3D:get_point_weight_scale(id) end + +--- @param id int +--- @param weight_scale float +function AStar3D:set_point_weight_scale(id, weight_scale) end + +--- @param id int +function AStar3D:remove_point(id) end + +--- @param id int +--- @return bool +function AStar3D:has_point(id) end + +--- @param id int +--- @return PackedInt64Array +function AStar3D:get_point_connections(id) end + +--- @return PackedInt64Array +function AStar3D:get_point_ids() end + +--- @param id int +--- @param disabled bool? Default: true +function AStar3D:set_point_disabled(id, disabled) end + +--- @param id int +--- @return bool +function AStar3D:is_point_disabled(id) end + +--- @param enabled bool +function AStar3D:set_neighbor_filter_enabled(enabled) end + +--- @return bool +function AStar3D:is_neighbor_filter_enabled() end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +function AStar3D:connect_points(id, to_id, bidirectional) end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +function AStar3D:disconnect_points(id, to_id, bidirectional) end + +--- @param id int +--- @param to_id int +--- @param bidirectional bool? Default: true +--- @return bool +function AStar3D:are_points_connected(id, to_id, bidirectional) end + +--- @return int +function AStar3D:get_point_count() end + +--- @return int +function AStar3D:get_point_capacity() end + +--- @param num_nodes int +function AStar3D:reserve_space(num_nodes) end + +function AStar3D:clear() end + +--- @param to_position Vector3 +--- @param include_disabled bool? Default: false +--- @return int +function AStar3D:get_closest_point(to_position, include_disabled) end + +--- @param to_position Vector3 +--- @return Vector3 +function AStar3D:get_closest_position_in_segment(to_position) end + +--- @param from_id int +--- @param to_id int +--- @param allow_partial_path bool? Default: false +--- @return PackedVector3Array +function AStar3D:get_point_path(from_id, to_id, allow_partial_path) end + +--- @param from_id int +--- @param to_id int +--- @param allow_partial_path bool? Default: false +--- @return PackedInt64Array +function AStar3D:get_id_path(from_id, to_id, allow_partial_path) end + + +----------------------------------------------------------- +-- AStarGrid2D +----------------------------------------------------------- + +--- @class AStarGrid2D: RefCounted, { [string]: any } +--- @field region Rect2i +--- @field size Vector2i +--- @field offset Vector2 +--- @field cell_size Vector2 +--- @field cell_shape int +--- @field jumping_enabled bool +--- @field default_compute_heuristic int +--- @field default_estimate_heuristic int +--- @field diagonal_mode int +AStarGrid2D = {} + +--- @return AStarGrid2D +function AStarGrid2D:new() end + +--- @alias AStarGrid2D.Heuristic `AStarGrid2D.HEURISTIC_EUCLIDEAN` | `AStarGrid2D.HEURISTIC_MANHATTAN` | `AStarGrid2D.HEURISTIC_OCTILE` | `AStarGrid2D.HEURISTIC_CHEBYSHEV` | `AStarGrid2D.HEURISTIC_MAX` +AStarGrid2D.HEURISTIC_EUCLIDEAN = 0 +AStarGrid2D.HEURISTIC_MANHATTAN = 1 +AStarGrid2D.HEURISTIC_OCTILE = 2 +AStarGrid2D.HEURISTIC_CHEBYSHEV = 3 +AStarGrid2D.HEURISTIC_MAX = 4 + +--- @alias AStarGrid2D.DiagonalMode `AStarGrid2D.DIAGONAL_MODE_ALWAYS` | `AStarGrid2D.DIAGONAL_MODE_NEVER` | `AStarGrid2D.DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE` | `AStarGrid2D.DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES` | `AStarGrid2D.DIAGONAL_MODE_MAX` +AStarGrid2D.DIAGONAL_MODE_ALWAYS = 0 +AStarGrid2D.DIAGONAL_MODE_NEVER = 1 +AStarGrid2D.DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE = 2 +AStarGrid2D.DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES = 3 +AStarGrid2D.DIAGONAL_MODE_MAX = 4 + +--- @alias AStarGrid2D.CellShape `AStarGrid2D.CELL_SHAPE_SQUARE` | `AStarGrid2D.CELL_SHAPE_ISOMETRIC_RIGHT` | `AStarGrid2D.CELL_SHAPE_ISOMETRIC_DOWN` | `AStarGrid2D.CELL_SHAPE_MAX` +AStarGrid2D.CELL_SHAPE_SQUARE = 0 +AStarGrid2D.CELL_SHAPE_ISOMETRIC_RIGHT = 1 +AStarGrid2D.CELL_SHAPE_ISOMETRIC_DOWN = 2 +AStarGrid2D.CELL_SHAPE_MAX = 3 + +--- @param from_id Vector2i +--- @param end_id Vector2i +--- @return float +function AStarGrid2D:_estimate_cost(from_id, end_id) end + +--- @param from_id Vector2i +--- @param to_id Vector2i +--- @return float +function AStarGrid2D:_compute_cost(from_id, to_id) end + +--- @param region Rect2i +function AStarGrid2D:set_region(region) end + +--- @return Rect2i +function AStarGrid2D:get_region() end + +--- @param size Vector2i +function AStarGrid2D:set_size(size) end + +--- @return Vector2i +function AStarGrid2D:get_size() end + +--- @param offset Vector2 +function AStarGrid2D:set_offset(offset) end + +--- @return Vector2 +function AStarGrid2D:get_offset() end + +--- @param cell_size Vector2 +function AStarGrid2D:set_cell_size(cell_size) end + +--- @return Vector2 +function AStarGrid2D:get_cell_size() end + +--- @param cell_shape AStarGrid2D.CellShape +function AStarGrid2D:set_cell_shape(cell_shape) end + +--- @return AStarGrid2D.CellShape +function AStarGrid2D:get_cell_shape() end + +--- @param x int +--- @param y int +--- @return bool +function AStarGrid2D:is_in_bounds(x, y) end + +--- @param id Vector2i +--- @return bool +function AStarGrid2D:is_in_boundsv(id) end + +--- @return bool +function AStarGrid2D:is_dirty() end + +function AStarGrid2D:update() end + +--- @param enabled bool +function AStarGrid2D:set_jumping_enabled(enabled) end + +--- @return bool +function AStarGrid2D:is_jumping_enabled() end + +--- @param mode AStarGrid2D.DiagonalMode +function AStarGrid2D:set_diagonal_mode(mode) end + +--- @return AStarGrid2D.DiagonalMode +function AStarGrid2D:get_diagonal_mode() end + +--- @param heuristic AStarGrid2D.Heuristic +function AStarGrid2D:set_default_compute_heuristic(heuristic) end + +--- @return AStarGrid2D.Heuristic +function AStarGrid2D:get_default_compute_heuristic() end + +--- @param heuristic AStarGrid2D.Heuristic +function AStarGrid2D:set_default_estimate_heuristic(heuristic) end + +--- @return AStarGrid2D.Heuristic +function AStarGrid2D:get_default_estimate_heuristic() end + +--- @param id Vector2i +--- @param solid bool? Default: true +function AStarGrid2D:set_point_solid(id, solid) end + +--- @param id Vector2i +--- @return bool +function AStarGrid2D:is_point_solid(id) end + +--- @param id Vector2i +--- @param weight_scale float +function AStarGrid2D:set_point_weight_scale(id, weight_scale) end + +--- @param id Vector2i +--- @return float +function AStarGrid2D:get_point_weight_scale(id) end + +--- @param region Rect2i +--- @param solid bool? Default: true +function AStarGrid2D:fill_solid_region(region, solid) end + +--- @param region Rect2i +--- @param weight_scale float +function AStarGrid2D:fill_weight_scale_region(region, weight_scale) end + +function AStarGrid2D:clear() end + +--- @param id Vector2i +--- @return Vector2 +function AStarGrid2D:get_point_position(id) end + +--- @param region Rect2i +--- @return Array[Dictionary] +function AStarGrid2D:get_point_data_in_region(region) end + +--- @param from_id Vector2i +--- @param to_id Vector2i +--- @param allow_partial_path bool? Default: false +--- @return PackedVector2Array +function AStarGrid2D:get_point_path(from_id, to_id, allow_partial_path) end + +--- @param from_id Vector2i +--- @param to_id Vector2i +--- @param allow_partial_path bool? Default: false +--- @return Array[Vector2i] +function AStarGrid2D:get_id_path(from_id, to_id, allow_partial_path) end + + +----------------------------------------------------------- +-- AcceptDialog +----------------------------------------------------------- + +--- @class AcceptDialog: Window, { [string]: any } +--- @field ok_button_text String +--- @field dialog_text String +--- @field dialog_hide_on_ok bool +--- @field dialog_close_on_escape bool +--- @field dialog_autowrap bool +AcceptDialog = {} + +--- @return AcceptDialog +function AcceptDialog:new() end + +AcceptDialog.confirmed = Signal() +AcceptDialog.canceled = Signal() +AcceptDialog.custom_action = Signal() + +--- @return Button +function AcceptDialog:get_ok_button() end + +--- @return Label +function AcceptDialog:get_label() end + +--- @param enabled bool +function AcceptDialog:set_hide_on_ok(enabled) end + +--- @return bool +function AcceptDialog:get_hide_on_ok() end + +--- @param enabled bool +function AcceptDialog:set_close_on_escape(enabled) end + +--- @return bool +function AcceptDialog:get_close_on_escape() end + +--- @param text String +--- @param right bool? Default: false +--- @param action String? Default: "" +--- @return Button +function AcceptDialog:add_button(text, right, action) end + +--- @param name String +--- @return Button +function AcceptDialog:add_cancel_button(name) end + +--- @param button Button +function AcceptDialog:remove_button(button) end + +--- @param line_edit LineEdit +function AcceptDialog:register_text_enter(line_edit) end + +--- @param text String +function AcceptDialog:set_text(text) end + +--- @return String +function AcceptDialog:get_text() end + +--- @param autowrap bool +function AcceptDialog:set_autowrap(autowrap) end + +--- @return bool +function AcceptDialog:has_autowrap() end + +--- @param text String +function AcceptDialog:set_ok_button_text(text) end + +--- @return String +function AcceptDialog:get_ok_button_text() end + + +----------------------------------------------------------- +-- AimModifier3D +----------------------------------------------------------- + +--- @class AimModifier3D: BoneConstraint3D, { [string]: any } +--- @field setting_count int +AimModifier3D = {} + +--- @return AimModifier3D +function AimModifier3D:new() end + +--- @param index int +--- @param axis SkeletonModifier3D.BoneAxis +function AimModifier3D:set_forward_axis(index, axis) end + +--- @param index int +--- @return SkeletonModifier3D.BoneAxis +function AimModifier3D:get_forward_axis(index) end + +--- @param index int +--- @param enabled bool +function AimModifier3D:set_use_euler(index, enabled) end + +--- @param index int +--- @return bool +function AimModifier3D:is_using_euler(index) end + +--- @param index int +--- @param axis Vector3.Axis +function AimModifier3D:set_primary_rotation_axis(index, axis) end + +--- @param index int +--- @return Vector3.Axis +function AimModifier3D:get_primary_rotation_axis(index) end + +--- @param index int +--- @param enabled bool +function AimModifier3D:set_use_secondary_rotation(index, enabled) end + +--- @param index int +--- @return bool +function AimModifier3D:is_using_secondary_rotation(index) end + + +----------------------------------------------------------- +-- AnimatableBody2D +----------------------------------------------------------- + +--- @class AnimatableBody2D: StaticBody2D, { [string]: any } +--- @field sync_to_physics bool +AnimatableBody2D = {} + +--- @return AnimatableBody2D +function AnimatableBody2D:new() end + +--- @param enable bool +function AnimatableBody2D:set_sync_to_physics(enable) end + +--- @return bool +function AnimatableBody2D:is_sync_to_physics_enabled() end + + +----------------------------------------------------------- +-- AnimatableBody3D +----------------------------------------------------------- + +--- @class AnimatableBody3D: StaticBody3D, { [string]: any } +--- @field sync_to_physics bool +AnimatableBody3D = {} + +--- @return AnimatableBody3D +function AnimatableBody3D:new() end + +--- @param enable bool +function AnimatableBody3D:set_sync_to_physics(enable) end + +--- @return bool +function AnimatableBody3D:is_sync_to_physics_enabled() end + + +----------------------------------------------------------- +-- AnimatedSprite2D +----------------------------------------------------------- + +--- @class AnimatedSprite2D: Node2D, { [string]: any } +--- @field sprite_frames SpriteFrames +--- @field animation StringName +--- @field autoplay StringName +--- @field frame int +--- @field frame_progress float +--- @field speed_scale float +--- @field centered bool +--- @field offset Vector2 +--- @field flip_h bool +--- @field flip_v bool +AnimatedSprite2D = {} + +--- @return AnimatedSprite2D +function AnimatedSprite2D:new() end + +AnimatedSprite2D.sprite_frames_changed = Signal() +AnimatedSprite2D.animation_changed = Signal() +AnimatedSprite2D.frame_changed = Signal() +AnimatedSprite2D.animation_looped = Signal() +AnimatedSprite2D.animation_finished = Signal() + +--- @param sprite_frames SpriteFrames +function AnimatedSprite2D:set_sprite_frames(sprite_frames) end + +--- @return SpriteFrames +function AnimatedSprite2D:get_sprite_frames() end + +--- @param name StringName +function AnimatedSprite2D:set_animation(name) end + +--- @return StringName +function AnimatedSprite2D:get_animation() end + +--- @param name String +function AnimatedSprite2D:set_autoplay(name) end + +--- @return String +function AnimatedSprite2D:get_autoplay() end + +--- @return bool +function AnimatedSprite2D:is_playing() end + +--- @param name StringName? Default: &"" +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +function AnimatedSprite2D:play(name, custom_speed, from_end) end + +--- @param name StringName? Default: &"" +function AnimatedSprite2D:play_backwards(name) end + +function AnimatedSprite2D:pause() end + +function AnimatedSprite2D:stop() end + +--- @param centered bool +function AnimatedSprite2D:set_centered(centered) end + +--- @return bool +function AnimatedSprite2D:is_centered() end + +--- @param offset Vector2 +function AnimatedSprite2D:set_offset(offset) end + +--- @return Vector2 +function AnimatedSprite2D:get_offset() end + +--- @param flip_h bool +function AnimatedSprite2D:set_flip_h(flip_h) end + +--- @return bool +function AnimatedSprite2D:is_flipped_h() end + +--- @param flip_v bool +function AnimatedSprite2D:set_flip_v(flip_v) end + +--- @return bool +function AnimatedSprite2D:is_flipped_v() end + +--- @param frame int +function AnimatedSprite2D:set_frame(frame) end + +--- @return int +function AnimatedSprite2D:get_frame() end + +--- @param progress float +function AnimatedSprite2D:set_frame_progress(progress) end + +--- @return float +function AnimatedSprite2D:get_frame_progress() end + +--- @param frame int +--- @param progress float +function AnimatedSprite2D:set_frame_and_progress(frame, progress) end + +--- @param speed_scale float +function AnimatedSprite2D:set_speed_scale(speed_scale) end + +--- @return float +function AnimatedSprite2D:get_speed_scale() end + +--- @return float +function AnimatedSprite2D:get_playing_speed() end + + +----------------------------------------------------------- +-- AnimatedSprite3D +----------------------------------------------------------- + +--- @class AnimatedSprite3D: SpriteBase3D, { [string]: any } +--- @field sprite_frames SpriteFrames +--- @field animation StringName +--- @field autoplay StringName +--- @field frame int +--- @field frame_progress float +--- @field speed_scale float +AnimatedSprite3D = {} + +--- @return AnimatedSprite3D +function AnimatedSprite3D:new() end + +AnimatedSprite3D.sprite_frames_changed = Signal() +AnimatedSprite3D.animation_changed = Signal() +AnimatedSprite3D.frame_changed = Signal() +AnimatedSprite3D.animation_looped = Signal() +AnimatedSprite3D.animation_finished = Signal() + +--- @param sprite_frames SpriteFrames +function AnimatedSprite3D:set_sprite_frames(sprite_frames) end + +--- @return SpriteFrames +function AnimatedSprite3D:get_sprite_frames() end + +--- @param name StringName +function AnimatedSprite3D:set_animation(name) end + +--- @return StringName +function AnimatedSprite3D:get_animation() end + +--- @param name String +function AnimatedSprite3D:set_autoplay(name) end + +--- @return String +function AnimatedSprite3D:get_autoplay() end + +--- @return bool +function AnimatedSprite3D:is_playing() end + +--- @param name StringName? Default: &"" +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +function AnimatedSprite3D:play(name, custom_speed, from_end) end + +--- @param name StringName? Default: &"" +function AnimatedSprite3D:play_backwards(name) end + +function AnimatedSprite3D:pause() end + +function AnimatedSprite3D:stop() end + +--- @param frame int +function AnimatedSprite3D:set_frame(frame) end + +--- @return int +function AnimatedSprite3D:get_frame() end + +--- @param progress float +function AnimatedSprite3D:set_frame_progress(progress) end + +--- @return float +function AnimatedSprite3D:get_frame_progress() end + +--- @param frame int +--- @param progress float +function AnimatedSprite3D:set_frame_and_progress(frame, progress) end + +--- @param speed_scale float +function AnimatedSprite3D:set_speed_scale(speed_scale) end + +--- @return float +function AnimatedSprite3D:get_speed_scale() end + +--- @return float +function AnimatedSprite3D:get_playing_speed() end + + +----------------------------------------------------------- +-- AnimatedTexture +----------------------------------------------------------- + +--- @class AnimatedTexture: Texture2D, { [string]: any } +--- @field frames int +--- @field current_frame int +--- @field pause bool +--- @field one_shot bool +--- @field speed_scale float +AnimatedTexture = {} + +--- @return AnimatedTexture +function AnimatedTexture:new() end + +AnimatedTexture.MAX_FRAMES = 256 + +--- @param frames int +function AnimatedTexture:set_frames(frames) end + +--- @return int +function AnimatedTexture:get_frames() end + +--- @param frame int +function AnimatedTexture:set_current_frame(frame) end + +--- @return int +function AnimatedTexture:get_current_frame() end + +--- @param pause bool +function AnimatedTexture:set_pause(pause) end + +--- @return bool +function AnimatedTexture:get_pause() end + +--- @param one_shot bool +function AnimatedTexture:set_one_shot(one_shot) end + +--- @return bool +function AnimatedTexture:get_one_shot() end + +--- @param scale float +function AnimatedTexture:set_speed_scale(scale) end + +--- @return float +function AnimatedTexture:get_speed_scale() end + +--- @param frame int +--- @param texture Texture2D +function AnimatedTexture:set_frame_texture(frame, texture) end + +--- @param frame int +--- @return Texture2D +function AnimatedTexture:get_frame_texture(frame) end + +--- @param frame int +--- @param duration float +function AnimatedTexture:set_frame_duration(frame, duration) end + +--- @param frame int +--- @return float +function AnimatedTexture:get_frame_duration(frame) end + + +----------------------------------------------------------- +-- Animation +----------------------------------------------------------- + +--- @class Animation: Resource, { [string]: any } +--- @field length float +--- @field loop_mode int +--- @field step float +--- @field capture_included bool +Animation = {} + +--- @return Animation +function Animation:new() end + +--- @alias Animation.TrackType `Animation.TYPE_VALUE` | `Animation.TYPE_POSITION_3D` | `Animation.TYPE_ROTATION_3D` | `Animation.TYPE_SCALE_3D` | `Animation.TYPE_BLEND_SHAPE` | `Animation.TYPE_METHOD` | `Animation.TYPE_BEZIER` | `Animation.TYPE_AUDIO` | `Animation.TYPE_ANIMATION` +Animation.TYPE_VALUE = 0 +Animation.TYPE_POSITION_3D = 1 +Animation.TYPE_ROTATION_3D = 2 +Animation.TYPE_SCALE_3D = 3 +Animation.TYPE_BLEND_SHAPE = 4 +Animation.TYPE_METHOD = 5 +Animation.TYPE_BEZIER = 6 +Animation.TYPE_AUDIO = 7 +Animation.TYPE_ANIMATION = 8 + +--- @alias Animation.InterpolationType `Animation.INTERPOLATION_NEAREST` | `Animation.INTERPOLATION_LINEAR` | `Animation.INTERPOLATION_CUBIC` | `Animation.INTERPOLATION_LINEAR_ANGLE` | `Animation.INTERPOLATION_CUBIC_ANGLE` +Animation.INTERPOLATION_NEAREST = 0 +Animation.INTERPOLATION_LINEAR = 1 +Animation.INTERPOLATION_CUBIC = 2 +Animation.INTERPOLATION_LINEAR_ANGLE = 3 +Animation.INTERPOLATION_CUBIC_ANGLE = 4 + +--- @alias Animation.UpdateMode `Animation.UPDATE_CONTINUOUS` | `Animation.UPDATE_DISCRETE` | `Animation.UPDATE_CAPTURE` +Animation.UPDATE_CONTINUOUS = 0 +Animation.UPDATE_DISCRETE = 1 +Animation.UPDATE_CAPTURE = 2 + +--- @alias Animation.LoopMode `Animation.LOOP_NONE` | `Animation.LOOP_LINEAR` | `Animation.LOOP_PINGPONG` +Animation.LOOP_NONE = 0 +Animation.LOOP_LINEAR = 1 +Animation.LOOP_PINGPONG = 2 + +--- @alias Animation.LoopedFlag `Animation.LOOPED_FLAG_NONE` | `Animation.LOOPED_FLAG_END` | `Animation.LOOPED_FLAG_START` +Animation.LOOPED_FLAG_NONE = 0 +Animation.LOOPED_FLAG_END = 1 +Animation.LOOPED_FLAG_START = 2 + +--- @alias Animation.FindMode `Animation.FIND_MODE_NEAREST` | `Animation.FIND_MODE_APPROX` | `Animation.FIND_MODE_EXACT` +Animation.FIND_MODE_NEAREST = 0 +Animation.FIND_MODE_APPROX = 1 +Animation.FIND_MODE_EXACT = 2 + +--- @param type Animation.TrackType +--- @param at_position int? Default: -1 +--- @return int +function Animation:add_track(type, at_position) end + +--- @param track_idx int +function Animation:remove_track(track_idx) end + +--- @return int +function Animation:get_track_count() end + +--- @param track_idx int +--- @return Animation.TrackType +function Animation:track_get_type(track_idx) end + +--- @param track_idx int +--- @return NodePath +function Animation:track_get_path(track_idx) end + +--- @param track_idx int +--- @param path NodePath +function Animation:track_set_path(track_idx, path) end + +--- @param path NodePath +--- @param type Animation.TrackType +--- @return int +function Animation:find_track(path, type) end + +--- @param track_idx int +function Animation:track_move_up(track_idx) end + +--- @param track_idx int +function Animation:track_move_down(track_idx) end + +--- @param track_idx int +--- @param to_idx int +function Animation:track_move_to(track_idx, to_idx) end + +--- @param track_idx int +--- @param with_idx int +function Animation:track_swap(track_idx, with_idx) end + +--- @param track_idx int +--- @param imported bool +function Animation:track_set_imported(track_idx, imported) end + +--- @param track_idx int +--- @return bool +function Animation:track_is_imported(track_idx) end + +--- @param track_idx int +--- @param enabled bool +function Animation:track_set_enabled(track_idx, enabled) end + +--- @param track_idx int +--- @return bool +function Animation:track_is_enabled(track_idx) end + +--- @param track_idx int +--- @param time float +--- @param position Vector3 +--- @return int +function Animation:position_track_insert_key(track_idx, time, position) end + +--- @param track_idx int +--- @param time float +--- @param rotation Quaternion +--- @return int +function Animation:rotation_track_insert_key(track_idx, time, rotation) end + +--- @param track_idx int +--- @param time float +--- @param scale Vector3 +--- @return int +function Animation:scale_track_insert_key(track_idx, time, scale) end + +--- @param track_idx int +--- @param time float +--- @param amount float +--- @return int +function Animation:blend_shape_track_insert_key(track_idx, time, amount) end + +--- @param track_idx int +--- @param time_sec float +--- @param backward bool? Default: false +--- @return Vector3 +function Animation:position_track_interpolate(track_idx, time_sec, backward) end + +--- @param track_idx int +--- @param time_sec float +--- @param backward bool? Default: false +--- @return Quaternion +function Animation:rotation_track_interpolate(track_idx, time_sec, backward) end + +--- @param track_idx int +--- @param time_sec float +--- @param backward bool? Default: false +--- @return Vector3 +function Animation:scale_track_interpolate(track_idx, time_sec, backward) end + +--- @param track_idx int +--- @param time_sec float +--- @param backward bool? Default: false +--- @return float +function Animation:blend_shape_track_interpolate(track_idx, time_sec, backward) end + +--- @param track_idx int +--- @param time float +--- @param key any +--- @param transition float? Default: 1 +--- @return int +function Animation:track_insert_key(track_idx, time, key, transition) end + +--- @param track_idx int +--- @param key_idx int +function Animation:track_remove_key(track_idx, key_idx) end + +--- @param track_idx int +--- @param time float +function Animation:track_remove_key_at_time(track_idx, time) end + +--- @param track_idx int +--- @param key int +--- @param value any +function Animation:track_set_key_value(track_idx, key, value) end + +--- @param track_idx int +--- @param key_idx int +--- @param transition float +function Animation:track_set_key_transition(track_idx, key_idx, transition) end + +--- @param track_idx int +--- @param key_idx int +--- @param time float +function Animation:track_set_key_time(track_idx, key_idx, time) end + +--- @param track_idx int +--- @param key_idx int +--- @return float +function Animation:track_get_key_transition(track_idx, key_idx) end + +--- @param track_idx int +--- @return int +function Animation:track_get_key_count(track_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return any +function Animation:track_get_key_value(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return float +function Animation:track_get_key_time(track_idx, key_idx) end + +--- @param track_idx int +--- @param time float +--- @param find_mode Animation.FindMode? Default: 0 +--- @param limit bool? Default: false +--- @param backward bool? Default: false +--- @return int +function Animation:track_find_key(track_idx, time, find_mode, limit, backward) end + +--- @param track_idx int +--- @param interpolation Animation.InterpolationType +function Animation:track_set_interpolation_type(track_idx, interpolation) end + +--- @param track_idx int +--- @return Animation.InterpolationType +function Animation:track_get_interpolation_type(track_idx) end + +--- @param track_idx int +--- @param interpolation bool +function Animation:track_set_interpolation_loop_wrap(track_idx, interpolation) end + +--- @param track_idx int +--- @return bool +function Animation:track_get_interpolation_loop_wrap(track_idx) end + +--- @param track_idx int +--- @return bool +function Animation:track_is_compressed(track_idx) end + +--- @param track_idx int +--- @param mode Animation.UpdateMode +function Animation:value_track_set_update_mode(track_idx, mode) end + +--- @param track_idx int +--- @return Animation.UpdateMode +function Animation:value_track_get_update_mode(track_idx) end + +--- @param track_idx int +--- @param time_sec float +--- @param backward bool? Default: false +--- @return any +function Animation:value_track_interpolate(track_idx, time_sec, backward) end + +--- @param track_idx int +--- @param key_idx int +--- @return StringName +function Animation:method_track_get_name(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return Array +function Animation:method_track_get_params(track_idx, key_idx) end + +--- @param track_idx int +--- @param time float +--- @param value float +--- @param in_handle Vector2? Default: Vector2(0, 0) +--- @param out_handle Vector2? Default: Vector2(0, 0) +--- @return int +function Animation:bezier_track_insert_key(track_idx, time, value, in_handle, out_handle) end + +--- @param track_idx int +--- @param key_idx int +--- @param value float +function Animation:bezier_track_set_key_value(track_idx, key_idx, value) end + +--- @param track_idx int +--- @param key_idx int +--- @param in_handle Vector2 +--- @param balanced_value_time_ratio float? Default: 1.0 +function Animation:bezier_track_set_key_in_handle(track_idx, key_idx, in_handle, balanced_value_time_ratio) end + +--- @param track_idx int +--- @param key_idx int +--- @param out_handle Vector2 +--- @param balanced_value_time_ratio float? Default: 1.0 +function Animation:bezier_track_set_key_out_handle(track_idx, key_idx, out_handle, balanced_value_time_ratio) end + +--- @param track_idx int +--- @param key_idx int +--- @return float +function Animation:bezier_track_get_key_value(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return Vector2 +function Animation:bezier_track_get_key_in_handle(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return Vector2 +function Animation:bezier_track_get_key_out_handle(track_idx, key_idx) end + +--- @param track_idx int +--- @param time float +--- @return float +function Animation:bezier_track_interpolate(track_idx, time) end + +--- @param track_idx int +--- @param time float +--- @param stream Resource +--- @param start_offset float? Default: 0 +--- @param end_offset float? Default: 0 +--- @return int +function Animation:audio_track_insert_key(track_idx, time, stream, start_offset, end_offset) end + +--- @param track_idx int +--- @param key_idx int +--- @param stream Resource +function Animation:audio_track_set_key_stream(track_idx, key_idx, stream) end + +--- @param track_idx int +--- @param key_idx int +--- @param offset float +function Animation:audio_track_set_key_start_offset(track_idx, key_idx, offset) end + +--- @param track_idx int +--- @param key_idx int +--- @param offset float +function Animation:audio_track_set_key_end_offset(track_idx, key_idx, offset) end + +--- @param track_idx int +--- @param key_idx int +--- @return Resource +function Animation:audio_track_get_key_stream(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return float +function Animation:audio_track_get_key_start_offset(track_idx, key_idx) end + +--- @param track_idx int +--- @param key_idx int +--- @return float +function Animation:audio_track_get_key_end_offset(track_idx, key_idx) end + +--- @param track_idx int +--- @param enable bool +function Animation:audio_track_set_use_blend(track_idx, enable) end + +--- @param track_idx int +--- @return bool +function Animation:audio_track_is_use_blend(track_idx) end + +--- @param track_idx int +--- @param time float +--- @param animation StringName +--- @return int +function Animation:animation_track_insert_key(track_idx, time, animation) end + +--- @param track_idx int +--- @param key_idx int +--- @param animation StringName +function Animation:animation_track_set_key_animation(track_idx, key_idx, animation) end + +--- @param track_idx int +--- @param key_idx int +--- @return StringName +function Animation:animation_track_get_key_animation(track_idx, key_idx) end + +--- @param name StringName +--- @param time float +function Animation:add_marker(name, time) end + +--- @param name StringName +function Animation:remove_marker(name) end + +--- @param name StringName +--- @return bool +function Animation:has_marker(name) end + +--- @param time float +--- @return StringName +function Animation:get_marker_at_time(time) end + +--- @param time float +--- @return StringName +function Animation:get_next_marker(time) end + +--- @param time float +--- @return StringName +function Animation:get_prev_marker(time) end + +--- @param name StringName +--- @return float +function Animation:get_marker_time(name) end + +--- @return PackedStringArray +function Animation:get_marker_names() end + +--- @param name StringName +--- @return Color +function Animation:get_marker_color(name) end + +--- @param name StringName +--- @param color Color +function Animation:set_marker_color(name, color) end + +--- @param time_sec float +function Animation:set_length(time_sec) end + +--- @return float +function Animation:get_length() end + +--- @param loop_mode Animation.LoopMode +function Animation:set_loop_mode(loop_mode) end + +--- @return Animation.LoopMode +function Animation:get_loop_mode() end + +--- @param size_sec float +function Animation:set_step(size_sec) end + +--- @return float +function Animation:get_step() end + +function Animation:clear() end + +--- @param track_idx int +--- @param to_animation Animation +function Animation:copy_track(track_idx, to_animation) end + +--- @param allowed_velocity_err float? Default: 0.01 +--- @param allowed_angular_err float? Default: 0.01 +--- @param precision int? Default: 3 +function Animation:optimize(allowed_velocity_err, allowed_angular_err, precision) end + +--- @param page_size int? Default: 8192 +--- @param fps int? Default: 120 +--- @param split_tolerance float? Default: 4.0 +function Animation:compress(page_size, fps, split_tolerance) end + +--- @return bool +function Animation:is_capture_included() end + + +----------------------------------------------------------- +-- AnimationLibrary +----------------------------------------------------------- + +--- @class AnimationLibrary: Resource, { [string]: any } +AnimationLibrary = {} + +--- @return AnimationLibrary +function AnimationLibrary:new() end + +AnimationLibrary.animation_added = Signal() +AnimationLibrary.animation_removed = Signal() +AnimationLibrary.animation_renamed = Signal() +AnimationLibrary.animation_changed = Signal() + +--- @param name StringName +--- @param animation Animation +--- @return Error +function AnimationLibrary:add_animation(name, animation) end + +--- @param name StringName +function AnimationLibrary:remove_animation(name) end + +--- @param name StringName +--- @param newname StringName +function AnimationLibrary:rename_animation(name, newname) end + +--- @param name StringName +--- @return bool +function AnimationLibrary:has_animation(name) end + +--- @param name StringName +--- @return Animation +function AnimationLibrary:get_animation(name) end + +--- @return Array[StringName] +function AnimationLibrary:get_animation_list() end + +--- @return int +function AnimationLibrary:get_animation_list_size() end + + +----------------------------------------------------------- +-- AnimationMixer +----------------------------------------------------------- + +--- @class AnimationMixer: Node, { [string]: any } +--- @field active bool +--- @field deterministic bool +--- @field reset_on_save bool +--- @field root_node NodePath +--- @field root_motion_track NodePath +--- @field root_motion_local bool +--- @field audio_max_polyphony int +--- @field callback_mode_process int +--- @field callback_mode_method int +--- @field callback_mode_discrete int +AnimationMixer = {} + +--- @alias AnimationMixer.AnimationCallbackModeProcess `AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS` | `AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE` | `AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL` +AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS = 0 +AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE = 1 +AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL = 2 + +--- @alias AnimationMixer.AnimationCallbackModeMethod `AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_DEFERRED` | `AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE` +AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_DEFERRED = 0 +AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE = 1 + +--- @alias AnimationMixer.AnimationCallbackModeDiscrete `AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_DOMINANT` | `AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE` | `AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_FORCE_CONTINUOUS` +AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_DOMINANT = 0 +AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE = 1 +AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_FORCE_CONTINUOUS = 2 + +AnimationMixer.animation_list_changed = Signal() +AnimationMixer.animation_libraries_updated = Signal() +AnimationMixer.animation_finished = Signal() +AnimationMixer.animation_started = Signal() +AnimationMixer.caches_cleared = Signal() +AnimationMixer.mixer_applied = Signal() +AnimationMixer.mixer_updated = Signal() + +--- @param animation Animation +--- @param track int +--- @param value any +--- @param object_id int +--- @param object_sub_idx int +--- @return any +function AnimationMixer:_post_process_key_value(animation, track, value, object_id, object_sub_idx) end + +--- @param name StringName +--- @param library AnimationLibrary +--- @return Error +function AnimationMixer:add_animation_library(name, library) end + +--- @param name StringName +function AnimationMixer:remove_animation_library(name) end + +--- @param name StringName +--- @param newname StringName +function AnimationMixer:rename_animation_library(name, newname) end + +--- @param name StringName +--- @return bool +function AnimationMixer:has_animation_library(name) end + +--- @param name StringName +--- @return AnimationLibrary +function AnimationMixer:get_animation_library(name) end + +--- @return Array[StringName] +function AnimationMixer:get_animation_library_list() end + +--- @param name StringName +--- @return bool +function AnimationMixer:has_animation(name) end + +--- @param name StringName +--- @return Animation +function AnimationMixer:get_animation(name) end + +--- @return PackedStringArray +function AnimationMixer:get_animation_list() end + +--- @param active bool +function AnimationMixer:set_active(active) end + +--- @return bool +function AnimationMixer:is_active() end + +--- @param deterministic bool +function AnimationMixer:set_deterministic(deterministic) end + +--- @return bool +function AnimationMixer:is_deterministic() end + +--- @param path NodePath +function AnimationMixer:set_root_node(path) end + +--- @return NodePath +function AnimationMixer:get_root_node() end + +--- @param mode AnimationMixer.AnimationCallbackModeProcess +function AnimationMixer:set_callback_mode_process(mode) end + +--- @return AnimationMixer.AnimationCallbackModeProcess +function AnimationMixer:get_callback_mode_process() end + +--- @param mode AnimationMixer.AnimationCallbackModeMethod +function AnimationMixer:set_callback_mode_method(mode) end + +--- @return AnimationMixer.AnimationCallbackModeMethod +function AnimationMixer:get_callback_mode_method() end + +--- @param mode AnimationMixer.AnimationCallbackModeDiscrete +function AnimationMixer:set_callback_mode_discrete(mode) end + +--- @return AnimationMixer.AnimationCallbackModeDiscrete +function AnimationMixer:get_callback_mode_discrete() end + +--- @param max_polyphony int +function AnimationMixer:set_audio_max_polyphony(max_polyphony) end + +--- @return int +function AnimationMixer:get_audio_max_polyphony() end + +--- @param path NodePath +function AnimationMixer:set_root_motion_track(path) end + +--- @return NodePath +function AnimationMixer:get_root_motion_track() end + +--- @param enabled bool +function AnimationMixer:set_root_motion_local(enabled) end + +--- @return bool +function AnimationMixer:is_root_motion_local() end + +--- @return Vector3 +function AnimationMixer:get_root_motion_position() end + +--- @return Quaternion +function AnimationMixer:get_root_motion_rotation() end + +--- @return Vector3 +function AnimationMixer:get_root_motion_scale() end + +--- @return Vector3 +function AnimationMixer:get_root_motion_position_accumulator() end + +--- @return Quaternion +function AnimationMixer:get_root_motion_rotation_accumulator() end + +--- @return Vector3 +function AnimationMixer:get_root_motion_scale_accumulator() end + +function AnimationMixer:clear_caches() end + +--- @param delta float +function AnimationMixer:advance(delta) end + +--- @param name StringName +--- @param duration float +--- @param trans_type Tween.TransitionType? Default: 0 +--- @param ease_type Tween.EaseType? Default: 0 +function AnimationMixer:capture(name, duration, trans_type, ease_type) end + +--- @param enabled bool +function AnimationMixer:set_reset_on_save_enabled(enabled) end + +--- @return bool +function AnimationMixer:is_reset_on_save_enabled() end + +--- @param animation Animation +--- @return StringName +function AnimationMixer:find_animation(animation) end + +--- @param animation Animation +--- @return StringName +function AnimationMixer:find_animation_library(animation) end + + +----------------------------------------------------------- +-- AnimationNode +----------------------------------------------------------- + +--- @class AnimationNode: Resource, { [string]: any } +--- @field filter_enabled bool +--- @field filters Array +AnimationNode = {} + +--- @return AnimationNode +function AnimationNode:new() end + +--- @alias AnimationNode.FilterAction `AnimationNode.FILTER_IGNORE` | `AnimationNode.FILTER_PASS` | `AnimationNode.FILTER_STOP` | `AnimationNode.FILTER_BLEND` +AnimationNode.FILTER_IGNORE = 0 +AnimationNode.FILTER_PASS = 1 +AnimationNode.FILTER_STOP = 2 +AnimationNode.FILTER_BLEND = 3 + +AnimationNode.tree_changed = Signal() +AnimationNode.animation_node_renamed = Signal() +AnimationNode.animation_node_removed = Signal() + +--- @return Dictionary +function AnimationNode:_get_child_nodes() end + +--- @return Array +function AnimationNode:_get_parameter_list() end + +--- @param name StringName +--- @return AnimationNode +function AnimationNode:_get_child_by_name(name) end + +--- @param parameter StringName +--- @return any +function AnimationNode:_get_parameter_default_value(parameter) end + +--- @param parameter StringName +--- @return bool +function AnimationNode:_is_parameter_read_only(parameter) end + +--- @param time float +--- @param seek bool +--- @param is_external_seeking bool +--- @param test_only bool +--- @return float +function AnimationNode:_process(time, seek, is_external_seeking, test_only) end + +--- @return String +function AnimationNode:_get_caption() end + +--- @return bool +function AnimationNode:_has_filter() end + +--- @param name String +--- @return bool +function AnimationNode:add_input(name) end + +--- @param index int +function AnimationNode:remove_input(index) end + +--- @param input int +--- @param name String +--- @return bool +function AnimationNode:set_input_name(input, name) end + +--- @param input int +--- @return String +function AnimationNode:get_input_name(input) end + +--- @return int +function AnimationNode:get_input_count() end + +--- @param name String +--- @return int +function AnimationNode:find_input(name) end + +--- @param path NodePath +--- @param enable bool +function AnimationNode:set_filter_path(path, enable) end + +--- @param path NodePath +--- @return bool +function AnimationNode:is_path_filtered(path) end + +--- @param enable bool +function AnimationNode:set_filter_enabled(enable) end + +--- @return bool +function AnimationNode:is_filter_enabled() end + +--- @return int +function AnimationNode:get_processing_animation_tree_instance_id() end + +--- @return bool +function AnimationNode:is_process_testing() end + +--- @param animation StringName +--- @param time float +--- @param delta float +--- @param seeked bool +--- @param is_external_seeking bool +--- @param blend float +--- @param looped_flag Animation.LoopedFlag? Default: 0 +function AnimationNode:blend_animation(animation, time, delta, seeked, is_external_seeking, blend, looped_flag) end + +--- @param name StringName +--- @param node AnimationNode +--- @param time float +--- @param seek bool +--- @param is_external_seeking bool +--- @param blend float +--- @param filter AnimationNode.FilterAction? Default: 0 +--- @param sync bool? Default: true +--- @param test_only bool? Default: false +--- @return float +function AnimationNode:blend_node(name, node, time, seek, is_external_seeking, blend, filter, sync, test_only) end + +--- @param input_index int +--- @param time float +--- @param seek bool +--- @param is_external_seeking bool +--- @param blend float +--- @param filter AnimationNode.FilterAction? Default: 0 +--- @param sync bool? Default: true +--- @param test_only bool? Default: false +--- @return float +function AnimationNode:blend_input(input_index, time, seek, is_external_seeking, blend, filter, sync, test_only) end + +--- @param name StringName +--- @param value any +function AnimationNode:set_parameter(name, value) end + +--- @param name StringName +--- @return any +function AnimationNode:get_parameter(name) end + + +----------------------------------------------------------- +-- AnimationNodeAdd2 +----------------------------------------------------------- + +--- @class AnimationNodeAdd2: AnimationNodeSync, { [string]: any } +AnimationNodeAdd2 = {} + +--- @return AnimationNodeAdd2 +function AnimationNodeAdd2:new() end + + +----------------------------------------------------------- +-- AnimationNodeAdd3 +----------------------------------------------------------- + +--- @class AnimationNodeAdd3: AnimationNodeSync, { [string]: any } +AnimationNodeAdd3 = {} + +--- @return AnimationNodeAdd3 +function AnimationNodeAdd3:new() end + + +----------------------------------------------------------- +-- AnimationNodeAnimation +----------------------------------------------------------- + +--- @class AnimationNodeAnimation: AnimationRootNode, { [string]: any } +--- @field animation StringName +--- @field play_mode int +--- @field advance_on_start bool +--- @field use_custom_timeline bool +--- @field timeline_length float +--- @field stretch_time_scale bool +--- @field start_offset float +--- @field loop_mode int +AnimationNodeAnimation = {} + +--- @return AnimationNodeAnimation +function AnimationNodeAnimation:new() end + +--- @alias AnimationNodeAnimation.PlayMode `AnimationNodeAnimation.PLAY_MODE_FORWARD` | `AnimationNodeAnimation.PLAY_MODE_BACKWARD` +AnimationNodeAnimation.PLAY_MODE_FORWARD = 0 +AnimationNodeAnimation.PLAY_MODE_BACKWARD = 1 + +--- @param name StringName +function AnimationNodeAnimation:set_animation(name) end + +--- @return StringName +function AnimationNodeAnimation:get_animation() end + +--- @param mode AnimationNodeAnimation.PlayMode +function AnimationNodeAnimation:set_play_mode(mode) end + +--- @return AnimationNodeAnimation.PlayMode +function AnimationNodeAnimation:get_play_mode() end + +--- @param advance_on_start bool +function AnimationNodeAnimation:set_advance_on_start(advance_on_start) end + +--- @return bool +function AnimationNodeAnimation:is_advance_on_start() end + +--- @param use_custom_timeline bool +function AnimationNodeAnimation:set_use_custom_timeline(use_custom_timeline) end + +--- @return bool +function AnimationNodeAnimation:is_using_custom_timeline() end + +--- @param timeline_length float +function AnimationNodeAnimation:set_timeline_length(timeline_length) end + +--- @return float +function AnimationNodeAnimation:get_timeline_length() end + +--- @param stretch_time_scale bool +function AnimationNodeAnimation:set_stretch_time_scale(stretch_time_scale) end + +--- @return bool +function AnimationNodeAnimation:is_stretching_time_scale() end + +--- @param start_offset float +function AnimationNodeAnimation:set_start_offset(start_offset) end + +--- @return float +function AnimationNodeAnimation:get_start_offset() end + +--- @param loop_mode Animation.LoopMode +function AnimationNodeAnimation:set_loop_mode(loop_mode) end + +--- @return Animation.LoopMode +function AnimationNodeAnimation:get_loop_mode() end + + +----------------------------------------------------------- +-- AnimationNodeBlend2 +----------------------------------------------------------- + +--- @class AnimationNodeBlend2: AnimationNodeSync, { [string]: any } +AnimationNodeBlend2 = {} + +--- @return AnimationNodeBlend2 +function AnimationNodeBlend2:new() end + + +----------------------------------------------------------- +-- AnimationNodeBlend3 +----------------------------------------------------------- + +--- @class AnimationNodeBlend3: AnimationNodeSync, { [string]: any } +AnimationNodeBlend3 = {} + +--- @return AnimationNodeBlend3 +function AnimationNodeBlend3:new() end + + +----------------------------------------------------------- +-- AnimationNodeBlendSpace1D +----------------------------------------------------------- + +--- @class AnimationNodeBlendSpace1D: AnimationRootNode, { [string]: any } +--- @field min_space float +--- @field max_space float +--- @field snap float +--- @field value_label String +--- @field blend_mode int +--- @field sync bool +AnimationNodeBlendSpace1D = {} + +--- @return AnimationNodeBlendSpace1D +function AnimationNodeBlendSpace1D:new() end + +--- @alias AnimationNodeBlendSpace1D.BlendMode `AnimationNodeBlendSpace1D.BLEND_MODE_INTERPOLATED` | `AnimationNodeBlendSpace1D.BLEND_MODE_DISCRETE` | `AnimationNodeBlendSpace1D.BLEND_MODE_DISCRETE_CARRY` +AnimationNodeBlendSpace1D.BLEND_MODE_INTERPOLATED = 0 +AnimationNodeBlendSpace1D.BLEND_MODE_DISCRETE = 1 +AnimationNodeBlendSpace1D.BLEND_MODE_DISCRETE_CARRY = 2 + +--- @param node AnimationRootNode +--- @param pos float +--- @param at_index int? Default: -1 +function AnimationNodeBlendSpace1D:add_blend_point(node, pos, at_index) end + +--- @param point int +--- @param pos float +function AnimationNodeBlendSpace1D:set_blend_point_position(point, pos) end + +--- @param point int +--- @return float +function AnimationNodeBlendSpace1D:get_blend_point_position(point) end + +--- @param point int +--- @param node AnimationRootNode +function AnimationNodeBlendSpace1D:set_blend_point_node(point, node) end + +--- @param point int +--- @return AnimationRootNode +function AnimationNodeBlendSpace1D:get_blend_point_node(point) end + +--- @param point int +function AnimationNodeBlendSpace1D:remove_blend_point(point) end + +--- @return int +function AnimationNodeBlendSpace1D:get_blend_point_count() end + +--- @param min_space float +function AnimationNodeBlendSpace1D:set_min_space(min_space) end + +--- @return float +function AnimationNodeBlendSpace1D:get_min_space() end + +--- @param max_space float +function AnimationNodeBlendSpace1D:set_max_space(max_space) end + +--- @return float +function AnimationNodeBlendSpace1D:get_max_space() end + +--- @param snap float +function AnimationNodeBlendSpace1D:set_snap(snap) end + +--- @return float +function AnimationNodeBlendSpace1D:get_snap() end + +--- @param text String +function AnimationNodeBlendSpace1D:set_value_label(text) end + +--- @return String +function AnimationNodeBlendSpace1D:get_value_label() end + +--- @param mode AnimationNodeBlendSpace1D.BlendMode +function AnimationNodeBlendSpace1D:set_blend_mode(mode) end + +--- @return AnimationNodeBlendSpace1D.BlendMode +function AnimationNodeBlendSpace1D:get_blend_mode() end + +--- @param enable bool +function AnimationNodeBlendSpace1D:set_use_sync(enable) end + +--- @return bool +function AnimationNodeBlendSpace1D:is_using_sync() end + + +----------------------------------------------------------- +-- AnimationNodeBlendSpace2D +----------------------------------------------------------- + +--- @class AnimationNodeBlendSpace2D: AnimationRootNode, { [string]: any } +--- @field auto_triangles bool +--- @field triangles PackedInt32Array +--- @field min_space Vector2 +--- @field max_space Vector2 +--- @field snap Vector2 +--- @field x_label String +--- @field y_label String +--- @field blend_mode int +--- @field sync bool +AnimationNodeBlendSpace2D = {} + +--- @return AnimationNodeBlendSpace2D +function AnimationNodeBlendSpace2D:new() end + +--- @alias AnimationNodeBlendSpace2D.BlendMode `AnimationNodeBlendSpace2D.BLEND_MODE_INTERPOLATED` | `AnimationNodeBlendSpace2D.BLEND_MODE_DISCRETE` | `AnimationNodeBlendSpace2D.BLEND_MODE_DISCRETE_CARRY` +AnimationNodeBlendSpace2D.BLEND_MODE_INTERPOLATED = 0 +AnimationNodeBlendSpace2D.BLEND_MODE_DISCRETE = 1 +AnimationNodeBlendSpace2D.BLEND_MODE_DISCRETE_CARRY = 2 + +AnimationNodeBlendSpace2D.triangles_updated = Signal() + +--- @param node AnimationRootNode +--- @param pos Vector2 +--- @param at_index int? Default: -1 +function AnimationNodeBlendSpace2D:add_blend_point(node, pos, at_index) end + +--- @param point int +--- @param pos Vector2 +function AnimationNodeBlendSpace2D:set_blend_point_position(point, pos) end + +--- @param point int +--- @return Vector2 +function AnimationNodeBlendSpace2D:get_blend_point_position(point) end + +--- @param point int +--- @param node AnimationRootNode +function AnimationNodeBlendSpace2D:set_blend_point_node(point, node) end + +--- @param point int +--- @return AnimationRootNode +function AnimationNodeBlendSpace2D:get_blend_point_node(point) end + +--- @param point int +function AnimationNodeBlendSpace2D:remove_blend_point(point) end + +--- @return int +function AnimationNodeBlendSpace2D:get_blend_point_count() end + +--- @param x int +--- @param y int +--- @param z int +--- @param at_index int? Default: -1 +function AnimationNodeBlendSpace2D:add_triangle(x, y, z, at_index) end + +--- @param triangle int +--- @param point int +--- @return int +function AnimationNodeBlendSpace2D:get_triangle_point(triangle, point) end + +--- @param triangle int +function AnimationNodeBlendSpace2D:remove_triangle(triangle) end + +--- @return int +function AnimationNodeBlendSpace2D:get_triangle_count() end + +--- @param min_space Vector2 +function AnimationNodeBlendSpace2D:set_min_space(min_space) end + +--- @return Vector2 +function AnimationNodeBlendSpace2D:get_min_space() end + +--- @param max_space Vector2 +function AnimationNodeBlendSpace2D:set_max_space(max_space) end + +--- @return Vector2 +function AnimationNodeBlendSpace2D:get_max_space() end + +--- @param snap Vector2 +function AnimationNodeBlendSpace2D:set_snap(snap) end + +--- @return Vector2 +function AnimationNodeBlendSpace2D:get_snap() end + +--- @param text String +function AnimationNodeBlendSpace2D:set_x_label(text) end + +--- @return String +function AnimationNodeBlendSpace2D:get_x_label() end + +--- @param text String +function AnimationNodeBlendSpace2D:set_y_label(text) end + +--- @return String +function AnimationNodeBlendSpace2D:get_y_label() end + +--- @param enable bool +function AnimationNodeBlendSpace2D:set_auto_triangles(enable) end + +--- @return bool +function AnimationNodeBlendSpace2D:get_auto_triangles() end + +--- @param mode AnimationNodeBlendSpace2D.BlendMode +function AnimationNodeBlendSpace2D:set_blend_mode(mode) end + +--- @return AnimationNodeBlendSpace2D.BlendMode +function AnimationNodeBlendSpace2D:get_blend_mode() end + +--- @param enable bool +function AnimationNodeBlendSpace2D:set_use_sync(enable) end + +--- @return bool +function AnimationNodeBlendSpace2D:is_using_sync() end + + +----------------------------------------------------------- +-- AnimationNodeBlendTree +----------------------------------------------------------- + +--- @class AnimationNodeBlendTree: AnimationRootNode, { [string]: any } +--- @field graph_offset Vector2 +AnimationNodeBlendTree = {} + +--- @return AnimationNodeBlendTree +function AnimationNodeBlendTree:new() end + +AnimationNodeBlendTree.CONNECTION_OK = 0 +AnimationNodeBlendTree.CONNECTION_ERROR_NO_INPUT = 1 +AnimationNodeBlendTree.CONNECTION_ERROR_NO_INPUT_INDEX = 2 +AnimationNodeBlendTree.CONNECTION_ERROR_NO_OUTPUT = 3 +AnimationNodeBlendTree.CONNECTION_ERROR_SAME_NODE = 4 +AnimationNodeBlendTree.CONNECTION_ERROR_CONNECTION_EXISTS = 5 + +AnimationNodeBlendTree.node_changed = Signal() + +--- @param name StringName +--- @param node AnimationNode +--- @param position Vector2? Default: Vector2(0, 0) +function AnimationNodeBlendTree:add_node(name, node, position) end + +--- @param name StringName +--- @return AnimationNode +function AnimationNodeBlendTree:get_node(name) end + +--- @param name StringName +function AnimationNodeBlendTree:remove_node(name) end + +--- @param name StringName +--- @param new_name StringName +function AnimationNodeBlendTree:rename_node(name, new_name) end + +--- @param name StringName +--- @return bool +function AnimationNodeBlendTree:has_node(name) end + +--- @param input_node StringName +--- @param input_index int +--- @param output_node StringName +function AnimationNodeBlendTree:connect_node(input_node, input_index, output_node) end + +--- @param input_node StringName +--- @param input_index int +function AnimationNodeBlendTree:disconnect_node(input_node, input_index) end + +--- @return Array[StringName] +function AnimationNodeBlendTree:get_node_list() end + +--- @param name StringName +--- @param position Vector2 +function AnimationNodeBlendTree:set_node_position(name, position) end + +--- @param name StringName +--- @return Vector2 +function AnimationNodeBlendTree:get_node_position(name) end + +--- @param offset Vector2 +function AnimationNodeBlendTree:set_graph_offset(offset) end + +--- @return Vector2 +function AnimationNodeBlendTree:get_graph_offset() end + + +----------------------------------------------------------- +-- AnimationNodeExtension +----------------------------------------------------------- + +--- @class AnimationNodeExtension: AnimationNode, { [string]: any } +AnimationNodeExtension = {} + +--- @return AnimationNodeExtension +function AnimationNodeExtension:new() end + +--- @param playback_info PackedFloat64Array +--- @param test_only bool +--- @return PackedFloat32Array +function AnimationNodeExtension:_process_animation_node(playback_info, test_only) end + +--- static +--- @param node_info PackedFloat32Array +--- @return bool +function AnimationNodeExtension:is_looping(node_info) end + +--- static +--- @param node_info PackedFloat32Array +--- @param break_loop bool +--- @return float +function AnimationNodeExtension:get_remaining_time(node_info, break_loop) end + + +----------------------------------------------------------- +-- AnimationNodeOneShot +----------------------------------------------------------- + +--- @class AnimationNodeOneShot: AnimationNodeSync, { [string]: any } +--- @field mix_mode int +--- @field fadein_time float +--- @field fadein_curve Curve +--- @field fadeout_time float +--- @field fadeout_curve Curve +--- @field break_loop_at_end bool +--- @field autorestart bool +--- @field autorestart_delay float +--- @field autorestart_random_delay float +AnimationNodeOneShot = {} + +--- @return AnimationNodeOneShot +function AnimationNodeOneShot:new() end + +--- @alias AnimationNodeOneShot.OneShotRequest `AnimationNodeOneShot.ONE_SHOT_REQUEST_NONE` | `AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE` | `AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT` | `AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT` +AnimationNodeOneShot.ONE_SHOT_REQUEST_NONE = 0 +AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE = 1 +AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT = 2 +AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT = 3 + +--- @alias AnimationNodeOneShot.MixMode `AnimationNodeOneShot.MIX_MODE_BLEND` | `AnimationNodeOneShot.MIX_MODE_ADD` +AnimationNodeOneShot.MIX_MODE_BLEND = 0 +AnimationNodeOneShot.MIX_MODE_ADD = 1 + +--- @param time float +function AnimationNodeOneShot:set_fadein_time(time) end + +--- @return float +function AnimationNodeOneShot:get_fadein_time() end + +--- @param curve Curve +function AnimationNodeOneShot:set_fadein_curve(curve) end + +--- @return Curve +function AnimationNodeOneShot:get_fadein_curve() end + +--- @param time float +function AnimationNodeOneShot:set_fadeout_time(time) end + +--- @return float +function AnimationNodeOneShot:get_fadeout_time() end + +--- @param curve Curve +function AnimationNodeOneShot:set_fadeout_curve(curve) end + +--- @return Curve +function AnimationNodeOneShot:get_fadeout_curve() end + +--- @param enable bool +function AnimationNodeOneShot:set_break_loop_at_end(enable) end + +--- @return bool +function AnimationNodeOneShot:is_loop_broken_at_end() end + +--- @param active bool +function AnimationNodeOneShot:set_autorestart(active) end + +--- @return bool +function AnimationNodeOneShot:has_autorestart() end + +--- @param time float +function AnimationNodeOneShot:set_autorestart_delay(time) end + +--- @return float +function AnimationNodeOneShot:get_autorestart_delay() end + +--- @param time float +function AnimationNodeOneShot:set_autorestart_random_delay(time) end + +--- @return float +function AnimationNodeOneShot:get_autorestart_random_delay() end + +--- @param mode AnimationNodeOneShot.MixMode +function AnimationNodeOneShot:set_mix_mode(mode) end + +--- @return AnimationNodeOneShot.MixMode +function AnimationNodeOneShot:get_mix_mode() end + + +----------------------------------------------------------- +-- AnimationNodeOutput +----------------------------------------------------------- + +--- @class AnimationNodeOutput: AnimationNode, { [string]: any } +AnimationNodeOutput = {} + +--- @return AnimationNodeOutput +function AnimationNodeOutput:new() end + + +----------------------------------------------------------- +-- AnimationNodeStateMachine +----------------------------------------------------------- + +--- @class AnimationNodeStateMachine: AnimationRootNode, { [string]: any } +--- @field state_machine_type int +--- @field allow_transition_to_self bool +--- @field reset_ends bool +AnimationNodeStateMachine = {} + +--- @return AnimationNodeStateMachine +function AnimationNodeStateMachine:new() end + +--- @alias AnimationNodeStateMachine.StateMachineType `AnimationNodeStateMachine.STATE_MACHINE_TYPE_ROOT` | `AnimationNodeStateMachine.STATE_MACHINE_TYPE_NESTED` | `AnimationNodeStateMachine.STATE_MACHINE_TYPE_GROUPED` +AnimationNodeStateMachine.STATE_MACHINE_TYPE_ROOT = 0 +AnimationNodeStateMachine.STATE_MACHINE_TYPE_NESTED = 1 +AnimationNodeStateMachine.STATE_MACHINE_TYPE_GROUPED = 2 + +--- @param name StringName +--- @param node AnimationNode +--- @param position Vector2? Default: Vector2(0, 0) +function AnimationNodeStateMachine:add_node(name, node, position) end + +--- @param name StringName +--- @param node AnimationNode +function AnimationNodeStateMachine:replace_node(name, node) end + +--- @param name StringName +--- @return AnimationNode +function AnimationNodeStateMachine:get_node(name) end + +--- @param name StringName +function AnimationNodeStateMachine:remove_node(name) end + +--- @param name StringName +--- @param new_name StringName +function AnimationNodeStateMachine:rename_node(name, new_name) end + +--- @param name StringName +--- @return bool +function AnimationNodeStateMachine:has_node(name) end + +--- @param node AnimationNode +--- @return StringName +function AnimationNodeStateMachine:get_node_name(node) end + +--- @return Array[StringName] +function AnimationNodeStateMachine:get_node_list() end + +--- @param name StringName +--- @param position Vector2 +function AnimationNodeStateMachine:set_node_position(name, position) end + +--- @param name StringName +--- @return Vector2 +function AnimationNodeStateMachine:get_node_position(name) end + +--- @param from StringName +--- @param to StringName +--- @return bool +function AnimationNodeStateMachine:has_transition(from, to) end + +--- @param from StringName +--- @param to StringName +--- @param transition AnimationNodeStateMachineTransition +function AnimationNodeStateMachine:add_transition(from, to, transition) end + +--- @param idx int +--- @return AnimationNodeStateMachineTransition +function AnimationNodeStateMachine:get_transition(idx) end + +--- @param idx int +--- @return StringName +function AnimationNodeStateMachine:get_transition_from(idx) end + +--- @param idx int +--- @return StringName +function AnimationNodeStateMachine:get_transition_to(idx) end + +--- @return int +function AnimationNodeStateMachine:get_transition_count() end + +--- @param idx int +function AnimationNodeStateMachine:remove_transition_by_index(idx) end + +--- @param from StringName +--- @param to StringName +function AnimationNodeStateMachine:remove_transition(from, to) end + +--- @param offset Vector2 +function AnimationNodeStateMachine:set_graph_offset(offset) end + +--- @return Vector2 +function AnimationNodeStateMachine:get_graph_offset() end + +--- @param state_machine_type AnimationNodeStateMachine.StateMachineType +function AnimationNodeStateMachine:set_state_machine_type(state_machine_type) end + +--- @return AnimationNodeStateMachine.StateMachineType +function AnimationNodeStateMachine:get_state_machine_type() end + +--- @param enable bool +function AnimationNodeStateMachine:set_allow_transition_to_self(enable) end + +--- @return bool +function AnimationNodeStateMachine:is_allow_transition_to_self() end + +--- @param enable bool +function AnimationNodeStateMachine:set_reset_ends(enable) end + +--- @return bool +function AnimationNodeStateMachine:are_ends_reset() end + + +----------------------------------------------------------- +-- AnimationNodeStateMachinePlayback +----------------------------------------------------------- + +--- @class AnimationNodeStateMachinePlayback: Resource, { [string]: any } +AnimationNodeStateMachinePlayback = {} + +--- @return AnimationNodeStateMachinePlayback +function AnimationNodeStateMachinePlayback:new() end + +AnimationNodeStateMachinePlayback.state_started = Signal() +AnimationNodeStateMachinePlayback.state_finished = Signal() + +--- @param to_node StringName +--- @param reset_on_teleport bool? Default: true +function AnimationNodeStateMachinePlayback:travel(to_node, reset_on_teleport) end + +--- @param node StringName +--- @param reset bool? Default: true +function AnimationNodeStateMachinePlayback:start(node, reset) end + +function AnimationNodeStateMachinePlayback:next() end + +function AnimationNodeStateMachinePlayback:stop() end + +--- @return bool +function AnimationNodeStateMachinePlayback:is_playing() end + +--- @return StringName +function AnimationNodeStateMachinePlayback:get_current_node() end + +--- @return float +function AnimationNodeStateMachinePlayback:get_current_play_position() end + +--- @return float +function AnimationNodeStateMachinePlayback:get_current_length() end + +--- @return StringName +function AnimationNodeStateMachinePlayback:get_fading_from_node() end + +--- @return Array[StringName] +function AnimationNodeStateMachinePlayback:get_travel_path() end + + +----------------------------------------------------------- +-- AnimationNodeStateMachineTransition +----------------------------------------------------------- + +--- @class AnimationNodeStateMachineTransition: Resource, { [string]: any } +--- @field xfade_time float +--- @field xfade_curve Curve +--- @field break_loop_at_end bool +--- @field reset bool +--- @field priority int +--- @field switch_mode int +--- @field advance_mode int +--- @field advance_condition StringName +--- @field advance_expression String +AnimationNodeStateMachineTransition = {} + +--- @return AnimationNodeStateMachineTransition +function AnimationNodeStateMachineTransition:new() end + +--- @alias AnimationNodeStateMachineTransition.SwitchMode `AnimationNodeStateMachineTransition.SWITCH_MODE_IMMEDIATE` | `AnimationNodeStateMachineTransition.SWITCH_MODE_SYNC` | `AnimationNodeStateMachineTransition.SWITCH_MODE_AT_END` +AnimationNodeStateMachineTransition.SWITCH_MODE_IMMEDIATE = 0 +AnimationNodeStateMachineTransition.SWITCH_MODE_SYNC = 1 +AnimationNodeStateMachineTransition.SWITCH_MODE_AT_END = 2 + +--- @alias AnimationNodeStateMachineTransition.AdvanceMode `AnimationNodeStateMachineTransition.ADVANCE_MODE_DISABLED` | `AnimationNodeStateMachineTransition.ADVANCE_MODE_ENABLED` | `AnimationNodeStateMachineTransition.ADVANCE_MODE_AUTO` +AnimationNodeStateMachineTransition.ADVANCE_MODE_DISABLED = 0 +AnimationNodeStateMachineTransition.ADVANCE_MODE_ENABLED = 1 +AnimationNodeStateMachineTransition.ADVANCE_MODE_AUTO = 2 + +AnimationNodeStateMachineTransition.advance_condition_changed = Signal() + +--- @param mode AnimationNodeStateMachineTransition.SwitchMode +function AnimationNodeStateMachineTransition:set_switch_mode(mode) end + +--- @return AnimationNodeStateMachineTransition.SwitchMode +function AnimationNodeStateMachineTransition:get_switch_mode() end + +--- @param mode AnimationNodeStateMachineTransition.AdvanceMode +function AnimationNodeStateMachineTransition:set_advance_mode(mode) end + +--- @return AnimationNodeStateMachineTransition.AdvanceMode +function AnimationNodeStateMachineTransition:get_advance_mode() end + +--- @param name StringName +function AnimationNodeStateMachineTransition:set_advance_condition(name) end + +--- @return StringName +function AnimationNodeStateMachineTransition:get_advance_condition() end + +--- @param secs float +function AnimationNodeStateMachineTransition:set_xfade_time(secs) end + +--- @return float +function AnimationNodeStateMachineTransition:get_xfade_time() end + +--- @param curve Curve +function AnimationNodeStateMachineTransition:set_xfade_curve(curve) end + +--- @return Curve +function AnimationNodeStateMachineTransition:get_xfade_curve() end + +--- @param enable bool +function AnimationNodeStateMachineTransition:set_break_loop_at_end(enable) end + +--- @return bool +function AnimationNodeStateMachineTransition:is_loop_broken_at_end() end + +--- @param reset bool +function AnimationNodeStateMachineTransition:set_reset(reset) end + +--- @return bool +function AnimationNodeStateMachineTransition:is_reset() end + +--- @param priority int +function AnimationNodeStateMachineTransition:set_priority(priority) end + +--- @return int +function AnimationNodeStateMachineTransition:get_priority() end + +--- @param text String +function AnimationNodeStateMachineTransition:set_advance_expression(text) end + +--- @return String +function AnimationNodeStateMachineTransition:get_advance_expression() end + + +----------------------------------------------------------- +-- AnimationNodeSub2 +----------------------------------------------------------- + +--- @class AnimationNodeSub2: AnimationNodeSync, { [string]: any } +AnimationNodeSub2 = {} + +--- @return AnimationNodeSub2 +function AnimationNodeSub2:new() end + + +----------------------------------------------------------- +-- AnimationNodeSync +----------------------------------------------------------- + +--- @class AnimationNodeSync: AnimationNode, { [string]: any } +--- @field sync bool +AnimationNodeSync = {} + +--- @return AnimationNodeSync +function AnimationNodeSync:new() end + +--- @param enable bool +function AnimationNodeSync:set_use_sync(enable) end + +--- @return bool +function AnimationNodeSync:is_using_sync() end + + +----------------------------------------------------------- +-- AnimationNodeTimeScale +----------------------------------------------------------- + +--- @class AnimationNodeTimeScale: AnimationNode, { [string]: any } +AnimationNodeTimeScale = {} + +--- @return AnimationNodeTimeScale +function AnimationNodeTimeScale:new() end + + +----------------------------------------------------------- +-- AnimationNodeTimeSeek +----------------------------------------------------------- + +--- @class AnimationNodeTimeSeek: AnimationNode, { [string]: any } +--- @field explicit_elapse bool +AnimationNodeTimeSeek = {} + +--- @return AnimationNodeTimeSeek +function AnimationNodeTimeSeek:new() end + +--- @param enable bool +function AnimationNodeTimeSeek:set_explicit_elapse(enable) end + +--- @return bool +function AnimationNodeTimeSeek:is_explicit_elapse() end + + +----------------------------------------------------------- +-- AnimationNodeTransition +----------------------------------------------------------- + +--- @class AnimationNodeTransition: AnimationNodeSync, { [string]: any } +--- @field xfade_time float +--- @field xfade_curve Curve +--- @field allow_transition_to_self bool +--- @field input_count int +AnimationNodeTransition = {} + +--- @return AnimationNodeTransition +function AnimationNodeTransition:new() end + +--- @param input_count int +function AnimationNodeTransition:set_input_count(input_count) end + +--- @param input int +--- @param enable bool +function AnimationNodeTransition:set_input_as_auto_advance(input, enable) end + +--- @param input int +--- @return bool +function AnimationNodeTransition:is_input_set_as_auto_advance(input) end + +--- @param input int +--- @param enable bool +function AnimationNodeTransition:set_input_break_loop_at_end(input, enable) end + +--- @param input int +--- @return bool +function AnimationNodeTransition:is_input_loop_broken_at_end(input) end + +--- @param input int +--- @param enable bool +function AnimationNodeTransition:set_input_reset(input, enable) end + +--- @param input int +--- @return bool +function AnimationNodeTransition:is_input_reset(input) end + +--- @param time float +function AnimationNodeTransition:set_xfade_time(time) end + +--- @return float +function AnimationNodeTransition:get_xfade_time() end + +--- @param curve Curve +function AnimationNodeTransition:set_xfade_curve(curve) end + +--- @return Curve +function AnimationNodeTransition:get_xfade_curve() end + +--- @param enable bool +function AnimationNodeTransition:set_allow_transition_to_self(enable) end + +--- @return bool +function AnimationNodeTransition:is_allow_transition_to_self() end + + +----------------------------------------------------------- +-- AnimationPlayer +----------------------------------------------------------- + +--- @class AnimationPlayer: AnimationMixer, { [string]: any } +--- @field current_animation StringName +--- @field assigned_animation StringName +--- @field autoplay StringName +--- @field current_animation_length float +--- @field current_animation_position float +--- @field playback_auto_capture bool +--- @field playback_auto_capture_duration float +--- @field playback_auto_capture_transition_type int +--- @field playback_auto_capture_ease_type int +--- @field playback_default_blend_time float +--- @field speed_scale float +--- @field movie_quit_on_finish bool +AnimationPlayer = {} + +--- @return AnimationPlayer +function AnimationPlayer:new() end + +--- @alias AnimationPlayer.AnimationProcessCallback `AnimationPlayer.ANIMATION_PROCESS_PHYSICS` | `AnimationPlayer.ANIMATION_PROCESS_IDLE` | `AnimationPlayer.ANIMATION_PROCESS_MANUAL` +AnimationPlayer.ANIMATION_PROCESS_PHYSICS = 0 +AnimationPlayer.ANIMATION_PROCESS_IDLE = 1 +AnimationPlayer.ANIMATION_PROCESS_MANUAL = 2 + +--- @alias AnimationPlayer.AnimationMethodCallMode `AnimationPlayer.ANIMATION_METHOD_CALL_DEFERRED` | `AnimationPlayer.ANIMATION_METHOD_CALL_IMMEDIATE` +AnimationPlayer.ANIMATION_METHOD_CALL_DEFERRED = 0 +AnimationPlayer.ANIMATION_METHOD_CALL_IMMEDIATE = 1 + +AnimationPlayer.current_animation_changed = Signal() +AnimationPlayer.animation_changed = Signal() + +--- @param animation_from StringName +--- @param animation_to StringName +function AnimationPlayer:animation_set_next(animation_from, animation_to) end + +--- @param animation_from StringName +--- @return StringName +function AnimationPlayer:animation_get_next(animation_from) end + +--- @param animation_from StringName +--- @param animation_to StringName +--- @param sec float +function AnimationPlayer:set_blend_time(animation_from, animation_to, sec) end + +--- @param animation_from StringName +--- @param animation_to StringName +--- @return float +function AnimationPlayer:get_blend_time(animation_from, animation_to) end + +--- @param sec float +function AnimationPlayer:set_default_blend_time(sec) end + +--- @return float +function AnimationPlayer:get_default_blend_time() end + +--- @param auto_capture bool +function AnimationPlayer:set_auto_capture(auto_capture) end + +--- @return bool +function AnimationPlayer:is_auto_capture() end + +--- @param auto_capture_duration float +function AnimationPlayer:set_auto_capture_duration(auto_capture_duration) end + +--- @return float +function AnimationPlayer:get_auto_capture_duration() end + +--- @param auto_capture_transition_type Tween.TransitionType +function AnimationPlayer:set_auto_capture_transition_type(auto_capture_transition_type) end + +--- @return Tween.TransitionType +function AnimationPlayer:get_auto_capture_transition_type() end + +--- @param auto_capture_ease_type Tween.EaseType +function AnimationPlayer:set_auto_capture_ease_type(auto_capture_ease_type) end + +--- @return Tween.EaseType +function AnimationPlayer:get_auto_capture_ease_type() end + +--- @param name StringName? Default: &"" +--- @param custom_blend float? Default: -1 +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +function AnimationPlayer:play(name, custom_blend, custom_speed, from_end) end + +--- @param name StringName? Default: &"" +--- @param start_marker StringName? Default: &"" +--- @param end_marker StringName? Default: &"" +--- @param custom_blend float? Default: -1 +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +function AnimationPlayer:play_section_with_markers(name, start_marker, end_marker, custom_blend, custom_speed, from_end) end + +--- @param name StringName? Default: &"" +--- @param start_time float? Default: -1 +--- @param end_time float? Default: -1 +--- @param custom_blend float? Default: -1 +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +function AnimationPlayer:play_section(name, start_time, end_time, custom_blend, custom_speed, from_end) end + +--- @param name StringName? Default: &"" +--- @param custom_blend float? Default: -1 +function AnimationPlayer:play_backwards(name, custom_blend) end + +--- @param name StringName? Default: &"" +--- @param start_marker StringName? Default: &"" +--- @param end_marker StringName? Default: &"" +--- @param custom_blend float? Default: -1 +function AnimationPlayer:play_section_with_markers_backwards(name, start_marker, end_marker, custom_blend) end + +--- @param name StringName? Default: &"" +--- @param start_time float? Default: -1 +--- @param end_time float? Default: -1 +--- @param custom_blend float? Default: -1 +function AnimationPlayer:play_section_backwards(name, start_time, end_time, custom_blend) end + +--- @param name StringName? Default: &"" +--- @param duration float? Default: -1.0 +--- @param custom_blend float? Default: -1 +--- @param custom_speed float? Default: 1.0 +--- @param from_end bool? Default: false +--- @param trans_type Tween.TransitionType? Default: 0 +--- @param ease_type Tween.EaseType? Default: 0 +function AnimationPlayer:play_with_capture(name, duration, custom_blend, custom_speed, from_end, trans_type, ease_type) end + +function AnimationPlayer:pause() end + +--- @param keep_state bool? Default: false +function AnimationPlayer:stop(keep_state) end + +--- @return bool +function AnimationPlayer:is_playing() end + +--- @param animation String +function AnimationPlayer:set_current_animation(animation) end + +--- @return String +function AnimationPlayer:get_current_animation() end + +--- @param animation String +function AnimationPlayer:set_assigned_animation(animation) end + +--- @return String +function AnimationPlayer:get_assigned_animation() end + +--- @param name StringName +function AnimationPlayer:queue(name) end + +--- @return PackedStringArray +function AnimationPlayer:get_queue() end + +function AnimationPlayer:clear_queue() end + +--- @param speed float +function AnimationPlayer:set_speed_scale(speed) end + +--- @return float +function AnimationPlayer:get_speed_scale() end + +--- @return float +function AnimationPlayer:get_playing_speed() end + +--- @param name String +function AnimationPlayer:set_autoplay(name) end + +--- @return String +function AnimationPlayer:get_autoplay() end + +--- @param enabled bool +function AnimationPlayer:set_movie_quit_on_finish_enabled(enabled) end + +--- @return bool +function AnimationPlayer:is_movie_quit_on_finish_enabled() end + +--- @return float +function AnimationPlayer:get_current_animation_position() end + +--- @return float +function AnimationPlayer:get_current_animation_length() end + +--- @param start_marker StringName? Default: &"" +--- @param end_marker StringName? Default: &"" +function AnimationPlayer:set_section_with_markers(start_marker, end_marker) end + +--- @param start_time float? Default: -1 +--- @param end_time float? Default: -1 +function AnimationPlayer:set_section(start_time, end_time) end + +function AnimationPlayer:reset_section() end + +--- @return float +function AnimationPlayer:get_section_start_time() end + +--- @return float +function AnimationPlayer:get_section_end_time() end + +--- @return bool +function AnimationPlayer:has_section() end + +--- @param seconds float +--- @param update bool? Default: false +--- @param update_only bool? Default: false +function AnimationPlayer:seek(seconds, update, update_only) end + +--- @param mode AnimationPlayer.AnimationProcessCallback +function AnimationPlayer:set_process_callback(mode) end + +--- @return AnimationPlayer.AnimationProcessCallback +function AnimationPlayer:get_process_callback() end + +--- @param mode AnimationPlayer.AnimationMethodCallMode +function AnimationPlayer:set_method_call_mode(mode) end + +--- @return AnimationPlayer.AnimationMethodCallMode +function AnimationPlayer:get_method_call_mode() end + +--- @param path NodePath +function AnimationPlayer:set_root(path) end + +--- @return NodePath +function AnimationPlayer:get_root() end + + +----------------------------------------------------------- +-- AnimationRootNode +----------------------------------------------------------- + +--- @class AnimationRootNode: AnimationNode, { [string]: any } +AnimationRootNode = {} + +--- @return AnimationRootNode +function AnimationRootNode:new() end + + +----------------------------------------------------------- +-- AnimationTree +----------------------------------------------------------- + +--- @class AnimationTree: AnimationMixer, { [string]: any } +--- @field tree_root AnimationRootNode +--- @field advance_expression_base_node NodePath +--- @field anim_player NodePath +AnimationTree = {} + +--- @return AnimationTree +function AnimationTree:new() end + +--- @alias AnimationTree.AnimationProcessCallback `AnimationTree.ANIMATION_PROCESS_PHYSICS` | `AnimationTree.ANIMATION_PROCESS_IDLE` | `AnimationTree.ANIMATION_PROCESS_MANUAL` +AnimationTree.ANIMATION_PROCESS_PHYSICS = 0 +AnimationTree.ANIMATION_PROCESS_IDLE = 1 +AnimationTree.ANIMATION_PROCESS_MANUAL = 2 + +AnimationTree.animation_player_changed = Signal() + +--- @param animation_node AnimationRootNode +function AnimationTree:set_tree_root(animation_node) end + +--- @return AnimationRootNode +function AnimationTree:get_tree_root() end + +--- @param path NodePath +function AnimationTree:set_advance_expression_base_node(path) end + +--- @return NodePath +function AnimationTree:get_advance_expression_base_node() end + +--- @param path NodePath +function AnimationTree:set_animation_player(path) end + +--- @return NodePath +function AnimationTree:get_animation_player() end + +--- @param mode AnimationTree.AnimationProcessCallback +function AnimationTree:set_process_callback(mode) end + +--- @return AnimationTree.AnimationProcessCallback +function AnimationTree:get_process_callback() end + + +----------------------------------------------------------- +-- Area2D +----------------------------------------------------------- + +--- @class Area2D: CollisionObject2D, { [string]: any } +--- @field monitoring bool +--- @field monitorable bool +--- @field priority int +--- @field gravity_space_override int +--- @field gravity_point bool +--- @field gravity_point_unit_distance float +--- @field gravity_point_center Vector2 +--- @field gravity_direction Vector2 +--- @field gravity float +--- @field linear_damp_space_override int +--- @field linear_damp float +--- @field angular_damp_space_override int +--- @field angular_damp float +--- @field audio_bus_override bool +--- @field audio_bus_name StringName +Area2D = {} + +--- @return Area2D +function Area2D:new() end + +--- @alias Area2D.SpaceOverride `Area2D.SPACE_OVERRIDE_DISABLED` | `Area2D.SPACE_OVERRIDE_COMBINE` | `Area2D.SPACE_OVERRIDE_COMBINE_REPLACE` | `Area2D.SPACE_OVERRIDE_REPLACE` | `Area2D.SPACE_OVERRIDE_REPLACE_COMBINE` +Area2D.SPACE_OVERRIDE_DISABLED = 0 +Area2D.SPACE_OVERRIDE_COMBINE = 1 +Area2D.SPACE_OVERRIDE_COMBINE_REPLACE = 2 +Area2D.SPACE_OVERRIDE_REPLACE = 3 +Area2D.SPACE_OVERRIDE_REPLACE_COMBINE = 4 + +Area2D.body_shape_entered = Signal() +Area2D.body_shape_exited = Signal() +Area2D.body_entered = Signal() +Area2D.body_exited = Signal() +Area2D.area_shape_entered = Signal() +Area2D.area_shape_exited = Signal() +Area2D.area_entered = Signal() +Area2D.area_exited = Signal() + +--- @param space_override_mode Area2D.SpaceOverride +function Area2D:set_gravity_space_override_mode(space_override_mode) end + +--- @return Area2D.SpaceOverride +function Area2D:get_gravity_space_override_mode() end + +--- @param enable bool +function Area2D:set_gravity_is_point(enable) end + +--- @return bool +function Area2D:is_gravity_a_point() end + +--- @param distance_scale float +function Area2D:set_gravity_point_unit_distance(distance_scale) end + +--- @return float +function Area2D:get_gravity_point_unit_distance() end + +--- @param center Vector2 +function Area2D:set_gravity_point_center(center) end + +--- @return Vector2 +function Area2D:get_gravity_point_center() end + +--- @param direction Vector2 +function Area2D:set_gravity_direction(direction) end + +--- @return Vector2 +function Area2D:get_gravity_direction() end + +--- @param gravity float +function Area2D:set_gravity(gravity) end + +--- @return float +function Area2D:get_gravity() end + +--- @param space_override_mode Area2D.SpaceOverride +function Area2D:set_linear_damp_space_override_mode(space_override_mode) end + +--- @return Area2D.SpaceOverride +function Area2D:get_linear_damp_space_override_mode() end + +--- @param space_override_mode Area2D.SpaceOverride +function Area2D:set_angular_damp_space_override_mode(space_override_mode) end + +--- @return Area2D.SpaceOverride +function Area2D:get_angular_damp_space_override_mode() end + +--- @param linear_damp float +function Area2D:set_linear_damp(linear_damp) end + +--- @return float +function Area2D:get_linear_damp() end + +--- @param angular_damp float +function Area2D:set_angular_damp(angular_damp) end + +--- @return float +function Area2D:get_angular_damp() end + +--- @param priority int +function Area2D:set_priority(priority) end + +--- @return int +function Area2D:get_priority() end + +--- @param enable bool +function Area2D:set_monitoring(enable) end + +--- @return bool +function Area2D:is_monitoring() end + +--- @param enable bool +function Area2D:set_monitorable(enable) end + +--- @return bool +function Area2D:is_monitorable() end + +--- @return Array[Node2D] +function Area2D:get_overlapping_bodies() end + +--- @return Array[Area2D] +function Area2D:get_overlapping_areas() end + +--- @return bool +function Area2D:has_overlapping_bodies() end + +--- @return bool +function Area2D:has_overlapping_areas() end + +--- @param body Node +--- @return bool +function Area2D:overlaps_body(body) end + +--- @param area Node +--- @return bool +function Area2D:overlaps_area(area) end + +--- @param name StringName +function Area2D:set_audio_bus_name(name) end + +--- @return StringName +function Area2D:get_audio_bus_name() end + +--- @param enable bool +function Area2D:set_audio_bus_override(enable) end + +--- @return bool +function Area2D:is_overriding_audio_bus() end + + +----------------------------------------------------------- +-- Area3D +----------------------------------------------------------- + +--- @class Area3D: CollisionObject3D, { [string]: any } +--- @field monitoring bool +--- @field monitorable bool +--- @field priority int +--- @field gravity_space_override int +--- @field gravity_point bool +--- @field gravity_point_unit_distance float +--- @field gravity_point_center Vector3 +--- @field gravity_direction Vector3 +--- @field gravity float +--- @field linear_damp_space_override int +--- @field linear_damp float +--- @field angular_damp_space_override int +--- @field angular_damp float +--- @field wind_force_magnitude float +--- @field wind_attenuation_factor float +--- @field wind_source_path NodePath +--- @field audio_bus_override bool +--- @field audio_bus_name StringName +--- @field reverb_bus_enabled bool +--- @field reverb_bus_name StringName +--- @field reverb_bus_amount float +--- @field reverb_bus_uniformity float +Area3D = {} + +--- @return Area3D +function Area3D:new() end + +--- @alias Area3D.SpaceOverride `Area3D.SPACE_OVERRIDE_DISABLED` | `Area3D.SPACE_OVERRIDE_COMBINE` | `Area3D.SPACE_OVERRIDE_COMBINE_REPLACE` | `Area3D.SPACE_OVERRIDE_REPLACE` | `Area3D.SPACE_OVERRIDE_REPLACE_COMBINE` +Area3D.SPACE_OVERRIDE_DISABLED = 0 +Area3D.SPACE_OVERRIDE_COMBINE = 1 +Area3D.SPACE_OVERRIDE_COMBINE_REPLACE = 2 +Area3D.SPACE_OVERRIDE_REPLACE = 3 +Area3D.SPACE_OVERRIDE_REPLACE_COMBINE = 4 + +Area3D.body_shape_entered = Signal() +Area3D.body_shape_exited = Signal() +Area3D.body_entered = Signal() +Area3D.body_exited = Signal() +Area3D.area_shape_entered = Signal() +Area3D.area_shape_exited = Signal() +Area3D.area_entered = Signal() +Area3D.area_exited = Signal() + +--- @param space_override_mode Area3D.SpaceOverride +function Area3D:set_gravity_space_override_mode(space_override_mode) end + +--- @return Area3D.SpaceOverride +function Area3D:get_gravity_space_override_mode() end + +--- @param enable bool +function Area3D:set_gravity_is_point(enable) end + +--- @return bool +function Area3D:is_gravity_a_point() end + +--- @param distance_scale float +function Area3D:set_gravity_point_unit_distance(distance_scale) end + +--- @return float +function Area3D:get_gravity_point_unit_distance() end + +--- @param center Vector3 +function Area3D:set_gravity_point_center(center) end + +--- @return Vector3 +function Area3D:get_gravity_point_center() end + +--- @param direction Vector3 +function Area3D:set_gravity_direction(direction) end + +--- @return Vector3 +function Area3D:get_gravity_direction() end + +--- @param gravity float +function Area3D:set_gravity(gravity) end + +--- @return float +function Area3D:get_gravity() end + +--- @param space_override_mode Area3D.SpaceOverride +function Area3D:set_linear_damp_space_override_mode(space_override_mode) end + +--- @return Area3D.SpaceOverride +function Area3D:get_linear_damp_space_override_mode() end + +--- @param space_override_mode Area3D.SpaceOverride +function Area3D:set_angular_damp_space_override_mode(space_override_mode) end + +--- @return Area3D.SpaceOverride +function Area3D:get_angular_damp_space_override_mode() end + +--- @param angular_damp float +function Area3D:set_angular_damp(angular_damp) end + +--- @return float +function Area3D:get_angular_damp() end + +--- @param linear_damp float +function Area3D:set_linear_damp(linear_damp) end + +--- @return float +function Area3D:get_linear_damp() end + +--- @param priority int +function Area3D:set_priority(priority) end + +--- @return int +function Area3D:get_priority() end + +--- @param wind_force_magnitude float +function Area3D:set_wind_force_magnitude(wind_force_magnitude) end + +--- @return float +function Area3D:get_wind_force_magnitude() end + +--- @param wind_attenuation_factor float +function Area3D:set_wind_attenuation_factor(wind_attenuation_factor) end + +--- @return float +function Area3D:get_wind_attenuation_factor() end + +--- @param wind_source_path NodePath +function Area3D:set_wind_source_path(wind_source_path) end + +--- @return NodePath +function Area3D:get_wind_source_path() end + +--- @param enable bool +function Area3D:set_monitorable(enable) end + +--- @return bool +function Area3D:is_monitorable() end + +--- @param enable bool +function Area3D:set_monitoring(enable) end + +--- @return bool +function Area3D:is_monitoring() end + +--- @return Array[Node3D] +function Area3D:get_overlapping_bodies() end + +--- @return Array[Area3D] +function Area3D:get_overlapping_areas() end + +--- @return bool +function Area3D:has_overlapping_bodies() end + +--- @return bool +function Area3D:has_overlapping_areas() end + +--- @param body Node +--- @return bool +function Area3D:overlaps_body(body) end + +--- @param area Node +--- @return bool +function Area3D:overlaps_area(area) end + +--- @param enable bool +function Area3D:set_audio_bus_override(enable) end + +--- @return bool +function Area3D:is_overriding_audio_bus() end + +--- @param name StringName +function Area3D:set_audio_bus_name(name) end + +--- @return StringName +function Area3D:get_audio_bus_name() end + +--- @param enable bool +function Area3D:set_use_reverb_bus(enable) end + +--- @return bool +function Area3D:is_using_reverb_bus() end + +--- @param name StringName +function Area3D:set_reverb_bus_name(name) end + +--- @return StringName +function Area3D:get_reverb_bus_name() end + +--- @param amount float +function Area3D:set_reverb_amount(amount) end + +--- @return float +function Area3D:get_reverb_amount() end + +--- @param amount float +function Area3D:set_reverb_uniformity(amount) end + +--- @return float +function Area3D:get_reverb_uniformity() end + + +----------------------------------------------------------- +-- ArrayMesh +----------------------------------------------------------- + +--- @class ArrayMesh: Mesh, { [string]: any } +--- @field blend_shape_mode int +--- @field custom_aabb AABB +--- @field shadow_mesh ArrayMesh +ArrayMesh = {} + +--- @return ArrayMesh +function ArrayMesh:new() end + +--- @param name StringName +function ArrayMesh:add_blend_shape(name) end + +--- @return int +function ArrayMesh:get_blend_shape_count() end + +--- @param index int +--- @return StringName +function ArrayMesh:get_blend_shape_name(index) end + +--- @param index int +--- @param name StringName +function ArrayMesh:set_blend_shape_name(index, name) end + +function ArrayMesh:clear_blend_shapes() end + +--- @param mode Mesh.BlendShapeMode +function ArrayMesh:set_blend_shape_mode(mode) end + +--- @return Mesh.BlendShapeMode +function ArrayMesh:get_blend_shape_mode() end + +--- @param primitive Mesh.PrimitiveType +--- @param arrays Array +--- @param blend_shapes Array[Array]? Default: [] +--- @param lods Dictionary? Default: {} +--- @param flags Mesh.ArrayFormat? Default: 0 +function ArrayMesh:add_surface_from_arrays(primitive, arrays, blend_shapes, lods, flags) end + +function ArrayMesh:clear_surfaces() end + +--- @param surf_idx int +function ArrayMesh:surface_remove(surf_idx) end + +--- @param surf_idx int +--- @param offset int +--- @param data PackedByteArray +function ArrayMesh:surface_update_vertex_region(surf_idx, offset, data) end + +--- @param surf_idx int +--- @param offset int +--- @param data PackedByteArray +function ArrayMesh:surface_update_attribute_region(surf_idx, offset, data) end + +--- @param surf_idx int +--- @param offset int +--- @param data PackedByteArray +function ArrayMesh:surface_update_skin_region(surf_idx, offset, data) end + +--- @param surf_idx int +--- @return int +function ArrayMesh:surface_get_array_len(surf_idx) end + +--- @param surf_idx int +--- @return int +function ArrayMesh:surface_get_array_index_len(surf_idx) end + +--- @param surf_idx int +--- @return Mesh.ArrayFormat +function ArrayMesh:surface_get_format(surf_idx) end + +--- @param surf_idx int +--- @return Mesh.PrimitiveType +function ArrayMesh:surface_get_primitive_type(surf_idx) end + +--- @param name String +--- @return int +function ArrayMesh:surface_find_by_name(name) end + +--- @param surf_idx int +--- @param name String +function ArrayMesh:surface_set_name(surf_idx, name) end + +--- @param surf_idx int +--- @return String +function ArrayMesh:surface_get_name(surf_idx) end + +function ArrayMesh:regen_normal_maps() end + +--- @param transform Transform3D +--- @param texel_size float +--- @return Error +function ArrayMesh:lightmap_unwrap(transform, texel_size) end + +--- @param aabb AABB +function ArrayMesh:set_custom_aabb(aabb) end + +--- @return AABB +function ArrayMesh:get_custom_aabb() end + +--- @param mesh ArrayMesh +function ArrayMesh:set_shadow_mesh(mesh) end + +--- @return ArrayMesh +function ArrayMesh:get_shadow_mesh() end + + +----------------------------------------------------------- +-- ArrayOccluder3D +----------------------------------------------------------- + +--- @class ArrayOccluder3D: Occluder3D, { [string]: any } +--- @field vertices PackedVector3Array +--- @field indices PackedInt32Array +ArrayOccluder3D = {} + +--- @return ArrayOccluder3D +function ArrayOccluder3D:new() end + +--- @param vertices PackedVector3Array +--- @param indices PackedInt32Array +function ArrayOccluder3D:set_arrays(vertices, indices) end + +--- @param vertices PackedVector3Array +function ArrayOccluder3D:set_vertices(vertices) end + +--- @param indices PackedInt32Array +function ArrayOccluder3D:set_indices(indices) end + + +----------------------------------------------------------- +-- AspectRatioContainer +----------------------------------------------------------- + +--- @class AspectRatioContainer: Container, { [string]: any } +--- @field ratio float +--- @field stretch_mode int +--- @field alignment_horizontal int +--- @field alignment_vertical int +AspectRatioContainer = {} + +--- @return AspectRatioContainer +function AspectRatioContainer:new() end + +--- @alias AspectRatioContainer.StretchMode `AspectRatioContainer.STRETCH_WIDTH_CONTROLS_HEIGHT` | `AspectRatioContainer.STRETCH_HEIGHT_CONTROLS_WIDTH` | `AspectRatioContainer.STRETCH_FIT` | `AspectRatioContainer.STRETCH_COVER` +AspectRatioContainer.STRETCH_WIDTH_CONTROLS_HEIGHT = 0 +AspectRatioContainer.STRETCH_HEIGHT_CONTROLS_WIDTH = 1 +AspectRatioContainer.STRETCH_FIT = 2 +AspectRatioContainer.STRETCH_COVER = 3 + +--- @alias AspectRatioContainer.AlignmentMode `AspectRatioContainer.ALIGNMENT_BEGIN` | `AspectRatioContainer.ALIGNMENT_CENTER` | `AspectRatioContainer.ALIGNMENT_END` +AspectRatioContainer.ALIGNMENT_BEGIN = 0 +AspectRatioContainer.ALIGNMENT_CENTER = 1 +AspectRatioContainer.ALIGNMENT_END = 2 + +--- @param ratio float +function AspectRatioContainer:set_ratio(ratio) end + +--- @return float +function AspectRatioContainer:get_ratio() end + +--- @param stretch_mode AspectRatioContainer.StretchMode +function AspectRatioContainer:set_stretch_mode(stretch_mode) end + +--- @return AspectRatioContainer.StretchMode +function AspectRatioContainer:get_stretch_mode() end + +--- @param alignment_horizontal AspectRatioContainer.AlignmentMode +function AspectRatioContainer:set_alignment_horizontal(alignment_horizontal) end + +--- @return AspectRatioContainer.AlignmentMode +function AspectRatioContainer:get_alignment_horizontal() end + +--- @param alignment_vertical AspectRatioContainer.AlignmentMode +function AspectRatioContainer:set_alignment_vertical(alignment_vertical) end + +--- @return AspectRatioContainer.AlignmentMode +function AspectRatioContainer:get_alignment_vertical() end + + +----------------------------------------------------------- +-- AtlasTexture +----------------------------------------------------------- + +--- @class AtlasTexture: Texture2D, { [string]: any } +--- @field atlas Texture2D +--- @field region Rect2 +--- @field margin Rect2 +--- @field filter_clip bool +AtlasTexture = {} + +--- @return AtlasTexture +function AtlasTexture:new() end + +--- @param atlas Texture2D +function AtlasTexture:set_atlas(atlas) end + +--- @return Texture2D +function AtlasTexture:get_atlas() end + +--- @param region Rect2 +function AtlasTexture:set_region(region) end + +--- @return Rect2 +function AtlasTexture:get_region() end + +--- @param margin Rect2 +function AtlasTexture:set_margin(margin) end + +--- @return Rect2 +function AtlasTexture:get_margin() end + +--- @param enable bool +function AtlasTexture:set_filter_clip(enable) end + +--- @return bool +function AtlasTexture:has_filter_clip() end + + +----------------------------------------------------------- +-- AudioBusLayout +----------------------------------------------------------- + +--- @class AudioBusLayout: Resource, { [string]: any } +AudioBusLayout = {} + +--- @return AudioBusLayout +function AudioBusLayout:new() end + + +----------------------------------------------------------- +-- AudioEffect +----------------------------------------------------------- + +--- @class AudioEffect: Resource, { [string]: any } +AudioEffect = {} + +--- @return AudioEffect +function AudioEffect:new() end + +--- @return AudioEffectInstance +function AudioEffect:_instantiate() end + + +----------------------------------------------------------- +-- AudioEffectAmplify +----------------------------------------------------------- + +--- @class AudioEffectAmplify: AudioEffect, { [string]: any } +--- @field volume_db float +--- @field volume_linear float +AudioEffectAmplify = {} + +--- @return AudioEffectAmplify +function AudioEffectAmplify:new() end + +--- @param volume float +function AudioEffectAmplify:set_volume_db(volume) end + +--- @return float +function AudioEffectAmplify:get_volume_db() end + +--- @param volume float +function AudioEffectAmplify:set_volume_linear(volume) end + +--- @return float +function AudioEffectAmplify:get_volume_linear() end + + +----------------------------------------------------------- +-- AudioEffectBandLimitFilter +----------------------------------------------------------- + +--- @class AudioEffectBandLimitFilter: AudioEffectFilter, { [string]: any } +AudioEffectBandLimitFilter = {} + +--- @return AudioEffectBandLimitFilter +function AudioEffectBandLimitFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectBandPassFilter +----------------------------------------------------------- + +--- @class AudioEffectBandPassFilter: AudioEffectFilter, { [string]: any } +AudioEffectBandPassFilter = {} + +--- @return AudioEffectBandPassFilter +function AudioEffectBandPassFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectCapture +----------------------------------------------------------- + +--- @class AudioEffectCapture: AudioEffect, { [string]: any } +--- @field buffer_length float +AudioEffectCapture = {} + +--- @return AudioEffectCapture +function AudioEffectCapture:new() end + +--- @param frames int +--- @return bool +function AudioEffectCapture:can_get_buffer(frames) end + +--- @param frames int +--- @return PackedVector2Array +function AudioEffectCapture:get_buffer(frames) end + +function AudioEffectCapture:clear_buffer() end + +--- @param buffer_length_seconds float +function AudioEffectCapture:set_buffer_length(buffer_length_seconds) end + +--- @return float +function AudioEffectCapture:get_buffer_length() end + +--- @return int +function AudioEffectCapture:get_frames_available() end + +--- @return int +function AudioEffectCapture:get_discarded_frames() end + +--- @return int +function AudioEffectCapture:get_buffer_length_frames() end + +--- @return int +function AudioEffectCapture:get_pushed_frames() end + + +----------------------------------------------------------- +-- AudioEffectChorus +----------------------------------------------------------- + +--- @class AudioEffectChorus: AudioEffect, { [string]: any } +--- @field voice_count int +--- @field dry float +--- @field wet float +AudioEffectChorus = {} + +--- @return AudioEffectChorus +function AudioEffectChorus:new() end + +--- @param voices int +function AudioEffectChorus:set_voice_count(voices) end + +--- @return int +function AudioEffectChorus:get_voice_count() end + +--- @param voice_idx int +--- @param delay_ms float +function AudioEffectChorus:set_voice_delay_ms(voice_idx, delay_ms) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_delay_ms(voice_idx) end + +--- @param voice_idx int +--- @param rate_hz float +function AudioEffectChorus:set_voice_rate_hz(voice_idx, rate_hz) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_rate_hz(voice_idx) end + +--- @param voice_idx int +--- @param depth_ms float +function AudioEffectChorus:set_voice_depth_ms(voice_idx, depth_ms) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_depth_ms(voice_idx) end + +--- @param voice_idx int +--- @param level_db float +function AudioEffectChorus:set_voice_level_db(voice_idx, level_db) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_level_db(voice_idx) end + +--- @param voice_idx int +--- @param cutoff_hz float +function AudioEffectChorus:set_voice_cutoff_hz(voice_idx, cutoff_hz) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_cutoff_hz(voice_idx) end + +--- @param voice_idx int +--- @param pan float +function AudioEffectChorus:set_voice_pan(voice_idx, pan) end + +--- @param voice_idx int +--- @return float +function AudioEffectChorus:get_voice_pan(voice_idx) end + +--- @param amount float +function AudioEffectChorus:set_wet(amount) end + +--- @return float +function AudioEffectChorus:get_wet() end + +--- @param amount float +function AudioEffectChorus:set_dry(amount) end + +--- @return float +function AudioEffectChorus:get_dry() end + + +----------------------------------------------------------- +-- AudioEffectCompressor +----------------------------------------------------------- + +--- @class AudioEffectCompressor: AudioEffect, { [string]: any } +--- @field threshold float +--- @field ratio float +--- @field gain float +--- @field attack_us float +--- @field release_ms float +--- @field mix float +--- @field sidechain StringName +AudioEffectCompressor = {} + +--- @return AudioEffectCompressor +function AudioEffectCompressor:new() end + +--- @param threshold float +function AudioEffectCompressor:set_threshold(threshold) end + +--- @return float +function AudioEffectCompressor:get_threshold() end + +--- @param ratio float +function AudioEffectCompressor:set_ratio(ratio) end + +--- @return float +function AudioEffectCompressor:get_ratio() end + +--- @param gain float +function AudioEffectCompressor:set_gain(gain) end + +--- @return float +function AudioEffectCompressor:get_gain() end + +--- @param attack_us float +function AudioEffectCompressor:set_attack_us(attack_us) end + +--- @return float +function AudioEffectCompressor:get_attack_us() end + +--- @param release_ms float +function AudioEffectCompressor:set_release_ms(release_ms) end + +--- @return float +function AudioEffectCompressor:get_release_ms() end + +--- @param mix float +function AudioEffectCompressor:set_mix(mix) end + +--- @return float +function AudioEffectCompressor:get_mix() end + +--- @param sidechain StringName +function AudioEffectCompressor:set_sidechain(sidechain) end + +--- @return StringName +function AudioEffectCompressor:get_sidechain() end + + +----------------------------------------------------------- +-- AudioEffectDelay +----------------------------------------------------------- + +--- @class AudioEffectDelay: AudioEffect, { [string]: any } +--- @field dry float +--- @field tap1_active bool +--- @field tap1_delay_ms float +--- @field tap1_level_db float +--- @field tap1_pan float +--- @field tap2_active bool +--- @field tap2_delay_ms float +--- @field tap2_level_db float +--- @field tap2_pan float +--- @field feedback_active bool +--- @field feedback_delay_ms float +--- @field feedback_level_db float +--- @field feedback_lowpass float +AudioEffectDelay = {} + +--- @return AudioEffectDelay +function AudioEffectDelay:new() end + +--- @param amount float +function AudioEffectDelay:set_dry(amount) end + +--- @return float +function AudioEffectDelay:get_dry() end + +--- @param amount bool +function AudioEffectDelay:set_tap1_active(amount) end + +--- @return bool +function AudioEffectDelay:is_tap1_active() end + +--- @param amount float +function AudioEffectDelay:set_tap1_delay_ms(amount) end + +--- @return float +function AudioEffectDelay:get_tap1_delay_ms() end + +--- @param amount float +function AudioEffectDelay:set_tap1_level_db(amount) end + +--- @return float +function AudioEffectDelay:get_tap1_level_db() end + +--- @param amount float +function AudioEffectDelay:set_tap1_pan(amount) end + +--- @return float +function AudioEffectDelay:get_tap1_pan() end + +--- @param amount bool +function AudioEffectDelay:set_tap2_active(amount) end + +--- @return bool +function AudioEffectDelay:is_tap2_active() end + +--- @param amount float +function AudioEffectDelay:set_tap2_delay_ms(amount) end + +--- @return float +function AudioEffectDelay:get_tap2_delay_ms() end + +--- @param amount float +function AudioEffectDelay:set_tap2_level_db(amount) end + +--- @return float +function AudioEffectDelay:get_tap2_level_db() end + +--- @param amount float +function AudioEffectDelay:set_tap2_pan(amount) end + +--- @return float +function AudioEffectDelay:get_tap2_pan() end + +--- @param amount bool +function AudioEffectDelay:set_feedback_active(amount) end + +--- @return bool +function AudioEffectDelay:is_feedback_active() end + +--- @param amount float +function AudioEffectDelay:set_feedback_delay_ms(amount) end + +--- @return float +function AudioEffectDelay:get_feedback_delay_ms() end + +--- @param amount float +function AudioEffectDelay:set_feedback_level_db(amount) end + +--- @return float +function AudioEffectDelay:get_feedback_level_db() end + +--- @param amount float +function AudioEffectDelay:set_feedback_lowpass(amount) end + +--- @return float +function AudioEffectDelay:get_feedback_lowpass() end + + +----------------------------------------------------------- +-- AudioEffectDistortion +----------------------------------------------------------- + +--- @class AudioEffectDistortion: AudioEffect, { [string]: any } +--- @field mode int +--- @field pre_gain float +--- @field keep_hf_hz float +--- @field drive float +--- @field post_gain float +AudioEffectDistortion = {} + +--- @return AudioEffectDistortion +function AudioEffectDistortion:new() end + +--- @alias AudioEffectDistortion.Mode `AudioEffectDistortion.MODE_CLIP` | `AudioEffectDistortion.MODE_ATAN` | `AudioEffectDistortion.MODE_LOFI` | `AudioEffectDistortion.MODE_OVERDRIVE` | `AudioEffectDistortion.MODE_WAVESHAPE` +AudioEffectDistortion.MODE_CLIP = 0 +AudioEffectDistortion.MODE_ATAN = 1 +AudioEffectDistortion.MODE_LOFI = 2 +AudioEffectDistortion.MODE_OVERDRIVE = 3 +AudioEffectDistortion.MODE_WAVESHAPE = 4 + +--- @param mode AudioEffectDistortion.Mode +function AudioEffectDistortion:set_mode(mode) end + +--- @return AudioEffectDistortion.Mode +function AudioEffectDistortion:get_mode() end + +--- @param pre_gain float +function AudioEffectDistortion:set_pre_gain(pre_gain) end + +--- @return float +function AudioEffectDistortion:get_pre_gain() end + +--- @param keep_hf_hz float +function AudioEffectDistortion:set_keep_hf_hz(keep_hf_hz) end + +--- @return float +function AudioEffectDistortion:get_keep_hf_hz() end + +--- @param drive float +function AudioEffectDistortion:set_drive(drive) end + +--- @return float +function AudioEffectDistortion:get_drive() end + +--- @param post_gain float +function AudioEffectDistortion:set_post_gain(post_gain) end + +--- @return float +function AudioEffectDistortion:get_post_gain() end + + +----------------------------------------------------------- +-- AudioEffectEQ +----------------------------------------------------------- + +--- @class AudioEffectEQ: AudioEffect, { [string]: any } +AudioEffectEQ = {} + +--- @return AudioEffectEQ +function AudioEffectEQ:new() end + +--- @param band_idx int +--- @param volume_db float +function AudioEffectEQ:set_band_gain_db(band_idx, volume_db) end + +--- @param band_idx int +--- @return float +function AudioEffectEQ:get_band_gain_db(band_idx) end + +--- @return int +function AudioEffectEQ:get_band_count() end + + +----------------------------------------------------------- +-- AudioEffectEQ10 +----------------------------------------------------------- + +--- @class AudioEffectEQ10: AudioEffectEQ, { [string]: any } +AudioEffectEQ10 = {} + +--- @return AudioEffectEQ10 +function AudioEffectEQ10:new() end + + +----------------------------------------------------------- +-- AudioEffectEQ21 +----------------------------------------------------------- + +--- @class AudioEffectEQ21: AudioEffectEQ, { [string]: any } +AudioEffectEQ21 = {} + +--- @return AudioEffectEQ21 +function AudioEffectEQ21:new() end + + +----------------------------------------------------------- +-- AudioEffectEQ6 +----------------------------------------------------------- + +--- @class AudioEffectEQ6: AudioEffectEQ, { [string]: any } +AudioEffectEQ6 = {} + +--- @return AudioEffectEQ6 +function AudioEffectEQ6:new() end + + +----------------------------------------------------------- +-- AudioEffectFilter +----------------------------------------------------------- + +--- @class AudioEffectFilter: AudioEffect, { [string]: any } +--- @field cutoff_hz float +--- @field resonance float +--- @field gain float +--- @field db int +AudioEffectFilter = {} + +--- @return AudioEffectFilter +function AudioEffectFilter:new() end + +--- @alias AudioEffectFilter.FilterDB `AudioEffectFilter.FILTER_6DB` | `AudioEffectFilter.FILTER_12DB` | `AudioEffectFilter.FILTER_18DB` | `AudioEffectFilter.FILTER_24DB` +AudioEffectFilter.FILTER_6DB = 0 +AudioEffectFilter.FILTER_12DB = 1 +AudioEffectFilter.FILTER_18DB = 2 +AudioEffectFilter.FILTER_24DB = 3 + +--- @param freq float +function AudioEffectFilter:set_cutoff(freq) end + +--- @return float +function AudioEffectFilter:get_cutoff() end + +--- @param amount float +function AudioEffectFilter:set_resonance(amount) end + +--- @return float +function AudioEffectFilter:get_resonance() end + +--- @param amount float +function AudioEffectFilter:set_gain(amount) end + +--- @return float +function AudioEffectFilter:get_gain() end + +--- @param amount AudioEffectFilter.FilterDB +function AudioEffectFilter:set_db(amount) end + +--- @return AudioEffectFilter.FilterDB +function AudioEffectFilter:get_db() end + + +----------------------------------------------------------- +-- AudioEffectHardLimiter +----------------------------------------------------------- + +--- @class AudioEffectHardLimiter: AudioEffect, { [string]: any } +--- @field pre_gain_db float +--- @field ceiling_db float +--- @field release float +AudioEffectHardLimiter = {} + +--- @return AudioEffectHardLimiter +function AudioEffectHardLimiter:new() end + +--- @param ceiling float +function AudioEffectHardLimiter:set_ceiling_db(ceiling) end + +--- @return float +function AudioEffectHardLimiter:get_ceiling_db() end + +--- @param p_pre_gain float +function AudioEffectHardLimiter:set_pre_gain_db(p_pre_gain) end + +--- @return float +function AudioEffectHardLimiter:get_pre_gain_db() end + +--- @param p_release float +function AudioEffectHardLimiter:set_release(p_release) end + +--- @return float +function AudioEffectHardLimiter:get_release() end + + +----------------------------------------------------------- +-- AudioEffectHighPassFilter +----------------------------------------------------------- + +--- @class AudioEffectHighPassFilter: AudioEffectFilter, { [string]: any } +AudioEffectHighPassFilter = {} + +--- @return AudioEffectHighPassFilter +function AudioEffectHighPassFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectHighShelfFilter +----------------------------------------------------------- + +--- @class AudioEffectHighShelfFilter: AudioEffectFilter, { [string]: any } +AudioEffectHighShelfFilter = {} + +--- @return AudioEffectHighShelfFilter +function AudioEffectHighShelfFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectInstance +----------------------------------------------------------- + +--- @class AudioEffectInstance: RefCounted, { [string]: any } +AudioEffectInstance = {} + +--- @return AudioEffectInstance +function AudioEffectInstance:new() end + +--- @param src_buffer const void* +--- @param dst_buffer AudioFrame* +--- @param frame_count int +function AudioEffectInstance:_process(src_buffer, dst_buffer, frame_count) end + +--- @return bool +function AudioEffectInstance:_process_silence() end + + +----------------------------------------------------------- +-- AudioEffectLimiter +----------------------------------------------------------- + +--- @class AudioEffectLimiter: AudioEffect, { [string]: any } +--- @field ceiling_db float +--- @field threshold_db float +--- @field soft_clip_db float +--- @field soft_clip_ratio float +AudioEffectLimiter = {} + +--- @return AudioEffectLimiter +function AudioEffectLimiter:new() end + +--- @param ceiling float +function AudioEffectLimiter:set_ceiling_db(ceiling) end + +--- @return float +function AudioEffectLimiter:get_ceiling_db() end + +--- @param threshold float +function AudioEffectLimiter:set_threshold_db(threshold) end + +--- @return float +function AudioEffectLimiter:get_threshold_db() end + +--- @param soft_clip float +function AudioEffectLimiter:set_soft_clip_db(soft_clip) end + +--- @return float +function AudioEffectLimiter:get_soft_clip_db() end + +--- @param soft_clip float +function AudioEffectLimiter:set_soft_clip_ratio(soft_clip) end + +--- @return float +function AudioEffectLimiter:get_soft_clip_ratio() end + + +----------------------------------------------------------- +-- AudioEffectLowPassFilter +----------------------------------------------------------- + +--- @class AudioEffectLowPassFilter: AudioEffectFilter, { [string]: any } +AudioEffectLowPassFilter = {} + +--- @return AudioEffectLowPassFilter +function AudioEffectLowPassFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectLowShelfFilter +----------------------------------------------------------- + +--- @class AudioEffectLowShelfFilter: AudioEffectFilter, { [string]: any } +AudioEffectLowShelfFilter = {} + +--- @return AudioEffectLowShelfFilter +function AudioEffectLowShelfFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectNotchFilter +----------------------------------------------------------- + +--- @class AudioEffectNotchFilter: AudioEffectFilter, { [string]: any } +AudioEffectNotchFilter = {} + +--- @return AudioEffectNotchFilter +function AudioEffectNotchFilter:new() end + + +----------------------------------------------------------- +-- AudioEffectPanner +----------------------------------------------------------- + +--- @class AudioEffectPanner: AudioEffect, { [string]: any } +--- @field pan float +AudioEffectPanner = {} + +--- @return AudioEffectPanner +function AudioEffectPanner:new() end + +--- @param cpanume float +function AudioEffectPanner:set_pan(cpanume) end + +--- @return float +function AudioEffectPanner:get_pan() end + + +----------------------------------------------------------- +-- AudioEffectPhaser +----------------------------------------------------------- + +--- @class AudioEffectPhaser: AudioEffect, { [string]: any } +--- @field range_min_hz float +--- @field range_max_hz float +--- @field rate_hz float +--- @field feedback float +--- @field depth float +AudioEffectPhaser = {} + +--- @return AudioEffectPhaser +function AudioEffectPhaser:new() end + +--- @param hz float +function AudioEffectPhaser:set_range_min_hz(hz) end + +--- @return float +function AudioEffectPhaser:get_range_min_hz() end + +--- @param hz float +function AudioEffectPhaser:set_range_max_hz(hz) end + +--- @return float +function AudioEffectPhaser:get_range_max_hz() end + +--- @param hz float +function AudioEffectPhaser:set_rate_hz(hz) end + +--- @return float +function AudioEffectPhaser:get_rate_hz() end + +--- @param fbk float +function AudioEffectPhaser:set_feedback(fbk) end + +--- @return float +function AudioEffectPhaser:get_feedback() end + +--- @param depth float +function AudioEffectPhaser:set_depth(depth) end + +--- @return float +function AudioEffectPhaser:get_depth() end + + +----------------------------------------------------------- +-- AudioEffectPitchShift +----------------------------------------------------------- + +--- @class AudioEffectPitchShift: AudioEffect, { [string]: any } +--- @field pitch_scale float +--- @field oversampling float +--- @field fft_size int +AudioEffectPitchShift = {} + +--- @return AudioEffectPitchShift +function AudioEffectPitchShift:new() end + +--- @alias AudioEffectPitchShift.FFTSize `AudioEffectPitchShift.FFT_SIZE_256` | `AudioEffectPitchShift.FFT_SIZE_512` | `AudioEffectPitchShift.FFT_SIZE_1024` | `AudioEffectPitchShift.FFT_SIZE_2048` | `AudioEffectPitchShift.FFT_SIZE_4096` | `AudioEffectPitchShift.FFT_SIZE_MAX` +AudioEffectPitchShift.FFT_SIZE_256 = 0 +AudioEffectPitchShift.FFT_SIZE_512 = 1 +AudioEffectPitchShift.FFT_SIZE_1024 = 2 +AudioEffectPitchShift.FFT_SIZE_2048 = 3 +AudioEffectPitchShift.FFT_SIZE_4096 = 4 +AudioEffectPitchShift.FFT_SIZE_MAX = 5 + +--- @param rate float +function AudioEffectPitchShift:set_pitch_scale(rate) end + +--- @return float +function AudioEffectPitchShift:get_pitch_scale() end + +--- @param amount int +function AudioEffectPitchShift:set_oversampling(amount) end + +--- @return int +function AudioEffectPitchShift:get_oversampling() end + +--- @param size AudioEffectPitchShift.FFTSize +function AudioEffectPitchShift:set_fft_size(size) end + +--- @return AudioEffectPitchShift.FFTSize +function AudioEffectPitchShift:get_fft_size() end + + +----------------------------------------------------------- +-- AudioEffectRecord +----------------------------------------------------------- + +--- @class AudioEffectRecord: AudioEffect, { [string]: any } +--- @field format int +AudioEffectRecord = {} + +--- @return AudioEffectRecord +function AudioEffectRecord:new() end + +--- @param record bool +function AudioEffectRecord:set_recording_active(record) end + +--- @return bool +function AudioEffectRecord:is_recording_active() end + +--- @param format AudioStreamWAV.Format +function AudioEffectRecord:set_format(format) end + +--- @return AudioStreamWAV.Format +function AudioEffectRecord:get_format() end + +--- @return AudioStreamWAV +function AudioEffectRecord:get_recording() end + + +----------------------------------------------------------- +-- AudioEffectReverb +----------------------------------------------------------- + +--- @class AudioEffectReverb: AudioEffect, { [string]: any } +--- @field predelay_msec float +--- @field predelay_feedback float +--- @field room_size float +--- @field damping float +--- @field spread float +--- @field hipass float +--- @field dry float +--- @field wet float +AudioEffectReverb = {} + +--- @return AudioEffectReverb +function AudioEffectReverb:new() end + +--- @param msec float +function AudioEffectReverb:set_predelay_msec(msec) end + +--- @return float +function AudioEffectReverb:get_predelay_msec() end + +--- @param feedback float +function AudioEffectReverb:set_predelay_feedback(feedback) end + +--- @return float +function AudioEffectReverb:get_predelay_feedback() end + +--- @param size float +function AudioEffectReverb:set_room_size(size) end + +--- @return float +function AudioEffectReverb:get_room_size() end + +--- @param amount float +function AudioEffectReverb:set_damping(amount) end + +--- @return float +function AudioEffectReverb:get_damping() end + +--- @param amount float +function AudioEffectReverb:set_spread(amount) end + +--- @return float +function AudioEffectReverb:get_spread() end + +--- @param amount float +function AudioEffectReverb:set_dry(amount) end + +--- @return float +function AudioEffectReverb:get_dry() end + +--- @param amount float +function AudioEffectReverb:set_wet(amount) end + +--- @return float +function AudioEffectReverb:get_wet() end + +--- @param amount float +function AudioEffectReverb:set_hpf(amount) end + +--- @return float +function AudioEffectReverb:get_hpf() end + + +----------------------------------------------------------- +-- AudioEffectSpectrumAnalyzer +----------------------------------------------------------- + +--- @class AudioEffectSpectrumAnalyzer: AudioEffect, { [string]: any } +--- @field buffer_length float +--- @field tap_back_pos float +--- @field fft_size int +AudioEffectSpectrumAnalyzer = {} + +--- @return AudioEffectSpectrumAnalyzer +function AudioEffectSpectrumAnalyzer:new() end + +--- @alias AudioEffectSpectrumAnalyzer.FFTSize `AudioEffectSpectrumAnalyzer.FFT_SIZE_256` | `AudioEffectSpectrumAnalyzer.FFT_SIZE_512` | `AudioEffectSpectrumAnalyzer.FFT_SIZE_1024` | `AudioEffectSpectrumAnalyzer.FFT_SIZE_2048` | `AudioEffectSpectrumAnalyzer.FFT_SIZE_4096` | `AudioEffectSpectrumAnalyzer.FFT_SIZE_MAX` +AudioEffectSpectrumAnalyzer.FFT_SIZE_256 = 0 +AudioEffectSpectrumAnalyzer.FFT_SIZE_512 = 1 +AudioEffectSpectrumAnalyzer.FFT_SIZE_1024 = 2 +AudioEffectSpectrumAnalyzer.FFT_SIZE_2048 = 3 +AudioEffectSpectrumAnalyzer.FFT_SIZE_4096 = 4 +AudioEffectSpectrumAnalyzer.FFT_SIZE_MAX = 5 + +--- @param seconds float +function AudioEffectSpectrumAnalyzer:set_buffer_length(seconds) end + +--- @return float +function AudioEffectSpectrumAnalyzer:get_buffer_length() end + +--- @param seconds float +function AudioEffectSpectrumAnalyzer:set_tap_back_pos(seconds) end + +--- @return float +function AudioEffectSpectrumAnalyzer:get_tap_back_pos() end + +--- @param size AudioEffectSpectrumAnalyzer.FFTSize +function AudioEffectSpectrumAnalyzer:set_fft_size(size) end + +--- @return AudioEffectSpectrumAnalyzer.FFTSize +function AudioEffectSpectrumAnalyzer:get_fft_size() end + + +----------------------------------------------------------- +-- AudioEffectSpectrumAnalyzerInstance +----------------------------------------------------------- + +--- @class AudioEffectSpectrumAnalyzerInstance: AudioEffectInstance, { [string]: any } +AudioEffectSpectrumAnalyzerInstance = {} + +--- @alias AudioEffectSpectrumAnalyzerInstance.MagnitudeMode `AudioEffectSpectrumAnalyzerInstance.MAGNITUDE_AVERAGE` | `AudioEffectSpectrumAnalyzerInstance.MAGNITUDE_MAX` +AudioEffectSpectrumAnalyzerInstance.MAGNITUDE_AVERAGE = 0 +AudioEffectSpectrumAnalyzerInstance.MAGNITUDE_MAX = 1 + +--- @param from_hz float +--- @param to_hz float +--- @param mode AudioEffectSpectrumAnalyzerInstance.MagnitudeMode? Default: 1 +--- @return Vector2 +function AudioEffectSpectrumAnalyzerInstance:get_magnitude_for_frequency_range(from_hz, to_hz, mode) end + + +----------------------------------------------------------- +-- AudioEffectStereoEnhance +----------------------------------------------------------- + +--- @class AudioEffectStereoEnhance: AudioEffect, { [string]: any } +--- @field pan_pullout float +--- @field time_pullout_ms float +--- @field surround float +AudioEffectStereoEnhance = {} + +--- @return AudioEffectStereoEnhance +function AudioEffectStereoEnhance:new() end + +--- @param amount float +function AudioEffectStereoEnhance:set_pan_pullout(amount) end + +--- @return float +function AudioEffectStereoEnhance:get_pan_pullout() end + +--- @param amount float +function AudioEffectStereoEnhance:set_time_pullout(amount) end + +--- @return float +function AudioEffectStereoEnhance:get_time_pullout() end + +--- @param amount float +function AudioEffectStereoEnhance:set_surround(amount) end + +--- @return float +function AudioEffectStereoEnhance:get_surround() end + + +----------------------------------------------------------- +-- AudioListener2D +----------------------------------------------------------- + +--- @class AudioListener2D: Node2D, { [string]: any } +AudioListener2D = {} + +--- @return AudioListener2D +function AudioListener2D:new() end + +function AudioListener2D:make_current() end + +function AudioListener2D:clear_current() end + +--- @return bool +function AudioListener2D:is_current() end + + +----------------------------------------------------------- +-- AudioListener3D +----------------------------------------------------------- + +--- @class AudioListener3D: Node3D, { [string]: any } +--- @field doppler_tracking int +AudioListener3D = {} + +--- @return AudioListener3D +function AudioListener3D:new() end + +--- @alias AudioListener3D.DopplerTracking `AudioListener3D.DOPPLER_TRACKING_DISABLED` | `AudioListener3D.DOPPLER_TRACKING_IDLE_STEP` | `AudioListener3D.DOPPLER_TRACKING_PHYSICS_STEP` +AudioListener3D.DOPPLER_TRACKING_DISABLED = 0 +AudioListener3D.DOPPLER_TRACKING_IDLE_STEP = 1 +AudioListener3D.DOPPLER_TRACKING_PHYSICS_STEP = 2 + +function AudioListener3D:make_current() end + +function AudioListener3D:clear_current() end + +--- @return bool +function AudioListener3D:is_current() end + +--- @return Transform3D +function AudioListener3D:get_listener_transform() end + +--- @param mode AudioListener3D.DopplerTracking +function AudioListener3D:set_doppler_tracking(mode) end + +--- @return AudioListener3D.DopplerTracking +function AudioListener3D:get_doppler_tracking() end + + +----------------------------------------------------------- +-- AudioSample +----------------------------------------------------------- + +--- @class AudioSample: RefCounted, { [string]: any } +AudioSample = {} + +--- @return AudioSample +function AudioSample:new() end + + +----------------------------------------------------------- +-- AudioSamplePlayback +----------------------------------------------------------- + +--- @class AudioSamplePlayback: RefCounted, { [string]: any } +AudioSamplePlayback = {} + +--- @return AudioSamplePlayback +function AudioSamplePlayback:new() end + + +----------------------------------------------------------- +-- AudioServer +----------------------------------------------------------- + +--- @class AudioServer: Object, { [string]: any } +--- @field bus_count int +--- @field output_device String +--- @field input_device String +--- @field playback_speed_scale float +AudioServer = {} + +--- @alias AudioServer.SpeakerMode `AudioServer.SPEAKER_MODE_STEREO` | `AudioServer.SPEAKER_SURROUND_31` | `AudioServer.SPEAKER_SURROUND_51` | `AudioServer.SPEAKER_SURROUND_71` +AudioServer.SPEAKER_MODE_STEREO = 0 +AudioServer.SPEAKER_SURROUND_31 = 1 +AudioServer.SPEAKER_SURROUND_51 = 2 +AudioServer.SPEAKER_SURROUND_71 = 3 + +--- @alias AudioServer.PlaybackType `AudioServer.PLAYBACK_TYPE_DEFAULT` | `AudioServer.PLAYBACK_TYPE_STREAM` | `AudioServer.PLAYBACK_TYPE_SAMPLE` | `AudioServer.PLAYBACK_TYPE_MAX` +AudioServer.PLAYBACK_TYPE_DEFAULT = 0 +AudioServer.PLAYBACK_TYPE_STREAM = 1 +AudioServer.PLAYBACK_TYPE_SAMPLE = 2 +AudioServer.PLAYBACK_TYPE_MAX = 3 + +AudioServer.bus_layout_changed = Signal() +AudioServer.bus_renamed = Signal() + +--- @param amount int +function AudioServer:set_bus_count(amount) end + +--- @return int +function AudioServer:get_bus_count() end + +--- @param index int +function AudioServer:remove_bus(index) end + +--- @param at_position int? Default: -1 +function AudioServer:add_bus(at_position) end + +--- @param index int +--- @param to_index int +function AudioServer:move_bus(index, to_index) end + +--- @param bus_idx int +--- @param name String +function AudioServer:set_bus_name(bus_idx, name) end + +--- @param bus_idx int +--- @return String +function AudioServer:get_bus_name(bus_idx) end + +--- @param bus_name StringName +--- @return int +function AudioServer:get_bus_index(bus_name) end + +--- @param bus_idx int +--- @return int +function AudioServer:get_bus_channels(bus_idx) end + +--- @param bus_idx int +--- @param volume_db float +function AudioServer:set_bus_volume_db(bus_idx, volume_db) end + +--- @param bus_idx int +--- @return float +function AudioServer:get_bus_volume_db(bus_idx) end + +--- @param bus_idx int +--- @param volume_linear float +function AudioServer:set_bus_volume_linear(bus_idx, volume_linear) end + +--- @param bus_idx int +--- @return float +function AudioServer:get_bus_volume_linear(bus_idx) end + +--- @param bus_idx int +--- @param send StringName +function AudioServer:set_bus_send(bus_idx, send) end + +--- @param bus_idx int +--- @return StringName +function AudioServer:get_bus_send(bus_idx) end + +--- @param bus_idx int +--- @param enable bool +function AudioServer:set_bus_solo(bus_idx, enable) end + +--- @param bus_idx int +--- @return bool +function AudioServer:is_bus_solo(bus_idx) end + +--- @param bus_idx int +--- @param enable bool +function AudioServer:set_bus_mute(bus_idx, enable) end + +--- @param bus_idx int +--- @return bool +function AudioServer:is_bus_mute(bus_idx) end + +--- @param bus_idx int +--- @param enable bool +function AudioServer:set_bus_bypass_effects(bus_idx, enable) end + +--- @param bus_idx int +--- @return bool +function AudioServer:is_bus_bypassing_effects(bus_idx) end + +--- @param bus_idx int +--- @param effect AudioEffect +--- @param at_position int? Default: -1 +function AudioServer:add_bus_effect(bus_idx, effect, at_position) end + +--- @param bus_idx int +--- @param effect_idx int +function AudioServer:remove_bus_effect(bus_idx, effect_idx) end + +--- @param bus_idx int +--- @return int +function AudioServer:get_bus_effect_count(bus_idx) end + +--- @param bus_idx int +--- @param effect_idx int +--- @return AudioEffect +function AudioServer:get_bus_effect(bus_idx, effect_idx) end + +--- @param bus_idx int +--- @param effect_idx int +--- @param channel int? Default: 0 +--- @return AudioEffectInstance +function AudioServer:get_bus_effect_instance(bus_idx, effect_idx, channel) end + +--- @param bus_idx int +--- @param effect_idx int +--- @param by_effect_idx int +function AudioServer:swap_bus_effects(bus_idx, effect_idx, by_effect_idx) end + +--- @param bus_idx int +--- @param effect_idx int +--- @param enabled bool +function AudioServer:set_bus_effect_enabled(bus_idx, effect_idx, enabled) end + +--- @param bus_idx int +--- @param effect_idx int +--- @return bool +function AudioServer:is_bus_effect_enabled(bus_idx, effect_idx) end + +--- @param bus_idx int +--- @param channel int +--- @return float +function AudioServer:get_bus_peak_volume_left_db(bus_idx, channel) end + +--- @param bus_idx int +--- @param channel int +--- @return float +function AudioServer:get_bus_peak_volume_right_db(bus_idx, channel) end + +--- @param scale float +function AudioServer:set_playback_speed_scale(scale) end + +--- @return float +function AudioServer:get_playback_speed_scale() end + +function AudioServer:lock() end + +function AudioServer:unlock() end + +--- @return AudioServer.SpeakerMode +function AudioServer:get_speaker_mode() end + +--- @return float +function AudioServer:get_mix_rate() end + +--- @return float +function AudioServer:get_input_mix_rate() end + +--- @return String +function AudioServer:get_driver_name() end + +--- @return PackedStringArray +function AudioServer:get_output_device_list() end + +--- @return String +function AudioServer:get_output_device() end + +--- @param name String +function AudioServer:set_output_device(name) end + +--- @return float +function AudioServer:get_time_to_next_mix() end + +--- @return float +function AudioServer:get_time_since_last_mix() end + +--- @return float +function AudioServer:get_output_latency() end + +--- @return PackedStringArray +function AudioServer:get_input_device_list() end + +--- @return String +function AudioServer:get_input_device() end + +--- @param name String +function AudioServer:set_input_device(name) end + +--- @param bus_layout AudioBusLayout +function AudioServer:set_bus_layout(bus_layout) end + +--- @return AudioBusLayout +function AudioServer:generate_bus_layout() end + +--- @param enable bool +function AudioServer:set_enable_tagging_used_audio_streams(enable) end + +--- @param stream AudioStream +--- @return bool +function AudioServer:is_stream_registered_as_sample(stream) end + +--- @param stream AudioStream +function AudioServer:register_stream_as_sample(stream) end + + +----------------------------------------------------------- +-- AudioStream +----------------------------------------------------------- + +--- @class AudioStream: Resource, { [string]: any } +AudioStream = {} + +--- @return AudioStream +function AudioStream:new() end + +AudioStream.parameter_list_changed = Signal() + +--- @return AudioStreamPlayback +function AudioStream:_instantiate_playback() end + +--- @return String +function AudioStream:_get_stream_name() end + +--- @return float +function AudioStream:_get_length() end + +--- @return bool +function AudioStream:_is_monophonic() end + +--- @return float +function AudioStream:_get_bpm() end + +--- @return int +function AudioStream:_get_beat_count() end + +--- @return Dictionary +function AudioStream:_get_tags() end + +--- @return Array[Dictionary] +function AudioStream:_get_parameter_list() end + +--- @return bool +function AudioStream:_has_loop() end + +--- @return int +function AudioStream:_get_bar_beats() end + +--- @return float +function AudioStream:get_length() end + +--- @return bool +function AudioStream:is_monophonic() end + +--- @return AudioStreamPlayback +function AudioStream:instantiate_playback() end + +--- @return bool +function AudioStream:can_be_sampled() end + +--- @return AudioSample +function AudioStream:generate_sample() end + +--- @return bool +function AudioStream:is_meta_stream() end + + +----------------------------------------------------------- +-- AudioStreamGenerator +----------------------------------------------------------- + +--- @class AudioStreamGenerator: AudioStream, { [string]: any } +--- @field mix_rate_mode int +--- @field mix_rate float +--- @field buffer_length float +AudioStreamGenerator = {} + +--- @return AudioStreamGenerator +function AudioStreamGenerator:new() end + +--- @alias AudioStreamGenerator.AudioStreamGeneratorMixRate `AudioStreamGenerator.MIX_RATE_OUTPUT` | `AudioStreamGenerator.MIX_RATE_INPUT` | `AudioStreamGenerator.MIX_RATE_CUSTOM` | `AudioStreamGenerator.MIX_RATE_MAX` +AudioStreamGenerator.MIX_RATE_OUTPUT = 0 +AudioStreamGenerator.MIX_RATE_INPUT = 1 +AudioStreamGenerator.MIX_RATE_CUSTOM = 2 +AudioStreamGenerator.MIX_RATE_MAX = 3 + +--- @param hz float +function AudioStreamGenerator:set_mix_rate(hz) end + +--- @return float +function AudioStreamGenerator:get_mix_rate() end + +--- @param mode AudioStreamGenerator.AudioStreamGeneratorMixRate +function AudioStreamGenerator:set_mix_rate_mode(mode) end + +--- @return AudioStreamGenerator.AudioStreamGeneratorMixRate +function AudioStreamGenerator:get_mix_rate_mode() end + +--- @param seconds float +function AudioStreamGenerator:set_buffer_length(seconds) end + +--- @return float +function AudioStreamGenerator:get_buffer_length() end + + +----------------------------------------------------------- +-- AudioStreamGeneratorPlayback +----------------------------------------------------------- + +--- @class AudioStreamGeneratorPlayback: AudioStreamPlaybackResampled, { [string]: any } +AudioStreamGeneratorPlayback = {} + +--- @param frame Vector2 +--- @return bool +function AudioStreamGeneratorPlayback:push_frame(frame) end + +--- @param amount int +--- @return bool +function AudioStreamGeneratorPlayback:can_push_buffer(amount) end + +--- @param frames PackedVector2Array +--- @return bool +function AudioStreamGeneratorPlayback:push_buffer(frames) end + +--- @return int +function AudioStreamGeneratorPlayback:get_frames_available() end + +--- @return int +function AudioStreamGeneratorPlayback:get_skips() end + +function AudioStreamGeneratorPlayback:clear_buffer() end + + +----------------------------------------------------------- +-- AudioStreamInteractive +----------------------------------------------------------- + +--- @class AudioStreamInteractive: AudioStream, { [string]: any } +--- @field clip_count int +--- @field initial_clip int +AudioStreamInteractive = {} + +--- @return AudioStreamInteractive +function AudioStreamInteractive:new() end + +AudioStreamInteractive.CLIP_ANY = -1 + +--- @alias AudioStreamInteractive.TransitionFromTime `AudioStreamInteractive.TRANSITION_FROM_TIME_IMMEDIATE` | `AudioStreamInteractive.TRANSITION_FROM_TIME_NEXT_BEAT` | `AudioStreamInteractive.TRANSITION_FROM_TIME_NEXT_BAR` | `AudioStreamInteractive.TRANSITION_FROM_TIME_END` +AudioStreamInteractive.TRANSITION_FROM_TIME_IMMEDIATE = 0 +AudioStreamInteractive.TRANSITION_FROM_TIME_NEXT_BEAT = 1 +AudioStreamInteractive.TRANSITION_FROM_TIME_NEXT_BAR = 2 +AudioStreamInteractive.TRANSITION_FROM_TIME_END = 3 + +--- @alias AudioStreamInteractive.TransitionToTime `AudioStreamInteractive.TRANSITION_TO_TIME_SAME_POSITION` | `AudioStreamInteractive.TRANSITION_TO_TIME_START` +AudioStreamInteractive.TRANSITION_TO_TIME_SAME_POSITION = 0 +AudioStreamInteractive.TRANSITION_TO_TIME_START = 1 + +--- @alias AudioStreamInteractive.FadeMode `AudioStreamInteractive.FADE_DISABLED` | `AudioStreamInteractive.FADE_IN` | `AudioStreamInteractive.FADE_OUT` | `AudioStreamInteractive.FADE_CROSS` | `AudioStreamInteractive.FADE_AUTOMATIC` +AudioStreamInteractive.FADE_DISABLED = 0 +AudioStreamInteractive.FADE_IN = 1 +AudioStreamInteractive.FADE_OUT = 2 +AudioStreamInteractive.FADE_CROSS = 3 +AudioStreamInteractive.FADE_AUTOMATIC = 4 + +--- @alias AudioStreamInteractive.AutoAdvanceMode `AudioStreamInteractive.AUTO_ADVANCE_DISABLED` | `AudioStreamInteractive.AUTO_ADVANCE_ENABLED` | `AudioStreamInteractive.AUTO_ADVANCE_RETURN_TO_HOLD` +AudioStreamInteractive.AUTO_ADVANCE_DISABLED = 0 +AudioStreamInteractive.AUTO_ADVANCE_ENABLED = 1 +AudioStreamInteractive.AUTO_ADVANCE_RETURN_TO_HOLD = 2 + +--- @param clip_count int +function AudioStreamInteractive:set_clip_count(clip_count) end + +--- @return int +function AudioStreamInteractive:get_clip_count() end + +--- @param clip_index int +function AudioStreamInteractive:set_initial_clip(clip_index) end + +--- @return int +function AudioStreamInteractive:get_initial_clip() end + +--- @param clip_index int +--- @param name StringName +function AudioStreamInteractive:set_clip_name(clip_index, name) end + +--- @param clip_index int +--- @return StringName +function AudioStreamInteractive:get_clip_name(clip_index) end + +--- @param clip_index int +--- @param stream AudioStream +function AudioStreamInteractive:set_clip_stream(clip_index, stream) end + +--- @param clip_index int +--- @return AudioStream +function AudioStreamInteractive:get_clip_stream(clip_index) end + +--- @param clip_index int +--- @param mode AudioStreamInteractive.AutoAdvanceMode +function AudioStreamInteractive:set_clip_auto_advance(clip_index, mode) end + +--- @param clip_index int +--- @return AudioStreamInteractive.AutoAdvanceMode +function AudioStreamInteractive:get_clip_auto_advance(clip_index) end + +--- @param clip_index int +--- @param auto_advance_next_clip int +function AudioStreamInteractive:set_clip_auto_advance_next_clip(clip_index, auto_advance_next_clip) end + +--- @param clip_index int +--- @return int +function AudioStreamInteractive:get_clip_auto_advance_next_clip(clip_index) end + +--- @param from_clip int +--- @param to_clip int +--- @param from_time AudioStreamInteractive.TransitionFromTime +--- @param to_time AudioStreamInteractive.TransitionToTime +--- @param fade_mode AudioStreamInteractive.FadeMode +--- @param fade_beats float +--- @param use_filler_clip bool? Default: false +--- @param filler_clip int? Default: -1 +--- @param hold_previous bool? Default: false +function AudioStreamInteractive:add_transition(from_clip, to_clip, from_time, to_time, fade_mode, fade_beats, use_filler_clip, filler_clip, hold_previous) end + +--- @param from_clip int +--- @param to_clip int +--- @return bool +function AudioStreamInteractive:has_transition(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +function AudioStreamInteractive:erase_transition(from_clip, to_clip) end + +--- @return PackedInt32Array +function AudioStreamInteractive:get_transition_list() end + +--- @param from_clip int +--- @param to_clip int +--- @return AudioStreamInteractive.TransitionFromTime +function AudioStreamInteractive:get_transition_from_time(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return AudioStreamInteractive.TransitionToTime +function AudioStreamInteractive:get_transition_to_time(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return AudioStreamInteractive.FadeMode +function AudioStreamInteractive:get_transition_fade_mode(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return float +function AudioStreamInteractive:get_transition_fade_beats(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return bool +function AudioStreamInteractive:is_transition_using_filler_clip(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return int +function AudioStreamInteractive:get_transition_filler_clip(from_clip, to_clip) end + +--- @param from_clip int +--- @param to_clip int +--- @return bool +function AudioStreamInteractive:is_transition_holding_previous(from_clip, to_clip) end + + +----------------------------------------------------------- +-- AudioStreamMP3 +----------------------------------------------------------- + +--- @class AudioStreamMP3: AudioStream, { [string]: any } +--- @field data PackedByteArray +--- @field bpm float +--- @field beat_count int +--- @field bar_beats int +--- @field loop bool +--- @field loop_offset float +AudioStreamMP3 = {} + +--- @return AudioStreamMP3 +function AudioStreamMP3:new() end + +--- static +--- @param stream_data PackedByteArray +--- @return AudioStreamMP3 +function AudioStreamMP3:load_from_buffer(stream_data) end + +--- static +--- @param path String +--- @return AudioStreamMP3 +function AudioStreamMP3:load_from_file(path) end + +--- @param data PackedByteArray +function AudioStreamMP3:set_data(data) end + +--- @return PackedByteArray +function AudioStreamMP3:get_data() end + +--- @param enable bool +function AudioStreamMP3:set_loop(enable) end + +--- @return bool +function AudioStreamMP3:has_loop() end + +--- @param seconds float +function AudioStreamMP3:set_loop_offset(seconds) end + +--- @return float +function AudioStreamMP3:get_loop_offset() end + +--- @param bpm float +function AudioStreamMP3:set_bpm(bpm) end + +--- @return float +function AudioStreamMP3:get_bpm() end + +--- @param count int +function AudioStreamMP3:set_beat_count(count) end + +--- @return int +function AudioStreamMP3:get_beat_count() end + +--- @param count int +function AudioStreamMP3:set_bar_beats(count) end + +--- @return int +function AudioStreamMP3:get_bar_beats() end + + +----------------------------------------------------------- +-- AudioStreamMicrophone +----------------------------------------------------------- + +--- @class AudioStreamMicrophone: AudioStream, { [string]: any } +AudioStreamMicrophone = {} + +--- @return AudioStreamMicrophone +function AudioStreamMicrophone:new() end + + +----------------------------------------------------------- +-- AudioStreamOggVorbis +----------------------------------------------------------- + +--- @class AudioStreamOggVorbis: AudioStream, { [string]: any } +--- @field packet_sequence Object +--- @field bpm float +--- @field beat_count int +--- @field bar_beats int +--- @field tags Dictionary +--- @field loop bool +--- @field loop_offset float +AudioStreamOggVorbis = {} + +--- @return AudioStreamOggVorbis +function AudioStreamOggVorbis:new() end + +--- static +--- @param stream_data PackedByteArray +--- @return AudioStreamOggVorbis +function AudioStreamOggVorbis:load_from_buffer(stream_data) end + +--- static +--- @param path String +--- @return AudioStreamOggVorbis +function AudioStreamOggVorbis:load_from_file(path) end + +--- @param packet_sequence OggPacketSequence +function AudioStreamOggVorbis:set_packet_sequence(packet_sequence) end + +--- @return OggPacketSequence +function AudioStreamOggVorbis:get_packet_sequence() end + +--- @param enable bool +function AudioStreamOggVorbis:set_loop(enable) end + +--- @return bool +function AudioStreamOggVorbis:has_loop() end + +--- @param seconds float +function AudioStreamOggVorbis:set_loop_offset(seconds) end + +--- @return float +function AudioStreamOggVorbis:get_loop_offset() end + +--- @param bpm float +function AudioStreamOggVorbis:set_bpm(bpm) end + +--- @return float +function AudioStreamOggVorbis:get_bpm() end + +--- @param count int +function AudioStreamOggVorbis:set_beat_count(count) end + +--- @return int +function AudioStreamOggVorbis:get_beat_count() end + +--- @param count int +function AudioStreamOggVorbis:set_bar_beats(count) end + +--- @return int +function AudioStreamOggVorbis:get_bar_beats() end + +--- @param tags Dictionary +function AudioStreamOggVorbis:set_tags(tags) end + +--- @return Dictionary +function AudioStreamOggVorbis:get_tags() end + + +----------------------------------------------------------- +-- AudioStreamPlayback +----------------------------------------------------------- + +--- @class AudioStreamPlayback: RefCounted, { [string]: any } +AudioStreamPlayback = {} + +--- @return AudioStreamPlayback +function AudioStreamPlayback:new() end + +--- @param from_pos float +function AudioStreamPlayback:_start(from_pos) end + +function AudioStreamPlayback:_stop() end + +--- @return bool +function AudioStreamPlayback:_is_playing() end + +--- @return int +function AudioStreamPlayback:_get_loop_count() end + +--- @return float +function AudioStreamPlayback:_get_playback_position() end + +--- @param position float +function AudioStreamPlayback:_seek(position) end + +--- @param buffer AudioFrame* +--- @param rate_scale float +--- @param frames int +--- @return int +function AudioStreamPlayback:_mix(buffer, rate_scale, frames) end + +function AudioStreamPlayback:_tag_used_streams() end + +--- @param name StringName +--- @param value any +function AudioStreamPlayback:_set_parameter(name, value) end + +--- @param name StringName +--- @return any +function AudioStreamPlayback:_get_parameter(name) end + +--- @param playback_sample AudioSamplePlayback +function AudioStreamPlayback:set_sample_playback(playback_sample) end + +--- @return AudioSamplePlayback +function AudioStreamPlayback:get_sample_playback() end + +--- @param rate_scale float +--- @param frames int +--- @return PackedVector2Array +function AudioStreamPlayback:mix_audio(rate_scale, frames) end + +--- @param from_pos float? Default: 0.0 +function AudioStreamPlayback:start(from_pos) end + +--- @param time float? Default: 0.0 +function AudioStreamPlayback:seek(time) end + +function AudioStreamPlayback:stop() end + +--- @return int +function AudioStreamPlayback:get_loop_count() end + +--- @return float +function AudioStreamPlayback:get_playback_position() end + +--- @return bool +function AudioStreamPlayback:is_playing() end + + +----------------------------------------------------------- +-- AudioStreamPlaybackInteractive +----------------------------------------------------------- + +--- @class AudioStreamPlaybackInteractive: AudioStreamPlayback, { [string]: any } +AudioStreamPlaybackInteractive = {} + +--- @param clip_name StringName +function AudioStreamPlaybackInteractive:switch_to_clip_by_name(clip_name) end + +--- @param clip_index int +function AudioStreamPlaybackInteractive:switch_to_clip(clip_index) end + +--- @return int +function AudioStreamPlaybackInteractive:get_current_clip_index() end + + +----------------------------------------------------------- +-- AudioStreamPlaybackOggVorbis +----------------------------------------------------------- + +--- @class AudioStreamPlaybackOggVorbis: AudioStreamPlaybackResampled, { [string]: any } +AudioStreamPlaybackOggVorbis = {} + +--- @return AudioStreamPlaybackOggVorbis +function AudioStreamPlaybackOggVorbis:new() end + + +----------------------------------------------------------- +-- AudioStreamPlaybackPlaylist +----------------------------------------------------------- + +--- @class AudioStreamPlaybackPlaylist: AudioStreamPlayback, { [string]: any } +AudioStreamPlaybackPlaylist = {} + + +----------------------------------------------------------- +-- AudioStreamPlaybackPolyphonic +----------------------------------------------------------- + +--- @class AudioStreamPlaybackPolyphonic: AudioStreamPlayback, { [string]: any } +AudioStreamPlaybackPolyphonic = {} + +AudioStreamPlaybackPolyphonic.INVALID_ID = -1 + +--- @param stream AudioStream +--- @param from_offset float? Default: 0 +--- @param volume_db float? Default: 0 +--- @param pitch_scale float? Default: 1.0 +--- @param playback_type AudioServer.PlaybackType? Default: 0 +--- @param bus StringName? Default: &"Master" +--- @return int +function AudioStreamPlaybackPolyphonic:play_stream(stream, from_offset, volume_db, pitch_scale, playback_type, bus) end + +--- @param stream int +--- @param volume_db float +function AudioStreamPlaybackPolyphonic:set_stream_volume(stream, volume_db) end + +--- @param stream int +--- @param pitch_scale float +function AudioStreamPlaybackPolyphonic:set_stream_pitch_scale(stream, pitch_scale) end + +--- @param stream int +--- @return bool +function AudioStreamPlaybackPolyphonic:is_stream_playing(stream) end + +--- @param stream int +function AudioStreamPlaybackPolyphonic:stop_stream(stream) end + + +----------------------------------------------------------- +-- AudioStreamPlaybackResampled +----------------------------------------------------------- + +--- @class AudioStreamPlaybackResampled: AudioStreamPlayback, { [string]: any } +AudioStreamPlaybackResampled = {} + +--- @return AudioStreamPlaybackResampled +function AudioStreamPlaybackResampled:new() end + +--- @param dst_buffer AudioFrame* +--- @param frame_count int +--- @return int +function AudioStreamPlaybackResampled:_mix_resampled(dst_buffer, frame_count) end + +--- @return float +function AudioStreamPlaybackResampled:_get_stream_sampling_rate() end + +function AudioStreamPlaybackResampled:begin_resample() end + + +----------------------------------------------------------- +-- AudioStreamPlaybackSynchronized +----------------------------------------------------------- + +--- @class AudioStreamPlaybackSynchronized: AudioStreamPlayback, { [string]: any } +AudioStreamPlaybackSynchronized = {} + + +----------------------------------------------------------- +-- AudioStreamPlayer +----------------------------------------------------------- + +--- @class AudioStreamPlayer: Node, { [string]: any } +--- @field stream AudioStream +--- @field volume_db float +--- @field volume_linear float +--- @field pitch_scale float +--- @field playing bool +--- @field autoplay bool +--- @field stream_paused bool +--- @field mix_target int +--- @field max_polyphony int +--- @field bus StringName +--- @field playback_type int +AudioStreamPlayer = {} + +--- @return AudioStreamPlayer +function AudioStreamPlayer:new() end + +--- @alias AudioStreamPlayer.MixTarget `AudioStreamPlayer.MIX_TARGET_STEREO` | `AudioStreamPlayer.MIX_TARGET_SURROUND` | `AudioStreamPlayer.MIX_TARGET_CENTER` +AudioStreamPlayer.MIX_TARGET_STEREO = 0 +AudioStreamPlayer.MIX_TARGET_SURROUND = 1 +AudioStreamPlayer.MIX_TARGET_CENTER = 2 + +AudioStreamPlayer.finished = Signal() + +--- @param stream AudioStream +function AudioStreamPlayer:set_stream(stream) end + +--- @return AudioStream +function AudioStreamPlayer:get_stream() end + +--- @param volume_db float +function AudioStreamPlayer:set_volume_db(volume_db) end + +--- @return float +function AudioStreamPlayer:get_volume_db() end + +--- @param volume_linear float +function AudioStreamPlayer:set_volume_linear(volume_linear) end + +--- @return float +function AudioStreamPlayer:get_volume_linear() end + +--- @param pitch_scale float +function AudioStreamPlayer:set_pitch_scale(pitch_scale) end + +--- @return float +function AudioStreamPlayer:get_pitch_scale() end + +--- @param from_position float? Default: 0.0 +function AudioStreamPlayer:play(from_position) end + +--- @param to_position float +function AudioStreamPlayer:seek(to_position) end + +function AudioStreamPlayer:stop() end + +--- @return bool +function AudioStreamPlayer:is_playing() end + +--- @return float +function AudioStreamPlayer:get_playback_position() end + +--- @param bus StringName +function AudioStreamPlayer:set_bus(bus) end + +--- @return StringName +function AudioStreamPlayer:get_bus() end + +--- @param enable bool +function AudioStreamPlayer:set_autoplay(enable) end + +--- @return bool +function AudioStreamPlayer:is_autoplay_enabled() end + +--- @param mix_target AudioStreamPlayer.MixTarget +function AudioStreamPlayer:set_mix_target(mix_target) end + +--- @return AudioStreamPlayer.MixTarget +function AudioStreamPlayer:get_mix_target() end + +--- @param enable bool +function AudioStreamPlayer:set_playing(enable) end + +--- @param pause bool +function AudioStreamPlayer:set_stream_paused(pause) end + +--- @return bool +function AudioStreamPlayer:get_stream_paused() end + +--- @param max_polyphony int +function AudioStreamPlayer:set_max_polyphony(max_polyphony) end + +--- @return int +function AudioStreamPlayer:get_max_polyphony() end + +--- @return bool +function AudioStreamPlayer:has_stream_playback() end + +--- @return AudioStreamPlayback +function AudioStreamPlayer:get_stream_playback() end + +--- @param playback_type AudioServer.PlaybackType +function AudioStreamPlayer:set_playback_type(playback_type) end + +--- @return AudioServer.PlaybackType +function AudioStreamPlayer:get_playback_type() end + + +----------------------------------------------------------- +-- AudioStreamPlayer2D +----------------------------------------------------------- + +--- @class AudioStreamPlayer2D: Node2D, { [string]: any } +--- @field stream AudioStream +--- @field volume_db float +--- @field volume_linear float +--- @field pitch_scale float +--- @field playing bool +--- @field autoplay bool +--- @field stream_paused bool +--- @field max_distance float +--- @field attenuation float +--- @field max_polyphony int +--- @field panning_strength float +--- @field bus StringName +--- @field area_mask int +--- @field playback_type int +AudioStreamPlayer2D = {} + +--- @return AudioStreamPlayer2D +function AudioStreamPlayer2D:new() end + +AudioStreamPlayer2D.finished = Signal() + +--- @param stream AudioStream +function AudioStreamPlayer2D:set_stream(stream) end + +--- @return AudioStream +function AudioStreamPlayer2D:get_stream() end + +--- @param volume_db float +function AudioStreamPlayer2D:set_volume_db(volume_db) end + +--- @return float +function AudioStreamPlayer2D:get_volume_db() end + +--- @param volume_linear float +function AudioStreamPlayer2D:set_volume_linear(volume_linear) end + +--- @return float +function AudioStreamPlayer2D:get_volume_linear() end + +--- @param pitch_scale float +function AudioStreamPlayer2D:set_pitch_scale(pitch_scale) end + +--- @return float +function AudioStreamPlayer2D:get_pitch_scale() end + +--- @param from_position float? Default: 0.0 +function AudioStreamPlayer2D:play(from_position) end + +--- @param to_position float +function AudioStreamPlayer2D:seek(to_position) end + +function AudioStreamPlayer2D:stop() end + +--- @return bool +function AudioStreamPlayer2D:is_playing() end + +--- @return float +function AudioStreamPlayer2D:get_playback_position() end + +--- @param bus StringName +function AudioStreamPlayer2D:set_bus(bus) end + +--- @return StringName +function AudioStreamPlayer2D:get_bus() end + +--- @param enable bool +function AudioStreamPlayer2D:set_autoplay(enable) end + +--- @return bool +function AudioStreamPlayer2D:is_autoplay_enabled() end + +--- @param enable bool +function AudioStreamPlayer2D:set_playing(enable) end + +--- @param pixels float +function AudioStreamPlayer2D:set_max_distance(pixels) end + +--- @return float +function AudioStreamPlayer2D:get_max_distance() end + +--- @param curve float +function AudioStreamPlayer2D:set_attenuation(curve) end + +--- @return float +function AudioStreamPlayer2D:get_attenuation() end + +--- @param mask int +function AudioStreamPlayer2D:set_area_mask(mask) end + +--- @return int +function AudioStreamPlayer2D:get_area_mask() end + +--- @param pause bool +function AudioStreamPlayer2D:set_stream_paused(pause) end + +--- @return bool +function AudioStreamPlayer2D:get_stream_paused() end + +--- @param max_polyphony int +function AudioStreamPlayer2D:set_max_polyphony(max_polyphony) end + +--- @return int +function AudioStreamPlayer2D:get_max_polyphony() end + +--- @param panning_strength float +function AudioStreamPlayer2D:set_panning_strength(panning_strength) end + +--- @return float +function AudioStreamPlayer2D:get_panning_strength() end + +--- @return bool +function AudioStreamPlayer2D:has_stream_playback() end + +--- @return AudioStreamPlayback +function AudioStreamPlayer2D:get_stream_playback() end + +--- @param playback_type AudioServer.PlaybackType +function AudioStreamPlayer2D:set_playback_type(playback_type) end + +--- @return AudioServer.PlaybackType +function AudioStreamPlayer2D:get_playback_type() end + + +----------------------------------------------------------- +-- AudioStreamPlayer3D +----------------------------------------------------------- + +--- @class AudioStreamPlayer3D: Node3D, { [string]: any } +--- @field stream AudioStream +--- @field attenuation_model int +--- @field volume_db float +--- @field volume_linear float +--- @field unit_size float +--- @field max_db float +--- @field pitch_scale float +--- @field playing bool +--- @field autoplay bool +--- @field stream_paused bool +--- @field max_distance float +--- @field max_polyphony int +--- @field panning_strength float +--- @field bus StringName +--- @field area_mask int +--- @field playback_type int +--- @field emission_angle_enabled bool +--- @field emission_angle_degrees float +--- @field emission_angle_filter_attenuation_db float +--- @field attenuation_filter_cutoff_hz float +--- @field attenuation_filter_db float +--- @field doppler_tracking int +AudioStreamPlayer3D = {} + +--- @return AudioStreamPlayer3D +function AudioStreamPlayer3D:new() end + +--- @alias AudioStreamPlayer3D.AttenuationModel `AudioStreamPlayer3D.ATTENUATION_INVERSE_DISTANCE` | `AudioStreamPlayer3D.ATTENUATION_INVERSE_SQUARE_DISTANCE` | `AudioStreamPlayer3D.ATTENUATION_LOGARITHMIC` | `AudioStreamPlayer3D.ATTENUATION_DISABLED` +AudioStreamPlayer3D.ATTENUATION_INVERSE_DISTANCE = 0 +AudioStreamPlayer3D.ATTENUATION_INVERSE_SQUARE_DISTANCE = 1 +AudioStreamPlayer3D.ATTENUATION_LOGARITHMIC = 2 +AudioStreamPlayer3D.ATTENUATION_DISABLED = 3 + +--- @alias AudioStreamPlayer3D.DopplerTracking `AudioStreamPlayer3D.DOPPLER_TRACKING_DISABLED` | `AudioStreamPlayer3D.DOPPLER_TRACKING_IDLE_STEP` | `AudioStreamPlayer3D.DOPPLER_TRACKING_PHYSICS_STEP` +AudioStreamPlayer3D.DOPPLER_TRACKING_DISABLED = 0 +AudioStreamPlayer3D.DOPPLER_TRACKING_IDLE_STEP = 1 +AudioStreamPlayer3D.DOPPLER_TRACKING_PHYSICS_STEP = 2 + +AudioStreamPlayer3D.finished = Signal() + +--- @param stream AudioStream +function AudioStreamPlayer3D:set_stream(stream) end + +--- @return AudioStream +function AudioStreamPlayer3D:get_stream() end + +--- @param volume_db float +function AudioStreamPlayer3D:set_volume_db(volume_db) end + +--- @return float +function AudioStreamPlayer3D:get_volume_db() end + +--- @param volume_linear float +function AudioStreamPlayer3D:set_volume_linear(volume_linear) end + +--- @return float +function AudioStreamPlayer3D:get_volume_linear() end + +--- @param unit_size float +function AudioStreamPlayer3D:set_unit_size(unit_size) end + +--- @return float +function AudioStreamPlayer3D:get_unit_size() end + +--- @param max_db float +function AudioStreamPlayer3D:set_max_db(max_db) end + +--- @return float +function AudioStreamPlayer3D:get_max_db() end + +--- @param pitch_scale float +function AudioStreamPlayer3D:set_pitch_scale(pitch_scale) end + +--- @return float +function AudioStreamPlayer3D:get_pitch_scale() end + +--- @param from_position float? Default: 0.0 +function AudioStreamPlayer3D:play(from_position) end + +--- @param to_position float +function AudioStreamPlayer3D:seek(to_position) end + +function AudioStreamPlayer3D:stop() end + +--- @return bool +function AudioStreamPlayer3D:is_playing() end + +--- @return float +function AudioStreamPlayer3D:get_playback_position() end + +--- @param bus StringName +function AudioStreamPlayer3D:set_bus(bus) end + +--- @return StringName +function AudioStreamPlayer3D:get_bus() end + +--- @param enable bool +function AudioStreamPlayer3D:set_autoplay(enable) end + +--- @return bool +function AudioStreamPlayer3D:is_autoplay_enabled() end + +--- @param enable bool +function AudioStreamPlayer3D:set_playing(enable) end + +--- @param meters float +function AudioStreamPlayer3D:set_max_distance(meters) end + +--- @return float +function AudioStreamPlayer3D:get_max_distance() end + +--- @param mask int +function AudioStreamPlayer3D:set_area_mask(mask) end + +--- @return int +function AudioStreamPlayer3D:get_area_mask() end + +--- @param degrees float +function AudioStreamPlayer3D:set_emission_angle(degrees) end + +--- @return float +function AudioStreamPlayer3D:get_emission_angle() end + +--- @param enabled bool +function AudioStreamPlayer3D:set_emission_angle_enabled(enabled) end + +--- @return bool +function AudioStreamPlayer3D:is_emission_angle_enabled() end + +--- @param db float +function AudioStreamPlayer3D:set_emission_angle_filter_attenuation_db(db) end + +--- @return float +function AudioStreamPlayer3D:get_emission_angle_filter_attenuation_db() end + +--- @param degrees float +function AudioStreamPlayer3D:set_attenuation_filter_cutoff_hz(degrees) end + +--- @return float +function AudioStreamPlayer3D:get_attenuation_filter_cutoff_hz() end + +--- @param db float +function AudioStreamPlayer3D:set_attenuation_filter_db(db) end + +--- @return float +function AudioStreamPlayer3D:get_attenuation_filter_db() end + +--- @param model AudioStreamPlayer3D.AttenuationModel +function AudioStreamPlayer3D:set_attenuation_model(model) end + +--- @return AudioStreamPlayer3D.AttenuationModel +function AudioStreamPlayer3D:get_attenuation_model() end + +--- @param mode AudioStreamPlayer3D.DopplerTracking +function AudioStreamPlayer3D:set_doppler_tracking(mode) end + +--- @return AudioStreamPlayer3D.DopplerTracking +function AudioStreamPlayer3D:get_doppler_tracking() end + +--- @param pause bool +function AudioStreamPlayer3D:set_stream_paused(pause) end + +--- @return bool +function AudioStreamPlayer3D:get_stream_paused() end + +--- @param max_polyphony int +function AudioStreamPlayer3D:set_max_polyphony(max_polyphony) end + +--- @return int +function AudioStreamPlayer3D:get_max_polyphony() end + +--- @param panning_strength float +function AudioStreamPlayer3D:set_panning_strength(panning_strength) end + +--- @return float +function AudioStreamPlayer3D:get_panning_strength() end + +--- @return bool +function AudioStreamPlayer3D:has_stream_playback() end + +--- @return AudioStreamPlayback +function AudioStreamPlayer3D:get_stream_playback() end + +--- @param playback_type AudioServer.PlaybackType +function AudioStreamPlayer3D:set_playback_type(playback_type) end + +--- @return AudioServer.PlaybackType +function AudioStreamPlayer3D:get_playback_type() end + + +----------------------------------------------------------- +-- AudioStreamPlaylist +----------------------------------------------------------- + +--- @class AudioStreamPlaylist: AudioStream, { [string]: any } +--- @field shuffle bool +--- @field loop bool +--- @field fade_time float +--- @field stream_count int +--- @field stream_0 AudioStream +--- @field stream_1 AudioStream +--- @field stream_2 AudioStream +--- @field stream_3 AudioStream +--- @field stream_4 AudioStream +--- @field stream_5 AudioStream +--- @field stream_6 AudioStream +--- @field stream_7 AudioStream +--- @field stream_8 AudioStream +--- @field stream_9 AudioStream +--- @field stream_10 AudioStream +--- @field stream_11 AudioStream +--- @field stream_12 AudioStream +--- @field stream_13 AudioStream +--- @field stream_14 AudioStream +--- @field stream_15 AudioStream +--- @field stream_16 AudioStream +--- @field stream_17 AudioStream +--- @field stream_18 AudioStream +--- @field stream_19 AudioStream +--- @field stream_20 AudioStream +--- @field stream_21 AudioStream +--- @field stream_22 AudioStream +--- @field stream_23 AudioStream +--- @field stream_24 AudioStream +--- @field stream_25 AudioStream +--- @field stream_26 AudioStream +--- @field stream_27 AudioStream +--- @field stream_28 AudioStream +--- @field stream_29 AudioStream +--- @field stream_30 AudioStream +--- @field stream_31 AudioStream +--- @field stream_32 AudioStream +--- @field stream_33 AudioStream +--- @field stream_34 AudioStream +--- @field stream_35 AudioStream +--- @field stream_36 AudioStream +--- @field stream_37 AudioStream +--- @field stream_38 AudioStream +--- @field stream_39 AudioStream +--- @field stream_40 AudioStream +--- @field stream_41 AudioStream +--- @field stream_42 AudioStream +--- @field stream_43 AudioStream +--- @field stream_44 AudioStream +--- @field stream_45 AudioStream +--- @field stream_46 AudioStream +--- @field stream_47 AudioStream +--- @field stream_48 AudioStream +--- @field stream_49 AudioStream +--- @field stream_50 AudioStream +--- @field stream_51 AudioStream +--- @field stream_52 AudioStream +--- @field stream_53 AudioStream +--- @field stream_54 AudioStream +--- @field stream_55 AudioStream +--- @field stream_56 AudioStream +--- @field stream_57 AudioStream +--- @field stream_58 AudioStream +--- @field stream_59 AudioStream +--- @field stream_60 AudioStream +--- @field stream_61 AudioStream +--- @field stream_62 AudioStream +--- @field stream_63 AudioStream +AudioStreamPlaylist = {} + +--- @return AudioStreamPlaylist +function AudioStreamPlaylist:new() end + +AudioStreamPlaylist.MAX_STREAMS = 64 + +--- @param stream_count int +function AudioStreamPlaylist:set_stream_count(stream_count) end + +--- @return int +function AudioStreamPlaylist:get_stream_count() end + +--- @return float +function AudioStreamPlaylist:get_bpm() end + +--- @param stream_index int +--- @param audio_stream AudioStream +function AudioStreamPlaylist:set_list_stream(stream_index, audio_stream) end + +--- @param stream_index int +--- @return AudioStream +function AudioStreamPlaylist:get_list_stream(stream_index) end + +--- @param shuffle bool +function AudioStreamPlaylist:set_shuffle(shuffle) end + +--- @return bool +function AudioStreamPlaylist:get_shuffle() end + +--- @param dec float +function AudioStreamPlaylist:set_fade_time(dec) end + +--- @return float +function AudioStreamPlaylist:get_fade_time() end + +--- @param loop bool +function AudioStreamPlaylist:set_loop(loop) end + +--- @return bool +function AudioStreamPlaylist:has_loop() end + + +----------------------------------------------------------- +-- AudioStreamPolyphonic +----------------------------------------------------------- + +--- @class AudioStreamPolyphonic: AudioStream, { [string]: any } +--- @field polyphony int +AudioStreamPolyphonic = {} + +--- @return AudioStreamPolyphonic +function AudioStreamPolyphonic:new() end + +--- @param voices int +function AudioStreamPolyphonic:set_polyphony(voices) end + +--- @return int +function AudioStreamPolyphonic:get_polyphony() end + + +----------------------------------------------------------- +-- AudioStreamRandomizer +----------------------------------------------------------- + +--- @class AudioStreamRandomizer: AudioStream, { [string]: any } +--- @field playback_mode int +--- @field random_pitch float +--- @field random_volume_offset_db float +--- @field streams_count int +AudioStreamRandomizer = {} + +--- @return AudioStreamRandomizer +function AudioStreamRandomizer:new() end + +--- @alias AudioStreamRandomizer.PlaybackMode `AudioStreamRandomizer.PLAYBACK_RANDOM_NO_REPEATS` | `AudioStreamRandomizer.PLAYBACK_RANDOM` | `AudioStreamRandomizer.PLAYBACK_SEQUENTIAL` +AudioStreamRandomizer.PLAYBACK_RANDOM_NO_REPEATS = 0 +AudioStreamRandomizer.PLAYBACK_RANDOM = 1 +AudioStreamRandomizer.PLAYBACK_SEQUENTIAL = 2 + +--- @param index int +--- @param stream AudioStream +--- @param weight float? Default: 1.0 +function AudioStreamRandomizer:add_stream(index, stream, weight) end + +--- @param index_from int +--- @param index_to int +function AudioStreamRandomizer:move_stream(index_from, index_to) end + +--- @param index int +function AudioStreamRandomizer:remove_stream(index) end + +--- @param index int +--- @param stream AudioStream +function AudioStreamRandomizer:set_stream(index, stream) end + +--- @param index int +--- @return AudioStream +function AudioStreamRandomizer:get_stream(index) end + +--- @param index int +--- @param weight float +function AudioStreamRandomizer:set_stream_probability_weight(index, weight) end + +--- @param index int +--- @return float +function AudioStreamRandomizer:get_stream_probability_weight(index) end + +--- @param count int +function AudioStreamRandomizer:set_streams_count(count) end + +--- @return int +function AudioStreamRandomizer:get_streams_count() end + +--- @param scale float +function AudioStreamRandomizer:set_random_pitch(scale) end + +--- @return float +function AudioStreamRandomizer:get_random_pitch() end + +--- @param db_offset float +function AudioStreamRandomizer:set_random_volume_offset_db(db_offset) end + +--- @return float +function AudioStreamRandomizer:get_random_volume_offset_db() end + +--- @param mode AudioStreamRandomizer.PlaybackMode +function AudioStreamRandomizer:set_playback_mode(mode) end + +--- @return AudioStreamRandomizer.PlaybackMode +function AudioStreamRandomizer:get_playback_mode() end + + +----------------------------------------------------------- +-- AudioStreamSynchronized +----------------------------------------------------------- + +--- @class AudioStreamSynchronized: AudioStream, { [string]: any } +--- @field stream_count int +AudioStreamSynchronized = {} + +--- @return AudioStreamSynchronized +function AudioStreamSynchronized:new() end + +AudioStreamSynchronized.MAX_STREAMS = 32 + +--- @param stream_count int +function AudioStreamSynchronized:set_stream_count(stream_count) end + +--- @return int +function AudioStreamSynchronized:get_stream_count() end + +--- @param stream_index int +--- @param audio_stream AudioStream +function AudioStreamSynchronized:set_sync_stream(stream_index, audio_stream) end + +--- @param stream_index int +--- @return AudioStream +function AudioStreamSynchronized:get_sync_stream(stream_index) end + +--- @param stream_index int +--- @param volume_db float +function AudioStreamSynchronized:set_sync_stream_volume(stream_index, volume_db) end + +--- @param stream_index int +--- @return float +function AudioStreamSynchronized:get_sync_stream_volume(stream_index) end + + +----------------------------------------------------------- +-- AudioStreamWAV +----------------------------------------------------------- + +--- @class AudioStreamWAV: AudioStream, { [string]: any } +--- @field data PackedByteArray +--- @field format int +--- @field loop_mode int +--- @field loop_begin int +--- @field loop_end int +--- @field mix_rate int +--- @field stereo bool +--- @field tags Dictionary +AudioStreamWAV = {} + +--- @return AudioStreamWAV +function AudioStreamWAV:new() end + +--- @alias AudioStreamWAV.Format `AudioStreamWAV.FORMAT_8_BITS` | `AudioStreamWAV.FORMAT_16_BITS` | `AudioStreamWAV.FORMAT_IMA_ADPCM` | `AudioStreamWAV.FORMAT_QOA` +AudioStreamWAV.FORMAT_8_BITS = 0 +AudioStreamWAV.FORMAT_16_BITS = 1 +AudioStreamWAV.FORMAT_IMA_ADPCM = 2 +AudioStreamWAV.FORMAT_QOA = 3 + +--- @alias AudioStreamWAV.LoopMode `AudioStreamWAV.LOOP_DISABLED` | `AudioStreamWAV.LOOP_FORWARD` | `AudioStreamWAV.LOOP_PINGPONG` | `AudioStreamWAV.LOOP_BACKWARD` +AudioStreamWAV.LOOP_DISABLED = 0 +AudioStreamWAV.LOOP_FORWARD = 1 +AudioStreamWAV.LOOP_PINGPONG = 2 +AudioStreamWAV.LOOP_BACKWARD = 3 + +--- static +--- @param stream_data PackedByteArray +--- @param options Dictionary? Default: {} +--- @return AudioStreamWAV +function AudioStreamWAV:load_from_buffer(stream_data, options) end + +--- static +--- @param path String +--- @param options Dictionary? Default: {} +--- @return AudioStreamWAV +function AudioStreamWAV:load_from_file(path, options) end + +--- @param data PackedByteArray +function AudioStreamWAV:set_data(data) end + +--- @return PackedByteArray +function AudioStreamWAV:get_data() end + +--- @param format AudioStreamWAV.Format +function AudioStreamWAV:set_format(format) end + +--- @return AudioStreamWAV.Format +function AudioStreamWAV:get_format() end + +--- @param loop_mode AudioStreamWAV.LoopMode +function AudioStreamWAV:set_loop_mode(loop_mode) end + +--- @return AudioStreamWAV.LoopMode +function AudioStreamWAV:get_loop_mode() end + +--- @param loop_begin int +function AudioStreamWAV:set_loop_begin(loop_begin) end + +--- @return int +function AudioStreamWAV:get_loop_begin() end + +--- @param loop_end int +function AudioStreamWAV:set_loop_end(loop_end) end + +--- @return int +function AudioStreamWAV:get_loop_end() end + +--- @param mix_rate int +function AudioStreamWAV:set_mix_rate(mix_rate) end + +--- @return int +function AudioStreamWAV:get_mix_rate() end + +--- @param stereo bool +function AudioStreamWAV:set_stereo(stereo) end + +--- @return bool +function AudioStreamWAV:is_stereo() end + +--- @param tags Dictionary +function AudioStreamWAV:set_tags(tags) end + +--- @return Dictionary +function AudioStreamWAV:get_tags() end + +--- @param path String +--- @return Error +function AudioStreamWAV:save_to_wav(path) end + + +----------------------------------------------------------- +-- BackBufferCopy +----------------------------------------------------------- + +--- @class BackBufferCopy: Node2D, { [string]: any } +--- @field copy_mode int +--- @field rect Rect2 +BackBufferCopy = {} + +--- @return BackBufferCopy +function BackBufferCopy:new() end + +--- @alias BackBufferCopy.CopyMode `BackBufferCopy.COPY_MODE_DISABLED` | `BackBufferCopy.COPY_MODE_RECT` | `BackBufferCopy.COPY_MODE_VIEWPORT` +BackBufferCopy.COPY_MODE_DISABLED = 0 +BackBufferCopy.COPY_MODE_RECT = 1 +BackBufferCopy.COPY_MODE_VIEWPORT = 2 + +--- @param rect Rect2 +function BackBufferCopy:set_rect(rect) end + +--- @return Rect2 +function BackBufferCopy:get_rect() end + +--- @param copy_mode BackBufferCopy.CopyMode +function BackBufferCopy:set_copy_mode(copy_mode) end + +--- @return BackBufferCopy.CopyMode +function BackBufferCopy:get_copy_mode() end + + +----------------------------------------------------------- +-- BaseButton +----------------------------------------------------------- + +--- @class BaseButton: Control, { [string]: any } +--- @field disabled bool +--- @field toggle_mode bool +--- @field button_pressed bool +--- @field action_mode int +--- @field button_mask int +--- @field keep_pressed_outside bool +--- @field button_group ButtonGroup +--- @field shortcut Shortcut +--- @field shortcut_feedback bool +--- @field shortcut_in_tooltip bool +BaseButton = {} + +--- @return BaseButton +function BaseButton:new() end + +--- @alias BaseButton.DrawMode `BaseButton.DRAW_NORMAL` | `BaseButton.DRAW_PRESSED` | `BaseButton.DRAW_HOVER` | `BaseButton.DRAW_DISABLED` | `BaseButton.DRAW_HOVER_PRESSED` +BaseButton.DRAW_NORMAL = 0 +BaseButton.DRAW_PRESSED = 1 +BaseButton.DRAW_HOVER = 2 +BaseButton.DRAW_DISABLED = 3 +BaseButton.DRAW_HOVER_PRESSED = 4 + +--- @alias BaseButton.ActionMode `BaseButton.ACTION_MODE_BUTTON_PRESS` | `BaseButton.ACTION_MODE_BUTTON_RELEASE` +BaseButton.ACTION_MODE_BUTTON_PRESS = 0 +BaseButton.ACTION_MODE_BUTTON_RELEASE = 1 + +BaseButton.pressed = Signal() +BaseButton.button_up = Signal() +BaseButton.button_down = Signal() +BaseButton.toggled = Signal() + +function BaseButton:_pressed() end + +--- @param toggled_on bool +function BaseButton:_toggled(toggled_on) end + +--- @param pressed bool +function BaseButton:set_pressed(pressed) end + +--- @return bool +function BaseButton:is_pressed() end + +--- @param pressed bool +function BaseButton:set_pressed_no_signal(pressed) end + +--- @return bool +function BaseButton:is_hovered() end + +--- @param enabled bool +function BaseButton:set_toggle_mode(enabled) end + +--- @return bool +function BaseButton:is_toggle_mode() end + +--- @param enabled bool +function BaseButton:set_shortcut_in_tooltip(enabled) end + +--- @return bool +function BaseButton:is_shortcut_in_tooltip_enabled() end + +--- @param disabled bool +function BaseButton:set_disabled(disabled) end + +--- @return bool +function BaseButton:is_disabled() end + +--- @param mode BaseButton.ActionMode +function BaseButton:set_action_mode(mode) end + +--- @return BaseButton.ActionMode +function BaseButton:get_action_mode() end + +--- @param mask MouseButtonMask +function BaseButton:set_button_mask(mask) end + +--- @return MouseButtonMask +function BaseButton:get_button_mask() end + +--- @return BaseButton.DrawMode +function BaseButton:get_draw_mode() end + +--- @param enabled bool +function BaseButton:set_keep_pressed_outside(enabled) end + +--- @return bool +function BaseButton:is_keep_pressed_outside() end + +--- @param enabled bool +function BaseButton:set_shortcut_feedback(enabled) end + +--- @return bool +function BaseButton:is_shortcut_feedback() end + +--- @param shortcut Shortcut +function BaseButton:set_shortcut(shortcut) end + +--- @return Shortcut +function BaseButton:get_shortcut() end + +--- @param button_group ButtonGroup +function BaseButton:set_button_group(button_group) end + +--- @return ButtonGroup +function BaseButton:get_button_group() end + + +----------------------------------------------------------- +-- BaseMaterial3D +----------------------------------------------------------- + +--- @class BaseMaterial3D: Material, { [string]: any } +--- @field transparency int +--- @field alpha_scissor_threshold float +--- @field alpha_hash_scale float +--- @field alpha_antialiasing_mode int +--- @field alpha_antialiasing_edge float +--- @field blend_mode int +--- @field cull_mode int +--- @field depth_draw_mode int +--- @field no_depth_test bool +--- @field depth_test int +--- @field shading_mode int +--- @field diffuse_mode int +--- @field specular_mode int +--- @field disable_ambient_light bool +--- @field disable_fog bool +--- @field disable_specular_occlusion bool +--- @field vertex_color_use_as_albedo bool +--- @field vertex_color_is_srgb bool +--- @field albedo_color Color +--- @field albedo_texture Texture2D +--- @field albedo_texture_force_srgb bool +--- @field albedo_texture_msdf bool +--- @field orm_texture Texture2D +--- @field metallic float +--- @field metallic_specular float +--- @field metallic_texture Texture2D +--- @field metallic_texture_channel int +--- @field roughness float +--- @field roughness_texture Texture2D +--- @field roughness_texture_channel int +--- @field emission_enabled bool +--- @field emission Color +--- @field emission_energy_multiplier float +--- @field emission_intensity float +--- @field emission_operator int +--- @field emission_on_uv2 bool +--- @field emission_texture Texture2D +--- @field normal_enabled bool +--- @field normal_scale float +--- @field normal_texture Texture2D +--- @field bent_normal_enabled bool +--- @field bent_normal_texture Texture2D +--- @field rim_enabled bool +--- @field rim float +--- @field rim_tint float +--- @field rim_texture Texture2D +--- @field clearcoat_enabled bool +--- @field clearcoat float +--- @field clearcoat_roughness float +--- @field clearcoat_texture Texture2D +--- @field anisotropy_enabled bool +--- @field anisotropy float +--- @field anisotropy_flowmap Texture2D +--- @field ao_enabled bool +--- @field ao_light_affect float +--- @field ao_texture Texture2D +--- @field ao_on_uv2 bool +--- @field ao_texture_channel int +--- @field heightmap_enabled bool +--- @field heightmap_scale float +--- @field heightmap_deep_parallax bool +--- @field heightmap_min_layers int +--- @field heightmap_max_layers int +--- @field heightmap_flip_tangent bool +--- @field heightmap_flip_binormal bool +--- @field heightmap_texture Texture2D +--- @field heightmap_flip_texture bool +--- @field subsurf_scatter_enabled bool +--- @field subsurf_scatter_strength float +--- @field subsurf_scatter_skin_mode bool +--- @field subsurf_scatter_texture Texture2D +--- @field subsurf_scatter_transmittance_enabled bool +--- @field subsurf_scatter_transmittance_color Color +--- @field subsurf_scatter_transmittance_texture Texture2D +--- @field subsurf_scatter_transmittance_depth float +--- @field subsurf_scatter_transmittance_boost float +--- @field backlight_enabled bool +--- @field backlight Color +--- @field backlight_texture Texture2D +--- @field refraction_enabled bool +--- @field refraction_scale float +--- @field refraction_texture Texture2D +--- @field refraction_texture_channel int +--- @field detail_enabled bool +--- @field detail_mask Texture2D +--- @field detail_blend_mode int +--- @field detail_uv_layer int +--- @field detail_albedo Texture2D +--- @field detail_normal Texture2D +--- @field uv1_scale Vector3 +--- @field uv1_offset Vector3 +--- @field uv1_triplanar bool +--- @field uv1_triplanar_sharpness float +--- @field uv1_world_triplanar bool +--- @field uv2_scale Vector3 +--- @field uv2_offset Vector3 +--- @field uv2_triplanar bool +--- @field uv2_triplanar_sharpness float +--- @field uv2_world_triplanar bool +--- @field texture_filter int +--- @field texture_repeat bool +--- @field disable_receive_shadows bool +--- @field shadow_to_opacity bool +--- @field billboard_mode int +--- @field billboard_keep_scale bool +--- @field particles_anim_h_frames int +--- @field particles_anim_v_frames int +--- @field particles_anim_loop bool +--- @field grow bool +--- @field grow_amount float +--- @field fixed_size bool +--- @field use_point_size bool +--- @field point_size float +--- @field use_particle_trails bool +--- @field use_z_clip_scale bool +--- @field z_clip_scale float +--- @field use_fov_override bool +--- @field fov_override float +--- @field proximity_fade_enabled bool +--- @field proximity_fade_distance float +--- @field msdf_pixel_range float +--- @field msdf_outline_size float +--- @field distance_fade_mode int +--- @field distance_fade_min_distance float +--- @field distance_fade_max_distance float +--- @field stencil_mode int +--- @field stencil_flags int +--- @field stencil_compare int +--- @field stencil_reference int +--- @field stencil_color Color +--- @field stencil_outline_thickness float +BaseMaterial3D = {} + +--- @alias BaseMaterial3D.TextureParam `BaseMaterial3D.TEXTURE_ALBEDO` | `BaseMaterial3D.TEXTURE_METALLIC` | `BaseMaterial3D.TEXTURE_ROUGHNESS` | `BaseMaterial3D.TEXTURE_EMISSION` | `BaseMaterial3D.TEXTURE_NORMAL` | `BaseMaterial3D.TEXTURE_BENT_NORMAL` | `BaseMaterial3D.TEXTURE_RIM` | `BaseMaterial3D.TEXTURE_CLEARCOAT` | `BaseMaterial3D.TEXTURE_FLOWMAP` | `BaseMaterial3D.TEXTURE_AMBIENT_OCCLUSION` | `BaseMaterial3D.TEXTURE_HEIGHTMAP` | `BaseMaterial3D.TEXTURE_SUBSURFACE_SCATTERING` | `BaseMaterial3D.TEXTURE_SUBSURFACE_TRANSMITTANCE` | `BaseMaterial3D.TEXTURE_BACKLIGHT` | `BaseMaterial3D.TEXTURE_REFRACTION` | `BaseMaterial3D.TEXTURE_DETAIL_MASK` | `BaseMaterial3D.TEXTURE_DETAIL_ALBEDO` | `BaseMaterial3D.TEXTURE_DETAIL_NORMAL` | `BaseMaterial3D.TEXTURE_ORM` | `BaseMaterial3D.TEXTURE_MAX` +BaseMaterial3D.TEXTURE_ALBEDO = 0 +BaseMaterial3D.TEXTURE_METALLIC = 1 +BaseMaterial3D.TEXTURE_ROUGHNESS = 2 +BaseMaterial3D.TEXTURE_EMISSION = 3 +BaseMaterial3D.TEXTURE_NORMAL = 4 +BaseMaterial3D.TEXTURE_BENT_NORMAL = 18 +BaseMaterial3D.TEXTURE_RIM = 5 +BaseMaterial3D.TEXTURE_CLEARCOAT = 6 +BaseMaterial3D.TEXTURE_FLOWMAP = 7 +BaseMaterial3D.TEXTURE_AMBIENT_OCCLUSION = 8 +BaseMaterial3D.TEXTURE_HEIGHTMAP = 9 +BaseMaterial3D.TEXTURE_SUBSURFACE_SCATTERING = 10 +BaseMaterial3D.TEXTURE_SUBSURFACE_TRANSMITTANCE = 11 +BaseMaterial3D.TEXTURE_BACKLIGHT = 12 +BaseMaterial3D.TEXTURE_REFRACTION = 13 +BaseMaterial3D.TEXTURE_DETAIL_MASK = 14 +BaseMaterial3D.TEXTURE_DETAIL_ALBEDO = 15 +BaseMaterial3D.TEXTURE_DETAIL_NORMAL = 16 +BaseMaterial3D.TEXTURE_ORM = 17 +BaseMaterial3D.TEXTURE_MAX = 19 + +--- @alias BaseMaterial3D.TextureFilter `BaseMaterial3D.TEXTURE_FILTER_NEAREST` | `BaseMaterial3D.TEXTURE_FILTER_LINEAR` | `BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS` | `BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS` | `BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC` | `BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC` | `BaseMaterial3D.TEXTURE_FILTER_MAX` +BaseMaterial3D.TEXTURE_FILTER_NEAREST = 0 +BaseMaterial3D.TEXTURE_FILTER_LINEAR = 1 +BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 2 +BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 3 +BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 4 +BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 5 +BaseMaterial3D.TEXTURE_FILTER_MAX = 6 + +--- @alias BaseMaterial3D.DetailUV `BaseMaterial3D.DETAIL_UV_1` | `BaseMaterial3D.DETAIL_UV_2` +BaseMaterial3D.DETAIL_UV_1 = 0 +BaseMaterial3D.DETAIL_UV_2 = 1 + +--- @alias BaseMaterial3D.Transparency `BaseMaterial3D.TRANSPARENCY_DISABLED` | `BaseMaterial3D.TRANSPARENCY_ALPHA` | `BaseMaterial3D.TRANSPARENCY_ALPHA_SCISSOR` | `BaseMaterial3D.TRANSPARENCY_ALPHA_HASH` | `BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS` | `BaseMaterial3D.TRANSPARENCY_MAX` +BaseMaterial3D.TRANSPARENCY_DISABLED = 0 +BaseMaterial3D.TRANSPARENCY_ALPHA = 1 +BaseMaterial3D.TRANSPARENCY_ALPHA_SCISSOR = 2 +BaseMaterial3D.TRANSPARENCY_ALPHA_HASH = 3 +BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS = 4 +BaseMaterial3D.TRANSPARENCY_MAX = 5 + +--- @alias BaseMaterial3D.ShadingMode `BaseMaterial3D.SHADING_MODE_UNSHADED` | `BaseMaterial3D.SHADING_MODE_PER_PIXEL` | `BaseMaterial3D.SHADING_MODE_PER_VERTEX` | `BaseMaterial3D.SHADING_MODE_MAX` +BaseMaterial3D.SHADING_MODE_UNSHADED = 0 +BaseMaterial3D.SHADING_MODE_PER_PIXEL = 1 +BaseMaterial3D.SHADING_MODE_PER_VERTEX = 2 +BaseMaterial3D.SHADING_MODE_MAX = 3 + +--- @alias BaseMaterial3D.Feature `BaseMaterial3D.FEATURE_EMISSION` | `BaseMaterial3D.FEATURE_NORMAL_MAPPING` | `BaseMaterial3D.FEATURE_RIM` | `BaseMaterial3D.FEATURE_CLEARCOAT` | `BaseMaterial3D.FEATURE_ANISOTROPY` | `BaseMaterial3D.FEATURE_AMBIENT_OCCLUSION` | `BaseMaterial3D.FEATURE_HEIGHT_MAPPING` | `BaseMaterial3D.FEATURE_SUBSURFACE_SCATTERING` | `BaseMaterial3D.FEATURE_SUBSURFACE_TRANSMITTANCE` | `BaseMaterial3D.FEATURE_BACKLIGHT` | `BaseMaterial3D.FEATURE_REFRACTION` | `BaseMaterial3D.FEATURE_DETAIL` | `BaseMaterial3D.FEATURE_BENT_NORMAL_MAPPING` | `BaseMaterial3D.FEATURE_MAX` +BaseMaterial3D.FEATURE_EMISSION = 0 +BaseMaterial3D.FEATURE_NORMAL_MAPPING = 1 +BaseMaterial3D.FEATURE_RIM = 2 +BaseMaterial3D.FEATURE_CLEARCOAT = 3 +BaseMaterial3D.FEATURE_ANISOTROPY = 4 +BaseMaterial3D.FEATURE_AMBIENT_OCCLUSION = 5 +BaseMaterial3D.FEATURE_HEIGHT_MAPPING = 6 +BaseMaterial3D.FEATURE_SUBSURFACE_SCATTERING = 7 +BaseMaterial3D.FEATURE_SUBSURFACE_TRANSMITTANCE = 8 +BaseMaterial3D.FEATURE_BACKLIGHT = 9 +BaseMaterial3D.FEATURE_REFRACTION = 10 +BaseMaterial3D.FEATURE_DETAIL = 11 +BaseMaterial3D.FEATURE_BENT_NORMAL_MAPPING = 12 +BaseMaterial3D.FEATURE_MAX = 13 + +--- @alias BaseMaterial3D.BlendMode `BaseMaterial3D.BLEND_MODE_MIX` | `BaseMaterial3D.BLEND_MODE_ADD` | `BaseMaterial3D.BLEND_MODE_SUB` | `BaseMaterial3D.BLEND_MODE_MUL` | `BaseMaterial3D.BLEND_MODE_PREMULT_ALPHA` +BaseMaterial3D.BLEND_MODE_MIX = 0 +BaseMaterial3D.BLEND_MODE_ADD = 1 +BaseMaterial3D.BLEND_MODE_SUB = 2 +BaseMaterial3D.BLEND_MODE_MUL = 3 +BaseMaterial3D.BLEND_MODE_PREMULT_ALPHA = 4 + +--- @alias BaseMaterial3D.AlphaAntiAliasing `BaseMaterial3D.ALPHA_ANTIALIASING_OFF` | `BaseMaterial3D.ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE` | `BaseMaterial3D.ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE` +BaseMaterial3D.ALPHA_ANTIALIASING_OFF = 0 +BaseMaterial3D.ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE = 1 +BaseMaterial3D.ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE = 2 + +--- @alias BaseMaterial3D.DepthDrawMode `BaseMaterial3D.DEPTH_DRAW_OPAQUE_ONLY` | `BaseMaterial3D.DEPTH_DRAW_ALWAYS` | `BaseMaterial3D.DEPTH_DRAW_DISABLED` +BaseMaterial3D.DEPTH_DRAW_OPAQUE_ONLY = 0 +BaseMaterial3D.DEPTH_DRAW_ALWAYS = 1 +BaseMaterial3D.DEPTH_DRAW_DISABLED = 2 + +--- @alias BaseMaterial3D.DepthTest `BaseMaterial3D.DEPTH_TEST_DEFAULT` | `BaseMaterial3D.DEPTH_TEST_INVERTED` +BaseMaterial3D.DEPTH_TEST_DEFAULT = 0 +BaseMaterial3D.DEPTH_TEST_INVERTED = 1 + +--- @alias BaseMaterial3D.CullMode `BaseMaterial3D.CULL_BACK` | `BaseMaterial3D.CULL_FRONT` | `BaseMaterial3D.CULL_DISABLED` +BaseMaterial3D.CULL_BACK = 0 +BaseMaterial3D.CULL_FRONT = 1 +BaseMaterial3D.CULL_DISABLED = 2 + +--- @alias BaseMaterial3D.Flags `BaseMaterial3D.FLAG_DISABLE_DEPTH_TEST` | `BaseMaterial3D.FLAG_ALBEDO_FROM_VERTEX_COLOR` | `BaseMaterial3D.FLAG_SRGB_VERTEX_COLOR` | `BaseMaterial3D.FLAG_USE_POINT_SIZE` | `BaseMaterial3D.FLAG_FIXED_SIZE` | `BaseMaterial3D.FLAG_BILLBOARD_KEEP_SCALE` | `BaseMaterial3D.FLAG_UV1_USE_TRIPLANAR` | `BaseMaterial3D.FLAG_UV2_USE_TRIPLANAR` | `BaseMaterial3D.FLAG_UV1_USE_WORLD_TRIPLANAR` | `BaseMaterial3D.FLAG_UV2_USE_WORLD_TRIPLANAR` | `BaseMaterial3D.FLAG_AO_ON_UV2` | `BaseMaterial3D.FLAG_EMISSION_ON_UV2` | `BaseMaterial3D.FLAG_ALBEDO_TEXTURE_FORCE_SRGB` | `BaseMaterial3D.FLAG_DONT_RECEIVE_SHADOWS` | `BaseMaterial3D.FLAG_DISABLE_AMBIENT_LIGHT` | `BaseMaterial3D.FLAG_USE_SHADOW_TO_OPACITY` | `BaseMaterial3D.FLAG_USE_TEXTURE_REPEAT` | `BaseMaterial3D.FLAG_INVERT_HEIGHTMAP` | `BaseMaterial3D.FLAG_SUBSURFACE_MODE_SKIN` | `BaseMaterial3D.FLAG_PARTICLE_TRAILS_MODE` | `BaseMaterial3D.FLAG_ALBEDO_TEXTURE_MSDF` | `BaseMaterial3D.FLAG_DISABLE_FOG` | `BaseMaterial3D.FLAG_DISABLE_SPECULAR_OCCLUSION` | `BaseMaterial3D.FLAG_USE_Z_CLIP_SCALE` | `BaseMaterial3D.FLAG_USE_FOV_OVERRIDE` | `BaseMaterial3D.FLAG_MAX` +BaseMaterial3D.FLAG_DISABLE_DEPTH_TEST = 0 +BaseMaterial3D.FLAG_ALBEDO_FROM_VERTEX_COLOR = 1 +BaseMaterial3D.FLAG_SRGB_VERTEX_COLOR = 2 +BaseMaterial3D.FLAG_USE_POINT_SIZE = 3 +BaseMaterial3D.FLAG_FIXED_SIZE = 4 +BaseMaterial3D.FLAG_BILLBOARD_KEEP_SCALE = 5 +BaseMaterial3D.FLAG_UV1_USE_TRIPLANAR = 6 +BaseMaterial3D.FLAG_UV2_USE_TRIPLANAR = 7 +BaseMaterial3D.FLAG_UV1_USE_WORLD_TRIPLANAR = 8 +BaseMaterial3D.FLAG_UV2_USE_WORLD_TRIPLANAR = 9 +BaseMaterial3D.FLAG_AO_ON_UV2 = 10 +BaseMaterial3D.FLAG_EMISSION_ON_UV2 = 11 +BaseMaterial3D.FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 12 +BaseMaterial3D.FLAG_DONT_RECEIVE_SHADOWS = 13 +BaseMaterial3D.FLAG_DISABLE_AMBIENT_LIGHT = 14 +BaseMaterial3D.FLAG_USE_SHADOW_TO_OPACITY = 15 +BaseMaterial3D.FLAG_USE_TEXTURE_REPEAT = 16 +BaseMaterial3D.FLAG_INVERT_HEIGHTMAP = 17 +BaseMaterial3D.FLAG_SUBSURFACE_MODE_SKIN = 18 +BaseMaterial3D.FLAG_PARTICLE_TRAILS_MODE = 19 +BaseMaterial3D.FLAG_ALBEDO_TEXTURE_MSDF = 20 +BaseMaterial3D.FLAG_DISABLE_FOG = 21 +BaseMaterial3D.FLAG_DISABLE_SPECULAR_OCCLUSION = 22 +BaseMaterial3D.FLAG_USE_Z_CLIP_SCALE = 23 +BaseMaterial3D.FLAG_USE_FOV_OVERRIDE = 24 +BaseMaterial3D.FLAG_MAX = 25 + +--- @alias BaseMaterial3D.DiffuseMode `BaseMaterial3D.DIFFUSE_BURLEY` | `BaseMaterial3D.DIFFUSE_LAMBERT` | `BaseMaterial3D.DIFFUSE_LAMBERT_WRAP` | `BaseMaterial3D.DIFFUSE_TOON` +BaseMaterial3D.DIFFUSE_BURLEY = 0 +BaseMaterial3D.DIFFUSE_LAMBERT = 1 +BaseMaterial3D.DIFFUSE_LAMBERT_WRAP = 2 +BaseMaterial3D.DIFFUSE_TOON = 3 + +--- @alias BaseMaterial3D.SpecularMode `BaseMaterial3D.SPECULAR_SCHLICK_GGX` | `BaseMaterial3D.SPECULAR_TOON` | `BaseMaterial3D.SPECULAR_DISABLED` +BaseMaterial3D.SPECULAR_SCHLICK_GGX = 0 +BaseMaterial3D.SPECULAR_TOON = 1 +BaseMaterial3D.SPECULAR_DISABLED = 2 + +--- @alias BaseMaterial3D.BillboardMode `BaseMaterial3D.BILLBOARD_DISABLED` | `BaseMaterial3D.BILLBOARD_ENABLED` | `BaseMaterial3D.BILLBOARD_FIXED_Y` | `BaseMaterial3D.BILLBOARD_PARTICLES` +BaseMaterial3D.BILLBOARD_DISABLED = 0 +BaseMaterial3D.BILLBOARD_ENABLED = 1 +BaseMaterial3D.BILLBOARD_FIXED_Y = 2 +BaseMaterial3D.BILLBOARD_PARTICLES = 3 + +--- @alias BaseMaterial3D.TextureChannel `BaseMaterial3D.TEXTURE_CHANNEL_RED` | `BaseMaterial3D.TEXTURE_CHANNEL_GREEN` | `BaseMaterial3D.TEXTURE_CHANNEL_BLUE` | `BaseMaterial3D.TEXTURE_CHANNEL_ALPHA` | `BaseMaterial3D.TEXTURE_CHANNEL_GRAYSCALE` +BaseMaterial3D.TEXTURE_CHANNEL_RED = 0 +BaseMaterial3D.TEXTURE_CHANNEL_GREEN = 1 +BaseMaterial3D.TEXTURE_CHANNEL_BLUE = 2 +BaseMaterial3D.TEXTURE_CHANNEL_ALPHA = 3 +BaseMaterial3D.TEXTURE_CHANNEL_GRAYSCALE = 4 + +--- @alias BaseMaterial3D.EmissionOperator `BaseMaterial3D.EMISSION_OP_ADD` | `BaseMaterial3D.EMISSION_OP_MULTIPLY` +BaseMaterial3D.EMISSION_OP_ADD = 0 +BaseMaterial3D.EMISSION_OP_MULTIPLY = 1 + +--- @alias BaseMaterial3D.DistanceFadeMode `BaseMaterial3D.DISTANCE_FADE_DISABLED` | `BaseMaterial3D.DISTANCE_FADE_PIXEL_ALPHA` | `BaseMaterial3D.DISTANCE_FADE_PIXEL_DITHER` | `BaseMaterial3D.DISTANCE_FADE_OBJECT_DITHER` +BaseMaterial3D.DISTANCE_FADE_DISABLED = 0 +BaseMaterial3D.DISTANCE_FADE_PIXEL_ALPHA = 1 +BaseMaterial3D.DISTANCE_FADE_PIXEL_DITHER = 2 +BaseMaterial3D.DISTANCE_FADE_OBJECT_DITHER = 3 + +--- @alias BaseMaterial3D.StencilMode `BaseMaterial3D.STENCIL_MODE_DISABLED` | `BaseMaterial3D.STENCIL_MODE_OUTLINE` | `BaseMaterial3D.STENCIL_MODE_XRAY` | `BaseMaterial3D.STENCIL_MODE_CUSTOM` +BaseMaterial3D.STENCIL_MODE_DISABLED = 0 +BaseMaterial3D.STENCIL_MODE_OUTLINE = 1 +BaseMaterial3D.STENCIL_MODE_XRAY = 2 +BaseMaterial3D.STENCIL_MODE_CUSTOM = 3 + +--- @alias BaseMaterial3D.StencilFlags `BaseMaterial3D.STENCIL_FLAG_READ` | `BaseMaterial3D.STENCIL_FLAG_WRITE` | `BaseMaterial3D.STENCIL_FLAG_WRITE_DEPTH_FAIL` +BaseMaterial3D.STENCIL_FLAG_READ = 1 +BaseMaterial3D.STENCIL_FLAG_WRITE = 2 +BaseMaterial3D.STENCIL_FLAG_WRITE_DEPTH_FAIL = 4 + +--- @alias BaseMaterial3D.StencilCompare `BaseMaterial3D.STENCIL_COMPARE_ALWAYS` | `BaseMaterial3D.STENCIL_COMPARE_LESS` | `BaseMaterial3D.STENCIL_COMPARE_EQUAL` | `BaseMaterial3D.STENCIL_COMPARE_LESS_OR_EQUAL` | `BaseMaterial3D.STENCIL_COMPARE_GREATER` | `BaseMaterial3D.STENCIL_COMPARE_NOT_EQUAL` | `BaseMaterial3D.STENCIL_COMPARE_GREATER_OR_EQUAL` +BaseMaterial3D.STENCIL_COMPARE_ALWAYS = 0 +BaseMaterial3D.STENCIL_COMPARE_LESS = 1 +BaseMaterial3D.STENCIL_COMPARE_EQUAL = 2 +BaseMaterial3D.STENCIL_COMPARE_LESS_OR_EQUAL = 3 +BaseMaterial3D.STENCIL_COMPARE_GREATER = 4 +BaseMaterial3D.STENCIL_COMPARE_NOT_EQUAL = 5 +BaseMaterial3D.STENCIL_COMPARE_GREATER_OR_EQUAL = 6 + +--- @param albedo Color +function BaseMaterial3D:set_albedo(albedo) end + +--- @return Color +function BaseMaterial3D:get_albedo() end + +--- @param transparency BaseMaterial3D.Transparency +function BaseMaterial3D:set_transparency(transparency) end + +--- @return BaseMaterial3D.Transparency +function BaseMaterial3D:get_transparency() end + +--- @param alpha_aa BaseMaterial3D.AlphaAntiAliasing +function BaseMaterial3D:set_alpha_antialiasing(alpha_aa) end + +--- @return BaseMaterial3D.AlphaAntiAliasing +function BaseMaterial3D:get_alpha_antialiasing() end + +--- @param edge float +function BaseMaterial3D:set_alpha_antialiasing_edge(edge) end + +--- @return float +function BaseMaterial3D:get_alpha_antialiasing_edge() end + +--- @param shading_mode BaseMaterial3D.ShadingMode +function BaseMaterial3D:set_shading_mode(shading_mode) end + +--- @return BaseMaterial3D.ShadingMode +function BaseMaterial3D:get_shading_mode() end + +--- @param specular float +function BaseMaterial3D:set_specular(specular) end + +--- @return float +function BaseMaterial3D:get_specular() end + +--- @param metallic float +function BaseMaterial3D:set_metallic(metallic) end + +--- @return float +function BaseMaterial3D:get_metallic() end + +--- @param roughness float +function BaseMaterial3D:set_roughness(roughness) end + +--- @return float +function BaseMaterial3D:get_roughness() end + +--- @param emission Color +function BaseMaterial3D:set_emission(emission) end + +--- @return Color +function BaseMaterial3D:get_emission() end + +--- @param emission_energy_multiplier float +function BaseMaterial3D:set_emission_energy_multiplier(emission_energy_multiplier) end + +--- @return float +function BaseMaterial3D:get_emission_energy_multiplier() end + +--- @param emission_energy_multiplier float +function BaseMaterial3D:set_emission_intensity(emission_energy_multiplier) end + +--- @return float +function BaseMaterial3D:get_emission_intensity() end + +--- @param normal_scale float +function BaseMaterial3D:set_normal_scale(normal_scale) end + +--- @return float +function BaseMaterial3D:get_normal_scale() end + +--- @param rim float +function BaseMaterial3D:set_rim(rim) end + +--- @return float +function BaseMaterial3D:get_rim() end + +--- @param rim_tint float +function BaseMaterial3D:set_rim_tint(rim_tint) end + +--- @return float +function BaseMaterial3D:get_rim_tint() end + +--- @param clearcoat float +function BaseMaterial3D:set_clearcoat(clearcoat) end + +--- @return float +function BaseMaterial3D:get_clearcoat() end + +--- @param clearcoat_roughness float +function BaseMaterial3D:set_clearcoat_roughness(clearcoat_roughness) end + +--- @return float +function BaseMaterial3D:get_clearcoat_roughness() end + +--- @param anisotropy float +function BaseMaterial3D:set_anisotropy(anisotropy) end + +--- @return float +function BaseMaterial3D:get_anisotropy() end + +--- @param heightmap_scale float +function BaseMaterial3D:set_heightmap_scale(heightmap_scale) end + +--- @return float +function BaseMaterial3D:get_heightmap_scale() end + +--- @param strength float +function BaseMaterial3D:set_subsurface_scattering_strength(strength) end + +--- @return float +function BaseMaterial3D:get_subsurface_scattering_strength() end + +--- @param color Color +function BaseMaterial3D:set_transmittance_color(color) end + +--- @return Color +function BaseMaterial3D:get_transmittance_color() end + +--- @param depth float +function BaseMaterial3D:set_transmittance_depth(depth) end + +--- @return float +function BaseMaterial3D:get_transmittance_depth() end + +--- @param boost float +function BaseMaterial3D:set_transmittance_boost(boost) end + +--- @return float +function BaseMaterial3D:get_transmittance_boost() end + +--- @param backlight Color +function BaseMaterial3D:set_backlight(backlight) end + +--- @return Color +function BaseMaterial3D:get_backlight() end + +--- @param refraction float +function BaseMaterial3D:set_refraction(refraction) end + +--- @return float +function BaseMaterial3D:get_refraction() end + +--- @param point_size float +function BaseMaterial3D:set_point_size(point_size) end + +--- @return float +function BaseMaterial3D:get_point_size() end + +--- @param detail_uv BaseMaterial3D.DetailUV +function BaseMaterial3D:set_detail_uv(detail_uv) end + +--- @return BaseMaterial3D.DetailUV +function BaseMaterial3D:get_detail_uv() end + +--- @param blend_mode BaseMaterial3D.BlendMode +function BaseMaterial3D:set_blend_mode(blend_mode) end + +--- @return BaseMaterial3D.BlendMode +function BaseMaterial3D:get_blend_mode() end + +--- @param depth_draw_mode BaseMaterial3D.DepthDrawMode +function BaseMaterial3D:set_depth_draw_mode(depth_draw_mode) end + +--- @return BaseMaterial3D.DepthDrawMode +function BaseMaterial3D:get_depth_draw_mode() end + +--- @param depth_test BaseMaterial3D.DepthTest +function BaseMaterial3D:set_depth_test(depth_test) end + +--- @return BaseMaterial3D.DepthTest +function BaseMaterial3D:get_depth_test() end + +--- @param cull_mode BaseMaterial3D.CullMode +function BaseMaterial3D:set_cull_mode(cull_mode) end + +--- @return BaseMaterial3D.CullMode +function BaseMaterial3D:get_cull_mode() end + +--- @param diffuse_mode BaseMaterial3D.DiffuseMode +function BaseMaterial3D:set_diffuse_mode(diffuse_mode) end + +--- @return BaseMaterial3D.DiffuseMode +function BaseMaterial3D:get_diffuse_mode() end + +--- @param specular_mode BaseMaterial3D.SpecularMode +function BaseMaterial3D:set_specular_mode(specular_mode) end + +--- @return BaseMaterial3D.SpecularMode +function BaseMaterial3D:get_specular_mode() end + +--- @param flag BaseMaterial3D.Flags +--- @param enable bool +function BaseMaterial3D:set_flag(flag, enable) end + +--- @param flag BaseMaterial3D.Flags +--- @return bool +function BaseMaterial3D:get_flag(flag) end + +--- @param mode BaseMaterial3D.TextureFilter +function BaseMaterial3D:set_texture_filter(mode) end + +--- @return BaseMaterial3D.TextureFilter +function BaseMaterial3D:get_texture_filter() end + +--- @param feature BaseMaterial3D.Feature +--- @param enable bool +function BaseMaterial3D:set_feature(feature, enable) end + +--- @param feature BaseMaterial3D.Feature +--- @return bool +function BaseMaterial3D:get_feature(feature) end + +--- @param param BaseMaterial3D.TextureParam +--- @param texture Texture2D +function BaseMaterial3D:set_texture(param, texture) end + +--- @param param BaseMaterial3D.TextureParam +--- @return Texture2D +function BaseMaterial3D:get_texture(param) end + +--- @param detail_blend_mode BaseMaterial3D.BlendMode +function BaseMaterial3D:set_detail_blend_mode(detail_blend_mode) end + +--- @return BaseMaterial3D.BlendMode +function BaseMaterial3D:get_detail_blend_mode() end + +--- @param scale Vector3 +function BaseMaterial3D:set_uv1_scale(scale) end + +--- @return Vector3 +function BaseMaterial3D:get_uv1_scale() end + +--- @param offset Vector3 +function BaseMaterial3D:set_uv1_offset(offset) end + +--- @return Vector3 +function BaseMaterial3D:get_uv1_offset() end + +--- @param sharpness float +function BaseMaterial3D:set_uv1_triplanar_blend_sharpness(sharpness) end + +--- @return float +function BaseMaterial3D:get_uv1_triplanar_blend_sharpness() end + +--- @param scale Vector3 +function BaseMaterial3D:set_uv2_scale(scale) end + +--- @return Vector3 +function BaseMaterial3D:get_uv2_scale() end + +--- @param offset Vector3 +function BaseMaterial3D:set_uv2_offset(offset) end + +--- @return Vector3 +function BaseMaterial3D:get_uv2_offset() end + +--- @param sharpness float +function BaseMaterial3D:set_uv2_triplanar_blend_sharpness(sharpness) end + +--- @return float +function BaseMaterial3D:get_uv2_triplanar_blend_sharpness() end + +--- @param mode BaseMaterial3D.BillboardMode +function BaseMaterial3D:set_billboard_mode(mode) end + +--- @return BaseMaterial3D.BillboardMode +function BaseMaterial3D:get_billboard_mode() end + +--- @param frames int +function BaseMaterial3D:set_particles_anim_h_frames(frames) end + +--- @return int +function BaseMaterial3D:get_particles_anim_h_frames() end + +--- @param frames int +function BaseMaterial3D:set_particles_anim_v_frames(frames) end + +--- @return int +function BaseMaterial3D:get_particles_anim_v_frames() end + +--- @param loop bool +function BaseMaterial3D:set_particles_anim_loop(loop) end + +--- @return bool +function BaseMaterial3D:get_particles_anim_loop() end + +--- @param enable bool +function BaseMaterial3D:set_heightmap_deep_parallax(enable) end + +--- @return bool +function BaseMaterial3D:is_heightmap_deep_parallax_enabled() end + +--- @param layer int +function BaseMaterial3D:set_heightmap_deep_parallax_min_layers(layer) end + +--- @return int +function BaseMaterial3D:get_heightmap_deep_parallax_min_layers() end + +--- @param layer int +function BaseMaterial3D:set_heightmap_deep_parallax_max_layers(layer) end + +--- @return int +function BaseMaterial3D:get_heightmap_deep_parallax_max_layers() end + +--- @param flip bool +function BaseMaterial3D:set_heightmap_deep_parallax_flip_tangent(flip) end + +--- @return bool +function BaseMaterial3D:get_heightmap_deep_parallax_flip_tangent() end + +--- @param flip bool +function BaseMaterial3D:set_heightmap_deep_parallax_flip_binormal(flip) end + +--- @return bool +function BaseMaterial3D:get_heightmap_deep_parallax_flip_binormal() end + +--- @param amount float +function BaseMaterial3D:set_grow(amount) end + +--- @return float +function BaseMaterial3D:get_grow() end + +--- @param operator BaseMaterial3D.EmissionOperator +function BaseMaterial3D:set_emission_operator(operator) end + +--- @return BaseMaterial3D.EmissionOperator +function BaseMaterial3D:get_emission_operator() end + +--- @param amount float +function BaseMaterial3D:set_ao_light_affect(amount) end + +--- @return float +function BaseMaterial3D:get_ao_light_affect() end + +--- @param threshold float +function BaseMaterial3D:set_alpha_scissor_threshold(threshold) end + +--- @return float +function BaseMaterial3D:get_alpha_scissor_threshold() end + +--- @param threshold float +function BaseMaterial3D:set_alpha_hash_scale(threshold) end + +--- @return float +function BaseMaterial3D:get_alpha_hash_scale() end + +--- @param enable bool +function BaseMaterial3D:set_grow_enabled(enable) end + +--- @return bool +function BaseMaterial3D:is_grow_enabled() end + +--- @param channel BaseMaterial3D.TextureChannel +function BaseMaterial3D:set_metallic_texture_channel(channel) end + +--- @return BaseMaterial3D.TextureChannel +function BaseMaterial3D:get_metallic_texture_channel() end + +--- @param channel BaseMaterial3D.TextureChannel +function BaseMaterial3D:set_roughness_texture_channel(channel) end + +--- @return BaseMaterial3D.TextureChannel +function BaseMaterial3D:get_roughness_texture_channel() end + +--- @param channel BaseMaterial3D.TextureChannel +function BaseMaterial3D:set_ao_texture_channel(channel) end + +--- @return BaseMaterial3D.TextureChannel +function BaseMaterial3D:get_ao_texture_channel() end + +--- @param channel BaseMaterial3D.TextureChannel +function BaseMaterial3D:set_refraction_texture_channel(channel) end + +--- @return BaseMaterial3D.TextureChannel +function BaseMaterial3D:get_refraction_texture_channel() end + +--- @param enabled bool +function BaseMaterial3D:set_proximity_fade_enabled(enabled) end + +--- @return bool +function BaseMaterial3D:is_proximity_fade_enabled() end + +--- @param distance float +function BaseMaterial3D:set_proximity_fade_distance(distance) end + +--- @return float +function BaseMaterial3D:get_proximity_fade_distance() end + +--- @param range float +function BaseMaterial3D:set_msdf_pixel_range(range) end + +--- @return float +function BaseMaterial3D:get_msdf_pixel_range() end + +--- @param size float +function BaseMaterial3D:set_msdf_outline_size(size) end + +--- @return float +function BaseMaterial3D:get_msdf_outline_size() end + +--- @param mode BaseMaterial3D.DistanceFadeMode +function BaseMaterial3D:set_distance_fade(mode) end + +--- @return BaseMaterial3D.DistanceFadeMode +function BaseMaterial3D:get_distance_fade() end + +--- @param distance float +function BaseMaterial3D:set_distance_fade_max_distance(distance) end + +--- @return float +function BaseMaterial3D:get_distance_fade_max_distance() end + +--- @param distance float +function BaseMaterial3D:set_distance_fade_min_distance(distance) end + +--- @return float +function BaseMaterial3D:get_distance_fade_min_distance() end + +--- @param scale float +function BaseMaterial3D:set_z_clip_scale(scale) end + +--- @return float +function BaseMaterial3D:get_z_clip_scale() end + +--- @param scale float +function BaseMaterial3D:set_fov_override(scale) end + +--- @return float +function BaseMaterial3D:get_fov_override() end + +--- @param stencil_mode BaseMaterial3D.StencilMode +function BaseMaterial3D:set_stencil_mode(stencil_mode) end + +--- @return BaseMaterial3D.StencilMode +function BaseMaterial3D:get_stencil_mode() end + +--- @param stencil_flags int +function BaseMaterial3D:set_stencil_flags(stencil_flags) end + +--- @return int +function BaseMaterial3D:get_stencil_flags() end + +--- @param stencil_compare BaseMaterial3D.StencilCompare +function BaseMaterial3D:set_stencil_compare(stencil_compare) end + +--- @return BaseMaterial3D.StencilCompare +function BaseMaterial3D:get_stencil_compare() end + +--- @param stencil_reference int +function BaseMaterial3D:set_stencil_reference(stencil_reference) end + +--- @return int +function BaseMaterial3D:get_stencil_reference() end + +--- @param stencil_color Color +function BaseMaterial3D:set_stencil_effect_color(stencil_color) end + +--- @return Color +function BaseMaterial3D:get_stencil_effect_color() end + +--- @param stencil_outline_thickness float +function BaseMaterial3D:set_stencil_effect_outline_thickness(stencil_outline_thickness) end + +--- @return float +function BaseMaterial3D:get_stencil_effect_outline_thickness() end + + +----------------------------------------------------------- +-- BitMap +----------------------------------------------------------- + +--- @class BitMap: Resource, { [string]: any } +--- @field data Dictionary +BitMap = {} + +--- @return BitMap +function BitMap:new() end + +--- @param size Vector2i +function BitMap:create(size) end + +--- @param image Image +--- @param threshold float? Default: 0.1 +function BitMap:create_from_image_alpha(image, threshold) end + +--- @param position Vector2i +--- @param bit bool +function BitMap:set_bitv(position, bit) end + +--- @param x int +--- @param y int +--- @param bit bool +function BitMap:set_bit(x, y, bit) end + +--- @param position Vector2i +--- @return bool +function BitMap:get_bitv(position) end + +--- @param x int +--- @param y int +--- @return bool +function BitMap:get_bit(x, y) end + +--- @param rect Rect2i +--- @param bit bool +function BitMap:set_bit_rect(rect, bit) end + +--- @return int +function BitMap:get_true_bit_count() end + +--- @return Vector2i +function BitMap:get_size() end + +--- @param new_size Vector2i +function BitMap:resize(new_size) end + +--- @param pixels int +--- @param rect Rect2i +function BitMap:grow_mask(pixels, rect) end + +--- @return Image +function BitMap:convert_to_image() end + +--- @param rect Rect2i +--- @param epsilon float? Default: 2.0 +--- @return Array[PackedVector2Array] +function BitMap:opaque_to_polygons(rect, epsilon) end + + +----------------------------------------------------------- +-- Bone2D +----------------------------------------------------------- + +--- @class Bone2D: Node2D, { [string]: any } +--- @field rest Transform2D +Bone2D = {} + +--- @return Bone2D +function Bone2D:new() end + +--- @param rest Transform2D +function Bone2D:set_rest(rest) end + +--- @return Transform2D +function Bone2D:get_rest() end + +function Bone2D:apply_rest() end + +--- @return Transform2D +function Bone2D:get_skeleton_rest() end + +--- @return int +function Bone2D:get_index_in_skeleton() end + +--- @param auto_calculate bool +function Bone2D:set_autocalculate_length_and_angle(auto_calculate) end + +--- @return bool +function Bone2D:get_autocalculate_length_and_angle() end + +--- @param length float +function Bone2D:set_length(length) end + +--- @return float +function Bone2D:get_length() end + +--- @param angle float +function Bone2D:set_bone_angle(angle) end + +--- @return float +function Bone2D:get_bone_angle() end + + +----------------------------------------------------------- +-- BoneAttachment3D +----------------------------------------------------------- + +--- @class BoneAttachment3D: Node3D, { [string]: any } +--- @field bone_name StringName +--- @field bone_idx int +--- @field override_pose bool +--- @field use_external_skeleton bool +--- @field external_skeleton NodePath +BoneAttachment3D = {} + +--- @return BoneAttachment3D +function BoneAttachment3D:new() end + +--- @return Skeleton3D +function BoneAttachment3D:get_skeleton() end + +--- @param bone_name String +function BoneAttachment3D:set_bone_name(bone_name) end + +--- @return String +function BoneAttachment3D:get_bone_name() end + +--- @param bone_idx int +function BoneAttachment3D:set_bone_idx(bone_idx) end + +--- @return int +function BoneAttachment3D:get_bone_idx() end + +function BoneAttachment3D:on_skeleton_update() end + +--- @param override_pose bool +function BoneAttachment3D:set_override_pose(override_pose) end + +--- @return bool +function BoneAttachment3D:get_override_pose() end + +--- @param use_external_skeleton bool +function BoneAttachment3D:set_use_external_skeleton(use_external_skeleton) end + +--- @return bool +function BoneAttachment3D:get_use_external_skeleton() end + +--- @param external_skeleton NodePath +function BoneAttachment3D:set_external_skeleton(external_skeleton) end + +--- @return NodePath +function BoneAttachment3D:get_external_skeleton() end + + +----------------------------------------------------------- +-- BoneConstraint3D +----------------------------------------------------------- + +--- @class BoneConstraint3D: SkeletonModifier3D, { [string]: any } +BoneConstraint3D = {} + +--- @return BoneConstraint3D +function BoneConstraint3D:new() end + +--- @param index int +--- @param amount float +function BoneConstraint3D:set_amount(index, amount) end + +--- @param index int +--- @return float +function BoneConstraint3D:get_amount(index) end + +--- @param index int +--- @param bone_name String +function BoneConstraint3D:set_apply_bone_name(index, bone_name) end + +--- @param index int +--- @return String +function BoneConstraint3D:get_apply_bone_name(index) end + +--- @param index int +--- @param bone int +function BoneConstraint3D:set_apply_bone(index, bone) end + +--- @param index int +--- @return int +function BoneConstraint3D:get_apply_bone(index) end + +--- @param index int +--- @param bone_name String +function BoneConstraint3D:set_reference_bone_name(index, bone_name) end + +--- @param index int +--- @return String +function BoneConstraint3D:get_reference_bone_name(index) end + +--- @param index int +--- @param bone int +function BoneConstraint3D:set_reference_bone(index, bone) end + +--- @param index int +--- @return int +function BoneConstraint3D:get_reference_bone(index) end + +--- @param count int +function BoneConstraint3D:set_setting_count(count) end + +--- @return int +function BoneConstraint3D:get_setting_count() end + +function BoneConstraint3D:clear_setting() end + + +----------------------------------------------------------- +-- BoneMap +----------------------------------------------------------- + +--- @class BoneMap: Resource, { [string]: any } +--- @field profile SkeletonProfile +BoneMap = {} + +--- @return BoneMap +function BoneMap:new() end + +BoneMap.bone_map_updated = Signal() +BoneMap.profile_updated = Signal() + +--- @return SkeletonProfile +function BoneMap:get_profile() end + +--- @param profile SkeletonProfile +function BoneMap:set_profile(profile) end + +--- @param profile_bone_name StringName +--- @return StringName +function BoneMap:get_skeleton_bone_name(profile_bone_name) end + +--- @param profile_bone_name StringName +--- @param skeleton_bone_name StringName +function BoneMap:set_skeleton_bone_name(profile_bone_name, skeleton_bone_name) end + +--- @param skeleton_bone_name StringName +--- @return StringName +function BoneMap:find_profile_bone_name(skeleton_bone_name) end + + +----------------------------------------------------------- +-- BoxContainer +----------------------------------------------------------- + +--- @class BoxContainer: Container, { [string]: any } +--- @field alignment int +--- @field vertical bool +BoxContainer = {} + +--- @return BoxContainer +function BoxContainer:new() end + +--- @alias BoxContainer.AlignmentMode `BoxContainer.ALIGNMENT_BEGIN` | `BoxContainer.ALIGNMENT_CENTER` | `BoxContainer.ALIGNMENT_END` +BoxContainer.ALIGNMENT_BEGIN = 0 +BoxContainer.ALIGNMENT_CENTER = 1 +BoxContainer.ALIGNMENT_END = 2 + +--- @param begin bool +--- @return Control +function BoxContainer:add_spacer(begin) end + +--- @param alignment BoxContainer.AlignmentMode +function BoxContainer:set_alignment(alignment) end + +--- @return BoxContainer.AlignmentMode +function BoxContainer:get_alignment() end + +--- @param vertical bool +function BoxContainer:set_vertical(vertical) end + +--- @return bool +function BoxContainer:is_vertical() end + + +----------------------------------------------------------- +-- BoxMesh +----------------------------------------------------------- + +--- @class BoxMesh: PrimitiveMesh, { [string]: any } +--- @field size Vector3 +--- @field subdivide_width int +--- @field subdivide_height int +--- @field subdivide_depth int +BoxMesh = {} + +--- @return BoxMesh +function BoxMesh:new() end + +--- @param size Vector3 +function BoxMesh:set_size(size) end + +--- @return Vector3 +function BoxMesh:get_size() end + +--- @param subdivide int +function BoxMesh:set_subdivide_width(subdivide) end + +--- @return int +function BoxMesh:get_subdivide_width() end + +--- @param divisions int +function BoxMesh:set_subdivide_height(divisions) end + +--- @return int +function BoxMesh:get_subdivide_height() end + +--- @param divisions int +function BoxMesh:set_subdivide_depth(divisions) end + +--- @return int +function BoxMesh:get_subdivide_depth() end + + +----------------------------------------------------------- +-- BoxOccluder3D +----------------------------------------------------------- + +--- @class BoxOccluder3D: Occluder3D, { [string]: any } +--- @field size Vector3 +BoxOccluder3D = {} + +--- @return BoxOccluder3D +function BoxOccluder3D:new() end + +--- @param size Vector3 +function BoxOccluder3D:set_size(size) end + +--- @return Vector3 +function BoxOccluder3D:get_size() end + + +----------------------------------------------------------- +-- BoxShape3D +----------------------------------------------------------- + +--- @class BoxShape3D: Shape3D, { [string]: any } +--- @field size Vector3 +BoxShape3D = {} + +--- @return BoxShape3D +function BoxShape3D:new() end + +--- @param size Vector3 +function BoxShape3D:set_size(size) end + +--- @return Vector3 +function BoxShape3D:get_size() end + + +----------------------------------------------------------- +-- Button +----------------------------------------------------------- + +--- @class Button: BaseButton, { [string]: any } +--- @field text String +--- @field icon Texture2D +--- @field flat bool +--- @field alignment int +--- @field text_overrun_behavior int +--- @field autowrap_mode int +--- @field autowrap_trim_flags int +--- @field clip_text bool +--- @field icon_alignment int +--- @field vertical_icon_alignment int +--- @field expand_icon bool +--- @field text_direction int +--- @field language String +Button = {} + +--- @return Button +function Button:new() end + +--- @param text String +function Button:set_text(text) end + +--- @return String +function Button:get_text() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function Button:set_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function Button:get_text_overrun_behavior() end + +--- @param autowrap_mode TextServer.AutowrapMode +function Button:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function Button:get_autowrap_mode() end + +--- @param autowrap_trim_flags TextServer.LineBreakFlag +function Button:set_autowrap_trim_flags(autowrap_trim_flags) end + +--- @return TextServer.LineBreakFlag +function Button:get_autowrap_trim_flags() end + +--- @param direction Control.TextDirection +function Button:set_text_direction(direction) end + +--- @return Control.TextDirection +function Button:get_text_direction() end + +--- @param language String +function Button:set_language(language) end + +--- @return String +function Button:get_language() end + +--- @param texture Texture2D +function Button:set_button_icon(texture) end + +--- @return Texture2D +function Button:get_button_icon() end + +--- @param enabled bool +function Button:set_flat(enabled) end + +--- @return bool +function Button:is_flat() end + +--- @param enabled bool +function Button:set_clip_text(enabled) end + +--- @return bool +function Button:get_clip_text() end + +--- @param alignment HorizontalAlignment +function Button:set_text_alignment(alignment) end + +--- @return HorizontalAlignment +function Button:get_text_alignment() end + +--- @param icon_alignment HorizontalAlignment +function Button:set_icon_alignment(icon_alignment) end + +--- @return HorizontalAlignment +function Button:get_icon_alignment() end + +--- @param vertical_icon_alignment VerticalAlignment +function Button:set_vertical_icon_alignment(vertical_icon_alignment) end + +--- @return VerticalAlignment +function Button:get_vertical_icon_alignment() end + +--- @param enabled bool +function Button:set_expand_icon(enabled) end + +--- @return bool +function Button:is_expand_icon() end + + +----------------------------------------------------------- +-- ButtonGroup +----------------------------------------------------------- + +--- @class ButtonGroup: Resource, { [string]: any } +--- @field allow_unpress bool +ButtonGroup = {} + +--- @return ButtonGroup +function ButtonGroup:new() end + +ButtonGroup.pressed = Signal() + +--- @return BaseButton +function ButtonGroup:get_pressed_button() end + +--- @return Array[BaseButton] +function ButtonGroup:get_buttons() end + +--- @param enabled bool +function ButtonGroup:set_allow_unpress(enabled) end + +--- @return bool +function ButtonGroup:is_allow_unpress() end + + +----------------------------------------------------------- +-- CPUParticles2D +----------------------------------------------------------- + +--- @class CPUParticles2D: Node2D, { [string]: any } +--- @field emitting bool +--- @field amount int +--- @field texture Texture2D +--- @field lifetime float +--- @field one_shot bool +--- @field preprocess float +--- @field speed_scale float +--- @field explosiveness float +--- @field randomness float +--- @field use_fixed_seed bool +--- @field seed int +--- @field lifetime_randomness float +--- @field fixed_fps int +--- @field fract_delta bool +--- @field local_coords bool +--- @field draw_order int +--- @field emission_shape int +--- @field emission_sphere_radius float +--- @field emission_rect_extents Vector2 +--- @field emission_points PackedVector2Array +--- @field emission_normals PackedVector2Array +--- @field emission_colors PackedColorArray +--- @field particle_flag_align_y bool +--- @field direction Vector2 +--- @field spread float +--- @field gravity Vector2 +--- @field initial_velocity_min float +--- @field initial_velocity_max float +--- @field angular_velocity_min float +--- @field angular_velocity_max float +--- @field angular_velocity_curve Curve +--- @field orbit_velocity_min float +--- @field orbit_velocity_max float +--- @field orbit_velocity_curve Curve +--- @field linear_accel_min float +--- @field linear_accel_max float +--- @field linear_accel_curve Curve +--- @field radial_accel_min float +--- @field radial_accel_max float +--- @field radial_accel_curve Curve +--- @field tangential_accel_min float +--- @field tangential_accel_max float +--- @field tangential_accel_curve Curve +--- @field damping_min float +--- @field damping_max float +--- @field damping_curve Curve +--- @field angle_min float +--- @field angle_max float +--- @field angle_curve Curve +--- @field scale_amount_min float +--- @field scale_amount_max float +--- @field scale_amount_curve Curve +--- @field split_scale bool +--- @field scale_curve_x Curve +--- @field scale_curve_y Curve +--- @field color Color +--- @field color_ramp Gradient +--- @field color_initial_ramp Gradient +--- @field hue_variation_min float +--- @field hue_variation_max float +--- @field hue_variation_curve Curve +--- @field anim_speed_min float +--- @field anim_speed_max float +--- @field anim_speed_curve Curve +--- @field anim_offset_min float +--- @field anim_offset_max float +--- @field anim_offset_curve Curve +CPUParticles2D = {} + +--- @return CPUParticles2D +function CPUParticles2D:new() end + +--- @alias CPUParticles2D.DrawOrder `CPUParticles2D.DRAW_ORDER_INDEX` | `CPUParticles2D.DRAW_ORDER_LIFETIME` +CPUParticles2D.DRAW_ORDER_INDEX = 0 +CPUParticles2D.DRAW_ORDER_LIFETIME = 1 + +--- @alias CPUParticles2D.Parameter `CPUParticles2D.PARAM_INITIAL_LINEAR_VELOCITY` | `CPUParticles2D.PARAM_ANGULAR_VELOCITY` | `CPUParticles2D.PARAM_ORBIT_VELOCITY` | `CPUParticles2D.PARAM_LINEAR_ACCEL` | `CPUParticles2D.PARAM_RADIAL_ACCEL` | `CPUParticles2D.PARAM_TANGENTIAL_ACCEL` | `CPUParticles2D.PARAM_DAMPING` | `CPUParticles2D.PARAM_ANGLE` | `CPUParticles2D.PARAM_SCALE` | `CPUParticles2D.PARAM_HUE_VARIATION` | `CPUParticles2D.PARAM_ANIM_SPEED` | `CPUParticles2D.PARAM_ANIM_OFFSET` | `CPUParticles2D.PARAM_MAX` +CPUParticles2D.PARAM_INITIAL_LINEAR_VELOCITY = 0 +CPUParticles2D.PARAM_ANGULAR_VELOCITY = 1 +CPUParticles2D.PARAM_ORBIT_VELOCITY = 2 +CPUParticles2D.PARAM_LINEAR_ACCEL = 3 +CPUParticles2D.PARAM_RADIAL_ACCEL = 4 +CPUParticles2D.PARAM_TANGENTIAL_ACCEL = 5 +CPUParticles2D.PARAM_DAMPING = 6 +CPUParticles2D.PARAM_ANGLE = 7 +CPUParticles2D.PARAM_SCALE = 8 +CPUParticles2D.PARAM_HUE_VARIATION = 9 +CPUParticles2D.PARAM_ANIM_SPEED = 10 +CPUParticles2D.PARAM_ANIM_OFFSET = 11 +CPUParticles2D.PARAM_MAX = 12 + +--- @alias CPUParticles2D.ParticleFlags `CPUParticles2D.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY` | `CPUParticles2D.PARTICLE_FLAG_ROTATE_Y` | `CPUParticles2D.PARTICLE_FLAG_DISABLE_Z` | `CPUParticles2D.PARTICLE_FLAG_MAX` +CPUParticles2D.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0 +CPUParticles2D.PARTICLE_FLAG_ROTATE_Y = 1 +CPUParticles2D.PARTICLE_FLAG_DISABLE_Z = 2 +CPUParticles2D.PARTICLE_FLAG_MAX = 3 + +--- @alias CPUParticles2D.EmissionShape `CPUParticles2D.EMISSION_SHAPE_POINT` | `CPUParticles2D.EMISSION_SHAPE_SPHERE` | `CPUParticles2D.EMISSION_SHAPE_SPHERE_SURFACE` | `CPUParticles2D.EMISSION_SHAPE_RECTANGLE` | `CPUParticles2D.EMISSION_SHAPE_POINTS` | `CPUParticles2D.EMISSION_SHAPE_DIRECTED_POINTS` | `CPUParticles2D.EMISSION_SHAPE_MAX` +CPUParticles2D.EMISSION_SHAPE_POINT = 0 +CPUParticles2D.EMISSION_SHAPE_SPHERE = 1 +CPUParticles2D.EMISSION_SHAPE_SPHERE_SURFACE = 2 +CPUParticles2D.EMISSION_SHAPE_RECTANGLE = 3 +CPUParticles2D.EMISSION_SHAPE_POINTS = 4 +CPUParticles2D.EMISSION_SHAPE_DIRECTED_POINTS = 5 +CPUParticles2D.EMISSION_SHAPE_MAX = 6 + +CPUParticles2D.finished = Signal() + +--- @param emitting bool +function CPUParticles2D:set_emitting(emitting) end + +--- @param amount int +function CPUParticles2D:set_amount(amount) end + +--- @param secs float +function CPUParticles2D:set_lifetime(secs) end + +--- @param enable bool +function CPUParticles2D:set_one_shot(enable) end + +--- @param secs float +function CPUParticles2D:set_pre_process_time(secs) end + +--- @param ratio float +function CPUParticles2D:set_explosiveness_ratio(ratio) end + +--- @param ratio float +function CPUParticles2D:set_randomness_ratio(ratio) end + +--- @param random float +function CPUParticles2D:set_lifetime_randomness(random) end + +--- @param enable bool +function CPUParticles2D:set_use_local_coordinates(enable) end + +--- @param fps int +function CPUParticles2D:set_fixed_fps(fps) end + +--- @param enable bool +function CPUParticles2D:set_fractional_delta(enable) end + +--- @param scale float +function CPUParticles2D:set_speed_scale(scale) end + +--- @param process_time float +function CPUParticles2D:request_particles_process(process_time) end + +--- @return bool +function CPUParticles2D:is_emitting() end + +--- @return int +function CPUParticles2D:get_amount() end + +--- @return float +function CPUParticles2D:get_lifetime() end + +--- @return bool +function CPUParticles2D:get_one_shot() end + +--- @return float +function CPUParticles2D:get_pre_process_time() end + +--- @return float +function CPUParticles2D:get_explosiveness_ratio() end + +--- @return float +function CPUParticles2D:get_randomness_ratio() end + +--- @return float +function CPUParticles2D:get_lifetime_randomness() end + +--- @return bool +function CPUParticles2D:get_use_local_coordinates() end + +--- @return int +function CPUParticles2D:get_fixed_fps() end + +--- @return bool +function CPUParticles2D:get_fractional_delta() end + +--- @return float +function CPUParticles2D:get_speed_scale() end + +--- @param use_fixed_seed bool +function CPUParticles2D:set_use_fixed_seed(use_fixed_seed) end + +--- @return bool +function CPUParticles2D:get_use_fixed_seed() end + +--- @param seed int +function CPUParticles2D:set_seed(seed) end + +--- @return int +function CPUParticles2D:get_seed() end + +--- @param order CPUParticles2D.DrawOrder +function CPUParticles2D:set_draw_order(order) end + +--- @return CPUParticles2D.DrawOrder +function CPUParticles2D:get_draw_order() end + +--- @param texture Texture2D +function CPUParticles2D:set_texture(texture) end + +--- @return Texture2D +function CPUParticles2D:get_texture() end + +--- @param keep_seed bool? Default: false +function CPUParticles2D:restart(keep_seed) end + +--- @param direction Vector2 +function CPUParticles2D:set_direction(direction) end + +--- @return Vector2 +function CPUParticles2D:get_direction() end + +--- @param spread float +function CPUParticles2D:set_spread(spread) end + +--- @return float +function CPUParticles2D:get_spread() end + +--- @param param CPUParticles2D.Parameter +--- @param value float +function CPUParticles2D:set_param_min(param, value) end + +--- @param param CPUParticles2D.Parameter +--- @return float +function CPUParticles2D:get_param_min(param) end + +--- @param param CPUParticles2D.Parameter +--- @param value float +function CPUParticles2D:set_param_max(param, value) end + +--- @param param CPUParticles2D.Parameter +--- @return float +function CPUParticles2D:get_param_max(param) end + +--- @param param CPUParticles2D.Parameter +--- @param curve Curve +function CPUParticles2D:set_param_curve(param, curve) end + +--- @param param CPUParticles2D.Parameter +--- @return Curve +function CPUParticles2D:get_param_curve(param) end + +--- @param color Color +function CPUParticles2D:set_color(color) end + +--- @return Color +function CPUParticles2D:get_color() end + +--- @param ramp Gradient +function CPUParticles2D:set_color_ramp(ramp) end + +--- @return Gradient +function CPUParticles2D:get_color_ramp() end + +--- @param ramp Gradient +function CPUParticles2D:set_color_initial_ramp(ramp) end + +--- @return Gradient +function CPUParticles2D:get_color_initial_ramp() end + +--- @param particle_flag CPUParticles2D.ParticleFlags +--- @param enable bool +function CPUParticles2D:set_particle_flag(particle_flag, enable) end + +--- @param particle_flag CPUParticles2D.ParticleFlags +--- @return bool +function CPUParticles2D:get_particle_flag(particle_flag) end + +--- @param shape CPUParticles2D.EmissionShape +function CPUParticles2D:set_emission_shape(shape) end + +--- @return CPUParticles2D.EmissionShape +function CPUParticles2D:get_emission_shape() end + +--- @param radius float +function CPUParticles2D:set_emission_sphere_radius(radius) end + +--- @return float +function CPUParticles2D:get_emission_sphere_radius() end + +--- @param extents Vector2 +function CPUParticles2D:set_emission_rect_extents(extents) end + +--- @return Vector2 +function CPUParticles2D:get_emission_rect_extents() end + +--- @param array PackedVector2Array +function CPUParticles2D:set_emission_points(array) end + +--- @return PackedVector2Array +function CPUParticles2D:get_emission_points() end + +--- @param array PackedVector2Array +function CPUParticles2D:set_emission_normals(array) end + +--- @return PackedVector2Array +function CPUParticles2D:get_emission_normals() end + +--- @param array PackedColorArray +function CPUParticles2D:set_emission_colors(array) end + +--- @return PackedColorArray +function CPUParticles2D:get_emission_colors() end + +--- @return Vector2 +function CPUParticles2D:get_gravity() end + +--- @param accel_vec Vector2 +function CPUParticles2D:set_gravity(accel_vec) end + +--- @return bool +function CPUParticles2D:get_split_scale() end + +--- @param split_scale bool +function CPUParticles2D:set_split_scale(split_scale) end + +--- @return Curve +function CPUParticles2D:get_scale_curve_x() end + +--- @param scale_curve Curve +function CPUParticles2D:set_scale_curve_x(scale_curve) end + +--- @return Curve +function CPUParticles2D:get_scale_curve_y() end + +--- @param scale_curve Curve +function CPUParticles2D:set_scale_curve_y(scale_curve) end + +--- @param particles Node +function CPUParticles2D:convert_from_particles(particles) end + + +----------------------------------------------------------- +-- CPUParticles3D +----------------------------------------------------------- + +--- @class CPUParticles3D: GeometryInstance3D, { [string]: any } +--- @field emitting bool +--- @field amount int +--- @field lifetime float +--- @field one_shot bool +--- @field preprocess float +--- @field speed_scale float +--- @field explosiveness float +--- @field randomness float +--- @field use_fixed_seed bool +--- @field seed int +--- @field lifetime_randomness float +--- @field fixed_fps int +--- @field fract_delta bool +--- @field visibility_aabb AABB +--- @field local_coords bool +--- @field draw_order int +--- @field mesh Mesh +--- @field emission_shape int +--- @field emission_sphere_radius float +--- @field emission_box_extents Vector3 +--- @field emission_points PackedVector3Array +--- @field emission_normals PackedVector3Array +--- @field emission_colors PackedColorArray +--- @field emission_ring_axis Vector3 +--- @field emission_ring_height float +--- @field emission_ring_radius float +--- @field emission_ring_inner_radius float +--- @field emission_ring_cone_angle float +--- @field particle_flag_align_y bool +--- @field particle_flag_rotate_y bool +--- @field particle_flag_disable_z bool +--- @field direction Vector3 +--- @field spread float +--- @field flatness float +--- @field gravity Vector3 +--- @field initial_velocity_min float +--- @field initial_velocity_max float +--- @field angular_velocity_min float +--- @field angular_velocity_max float +--- @field angular_velocity_curve Curve +--- @field orbit_velocity_min float +--- @field orbit_velocity_max float +--- @field orbit_velocity_curve Curve +--- @field linear_accel_min float +--- @field linear_accel_max float +--- @field linear_accel_curve Curve +--- @field radial_accel_min float +--- @field radial_accel_max float +--- @field radial_accel_curve Curve +--- @field tangential_accel_min float +--- @field tangential_accel_max float +--- @field tangential_accel_curve Curve +--- @field damping_min float +--- @field damping_max float +--- @field damping_curve Curve +--- @field angle_min float +--- @field angle_max float +--- @field angle_curve Curve +--- @field scale_amount_min float +--- @field scale_amount_max float +--- @field scale_amount_curve Curve +--- @field split_scale bool +--- @field scale_curve_x Curve +--- @field scale_curve_y Curve +--- @field scale_curve_z Curve +--- @field color Color +--- @field color_ramp Gradient +--- @field color_initial_ramp Gradient +--- @field hue_variation_min float +--- @field hue_variation_max float +--- @field hue_variation_curve Curve +--- @field anim_speed_min float +--- @field anim_speed_max float +--- @field anim_speed_curve Curve +--- @field anim_offset_min float +--- @field anim_offset_max float +--- @field anim_offset_curve Curve +CPUParticles3D = {} + +--- @return CPUParticles3D +function CPUParticles3D:new() end + +--- @alias CPUParticles3D.DrawOrder `CPUParticles3D.DRAW_ORDER_INDEX` | `CPUParticles3D.DRAW_ORDER_LIFETIME` | `CPUParticles3D.DRAW_ORDER_VIEW_DEPTH` +CPUParticles3D.DRAW_ORDER_INDEX = 0 +CPUParticles3D.DRAW_ORDER_LIFETIME = 1 +CPUParticles3D.DRAW_ORDER_VIEW_DEPTH = 2 + +--- @alias CPUParticles3D.Parameter `CPUParticles3D.PARAM_INITIAL_LINEAR_VELOCITY` | `CPUParticles3D.PARAM_ANGULAR_VELOCITY` | `CPUParticles3D.PARAM_ORBIT_VELOCITY` | `CPUParticles3D.PARAM_LINEAR_ACCEL` | `CPUParticles3D.PARAM_RADIAL_ACCEL` | `CPUParticles3D.PARAM_TANGENTIAL_ACCEL` | `CPUParticles3D.PARAM_DAMPING` | `CPUParticles3D.PARAM_ANGLE` | `CPUParticles3D.PARAM_SCALE` | `CPUParticles3D.PARAM_HUE_VARIATION` | `CPUParticles3D.PARAM_ANIM_SPEED` | `CPUParticles3D.PARAM_ANIM_OFFSET` | `CPUParticles3D.PARAM_MAX` +CPUParticles3D.PARAM_INITIAL_LINEAR_VELOCITY = 0 +CPUParticles3D.PARAM_ANGULAR_VELOCITY = 1 +CPUParticles3D.PARAM_ORBIT_VELOCITY = 2 +CPUParticles3D.PARAM_LINEAR_ACCEL = 3 +CPUParticles3D.PARAM_RADIAL_ACCEL = 4 +CPUParticles3D.PARAM_TANGENTIAL_ACCEL = 5 +CPUParticles3D.PARAM_DAMPING = 6 +CPUParticles3D.PARAM_ANGLE = 7 +CPUParticles3D.PARAM_SCALE = 8 +CPUParticles3D.PARAM_HUE_VARIATION = 9 +CPUParticles3D.PARAM_ANIM_SPEED = 10 +CPUParticles3D.PARAM_ANIM_OFFSET = 11 +CPUParticles3D.PARAM_MAX = 12 + +--- @alias CPUParticles3D.ParticleFlags `CPUParticles3D.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY` | `CPUParticles3D.PARTICLE_FLAG_ROTATE_Y` | `CPUParticles3D.PARTICLE_FLAG_DISABLE_Z` | `CPUParticles3D.PARTICLE_FLAG_MAX` +CPUParticles3D.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0 +CPUParticles3D.PARTICLE_FLAG_ROTATE_Y = 1 +CPUParticles3D.PARTICLE_FLAG_DISABLE_Z = 2 +CPUParticles3D.PARTICLE_FLAG_MAX = 3 + +--- @alias CPUParticles3D.EmissionShape `CPUParticles3D.EMISSION_SHAPE_POINT` | `CPUParticles3D.EMISSION_SHAPE_SPHERE` | `CPUParticles3D.EMISSION_SHAPE_SPHERE_SURFACE` | `CPUParticles3D.EMISSION_SHAPE_BOX` | `CPUParticles3D.EMISSION_SHAPE_POINTS` | `CPUParticles3D.EMISSION_SHAPE_DIRECTED_POINTS` | `CPUParticles3D.EMISSION_SHAPE_RING` | `CPUParticles3D.EMISSION_SHAPE_MAX` +CPUParticles3D.EMISSION_SHAPE_POINT = 0 +CPUParticles3D.EMISSION_SHAPE_SPHERE = 1 +CPUParticles3D.EMISSION_SHAPE_SPHERE_SURFACE = 2 +CPUParticles3D.EMISSION_SHAPE_BOX = 3 +CPUParticles3D.EMISSION_SHAPE_POINTS = 4 +CPUParticles3D.EMISSION_SHAPE_DIRECTED_POINTS = 5 +CPUParticles3D.EMISSION_SHAPE_RING = 6 +CPUParticles3D.EMISSION_SHAPE_MAX = 7 + +CPUParticles3D.finished = Signal() + +--- @param emitting bool +function CPUParticles3D:set_emitting(emitting) end + +--- @param amount int +function CPUParticles3D:set_amount(amount) end + +--- @param secs float +function CPUParticles3D:set_lifetime(secs) end + +--- @param enable bool +function CPUParticles3D:set_one_shot(enable) end + +--- @param secs float +function CPUParticles3D:set_pre_process_time(secs) end + +--- @param ratio float +function CPUParticles3D:set_explosiveness_ratio(ratio) end + +--- @param ratio float +function CPUParticles3D:set_randomness_ratio(ratio) end + +--- @param aabb AABB +function CPUParticles3D:set_visibility_aabb(aabb) end + +--- @param random float +function CPUParticles3D:set_lifetime_randomness(random) end + +--- @param enable bool +function CPUParticles3D:set_use_local_coordinates(enable) end + +--- @param fps int +function CPUParticles3D:set_fixed_fps(fps) end + +--- @param enable bool +function CPUParticles3D:set_fractional_delta(enable) end + +--- @param scale float +function CPUParticles3D:set_speed_scale(scale) end + +--- @return bool +function CPUParticles3D:is_emitting() end + +--- @return int +function CPUParticles3D:get_amount() end + +--- @return float +function CPUParticles3D:get_lifetime() end + +--- @return bool +function CPUParticles3D:get_one_shot() end + +--- @return float +function CPUParticles3D:get_pre_process_time() end + +--- @return float +function CPUParticles3D:get_explosiveness_ratio() end + +--- @return float +function CPUParticles3D:get_randomness_ratio() end + +--- @return AABB +function CPUParticles3D:get_visibility_aabb() end + +--- @return float +function CPUParticles3D:get_lifetime_randomness() end + +--- @return bool +function CPUParticles3D:get_use_local_coordinates() end + +--- @return int +function CPUParticles3D:get_fixed_fps() end + +--- @return bool +function CPUParticles3D:get_fractional_delta() end + +--- @return float +function CPUParticles3D:get_speed_scale() end + +--- @param order CPUParticles3D.DrawOrder +function CPUParticles3D:set_draw_order(order) end + +--- @return CPUParticles3D.DrawOrder +function CPUParticles3D:get_draw_order() end + +--- @param mesh Mesh +function CPUParticles3D:set_mesh(mesh) end + +--- @return Mesh +function CPUParticles3D:get_mesh() end + +--- @param use_fixed_seed bool +function CPUParticles3D:set_use_fixed_seed(use_fixed_seed) end + +--- @return bool +function CPUParticles3D:get_use_fixed_seed() end + +--- @param seed int +function CPUParticles3D:set_seed(seed) end + +--- @return int +function CPUParticles3D:get_seed() end + +--- @param keep_seed bool? Default: false +function CPUParticles3D:restart(keep_seed) end + +--- @param process_time float +function CPUParticles3D:request_particles_process(process_time) end + +--- @return AABB +function CPUParticles3D:capture_aabb() end + +--- @param direction Vector3 +function CPUParticles3D:set_direction(direction) end + +--- @return Vector3 +function CPUParticles3D:get_direction() end + +--- @param degrees float +function CPUParticles3D:set_spread(degrees) end + +--- @return float +function CPUParticles3D:get_spread() end + +--- @param amount float +function CPUParticles3D:set_flatness(amount) end + +--- @return float +function CPUParticles3D:get_flatness() end + +--- @param param CPUParticles3D.Parameter +--- @param value float +function CPUParticles3D:set_param_min(param, value) end + +--- @param param CPUParticles3D.Parameter +--- @return float +function CPUParticles3D:get_param_min(param) end + +--- @param param CPUParticles3D.Parameter +--- @param value float +function CPUParticles3D:set_param_max(param, value) end + +--- @param param CPUParticles3D.Parameter +--- @return float +function CPUParticles3D:get_param_max(param) end + +--- @param param CPUParticles3D.Parameter +--- @param curve Curve +function CPUParticles3D:set_param_curve(param, curve) end + +--- @param param CPUParticles3D.Parameter +--- @return Curve +function CPUParticles3D:get_param_curve(param) end + +--- @param color Color +function CPUParticles3D:set_color(color) end + +--- @return Color +function CPUParticles3D:get_color() end + +--- @param ramp Gradient +function CPUParticles3D:set_color_ramp(ramp) end + +--- @return Gradient +function CPUParticles3D:get_color_ramp() end + +--- @param ramp Gradient +function CPUParticles3D:set_color_initial_ramp(ramp) end + +--- @return Gradient +function CPUParticles3D:get_color_initial_ramp() end + +--- @param particle_flag CPUParticles3D.ParticleFlags +--- @param enable bool +function CPUParticles3D:set_particle_flag(particle_flag, enable) end + +--- @param particle_flag CPUParticles3D.ParticleFlags +--- @return bool +function CPUParticles3D:get_particle_flag(particle_flag) end + +--- @param shape CPUParticles3D.EmissionShape +function CPUParticles3D:set_emission_shape(shape) end + +--- @return CPUParticles3D.EmissionShape +function CPUParticles3D:get_emission_shape() end + +--- @param radius float +function CPUParticles3D:set_emission_sphere_radius(radius) end + +--- @return float +function CPUParticles3D:get_emission_sphere_radius() end + +--- @param extents Vector3 +function CPUParticles3D:set_emission_box_extents(extents) end + +--- @return Vector3 +function CPUParticles3D:get_emission_box_extents() end + +--- @param array PackedVector3Array +function CPUParticles3D:set_emission_points(array) end + +--- @return PackedVector3Array +function CPUParticles3D:get_emission_points() end + +--- @param array PackedVector3Array +function CPUParticles3D:set_emission_normals(array) end + +--- @return PackedVector3Array +function CPUParticles3D:get_emission_normals() end + +--- @param array PackedColorArray +function CPUParticles3D:set_emission_colors(array) end + +--- @return PackedColorArray +function CPUParticles3D:get_emission_colors() end + +--- @param axis Vector3 +function CPUParticles3D:set_emission_ring_axis(axis) end + +--- @return Vector3 +function CPUParticles3D:get_emission_ring_axis() end + +--- @param height float +function CPUParticles3D:set_emission_ring_height(height) end + +--- @return float +function CPUParticles3D:get_emission_ring_height() end + +--- @param radius float +function CPUParticles3D:set_emission_ring_radius(radius) end + +--- @return float +function CPUParticles3D:get_emission_ring_radius() end + +--- @param inner_radius float +function CPUParticles3D:set_emission_ring_inner_radius(inner_radius) end + +--- @return float +function CPUParticles3D:get_emission_ring_inner_radius() end + +--- @param cone_angle float +function CPUParticles3D:set_emission_ring_cone_angle(cone_angle) end + +--- @return float +function CPUParticles3D:get_emission_ring_cone_angle() end + +--- @return Vector3 +function CPUParticles3D:get_gravity() end + +--- @param accel_vec Vector3 +function CPUParticles3D:set_gravity(accel_vec) end + +--- @return bool +function CPUParticles3D:get_split_scale() end + +--- @param split_scale bool +function CPUParticles3D:set_split_scale(split_scale) end + +--- @return Curve +function CPUParticles3D:get_scale_curve_x() end + +--- @param scale_curve Curve +function CPUParticles3D:set_scale_curve_x(scale_curve) end + +--- @return Curve +function CPUParticles3D:get_scale_curve_y() end + +--- @param scale_curve Curve +function CPUParticles3D:set_scale_curve_y(scale_curve) end + +--- @return Curve +function CPUParticles3D:get_scale_curve_z() end + +--- @param scale_curve Curve +function CPUParticles3D:set_scale_curve_z(scale_curve) end + +--- @param particles Node +function CPUParticles3D:convert_from_particles(particles) end + + +----------------------------------------------------------- +-- CSGBox3D +----------------------------------------------------------- + +--- @class CSGBox3D: CSGPrimitive3D, { [string]: any } +--- @field size Vector3 +--- @field material BaseMaterial3D | ShaderMaterial +CSGBox3D = {} + +--- @return CSGBox3D +function CSGBox3D:new() end + +--- @param size Vector3 +function CSGBox3D:set_size(size) end + +--- @return Vector3 +function CSGBox3D:get_size() end + +--- @param material Material +function CSGBox3D:set_material(material) end + +--- @return Material +function CSGBox3D:get_material() end + + +----------------------------------------------------------- +-- CSGCombiner3D +----------------------------------------------------------- + +--- @class CSGCombiner3D: CSGShape3D, { [string]: any } +CSGCombiner3D = {} + +--- @return CSGCombiner3D +function CSGCombiner3D:new() end + + +----------------------------------------------------------- +-- CSGCylinder3D +----------------------------------------------------------- + +--- @class CSGCylinder3D: CSGPrimitive3D, { [string]: any } +--- @field radius float +--- @field height float +--- @field sides int +--- @field cone bool +--- @field smooth_faces bool +--- @field material BaseMaterial3D | ShaderMaterial +CSGCylinder3D = {} + +--- @return CSGCylinder3D +function CSGCylinder3D:new() end + +--- @param radius float +function CSGCylinder3D:set_radius(radius) end + +--- @return float +function CSGCylinder3D:get_radius() end + +--- @param height float +function CSGCylinder3D:set_height(height) end + +--- @return float +function CSGCylinder3D:get_height() end + +--- @param sides int +function CSGCylinder3D:set_sides(sides) end + +--- @return int +function CSGCylinder3D:get_sides() end + +--- @param cone bool +function CSGCylinder3D:set_cone(cone) end + +--- @return bool +function CSGCylinder3D:is_cone() end + +--- @param material Material +function CSGCylinder3D:set_material(material) end + +--- @return Material +function CSGCylinder3D:get_material() end + +--- @param smooth_faces bool +function CSGCylinder3D:set_smooth_faces(smooth_faces) end + +--- @return bool +function CSGCylinder3D:get_smooth_faces() end + + +----------------------------------------------------------- +-- CSGMesh3D +----------------------------------------------------------- + +--- @class CSGMesh3D: CSGPrimitive3D, { [string]: any } +--- @field mesh Mesh | -PlaneMesh | -PointMesh | -QuadMesh | -RibbonTrailMesh +--- @field material BaseMaterial3D | ShaderMaterial +CSGMesh3D = {} + +--- @return CSGMesh3D +function CSGMesh3D:new() end + +--- @param mesh Mesh +function CSGMesh3D:set_mesh(mesh) end + +--- @return Mesh +function CSGMesh3D:get_mesh() end + +--- @param material Material +function CSGMesh3D:set_material(material) end + +--- @return Material +function CSGMesh3D:get_material() end + + +----------------------------------------------------------- +-- CSGPolygon3D +----------------------------------------------------------- + +--- @class CSGPolygon3D: CSGPrimitive3D, { [string]: any } +--- @field polygon PackedVector2Array +--- @field mode int +--- @field depth float +--- @field spin_degrees float +--- @field spin_sides int +--- @field path_node NodePath +--- @field path_interval_type int +--- @field path_interval float +--- @field path_simplify_angle float +--- @field path_rotation int +--- @field path_rotation_accurate bool +--- @field path_local bool +--- @field path_continuous_u bool +--- @field path_u_distance float +--- @field path_joined bool +--- @field smooth_faces bool +--- @field material BaseMaterial3D | ShaderMaterial +CSGPolygon3D = {} + +--- @return CSGPolygon3D +function CSGPolygon3D:new() end + +--- @alias CSGPolygon3D.Mode `CSGPolygon3D.MODE_DEPTH` | `CSGPolygon3D.MODE_SPIN` | `CSGPolygon3D.MODE_PATH` +CSGPolygon3D.MODE_DEPTH = 0 +CSGPolygon3D.MODE_SPIN = 1 +CSGPolygon3D.MODE_PATH = 2 + +--- @alias CSGPolygon3D.PathRotation `CSGPolygon3D.PATH_ROTATION_POLYGON` | `CSGPolygon3D.PATH_ROTATION_PATH` | `CSGPolygon3D.PATH_ROTATION_PATH_FOLLOW` +CSGPolygon3D.PATH_ROTATION_POLYGON = 0 +CSGPolygon3D.PATH_ROTATION_PATH = 1 +CSGPolygon3D.PATH_ROTATION_PATH_FOLLOW = 2 + +--- @alias CSGPolygon3D.PathIntervalType `CSGPolygon3D.PATH_INTERVAL_DISTANCE` | `CSGPolygon3D.PATH_INTERVAL_SUBDIVIDE` +CSGPolygon3D.PATH_INTERVAL_DISTANCE = 0 +CSGPolygon3D.PATH_INTERVAL_SUBDIVIDE = 1 + +--- @param polygon PackedVector2Array +function CSGPolygon3D:set_polygon(polygon) end + +--- @return PackedVector2Array +function CSGPolygon3D:get_polygon() end + +--- @param mode CSGPolygon3D.Mode +function CSGPolygon3D:set_mode(mode) end + +--- @return CSGPolygon3D.Mode +function CSGPolygon3D:get_mode() end + +--- @param depth float +function CSGPolygon3D:set_depth(depth) end + +--- @return float +function CSGPolygon3D:get_depth() end + +--- @param degrees float +function CSGPolygon3D:set_spin_degrees(degrees) end + +--- @return float +function CSGPolygon3D:get_spin_degrees() end + +--- @param spin_sides int +function CSGPolygon3D:set_spin_sides(spin_sides) end + +--- @return int +function CSGPolygon3D:get_spin_sides() end + +--- @param path NodePath +function CSGPolygon3D:set_path_node(path) end + +--- @return NodePath +function CSGPolygon3D:get_path_node() end + +--- @param interval_type CSGPolygon3D.PathIntervalType +function CSGPolygon3D:set_path_interval_type(interval_type) end + +--- @return CSGPolygon3D.PathIntervalType +function CSGPolygon3D:get_path_interval_type() end + +--- @param interval float +function CSGPolygon3D:set_path_interval(interval) end + +--- @return float +function CSGPolygon3D:get_path_interval() end + +--- @param degrees float +function CSGPolygon3D:set_path_simplify_angle(degrees) end + +--- @return float +function CSGPolygon3D:get_path_simplify_angle() end + +--- @param path_rotation CSGPolygon3D.PathRotation +function CSGPolygon3D:set_path_rotation(path_rotation) end + +--- @return CSGPolygon3D.PathRotation +function CSGPolygon3D:get_path_rotation() end + +--- @param enable bool +function CSGPolygon3D:set_path_rotation_accurate(enable) end + +--- @return bool +function CSGPolygon3D:get_path_rotation_accurate() end + +--- @param enable bool +function CSGPolygon3D:set_path_local(enable) end + +--- @return bool +function CSGPolygon3D:is_path_local() end + +--- @param enable bool +function CSGPolygon3D:set_path_continuous_u(enable) end + +--- @return bool +function CSGPolygon3D:is_path_continuous_u() end + +--- @param distance float +function CSGPolygon3D:set_path_u_distance(distance) end + +--- @return float +function CSGPolygon3D:get_path_u_distance() end + +--- @param enable bool +function CSGPolygon3D:set_path_joined(enable) end + +--- @return bool +function CSGPolygon3D:is_path_joined() end + +--- @param material Material +function CSGPolygon3D:set_material(material) end + +--- @return Material +function CSGPolygon3D:get_material() end + +--- @param smooth_faces bool +function CSGPolygon3D:set_smooth_faces(smooth_faces) end + +--- @return bool +function CSGPolygon3D:get_smooth_faces() end + + +----------------------------------------------------------- +-- CSGPrimitive3D +----------------------------------------------------------- + +--- @class CSGPrimitive3D: CSGShape3D, { [string]: any } +--- @field flip_faces bool +CSGPrimitive3D = {} + +--- @param flip_faces bool +function CSGPrimitive3D:set_flip_faces(flip_faces) end + +--- @return bool +function CSGPrimitive3D:get_flip_faces() end + + +----------------------------------------------------------- +-- CSGShape3D +----------------------------------------------------------- + +--- @class CSGShape3D: GeometryInstance3D, { [string]: any } +--- @field operation int +--- @field snap float +--- @field calculate_tangents bool +--- @field use_collision bool +--- @field collision_layer int +--- @field collision_mask int +--- @field collision_priority float +CSGShape3D = {} + +--- @alias CSGShape3D.Operation `CSGShape3D.OPERATION_UNION` | `CSGShape3D.OPERATION_INTERSECTION` | `CSGShape3D.OPERATION_SUBTRACTION` +CSGShape3D.OPERATION_UNION = 0 +CSGShape3D.OPERATION_INTERSECTION = 1 +CSGShape3D.OPERATION_SUBTRACTION = 2 + +--- @return bool +function CSGShape3D:is_root_shape() end + +--- @param operation CSGShape3D.Operation +function CSGShape3D:set_operation(operation) end + +--- @return CSGShape3D.Operation +function CSGShape3D:get_operation() end + +--- @param snap float +function CSGShape3D:set_snap(snap) end + +--- @return float +function CSGShape3D:get_snap() end + +--- @param operation bool +function CSGShape3D:set_use_collision(operation) end + +--- @return bool +function CSGShape3D:is_using_collision() end + +--- @param layer int +function CSGShape3D:set_collision_layer(layer) end + +--- @return int +function CSGShape3D:get_collision_layer() end + +--- @param mask int +function CSGShape3D:set_collision_mask(mask) end + +--- @return int +function CSGShape3D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function CSGShape3D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CSGShape3D:get_collision_mask_value(layer_number) end + +--- @param layer_number int +--- @param value bool +function CSGShape3D:set_collision_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CSGShape3D:get_collision_layer_value(layer_number) end + +--- @param priority float +function CSGShape3D:set_collision_priority(priority) end + +--- @return float +function CSGShape3D:get_collision_priority() end + +--- @return ConcavePolygonShape3D +function CSGShape3D:bake_collision_shape() end + +--- @param enabled bool +function CSGShape3D:set_calculate_tangents(enabled) end + +--- @return bool +function CSGShape3D:is_calculating_tangents() end + +--- @return Array +function CSGShape3D:get_meshes() end + +--- @return ArrayMesh +function CSGShape3D:bake_static_mesh() end + + +----------------------------------------------------------- +-- CSGSphere3D +----------------------------------------------------------- + +--- @class CSGSphere3D: CSGPrimitive3D, { [string]: any } +--- @field radius float +--- @field radial_segments int +--- @field rings int +--- @field smooth_faces bool +--- @field material BaseMaterial3D | ShaderMaterial +CSGSphere3D = {} + +--- @return CSGSphere3D +function CSGSphere3D:new() end + +--- @param radius float +function CSGSphere3D:set_radius(radius) end + +--- @return float +function CSGSphere3D:get_radius() end + +--- @param radial_segments int +function CSGSphere3D:set_radial_segments(radial_segments) end + +--- @return int +function CSGSphere3D:get_radial_segments() end + +--- @param rings int +function CSGSphere3D:set_rings(rings) end + +--- @return int +function CSGSphere3D:get_rings() end + +--- @param smooth_faces bool +function CSGSphere3D:set_smooth_faces(smooth_faces) end + +--- @return bool +function CSGSphere3D:get_smooth_faces() end + +--- @param material Material +function CSGSphere3D:set_material(material) end + +--- @return Material +function CSGSphere3D:get_material() end + + +----------------------------------------------------------- +-- CSGTorus3D +----------------------------------------------------------- + +--- @class CSGTorus3D: CSGPrimitive3D, { [string]: any } +--- @field inner_radius float +--- @field outer_radius float +--- @field sides int +--- @field ring_sides int +--- @field smooth_faces bool +--- @field material BaseMaterial3D | ShaderMaterial +CSGTorus3D = {} + +--- @return CSGTorus3D +function CSGTorus3D:new() end + +--- @param radius float +function CSGTorus3D:set_inner_radius(radius) end + +--- @return float +function CSGTorus3D:get_inner_radius() end + +--- @param radius float +function CSGTorus3D:set_outer_radius(radius) end + +--- @return float +function CSGTorus3D:get_outer_radius() end + +--- @param sides int +function CSGTorus3D:set_sides(sides) end + +--- @return int +function CSGTorus3D:get_sides() end + +--- @param sides int +function CSGTorus3D:set_ring_sides(sides) end + +--- @return int +function CSGTorus3D:get_ring_sides() end + +--- @param material Material +function CSGTorus3D:set_material(material) end + +--- @return Material +function CSGTorus3D:get_material() end + +--- @param smooth_faces bool +function CSGTorus3D:set_smooth_faces(smooth_faces) end + +--- @return bool +function CSGTorus3D:get_smooth_faces() end + + +----------------------------------------------------------- +-- CallbackTweener +----------------------------------------------------------- + +--- @class CallbackTweener: Tweener, { [string]: any } +CallbackTweener = {} + +--- @return CallbackTweener +function CallbackTweener:new() end + +--- @param delay float +--- @return CallbackTweener +function CallbackTweener:set_delay(delay) end + + +----------------------------------------------------------- +-- Camera2D +----------------------------------------------------------- + +--- @class Camera2D: Node2D, { [string]: any } +--- @field offset Vector2 +--- @field anchor_mode int +--- @field ignore_rotation bool +--- @field enabled bool +--- @field zoom Vector2 +--- @field custom_viewport Viewport +--- @field process_callback int +--- @field limit_enabled bool +--- @field limit_left int +--- @field limit_top int +--- @field limit_right int +--- @field limit_bottom int +--- @field limit_smoothed bool +--- @field position_smoothing_enabled bool +--- @field position_smoothing_speed float +--- @field rotation_smoothing_enabled bool +--- @field rotation_smoothing_speed float +--- @field drag_horizontal_enabled bool +--- @field drag_vertical_enabled bool +--- @field drag_horizontal_offset float +--- @field drag_vertical_offset float +--- @field drag_left_margin float +--- @field drag_top_margin float +--- @field drag_right_margin float +--- @field drag_bottom_margin float +--- @field editor_draw_screen bool +--- @field editor_draw_limits bool +--- @field editor_draw_drag_margin bool +Camera2D = {} + +--- @return Camera2D +function Camera2D:new() end + +--- @alias Camera2D.AnchorMode `Camera2D.ANCHOR_MODE_FIXED_TOP_LEFT` | `Camera2D.ANCHOR_MODE_DRAG_CENTER` +Camera2D.ANCHOR_MODE_FIXED_TOP_LEFT = 0 +Camera2D.ANCHOR_MODE_DRAG_CENTER = 1 + +--- @alias Camera2D.Camera2DProcessCallback `Camera2D.CAMERA2D_PROCESS_PHYSICS` | `Camera2D.CAMERA2D_PROCESS_IDLE` +Camera2D.CAMERA2D_PROCESS_PHYSICS = 0 +Camera2D.CAMERA2D_PROCESS_IDLE = 1 + +--- @param offset Vector2 +function Camera2D:set_offset(offset) end + +--- @return Vector2 +function Camera2D:get_offset() end + +--- @param anchor_mode Camera2D.AnchorMode +function Camera2D:set_anchor_mode(anchor_mode) end + +--- @return Camera2D.AnchorMode +function Camera2D:get_anchor_mode() end + +--- @param ignore bool +function Camera2D:set_ignore_rotation(ignore) end + +--- @return bool +function Camera2D:is_ignoring_rotation() end + +--- @param mode Camera2D.Camera2DProcessCallback +function Camera2D:set_process_callback(mode) end + +--- @return Camera2D.Camera2DProcessCallback +function Camera2D:get_process_callback() end + +--- @param enabled bool +function Camera2D:set_enabled(enabled) end + +--- @return bool +function Camera2D:is_enabled() end + +function Camera2D:make_current() end + +--- @return bool +function Camera2D:is_current() end + +--- @param limit_enabled bool +function Camera2D:set_limit_enabled(limit_enabled) end + +--- @return bool +function Camera2D:is_limit_enabled() end + +--- @param margin Side +--- @param limit int +function Camera2D:set_limit(margin, limit) end + +--- @param margin Side +--- @return int +function Camera2D:get_limit(margin) end + +--- @param limit_smoothing_enabled bool +function Camera2D:set_limit_smoothing_enabled(limit_smoothing_enabled) end + +--- @return bool +function Camera2D:is_limit_smoothing_enabled() end + +--- @param enabled bool +function Camera2D:set_drag_vertical_enabled(enabled) end + +--- @return bool +function Camera2D:is_drag_vertical_enabled() end + +--- @param enabled bool +function Camera2D:set_drag_horizontal_enabled(enabled) end + +--- @return bool +function Camera2D:is_drag_horizontal_enabled() end + +--- @param offset float +function Camera2D:set_drag_vertical_offset(offset) end + +--- @return float +function Camera2D:get_drag_vertical_offset() end + +--- @param offset float +function Camera2D:set_drag_horizontal_offset(offset) end + +--- @return float +function Camera2D:get_drag_horizontal_offset() end + +--- @param margin Side +--- @param drag_margin float +function Camera2D:set_drag_margin(margin, drag_margin) end + +--- @param margin Side +--- @return float +function Camera2D:get_drag_margin(margin) end + +--- @return Vector2 +function Camera2D:get_target_position() end + +--- @return Vector2 +function Camera2D:get_screen_center_position() end + +--- @return float +function Camera2D:get_screen_rotation() end + +--- @param zoom Vector2 +function Camera2D:set_zoom(zoom) end + +--- @return Vector2 +function Camera2D:get_zoom() end + +--- @param viewport Node +function Camera2D:set_custom_viewport(viewport) end + +--- @return Node +function Camera2D:get_custom_viewport() end + +--- @param position_smoothing_speed float +function Camera2D:set_position_smoothing_speed(position_smoothing_speed) end + +--- @return float +function Camera2D:get_position_smoothing_speed() end + +--- @param enabled bool +function Camera2D:set_position_smoothing_enabled(enabled) end + +--- @return bool +function Camera2D:is_position_smoothing_enabled() end + +--- @param enabled bool +function Camera2D:set_rotation_smoothing_enabled(enabled) end + +--- @return bool +function Camera2D:is_rotation_smoothing_enabled() end + +--- @param speed float +function Camera2D:set_rotation_smoothing_speed(speed) end + +--- @return float +function Camera2D:get_rotation_smoothing_speed() end + +function Camera2D:force_update_scroll() end + +function Camera2D:reset_smoothing() end + +function Camera2D:align() end + +--- @param screen_drawing_enabled bool +function Camera2D:set_screen_drawing_enabled(screen_drawing_enabled) end + +--- @return bool +function Camera2D:is_screen_drawing_enabled() end + +--- @param limit_drawing_enabled bool +function Camera2D:set_limit_drawing_enabled(limit_drawing_enabled) end + +--- @return bool +function Camera2D:is_limit_drawing_enabled() end + +--- @param margin_drawing_enabled bool +function Camera2D:set_margin_drawing_enabled(margin_drawing_enabled) end + +--- @return bool +function Camera2D:is_margin_drawing_enabled() end + + +----------------------------------------------------------- +-- Camera3D +----------------------------------------------------------- + +--- @class Camera3D: Node3D, { [string]: any } +--- @field keep_aspect int +--- @field cull_mask int +--- @field environment Environment +--- @field attributes CameraAttributesPractical | CameraAttributesPhysical +--- @field compositor Compositor +--- @field h_offset float +--- @field v_offset float +--- @field doppler_tracking int +--- @field projection int +--- @field current bool +--- @field fov float +--- @field size float +--- @field frustum_offset Vector2 +--- @field near float +--- @field far float +Camera3D = {} + +--- @return Camera3D +function Camera3D:new() end + +--- @alias Camera3D.ProjectionType `Camera3D.PROJECTION_PERSPECTIVE` | `Camera3D.PROJECTION_ORTHOGONAL` | `Camera3D.PROJECTION_FRUSTUM` +Camera3D.PROJECTION_PERSPECTIVE = 0 +Camera3D.PROJECTION_ORTHOGONAL = 1 +Camera3D.PROJECTION_FRUSTUM = 2 + +--- @alias Camera3D.KeepAspect `Camera3D.KEEP_WIDTH` | `Camera3D.KEEP_HEIGHT` +Camera3D.KEEP_WIDTH = 0 +Camera3D.KEEP_HEIGHT = 1 + +--- @alias Camera3D.DopplerTracking `Camera3D.DOPPLER_TRACKING_DISABLED` | `Camera3D.DOPPLER_TRACKING_IDLE_STEP` | `Camera3D.DOPPLER_TRACKING_PHYSICS_STEP` +Camera3D.DOPPLER_TRACKING_DISABLED = 0 +Camera3D.DOPPLER_TRACKING_IDLE_STEP = 1 +Camera3D.DOPPLER_TRACKING_PHYSICS_STEP = 2 + +--- @param screen_point Vector2 +--- @return Vector3 +function Camera3D:project_ray_normal(screen_point) end + +--- @param screen_point Vector2 +--- @return Vector3 +function Camera3D:project_local_ray_normal(screen_point) end + +--- @param screen_point Vector2 +--- @return Vector3 +function Camera3D:project_ray_origin(screen_point) end + +--- @param world_point Vector3 +--- @return Vector2 +function Camera3D:unproject_position(world_point) end + +--- @param world_point Vector3 +--- @return bool +function Camera3D:is_position_behind(world_point) end + +--- @param screen_point Vector2 +--- @param z_depth float +--- @return Vector3 +function Camera3D:project_position(screen_point, z_depth) end + +--- @param fov float +--- @param z_near float +--- @param z_far float +function Camera3D:set_perspective(fov, z_near, z_far) end + +--- @param size float +--- @param z_near float +--- @param z_far float +function Camera3D:set_orthogonal(size, z_near, z_far) end + +--- @param size float +--- @param offset Vector2 +--- @param z_near float +--- @param z_far float +function Camera3D:set_frustum(size, offset, z_near, z_far) end + +function Camera3D:make_current() end + +--- @param enable_next bool? Default: true +function Camera3D:clear_current(enable_next) end + +--- @param enabled bool +function Camera3D:set_current(enabled) end + +--- @return bool +function Camera3D:is_current() end + +--- @return Transform3D +function Camera3D:get_camera_transform() end + +--- @return Projection +function Camera3D:get_camera_projection() end + +--- @return float +function Camera3D:get_fov() end + +--- @return Vector2 +function Camera3D:get_frustum_offset() end + +--- @return float +function Camera3D:get_size() end + +--- @return float +function Camera3D:get_far() end + +--- @return float +function Camera3D:get_near() end + +--- @param fov float +function Camera3D:set_fov(fov) end + +--- @param offset Vector2 +function Camera3D:set_frustum_offset(offset) end + +--- @param size float +function Camera3D:set_size(size) end + +--- @param far float +function Camera3D:set_far(far) end + +--- @param near float +function Camera3D:set_near(near) end + +--- @return Camera3D.ProjectionType +function Camera3D:get_projection() end + +--- @param mode Camera3D.ProjectionType +function Camera3D:set_projection(mode) end + +--- @param offset float +function Camera3D:set_h_offset(offset) end + +--- @return float +function Camera3D:get_h_offset() end + +--- @param offset float +function Camera3D:set_v_offset(offset) end + +--- @return float +function Camera3D:get_v_offset() end + +--- @param mask int +function Camera3D:set_cull_mask(mask) end + +--- @return int +function Camera3D:get_cull_mask() end + +--- @param env Environment +function Camera3D:set_environment(env) end + +--- @return Environment +function Camera3D:get_environment() end + +--- @param env CameraAttributes +function Camera3D:set_attributes(env) end + +--- @return CameraAttributes +function Camera3D:get_attributes() end + +--- @param compositor Compositor +function Camera3D:set_compositor(compositor) end + +--- @return Compositor +function Camera3D:get_compositor() end + +--- @param mode Camera3D.KeepAspect +function Camera3D:set_keep_aspect_mode(mode) end + +--- @return Camera3D.KeepAspect +function Camera3D:get_keep_aspect_mode() end + +--- @param mode Camera3D.DopplerTracking +function Camera3D:set_doppler_tracking(mode) end + +--- @return Camera3D.DopplerTracking +function Camera3D:get_doppler_tracking() end + +--- @return Array[Plane] +function Camera3D:get_frustum() end + +--- @param world_point Vector3 +--- @return bool +function Camera3D:is_position_in_frustum(world_point) end + +--- @return RID +function Camera3D:get_camera_rid() end + +--- @return RID +function Camera3D:get_pyramid_shape_rid() end + +--- @param layer_number int +--- @param value bool +function Camera3D:set_cull_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function Camera3D:get_cull_mask_value(layer_number) end + + +----------------------------------------------------------- +-- CameraAttributes +----------------------------------------------------------- + +--- @class CameraAttributes: Resource, { [string]: any } +--- @field exposure_sensitivity float +--- @field exposure_multiplier float +--- @field auto_exposure_enabled bool +--- @field auto_exposure_scale float +--- @field auto_exposure_speed float +CameraAttributes = {} + +--- @return CameraAttributes +function CameraAttributes:new() end + +--- @param multiplier float +function CameraAttributes:set_exposure_multiplier(multiplier) end + +--- @return float +function CameraAttributes:get_exposure_multiplier() end + +--- @param sensitivity float +function CameraAttributes:set_exposure_sensitivity(sensitivity) end + +--- @return float +function CameraAttributes:get_exposure_sensitivity() end + +--- @param enabled bool +function CameraAttributes:set_auto_exposure_enabled(enabled) end + +--- @return bool +function CameraAttributes:is_auto_exposure_enabled() end + +--- @param exposure_speed float +function CameraAttributes:set_auto_exposure_speed(exposure_speed) end + +--- @return float +function CameraAttributes:get_auto_exposure_speed() end + +--- @param exposure_grey float +function CameraAttributes:set_auto_exposure_scale(exposure_grey) end + +--- @return float +function CameraAttributes:get_auto_exposure_scale() end + + +----------------------------------------------------------- +-- CameraAttributesPhysical +----------------------------------------------------------- + +--- @class CameraAttributesPhysical: CameraAttributes, { [string]: any } +--- @field frustum_focus_distance float +--- @field frustum_focal_length float +--- @field frustum_near float +--- @field frustum_far float +--- @field exposure_aperture float +--- @field exposure_shutter_speed float +--- @field auto_exposure_min_exposure_value float +--- @field auto_exposure_max_exposure_value float +CameraAttributesPhysical = {} + +--- @return CameraAttributesPhysical +function CameraAttributesPhysical:new() end + +--- @param aperture float +function CameraAttributesPhysical:set_aperture(aperture) end + +--- @return float +function CameraAttributesPhysical:get_aperture() end + +--- @param shutter_speed float +function CameraAttributesPhysical:set_shutter_speed(shutter_speed) end + +--- @return float +function CameraAttributesPhysical:get_shutter_speed() end + +--- @param focal_length float +function CameraAttributesPhysical:set_focal_length(focal_length) end + +--- @return float +function CameraAttributesPhysical:get_focal_length() end + +--- @param focus_distance float +function CameraAttributesPhysical:set_focus_distance(focus_distance) end + +--- @return float +function CameraAttributesPhysical:get_focus_distance() end + +--- @param near float +function CameraAttributesPhysical:set_near(near) end + +--- @return float +function CameraAttributesPhysical:get_near() end + +--- @param far float +function CameraAttributesPhysical:set_far(far) end + +--- @return float +function CameraAttributesPhysical:get_far() end + +--- @return float +function CameraAttributesPhysical:get_fov() end + +--- @param exposure_value_max float +function CameraAttributesPhysical:set_auto_exposure_max_exposure_value(exposure_value_max) end + +--- @return float +function CameraAttributesPhysical:get_auto_exposure_max_exposure_value() end + +--- @param exposure_value_min float +function CameraAttributesPhysical:set_auto_exposure_min_exposure_value(exposure_value_min) end + +--- @return float +function CameraAttributesPhysical:get_auto_exposure_min_exposure_value() end + + +----------------------------------------------------------- +-- CameraAttributesPractical +----------------------------------------------------------- + +--- @class CameraAttributesPractical: CameraAttributes, { [string]: any } +--- @field dof_blur_far_enabled bool +--- @field dof_blur_far_distance float +--- @field dof_blur_far_transition float +--- @field dof_blur_near_enabled bool +--- @field dof_blur_near_distance float +--- @field dof_blur_near_transition float +--- @field dof_blur_amount float +--- @field auto_exposure_min_sensitivity float +--- @field auto_exposure_max_sensitivity float +CameraAttributesPractical = {} + +--- @return CameraAttributesPractical +function CameraAttributesPractical:new() end + +--- @param enabled bool +function CameraAttributesPractical:set_dof_blur_far_enabled(enabled) end + +--- @return bool +function CameraAttributesPractical:is_dof_blur_far_enabled() end + +--- @param distance float +function CameraAttributesPractical:set_dof_blur_far_distance(distance) end + +--- @return float +function CameraAttributesPractical:get_dof_blur_far_distance() end + +--- @param distance float +function CameraAttributesPractical:set_dof_blur_far_transition(distance) end + +--- @return float +function CameraAttributesPractical:get_dof_blur_far_transition() end + +--- @param enabled bool +function CameraAttributesPractical:set_dof_blur_near_enabled(enabled) end + +--- @return bool +function CameraAttributesPractical:is_dof_blur_near_enabled() end + +--- @param distance float +function CameraAttributesPractical:set_dof_blur_near_distance(distance) end + +--- @return float +function CameraAttributesPractical:get_dof_blur_near_distance() end + +--- @param distance float +function CameraAttributesPractical:set_dof_blur_near_transition(distance) end + +--- @return float +function CameraAttributesPractical:get_dof_blur_near_transition() end + +--- @param amount float +function CameraAttributesPractical:set_dof_blur_amount(amount) end + +--- @return float +function CameraAttributesPractical:get_dof_blur_amount() end + +--- @param max_sensitivity float +function CameraAttributesPractical:set_auto_exposure_max_sensitivity(max_sensitivity) end + +--- @return float +function CameraAttributesPractical:get_auto_exposure_max_sensitivity() end + +--- @param min_sensitivity float +function CameraAttributesPractical:set_auto_exposure_min_sensitivity(min_sensitivity) end + +--- @return float +function CameraAttributesPractical:get_auto_exposure_min_sensitivity() end + + +----------------------------------------------------------- +-- CameraFeed +----------------------------------------------------------- + +--- @class CameraFeed: RefCounted, { [string]: any } +--- @field feed_is_active bool +--- @field feed_transform Transform2D +--- @field formats Array +CameraFeed = {} + +--- @return CameraFeed +function CameraFeed:new() end + +--- @alias CameraFeed.FeedDataType `CameraFeed.FEED_NOIMAGE` | `CameraFeed.FEED_RGB` | `CameraFeed.FEED_YCBCR` | `CameraFeed.FEED_YCBCR_SEP` | `CameraFeed.FEED_EXTERNAL` +CameraFeed.FEED_NOIMAGE = 0 +CameraFeed.FEED_RGB = 1 +CameraFeed.FEED_YCBCR = 2 +CameraFeed.FEED_YCBCR_SEP = 3 +CameraFeed.FEED_EXTERNAL = 4 + +--- @alias CameraFeed.FeedPosition `CameraFeed.FEED_UNSPECIFIED` | `CameraFeed.FEED_FRONT` | `CameraFeed.FEED_BACK` +CameraFeed.FEED_UNSPECIFIED = 0 +CameraFeed.FEED_FRONT = 1 +CameraFeed.FEED_BACK = 2 + +CameraFeed.frame_changed = Signal() +CameraFeed.format_changed = Signal() + +--- @return bool +function CameraFeed:_activate_feed() end + +function CameraFeed:_deactivate_feed() end + +--- @return int +function CameraFeed:get_id() end + +--- @return bool +function CameraFeed:is_active() end + +--- @param active bool +function CameraFeed:set_active(active) end + +--- @return String +function CameraFeed:get_name() end + +--- @param name String +function CameraFeed:set_name(name) end + +--- @return CameraFeed.FeedPosition +function CameraFeed:get_position() end + +--- @param position CameraFeed.FeedPosition +function CameraFeed:set_position(position) end + +--- @return Transform2D +function CameraFeed:get_transform() end + +--- @param transform Transform2D +function CameraFeed:set_transform(transform) end + +--- @param rgb_image Image +function CameraFeed:set_rgb_image(rgb_image) end + +--- @param ycbcr_image Image +function CameraFeed:set_ycbcr_image(ycbcr_image) end + +--- @param width int +--- @param height int +function CameraFeed:set_external(width, height) end + +--- @param feed_image_type CameraServer.FeedImage +--- @return int +function CameraFeed:get_texture_tex_id(feed_image_type) end + +--- @return CameraFeed.FeedDataType +function CameraFeed:get_datatype() end + +--- @return Array +function CameraFeed:get_formats() end + +--- @param index int +--- @param parameters Dictionary +--- @return bool +function CameraFeed:set_format(index, parameters) end + + +----------------------------------------------------------- +-- CameraServer +----------------------------------------------------------- + +--- @class CameraServer: Object, { [string]: any } +--- @field monitoring_feeds bool +CameraServer = {} + +--- @alias CameraServer.FeedImage `CameraServer.FEED_RGBA_IMAGE` | `CameraServer.FEED_YCBCR_IMAGE` | `CameraServer.FEED_Y_IMAGE` | `CameraServer.FEED_CBCR_IMAGE` +CameraServer.FEED_RGBA_IMAGE = 0 +CameraServer.FEED_YCBCR_IMAGE = 0 +CameraServer.FEED_Y_IMAGE = 0 +CameraServer.FEED_CBCR_IMAGE = 1 + +CameraServer.camera_feed_added = Signal() +CameraServer.camera_feed_removed = Signal() +CameraServer.camera_feeds_updated = Signal() + +--- @param is_monitoring_feeds bool +function CameraServer:set_monitoring_feeds(is_monitoring_feeds) end + +--- @return bool +function CameraServer:is_monitoring_feeds() end + +--- @param index int +--- @return CameraFeed +function CameraServer:get_feed(index) end + +--- @return int +function CameraServer:get_feed_count() end + +--- @return Array[CameraFeed] +function CameraServer:feeds() end + +--- @param feed CameraFeed +function CameraServer:add_feed(feed) end + +--- @param feed CameraFeed +function CameraServer:remove_feed(feed) end + + +----------------------------------------------------------- +-- CameraTexture +----------------------------------------------------------- + +--- @class CameraTexture: Texture2D, { [string]: any } +--- @field camera_feed_id int +--- @field which_feed int +--- @field camera_is_active bool +CameraTexture = {} + +--- @return CameraTexture +function CameraTexture:new() end + +--- @param feed_id int +function CameraTexture:set_camera_feed_id(feed_id) end + +--- @return int +function CameraTexture:get_camera_feed_id() end + +--- @param which_feed CameraServer.FeedImage +function CameraTexture:set_which_feed(which_feed) end + +--- @return CameraServer.FeedImage +function CameraTexture:get_which_feed() end + +--- @param active bool +function CameraTexture:set_camera_active(active) end + +--- @return bool +function CameraTexture:get_camera_active() end + + +----------------------------------------------------------- +-- CanvasGroup +----------------------------------------------------------- + +--- @class CanvasGroup: Node2D, { [string]: any } +--- @field fit_margin float +--- @field clear_margin float +--- @field use_mipmaps bool +CanvasGroup = {} + +--- @return CanvasGroup +function CanvasGroup:new() end + +--- @param fit_margin float +function CanvasGroup:set_fit_margin(fit_margin) end + +--- @return float +function CanvasGroup:get_fit_margin() end + +--- @param clear_margin float +function CanvasGroup:set_clear_margin(clear_margin) end + +--- @return float +function CanvasGroup:get_clear_margin() end + +--- @param use_mipmaps bool +function CanvasGroup:set_use_mipmaps(use_mipmaps) end + +--- @return bool +function CanvasGroup:is_using_mipmaps() end + + +----------------------------------------------------------- +-- CanvasItem +----------------------------------------------------------- + +--- @class CanvasItem: Node, { [string]: any } +--- @field visible bool +--- @field modulate Color +--- @field self_modulate Color +--- @field show_behind_parent bool +--- @field top_level bool +--- @field clip_children int +--- @field light_mask int +--- @field visibility_layer int +--- @field z_index int +--- @field z_as_relative bool +--- @field y_sort_enabled bool +--- @field texture_filter int +--- @field texture_repeat int +--- @field material CanvasItemMaterial | ShaderMaterial +--- @field use_parent_material bool +CanvasItem = {} + +CanvasItem.NOTIFICATION_TRANSFORM_CHANGED = 2000 +CanvasItem.NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 35 +CanvasItem.NOTIFICATION_DRAW = 30 +CanvasItem.NOTIFICATION_VISIBILITY_CHANGED = 31 +CanvasItem.NOTIFICATION_ENTER_CANVAS = 32 +CanvasItem.NOTIFICATION_EXIT_CANVAS = 33 +CanvasItem.NOTIFICATION_WORLD_2D_CHANGED = 36 + +--- @alias CanvasItem.TextureFilter `CanvasItem.TEXTURE_FILTER_PARENT_NODE` | `CanvasItem.TEXTURE_FILTER_NEAREST` | `CanvasItem.TEXTURE_FILTER_LINEAR` | `CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS` | `CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS` | `CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC` | `CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC` | `CanvasItem.TEXTURE_FILTER_MAX` +CanvasItem.TEXTURE_FILTER_PARENT_NODE = 0 +CanvasItem.TEXTURE_FILTER_NEAREST = 1 +CanvasItem.TEXTURE_FILTER_LINEAR = 2 +CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3 +CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4 +CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5 +CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6 +CanvasItem.TEXTURE_FILTER_MAX = 7 + +--- @alias CanvasItem.TextureRepeat `CanvasItem.TEXTURE_REPEAT_PARENT_NODE` | `CanvasItem.TEXTURE_REPEAT_DISABLED` | `CanvasItem.TEXTURE_REPEAT_ENABLED` | `CanvasItem.TEXTURE_REPEAT_MIRROR` | `CanvasItem.TEXTURE_REPEAT_MAX` +CanvasItem.TEXTURE_REPEAT_PARENT_NODE = 0 +CanvasItem.TEXTURE_REPEAT_DISABLED = 1 +CanvasItem.TEXTURE_REPEAT_ENABLED = 2 +CanvasItem.TEXTURE_REPEAT_MIRROR = 3 +CanvasItem.TEXTURE_REPEAT_MAX = 4 + +--- @alias CanvasItem.ClipChildrenMode `CanvasItem.CLIP_CHILDREN_DISABLED` | `CanvasItem.CLIP_CHILDREN_ONLY` | `CanvasItem.CLIP_CHILDREN_AND_DRAW` | `CanvasItem.CLIP_CHILDREN_MAX` +CanvasItem.CLIP_CHILDREN_DISABLED = 0 +CanvasItem.CLIP_CHILDREN_ONLY = 1 +CanvasItem.CLIP_CHILDREN_AND_DRAW = 2 +CanvasItem.CLIP_CHILDREN_MAX = 3 + +CanvasItem.draw = Signal() +CanvasItem.visibility_changed = Signal() +CanvasItem.hidden = Signal() +CanvasItem.item_rect_changed = Signal() + +function CanvasItem:_draw() end + +--- @return RID +function CanvasItem:get_canvas_item() end + +--- @param visible bool +function CanvasItem:set_visible(visible) end + +--- @return bool +function CanvasItem:is_visible() end + +--- @return bool +function CanvasItem:is_visible_in_tree() end + +function CanvasItem:show() end + +function CanvasItem:hide() end + +function CanvasItem:queue_redraw() end + +function CanvasItem:move_to_front() end + +--- @param enable bool +function CanvasItem:set_as_top_level(enable) end + +--- @return bool +function CanvasItem:is_set_as_top_level() end + +--- @param light_mask int +function CanvasItem:set_light_mask(light_mask) end + +--- @return int +function CanvasItem:get_light_mask() end + +--- @param modulate Color +function CanvasItem:set_modulate(modulate) end + +--- @return Color +function CanvasItem:get_modulate() end + +--- @param self_modulate Color +function CanvasItem:set_self_modulate(self_modulate) end + +--- @return Color +function CanvasItem:get_self_modulate() end + +--- @param z_index int +function CanvasItem:set_z_index(z_index) end + +--- @return int +function CanvasItem:get_z_index() end + +--- @param enable bool +function CanvasItem:set_z_as_relative(enable) end + +--- @return bool +function CanvasItem:is_z_relative() end + +--- @param enabled bool +function CanvasItem:set_y_sort_enabled(enabled) end + +--- @return bool +function CanvasItem:is_y_sort_enabled() end + +--- @param enable bool +function CanvasItem:set_draw_behind_parent(enable) end + +--- @return bool +function CanvasItem:is_draw_behind_parent_enabled() end + +--- @param from Vector2 +--- @param to Vector2 +--- @param color Color +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_line(from, to, color, width, antialiased) end + +--- @param from Vector2 +--- @param to Vector2 +--- @param color Color +--- @param width float? Default: -1.0 +--- @param dash float? Default: 2.0 +--- @param aligned bool? Default: true +--- @param antialiased bool? Default: false +function CanvasItem:draw_dashed_line(from, to, color, width, dash, aligned, antialiased) end + +--- @param points PackedVector2Array +--- @param color Color +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_polyline(points, color, width, antialiased) end + +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_polyline_colors(points, colors, width, antialiased) end + +--- @param center Vector2 +--- @param radius float +--- @param start_angle float +--- @param end_angle float +--- @param point_count int +--- @param color Color +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_arc(center, radius, start_angle, end_angle, point_count, color, width, antialiased) end + +--- @param points PackedVector2Array +--- @param color Color +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_multiline(points, color, width, antialiased) end + +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_multiline_colors(points, colors, width, antialiased) end + +--- @param rect Rect2 +--- @param color Color +--- @param filled bool? Default: true +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_rect(rect, color, filled, width, antialiased) end + +--- @param position Vector2 +--- @param radius float +--- @param color Color +--- @param filled bool? Default: true +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function CanvasItem:draw_circle(position, radius, color, filled, width, antialiased) end + +--- @param texture Texture2D +--- @param position Vector2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function CanvasItem:draw_texture(texture, position, modulate) end + +--- @param texture Texture2D +--- @param rect Rect2 +--- @param tile bool +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +function CanvasItem:draw_texture_rect(texture, rect, tile, modulate, transpose) end + +--- @param texture Texture2D +--- @param rect Rect2 +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +--- @param clip_uv bool? Default: true +function CanvasItem:draw_texture_rect_region(texture, rect, src_rect, modulate, transpose, clip_uv) end + +--- @param texture Texture2D +--- @param rect Rect2 +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param outline float? Default: 0.0 +--- @param pixel_range float? Default: 4.0 +--- @param scale float? Default: 1.0 +function CanvasItem:draw_msdf_texture_rect_region(texture, rect, src_rect, modulate, outline, pixel_range, scale) end + +--- @param texture Texture2D +--- @param rect Rect2 +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function CanvasItem:draw_lcd_texture_rect_region(texture, rect, src_rect, modulate) end + +--- @param style_box StyleBox +--- @param rect Rect2 +function CanvasItem:draw_style_box(style_box, rect) end + +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param uvs PackedVector2Array +--- @param texture Texture2D? Default: null +function CanvasItem:draw_primitive(points, colors, uvs, texture) end + +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param uvs PackedVector2Array? Default: PackedVector2Array() +--- @param texture Texture2D? Default: null +function CanvasItem:draw_polygon(points, colors, uvs, texture) end + +--- @param points PackedVector2Array +--- @param color Color +--- @param uvs PackedVector2Array? Default: PackedVector2Array() +--- @param texture Texture2D? Default: null +function CanvasItem:draw_colored_polygon(points, color, uvs, texture) end + +--- @param font Font +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_string(font, pos, text, alignment, width, font_size, modulate, justification_flags, direction, orientation, oversampling) end + +--- @param font Font +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param max_lines int? Default: -1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param brk_flags TextServer.LineBreakFlag? Default: 3 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_multiline_string(font, pos, text, alignment, width, font_size, max_lines, modulate, brk_flags, justification_flags, direction, orientation, oversampling) end + +--- @param font Font +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param size int? Default: 1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_string_outline(font, pos, text, alignment, width, font_size, size, modulate, justification_flags, direction, orientation, oversampling) end + +--- @param font Font +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param max_lines int? Default: -1 +--- @param size int? Default: 1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param brk_flags TextServer.LineBreakFlag? Default: 3 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_multiline_string_outline(font, pos, text, alignment, width, font_size, max_lines, size, modulate, brk_flags, justification_flags, direction, orientation, oversampling) end + +--- @param font Font +--- @param pos Vector2 +--- @param char String +--- @param font_size int? Default: 16 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_char(font, pos, char, font_size, modulate, oversampling) end + +--- @param font Font +--- @param pos Vector2 +--- @param char String +--- @param font_size int? Default: 16 +--- @param size int? Default: -1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function CanvasItem:draw_char_outline(font, pos, char, font_size, size, modulate, oversampling) end + +--- @param mesh Mesh +--- @param texture Texture2D +--- @param transform Transform2D? Default: Transform2D(1, 0, 0, 1, 0, 0) +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function CanvasItem:draw_mesh(mesh, texture, transform, modulate) end + +--- @param multimesh MultiMesh +--- @param texture Texture2D +function CanvasItem:draw_multimesh(multimesh, texture) end + +--- @param position Vector2 +--- @param rotation float? Default: 0.0 +--- @param scale Vector2? Default: Vector2(1, 1) +function CanvasItem:draw_set_transform(position, rotation, scale) end + +--- @param xform Transform2D +function CanvasItem:draw_set_transform_matrix(xform) end + +--- @param animation_length float +--- @param slice_begin float +--- @param slice_end float +--- @param offset float? Default: 0.0 +function CanvasItem:draw_animation_slice(animation_length, slice_begin, slice_end, offset) end + +function CanvasItem:draw_end_animation() end + +--- @return Transform2D +function CanvasItem:get_transform() end + +--- @return Transform2D +function CanvasItem:get_global_transform() end + +--- @return Transform2D +function CanvasItem:get_global_transform_with_canvas() end + +--- @return Transform2D +function CanvasItem:get_viewport_transform() end + +--- @return Rect2 +function CanvasItem:get_viewport_rect() end + +--- @return Transform2D +function CanvasItem:get_canvas_transform() end + +--- @return Transform2D +function CanvasItem:get_screen_transform() end + +--- @return Vector2 +function CanvasItem:get_local_mouse_position() end + +--- @return Vector2 +function CanvasItem:get_global_mouse_position() end + +--- @return RID +function CanvasItem:get_canvas() end + +--- @return CanvasLayer +function CanvasItem:get_canvas_layer_node() end + +--- @return World2D +function CanvasItem:get_world_2d() end + +--- @param material Material +function CanvasItem:set_material(material) end + +--- @return Material +function CanvasItem:get_material() end + +--- @param name StringName +--- @param value any +function CanvasItem:set_instance_shader_parameter(name, value) end + +--- @param name StringName +--- @return any +function CanvasItem:get_instance_shader_parameter(name) end + +--- @param enable bool +function CanvasItem:set_use_parent_material(enable) end + +--- @return bool +function CanvasItem:get_use_parent_material() end + +--- @param enable bool +function CanvasItem:set_notify_local_transform(enable) end + +--- @return bool +function CanvasItem:is_local_transform_notification_enabled() end + +--- @param enable bool +function CanvasItem:set_notify_transform(enable) end + +--- @return bool +function CanvasItem:is_transform_notification_enabled() end + +function CanvasItem:force_update_transform() end + +--- @param viewport_point Vector2 +--- @return Vector2 +function CanvasItem:make_canvas_position_local(viewport_point) end + +--- @param event InputEvent +--- @return InputEvent +function CanvasItem:make_input_local(event) end + +--- @param layer int +function CanvasItem:set_visibility_layer(layer) end + +--- @return int +function CanvasItem:get_visibility_layer() end + +--- @param layer int +--- @param enabled bool +function CanvasItem:set_visibility_layer_bit(layer, enabled) end + +--- @param layer int +--- @return bool +function CanvasItem:get_visibility_layer_bit(layer) end + +--- @param mode CanvasItem.TextureFilter +function CanvasItem:set_texture_filter(mode) end + +--- @return CanvasItem.TextureFilter +function CanvasItem:get_texture_filter() end + +--- @param mode CanvasItem.TextureRepeat +function CanvasItem:set_texture_repeat(mode) end + +--- @return CanvasItem.TextureRepeat +function CanvasItem:get_texture_repeat() end + +--- @param mode CanvasItem.ClipChildrenMode +function CanvasItem:set_clip_children_mode(mode) end + +--- @return CanvasItem.ClipChildrenMode +function CanvasItem:get_clip_children_mode() end + + +----------------------------------------------------------- +-- CanvasItemMaterial +----------------------------------------------------------- + +--- @class CanvasItemMaterial: Material, { [string]: any } +--- @field blend_mode int +--- @field light_mode int +--- @field particles_animation bool +--- @field particles_anim_h_frames int +--- @field particles_anim_v_frames int +--- @field particles_anim_loop bool +CanvasItemMaterial = {} + +--- @return CanvasItemMaterial +function CanvasItemMaterial:new() end + +--- @alias CanvasItemMaterial.BlendMode `CanvasItemMaterial.BLEND_MODE_MIX` | `CanvasItemMaterial.BLEND_MODE_ADD` | `CanvasItemMaterial.BLEND_MODE_SUB` | `CanvasItemMaterial.BLEND_MODE_MUL` | `CanvasItemMaterial.BLEND_MODE_PREMULT_ALPHA` +CanvasItemMaterial.BLEND_MODE_MIX = 0 +CanvasItemMaterial.BLEND_MODE_ADD = 1 +CanvasItemMaterial.BLEND_MODE_SUB = 2 +CanvasItemMaterial.BLEND_MODE_MUL = 3 +CanvasItemMaterial.BLEND_MODE_PREMULT_ALPHA = 4 + +--- @alias CanvasItemMaterial.LightMode `CanvasItemMaterial.LIGHT_MODE_NORMAL` | `CanvasItemMaterial.LIGHT_MODE_UNSHADED` | `CanvasItemMaterial.LIGHT_MODE_LIGHT_ONLY` +CanvasItemMaterial.LIGHT_MODE_NORMAL = 0 +CanvasItemMaterial.LIGHT_MODE_UNSHADED = 1 +CanvasItemMaterial.LIGHT_MODE_LIGHT_ONLY = 2 + +--- @param blend_mode CanvasItemMaterial.BlendMode +function CanvasItemMaterial:set_blend_mode(blend_mode) end + +--- @return CanvasItemMaterial.BlendMode +function CanvasItemMaterial:get_blend_mode() end + +--- @param light_mode CanvasItemMaterial.LightMode +function CanvasItemMaterial:set_light_mode(light_mode) end + +--- @return CanvasItemMaterial.LightMode +function CanvasItemMaterial:get_light_mode() end + +--- @param particles_anim bool +function CanvasItemMaterial:set_particles_animation(particles_anim) end + +--- @return bool +function CanvasItemMaterial:get_particles_animation() end + +--- @param frames int +function CanvasItemMaterial:set_particles_anim_h_frames(frames) end + +--- @return int +function CanvasItemMaterial:get_particles_anim_h_frames() end + +--- @param frames int +function CanvasItemMaterial:set_particles_anim_v_frames(frames) end + +--- @return int +function CanvasItemMaterial:get_particles_anim_v_frames() end + +--- @param loop bool +function CanvasItemMaterial:set_particles_anim_loop(loop) end + +--- @return bool +function CanvasItemMaterial:get_particles_anim_loop() end + + +----------------------------------------------------------- +-- CanvasLayer +----------------------------------------------------------- + +--- @class CanvasLayer: Node, { [string]: any } +--- @field layer int +--- @field visible bool +--- @field offset Vector2 +--- @field rotation float +--- @field scale Vector2 +--- @field transform Transform2D +--- @field custom_viewport Viewport +--- @field follow_viewport_enabled bool +--- @field follow_viewport_scale float +CanvasLayer = {} + +--- @return CanvasLayer +function CanvasLayer:new() end + +CanvasLayer.visibility_changed = Signal() + +--- @param layer int +function CanvasLayer:set_layer(layer) end + +--- @return int +function CanvasLayer:get_layer() end + +--- @param visible bool +function CanvasLayer:set_visible(visible) end + +--- @return bool +function CanvasLayer:is_visible() end + +function CanvasLayer:show() end + +function CanvasLayer:hide() end + +--- @param transform Transform2D +function CanvasLayer:set_transform(transform) end + +--- @return Transform2D +function CanvasLayer:get_transform() end + +--- @return Transform2D +function CanvasLayer:get_final_transform() end + +--- @param offset Vector2 +function CanvasLayer:set_offset(offset) end + +--- @return Vector2 +function CanvasLayer:get_offset() end + +--- @param radians float +function CanvasLayer:set_rotation(radians) end + +--- @return float +function CanvasLayer:get_rotation() end + +--- @param scale Vector2 +function CanvasLayer:set_scale(scale) end + +--- @return Vector2 +function CanvasLayer:get_scale() end + +--- @param enable bool +function CanvasLayer:set_follow_viewport(enable) end + +--- @return bool +function CanvasLayer:is_following_viewport() end + +--- @param scale float +function CanvasLayer:set_follow_viewport_scale(scale) end + +--- @return float +function CanvasLayer:get_follow_viewport_scale() end + +--- @param viewport Node +function CanvasLayer:set_custom_viewport(viewport) end + +--- @return Node +function CanvasLayer:get_custom_viewport() end + +--- @return RID +function CanvasLayer:get_canvas() end + + +----------------------------------------------------------- +-- CanvasModulate +----------------------------------------------------------- + +--- @class CanvasModulate: Node2D, { [string]: any } +--- @field color Color +CanvasModulate = {} + +--- @return CanvasModulate +function CanvasModulate:new() end + +--- @param color Color +function CanvasModulate:set_color(color) end + +--- @return Color +function CanvasModulate:get_color() end + + +----------------------------------------------------------- +-- CanvasTexture +----------------------------------------------------------- + +--- @class CanvasTexture: Texture2D, { [string]: any } +--- @field diffuse_texture Texture2D +--- @field normal_texture Texture2D +--- @field specular_texture Texture2D +--- @field specular_color Color +--- @field specular_shininess float +--- @field texture_filter int +--- @field texture_repeat int +CanvasTexture = {} + +--- @return CanvasTexture +function CanvasTexture:new() end + +--- @param texture Texture2D +function CanvasTexture:set_diffuse_texture(texture) end + +--- @return Texture2D +function CanvasTexture:get_diffuse_texture() end + +--- @param texture Texture2D +function CanvasTexture:set_normal_texture(texture) end + +--- @return Texture2D +function CanvasTexture:get_normal_texture() end + +--- @param texture Texture2D +function CanvasTexture:set_specular_texture(texture) end + +--- @return Texture2D +function CanvasTexture:get_specular_texture() end + +--- @param color Color +function CanvasTexture:set_specular_color(color) end + +--- @return Color +function CanvasTexture:get_specular_color() end + +--- @param shininess float +function CanvasTexture:set_specular_shininess(shininess) end + +--- @return float +function CanvasTexture:get_specular_shininess() end + +--- @param filter CanvasItem.TextureFilter +function CanvasTexture:set_texture_filter(filter) end + +--- @return CanvasItem.TextureFilter +function CanvasTexture:get_texture_filter() end + +--- @param _repeat CanvasItem.TextureRepeat +function CanvasTexture:set_texture_repeat(_repeat) end + +--- @return CanvasItem.TextureRepeat +function CanvasTexture:get_texture_repeat() end + + +----------------------------------------------------------- +-- CapsuleMesh +----------------------------------------------------------- + +--- @class CapsuleMesh: PrimitiveMesh, { [string]: any } +--- @field radius float +--- @field height float +--- @field radial_segments int +--- @field rings int +CapsuleMesh = {} + +--- @return CapsuleMesh +function CapsuleMesh:new() end + +--- @param radius float +function CapsuleMesh:set_radius(radius) end + +--- @return float +function CapsuleMesh:get_radius() end + +--- @param height float +function CapsuleMesh:set_height(height) end + +--- @return float +function CapsuleMesh:get_height() end + +--- @param segments int +function CapsuleMesh:set_radial_segments(segments) end + +--- @return int +function CapsuleMesh:get_radial_segments() end + +--- @param rings int +function CapsuleMesh:set_rings(rings) end + +--- @return int +function CapsuleMesh:get_rings() end + + +----------------------------------------------------------- +-- CapsuleShape2D +----------------------------------------------------------- + +--- @class CapsuleShape2D: Shape2D, { [string]: any } +--- @field radius float +--- @field height float +--- @field mid_height float +CapsuleShape2D = {} + +--- @return CapsuleShape2D +function CapsuleShape2D:new() end + +--- @param radius float +function CapsuleShape2D:set_radius(radius) end + +--- @return float +function CapsuleShape2D:get_radius() end + +--- @param height float +function CapsuleShape2D:set_height(height) end + +--- @return float +function CapsuleShape2D:get_height() end + +--- @param mid_height float +function CapsuleShape2D:set_mid_height(mid_height) end + +--- @return float +function CapsuleShape2D:get_mid_height() end + + +----------------------------------------------------------- +-- CapsuleShape3D +----------------------------------------------------------- + +--- @class CapsuleShape3D: Shape3D, { [string]: any } +--- @field radius float +--- @field height float +--- @field mid_height float +CapsuleShape3D = {} + +--- @return CapsuleShape3D +function CapsuleShape3D:new() end + +--- @param radius float +function CapsuleShape3D:set_radius(radius) end + +--- @return float +function CapsuleShape3D:get_radius() end + +--- @param height float +function CapsuleShape3D:set_height(height) end + +--- @return float +function CapsuleShape3D:get_height() end + +--- @param mid_height float +function CapsuleShape3D:set_mid_height(mid_height) end + +--- @return float +function CapsuleShape3D:get_mid_height() end + + +----------------------------------------------------------- +-- CenterContainer +----------------------------------------------------------- + +--- @class CenterContainer: Container, { [string]: any } +--- @field use_top_left bool +CenterContainer = {} + +--- @return CenterContainer +function CenterContainer:new() end + +--- @param enable bool +function CenterContainer:set_use_top_left(enable) end + +--- @return bool +function CenterContainer:is_using_top_left() end + + +----------------------------------------------------------- +-- CharFXTransform +----------------------------------------------------------- + +--- @class CharFXTransform: RefCounted, { [string]: any } +--- @field transform Transform2D +--- @field range Vector2i +--- @field elapsed_time float +--- @field visible bool +--- @field outline bool +--- @field offset Vector2 +--- @field color Color +--- @field env Dictionary +--- @field glyph_index int +--- @field glyph_count int +--- @field glyph_flags int +--- @field relative_index int +--- @field font RID +CharFXTransform = {} + +--- @return CharFXTransform +function CharFXTransform:new() end + +--- @return Transform2D +function CharFXTransform:get_transform() end + +--- @param transform Transform2D +function CharFXTransform:set_transform(transform) end + +--- @return Vector2i +function CharFXTransform:get_range() end + +--- @param range Vector2i +function CharFXTransform:set_range(range) end + +--- @return float +function CharFXTransform:get_elapsed_time() end + +--- @param time float +function CharFXTransform:set_elapsed_time(time) end + +--- @return bool +function CharFXTransform:is_visible() end + +--- @param visibility bool +function CharFXTransform:set_visibility(visibility) end + +--- @return bool +function CharFXTransform:is_outline() end + +--- @param outline bool +function CharFXTransform:set_outline(outline) end + +--- @return Vector2 +function CharFXTransform:get_offset() end + +--- @param offset Vector2 +function CharFXTransform:set_offset(offset) end + +--- @return Color +function CharFXTransform:get_color() end + +--- @param color Color +function CharFXTransform:set_color(color) end + +--- @return Dictionary +function CharFXTransform:get_environment() end + +--- @param environment Dictionary +function CharFXTransform:set_environment(environment) end + +--- @return int +function CharFXTransform:get_glyph_index() end + +--- @param glyph_index int +function CharFXTransform:set_glyph_index(glyph_index) end + +--- @return int +function CharFXTransform:get_relative_index() end + +--- @param relative_index int +function CharFXTransform:set_relative_index(relative_index) end + +--- @return int +function CharFXTransform:get_glyph_count() end + +--- @param glyph_count int +function CharFXTransform:set_glyph_count(glyph_count) end + +--- @return int +function CharFXTransform:get_glyph_flags() end + +--- @param glyph_flags int +function CharFXTransform:set_glyph_flags(glyph_flags) end + +--- @return RID +function CharFXTransform:get_font() end + +--- @param font RID +function CharFXTransform:set_font(font) end + + +----------------------------------------------------------- +-- CharacterBody2D +----------------------------------------------------------- + +--- @class CharacterBody2D: PhysicsBody2D, { [string]: any } +--- @field motion_mode int +--- @field up_direction Vector2 +--- @field velocity Vector2 +--- @field slide_on_ceiling bool +--- @field max_slides int +--- @field wall_min_slide_angle float +--- @field floor_stop_on_slope bool +--- @field floor_constant_speed bool +--- @field floor_block_on_wall bool +--- @field floor_max_angle float +--- @field floor_snap_length float +--- @field platform_on_leave int +--- @field platform_floor_layers int +--- @field platform_wall_layers int +--- @field safe_margin float +CharacterBody2D = {} + +--- @return CharacterBody2D +function CharacterBody2D:new() end + +--- @alias CharacterBody2D.MotionMode `CharacterBody2D.MOTION_MODE_GROUNDED` | `CharacterBody2D.MOTION_MODE_FLOATING` +CharacterBody2D.MOTION_MODE_GROUNDED = 0 +CharacterBody2D.MOTION_MODE_FLOATING = 1 + +--- @alias CharacterBody2D.PlatformOnLeave `CharacterBody2D.PLATFORM_ON_LEAVE_ADD_VELOCITY` | `CharacterBody2D.PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY` | `CharacterBody2D.PLATFORM_ON_LEAVE_DO_NOTHING` +CharacterBody2D.PLATFORM_ON_LEAVE_ADD_VELOCITY = 0 +CharacterBody2D.PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY = 1 +CharacterBody2D.PLATFORM_ON_LEAVE_DO_NOTHING = 2 + +--- @return bool +function CharacterBody2D:move_and_slide() end + +function CharacterBody2D:apply_floor_snap() end + +--- @param velocity Vector2 +function CharacterBody2D:set_velocity(velocity) end + +--- @return Vector2 +function CharacterBody2D:get_velocity() end + +--- @param margin float +function CharacterBody2D:set_safe_margin(margin) end + +--- @return float +function CharacterBody2D:get_safe_margin() end + +--- @return bool +function CharacterBody2D:is_floor_stop_on_slope_enabled() end + +--- @param enabled bool +function CharacterBody2D:set_floor_stop_on_slope_enabled(enabled) end + +--- @param enabled bool +function CharacterBody2D:set_floor_constant_speed_enabled(enabled) end + +--- @return bool +function CharacterBody2D:is_floor_constant_speed_enabled() end + +--- @param enabled bool +function CharacterBody2D:set_floor_block_on_wall_enabled(enabled) end + +--- @return bool +function CharacterBody2D:is_floor_block_on_wall_enabled() end + +--- @param enabled bool +function CharacterBody2D:set_slide_on_ceiling_enabled(enabled) end + +--- @return bool +function CharacterBody2D:is_slide_on_ceiling_enabled() end + +--- @param exclude_layer int +function CharacterBody2D:set_platform_floor_layers(exclude_layer) end + +--- @return int +function CharacterBody2D:get_platform_floor_layers() end + +--- @param exclude_layer int +function CharacterBody2D:set_platform_wall_layers(exclude_layer) end + +--- @return int +function CharacterBody2D:get_platform_wall_layers() end + +--- @return int +function CharacterBody2D:get_max_slides() end + +--- @param max_slides int +function CharacterBody2D:set_max_slides(max_slides) end + +--- @return float +function CharacterBody2D:get_floor_max_angle() end + +--- @param radians float +function CharacterBody2D:set_floor_max_angle(radians) end + +--- @return float +function CharacterBody2D:get_floor_snap_length() end + +--- @param floor_snap_length float +function CharacterBody2D:set_floor_snap_length(floor_snap_length) end + +--- @return float +function CharacterBody2D:get_wall_min_slide_angle() end + +--- @param radians float +function CharacterBody2D:set_wall_min_slide_angle(radians) end + +--- @return Vector2 +function CharacterBody2D:get_up_direction() end + +--- @param up_direction Vector2 +function CharacterBody2D:set_up_direction(up_direction) end + +--- @param mode CharacterBody2D.MotionMode +function CharacterBody2D:set_motion_mode(mode) end + +--- @return CharacterBody2D.MotionMode +function CharacterBody2D:get_motion_mode() end + +--- @param on_leave_apply_velocity CharacterBody2D.PlatformOnLeave +function CharacterBody2D:set_platform_on_leave(on_leave_apply_velocity) end + +--- @return CharacterBody2D.PlatformOnLeave +function CharacterBody2D:get_platform_on_leave() end + +--- @return bool +function CharacterBody2D:is_on_floor() end + +--- @return bool +function CharacterBody2D:is_on_floor_only() end + +--- @return bool +function CharacterBody2D:is_on_ceiling() end + +--- @return bool +function CharacterBody2D:is_on_ceiling_only() end + +--- @return bool +function CharacterBody2D:is_on_wall() end + +--- @return bool +function CharacterBody2D:is_on_wall_only() end + +--- @return Vector2 +function CharacterBody2D:get_floor_normal() end + +--- @return Vector2 +function CharacterBody2D:get_wall_normal() end + +--- @return Vector2 +function CharacterBody2D:get_last_motion() end + +--- @return Vector2 +function CharacterBody2D:get_position_delta() end + +--- @return Vector2 +function CharacterBody2D:get_real_velocity() end + +--- @param up_direction Vector2? Default: Vector2(0, -1) +--- @return float +function CharacterBody2D:get_floor_angle(up_direction) end + +--- @return Vector2 +function CharacterBody2D:get_platform_velocity() end + +--- @return int +function CharacterBody2D:get_slide_collision_count() end + +--- @param slide_idx int +--- @return KinematicCollision2D +function CharacterBody2D:get_slide_collision(slide_idx) end + +--- @return KinematicCollision2D +function CharacterBody2D:get_last_slide_collision() end + + +----------------------------------------------------------- +-- CharacterBody3D +----------------------------------------------------------- + +--- @class CharacterBody3D: PhysicsBody3D, { [string]: any } +--- @field motion_mode int +--- @field up_direction Vector3 +--- @field slide_on_ceiling bool +--- @field velocity Vector3 +--- @field max_slides int +--- @field wall_min_slide_angle float +--- @field floor_stop_on_slope bool +--- @field floor_constant_speed bool +--- @field floor_block_on_wall bool +--- @field floor_max_angle float +--- @field floor_snap_length float +--- @field platform_on_leave int +--- @field platform_floor_layers int +--- @field platform_wall_layers int +--- @field safe_margin float +CharacterBody3D = {} + +--- @return CharacterBody3D +function CharacterBody3D:new() end + +--- @alias CharacterBody3D.MotionMode `CharacterBody3D.MOTION_MODE_GROUNDED` | `CharacterBody3D.MOTION_MODE_FLOATING` +CharacterBody3D.MOTION_MODE_GROUNDED = 0 +CharacterBody3D.MOTION_MODE_FLOATING = 1 + +--- @alias CharacterBody3D.PlatformOnLeave `CharacterBody3D.PLATFORM_ON_LEAVE_ADD_VELOCITY` | `CharacterBody3D.PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY` | `CharacterBody3D.PLATFORM_ON_LEAVE_DO_NOTHING` +CharacterBody3D.PLATFORM_ON_LEAVE_ADD_VELOCITY = 0 +CharacterBody3D.PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY = 1 +CharacterBody3D.PLATFORM_ON_LEAVE_DO_NOTHING = 2 + +--- @return bool +function CharacterBody3D:move_and_slide() end + +function CharacterBody3D:apply_floor_snap() end + +--- @param velocity Vector3 +function CharacterBody3D:set_velocity(velocity) end + +--- @return Vector3 +function CharacterBody3D:get_velocity() end + +--- @param margin float +function CharacterBody3D:set_safe_margin(margin) end + +--- @return float +function CharacterBody3D:get_safe_margin() end + +--- @return bool +function CharacterBody3D:is_floor_stop_on_slope_enabled() end + +--- @param enabled bool +function CharacterBody3D:set_floor_stop_on_slope_enabled(enabled) end + +--- @param enabled bool +function CharacterBody3D:set_floor_constant_speed_enabled(enabled) end + +--- @return bool +function CharacterBody3D:is_floor_constant_speed_enabled() end + +--- @param enabled bool +function CharacterBody3D:set_floor_block_on_wall_enabled(enabled) end + +--- @return bool +function CharacterBody3D:is_floor_block_on_wall_enabled() end + +--- @param enabled bool +function CharacterBody3D:set_slide_on_ceiling_enabled(enabled) end + +--- @return bool +function CharacterBody3D:is_slide_on_ceiling_enabled() end + +--- @param exclude_layer int +function CharacterBody3D:set_platform_floor_layers(exclude_layer) end + +--- @return int +function CharacterBody3D:get_platform_floor_layers() end + +--- @param exclude_layer int +function CharacterBody3D:set_platform_wall_layers(exclude_layer) end + +--- @return int +function CharacterBody3D:get_platform_wall_layers() end + +--- @return int +function CharacterBody3D:get_max_slides() end + +--- @param max_slides int +function CharacterBody3D:set_max_slides(max_slides) end + +--- @return float +function CharacterBody3D:get_floor_max_angle() end + +--- @param radians float +function CharacterBody3D:set_floor_max_angle(radians) end + +--- @return float +function CharacterBody3D:get_floor_snap_length() end + +--- @param floor_snap_length float +function CharacterBody3D:set_floor_snap_length(floor_snap_length) end + +--- @return float +function CharacterBody3D:get_wall_min_slide_angle() end + +--- @param radians float +function CharacterBody3D:set_wall_min_slide_angle(radians) end + +--- @return Vector3 +function CharacterBody3D:get_up_direction() end + +--- @param up_direction Vector3 +function CharacterBody3D:set_up_direction(up_direction) end + +--- @param mode CharacterBody3D.MotionMode +function CharacterBody3D:set_motion_mode(mode) end + +--- @return CharacterBody3D.MotionMode +function CharacterBody3D:get_motion_mode() end + +--- @param on_leave_apply_velocity CharacterBody3D.PlatformOnLeave +function CharacterBody3D:set_platform_on_leave(on_leave_apply_velocity) end + +--- @return CharacterBody3D.PlatformOnLeave +function CharacterBody3D:get_platform_on_leave() end + +--- @return bool +function CharacterBody3D:is_on_floor() end + +--- @return bool +function CharacterBody3D:is_on_floor_only() end + +--- @return bool +function CharacterBody3D:is_on_ceiling() end + +--- @return bool +function CharacterBody3D:is_on_ceiling_only() end + +--- @return bool +function CharacterBody3D:is_on_wall() end + +--- @return bool +function CharacterBody3D:is_on_wall_only() end + +--- @return Vector3 +function CharacterBody3D:get_floor_normal() end + +--- @return Vector3 +function CharacterBody3D:get_wall_normal() end + +--- @return Vector3 +function CharacterBody3D:get_last_motion() end + +--- @return Vector3 +function CharacterBody3D:get_position_delta() end + +--- @return Vector3 +function CharacterBody3D:get_real_velocity() end + +--- @param up_direction Vector3? Default: Vector3(0, 1, 0) +--- @return float +function CharacterBody3D:get_floor_angle(up_direction) end + +--- @return Vector3 +function CharacterBody3D:get_platform_velocity() end + +--- @return Vector3 +function CharacterBody3D:get_platform_angular_velocity() end + +--- @return int +function CharacterBody3D:get_slide_collision_count() end + +--- @param slide_idx int +--- @return KinematicCollision3D +function CharacterBody3D:get_slide_collision(slide_idx) end + +--- @return KinematicCollision3D +function CharacterBody3D:get_last_slide_collision() end + + +----------------------------------------------------------- +-- CheckBox +----------------------------------------------------------- + +--- @class CheckBox: Button, { [string]: any } +CheckBox = {} + +--- @return CheckBox +function CheckBox:new() end + + +----------------------------------------------------------- +-- CheckButton +----------------------------------------------------------- + +--- @class CheckButton: Button, { [string]: any } +CheckButton = {} + +--- @return CheckButton +function CheckButton:new() end + + +----------------------------------------------------------- +-- CircleShape2D +----------------------------------------------------------- + +--- @class CircleShape2D: Shape2D, { [string]: any } +--- @field radius float +CircleShape2D = {} + +--- @return CircleShape2D +function CircleShape2D:new() end + +--- @param radius float +function CircleShape2D:set_radius(radius) end + +--- @return float +function CircleShape2D:get_radius() end + + +----------------------------------------------------------- +-- ClassDB +----------------------------------------------------------- + +--- @class ClassDB: Object, { [string]: any } +ClassDB = {} + +--- @alias ClassDB.APIType `ClassDB.API_CORE` | `ClassDB.API_EDITOR` | `ClassDB.API_EXTENSION` | `ClassDB.API_EDITOR_EXTENSION` | `ClassDB.API_NONE` +ClassDB.API_CORE = 0 +ClassDB.API_EDITOR = 1 +ClassDB.API_EXTENSION = 2 +ClassDB.API_EDITOR_EXTENSION = 3 +ClassDB.API_NONE = 4 + +--- @return PackedStringArray +function ClassDB:get_class_list() end + +--- @param class StringName +--- @return PackedStringArray +function ClassDB:get_inheriters_from_class(class) end + +--- @param class StringName +--- @return StringName +function ClassDB:get_parent_class(class) end + +--- @param class StringName +--- @return bool +function ClassDB:class_exists(class) end + +--- @param class StringName +--- @param inherits StringName +--- @return bool +function ClassDB:is_parent_class(class, inherits) end + +--- @param class StringName +--- @return bool +function ClassDB:can_instantiate(class) end + +--- @param class StringName +--- @return any +function ClassDB:instantiate(class) end + +--- @param class StringName +--- @return ClassDB.APIType +function ClassDB:class_get_api_type(class) end + +--- @param class StringName +--- @param signal StringName +--- @return bool +function ClassDB:class_has_signal(class, signal) end + +--- @param class StringName +--- @param signal StringName +--- @return Dictionary +function ClassDB:class_get_signal(class, signal) end + +--- @param class StringName +--- @param no_inheritance bool? Default: false +--- @return Array[Dictionary] +function ClassDB:class_get_signal_list(class, no_inheritance) end + +--- @param class StringName +--- @param no_inheritance bool? Default: false +--- @return Array[Dictionary] +function ClassDB:class_get_property_list(class, no_inheritance) end + +--- @param class StringName +--- @param property StringName +--- @return StringName +function ClassDB:class_get_property_getter(class, property) end + +--- @param class StringName +--- @param property StringName +--- @return StringName +function ClassDB:class_get_property_setter(class, property) end + +--- @param object Object +--- @param property StringName +--- @return any +function ClassDB:class_get_property(object, property) end + +--- @param object Object +--- @param property StringName +--- @param value any +--- @return Error +function ClassDB:class_set_property(object, property, value) end + +--- @param class StringName +--- @param property StringName +--- @return any +function ClassDB:class_get_property_default_value(class, property) end + +--- @param class StringName +--- @param method StringName +--- @param no_inheritance bool? Default: false +--- @return bool +function ClassDB:class_has_method(class, method, no_inheritance) end + +--- @param class StringName +--- @param method StringName +--- @param no_inheritance bool? Default: false +--- @return int +function ClassDB:class_get_method_argument_count(class, method, no_inheritance) end + +--- @param class StringName +--- @param no_inheritance bool? Default: false +--- @return Array[Dictionary] +function ClassDB:class_get_method_list(class, no_inheritance) end + +--- @param class StringName +--- @param method StringName +--- @return any +function ClassDB:class_call_static(class, method, ...) end + +--- @param class StringName +--- @param no_inheritance bool? Default: false +--- @return PackedStringArray +function ClassDB:class_get_integer_constant_list(class, no_inheritance) end + +--- @param class StringName +--- @param name StringName +--- @return bool +function ClassDB:class_has_integer_constant(class, name) end + +--- @param class StringName +--- @param name StringName +--- @return int +function ClassDB:class_get_integer_constant(class, name) end + +--- @param class StringName +--- @param name StringName +--- @param no_inheritance bool? Default: false +--- @return bool +function ClassDB:class_has_enum(class, name, no_inheritance) end + +--- @param class StringName +--- @param no_inheritance bool? Default: false +--- @return PackedStringArray +function ClassDB:class_get_enum_list(class, no_inheritance) end + +--- @param class StringName +--- @param enum StringName +--- @param no_inheritance bool? Default: false +--- @return PackedStringArray +function ClassDB:class_get_enum_constants(class, enum, no_inheritance) end + +--- @param class StringName +--- @param name StringName +--- @param no_inheritance bool? Default: false +--- @return StringName +function ClassDB:class_get_integer_constant_enum(class, name, no_inheritance) end + +--- @param class StringName +--- @param enum StringName +--- @param no_inheritance bool? Default: false +--- @return bool +function ClassDB:is_class_enum_bitfield(class, enum, no_inheritance) end + +--- @param class StringName +--- @return bool +function ClassDB:is_class_enabled(class) end + + +----------------------------------------------------------- +-- CodeEdit +----------------------------------------------------------- + +--- @class CodeEdit: TextEdit, { [string]: any } +--- @field symbol_lookup_on_click bool +--- @field symbol_tooltip_on_hover bool +--- @field line_folding bool +--- @field line_length_guidelines PackedInt32Array +--- @field gutters_draw_breakpoints_gutter bool +--- @field gutters_draw_bookmarks bool +--- @field gutters_draw_executing_lines bool +--- @field gutters_draw_line_numbers bool +--- @field gutters_zero_pad_line_numbers bool +--- @field gutters_draw_fold_gutter bool +--- @field delimiter_strings PackedStringArray +--- @field delimiter_comments PackedStringArray +--- @field code_completion_enabled bool +--- @field code_completion_prefixes PackedStringArray +--- @field indent_size int +--- @field indent_use_spaces bool +--- @field indent_automatic bool +--- @field indent_automatic_prefixes PackedStringArray +--- @field auto_brace_completion_enabled bool +--- @field auto_brace_completion_highlight_matching bool +--- @field auto_brace_completion_pairs Dictionary +CodeEdit = {} + +--- @return CodeEdit +function CodeEdit:new() end + +--- @alias CodeEdit.CodeCompletionKind `CodeEdit.KIND_CLASS` | `CodeEdit.KIND_FUNCTION` | `CodeEdit.KIND_SIGNAL` | `CodeEdit.KIND_VARIABLE` | `CodeEdit.KIND_MEMBER` | `CodeEdit.KIND_ENUM` | `CodeEdit.KIND_CONSTANT` | `CodeEdit.KIND_NODE_PATH` | `CodeEdit.KIND_FILE_PATH` | `CodeEdit.KIND_PLAIN_TEXT` +CodeEdit.KIND_CLASS = 0 +CodeEdit.KIND_FUNCTION = 1 +CodeEdit.KIND_SIGNAL = 2 +CodeEdit.KIND_VARIABLE = 3 +CodeEdit.KIND_MEMBER = 4 +CodeEdit.KIND_ENUM = 5 +CodeEdit.KIND_CONSTANT = 6 +CodeEdit.KIND_NODE_PATH = 7 +CodeEdit.KIND_FILE_PATH = 8 +CodeEdit.KIND_PLAIN_TEXT = 9 + +--- @alias CodeEdit.CodeCompletionLocation `CodeEdit.LOCATION_LOCAL` | `CodeEdit.LOCATION_PARENT_MASK` | `CodeEdit.LOCATION_OTHER_USER_CODE` | `CodeEdit.LOCATION_OTHER` +CodeEdit.LOCATION_LOCAL = 0 +CodeEdit.LOCATION_PARENT_MASK = 256 +CodeEdit.LOCATION_OTHER_USER_CODE = 512 +CodeEdit.LOCATION_OTHER = 1024 + +CodeEdit.breakpoint_toggled = Signal() +CodeEdit.code_completion_requested = Signal() +CodeEdit.symbol_lookup = Signal() +CodeEdit.symbol_validate = Signal() +CodeEdit.symbol_hovered = Signal() + +--- @param replace bool +function CodeEdit:_confirm_code_completion(replace) end + +--- @param force bool +function CodeEdit:_request_code_completion(force) end + +--- @param candidates Array[Dictionary] +--- @return Array[Dictionary] +function CodeEdit:_filter_code_completion_candidates(candidates) end + +--- @param size int +function CodeEdit:set_indent_size(size) end + +--- @return int +function CodeEdit:get_indent_size() end + +--- @param use_spaces bool +function CodeEdit:set_indent_using_spaces(use_spaces) end + +--- @return bool +function CodeEdit:is_indent_using_spaces() end + +--- @param enable bool +function CodeEdit:set_auto_indent_enabled(enable) end + +--- @return bool +function CodeEdit:is_auto_indent_enabled() end + +--- @param prefixes Array[String] +function CodeEdit:set_auto_indent_prefixes(prefixes) end + +--- @return Array[String] +function CodeEdit:get_auto_indent_prefixes() end + +function CodeEdit:do_indent() end + +function CodeEdit:indent_lines() end + +function CodeEdit:unindent_lines() end + +--- @param from_line int? Default: -1 +--- @param to_line int? Default: -1 +function CodeEdit:convert_indent(from_line, to_line) end + +--- @param enable bool +function CodeEdit:set_auto_brace_completion_enabled(enable) end + +--- @return bool +function CodeEdit:is_auto_brace_completion_enabled() end + +--- @param enable bool +function CodeEdit:set_highlight_matching_braces_enabled(enable) end + +--- @return bool +function CodeEdit:is_highlight_matching_braces_enabled() end + +--- @param start_key String +--- @param end_key String +function CodeEdit:add_auto_brace_completion_pair(start_key, end_key) end + +--- @param pairs Dictionary +function CodeEdit:set_auto_brace_completion_pairs(pairs) end + +--- @return Dictionary +function CodeEdit:get_auto_brace_completion_pairs() end + +--- @param open_key String +--- @return bool +function CodeEdit:has_auto_brace_completion_open_key(open_key) end + +--- @param close_key String +--- @return bool +function CodeEdit:has_auto_brace_completion_close_key(close_key) end + +--- @param open_key String +--- @return String +function CodeEdit:get_auto_brace_completion_close_key(open_key) end + +--- @param enable bool +function CodeEdit:set_draw_breakpoints_gutter(enable) end + +--- @return bool +function CodeEdit:is_drawing_breakpoints_gutter() end + +--- @param enable bool +function CodeEdit:set_draw_bookmarks_gutter(enable) end + +--- @return bool +function CodeEdit:is_drawing_bookmarks_gutter() end + +--- @param enable bool +function CodeEdit:set_draw_executing_lines_gutter(enable) end + +--- @return bool +function CodeEdit:is_drawing_executing_lines_gutter() end + +--- @param line int +--- @param breakpointed bool +function CodeEdit:set_line_as_breakpoint(line, breakpointed) end + +--- @param line int +--- @return bool +function CodeEdit:is_line_breakpointed(line) end + +function CodeEdit:clear_breakpointed_lines() end + +--- @return PackedInt32Array +function CodeEdit:get_breakpointed_lines() end + +--- @param line int +--- @param bookmarked bool +function CodeEdit:set_line_as_bookmarked(line, bookmarked) end + +--- @param line int +--- @return bool +function CodeEdit:is_line_bookmarked(line) end + +function CodeEdit:clear_bookmarked_lines() end + +--- @return PackedInt32Array +function CodeEdit:get_bookmarked_lines() end + +--- @param line int +--- @param executing bool +function CodeEdit:set_line_as_executing(line, executing) end + +--- @param line int +--- @return bool +function CodeEdit:is_line_executing(line) end + +function CodeEdit:clear_executing_lines() end + +--- @return PackedInt32Array +function CodeEdit:get_executing_lines() end + +--- @param enable bool +function CodeEdit:set_draw_line_numbers(enable) end + +--- @return bool +function CodeEdit:is_draw_line_numbers_enabled() end + +--- @param enable bool +function CodeEdit:set_line_numbers_zero_padded(enable) end + +--- @return bool +function CodeEdit:is_line_numbers_zero_padded() end + +--- @param enable bool +function CodeEdit:set_draw_fold_gutter(enable) end + +--- @return bool +function CodeEdit:is_drawing_fold_gutter() end + +--- @param enabled bool +function CodeEdit:set_line_folding_enabled(enabled) end + +--- @return bool +function CodeEdit:is_line_folding_enabled() end + +--- @param line int +--- @return bool +function CodeEdit:can_fold_line(line) end + +--- @param line int +function CodeEdit:fold_line(line) end + +--- @param line int +function CodeEdit:unfold_line(line) end + +function CodeEdit:fold_all_lines() end + +function CodeEdit:unfold_all_lines() end + +--- @param line int +function CodeEdit:toggle_foldable_line(line) end + +function CodeEdit:toggle_foldable_lines_at_carets() end + +--- @param line int +--- @return bool +function CodeEdit:is_line_folded(line) end + +--- @return Array[int] +function CodeEdit:get_folded_lines() end + +function CodeEdit:create_code_region() end + +--- @return String +function CodeEdit:get_code_region_start_tag() end + +--- @return String +function CodeEdit:get_code_region_end_tag() end + +--- @param start String? Default: "region" +--- @param _end String? Default: "endregion" +function CodeEdit:set_code_region_tags(start, _end) end + +--- @param line int +--- @return bool +function CodeEdit:is_line_code_region_start(line) end + +--- @param line int +--- @return bool +function CodeEdit:is_line_code_region_end(line) end + +--- @param start_key String +--- @param end_key String +--- @param line_only bool? Default: false +function CodeEdit:add_string_delimiter(start_key, end_key, line_only) end + +--- @param start_key String +function CodeEdit:remove_string_delimiter(start_key) end + +--- @param start_key String +--- @return bool +function CodeEdit:has_string_delimiter(start_key) end + +--- @param string_delimiters Array[String] +function CodeEdit:set_string_delimiters(string_delimiters) end + +function CodeEdit:clear_string_delimiters() end + +--- @return Array[String] +function CodeEdit:get_string_delimiters() end + +--- @param line int +--- @param column int? Default: -1 +--- @return int +function CodeEdit:is_in_string(line, column) end + +--- @param start_key String +--- @param end_key String +--- @param line_only bool? Default: false +function CodeEdit:add_comment_delimiter(start_key, end_key, line_only) end + +--- @param start_key String +function CodeEdit:remove_comment_delimiter(start_key) end + +--- @param start_key String +--- @return bool +function CodeEdit:has_comment_delimiter(start_key) end + +--- @param comment_delimiters Array[String] +function CodeEdit:set_comment_delimiters(comment_delimiters) end + +function CodeEdit:clear_comment_delimiters() end + +--- @return Array[String] +function CodeEdit:get_comment_delimiters() end + +--- @param line int +--- @param column int? Default: -1 +--- @return int +function CodeEdit:is_in_comment(line, column) end + +--- @param delimiter_index int +--- @return String +function CodeEdit:get_delimiter_start_key(delimiter_index) end + +--- @param delimiter_index int +--- @return String +function CodeEdit:get_delimiter_end_key(delimiter_index) end + +--- @param line int +--- @param column int +--- @return Vector2 +function CodeEdit:get_delimiter_start_position(line, column) end + +--- @param line int +--- @param column int +--- @return Vector2 +function CodeEdit:get_delimiter_end_position(line, column) end + +--- @param code_hint String +function CodeEdit:set_code_hint(code_hint) end + +--- @param draw_below bool +function CodeEdit:set_code_hint_draw_below(draw_below) end + +--- @return String +function CodeEdit:get_text_for_code_completion() end + +--- @param force bool? Default: false +function CodeEdit:request_code_completion(force) end + +--- @param type CodeEdit.CodeCompletionKind +--- @param display_text String +--- @param insert_text String +--- @param text_color Color? Default: Color(1, 1, 1, 1) +--- @param icon Resource? Default: null +--- @param value any? Default: null +--- @param location int? Default: 1024 +function CodeEdit:add_code_completion_option(type, display_text, insert_text, text_color, icon, value, location) end + +--- @param force bool +function CodeEdit:update_code_completion_options(force) end + +--- @return Array[Dictionary] +function CodeEdit:get_code_completion_options() end + +--- @param index int +--- @return Dictionary +function CodeEdit:get_code_completion_option(index) end + +--- @return int +function CodeEdit:get_code_completion_selected_index() end + +--- @param index int +function CodeEdit:set_code_completion_selected_index(index) end + +--- @param replace bool? Default: false +function CodeEdit:confirm_code_completion(replace) end + +function CodeEdit:cancel_code_completion() end + +--- @param enable bool +function CodeEdit:set_code_completion_enabled(enable) end + +--- @return bool +function CodeEdit:is_code_completion_enabled() end + +--- @param prefixes Array[String] +function CodeEdit:set_code_completion_prefixes(prefixes) end + +--- @return Array[String] +function CodeEdit:get_code_completion_prefixes() end + +--- @param guideline_columns Array[int] +function CodeEdit:set_line_length_guidelines(guideline_columns) end + +--- @return Array[int] +function CodeEdit:get_line_length_guidelines() end + +--- @param enable bool +function CodeEdit:set_symbol_lookup_on_click_enabled(enable) end + +--- @return bool +function CodeEdit:is_symbol_lookup_on_click_enabled() end + +--- @return String +function CodeEdit:get_text_for_symbol_lookup() end + +--- @param line int +--- @param column int +--- @return String +function CodeEdit:get_text_with_cursor_char(line, column) end + +--- @param valid bool +function CodeEdit:set_symbol_lookup_word_as_valid(valid) end + +--- @param enable bool +function CodeEdit:set_symbol_tooltip_on_hover_enabled(enable) end + +--- @return bool +function CodeEdit:is_symbol_tooltip_on_hover_enabled() end + +function CodeEdit:move_lines_up() end + +function CodeEdit:move_lines_down() end + +function CodeEdit:delete_lines() end + +function CodeEdit:duplicate_selection() end + +function CodeEdit:duplicate_lines() end + + +----------------------------------------------------------- +-- CodeHighlighter +----------------------------------------------------------- + +--- @class CodeHighlighter: SyntaxHighlighter, { [string]: any } +--- @field number_color Color +--- @field symbol_color Color +--- @field function_color Color +--- @field member_variable_color Color +--- @field keyword_colors Dictionary +--- @field member_keyword_colors Dictionary +--- @field color_regions Dictionary +CodeHighlighter = {} + +--- @return CodeHighlighter +function CodeHighlighter:new() end + +--- @param keyword String +--- @param color Color +function CodeHighlighter:add_keyword_color(keyword, color) end + +--- @param keyword String +function CodeHighlighter:remove_keyword_color(keyword) end + +--- @param keyword String +--- @return bool +function CodeHighlighter:has_keyword_color(keyword) end + +--- @param keyword String +--- @return Color +function CodeHighlighter:get_keyword_color(keyword) end + +--- @param keywords Dictionary +function CodeHighlighter:set_keyword_colors(keywords) end + +function CodeHighlighter:clear_keyword_colors() end + +--- @return Dictionary +function CodeHighlighter:get_keyword_colors() end + +--- @param member_keyword String +--- @param color Color +function CodeHighlighter:add_member_keyword_color(member_keyword, color) end + +--- @param member_keyword String +function CodeHighlighter:remove_member_keyword_color(member_keyword) end + +--- @param member_keyword String +--- @return bool +function CodeHighlighter:has_member_keyword_color(member_keyword) end + +--- @param member_keyword String +--- @return Color +function CodeHighlighter:get_member_keyword_color(member_keyword) end + +--- @param member_keyword Dictionary +function CodeHighlighter:set_member_keyword_colors(member_keyword) end + +function CodeHighlighter:clear_member_keyword_colors() end + +--- @return Dictionary +function CodeHighlighter:get_member_keyword_colors() end + +--- @param start_key String +--- @param end_key String +--- @param color Color +--- @param line_only bool? Default: false +function CodeHighlighter:add_color_region(start_key, end_key, color, line_only) end + +--- @param start_key String +function CodeHighlighter:remove_color_region(start_key) end + +--- @param start_key String +--- @return bool +function CodeHighlighter:has_color_region(start_key) end + +--- @param color_regions Dictionary +function CodeHighlighter:set_color_regions(color_regions) end + +function CodeHighlighter:clear_color_regions() end + +--- @return Dictionary +function CodeHighlighter:get_color_regions() end + +--- @param color Color +function CodeHighlighter:set_function_color(color) end + +--- @return Color +function CodeHighlighter:get_function_color() end + +--- @param color Color +function CodeHighlighter:set_number_color(color) end + +--- @return Color +function CodeHighlighter:get_number_color() end + +--- @param color Color +function CodeHighlighter:set_symbol_color(color) end + +--- @return Color +function CodeHighlighter:get_symbol_color() end + +--- @param color Color +function CodeHighlighter:set_member_variable_color(color) end + +--- @return Color +function CodeHighlighter:get_member_variable_color() end + + +----------------------------------------------------------- +-- CollisionObject2D +----------------------------------------------------------- + +--- @class CollisionObject2D: Node2D, { [string]: any } +--- @field disable_mode int +--- @field collision_layer int +--- @field collision_mask int +--- @field collision_priority float +--- @field input_pickable bool +CollisionObject2D = {} + +--- @alias CollisionObject2D.DisableMode `CollisionObject2D.DISABLE_MODE_REMOVE` | `CollisionObject2D.DISABLE_MODE_MAKE_STATIC` | `CollisionObject2D.DISABLE_MODE_KEEP_ACTIVE` +CollisionObject2D.DISABLE_MODE_REMOVE = 0 +CollisionObject2D.DISABLE_MODE_MAKE_STATIC = 1 +CollisionObject2D.DISABLE_MODE_KEEP_ACTIVE = 2 + +CollisionObject2D.input_event = Signal() +CollisionObject2D.mouse_entered = Signal() +CollisionObject2D.mouse_exited = Signal() +CollisionObject2D.mouse_shape_entered = Signal() +CollisionObject2D.mouse_shape_exited = Signal() + +--- @param viewport Viewport +--- @param event InputEvent +--- @param shape_idx int +function CollisionObject2D:_input_event(viewport, event, shape_idx) end + +function CollisionObject2D:_mouse_enter() end + +function CollisionObject2D:_mouse_exit() end + +--- @param shape_idx int +function CollisionObject2D:_mouse_shape_enter(shape_idx) end + +--- @param shape_idx int +function CollisionObject2D:_mouse_shape_exit(shape_idx) end + +--- @return RID +function CollisionObject2D:get_rid() end + +--- @param layer int +function CollisionObject2D:set_collision_layer(layer) end + +--- @return int +function CollisionObject2D:get_collision_layer() end + +--- @param mask int +function CollisionObject2D:set_collision_mask(mask) end + +--- @return int +function CollisionObject2D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function CollisionObject2D:set_collision_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CollisionObject2D:get_collision_layer_value(layer_number) end + +--- @param layer_number int +--- @param value bool +function CollisionObject2D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CollisionObject2D:get_collision_mask_value(layer_number) end + +--- @param priority float +function CollisionObject2D:set_collision_priority(priority) end + +--- @return float +function CollisionObject2D:get_collision_priority() end + +--- @param mode CollisionObject2D.DisableMode +function CollisionObject2D:set_disable_mode(mode) end + +--- @return CollisionObject2D.DisableMode +function CollisionObject2D:get_disable_mode() end + +--- @param enabled bool +function CollisionObject2D:set_pickable(enabled) end + +--- @return bool +function CollisionObject2D:is_pickable() end + +--- @param owner Object +--- @return int +function CollisionObject2D:create_shape_owner(owner) end + +--- @param owner_id int +function CollisionObject2D:remove_shape_owner(owner_id) end + +--- @return PackedInt32Array +function CollisionObject2D:get_shape_owners() end + +--- @param owner_id int +--- @param transform Transform2D +function CollisionObject2D:shape_owner_set_transform(owner_id, transform) end + +--- @param owner_id int +--- @return Transform2D +function CollisionObject2D:shape_owner_get_transform(owner_id) end + +--- @param owner_id int +--- @return Object +function CollisionObject2D:shape_owner_get_owner(owner_id) end + +--- @param owner_id int +--- @param disabled bool +function CollisionObject2D:shape_owner_set_disabled(owner_id, disabled) end + +--- @param owner_id int +--- @return bool +function CollisionObject2D:is_shape_owner_disabled(owner_id) end + +--- @param owner_id int +--- @param enable bool +function CollisionObject2D:shape_owner_set_one_way_collision(owner_id, enable) end + +--- @param owner_id int +--- @return bool +function CollisionObject2D:is_shape_owner_one_way_collision_enabled(owner_id) end + +--- @param owner_id int +--- @param margin float +function CollisionObject2D:shape_owner_set_one_way_collision_margin(owner_id, margin) end + +--- @param owner_id int +--- @return float +function CollisionObject2D:get_shape_owner_one_way_collision_margin(owner_id) end + +--- @param owner_id int +--- @param shape Shape2D +function CollisionObject2D:shape_owner_add_shape(owner_id, shape) end + +--- @param owner_id int +--- @return int +function CollisionObject2D:shape_owner_get_shape_count(owner_id) end + +--- @param owner_id int +--- @param shape_id int +--- @return Shape2D +function CollisionObject2D:shape_owner_get_shape(owner_id, shape_id) end + +--- @param owner_id int +--- @param shape_id int +--- @return int +function CollisionObject2D:shape_owner_get_shape_index(owner_id, shape_id) end + +--- @param owner_id int +--- @param shape_id int +function CollisionObject2D:shape_owner_remove_shape(owner_id, shape_id) end + +--- @param owner_id int +function CollisionObject2D:shape_owner_clear_shapes(owner_id) end + +--- @param shape_index int +--- @return int +function CollisionObject2D:shape_find_owner(shape_index) end + + +----------------------------------------------------------- +-- CollisionObject3D +----------------------------------------------------------- + +--- @class CollisionObject3D: Node3D, { [string]: any } +--- @field disable_mode int +--- @field collision_layer int +--- @field collision_mask int +--- @field collision_priority float +--- @field input_ray_pickable bool +--- @field input_capture_on_drag bool +CollisionObject3D = {} + +--- @alias CollisionObject3D.DisableMode `CollisionObject3D.DISABLE_MODE_REMOVE` | `CollisionObject3D.DISABLE_MODE_MAKE_STATIC` | `CollisionObject3D.DISABLE_MODE_KEEP_ACTIVE` +CollisionObject3D.DISABLE_MODE_REMOVE = 0 +CollisionObject3D.DISABLE_MODE_MAKE_STATIC = 1 +CollisionObject3D.DISABLE_MODE_KEEP_ACTIVE = 2 + +CollisionObject3D.input_event = Signal() +CollisionObject3D.mouse_entered = Signal() +CollisionObject3D.mouse_exited = Signal() + +--- @param camera Camera3D +--- @param event InputEvent +--- @param event_position Vector3 +--- @param normal Vector3 +--- @param shape_idx int +function CollisionObject3D:_input_event(camera, event, event_position, normal, shape_idx) end + +function CollisionObject3D:_mouse_enter() end + +function CollisionObject3D:_mouse_exit() end + +--- @param layer int +function CollisionObject3D:set_collision_layer(layer) end + +--- @return int +function CollisionObject3D:get_collision_layer() end + +--- @param mask int +function CollisionObject3D:set_collision_mask(mask) end + +--- @return int +function CollisionObject3D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function CollisionObject3D:set_collision_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CollisionObject3D:get_collision_layer_value(layer_number) end + +--- @param layer_number int +--- @param value bool +function CollisionObject3D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function CollisionObject3D:get_collision_mask_value(layer_number) end + +--- @param priority float +function CollisionObject3D:set_collision_priority(priority) end + +--- @return float +function CollisionObject3D:get_collision_priority() end + +--- @param mode CollisionObject3D.DisableMode +function CollisionObject3D:set_disable_mode(mode) end + +--- @return CollisionObject3D.DisableMode +function CollisionObject3D:get_disable_mode() end + +--- @param ray_pickable bool +function CollisionObject3D:set_ray_pickable(ray_pickable) end + +--- @return bool +function CollisionObject3D:is_ray_pickable() end + +--- @param enable bool +function CollisionObject3D:set_capture_input_on_drag(enable) end + +--- @return bool +function CollisionObject3D:get_capture_input_on_drag() end + +--- @return RID +function CollisionObject3D:get_rid() end + +--- @param owner Object +--- @return int +function CollisionObject3D:create_shape_owner(owner) end + +--- @param owner_id int +function CollisionObject3D:remove_shape_owner(owner_id) end + +--- @return PackedInt32Array +function CollisionObject3D:get_shape_owners() end + +--- @param owner_id int +--- @param transform Transform3D +function CollisionObject3D:shape_owner_set_transform(owner_id, transform) end + +--- @param owner_id int +--- @return Transform3D +function CollisionObject3D:shape_owner_get_transform(owner_id) end + +--- @param owner_id int +--- @return Object +function CollisionObject3D:shape_owner_get_owner(owner_id) end + +--- @param owner_id int +--- @param disabled bool +function CollisionObject3D:shape_owner_set_disabled(owner_id, disabled) end + +--- @param owner_id int +--- @return bool +function CollisionObject3D:is_shape_owner_disabled(owner_id) end + +--- @param owner_id int +--- @param shape Shape3D +function CollisionObject3D:shape_owner_add_shape(owner_id, shape) end + +--- @param owner_id int +--- @return int +function CollisionObject3D:shape_owner_get_shape_count(owner_id) end + +--- @param owner_id int +--- @param shape_id int +--- @return Shape3D +function CollisionObject3D:shape_owner_get_shape(owner_id, shape_id) end + +--- @param owner_id int +--- @param shape_id int +--- @return int +function CollisionObject3D:shape_owner_get_shape_index(owner_id, shape_id) end + +--- @param owner_id int +--- @param shape_id int +function CollisionObject3D:shape_owner_remove_shape(owner_id, shape_id) end + +--- @param owner_id int +function CollisionObject3D:shape_owner_clear_shapes(owner_id) end + +--- @param shape_index int +--- @return int +function CollisionObject3D:shape_find_owner(shape_index) end + + +----------------------------------------------------------- +-- CollisionPolygon2D +----------------------------------------------------------- + +--- @class CollisionPolygon2D: Node2D, { [string]: any } +--- @field build_mode int +--- @field polygon PackedVector2Array +--- @field disabled bool +--- @field one_way_collision bool +--- @field one_way_collision_margin float +CollisionPolygon2D = {} + +--- @return CollisionPolygon2D +function CollisionPolygon2D:new() end + +--- @alias CollisionPolygon2D.BuildMode `CollisionPolygon2D.BUILD_SOLIDS` | `CollisionPolygon2D.BUILD_SEGMENTS` +CollisionPolygon2D.BUILD_SOLIDS = 0 +CollisionPolygon2D.BUILD_SEGMENTS = 1 + +--- @param polygon PackedVector2Array +function CollisionPolygon2D:set_polygon(polygon) end + +--- @return PackedVector2Array +function CollisionPolygon2D:get_polygon() end + +--- @param build_mode CollisionPolygon2D.BuildMode +function CollisionPolygon2D:set_build_mode(build_mode) end + +--- @return CollisionPolygon2D.BuildMode +function CollisionPolygon2D:get_build_mode() end + +--- @param disabled bool +function CollisionPolygon2D:set_disabled(disabled) end + +--- @return bool +function CollisionPolygon2D:is_disabled() end + +--- @param enabled bool +function CollisionPolygon2D:set_one_way_collision(enabled) end + +--- @return bool +function CollisionPolygon2D:is_one_way_collision_enabled() end + +--- @param margin float +function CollisionPolygon2D:set_one_way_collision_margin(margin) end + +--- @return float +function CollisionPolygon2D:get_one_way_collision_margin() end + + +----------------------------------------------------------- +-- CollisionPolygon3D +----------------------------------------------------------- + +--- @class CollisionPolygon3D: Node3D, { [string]: any } +--- @field depth float +--- @field disabled bool +--- @field polygon PackedVector2Array +--- @field margin float +--- @field debug_color Color +--- @field debug_fill bool +CollisionPolygon3D = {} + +--- @return CollisionPolygon3D +function CollisionPolygon3D:new() end + +--- @param depth float +function CollisionPolygon3D:set_depth(depth) end + +--- @return float +function CollisionPolygon3D:get_depth() end + +--- @param polygon PackedVector2Array +function CollisionPolygon3D:set_polygon(polygon) end + +--- @return PackedVector2Array +function CollisionPolygon3D:get_polygon() end + +--- @param disabled bool +function CollisionPolygon3D:set_disabled(disabled) end + +--- @return bool +function CollisionPolygon3D:is_disabled() end + +--- @param color Color +function CollisionPolygon3D:set_debug_color(color) end + +--- @return Color +function CollisionPolygon3D:get_debug_color() end + +--- @param enable bool +function CollisionPolygon3D:set_enable_debug_fill(enable) end + +--- @return bool +function CollisionPolygon3D:get_enable_debug_fill() end + +--- @param margin float +function CollisionPolygon3D:set_margin(margin) end + +--- @return float +function CollisionPolygon3D:get_margin() end + + +----------------------------------------------------------- +-- CollisionShape2D +----------------------------------------------------------- + +--- @class CollisionShape2D: Node2D, { [string]: any } +--- @field shape Shape2D +--- @field disabled bool +--- @field one_way_collision bool +--- @field one_way_collision_margin float +--- @field debug_color Color +CollisionShape2D = {} + +--- @return CollisionShape2D +function CollisionShape2D:new() end + +--- @param shape Shape2D +function CollisionShape2D:set_shape(shape) end + +--- @return Shape2D +function CollisionShape2D:get_shape() end + +--- @param disabled bool +function CollisionShape2D:set_disabled(disabled) end + +--- @return bool +function CollisionShape2D:is_disabled() end + +--- @param enabled bool +function CollisionShape2D:set_one_way_collision(enabled) end + +--- @return bool +function CollisionShape2D:is_one_way_collision_enabled() end + +--- @param margin float +function CollisionShape2D:set_one_way_collision_margin(margin) end + +--- @return float +function CollisionShape2D:get_one_way_collision_margin() end + +--- @param color Color +function CollisionShape2D:set_debug_color(color) end + +--- @return Color +function CollisionShape2D:get_debug_color() end + + +----------------------------------------------------------- +-- CollisionShape3D +----------------------------------------------------------- + +--- @class CollisionShape3D: Node3D, { [string]: any } +--- @field shape Shape3D +--- @field disabled bool +--- @field debug_color Color +--- @field debug_fill bool +CollisionShape3D = {} + +--- @return CollisionShape3D +function CollisionShape3D:new() end + +--- @param resource Resource +function CollisionShape3D:resource_changed(resource) end + +--- @param shape Shape3D +function CollisionShape3D:set_shape(shape) end + +--- @return Shape3D +function CollisionShape3D:get_shape() end + +--- @param enable bool +function CollisionShape3D:set_disabled(enable) end + +--- @return bool +function CollisionShape3D:is_disabled() end + +function CollisionShape3D:make_convex_from_siblings() end + +--- @param color Color +function CollisionShape3D:set_debug_color(color) end + +--- @return Color +function CollisionShape3D:get_debug_color() end + +--- @param enable bool +function CollisionShape3D:set_enable_debug_fill(enable) end + +--- @return bool +function CollisionShape3D:get_enable_debug_fill() end + + +----------------------------------------------------------- +-- ColorPalette +----------------------------------------------------------- + +--- @class ColorPalette: Resource, { [string]: any } +--- @field colors PackedColorArray +ColorPalette = {} + +--- @return ColorPalette +function ColorPalette:new() end + +--- @param colors PackedColorArray +function ColorPalette:set_colors(colors) end + +--- @return PackedColorArray +function ColorPalette:get_colors() end + + +----------------------------------------------------------- +-- ColorPicker +----------------------------------------------------------- + +--- @class ColorPicker: VBoxContainer, { [string]: any } +--- @field color Color +--- @field edit_alpha bool +--- @field edit_intensity bool +--- @field color_mode int +--- @field deferred_mode bool +--- @field picker_shape int +--- @field can_add_swatches bool +--- @field sampler_visible bool +--- @field color_modes_visible bool +--- @field sliders_visible bool +--- @field hex_visible bool +--- @field presets_visible bool +ColorPicker = {} + +--- @return ColorPicker +function ColorPicker:new() end + +--- @alias ColorPicker.ColorModeType `ColorPicker.MODE_RGB` | `ColorPicker.MODE_HSV` | `ColorPicker.MODE_RAW` | `ColorPicker.MODE_LINEAR` | `ColorPicker.MODE_OKHSL` +ColorPicker.MODE_RGB = 0 +ColorPicker.MODE_HSV = 1 +ColorPicker.MODE_RAW = 2 +ColorPicker.MODE_LINEAR = 2 +ColorPicker.MODE_OKHSL = 3 + +--- @alias ColorPicker.PickerShapeType `ColorPicker.SHAPE_HSV_RECTANGLE` | `ColorPicker.SHAPE_HSV_WHEEL` | `ColorPicker.SHAPE_VHS_CIRCLE` | `ColorPicker.SHAPE_OKHSL_CIRCLE` | `ColorPicker.SHAPE_NONE` | `ColorPicker.SHAPE_OK_HS_RECTANGLE` | `ColorPicker.SHAPE_OK_HL_RECTANGLE` +ColorPicker.SHAPE_HSV_RECTANGLE = 0 +ColorPicker.SHAPE_HSV_WHEEL = 1 +ColorPicker.SHAPE_VHS_CIRCLE = 2 +ColorPicker.SHAPE_OKHSL_CIRCLE = 3 +ColorPicker.SHAPE_NONE = 4 +ColorPicker.SHAPE_OK_HS_RECTANGLE = 5 +ColorPicker.SHAPE_OK_HL_RECTANGLE = 6 + +ColorPicker.color_changed = Signal() +ColorPicker.preset_added = Signal() +ColorPicker.preset_removed = Signal() + +--- @param color Color +function ColorPicker:set_pick_color(color) end + +--- @return Color +function ColorPicker:get_pick_color() end + +--- @param mode bool +function ColorPicker:set_deferred_mode(mode) end + +--- @return bool +function ColorPicker:is_deferred_mode() end + +--- @param color_mode ColorPicker.ColorModeType +function ColorPicker:set_color_mode(color_mode) end + +--- @return ColorPicker.ColorModeType +function ColorPicker:get_color_mode() end + +--- @param show bool +function ColorPicker:set_edit_alpha(show) end + +--- @return bool +function ColorPicker:is_editing_alpha() end + +--- @param show bool +function ColorPicker:set_edit_intensity(show) end + +--- @return bool +function ColorPicker:is_editing_intensity() end + +--- @param enabled bool +function ColorPicker:set_can_add_swatches(enabled) end + +--- @return bool +function ColorPicker:are_swatches_enabled() end + +--- @param visible bool +function ColorPicker:set_presets_visible(visible) end + +--- @return bool +function ColorPicker:are_presets_visible() end + +--- @param visible bool +function ColorPicker:set_modes_visible(visible) end + +--- @return bool +function ColorPicker:are_modes_visible() end + +--- @param visible bool +function ColorPicker:set_sampler_visible(visible) end + +--- @return bool +function ColorPicker:is_sampler_visible() end + +--- @param visible bool +function ColorPicker:set_sliders_visible(visible) end + +--- @return bool +function ColorPicker:are_sliders_visible() end + +--- @param visible bool +function ColorPicker:set_hex_visible(visible) end + +--- @return bool +function ColorPicker:is_hex_visible() end + +--- @param color Color +function ColorPicker:add_preset(color) end + +--- @param color Color +function ColorPicker:erase_preset(color) end + +--- @return PackedColorArray +function ColorPicker:get_presets() end + +--- @param color Color +function ColorPicker:add_recent_preset(color) end + +--- @param color Color +function ColorPicker:erase_recent_preset(color) end + +--- @return PackedColorArray +function ColorPicker:get_recent_presets() end + +--- @param shape ColorPicker.PickerShapeType +function ColorPicker:set_picker_shape(shape) end + +--- @return ColorPicker.PickerShapeType +function ColorPicker:get_picker_shape() end + + +----------------------------------------------------------- +-- ColorPickerButton +----------------------------------------------------------- + +--- @class ColorPickerButton: Button, { [string]: any } +--- @field color Color +--- @field edit_alpha bool +--- @field edit_intensity bool +ColorPickerButton = {} + +--- @return ColorPickerButton +function ColorPickerButton:new() end + +ColorPickerButton.color_changed = Signal() +ColorPickerButton.popup_closed = Signal() +ColorPickerButton.picker_created = Signal() + +--- @param color Color +function ColorPickerButton:set_pick_color(color) end + +--- @return Color +function ColorPickerButton:get_pick_color() end + +--- @return ColorPicker +function ColorPickerButton:get_picker() end + +--- @return PopupPanel +function ColorPickerButton:get_popup() end + +--- @param show bool +function ColorPickerButton:set_edit_alpha(show) end + +--- @return bool +function ColorPickerButton:is_editing_alpha() end + +--- @param show bool +function ColorPickerButton:set_edit_intensity(show) end + +--- @return bool +function ColorPickerButton:is_editing_intensity() end + + +----------------------------------------------------------- +-- ColorRect +----------------------------------------------------------- + +--- @class ColorRect: Control, { [string]: any } +--- @field color Color +ColorRect = {} + +--- @return ColorRect +function ColorRect:new() end + +--- @param color Color +function ColorRect:set_color(color) end + +--- @return Color +function ColorRect:get_color() end + + +----------------------------------------------------------- +-- Compositor +----------------------------------------------------------- + +--- @class Compositor: Resource, { [string]: any } +--- @field compositor_effects Array[24/17:CompositorEffect] +Compositor = {} + +--- @return Compositor +function Compositor:new() end + +--- @param compositor_effects Array[CompositorEffect] +function Compositor:set_compositor_effects(compositor_effects) end + +--- @return Array[CompositorEffect] +function Compositor:get_compositor_effects() end + + +----------------------------------------------------------- +-- CompositorEffect +----------------------------------------------------------- + +--- @class CompositorEffect: Resource, { [string]: any } +--- @field enabled bool +--- @field effect_callback_type int +--- @field access_resolved_color bool +--- @field access_resolved_depth bool +--- @field needs_motion_vectors bool +--- @field needs_normal_roughness bool +--- @field needs_separate_specular bool +CompositorEffect = {} + +--- @return CompositorEffect +function CompositorEffect:new() end + +--- @alias CompositorEffect.EffectCallbackType `CompositorEffect.EFFECT_CALLBACK_TYPE_PRE_OPAQUE` | `CompositorEffect.EFFECT_CALLBACK_TYPE_POST_OPAQUE` | `CompositorEffect.EFFECT_CALLBACK_TYPE_POST_SKY` | `CompositorEffect.EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT` | `CompositorEffect.EFFECT_CALLBACK_TYPE_POST_TRANSPARENT` | `CompositorEffect.EFFECT_CALLBACK_TYPE_MAX` +CompositorEffect.EFFECT_CALLBACK_TYPE_PRE_OPAQUE = 0 +CompositorEffect.EFFECT_CALLBACK_TYPE_POST_OPAQUE = 1 +CompositorEffect.EFFECT_CALLBACK_TYPE_POST_SKY = 2 +CompositorEffect.EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT = 3 +CompositorEffect.EFFECT_CALLBACK_TYPE_POST_TRANSPARENT = 4 +CompositorEffect.EFFECT_CALLBACK_TYPE_MAX = 5 + +--- @param effect_callback_type int +--- @param render_data RenderData +function CompositorEffect:_render_callback(effect_callback_type, render_data) end + +--- @param enabled bool +function CompositorEffect:set_enabled(enabled) end + +--- @return bool +function CompositorEffect:get_enabled() end + +--- @param effect_callback_type CompositorEffect.EffectCallbackType +function CompositorEffect:set_effect_callback_type(effect_callback_type) end + +--- @return CompositorEffect.EffectCallbackType +function CompositorEffect:get_effect_callback_type() end + +--- @param enable bool +function CompositorEffect:set_access_resolved_color(enable) end + +--- @return bool +function CompositorEffect:get_access_resolved_color() end + +--- @param enable bool +function CompositorEffect:set_access_resolved_depth(enable) end + +--- @return bool +function CompositorEffect:get_access_resolved_depth() end + +--- @param enable bool +function CompositorEffect:set_needs_motion_vectors(enable) end + +--- @return bool +function CompositorEffect:get_needs_motion_vectors() end + +--- @param enable bool +function CompositorEffect:set_needs_normal_roughness(enable) end + +--- @return bool +function CompositorEffect:get_needs_normal_roughness() end + +--- @param enable bool +function CompositorEffect:set_needs_separate_specular(enable) end + +--- @return bool +function CompositorEffect:get_needs_separate_specular() end + + +----------------------------------------------------------- +-- CompressedCubemap +----------------------------------------------------------- + +--- @class CompressedCubemap: CompressedTextureLayered, { [string]: any } +CompressedCubemap = {} + +--- @return CompressedCubemap +function CompressedCubemap:new() end + + +----------------------------------------------------------- +-- CompressedCubemapArray +----------------------------------------------------------- + +--- @class CompressedCubemapArray: CompressedTextureLayered, { [string]: any } +CompressedCubemapArray = {} + +--- @return CompressedCubemapArray +function CompressedCubemapArray:new() end + + +----------------------------------------------------------- +-- CompressedTexture2D +----------------------------------------------------------- + +--- @class CompressedTexture2D: Texture2D, { [string]: any } +--- @field load_path String +CompressedTexture2D = {} + +--- @return CompressedTexture2D +function CompressedTexture2D:new() end + +--- @param path String +--- @return Error +function CompressedTexture2D:load(path) end + +--- @return String +function CompressedTexture2D:get_load_path() end + + +----------------------------------------------------------- +-- CompressedTexture2DArray +----------------------------------------------------------- + +--- @class CompressedTexture2DArray: CompressedTextureLayered, { [string]: any } +CompressedTexture2DArray = {} + +--- @return CompressedTexture2DArray +function CompressedTexture2DArray:new() end + + +----------------------------------------------------------- +-- CompressedTexture3D +----------------------------------------------------------- + +--- @class CompressedTexture3D: Texture3D, { [string]: any } +--- @field load_path String +CompressedTexture3D = {} + +--- @return CompressedTexture3D +function CompressedTexture3D:new() end + +--- @param path String +--- @return Error +function CompressedTexture3D:load(path) end + +--- @return String +function CompressedTexture3D:get_load_path() end + + +----------------------------------------------------------- +-- CompressedTextureLayered +----------------------------------------------------------- + +--- @class CompressedTextureLayered: TextureLayered, { [string]: any } +--- @field load_path String +CompressedTextureLayered = {} + +--- @param path String +--- @return Error +function CompressedTextureLayered:load(path) end + +--- @return String +function CompressedTextureLayered:get_load_path() end + + +----------------------------------------------------------- +-- ConcavePolygonShape2D +----------------------------------------------------------- + +--- @class ConcavePolygonShape2D: Shape2D, { [string]: any } +--- @field segments PackedVector2Array +ConcavePolygonShape2D = {} + +--- @return ConcavePolygonShape2D +function ConcavePolygonShape2D:new() end + +--- @param segments PackedVector2Array +function ConcavePolygonShape2D:set_segments(segments) end + +--- @return PackedVector2Array +function ConcavePolygonShape2D:get_segments() end + + +----------------------------------------------------------- +-- ConcavePolygonShape3D +----------------------------------------------------------- + +--- @class ConcavePolygonShape3D: Shape3D, { [string]: any } +--- @field data PackedVector3Array +--- @field backface_collision bool +ConcavePolygonShape3D = {} + +--- @return ConcavePolygonShape3D +function ConcavePolygonShape3D:new() end + +--- @param faces PackedVector3Array +function ConcavePolygonShape3D:set_faces(faces) end + +--- @return PackedVector3Array +function ConcavePolygonShape3D:get_faces() end + +--- @param enabled bool +function ConcavePolygonShape3D:set_backface_collision_enabled(enabled) end + +--- @return bool +function ConcavePolygonShape3D:is_backface_collision_enabled() end + + +----------------------------------------------------------- +-- ConeTwistJoint3D +----------------------------------------------------------- + +--- @class ConeTwistJoint3D: Joint3D, { [string]: any } +--- @field swing_span float +--- @field twist_span float +--- @field bias float +--- @field softness float +--- @field relaxation float +ConeTwistJoint3D = {} + +--- @return ConeTwistJoint3D +function ConeTwistJoint3D:new() end + +--- @alias ConeTwistJoint3D.Param `ConeTwistJoint3D.PARAM_SWING_SPAN` | `ConeTwistJoint3D.PARAM_TWIST_SPAN` | `ConeTwistJoint3D.PARAM_BIAS` | `ConeTwistJoint3D.PARAM_SOFTNESS` | `ConeTwistJoint3D.PARAM_RELAXATION` | `ConeTwistJoint3D.PARAM_MAX` +ConeTwistJoint3D.PARAM_SWING_SPAN = 0 +ConeTwistJoint3D.PARAM_TWIST_SPAN = 1 +ConeTwistJoint3D.PARAM_BIAS = 2 +ConeTwistJoint3D.PARAM_SOFTNESS = 3 +ConeTwistJoint3D.PARAM_RELAXATION = 4 +ConeTwistJoint3D.PARAM_MAX = 5 + +--- @param param ConeTwistJoint3D.Param +--- @param value float +function ConeTwistJoint3D:set_param(param, value) end + +--- @param param ConeTwistJoint3D.Param +--- @return float +function ConeTwistJoint3D:get_param(param) end + + +----------------------------------------------------------- +-- ConfigFile +----------------------------------------------------------- + +--- @class ConfigFile: RefCounted, { [string]: any } +ConfigFile = {} + +--- @return ConfigFile +function ConfigFile:new() end + +--- @param section String +--- @param key String +--- @param value any +function ConfigFile:set_value(section, key, value) end + +--- @param section String +--- @param key String +--- @param default any? Default: null +--- @return any +function ConfigFile:get_value(section, key, default) end + +--- @param section String +--- @return bool +function ConfigFile:has_section(section) end + +--- @param section String +--- @param key String +--- @return bool +function ConfigFile:has_section_key(section, key) end + +--- @return PackedStringArray +function ConfigFile:get_sections() end + +--- @param section String +--- @return PackedStringArray +function ConfigFile:get_section_keys(section) end + +--- @param section String +function ConfigFile:erase_section(section) end + +--- @param section String +--- @param key String +function ConfigFile:erase_section_key(section, key) end + +--- @param path String +--- @return Error +function ConfigFile:load(path) end + +--- @param data String +--- @return Error +function ConfigFile:parse(data) end + +--- @param path String +--- @return Error +function ConfigFile:save(path) end + +--- @return String +function ConfigFile:encode_to_text() end + +--- @param path String +--- @param key PackedByteArray +--- @return Error +function ConfigFile:load_encrypted(path, key) end + +--- @param path String +--- @param password String +--- @return Error +function ConfigFile:load_encrypted_pass(path, password) end + +--- @param path String +--- @param key PackedByteArray +--- @return Error +function ConfigFile:save_encrypted(path, key) end + +--- @param path String +--- @param password String +--- @return Error +function ConfigFile:save_encrypted_pass(path, password) end + +function ConfigFile:clear() end + + +----------------------------------------------------------- +-- ConfirmationDialog +----------------------------------------------------------- + +--- @class ConfirmationDialog: AcceptDialog, { [string]: any } +--- @field cancel_button_text String +ConfirmationDialog = {} + +--- @return ConfirmationDialog +function ConfirmationDialog:new() end + +--- @return Button +function ConfirmationDialog:get_cancel_button() end + +--- @param text String +function ConfirmationDialog:set_cancel_button_text(text) end + +--- @return String +function ConfirmationDialog:get_cancel_button_text() end + + +----------------------------------------------------------- +-- Container +----------------------------------------------------------- + +--- @class Container: Control, { [string]: any } +Container = {} + +--- @return Container +function Container:new() end + +Container.NOTIFICATION_PRE_SORT_CHILDREN = 50 +Container.NOTIFICATION_SORT_CHILDREN = 51 + +Container.pre_sort_children = Signal() +Container.sort_children = Signal() + +--- @return PackedInt32Array +function Container:_get_allowed_size_flags_horizontal() end + +--- @return PackedInt32Array +function Container:_get_allowed_size_flags_vertical() end + +function Container:queue_sort() end + +--- @param child Control +--- @param rect Rect2 +function Container:fit_child_in_rect(child, rect) end + + +----------------------------------------------------------- +-- Control +----------------------------------------------------------- + +--- @class Control: CanvasItem, { [string]: any } +--- @field clip_contents bool +--- @field custom_minimum_size Vector2 +--- @field layout_direction int +--- @field layout_mode int +--- @field anchors_preset int +--- @field anchor_left float +--- @field anchor_top float +--- @field anchor_right float +--- @field anchor_bottom float +--- @field offset_left float +--- @field offset_top float +--- @field offset_right float +--- @field offset_bottom float +--- @field grow_horizontal int +--- @field grow_vertical int +--- @field size Vector2 +--- @field position Vector2 +--- @field global_position Vector2 +--- @field rotation float +--- @field rotation_degrees float +--- @field scale Vector2 +--- @field pivot_offset Vector2 +--- @field size_flags_horizontal int +--- @field size_flags_vertical int +--- @field size_flags_stretch_ratio float +--- @field localize_numeral_system bool +--- @field auto_translate bool +--- @field tooltip_text String +--- @field tooltip_auto_translate_mode int +--- @field focus_neighbor_left NodePath +--- @field focus_neighbor_top NodePath +--- @field focus_neighbor_right NodePath +--- @field focus_neighbor_bottom NodePath +--- @field focus_next NodePath +--- @field focus_previous NodePath +--- @field focus_mode int +--- @field focus_behavior_recursive int +--- @field mouse_filter int +--- @field mouse_behavior_recursive int +--- @field mouse_force_pass_scroll_events bool +--- @field mouse_default_cursor_shape int +--- @field shortcut_context Object +--- @field accessibility_name String +--- @field accessibility_description String +--- @field accessibility_live int +--- @field accessibility_controls_nodes Array[NodePath] +--- @field accessibility_described_by_nodes Array[NodePath] +--- @field accessibility_labeled_by_nodes Array[NodePath] +--- @field accessibility_flow_to_nodes Array[NodePath] +--- @field theme Theme +--- @field theme_type_variation String +Control = {} + +--- @return Control +function Control:new() end + +Control.NOTIFICATION_RESIZED = 40 +Control.NOTIFICATION_MOUSE_ENTER = 41 +Control.NOTIFICATION_MOUSE_EXIT = 42 +Control.NOTIFICATION_MOUSE_ENTER_SELF = 60 +Control.NOTIFICATION_MOUSE_EXIT_SELF = 61 +Control.NOTIFICATION_FOCUS_ENTER = 43 +Control.NOTIFICATION_FOCUS_EXIT = 44 +Control.NOTIFICATION_THEME_CHANGED = 45 +Control.NOTIFICATION_SCROLL_BEGIN = 47 +Control.NOTIFICATION_SCROLL_END = 48 +Control.NOTIFICATION_LAYOUT_DIRECTION_CHANGED = 49 + +--- @alias Control.FocusMode `Control.FOCUS_NONE` | `Control.FOCUS_CLICK` | `Control.FOCUS_ALL` | `Control.FOCUS_ACCESSIBILITY` +Control.FOCUS_NONE = 0 +Control.FOCUS_CLICK = 1 +Control.FOCUS_ALL = 2 +Control.FOCUS_ACCESSIBILITY = 3 + +--- @alias Control.FocusBehaviorRecursive `Control.FOCUS_BEHAVIOR_INHERITED` | `Control.FOCUS_BEHAVIOR_DISABLED` | `Control.FOCUS_BEHAVIOR_ENABLED` +Control.FOCUS_BEHAVIOR_INHERITED = 0 +Control.FOCUS_BEHAVIOR_DISABLED = 1 +Control.FOCUS_BEHAVIOR_ENABLED = 2 + +--- @alias Control.MouseBehaviorRecursive `Control.MOUSE_BEHAVIOR_INHERITED` | `Control.MOUSE_BEHAVIOR_DISABLED` | `Control.MOUSE_BEHAVIOR_ENABLED` +Control.MOUSE_BEHAVIOR_INHERITED = 0 +Control.MOUSE_BEHAVIOR_DISABLED = 1 +Control.MOUSE_BEHAVIOR_ENABLED = 2 + +--- @alias Control.CursorShape `Control.CURSOR_ARROW` | `Control.CURSOR_IBEAM` | `Control.CURSOR_POINTING_HAND` | `Control.CURSOR_CROSS` | `Control.CURSOR_WAIT` | `Control.CURSOR_BUSY` | `Control.CURSOR_DRAG` | `Control.CURSOR_CAN_DROP` | `Control.CURSOR_FORBIDDEN` | `Control.CURSOR_VSIZE` | `Control.CURSOR_HSIZE` | `Control.CURSOR_BDIAGSIZE` | `Control.CURSOR_FDIAGSIZE` | `Control.CURSOR_MOVE` | `Control.CURSOR_VSPLIT` | `Control.CURSOR_HSPLIT` | `Control.CURSOR_HELP` +Control.CURSOR_ARROW = 0 +Control.CURSOR_IBEAM = 1 +Control.CURSOR_POINTING_HAND = 2 +Control.CURSOR_CROSS = 3 +Control.CURSOR_WAIT = 4 +Control.CURSOR_BUSY = 5 +Control.CURSOR_DRAG = 6 +Control.CURSOR_CAN_DROP = 7 +Control.CURSOR_FORBIDDEN = 8 +Control.CURSOR_VSIZE = 9 +Control.CURSOR_HSIZE = 10 +Control.CURSOR_BDIAGSIZE = 11 +Control.CURSOR_FDIAGSIZE = 12 +Control.CURSOR_MOVE = 13 +Control.CURSOR_VSPLIT = 14 +Control.CURSOR_HSPLIT = 15 +Control.CURSOR_HELP = 16 + +--- @alias Control.LayoutPreset `Control.PRESET_TOP_LEFT` | `Control.PRESET_TOP_RIGHT` | `Control.PRESET_BOTTOM_LEFT` | `Control.PRESET_BOTTOM_RIGHT` | `Control.PRESET_CENTER_LEFT` | `Control.PRESET_CENTER_TOP` | `Control.PRESET_CENTER_RIGHT` | `Control.PRESET_CENTER_BOTTOM` | `Control.PRESET_CENTER` | `Control.PRESET_LEFT_WIDE` | `Control.PRESET_TOP_WIDE` | `Control.PRESET_RIGHT_WIDE` | `Control.PRESET_BOTTOM_WIDE` | `Control.PRESET_VCENTER_WIDE` | `Control.PRESET_HCENTER_WIDE` | `Control.PRESET_FULL_RECT` +Control.PRESET_TOP_LEFT = 0 +Control.PRESET_TOP_RIGHT = 1 +Control.PRESET_BOTTOM_LEFT = 2 +Control.PRESET_BOTTOM_RIGHT = 3 +Control.PRESET_CENTER_LEFT = 4 +Control.PRESET_CENTER_TOP = 5 +Control.PRESET_CENTER_RIGHT = 6 +Control.PRESET_CENTER_BOTTOM = 7 +Control.PRESET_CENTER = 8 +Control.PRESET_LEFT_WIDE = 9 +Control.PRESET_TOP_WIDE = 10 +Control.PRESET_RIGHT_WIDE = 11 +Control.PRESET_BOTTOM_WIDE = 12 +Control.PRESET_VCENTER_WIDE = 13 +Control.PRESET_HCENTER_WIDE = 14 +Control.PRESET_FULL_RECT = 15 + +--- @alias Control.LayoutPresetMode `Control.PRESET_MODE_MINSIZE` | `Control.PRESET_MODE_KEEP_WIDTH` | `Control.PRESET_MODE_KEEP_HEIGHT` | `Control.PRESET_MODE_KEEP_SIZE` +Control.PRESET_MODE_MINSIZE = 0 +Control.PRESET_MODE_KEEP_WIDTH = 1 +Control.PRESET_MODE_KEEP_HEIGHT = 2 +Control.PRESET_MODE_KEEP_SIZE = 3 + +--- @alias Control.SizeFlags `Control.SIZE_SHRINK_BEGIN` | `Control.SIZE_FILL` | `Control.SIZE_EXPAND` | `Control.SIZE_EXPAND_FILL` | `Control.SIZE_SHRINK_CENTER` | `Control.SIZE_SHRINK_END` +Control.SIZE_SHRINK_BEGIN = 0 +Control.SIZE_FILL = 1 +Control.SIZE_EXPAND = 2 +Control.SIZE_EXPAND_FILL = 3 +Control.SIZE_SHRINK_CENTER = 4 +Control.SIZE_SHRINK_END = 8 + +--- @alias Control.MouseFilter `Control.MOUSE_FILTER_STOP` | `Control.MOUSE_FILTER_PASS` | `Control.MOUSE_FILTER_IGNORE` +Control.MOUSE_FILTER_STOP = 0 +Control.MOUSE_FILTER_PASS = 1 +Control.MOUSE_FILTER_IGNORE = 2 + +--- @alias Control.GrowDirection `Control.GROW_DIRECTION_BEGIN` | `Control.GROW_DIRECTION_END` | `Control.GROW_DIRECTION_BOTH` +Control.GROW_DIRECTION_BEGIN = 0 +Control.GROW_DIRECTION_END = 1 +Control.GROW_DIRECTION_BOTH = 2 + +--- @alias Control.Anchor `Control.ANCHOR_BEGIN` | `Control.ANCHOR_END` +Control.ANCHOR_BEGIN = 0 +Control.ANCHOR_END = 1 + +--- @alias Control.LayoutDirection `Control.LAYOUT_DIRECTION_INHERITED` | `Control.LAYOUT_DIRECTION_APPLICATION_LOCALE` | `Control.LAYOUT_DIRECTION_LTR` | `Control.LAYOUT_DIRECTION_RTL` | `Control.LAYOUT_DIRECTION_SYSTEM_LOCALE` | `Control.LAYOUT_DIRECTION_MAX` | `Control.LAYOUT_DIRECTION_LOCALE` +Control.LAYOUT_DIRECTION_INHERITED = 0 +Control.LAYOUT_DIRECTION_APPLICATION_LOCALE = 1 +Control.LAYOUT_DIRECTION_LTR = 2 +Control.LAYOUT_DIRECTION_RTL = 3 +Control.LAYOUT_DIRECTION_SYSTEM_LOCALE = 4 +Control.LAYOUT_DIRECTION_MAX = 5 +Control.LAYOUT_DIRECTION_LOCALE = 1 + +--- @alias Control.TextDirection `Control.TEXT_DIRECTION_INHERITED` | `Control.TEXT_DIRECTION_AUTO` | `Control.TEXT_DIRECTION_LTR` | `Control.TEXT_DIRECTION_RTL` +Control.TEXT_DIRECTION_INHERITED = 3 +Control.TEXT_DIRECTION_AUTO = 0 +Control.TEXT_DIRECTION_LTR = 1 +Control.TEXT_DIRECTION_RTL = 2 + +Control.resized = Signal() +Control.gui_input = Signal() +Control.mouse_entered = Signal() +Control.mouse_exited = Signal() +Control.focus_entered = Signal() +Control.focus_exited = Signal() +Control.size_flags_changed = Signal() +Control.minimum_size_changed = Signal() +Control.theme_changed = Signal() + +--- @param point Vector2 +--- @return bool +function Control:_has_point(point) end + +--- @param args Array +--- @param text String +--- @return Array[Vector3i] +function Control:_structured_text_parser(args, text) end + +--- @return Vector2 +function Control:_get_minimum_size() end + +--- @param at_position Vector2 +--- @return String +function Control:_get_tooltip(at_position) end + +--- @param at_position Vector2 +--- @return any +function Control:_get_drag_data(at_position) end + +--- @param at_position Vector2 +--- @param data any +--- @return bool +function Control:_can_drop_data(at_position, data) end + +--- @param at_position Vector2 +--- @param data any +function Control:_drop_data(at_position, data) end + +--- @param for_text String +--- @return Object +function Control:_make_custom_tooltip(for_text) end + +--- @return String +function Control:_accessibility_get_contextual_info() end + +--- @param node Node +--- @return String +function Control:_get_accessibility_container_name(node) end + +--- @param event InputEvent +function Control:_gui_input(event) end + +function Control:accept_event() end + +--- @return Vector2 +function Control:get_minimum_size() end + +--- @return Vector2 +function Control:get_combined_minimum_size() end + +--- @param preset Control.LayoutPreset +--- @param keep_offsets bool? Default: false +function Control:set_anchors_preset(preset, keep_offsets) end + +--- @param preset Control.LayoutPreset +--- @param resize_mode Control.LayoutPresetMode? Default: 0 +--- @param margin int? Default: 0 +function Control:set_offsets_preset(preset, resize_mode, margin) end + +--- @param preset Control.LayoutPreset +--- @param resize_mode Control.LayoutPresetMode? Default: 0 +--- @param margin int? Default: 0 +function Control:set_anchors_and_offsets_preset(preset, resize_mode, margin) end + +--- @param side Side +--- @param anchor float +--- @param keep_offset bool? Default: false +--- @param push_opposite_anchor bool? Default: true +function Control:set_anchor(side, anchor, keep_offset, push_opposite_anchor) end + +--- @param side Side +--- @return float +function Control:get_anchor(side) end + +--- @param side Side +--- @param offset float +function Control:set_offset(side, offset) end + +--- @param offset Side +--- @return float +function Control:get_offset(offset) end + +--- @param side Side +--- @param anchor float +--- @param offset float +--- @param push_opposite_anchor bool? Default: false +function Control:set_anchor_and_offset(side, anchor, offset, push_opposite_anchor) end + +--- @param position Vector2 +function Control:set_begin(position) end + +--- @param position Vector2 +function Control:set_end(position) end + +--- @param position Vector2 +--- @param keep_offsets bool? Default: false +function Control:set_position(position, keep_offsets) end + +--- @param size Vector2 +--- @param keep_offsets bool? Default: false +function Control:set_size(size, keep_offsets) end + +function Control:reset_size() end + +--- @param size Vector2 +function Control:set_custom_minimum_size(size) end + +--- @param position Vector2 +--- @param keep_offsets bool? Default: false +function Control:set_global_position(position, keep_offsets) end + +--- @param radians float +function Control:set_rotation(radians) end + +--- @param degrees float +function Control:set_rotation_degrees(degrees) end + +--- @param scale Vector2 +function Control:set_scale(scale) end + +--- @param pivot_offset Vector2 +function Control:set_pivot_offset(pivot_offset) end + +--- @return Vector2 +function Control:get_begin() end + +--- @return Vector2 +function Control:get_end() end + +--- @return Vector2 +function Control:get_position() end + +--- @return Vector2 +function Control:get_size() end + +--- @return float +function Control:get_rotation() end + +--- @return float +function Control:get_rotation_degrees() end + +--- @return Vector2 +function Control:get_scale() end + +--- @return Vector2 +function Control:get_pivot_offset() end + +--- @return Vector2 +function Control:get_custom_minimum_size() end + +--- @return Vector2 +function Control:get_parent_area_size() end + +--- @return Vector2 +function Control:get_global_position() end + +--- @return Vector2 +function Control:get_screen_position() end + +--- @return Rect2 +function Control:get_rect() end + +--- @return Rect2 +function Control:get_global_rect() end + +--- @param mode Control.FocusMode +function Control:set_focus_mode(mode) end + +--- @return Control.FocusMode +function Control:get_focus_mode() end + +--- @return Control.FocusMode +function Control:get_focus_mode_with_override() end + +--- @param focus_behavior_recursive Control.FocusBehaviorRecursive +function Control:set_focus_behavior_recursive(focus_behavior_recursive) end + +--- @return Control.FocusBehaviorRecursive +function Control:get_focus_behavior_recursive() end + +--- @return bool +function Control:has_focus() end + +function Control:grab_focus() end + +function Control:release_focus() end + +--- @return Control +function Control:find_prev_valid_focus() end + +--- @return Control +function Control:find_next_valid_focus() end + +--- @param side Side +--- @return Control +function Control:find_valid_focus_neighbor(side) end + +--- @param flags Control.SizeFlags +function Control:set_h_size_flags(flags) end + +--- @return Control.SizeFlags +function Control:get_h_size_flags() end + +--- @param ratio float +function Control:set_stretch_ratio(ratio) end + +--- @return float +function Control:get_stretch_ratio() end + +--- @param flags Control.SizeFlags +function Control:set_v_size_flags(flags) end + +--- @return Control.SizeFlags +function Control:get_v_size_flags() end + +--- @param theme Theme +function Control:set_theme(theme) end + +--- @return Theme +function Control:get_theme() end + +--- @param theme_type StringName +function Control:set_theme_type_variation(theme_type) end + +--- @return StringName +function Control:get_theme_type_variation() end + +function Control:begin_bulk_theme_override() end + +function Control:end_bulk_theme_override() end + +--- @param name StringName +--- @param texture Texture2D +function Control:add_theme_icon_override(name, texture) end + +--- @param name StringName +--- @param stylebox StyleBox +function Control:add_theme_stylebox_override(name, stylebox) end + +--- @param name StringName +--- @param font Font +function Control:add_theme_font_override(name, font) end + +--- @param name StringName +--- @param font_size int +function Control:add_theme_font_size_override(name, font_size) end + +--- @param name StringName +--- @param color Color +function Control:add_theme_color_override(name, color) end + +--- @param name StringName +--- @param constant int +function Control:add_theme_constant_override(name, constant) end + +--- @param name StringName +function Control:remove_theme_icon_override(name) end + +--- @param name StringName +function Control:remove_theme_stylebox_override(name) end + +--- @param name StringName +function Control:remove_theme_font_override(name) end + +--- @param name StringName +function Control:remove_theme_font_size_override(name) end + +--- @param name StringName +function Control:remove_theme_color_override(name) end + +--- @param name StringName +function Control:remove_theme_constant_override(name) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Texture2D +function Control:get_theme_icon(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return StyleBox +function Control:get_theme_stylebox(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Font +function Control:get_theme_font(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return int +function Control:get_theme_font_size(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Color +function Control:get_theme_color(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return int +function Control:get_theme_constant(name, theme_type) end + +--- @param name StringName +--- @return bool +function Control:has_theme_icon_override(name) end + +--- @param name StringName +--- @return bool +function Control:has_theme_stylebox_override(name) end + +--- @param name StringName +--- @return bool +function Control:has_theme_font_override(name) end + +--- @param name StringName +--- @return bool +function Control:has_theme_font_size_override(name) end + +--- @param name StringName +--- @return bool +function Control:has_theme_color_override(name) end + +--- @param name StringName +--- @return bool +function Control:has_theme_constant_override(name) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_icon(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_stylebox(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_font(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_font_size(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_color(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Control:has_theme_constant(name, theme_type) end + +--- @return float +function Control:get_theme_default_base_scale() end + +--- @return Font +function Control:get_theme_default_font() end + +--- @return int +function Control:get_theme_default_font_size() end + +--- @return Control +function Control:get_parent_control() end + +--- @param direction Control.GrowDirection +function Control:set_h_grow_direction(direction) end + +--- @return Control.GrowDirection +function Control:get_h_grow_direction() end + +--- @param direction Control.GrowDirection +function Control:set_v_grow_direction(direction) end + +--- @return Control.GrowDirection +function Control:get_v_grow_direction() end + +--- @param mode Node.AutoTranslateMode +function Control:set_tooltip_auto_translate_mode(mode) end + +--- @return Node.AutoTranslateMode +function Control:get_tooltip_auto_translate_mode() end + +--- @param hint String +function Control:set_tooltip_text(hint) end + +--- @return String +function Control:get_tooltip_text() end + +--- @param at_position Vector2? Default: Vector2(0, 0) +--- @return String +function Control:get_tooltip(at_position) end + +--- @param shape Control.CursorShape +function Control:set_default_cursor_shape(shape) end + +--- @return Control.CursorShape +function Control:get_default_cursor_shape() end + +--- @param position Vector2? Default: Vector2(0, 0) +--- @return Control.CursorShape +function Control:get_cursor_shape(position) end + +--- @param side Side +--- @param neighbor NodePath +function Control:set_focus_neighbor(side, neighbor) end + +--- @param side Side +--- @return NodePath +function Control:get_focus_neighbor(side) end + +--- @param next NodePath +function Control:set_focus_next(next) end + +--- @return NodePath +function Control:get_focus_next() end + +--- @param previous NodePath +function Control:set_focus_previous(previous) end + +--- @return NodePath +function Control:get_focus_previous() end + +--- @param data any +--- @param preview Control +function Control:force_drag(data, preview) end + +function Control:accessibility_drag() end + +function Control:accessibility_drop() end + +--- @param name String +function Control:set_accessibility_name(name) end + +--- @return String +function Control:get_accessibility_name() end + +--- @param description String +function Control:set_accessibility_description(description) end + +--- @return String +function Control:get_accessibility_description() end + +--- @param mode DisplayServer.AccessibilityLiveMode +function Control:set_accessibility_live(mode) end + +--- @return DisplayServer.AccessibilityLiveMode +function Control:get_accessibility_live() end + +--- @param node_path Array[NodePath] +function Control:set_accessibility_controls_nodes(node_path) end + +--- @return Array[NodePath] +function Control:get_accessibility_controls_nodes() end + +--- @param node_path Array[NodePath] +function Control:set_accessibility_described_by_nodes(node_path) end + +--- @return Array[NodePath] +function Control:get_accessibility_described_by_nodes() end + +--- @param node_path Array[NodePath] +function Control:set_accessibility_labeled_by_nodes(node_path) end + +--- @return Array[NodePath] +function Control:get_accessibility_labeled_by_nodes() end + +--- @param node_path Array[NodePath] +function Control:set_accessibility_flow_to_nodes(node_path) end + +--- @return Array[NodePath] +function Control:get_accessibility_flow_to_nodes() end + +--- @param filter Control.MouseFilter +function Control:set_mouse_filter(filter) end + +--- @return Control.MouseFilter +function Control:get_mouse_filter() end + +--- @return Control.MouseFilter +function Control:get_mouse_filter_with_override() end + +--- @param mouse_behavior_recursive Control.MouseBehaviorRecursive +function Control:set_mouse_behavior_recursive(mouse_behavior_recursive) end + +--- @return Control.MouseBehaviorRecursive +function Control:get_mouse_behavior_recursive() end + +--- @param force_pass_scroll_events bool +function Control:set_force_pass_scroll_events(force_pass_scroll_events) end + +--- @return bool +function Control:is_force_pass_scroll_events() end + +--- @param enable bool +function Control:set_clip_contents(enable) end + +--- @return bool +function Control:is_clipping_contents() end + +function Control:grab_click_focus() end + +--- @param drag_func Callable +--- @param can_drop_func Callable +--- @param drop_func Callable +function Control:set_drag_forwarding(drag_func, can_drop_func, drop_func) end + +--- @param control Control +function Control:set_drag_preview(control) end + +--- @return bool +function Control:is_drag_successful() end + +--- @param position Vector2 +function Control:warp_mouse(position) end + +--- @param node Node +function Control:set_shortcut_context(node) end + +--- @return Node +function Control:get_shortcut_context() end + +function Control:update_minimum_size() end + +--- @param direction Control.LayoutDirection +function Control:set_layout_direction(direction) end + +--- @return Control.LayoutDirection +function Control:get_layout_direction() end + +--- @return bool +function Control:is_layout_rtl() end + +--- @param enable bool +function Control:set_auto_translate(enable) end + +--- @return bool +function Control:is_auto_translating() end + +--- @param enable bool +function Control:set_localize_numeral_system(enable) end + +--- @return bool +function Control:is_localizing_numeral_system() end + + +----------------------------------------------------------- +-- ConvertTransformModifier3D +----------------------------------------------------------- + +--- @class ConvertTransformModifier3D: BoneConstraint3D, { [string]: any } +--- @field setting_count int +ConvertTransformModifier3D = {} + +--- @return ConvertTransformModifier3D +function ConvertTransformModifier3D:new() end + +--- @alias ConvertTransformModifier3D.TransformMode `ConvertTransformModifier3D.TRANSFORM_MODE_POSITION` | `ConvertTransformModifier3D.TRANSFORM_MODE_ROTATION` | `ConvertTransformModifier3D.TRANSFORM_MODE_SCALE` +ConvertTransformModifier3D.TRANSFORM_MODE_POSITION = 0 +ConvertTransformModifier3D.TRANSFORM_MODE_ROTATION = 1 +ConvertTransformModifier3D.TRANSFORM_MODE_SCALE = 2 + +--- @param index int +--- @param transform_mode ConvertTransformModifier3D.TransformMode +function ConvertTransformModifier3D:set_apply_transform_mode(index, transform_mode) end + +--- @param index int +--- @return ConvertTransformModifier3D.TransformMode +function ConvertTransformModifier3D:get_apply_transform_mode(index) end + +--- @param index int +--- @param axis Vector3.Axis +function ConvertTransformModifier3D:set_apply_axis(index, axis) end + +--- @param index int +--- @return Vector3.Axis +function ConvertTransformModifier3D:get_apply_axis(index) end + +--- @param index int +--- @param range_min float +function ConvertTransformModifier3D:set_apply_range_min(index, range_min) end + +--- @param index int +--- @return float +function ConvertTransformModifier3D:get_apply_range_min(index) end + +--- @param index int +--- @param range_max float +function ConvertTransformModifier3D:set_apply_range_max(index, range_max) end + +--- @param index int +--- @return float +function ConvertTransformModifier3D:get_apply_range_max(index) end + +--- @param index int +--- @param transform_mode ConvertTransformModifier3D.TransformMode +function ConvertTransformModifier3D:set_reference_transform_mode(index, transform_mode) end + +--- @param index int +--- @return ConvertTransformModifier3D.TransformMode +function ConvertTransformModifier3D:get_reference_transform_mode(index) end + +--- @param index int +--- @param axis Vector3.Axis +function ConvertTransformModifier3D:set_reference_axis(index, axis) end + +--- @param index int +--- @return Vector3.Axis +function ConvertTransformModifier3D:get_reference_axis(index) end + +--- @param index int +--- @param range_min float +function ConvertTransformModifier3D:set_reference_range_min(index, range_min) end + +--- @param index int +--- @return float +function ConvertTransformModifier3D:get_reference_range_min(index) end + +--- @param index int +--- @param range_max float +function ConvertTransformModifier3D:set_reference_range_max(index, range_max) end + +--- @param index int +--- @return float +function ConvertTransformModifier3D:get_reference_range_max(index) end + +--- @param index int +--- @param enabled bool +function ConvertTransformModifier3D:set_relative(index, enabled) end + +--- @param index int +--- @return bool +function ConvertTransformModifier3D:is_relative(index) end + +--- @param index int +--- @param enabled bool +function ConvertTransformModifier3D:set_additive(index, enabled) end + +--- @param index int +--- @return bool +function ConvertTransformModifier3D:is_additive(index) end + + +----------------------------------------------------------- +-- ConvexPolygonShape2D +----------------------------------------------------------- + +--- @class ConvexPolygonShape2D: Shape2D, { [string]: any } +--- @field points PackedVector2Array +ConvexPolygonShape2D = {} + +--- @return ConvexPolygonShape2D +function ConvexPolygonShape2D:new() end + +--- @param point_cloud PackedVector2Array +function ConvexPolygonShape2D:set_point_cloud(point_cloud) end + +--- @param points PackedVector2Array +function ConvexPolygonShape2D:set_points(points) end + +--- @return PackedVector2Array +function ConvexPolygonShape2D:get_points() end + + +----------------------------------------------------------- +-- ConvexPolygonShape3D +----------------------------------------------------------- + +--- @class ConvexPolygonShape3D: Shape3D, { [string]: any } +--- @field points Array +ConvexPolygonShape3D = {} + +--- @return ConvexPolygonShape3D +function ConvexPolygonShape3D:new() end + +--- @param points PackedVector3Array +function ConvexPolygonShape3D:set_points(points) end + +--- @return PackedVector3Array +function ConvexPolygonShape3D:get_points() end + + +----------------------------------------------------------- +-- CopyTransformModifier3D +----------------------------------------------------------- + +--- @class CopyTransformModifier3D: BoneConstraint3D, { [string]: any } +--- @field setting_count int +CopyTransformModifier3D = {} + +--- @return CopyTransformModifier3D +function CopyTransformModifier3D:new() end + +--- @alias CopyTransformModifier3D.TransformFlag `CopyTransformModifier3D.TRANSFORM_FLAG_POSITION` | `CopyTransformModifier3D.TRANSFORM_FLAG_ROTATION` | `CopyTransformModifier3D.TRANSFORM_FLAG_SCALE` | `CopyTransformModifier3D.TRANSFORM_FLAG_ALL` +CopyTransformModifier3D.TRANSFORM_FLAG_POSITION = 1 +CopyTransformModifier3D.TRANSFORM_FLAG_ROTATION = 2 +CopyTransformModifier3D.TRANSFORM_FLAG_SCALE = 4 +CopyTransformModifier3D.TRANSFORM_FLAG_ALL = 7 + +--- @alias CopyTransformModifier3D.AxisFlag `CopyTransformModifier3D.AXIS_FLAG_X` | `CopyTransformModifier3D.AXIS_FLAG_Y` | `CopyTransformModifier3D.AXIS_FLAG_Z` | `CopyTransformModifier3D.AXIS_FLAG_ALL` +CopyTransformModifier3D.AXIS_FLAG_X = 1 +CopyTransformModifier3D.AXIS_FLAG_Y = 2 +CopyTransformModifier3D.AXIS_FLAG_Z = 4 +CopyTransformModifier3D.AXIS_FLAG_ALL = 7 + +--- @param index int +--- @param copy_flags CopyTransformModifier3D.TransformFlag +function CopyTransformModifier3D:set_copy_flags(index, copy_flags) end + +--- @param index int +--- @return CopyTransformModifier3D.TransformFlag +function CopyTransformModifier3D:get_copy_flags(index) end + +--- @param index int +--- @param axis_flags CopyTransformModifier3D.AxisFlag +function CopyTransformModifier3D:set_axis_flags(index, axis_flags) end + +--- @param index int +--- @return CopyTransformModifier3D.AxisFlag +function CopyTransformModifier3D:get_axis_flags(index) end + +--- @param index int +--- @param axis_flags CopyTransformModifier3D.AxisFlag +function CopyTransformModifier3D:set_invert_flags(index, axis_flags) end + +--- @param index int +--- @return CopyTransformModifier3D.AxisFlag +function CopyTransformModifier3D:get_invert_flags(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_copy_position(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_position_copying(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_copy_rotation(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_rotation_copying(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_copy_scale(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_scale_copying(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_x_enabled(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_x_enabled(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_y_enabled(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_y_enabled(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_z_enabled(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_z_enabled(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_x_inverted(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_x_inverted(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_y_inverted(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_y_inverted(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_axis_z_inverted(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_axis_z_inverted(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_relative(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_relative(index) end + +--- @param index int +--- @param enabled bool +function CopyTransformModifier3D:set_additive(index, enabled) end + +--- @param index int +--- @return bool +function CopyTransformModifier3D:is_additive(index) end + + +----------------------------------------------------------- +-- Crypto +----------------------------------------------------------- + +--- @class Crypto: RefCounted, { [string]: any } +Crypto = {} + +--- @return Crypto +function Crypto:new() end + +--- @param size int +--- @return PackedByteArray +function Crypto:generate_random_bytes(size) end + +--- @param size int +--- @return CryptoKey +function Crypto:generate_rsa(size) end + +--- @param key CryptoKey +--- @param issuer_name String? Default: "CN=myserver,O=myorganisation,C=IT" +--- @param not_before String? Default: "20140101000000" +--- @param not_after String? Default: "20340101000000" +--- @return X509Certificate +function Crypto:generate_self_signed_certificate(key, issuer_name, not_before, not_after) end + +--- @param hash_type HashingContext.HashType +--- @param hash PackedByteArray +--- @param key CryptoKey +--- @return PackedByteArray +function Crypto:sign(hash_type, hash, key) end + +--- @param hash_type HashingContext.HashType +--- @param hash PackedByteArray +--- @param signature PackedByteArray +--- @param key CryptoKey +--- @return bool +function Crypto:verify(hash_type, hash, signature, key) end + +--- @param key CryptoKey +--- @param plaintext PackedByteArray +--- @return PackedByteArray +function Crypto:encrypt(key, plaintext) end + +--- @param key CryptoKey +--- @param ciphertext PackedByteArray +--- @return PackedByteArray +function Crypto:decrypt(key, ciphertext) end + +--- @param hash_type HashingContext.HashType +--- @param key PackedByteArray +--- @param msg PackedByteArray +--- @return PackedByteArray +function Crypto:hmac_digest(hash_type, key, msg) end + +--- @param trusted PackedByteArray +--- @param received PackedByteArray +--- @return bool +function Crypto:constant_time_compare(trusted, received) end + + +----------------------------------------------------------- +-- CryptoKey +----------------------------------------------------------- + +--- @class CryptoKey: Resource, { [string]: any } +CryptoKey = {} + +--- @return CryptoKey +function CryptoKey:new() end + +--- @param path String +--- @param public_only bool? Default: false +--- @return Error +function CryptoKey:save(path, public_only) end + +--- @param path String +--- @param public_only bool? Default: false +--- @return Error +function CryptoKey:load(path, public_only) end + +--- @return bool +function CryptoKey:is_public_only() end + +--- @param public_only bool? Default: false +--- @return String +function CryptoKey:save_to_string(public_only) end + +--- @param string_key String +--- @param public_only bool? Default: false +--- @return Error +function CryptoKey:load_from_string(string_key, public_only) end + + +----------------------------------------------------------- +-- Cubemap +----------------------------------------------------------- + +--- @class Cubemap: ImageTextureLayered, { [string]: any } +Cubemap = {} + +--- @return Cubemap +function Cubemap:new() end + +--- @return Resource +function Cubemap:create_placeholder() end + + +----------------------------------------------------------- +-- CubemapArray +----------------------------------------------------------- + +--- @class CubemapArray: ImageTextureLayered, { [string]: any } +CubemapArray = {} + +--- @return CubemapArray +function CubemapArray:new() end + +--- @return Resource +function CubemapArray:create_placeholder() end + + +----------------------------------------------------------- +-- Curve +----------------------------------------------------------- + +--- @class Curve: Resource, { [string]: any } +--- @field min_domain float +--- @field max_domain float +--- @field min_value float +--- @field max_value float +--- @field bake_resolution int +--- @field point_count int +Curve = {} + +--- @return Curve +function Curve:new() end + +--- @alias Curve.TangentMode `Curve.TANGENT_FREE` | `Curve.TANGENT_LINEAR` | `Curve.TANGENT_MODE_COUNT` +Curve.TANGENT_FREE = 0 +Curve.TANGENT_LINEAR = 1 +Curve.TANGENT_MODE_COUNT = 2 + +Curve.range_changed = Signal() +Curve.domain_changed = Signal() + +--- @return int +function Curve:get_point_count() end + +--- @param count int +function Curve:set_point_count(count) end + +--- @param position Vector2 +--- @param left_tangent float? Default: 0 +--- @param right_tangent float? Default: 0 +--- @param left_mode Curve.TangentMode? Default: 0 +--- @param right_mode Curve.TangentMode? Default: 0 +--- @return int +function Curve:add_point(position, left_tangent, right_tangent, left_mode, right_mode) end + +--- @param index int +function Curve:remove_point(index) end + +function Curve:clear_points() end + +--- @param index int +--- @return Vector2 +function Curve:get_point_position(index) end + +--- @param index int +--- @param y float +function Curve:set_point_value(index, y) end + +--- @param index int +--- @param offset float +--- @return int +function Curve:set_point_offset(index, offset) end + +--- @param offset float +--- @return float +function Curve:sample(offset) end + +--- @param offset float +--- @return float +function Curve:sample_baked(offset) end + +--- @param index int +--- @return float +function Curve:get_point_left_tangent(index) end + +--- @param index int +--- @return float +function Curve:get_point_right_tangent(index) end + +--- @param index int +--- @return Curve.TangentMode +function Curve:get_point_left_mode(index) end + +--- @param index int +--- @return Curve.TangentMode +function Curve:get_point_right_mode(index) end + +--- @param index int +--- @param tangent float +function Curve:set_point_left_tangent(index, tangent) end + +--- @param index int +--- @param tangent float +function Curve:set_point_right_tangent(index, tangent) end + +--- @param index int +--- @param mode Curve.TangentMode +function Curve:set_point_left_mode(index, mode) end + +--- @param index int +--- @param mode Curve.TangentMode +function Curve:set_point_right_mode(index, mode) end + +--- @return float +function Curve:get_min_value() end + +--- @param min float +function Curve:set_min_value(min) end + +--- @return float +function Curve:get_max_value() end + +--- @param max float +function Curve:set_max_value(max) end + +--- @return float +function Curve:get_value_range() end + +--- @return float +function Curve:get_min_domain() end + +--- @param min float +function Curve:set_min_domain(min) end + +--- @return float +function Curve:get_max_domain() end + +--- @param max float +function Curve:set_max_domain(max) end + +--- @return float +function Curve:get_domain_range() end + +function Curve:clean_dupes() end + +function Curve:bake() end + +--- @return int +function Curve:get_bake_resolution() end + +--- @param resolution int +function Curve:set_bake_resolution(resolution) end + + +----------------------------------------------------------- +-- Curve2D +----------------------------------------------------------- + +--- @class Curve2D: Resource, { [string]: any } +--- @field bake_interval float +--- @field point_count int +Curve2D = {} + +--- @return Curve2D +function Curve2D:new() end + +--- @return int +function Curve2D:get_point_count() end + +--- @param count int +function Curve2D:set_point_count(count) end + +--- @param position Vector2 +--- @param _in Vector2? Default: Vector2(0, 0) +--- @param out Vector2? Default: Vector2(0, 0) +--- @param index int? Default: -1 +function Curve2D:add_point(position, _in, out, index) end + +--- @param idx int +--- @param position Vector2 +function Curve2D:set_point_position(idx, position) end + +--- @param idx int +--- @return Vector2 +function Curve2D:get_point_position(idx) end + +--- @param idx int +--- @param position Vector2 +function Curve2D:set_point_in(idx, position) end + +--- @param idx int +--- @return Vector2 +function Curve2D:get_point_in(idx) end + +--- @param idx int +--- @param position Vector2 +function Curve2D:set_point_out(idx, position) end + +--- @param idx int +--- @return Vector2 +function Curve2D:get_point_out(idx) end + +--- @param idx int +function Curve2D:remove_point(idx) end + +function Curve2D:clear_points() end + +--- @param idx int +--- @param t float +--- @return Vector2 +function Curve2D:sample(idx, t) end + +--- @param fofs float +--- @return Vector2 +function Curve2D:samplef(fofs) end + +--- @param distance float +function Curve2D:set_bake_interval(distance) end + +--- @return float +function Curve2D:get_bake_interval() end + +--- @return float +function Curve2D:get_baked_length() end + +--- @param offset float? Default: 0.0 +--- @param cubic bool? Default: false +--- @return Vector2 +function Curve2D:sample_baked(offset, cubic) end + +--- @param offset float? Default: 0.0 +--- @param cubic bool? Default: false +--- @return Transform2D +function Curve2D:sample_baked_with_rotation(offset, cubic) end + +--- @return PackedVector2Array +function Curve2D:get_baked_points() end + +--- @param to_point Vector2 +--- @return Vector2 +function Curve2D:get_closest_point(to_point) end + +--- @param to_point Vector2 +--- @return float +function Curve2D:get_closest_offset(to_point) end + +--- @param max_stages int? Default: 5 +--- @param tolerance_degrees float? Default: 4 +--- @return PackedVector2Array +function Curve2D:tessellate(max_stages, tolerance_degrees) end + +--- @param max_stages int? Default: 5 +--- @param tolerance_length float? Default: 20.0 +--- @return PackedVector2Array +function Curve2D:tessellate_even_length(max_stages, tolerance_length) end + + +----------------------------------------------------------- +-- Curve3D +----------------------------------------------------------- + +--- @class Curve3D: Resource, { [string]: any } +--- @field closed bool +--- @field bake_interval float +--- @field point_count int +--- @field up_vector_enabled bool +Curve3D = {} + +--- @return Curve3D +function Curve3D:new() end + +--- @return int +function Curve3D:get_point_count() end + +--- @param count int +function Curve3D:set_point_count(count) end + +--- @param position Vector3 +--- @param _in Vector3? Default: Vector3(0, 0, 0) +--- @param out Vector3? Default: Vector3(0, 0, 0) +--- @param index int? Default: -1 +function Curve3D:add_point(position, _in, out, index) end + +--- @param idx int +--- @param position Vector3 +function Curve3D:set_point_position(idx, position) end + +--- @param idx int +--- @return Vector3 +function Curve3D:get_point_position(idx) end + +--- @param idx int +--- @param tilt float +function Curve3D:set_point_tilt(idx, tilt) end + +--- @param idx int +--- @return float +function Curve3D:get_point_tilt(idx) end + +--- @param idx int +--- @param position Vector3 +function Curve3D:set_point_in(idx, position) end + +--- @param idx int +--- @return Vector3 +function Curve3D:get_point_in(idx) end + +--- @param idx int +--- @param position Vector3 +function Curve3D:set_point_out(idx, position) end + +--- @param idx int +--- @return Vector3 +function Curve3D:get_point_out(idx) end + +--- @param idx int +function Curve3D:remove_point(idx) end + +function Curve3D:clear_points() end + +--- @param idx int +--- @param t float +--- @return Vector3 +function Curve3D:sample(idx, t) end + +--- @param fofs float +--- @return Vector3 +function Curve3D:samplef(fofs) end + +--- @param closed bool +function Curve3D:set_closed(closed) end + +--- @return bool +function Curve3D:is_closed() end + +--- @param distance float +function Curve3D:set_bake_interval(distance) end + +--- @return float +function Curve3D:get_bake_interval() end + +--- @param enable bool +function Curve3D:set_up_vector_enabled(enable) end + +--- @return bool +function Curve3D:is_up_vector_enabled() end + +--- @return float +function Curve3D:get_baked_length() end + +--- @param offset float? Default: 0.0 +--- @param cubic bool? Default: false +--- @return Vector3 +function Curve3D:sample_baked(offset, cubic) end + +--- @param offset float? Default: 0.0 +--- @param cubic bool? Default: false +--- @param apply_tilt bool? Default: false +--- @return Transform3D +function Curve3D:sample_baked_with_rotation(offset, cubic, apply_tilt) end + +--- @param offset float +--- @param apply_tilt bool? Default: false +--- @return Vector3 +function Curve3D:sample_baked_up_vector(offset, apply_tilt) end + +--- @return PackedVector3Array +function Curve3D:get_baked_points() end + +--- @return PackedFloat32Array +function Curve3D:get_baked_tilts() end + +--- @return PackedVector3Array +function Curve3D:get_baked_up_vectors() end + +--- @param to_point Vector3 +--- @return Vector3 +function Curve3D:get_closest_point(to_point) end + +--- @param to_point Vector3 +--- @return float +function Curve3D:get_closest_offset(to_point) end + +--- @param max_stages int? Default: 5 +--- @param tolerance_degrees float? Default: 4 +--- @return PackedVector3Array +function Curve3D:tessellate(max_stages, tolerance_degrees) end + +--- @param max_stages int? Default: 5 +--- @param tolerance_length float? Default: 0.2 +--- @return PackedVector3Array +function Curve3D:tessellate_even_length(max_stages, tolerance_length) end + + +----------------------------------------------------------- +-- CurveTexture +----------------------------------------------------------- + +--- @class CurveTexture: Texture2D, { [string]: any } +--- @field width int +--- @field texture_mode int +--- @field curve Curve +CurveTexture = {} + +--- @return CurveTexture +function CurveTexture:new() end + +--- @alias CurveTexture.TextureMode `CurveTexture.TEXTURE_MODE_RGB` | `CurveTexture.TEXTURE_MODE_RED` +CurveTexture.TEXTURE_MODE_RGB = 0 +CurveTexture.TEXTURE_MODE_RED = 1 + +--- @param width int +function CurveTexture:set_width(width) end + +--- @param curve Curve +function CurveTexture:set_curve(curve) end + +--- @return Curve +function CurveTexture:get_curve() end + +--- @param texture_mode CurveTexture.TextureMode +function CurveTexture:set_texture_mode(texture_mode) end + +--- @return CurveTexture.TextureMode +function CurveTexture:get_texture_mode() end + + +----------------------------------------------------------- +-- CurveXYZTexture +----------------------------------------------------------- + +--- @class CurveXYZTexture: Texture2D, { [string]: any } +--- @field width int +--- @field curve_x Curve +--- @field curve_y Curve +--- @field curve_z Curve +CurveXYZTexture = {} + +--- @return CurveXYZTexture +function CurveXYZTexture:new() end + +--- @param width int +function CurveXYZTexture:set_width(width) end + +--- @param curve Curve +function CurveXYZTexture:set_curve_x(curve) end + +--- @return Curve +function CurveXYZTexture:get_curve_x() end + +--- @param curve Curve +function CurveXYZTexture:set_curve_y(curve) end + +--- @return Curve +function CurveXYZTexture:get_curve_y() end + +--- @param curve Curve +function CurveXYZTexture:set_curve_z(curve) end + +--- @return Curve +function CurveXYZTexture:get_curve_z() end + + +----------------------------------------------------------- +-- CylinderMesh +----------------------------------------------------------- + +--- @class CylinderMesh: PrimitiveMesh, { [string]: any } +--- @field top_radius float +--- @field bottom_radius float +--- @field height float +--- @field radial_segments int +--- @field rings int +--- @field cap_top bool +--- @field cap_bottom bool +CylinderMesh = {} + +--- @return CylinderMesh +function CylinderMesh:new() end + +--- @param radius float +function CylinderMesh:set_top_radius(radius) end + +--- @return float +function CylinderMesh:get_top_radius() end + +--- @param radius float +function CylinderMesh:set_bottom_radius(radius) end + +--- @return float +function CylinderMesh:get_bottom_radius() end + +--- @param height float +function CylinderMesh:set_height(height) end + +--- @return float +function CylinderMesh:get_height() end + +--- @param segments int +function CylinderMesh:set_radial_segments(segments) end + +--- @return int +function CylinderMesh:get_radial_segments() end + +--- @param rings int +function CylinderMesh:set_rings(rings) end + +--- @return int +function CylinderMesh:get_rings() end + +--- @param cap_top bool +function CylinderMesh:set_cap_top(cap_top) end + +--- @return bool +function CylinderMesh:is_cap_top() end + +--- @param cap_bottom bool +function CylinderMesh:set_cap_bottom(cap_bottom) end + +--- @return bool +function CylinderMesh:is_cap_bottom() end + + +----------------------------------------------------------- +-- CylinderShape3D +----------------------------------------------------------- + +--- @class CylinderShape3D: Shape3D, { [string]: any } +--- @field height float +--- @field radius float +CylinderShape3D = {} + +--- @return CylinderShape3D +function CylinderShape3D:new() end + +--- @param radius float +function CylinderShape3D:set_radius(radius) end + +--- @return float +function CylinderShape3D:get_radius() end + +--- @param height float +function CylinderShape3D:set_height(height) end + +--- @return float +function CylinderShape3D:get_height() end + + +----------------------------------------------------------- +-- DPITexture +----------------------------------------------------------- + +--- @class DPITexture: Texture2D, { [string]: any } +--- @field base_scale float +--- @field saturation float +--- @field color_map typeddictionary::Color;Color +DPITexture = {} + +--- @return DPITexture +function DPITexture:new() end + +--- static +--- @param source String +--- @param scale float? Default: 1.0 +--- @param saturation float? Default: 1.0 +--- @param color_map Dictionary? Default: {} +--- @return DPITexture +function DPITexture:create_from_string(source, scale, saturation, color_map) end + +--- @param source String +function DPITexture:set_source(source) end + +--- @return String +function DPITexture:get_source() end + +--- @param base_scale float +function DPITexture:set_base_scale(base_scale) end + +--- @return float +function DPITexture:get_base_scale() end + +--- @param saturation float +function DPITexture:set_saturation(saturation) end + +--- @return float +function DPITexture:get_saturation() end + +--- @param color_map Dictionary +function DPITexture:set_color_map(color_map) end + +--- @return Dictionary +function DPITexture:get_color_map() end + +--- @param size Vector2i +function DPITexture:set_size_override(size) end + +--- @return RID +function DPITexture:get_scaled_rid() end + + +----------------------------------------------------------- +-- DTLSServer +----------------------------------------------------------- + +--- @class DTLSServer: RefCounted, { [string]: any } +DTLSServer = {} + +--- @return DTLSServer +function DTLSServer:new() end + +--- @param server_options TLSOptions +--- @return Error +function DTLSServer:setup(server_options) end + +--- @param udp_peer PacketPeerUDP +--- @return PacketPeerDTLS +function DTLSServer:take_connection(udp_peer) end + + +----------------------------------------------------------- +-- DampedSpringJoint2D +----------------------------------------------------------- + +--- @class DampedSpringJoint2D: Joint2D, { [string]: any } +--- @field length float +--- @field rest_length float +--- @field stiffness float +--- @field damping float +DampedSpringJoint2D = {} + +--- @return DampedSpringJoint2D +function DampedSpringJoint2D:new() end + +--- @param length float +function DampedSpringJoint2D:set_length(length) end + +--- @return float +function DampedSpringJoint2D:get_length() end + +--- @param rest_length float +function DampedSpringJoint2D:set_rest_length(rest_length) end + +--- @return float +function DampedSpringJoint2D:get_rest_length() end + +--- @param stiffness float +function DampedSpringJoint2D:set_stiffness(stiffness) end + +--- @return float +function DampedSpringJoint2D:get_stiffness() end + +--- @param damping float +function DampedSpringJoint2D:set_damping(damping) end + +--- @return float +function DampedSpringJoint2D:get_damping() end + + +----------------------------------------------------------- +-- Decal +----------------------------------------------------------- + +--- @class Decal: VisualInstance3D, { [string]: any } +--- @field size Vector3 +--- @field texture_albedo Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field texture_normal Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field texture_orm Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field texture_emission Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field emission_energy float +--- @field modulate Color +--- @field albedo_mix float +--- @field normal_fade float +--- @field upper_fade float +--- @field lower_fade float +--- @field distance_fade_enabled bool +--- @field distance_fade_begin float +--- @field distance_fade_length float +--- @field cull_mask int +Decal = {} + +--- @return Decal +function Decal:new() end + +--- @alias Decal.DecalTexture `Decal.TEXTURE_ALBEDO` | `Decal.TEXTURE_NORMAL` | `Decal.TEXTURE_ORM` | `Decal.TEXTURE_EMISSION` | `Decal.TEXTURE_MAX` +Decal.TEXTURE_ALBEDO = 0 +Decal.TEXTURE_NORMAL = 1 +Decal.TEXTURE_ORM = 2 +Decal.TEXTURE_EMISSION = 3 +Decal.TEXTURE_MAX = 4 + +--- @param size Vector3 +function Decal:set_size(size) end + +--- @return Vector3 +function Decal:get_size() end + +--- @param type Decal.DecalTexture +--- @param texture Texture2D +function Decal:set_texture(type, texture) end + +--- @param type Decal.DecalTexture +--- @return Texture2D +function Decal:get_texture(type) end + +--- @param energy float +function Decal:set_emission_energy(energy) end + +--- @return float +function Decal:get_emission_energy() end + +--- @param energy float +function Decal:set_albedo_mix(energy) end + +--- @return float +function Decal:get_albedo_mix() end + +--- @param color Color +function Decal:set_modulate(color) end + +--- @return Color +function Decal:get_modulate() end + +--- @param fade float +function Decal:set_upper_fade(fade) end + +--- @return float +function Decal:get_upper_fade() end + +--- @param fade float +function Decal:set_lower_fade(fade) end + +--- @return float +function Decal:get_lower_fade() end + +--- @param fade float +function Decal:set_normal_fade(fade) end + +--- @return float +function Decal:get_normal_fade() end + +--- @param enable bool +function Decal:set_enable_distance_fade(enable) end + +--- @return bool +function Decal:is_distance_fade_enabled() end + +--- @param distance float +function Decal:set_distance_fade_begin(distance) end + +--- @return float +function Decal:get_distance_fade_begin() end + +--- @param distance float +function Decal:set_distance_fade_length(distance) end + +--- @return float +function Decal:get_distance_fade_length() end + +--- @param mask int +function Decal:set_cull_mask(mask) end + +--- @return int +function Decal:get_cull_mask() end + + +----------------------------------------------------------- +-- DirAccess +----------------------------------------------------------- + +--- @class DirAccess: RefCounted, { [string]: any } +--- @field include_navigational bool +--- @field include_hidden bool +DirAccess = {} + +--- static +--- @param path String +--- @return DirAccess +function DirAccess:open(path) end + +--- static +--- @return Error +function DirAccess:get_open_error() end + +--- static +--- @param prefix String? Default: "" +--- @param keep bool? Default: false +--- @return DirAccess +function DirAccess:create_temp(prefix, keep) end + +--- @return Error +function DirAccess:list_dir_begin() end + +--- @return String +function DirAccess:get_next() end + +--- @return bool +function DirAccess:current_is_dir() end + +function DirAccess:list_dir_end() end + +--- @return PackedStringArray +function DirAccess:get_files() end + +--- static +--- @param path String +--- @return PackedStringArray +function DirAccess:get_files_at(path) end + +--- @return PackedStringArray +function DirAccess:get_directories() end + +--- static +--- @param path String +--- @return PackedStringArray +function DirAccess:get_directories_at(path) end + +--- static +--- @return int +function DirAccess:get_drive_count() end + +--- static +--- @param idx int +--- @return String +function DirAccess:get_drive_name(idx) end + +--- @return int +function DirAccess:get_current_drive() end + +--- @param to_dir String +--- @return Error +function DirAccess:change_dir(to_dir) end + +--- @param include_drive bool? Default: true +--- @return String +function DirAccess:get_current_dir(include_drive) end + +--- @param path String +--- @return Error +function DirAccess:make_dir(path) end + +--- static +--- @param path String +--- @return Error +function DirAccess:make_dir_absolute(path) end + +--- @param path String +--- @return Error +function DirAccess:make_dir_recursive(path) end + +--- static +--- @param path String +--- @return Error +function DirAccess:make_dir_recursive_absolute(path) end + +--- @param path String +--- @return bool +function DirAccess:file_exists(path) end + +--- @param path String +--- @return bool +function DirAccess:dir_exists(path) end + +--- static +--- @param path String +--- @return bool +function DirAccess:dir_exists_absolute(path) end + +--- @return int +function DirAccess:get_space_left() end + +--- @param from String +--- @param to String +--- @param chmod_flags int? Default: -1 +--- @return Error +function DirAccess:copy(from, to, chmod_flags) end + +--- static +--- @param from String +--- @param to String +--- @param chmod_flags int? Default: -1 +--- @return Error +function DirAccess:copy_absolute(from, to, chmod_flags) end + +--- @param from String +--- @param to String +--- @return Error +function DirAccess:rename(from, to) end + +--- static +--- @param from String +--- @param to String +--- @return Error +function DirAccess:rename_absolute(from, to) end + +--- @param path String +--- @return Error +function DirAccess:remove(path) end + +--- static +--- @param path String +--- @return Error +function DirAccess:remove_absolute(path) end + +--- @param path String +--- @return bool +function DirAccess:is_link(path) end + +--- @param path String +--- @return String +function DirAccess:read_link(path) end + +--- @param source String +--- @param target String +--- @return Error +function DirAccess:create_link(source, target) end + +--- @param path String +--- @return bool +function DirAccess:is_bundle(path) end + +--- @param enable bool +function DirAccess:set_include_navigational(enable) end + +--- @return bool +function DirAccess:get_include_navigational() end + +--- @param enable bool +function DirAccess:set_include_hidden(enable) end + +--- @return bool +function DirAccess:get_include_hidden() end + +--- @return String +function DirAccess:get_filesystem_type() end + +--- @param path String +--- @return bool +function DirAccess:is_case_sensitive(path) end + +--- @param path_a String +--- @param path_b String +--- @return bool +function DirAccess:is_equivalent(path_a, path_b) end + + +----------------------------------------------------------- +-- DirectionalLight2D +----------------------------------------------------------- + +--- @class DirectionalLight2D: Light2D, { [string]: any } +--- @field height float +--- @field max_distance float +DirectionalLight2D = {} + +--- @return DirectionalLight2D +function DirectionalLight2D:new() end + +--- @param pixels float +function DirectionalLight2D:set_max_distance(pixels) end + +--- @return float +function DirectionalLight2D:get_max_distance() end + + +----------------------------------------------------------- +-- DirectionalLight3D +----------------------------------------------------------- + +--- @class DirectionalLight3D: Light3D, { [string]: any } +--- @field directional_shadow_mode int +--- @field directional_shadow_split_1 float +--- @field directional_shadow_split_2 float +--- @field directional_shadow_split_3 float +--- @field directional_shadow_blend_splits bool +--- @field directional_shadow_fade_start float +--- @field directional_shadow_max_distance float +--- @field directional_shadow_pancake_size float +--- @field sky_mode int +DirectionalLight3D = {} + +--- @return DirectionalLight3D +function DirectionalLight3D:new() end + +--- @alias DirectionalLight3D.ShadowMode `DirectionalLight3D.SHADOW_ORTHOGONAL` | `DirectionalLight3D.SHADOW_PARALLEL_2_SPLITS` | `DirectionalLight3D.SHADOW_PARALLEL_4_SPLITS` +DirectionalLight3D.SHADOW_ORTHOGONAL = 0 +DirectionalLight3D.SHADOW_PARALLEL_2_SPLITS = 1 +DirectionalLight3D.SHADOW_PARALLEL_4_SPLITS = 2 + +--- @alias DirectionalLight3D.SkyMode `DirectionalLight3D.SKY_MODE_LIGHT_AND_SKY` | `DirectionalLight3D.SKY_MODE_LIGHT_ONLY` | `DirectionalLight3D.SKY_MODE_SKY_ONLY` +DirectionalLight3D.SKY_MODE_LIGHT_AND_SKY = 0 +DirectionalLight3D.SKY_MODE_LIGHT_ONLY = 1 +DirectionalLight3D.SKY_MODE_SKY_ONLY = 2 + +--- @param mode DirectionalLight3D.ShadowMode +function DirectionalLight3D:set_shadow_mode(mode) end + +--- @return DirectionalLight3D.ShadowMode +function DirectionalLight3D:get_shadow_mode() end + +--- @param enabled bool +function DirectionalLight3D:set_blend_splits(enabled) end + +--- @return bool +function DirectionalLight3D:is_blend_splits_enabled() end + +--- @param mode DirectionalLight3D.SkyMode +function DirectionalLight3D:set_sky_mode(mode) end + +--- @return DirectionalLight3D.SkyMode +function DirectionalLight3D:get_sky_mode() end + + +----------------------------------------------------------- +-- DisplayServer +----------------------------------------------------------- + +--- @class DisplayServer: Object, { [string]: any } +DisplayServer = {} + +DisplayServer.INVALID_SCREEN = -1 +DisplayServer.SCREEN_WITH_MOUSE_FOCUS = -4 +DisplayServer.SCREEN_WITH_KEYBOARD_FOCUS = -3 +DisplayServer.SCREEN_PRIMARY = -2 +DisplayServer.SCREEN_OF_MAIN_WINDOW = -1 +DisplayServer.MAIN_WINDOW_ID = 0 +DisplayServer.INVALID_WINDOW_ID = -1 +DisplayServer.INVALID_INDICATOR_ID = -1 + +--- @alias DisplayServer.Feature `DisplayServer.FEATURE_GLOBAL_MENU` | `DisplayServer.FEATURE_SUBWINDOWS` | `DisplayServer.FEATURE_TOUCHSCREEN` | `DisplayServer.FEATURE_MOUSE` | `DisplayServer.FEATURE_MOUSE_WARP` | `DisplayServer.FEATURE_CLIPBOARD` | `DisplayServer.FEATURE_VIRTUAL_KEYBOARD` | `DisplayServer.FEATURE_CURSOR_SHAPE` | `DisplayServer.FEATURE_CUSTOM_CURSOR_SHAPE` | `DisplayServer.FEATURE_NATIVE_DIALOG` | `DisplayServer.FEATURE_IME` | `DisplayServer.FEATURE_WINDOW_TRANSPARENCY` | `DisplayServer.FEATURE_HIDPI` | `DisplayServer.FEATURE_ICON` | `DisplayServer.FEATURE_NATIVE_ICON` | `DisplayServer.FEATURE_ORIENTATION` | `DisplayServer.FEATURE_SWAP_BUFFERS` | `DisplayServer.FEATURE_CLIPBOARD_PRIMARY` | `DisplayServer.FEATURE_TEXT_TO_SPEECH` | `DisplayServer.FEATURE_EXTEND_TO_TITLE` | `DisplayServer.FEATURE_SCREEN_CAPTURE` | `DisplayServer.FEATURE_STATUS_INDICATOR` | `DisplayServer.FEATURE_NATIVE_HELP` | `DisplayServer.FEATURE_NATIVE_DIALOG_INPUT` | `DisplayServer.FEATURE_NATIVE_DIALOG_FILE` | `DisplayServer.FEATURE_NATIVE_DIALOG_FILE_EXTRA` | `DisplayServer.FEATURE_WINDOW_DRAG` | `DisplayServer.FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE` | `DisplayServer.FEATURE_WINDOW_EMBEDDING` | `DisplayServer.FEATURE_NATIVE_DIALOG_FILE_MIME` | `DisplayServer.FEATURE_EMOJI_AND_SYMBOL_PICKER` | `DisplayServer.FEATURE_NATIVE_COLOR_PICKER` | `DisplayServer.FEATURE_SELF_FITTING_WINDOWS` | `DisplayServer.FEATURE_ACCESSIBILITY_SCREEN_READER` +DisplayServer.FEATURE_GLOBAL_MENU = 0 +DisplayServer.FEATURE_SUBWINDOWS = 1 +DisplayServer.FEATURE_TOUCHSCREEN = 2 +DisplayServer.FEATURE_MOUSE = 3 +DisplayServer.FEATURE_MOUSE_WARP = 4 +DisplayServer.FEATURE_CLIPBOARD = 5 +DisplayServer.FEATURE_VIRTUAL_KEYBOARD = 6 +DisplayServer.FEATURE_CURSOR_SHAPE = 7 +DisplayServer.FEATURE_CUSTOM_CURSOR_SHAPE = 8 +DisplayServer.FEATURE_NATIVE_DIALOG = 9 +DisplayServer.FEATURE_IME = 10 +DisplayServer.FEATURE_WINDOW_TRANSPARENCY = 11 +DisplayServer.FEATURE_HIDPI = 12 +DisplayServer.FEATURE_ICON = 13 +DisplayServer.FEATURE_NATIVE_ICON = 14 +DisplayServer.FEATURE_ORIENTATION = 15 +DisplayServer.FEATURE_SWAP_BUFFERS = 16 +DisplayServer.FEATURE_CLIPBOARD_PRIMARY = 18 +DisplayServer.FEATURE_TEXT_TO_SPEECH = 19 +DisplayServer.FEATURE_EXTEND_TO_TITLE = 20 +DisplayServer.FEATURE_SCREEN_CAPTURE = 21 +DisplayServer.FEATURE_STATUS_INDICATOR = 22 +DisplayServer.FEATURE_NATIVE_HELP = 23 +DisplayServer.FEATURE_NATIVE_DIALOG_INPUT = 24 +DisplayServer.FEATURE_NATIVE_DIALOG_FILE = 25 +DisplayServer.FEATURE_NATIVE_DIALOG_FILE_EXTRA = 26 +DisplayServer.FEATURE_WINDOW_DRAG = 27 +DisplayServer.FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE = 28 +DisplayServer.FEATURE_WINDOW_EMBEDDING = 29 +DisplayServer.FEATURE_NATIVE_DIALOG_FILE_MIME = 30 +DisplayServer.FEATURE_EMOJI_AND_SYMBOL_PICKER = 31 +DisplayServer.FEATURE_NATIVE_COLOR_PICKER = 32 +DisplayServer.FEATURE_SELF_FITTING_WINDOWS = 33 +DisplayServer.FEATURE_ACCESSIBILITY_SCREEN_READER = 34 + +--- @alias DisplayServer.AccessibilityRole `DisplayServer.ROLE_UNKNOWN` | `DisplayServer.ROLE_DEFAULT_BUTTON` | `DisplayServer.ROLE_AUDIO` | `DisplayServer.ROLE_VIDEO` | `DisplayServer.ROLE_STATIC_TEXT` | `DisplayServer.ROLE_CONTAINER` | `DisplayServer.ROLE_PANEL` | `DisplayServer.ROLE_BUTTON` | `DisplayServer.ROLE_LINK` | `DisplayServer.ROLE_CHECK_BOX` | `DisplayServer.ROLE_RADIO_BUTTON` | `DisplayServer.ROLE_CHECK_BUTTON` | `DisplayServer.ROLE_SCROLL_BAR` | `DisplayServer.ROLE_SCROLL_VIEW` | `DisplayServer.ROLE_SPLITTER` | `DisplayServer.ROLE_SLIDER` | `DisplayServer.ROLE_SPIN_BUTTON` | `DisplayServer.ROLE_PROGRESS_INDICATOR` | `DisplayServer.ROLE_TEXT_FIELD` | `DisplayServer.ROLE_MULTILINE_TEXT_FIELD` | `DisplayServer.ROLE_COLOR_PICKER` | `DisplayServer.ROLE_TABLE` | `DisplayServer.ROLE_CELL` | `DisplayServer.ROLE_ROW` | `DisplayServer.ROLE_ROW_GROUP` | `DisplayServer.ROLE_ROW_HEADER` | `DisplayServer.ROLE_COLUMN_HEADER` | `DisplayServer.ROLE_TREE` | `DisplayServer.ROLE_TREE_ITEM` | `DisplayServer.ROLE_LIST` | `DisplayServer.ROLE_LIST_ITEM` | `DisplayServer.ROLE_LIST_BOX` | `DisplayServer.ROLE_LIST_BOX_OPTION` | `DisplayServer.ROLE_TAB_BAR` | `DisplayServer.ROLE_TAB` | `DisplayServer.ROLE_TAB_PANEL` | `DisplayServer.ROLE_MENU_BAR` | `DisplayServer.ROLE_MENU` | `DisplayServer.ROLE_MENU_ITEM` | `DisplayServer.ROLE_MENU_ITEM_CHECK_BOX` | `DisplayServer.ROLE_MENU_ITEM_RADIO` | `DisplayServer.ROLE_IMAGE` | `DisplayServer.ROLE_WINDOW` | `DisplayServer.ROLE_TITLE_BAR` | `DisplayServer.ROLE_DIALOG` | `DisplayServer.ROLE_TOOLTIP` +DisplayServer.ROLE_UNKNOWN = 0 +DisplayServer.ROLE_DEFAULT_BUTTON = 1 +DisplayServer.ROLE_AUDIO = 2 +DisplayServer.ROLE_VIDEO = 3 +DisplayServer.ROLE_STATIC_TEXT = 4 +DisplayServer.ROLE_CONTAINER = 5 +DisplayServer.ROLE_PANEL = 6 +DisplayServer.ROLE_BUTTON = 7 +DisplayServer.ROLE_LINK = 8 +DisplayServer.ROLE_CHECK_BOX = 9 +DisplayServer.ROLE_RADIO_BUTTON = 10 +DisplayServer.ROLE_CHECK_BUTTON = 11 +DisplayServer.ROLE_SCROLL_BAR = 12 +DisplayServer.ROLE_SCROLL_VIEW = 13 +DisplayServer.ROLE_SPLITTER = 14 +DisplayServer.ROLE_SLIDER = 15 +DisplayServer.ROLE_SPIN_BUTTON = 16 +DisplayServer.ROLE_PROGRESS_INDICATOR = 17 +DisplayServer.ROLE_TEXT_FIELD = 18 +DisplayServer.ROLE_MULTILINE_TEXT_FIELD = 19 +DisplayServer.ROLE_COLOR_PICKER = 20 +DisplayServer.ROLE_TABLE = 21 +DisplayServer.ROLE_CELL = 22 +DisplayServer.ROLE_ROW = 23 +DisplayServer.ROLE_ROW_GROUP = 24 +DisplayServer.ROLE_ROW_HEADER = 25 +DisplayServer.ROLE_COLUMN_HEADER = 26 +DisplayServer.ROLE_TREE = 27 +DisplayServer.ROLE_TREE_ITEM = 28 +DisplayServer.ROLE_LIST = 29 +DisplayServer.ROLE_LIST_ITEM = 30 +DisplayServer.ROLE_LIST_BOX = 31 +DisplayServer.ROLE_LIST_BOX_OPTION = 32 +DisplayServer.ROLE_TAB_BAR = 33 +DisplayServer.ROLE_TAB = 34 +DisplayServer.ROLE_TAB_PANEL = 35 +DisplayServer.ROLE_MENU_BAR = 36 +DisplayServer.ROLE_MENU = 37 +DisplayServer.ROLE_MENU_ITEM = 38 +DisplayServer.ROLE_MENU_ITEM_CHECK_BOX = 39 +DisplayServer.ROLE_MENU_ITEM_RADIO = 40 +DisplayServer.ROLE_IMAGE = 41 +DisplayServer.ROLE_WINDOW = 42 +DisplayServer.ROLE_TITLE_BAR = 43 +DisplayServer.ROLE_DIALOG = 44 +DisplayServer.ROLE_TOOLTIP = 45 + +--- @alias DisplayServer.AccessibilityPopupType `DisplayServer.POPUP_MENU` | `DisplayServer.POPUP_LIST` | `DisplayServer.POPUP_TREE` | `DisplayServer.POPUP_DIALOG` +DisplayServer.POPUP_MENU = 0 +DisplayServer.POPUP_LIST = 1 +DisplayServer.POPUP_TREE = 2 +DisplayServer.POPUP_DIALOG = 3 + +--- @alias DisplayServer.AccessibilityFlags `DisplayServer.FLAG_HIDDEN` | `DisplayServer.FLAG_MULTISELECTABLE` | `DisplayServer.FLAG_REQUIRED` | `DisplayServer.FLAG_VISITED` | `DisplayServer.FLAG_BUSY` | `DisplayServer.FLAG_MODAL` | `DisplayServer.FLAG_TOUCH_PASSTHROUGH` | `DisplayServer.FLAG_READONLY` | `DisplayServer.FLAG_DISABLED` | `DisplayServer.FLAG_CLIPS_CHILDREN` +DisplayServer.FLAG_HIDDEN = 0 +DisplayServer.FLAG_MULTISELECTABLE = 1 +DisplayServer.FLAG_REQUIRED = 2 +DisplayServer.FLAG_VISITED = 3 +DisplayServer.FLAG_BUSY = 4 +DisplayServer.FLAG_MODAL = 5 +DisplayServer.FLAG_TOUCH_PASSTHROUGH = 6 +DisplayServer.FLAG_READONLY = 7 +DisplayServer.FLAG_DISABLED = 8 +DisplayServer.FLAG_CLIPS_CHILDREN = 9 + +--- @alias DisplayServer.AccessibilityAction `DisplayServer.ACTION_CLICK` | `DisplayServer.ACTION_FOCUS` | `DisplayServer.ACTION_BLUR` | `DisplayServer.ACTION_COLLAPSE` | `DisplayServer.ACTION_EXPAND` | `DisplayServer.ACTION_DECREMENT` | `DisplayServer.ACTION_INCREMENT` | `DisplayServer.ACTION_HIDE_TOOLTIP` | `DisplayServer.ACTION_SHOW_TOOLTIP` | `DisplayServer.ACTION_SET_TEXT_SELECTION` | `DisplayServer.ACTION_REPLACE_SELECTED_TEXT` | `DisplayServer.ACTION_SCROLL_BACKWARD` | `DisplayServer.ACTION_SCROLL_DOWN` | `DisplayServer.ACTION_SCROLL_FORWARD` | `DisplayServer.ACTION_SCROLL_LEFT` | `DisplayServer.ACTION_SCROLL_RIGHT` | `DisplayServer.ACTION_SCROLL_UP` | `DisplayServer.ACTION_SCROLL_INTO_VIEW` | `DisplayServer.ACTION_SCROLL_TO_POINT` | `DisplayServer.ACTION_SET_SCROLL_OFFSET` | `DisplayServer.ACTION_SET_VALUE` | `DisplayServer.ACTION_SHOW_CONTEXT_MENU` | `DisplayServer.ACTION_CUSTOM` +DisplayServer.ACTION_CLICK = 0 +DisplayServer.ACTION_FOCUS = 1 +DisplayServer.ACTION_BLUR = 2 +DisplayServer.ACTION_COLLAPSE = 3 +DisplayServer.ACTION_EXPAND = 4 +DisplayServer.ACTION_DECREMENT = 5 +DisplayServer.ACTION_INCREMENT = 6 +DisplayServer.ACTION_HIDE_TOOLTIP = 7 +DisplayServer.ACTION_SHOW_TOOLTIP = 8 +DisplayServer.ACTION_SET_TEXT_SELECTION = 9 +DisplayServer.ACTION_REPLACE_SELECTED_TEXT = 10 +DisplayServer.ACTION_SCROLL_BACKWARD = 11 +DisplayServer.ACTION_SCROLL_DOWN = 12 +DisplayServer.ACTION_SCROLL_FORWARD = 13 +DisplayServer.ACTION_SCROLL_LEFT = 14 +DisplayServer.ACTION_SCROLL_RIGHT = 15 +DisplayServer.ACTION_SCROLL_UP = 16 +DisplayServer.ACTION_SCROLL_INTO_VIEW = 17 +DisplayServer.ACTION_SCROLL_TO_POINT = 18 +DisplayServer.ACTION_SET_SCROLL_OFFSET = 19 +DisplayServer.ACTION_SET_VALUE = 20 +DisplayServer.ACTION_SHOW_CONTEXT_MENU = 21 +DisplayServer.ACTION_CUSTOM = 22 + +--- @alias DisplayServer.AccessibilityLiveMode `DisplayServer.LIVE_OFF` | `DisplayServer.LIVE_POLITE` | `DisplayServer.LIVE_ASSERTIVE` +DisplayServer.LIVE_OFF = 0 +DisplayServer.LIVE_POLITE = 1 +DisplayServer.LIVE_ASSERTIVE = 2 + +--- @alias DisplayServer.AccessibilityScrollUnit `DisplayServer.SCROLL_UNIT_ITEM` | `DisplayServer.SCROLL_UNIT_PAGE` +DisplayServer.SCROLL_UNIT_ITEM = 0 +DisplayServer.SCROLL_UNIT_PAGE = 1 + +--- @alias DisplayServer.AccessibilityScrollHint `DisplayServer.SCROLL_HINT_TOP_LEFT` | `DisplayServer.SCROLL_HINT_BOTTOM_RIGHT` | `DisplayServer.SCROLL_HINT_TOP_EDGE` | `DisplayServer.SCROLL_HINT_BOTTOM_EDGE` | `DisplayServer.SCROLL_HINT_LEFT_EDGE` | `DisplayServer.SCROLL_HINT_RIGHT_EDGE` +DisplayServer.SCROLL_HINT_TOP_LEFT = 0 +DisplayServer.SCROLL_HINT_BOTTOM_RIGHT = 1 +DisplayServer.SCROLL_HINT_TOP_EDGE = 2 +DisplayServer.SCROLL_HINT_BOTTOM_EDGE = 3 +DisplayServer.SCROLL_HINT_LEFT_EDGE = 4 +DisplayServer.SCROLL_HINT_RIGHT_EDGE = 5 + +--- @alias DisplayServer.MouseMode `DisplayServer.MOUSE_MODE_VISIBLE` | `DisplayServer.MOUSE_MODE_HIDDEN` | `DisplayServer.MOUSE_MODE_CAPTURED` | `DisplayServer.MOUSE_MODE_CONFINED` | `DisplayServer.MOUSE_MODE_CONFINED_HIDDEN` | `DisplayServer.MOUSE_MODE_MAX` +DisplayServer.MOUSE_MODE_VISIBLE = 0 +DisplayServer.MOUSE_MODE_HIDDEN = 1 +DisplayServer.MOUSE_MODE_CAPTURED = 2 +DisplayServer.MOUSE_MODE_CONFINED = 3 +DisplayServer.MOUSE_MODE_CONFINED_HIDDEN = 4 +DisplayServer.MOUSE_MODE_MAX = 5 + +--- @alias DisplayServer.ScreenOrientation `DisplayServer.SCREEN_LANDSCAPE` | `DisplayServer.SCREEN_PORTRAIT` | `DisplayServer.SCREEN_REVERSE_LANDSCAPE` | `DisplayServer.SCREEN_REVERSE_PORTRAIT` | `DisplayServer.SCREEN_SENSOR_LANDSCAPE` | `DisplayServer.SCREEN_SENSOR_PORTRAIT` | `DisplayServer.SCREEN_SENSOR` +DisplayServer.SCREEN_LANDSCAPE = 0 +DisplayServer.SCREEN_PORTRAIT = 1 +DisplayServer.SCREEN_REVERSE_LANDSCAPE = 2 +DisplayServer.SCREEN_REVERSE_PORTRAIT = 3 +DisplayServer.SCREEN_SENSOR_LANDSCAPE = 4 +DisplayServer.SCREEN_SENSOR_PORTRAIT = 5 +DisplayServer.SCREEN_SENSOR = 6 + +--- @alias DisplayServer.VirtualKeyboardType `DisplayServer.KEYBOARD_TYPE_DEFAULT` | `DisplayServer.KEYBOARD_TYPE_MULTILINE` | `DisplayServer.KEYBOARD_TYPE_NUMBER` | `DisplayServer.KEYBOARD_TYPE_NUMBER_DECIMAL` | `DisplayServer.KEYBOARD_TYPE_PHONE` | `DisplayServer.KEYBOARD_TYPE_EMAIL_ADDRESS` | `DisplayServer.KEYBOARD_TYPE_PASSWORD` | `DisplayServer.KEYBOARD_TYPE_URL` +DisplayServer.KEYBOARD_TYPE_DEFAULT = 0 +DisplayServer.KEYBOARD_TYPE_MULTILINE = 1 +DisplayServer.KEYBOARD_TYPE_NUMBER = 2 +DisplayServer.KEYBOARD_TYPE_NUMBER_DECIMAL = 3 +DisplayServer.KEYBOARD_TYPE_PHONE = 4 +DisplayServer.KEYBOARD_TYPE_EMAIL_ADDRESS = 5 +DisplayServer.KEYBOARD_TYPE_PASSWORD = 6 +DisplayServer.KEYBOARD_TYPE_URL = 7 + +--- @alias DisplayServer.CursorShape `DisplayServer.CURSOR_ARROW` | `DisplayServer.CURSOR_IBEAM` | `DisplayServer.CURSOR_POINTING_HAND` | `DisplayServer.CURSOR_CROSS` | `DisplayServer.CURSOR_WAIT` | `DisplayServer.CURSOR_BUSY` | `DisplayServer.CURSOR_DRAG` | `DisplayServer.CURSOR_CAN_DROP` | `DisplayServer.CURSOR_FORBIDDEN` | `DisplayServer.CURSOR_VSIZE` | `DisplayServer.CURSOR_HSIZE` | `DisplayServer.CURSOR_BDIAGSIZE` | `DisplayServer.CURSOR_FDIAGSIZE` | `DisplayServer.CURSOR_MOVE` | `DisplayServer.CURSOR_VSPLIT` | `DisplayServer.CURSOR_HSPLIT` | `DisplayServer.CURSOR_HELP` | `DisplayServer.CURSOR_MAX` +DisplayServer.CURSOR_ARROW = 0 +DisplayServer.CURSOR_IBEAM = 1 +DisplayServer.CURSOR_POINTING_HAND = 2 +DisplayServer.CURSOR_CROSS = 3 +DisplayServer.CURSOR_WAIT = 4 +DisplayServer.CURSOR_BUSY = 5 +DisplayServer.CURSOR_DRAG = 6 +DisplayServer.CURSOR_CAN_DROP = 7 +DisplayServer.CURSOR_FORBIDDEN = 8 +DisplayServer.CURSOR_VSIZE = 9 +DisplayServer.CURSOR_HSIZE = 10 +DisplayServer.CURSOR_BDIAGSIZE = 11 +DisplayServer.CURSOR_FDIAGSIZE = 12 +DisplayServer.CURSOR_MOVE = 13 +DisplayServer.CURSOR_VSPLIT = 14 +DisplayServer.CURSOR_HSPLIT = 15 +DisplayServer.CURSOR_HELP = 16 +DisplayServer.CURSOR_MAX = 17 + +--- @alias DisplayServer.FileDialogMode `DisplayServer.FILE_DIALOG_MODE_OPEN_FILE` | `DisplayServer.FILE_DIALOG_MODE_OPEN_FILES` | `DisplayServer.FILE_DIALOG_MODE_OPEN_DIR` | `DisplayServer.FILE_DIALOG_MODE_OPEN_ANY` | `DisplayServer.FILE_DIALOG_MODE_SAVE_FILE` +DisplayServer.FILE_DIALOG_MODE_OPEN_FILE = 0 +DisplayServer.FILE_DIALOG_MODE_OPEN_FILES = 1 +DisplayServer.FILE_DIALOG_MODE_OPEN_DIR = 2 +DisplayServer.FILE_DIALOG_MODE_OPEN_ANY = 3 +DisplayServer.FILE_DIALOG_MODE_SAVE_FILE = 4 + +--- @alias DisplayServer.WindowMode `DisplayServer.WINDOW_MODE_WINDOWED` | `DisplayServer.WINDOW_MODE_MINIMIZED` | `DisplayServer.WINDOW_MODE_MAXIMIZED` | `DisplayServer.WINDOW_MODE_FULLSCREEN` | `DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN` +DisplayServer.WINDOW_MODE_WINDOWED = 0 +DisplayServer.WINDOW_MODE_MINIMIZED = 1 +DisplayServer.WINDOW_MODE_MAXIMIZED = 2 +DisplayServer.WINDOW_MODE_FULLSCREEN = 3 +DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN = 4 + +--- @alias DisplayServer.WindowFlags `DisplayServer.WINDOW_FLAG_RESIZE_DISABLED` | `DisplayServer.WINDOW_FLAG_BORDERLESS` | `DisplayServer.WINDOW_FLAG_ALWAYS_ON_TOP` | `DisplayServer.WINDOW_FLAG_TRANSPARENT` | `DisplayServer.WINDOW_FLAG_NO_FOCUS` | `DisplayServer.WINDOW_FLAG_POPUP` | `DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE` | `DisplayServer.WINDOW_FLAG_MOUSE_PASSTHROUGH` | `DisplayServer.WINDOW_FLAG_SHARP_CORNERS` | `DisplayServer.WINDOW_FLAG_EXCLUDE_FROM_CAPTURE` | `DisplayServer.WINDOW_FLAG_POPUP_WM_HINT` | `DisplayServer.WINDOW_FLAG_MINIMIZE_DISABLED` | `DisplayServer.WINDOW_FLAG_MAXIMIZE_DISABLED` | `DisplayServer.WINDOW_FLAG_MAX` +DisplayServer.WINDOW_FLAG_RESIZE_DISABLED = 0 +DisplayServer.WINDOW_FLAG_BORDERLESS = 1 +DisplayServer.WINDOW_FLAG_ALWAYS_ON_TOP = 2 +DisplayServer.WINDOW_FLAG_TRANSPARENT = 3 +DisplayServer.WINDOW_FLAG_NO_FOCUS = 4 +DisplayServer.WINDOW_FLAG_POPUP = 5 +DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE = 6 +DisplayServer.WINDOW_FLAG_MOUSE_PASSTHROUGH = 7 +DisplayServer.WINDOW_FLAG_SHARP_CORNERS = 8 +DisplayServer.WINDOW_FLAG_EXCLUDE_FROM_CAPTURE = 9 +DisplayServer.WINDOW_FLAG_POPUP_WM_HINT = 10 +DisplayServer.WINDOW_FLAG_MINIMIZE_DISABLED = 11 +DisplayServer.WINDOW_FLAG_MAXIMIZE_DISABLED = 12 +DisplayServer.WINDOW_FLAG_MAX = 13 + +--- @alias DisplayServer.WindowEvent `DisplayServer.WINDOW_EVENT_MOUSE_ENTER` | `DisplayServer.WINDOW_EVENT_MOUSE_EXIT` | `DisplayServer.WINDOW_EVENT_FOCUS_IN` | `DisplayServer.WINDOW_EVENT_FOCUS_OUT` | `DisplayServer.WINDOW_EVENT_CLOSE_REQUEST` | `DisplayServer.WINDOW_EVENT_GO_BACK_REQUEST` | `DisplayServer.WINDOW_EVENT_DPI_CHANGE` | `DisplayServer.WINDOW_EVENT_TITLEBAR_CHANGE` | `DisplayServer.WINDOW_EVENT_FORCE_CLOSE` +DisplayServer.WINDOW_EVENT_MOUSE_ENTER = 0 +DisplayServer.WINDOW_EVENT_MOUSE_EXIT = 1 +DisplayServer.WINDOW_EVENT_FOCUS_IN = 2 +DisplayServer.WINDOW_EVENT_FOCUS_OUT = 3 +DisplayServer.WINDOW_EVENT_CLOSE_REQUEST = 4 +DisplayServer.WINDOW_EVENT_GO_BACK_REQUEST = 5 +DisplayServer.WINDOW_EVENT_DPI_CHANGE = 6 +DisplayServer.WINDOW_EVENT_TITLEBAR_CHANGE = 7 +DisplayServer.WINDOW_EVENT_FORCE_CLOSE = 8 + +--- @alias DisplayServer.WindowResizeEdge `DisplayServer.WINDOW_EDGE_TOP_LEFT` | `DisplayServer.WINDOW_EDGE_TOP` | `DisplayServer.WINDOW_EDGE_TOP_RIGHT` | `DisplayServer.WINDOW_EDGE_LEFT` | `DisplayServer.WINDOW_EDGE_RIGHT` | `DisplayServer.WINDOW_EDGE_BOTTOM_LEFT` | `DisplayServer.WINDOW_EDGE_BOTTOM` | `DisplayServer.WINDOW_EDGE_BOTTOM_RIGHT` | `DisplayServer.WINDOW_EDGE_MAX` +DisplayServer.WINDOW_EDGE_TOP_LEFT = 0 +DisplayServer.WINDOW_EDGE_TOP = 1 +DisplayServer.WINDOW_EDGE_TOP_RIGHT = 2 +DisplayServer.WINDOW_EDGE_LEFT = 3 +DisplayServer.WINDOW_EDGE_RIGHT = 4 +DisplayServer.WINDOW_EDGE_BOTTOM_LEFT = 5 +DisplayServer.WINDOW_EDGE_BOTTOM = 6 +DisplayServer.WINDOW_EDGE_BOTTOM_RIGHT = 7 +DisplayServer.WINDOW_EDGE_MAX = 8 + +--- @alias DisplayServer.VSyncMode `DisplayServer.VSYNC_DISABLED` | `DisplayServer.VSYNC_ENABLED` | `DisplayServer.VSYNC_ADAPTIVE` | `DisplayServer.VSYNC_MAILBOX` +DisplayServer.VSYNC_DISABLED = 0 +DisplayServer.VSYNC_ENABLED = 1 +DisplayServer.VSYNC_ADAPTIVE = 2 +DisplayServer.VSYNC_MAILBOX = 3 + +--- @alias DisplayServer.HandleType `DisplayServer.DISPLAY_HANDLE` | `DisplayServer.WINDOW_HANDLE` | `DisplayServer.WINDOW_VIEW` | `DisplayServer.OPENGL_CONTEXT` | `DisplayServer.EGL_DISPLAY` | `DisplayServer.EGL_CONFIG` +DisplayServer.DISPLAY_HANDLE = 0 +DisplayServer.WINDOW_HANDLE = 1 +DisplayServer.WINDOW_VIEW = 2 +DisplayServer.OPENGL_CONTEXT = 3 +DisplayServer.EGL_DISPLAY = 4 +DisplayServer.EGL_CONFIG = 5 + +--- @alias DisplayServer.TTSUtteranceEvent `DisplayServer.TTS_UTTERANCE_STARTED` | `DisplayServer.TTS_UTTERANCE_ENDED` | `DisplayServer.TTS_UTTERANCE_CANCELED` | `DisplayServer.TTS_UTTERANCE_BOUNDARY` +DisplayServer.TTS_UTTERANCE_STARTED = 0 +DisplayServer.TTS_UTTERANCE_ENDED = 1 +DisplayServer.TTS_UTTERANCE_CANCELED = 2 +DisplayServer.TTS_UTTERANCE_BOUNDARY = 3 + +--- @param feature DisplayServer.Feature +--- @return bool +function DisplayServer:has_feature(feature) end + +--- @return String +function DisplayServer:get_name() end + +--- @param search_callback Callable +--- @param action_callback Callable +function DisplayServer:help_set_search_callbacks(search_callback, action_callback) end + +--- @param menu_root String +--- @param open_callback Callable +--- @param close_callback Callable +function DisplayServer:global_menu_set_popup_callbacks(menu_root, open_callback, close_callback) end + +--- @param menu_root String +--- @param label String +--- @param submenu String +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_submenu_item(menu_root, label, submenu, index) end + +--- @param menu_root String +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_item(menu_root, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_check_item(menu_root, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_icon_item(menu_root, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_icon_check_item(menu_root, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_radio_check_item(menu_root, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_icon_radio_check_item(menu_root, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param label String +--- @param max_states int +--- @param default_state int +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_multistate_item(menu_root, label, max_states, default_state, callback, key_callback, tag, accelerator, index) end + +--- @param menu_root String +--- @param index int? Default: -1 +--- @return int +function DisplayServer:global_menu_add_separator(menu_root, index) end + +--- @param menu_root String +--- @param text String +--- @return int +function DisplayServer:global_menu_get_item_index_from_text(menu_root, text) end + +--- @param menu_root String +--- @param tag any +--- @return int +function DisplayServer:global_menu_get_item_index_from_tag(menu_root, tag) end + +--- @param menu_root String +--- @param idx int +--- @return bool +function DisplayServer:global_menu_is_item_checked(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return bool +function DisplayServer:global_menu_is_item_checkable(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return bool +function DisplayServer:global_menu_is_item_radio_checkable(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return Callable +function DisplayServer:global_menu_get_item_callback(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return Callable +function DisplayServer:global_menu_get_item_key_callback(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return any +function DisplayServer:global_menu_get_item_tag(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return String +function DisplayServer:global_menu_get_item_text(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return String +function DisplayServer:global_menu_get_item_submenu(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return Key +function DisplayServer:global_menu_get_item_accelerator(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return bool +function DisplayServer:global_menu_is_item_disabled(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return bool +function DisplayServer:global_menu_is_item_hidden(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return String +function DisplayServer:global_menu_get_item_tooltip(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return int +function DisplayServer:global_menu_get_item_state(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return int +function DisplayServer:global_menu_get_item_max_states(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return Texture2D +function DisplayServer:global_menu_get_item_icon(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @return int +function DisplayServer:global_menu_get_item_indentation_level(menu_root, idx) end + +--- @param menu_root String +--- @param idx int +--- @param checked bool +function DisplayServer:global_menu_set_item_checked(menu_root, idx, checked) end + +--- @param menu_root String +--- @param idx int +--- @param checkable bool +function DisplayServer:global_menu_set_item_checkable(menu_root, idx, checkable) end + +--- @param menu_root String +--- @param idx int +--- @param checkable bool +function DisplayServer:global_menu_set_item_radio_checkable(menu_root, idx, checkable) end + +--- @param menu_root String +--- @param idx int +--- @param callback Callable +function DisplayServer:global_menu_set_item_callback(menu_root, idx, callback) end + +--- @param menu_root String +--- @param idx int +--- @param callback Callable +function DisplayServer:global_menu_set_item_hover_callbacks(menu_root, idx, callback) end + +--- @param menu_root String +--- @param idx int +--- @param key_callback Callable +function DisplayServer:global_menu_set_item_key_callback(menu_root, idx, key_callback) end + +--- @param menu_root String +--- @param idx int +--- @param tag any +function DisplayServer:global_menu_set_item_tag(menu_root, idx, tag) end + +--- @param menu_root String +--- @param idx int +--- @param text String +function DisplayServer:global_menu_set_item_text(menu_root, idx, text) end + +--- @param menu_root String +--- @param idx int +--- @param submenu String +function DisplayServer:global_menu_set_item_submenu(menu_root, idx, submenu) end + +--- @param menu_root String +--- @param idx int +--- @param keycode Key +function DisplayServer:global_menu_set_item_accelerator(menu_root, idx, keycode) end + +--- @param menu_root String +--- @param idx int +--- @param disabled bool +function DisplayServer:global_menu_set_item_disabled(menu_root, idx, disabled) end + +--- @param menu_root String +--- @param idx int +--- @param hidden bool +function DisplayServer:global_menu_set_item_hidden(menu_root, idx, hidden) end + +--- @param menu_root String +--- @param idx int +--- @param tooltip String +function DisplayServer:global_menu_set_item_tooltip(menu_root, idx, tooltip) end + +--- @param menu_root String +--- @param idx int +--- @param state int +function DisplayServer:global_menu_set_item_state(menu_root, idx, state) end + +--- @param menu_root String +--- @param idx int +--- @param max_states int +function DisplayServer:global_menu_set_item_max_states(menu_root, idx, max_states) end + +--- @param menu_root String +--- @param idx int +--- @param icon Texture2D +function DisplayServer:global_menu_set_item_icon(menu_root, idx, icon) end + +--- @param menu_root String +--- @param idx int +--- @param level int +function DisplayServer:global_menu_set_item_indentation_level(menu_root, idx, level) end + +--- @param menu_root String +--- @return int +function DisplayServer:global_menu_get_item_count(menu_root) end + +--- @param menu_root String +--- @param idx int +function DisplayServer:global_menu_remove_item(menu_root, idx) end + +--- @param menu_root String +function DisplayServer:global_menu_clear(menu_root) end + +--- @return Dictionary +function DisplayServer:global_menu_get_system_menu_roots() end + +--- @return bool +function DisplayServer:tts_is_speaking() end + +--- @return bool +function DisplayServer:tts_is_paused() end + +--- @return Array[Dictionary] +function DisplayServer:tts_get_voices() end + +--- @param language String +--- @return PackedStringArray +function DisplayServer:tts_get_voices_for_language(language) end + +--- @param text String +--- @param voice String +--- @param volume int? Default: 50 +--- @param pitch float? Default: 1.0 +--- @param rate float? Default: 1.0 +--- @param utterance_id int? Default: 0 +--- @param interrupt bool? Default: false +function DisplayServer:tts_speak(text, voice, volume, pitch, rate, utterance_id, interrupt) end + +function DisplayServer:tts_pause() end + +function DisplayServer:tts_resume() end + +function DisplayServer:tts_stop() end + +--- @param event DisplayServer.TTSUtteranceEvent +--- @param callable Callable +function DisplayServer:tts_set_utterance_callback(event, callable) end + +--- @return bool +function DisplayServer:is_dark_mode_supported() end + +--- @return bool +function DisplayServer:is_dark_mode() end + +--- @return Color +function DisplayServer:get_accent_color() end + +--- @return Color +function DisplayServer:get_base_color() end + +--- @param callable Callable +function DisplayServer:set_system_theme_change_callback(callable) end + +--- @param mouse_mode DisplayServer.MouseMode +function DisplayServer:mouse_set_mode(mouse_mode) end + +--- @return DisplayServer.MouseMode +function DisplayServer:mouse_get_mode() end + +--- @param position Vector2i +function DisplayServer:warp_mouse(position) end + +--- @return Vector2i +function DisplayServer:mouse_get_position() end + +--- @return MouseButtonMask +function DisplayServer:mouse_get_button_state() end + +--- @param clipboard String +function DisplayServer:clipboard_set(clipboard) end + +--- @return String +function DisplayServer:clipboard_get() end + +--- @return Image +function DisplayServer:clipboard_get_image() end + +--- @return bool +function DisplayServer:clipboard_has() end + +--- @return bool +function DisplayServer:clipboard_has_image() end + +--- @param clipboard_primary String +function DisplayServer:clipboard_set_primary(clipboard_primary) end + +--- @return String +function DisplayServer:clipboard_get_primary() end + +--- @return Array[Rect2] +function DisplayServer:get_display_cutouts() end + +--- @return Rect2i +function DisplayServer:get_display_safe_area() end + +--- @return int +function DisplayServer:get_screen_count() end + +--- @return int +function DisplayServer:get_primary_screen() end + +--- @return int +function DisplayServer:get_keyboard_focus_screen() end + +--- @param rect Rect2 +--- @return int +function DisplayServer:get_screen_from_rect(rect) end + +--- @param screen int? Default: -1 +--- @return Vector2i +function DisplayServer:screen_get_position(screen) end + +--- @param screen int? Default: -1 +--- @return Vector2i +function DisplayServer:screen_get_size(screen) end + +--- @param screen int? Default: -1 +--- @return Rect2i +function DisplayServer:screen_get_usable_rect(screen) end + +--- @param screen int? Default: -1 +--- @return int +function DisplayServer:screen_get_dpi(screen) end + +--- @param screen int? Default: -1 +--- @return float +function DisplayServer:screen_get_scale(screen) end + +--- @return bool +function DisplayServer:is_touchscreen_available() end + +--- @return float +function DisplayServer:screen_get_max_scale() end + +--- @param screen int? Default: -1 +--- @return float +function DisplayServer:screen_get_refresh_rate(screen) end + +--- @param position Vector2i +--- @return Color +function DisplayServer:screen_get_pixel(position) end + +--- @param screen int? Default: -1 +--- @return Image +function DisplayServer:screen_get_image(screen) end + +--- @param rect Rect2i +--- @return Image +function DisplayServer:screen_get_image_rect(rect) end + +--- @param orientation DisplayServer.ScreenOrientation +--- @param screen int? Default: -1 +function DisplayServer:screen_set_orientation(orientation, screen) end + +--- @param screen int? Default: -1 +--- @return DisplayServer.ScreenOrientation +function DisplayServer:screen_get_orientation(screen) end + +--- @param enable bool +function DisplayServer:screen_set_keep_on(enable) end + +--- @return bool +function DisplayServer:screen_is_kept_on() end + +--- @return PackedInt32Array +function DisplayServer:get_window_list() end + +--- @param position Vector2i +--- @return int +function DisplayServer:get_window_at_screen_position(position) end + +--- @param handle_type DisplayServer.HandleType +--- @param window_id int? Default: 0 +--- @return int +function DisplayServer:window_get_native_handle(handle_type, window_id) end + +--- @return int +function DisplayServer:window_get_active_popup() end + +--- @param window int +--- @param rect Rect2i +function DisplayServer:window_set_popup_safe_rect(window, rect) end + +--- @param window int +--- @return Rect2i +function DisplayServer:window_get_popup_safe_rect(window) end + +--- @param title String +--- @param window_id int? Default: 0 +function DisplayServer:window_set_title(title, window_id) end + +--- @param title String +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_title_size(title, window_id) end + +--- @param region PackedVector2Array +--- @param window_id int? Default: 0 +function DisplayServer:window_set_mouse_passthrough(region, window_id) end + +--- @param window_id int? Default: 0 +--- @return int +function DisplayServer:window_get_current_screen(window_id) end + +--- @param screen int +--- @param window_id int? Default: 0 +function DisplayServer:window_set_current_screen(screen, window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_position(window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_position_with_decorations(window_id) end + +--- @param position Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_position(position, window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_size(window_id) end + +--- @param size Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_size(size, window_id) end + +--- @param callback Callable +--- @param window_id int? Default: 0 +function DisplayServer:window_set_rect_changed_callback(callback, window_id) end + +--- @param callback Callable +--- @param window_id int? Default: 0 +function DisplayServer:window_set_window_event_callback(callback, window_id) end + +--- @param callback Callable +--- @param window_id int? Default: 0 +function DisplayServer:window_set_input_event_callback(callback, window_id) end + +--- @param callback Callable +--- @param window_id int? Default: 0 +function DisplayServer:window_set_input_text_callback(callback, window_id) end + +--- @param callback Callable +--- @param window_id int? Default: 0 +function DisplayServer:window_set_drop_files_callback(callback, window_id) end + +--- @param window_id int? Default: 0 +--- @return int +function DisplayServer:window_get_attached_instance_id(window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_max_size(window_id) end + +--- @param max_size Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_max_size(max_size, window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_min_size(window_id) end + +--- @param min_size Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_min_size(min_size, window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector2i +function DisplayServer:window_get_size_with_decorations(window_id) end + +--- @param window_id int? Default: 0 +--- @return DisplayServer.WindowMode +function DisplayServer:window_get_mode(window_id) end + +--- @param mode DisplayServer.WindowMode +--- @param window_id int? Default: 0 +function DisplayServer:window_set_mode(mode, window_id) end + +--- @param flag DisplayServer.WindowFlags +--- @param enabled bool +--- @param window_id int? Default: 0 +function DisplayServer:window_set_flag(flag, enabled, window_id) end + +--- @param flag DisplayServer.WindowFlags +--- @param window_id int? Default: 0 +--- @return bool +function DisplayServer:window_get_flag(flag, window_id) end + +--- @param offset Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_window_buttons_offset(offset, window_id) end + +--- @param window_id int? Default: 0 +--- @return Vector3i +function DisplayServer:window_get_safe_title_margins(window_id) end + +--- @param window_id int? Default: 0 +function DisplayServer:window_request_attention(window_id) end + +--- @param window_id int? Default: 0 +function DisplayServer:window_move_to_foreground(window_id) end + +--- @param window_id int? Default: 0 +--- @return bool +function DisplayServer:window_is_focused(window_id) end + +--- @param window_id int? Default: 0 +--- @return bool +function DisplayServer:window_can_draw(window_id) end + +--- @param window_id int +--- @param parent_window_id int +function DisplayServer:window_set_transient(window_id, parent_window_id) end + +--- @param window_id int +--- @param exclusive bool +function DisplayServer:window_set_exclusive(window_id, exclusive) end + +--- @param active bool +--- @param window_id int? Default: 0 +function DisplayServer:window_set_ime_active(active, window_id) end + +--- @param position Vector2i +--- @param window_id int? Default: 0 +function DisplayServer:window_set_ime_position(position, window_id) end + +--- @param vsync_mode DisplayServer.VSyncMode +--- @param window_id int? Default: 0 +function DisplayServer:window_set_vsync_mode(vsync_mode, window_id) end + +--- @param window_id int? Default: 0 +--- @return DisplayServer.VSyncMode +function DisplayServer:window_get_vsync_mode(window_id) end + +--- @param window_id int? Default: 0 +--- @return bool +function DisplayServer:window_is_maximize_allowed(window_id) end + +--- @return bool +function DisplayServer:window_maximize_on_title_dbl_click() end + +--- @return bool +function DisplayServer:window_minimize_on_title_dbl_click() end + +--- @param window_id int? Default: 0 +function DisplayServer:window_start_drag(window_id) end + +--- @param edge DisplayServer.WindowResizeEdge +--- @param window_id int? Default: 0 +function DisplayServer:window_start_resize(edge, window_id) end + +--- @return int +function DisplayServer:accessibility_should_increase_contrast() end + +--- @return int +function DisplayServer:accessibility_should_reduce_animation() end + +--- @return int +function DisplayServer:accessibility_should_reduce_transparency() end + +--- @return int +function DisplayServer:accessibility_screen_reader_active() end + +--- @param window_id int +--- @param role DisplayServer.AccessibilityRole +--- @return RID +function DisplayServer:accessibility_create_element(window_id, role) end + +--- @param parent_rid RID +--- @param role DisplayServer.AccessibilityRole +--- @param insert_pos int? Default: -1 +--- @return RID +function DisplayServer:accessibility_create_sub_element(parent_rid, role, insert_pos) end + +--- @param parent_rid RID +--- @param shaped_text RID +--- @param min_height float +--- @param insert_pos int? Default: -1 +--- @return RID +function DisplayServer:accessibility_create_sub_text_edit_elements(parent_rid, shaped_text, min_height, insert_pos) end + +--- @param id RID +--- @return bool +function DisplayServer:accessibility_has_element(id) end + +--- @param id RID +function DisplayServer:accessibility_free_element(id) end + +--- @param id RID +--- @param meta any +function DisplayServer:accessibility_element_set_meta(id, meta) end + +--- @param id RID +--- @return any +function DisplayServer:accessibility_element_get_meta(id) end + +--- @param window_id int +--- @param rect_out Rect2 +--- @param rect_in Rect2 +function DisplayServer:accessibility_set_window_rect(window_id, rect_out, rect_in) end + +--- @param window_id int +--- @param focused bool +function DisplayServer:accessibility_set_window_focused(window_id, focused) end + +--- @param id RID +function DisplayServer:accessibility_update_set_focus(id) end + +--- @param window_id int +--- @return RID +function DisplayServer:accessibility_get_window_root(window_id) end + +--- @param id RID +--- @param role DisplayServer.AccessibilityRole +function DisplayServer:accessibility_update_set_role(id, role) end + +--- @param id RID +--- @param name String +function DisplayServer:accessibility_update_set_name(id, name) end + +--- @param id RID +--- @param name String +function DisplayServer:accessibility_update_set_extra_info(id, name) end + +--- @param id RID +--- @param description String +function DisplayServer:accessibility_update_set_description(id, description) end + +--- @param id RID +--- @param value String +function DisplayServer:accessibility_update_set_value(id, value) end + +--- @param id RID +--- @param tooltip String +function DisplayServer:accessibility_update_set_tooltip(id, tooltip) end + +--- @param id RID +--- @param p_rect Rect2 +function DisplayServer:accessibility_update_set_bounds(id, p_rect) end + +--- @param id RID +--- @param transform Transform2D +function DisplayServer:accessibility_update_set_transform(id, transform) end + +--- @param id RID +--- @param child_id RID +function DisplayServer:accessibility_update_add_child(id, child_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_controls(id, related_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_details(id, related_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_described_by(id, related_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_flow_to(id, related_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_labeled_by(id, related_id) end + +--- @param id RID +--- @param related_id RID +function DisplayServer:accessibility_update_add_related_radio_group(id, related_id) end + +--- @param id RID +--- @param other_id RID +function DisplayServer:accessibility_update_set_active_descendant(id, other_id) end + +--- @param id RID +--- @param other_id RID +function DisplayServer:accessibility_update_set_next_on_line(id, other_id) end + +--- @param id RID +--- @param other_id RID +function DisplayServer:accessibility_update_set_previous_on_line(id, other_id) end + +--- @param id RID +--- @param group_id RID +function DisplayServer:accessibility_update_set_member_of(id, group_id) end + +--- @param id RID +--- @param other_id RID +function DisplayServer:accessibility_update_set_in_page_link_target(id, other_id) end + +--- @param id RID +--- @param other_id RID +function DisplayServer:accessibility_update_set_error_message(id, other_id) end + +--- @param id RID +--- @param live DisplayServer.AccessibilityLiveMode +function DisplayServer:accessibility_update_set_live(id, live) end + +--- @param id RID +--- @param action DisplayServer.AccessibilityAction +--- @param callable Callable +function DisplayServer:accessibility_update_add_action(id, action, callable) end + +--- @param id RID +--- @param action_id int +--- @param action_description String +function DisplayServer:accessibility_update_add_custom_action(id, action_id, action_description) end + +--- @param id RID +--- @param count int +function DisplayServer:accessibility_update_set_table_row_count(id, count) end + +--- @param id RID +--- @param count int +function DisplayServer:accessibility_update_set_table_column_count(id, count) end + +--- @param id RID +--- @param index int +function DisplayServer:accessibility_update_set_table_row_index(id, index) end + +--- @param id RID +--- @param index int +function DisplayServer:accessibility_update_set_table_column_index(id, index) end + +--- @param id RID +--- @param row_index int +--- @param column_index int +function DisplayServer:accessibility_update_set_table_cell_position(id, row_index, column_index) end + +--- @param id RID +--- @param row_span int +--- @param column_span int +function DisplayServer:accessibility_update_set_table_cell_span(id, row_span, column_span) end + +--- @param id RID +--- @param size int +function DisplayServer:accessibility_update_set_list_item_count(id, size) end + +--- @param id RID +--- @param index int +function DisplayServer:accessibility_update_set_list_item_index(id, index) end + +--- @param id RID +--- @param level int +function DisplayServer:accessibility_update_set_list_item_level(id, level) end + +--- @param id RID +--- @param selected bool +function DisplayServer:accessibility_update_set_list_item_selected(id, selected) end + +--- @param id RID +--- @param expanded bool +function DisplayServer:accessibility_update_set_list_item_expanded(id, expanded) end + +--- @param id RID +--- @param popup DisplayServer.AccessibilityPopupType +function DisplayServer:accessibility_update_set_popup_type(id, popup) end + +--- @param id RID +--- @param checekd bool +function DisplayServer:accessibility_update_set_checked(id, checekd) end + +--- @param id RID +--- @param position float +function DisplayServer:accessibility_update_set_num_value(id, position) end + +--- @param id RID +--- @param min float +--- @param max float +function DisplayServer:accessibility_update_set_num_range(id, min, max) end + +--- @param id RID +--- @param step float +function DisplayServer:accessibility_update_set_num_step(id, step) end + +--- @param id RID +--- @param jump float +function DisplayServer:accessibility_update_set_num_jump(id, jump) end + +--- @param id RID +--- @param position float +function DisplayServer:accessibility_update_set_scroll_x(id, position) end + +--- @param id RID +--- @param min float +--- @param max float +function DisplayServer:accessibility_update_set_scroll_x_range(id, min, max) end + +--- @param id RID +--- @param position float +function DisplayServer:accessibility_update_set_scroll_y(id, position) end + +--- @param id RID +--- @param min float +--- @param max float +function DisplayServer:accessibility_update_set_scroll_y_range(id, min, max) end + +--- @param id RID +--- @param underline bool +--- @param strikethrough bool +--- @param overline bool +function DisplayServer:accessibility_update_set_text_decorations(id, underline, strikethrough, overline) end + +--- @param id RID +--- @param align HorizontalAlignment +function DisplayServer:accessibility_update_set_text_align(id, align) end + +--- @param id RID +--- @param text_start_id RID +--- @param start_char int +--- @param text_end_id RID +--- @param end_char int +function DisplayServer:accessibility_update_set_text_selection(id, text_start_id, start_char, text_end_id, end_char) end + +--- @param id RID +--- @param flag DisplayServer.AccessibilityFlags +--- @param value bool +function DisplayServer:accessibility_update_set_flag(id, flag, value) end + +--- @param id RID +--- @param classname String +function DisplayServer:accessibility_update_set_classname(id, classname) end + +--- @param id RID +--- @param placeholder String +function DisplayServer:accessibility_update_set_placeholder(id, placeholder) end + +--- @param id RID +--- @param language String +function DisplayServer:accessibility_update_set_language(id, language) end + +--- @param id RID +--- @param vertical bool +function DisplayServer:accessibility_update_set_text_orientation(id, vertical) end + +--- @param id RID +--- @param vertical bool +function DisplayServer:accessibility_update_set_list_orientation(id, vertical) end + +--- @param id RID +--- @param shortcut String +function DisplayServer:accessibility_update_set_shortcut(id, shortcut) end + +--- @param id RID +--- @param url String +function DisplayServer:accessibility_update_set_url(id, url) end + +--- @param id RID +--- @param description String +function DisplayServer:accessibility_update_set_role_description(id, description) end + +--- @param id RID +--- @param description String +function DisplayServer:accessibility_update_set_state_description(id, description) end + +--- @param id RID +--- @param color Color +function DisplayServer:accessibility_update_set_color_value(id, color) end + +--- @param id RID +--- @param color Color +function DisplayServer:accessibility_update_set_background_color(id, color) end + +--- @param id RID +--- @param color Color +function DisplayServer:accessibility_update_set_foreground_color(id, color) end + +--- @return Vector2i +function DisplayServer:ime_get_selection() end + +--- @return String +function DisplayServer:ime_get_text() end + +--- @param existing_text String +--- @param position Rect2? Default: Rect2(0, 0, 0, 0) +--- @param type DisplayServer.VirtualKeyboardType? Default: 0 +--- @param max_length int? Default: -1 +--- @param cursor_start int? Default: -1 +--- @param cursor_end int? Default: -1 +function DisplayServer:virtual_keyboard_show(existing_text, position, type, max_length, cursor_start, cursor_end) end + +function DisplayServer:virtual_keyboard_hide() end + +--- @return int +function DisplayServer:virtual_keyboard_get_height() end + +--- @return bool +function DisplayServer:has_hardware_keyboard() end + +--- @param callable Callable +function DisplayServer:set_hardware_keyboard_connection_change_callback(callable) end + +--- @param shape DisplayServer.CursorShape +function DisplayServer:cursor_set_shape(shape) end + +--- @return DisplayServer.CursorShape +function DisplayServer:cursor_get_shape() end + +--- @param cursor Resource +--- @param shape DisplayServer.CursorShape? Default: 0 +--- @param hotspot Vector2? Default: Vector2(0, 0) +function DisplayServer:cursor_set_custom_image(cursor, shape, hotspot) end + +--- @return bool +function DisplayServer:get_swap_cancel_ok() end + +--- @param process_id int +function DisplayServer:enable_for_stealing_focus(process_id) end + +--- @param title String +--- @param description String +--- @param buttons PackedStringArray +--- @param callback Callable +--- @return Error +function DisplayServer:dialog_show(title, description, buttons, callback) end + +--- @param title String +--- @param description String +--- @param existing_text String +--- @param callback Callable +--- @return Error +function DisplayServer:dialog_input_text(title, description, existing_text, callback) end + +--- @param title String +--- @param current_directory String +--- @param filename String +--- @param show_hidden bool +--- @param mode DisplayServer.FileDialogMode +--- @param filters PackedStringArray +--- @param callback Callable +--- @param parent_window_id int? Default: 0 +--- @return Error +function DisplayServer:file_dialog_show(title, current_directory, filename, show_hidden, mode, filters, callback, parent_window_id) end + +--- @param title String +--- @param current_directory String +--- @param root String +--- @param filename String +--- @param show_hidden bool +--- @param mode DisplayServer.FileDialogMode +--- @param filters PackedStringArray +--- @param options Array[Dictionary] +--- @param callback Callable +--- @param parent_window_id int? Default: 0 +--- @return Error +function DisplayServer:file_dialog_with_options_show(title, current_directory, root, filename, show_hidden, mode, filters, options, callback, parent_window_id) end + +function DisplayServer:beep() end + +--- @return int +function DisplayServer:keyboard_get_layout_count() end + +--- @return int +function DisplayServer:keyboard_get_current_layout() end + +--- @param index int +function DisplayServer:keyboard_set_current_layout(index) end + +--- @param index int +--- @return String +function DisplayServer:keyboard_get_layout_language(index) end + +--- @param index int +--- @return String +function DisplayServer:keyboard_get_layout_name(index) end + +--- @param keycode Key +--- @return Key +function DisplayServer:keyboard_get_keycode_from_physical(keycode) end + +--- @param keycode Key +--- @return Key +function DisplayServer:keyboard_get_label_from_physical(keycode) end + +function DisplayServer:show_emoji_and_symbol_picker() end + +--- @param callback Callable +--- @return bool +function DisplayServer:color_picker(callback) end + +function DisplayServer:process_events() end + +function DisplayServer:force_process_and_drop_events() end + +--- @param filename String +function DisplayServer:set_native_icon(filename) end + +--- @param image Image +function DisplayServer:set_icon(image) end + +--- @param icon Texture2D +--- @param tooltip String +--- @param callback Callable +--- @return int +function DisplayServer:create_status_indicator(icon, tooltip, callback) end + +--- @param id int +--- @param icon Texture2D +function DisplayServer:status_indicator_set_icon(id, icon) end + +--- @param id int +--- @param tooltip String +function DisplayServer:status_indicator_set_tooltip(id, tooltip) end + +--- @param id int +--- @param menu_rid RID +function DisplayServer:status_indicator_set_menu(id, menu_rid) end + +--- @param id int +--- @param callback Callable +function DisplayServer:status_indicator_set_callback(id, callback) end + +--- @param id int +--- @return Rect2 +function DisplayServer:status_indicator_get_rect(id) end + +--- @param id int +function DisplayServer:delete_status_indicator(id) end + +--- @return int +function DisplayServer:tablet_get_driver_count() end + +--- @param idx int +--- @return String +function DisplayServer:tablet_get_driver_name(idx) end + +--- @return String +function DisplayServer:tablet_get_current_driver() end + +--- @param name String +function DisplayServer:tablet_set_current_driver(name) end + +--- @return bool +function DisplayServer:is_window_transparency_available() end + +--- @param object Object +function DisplayServer:register_additional_output(object) end + +--- @param object Object +function DisplayServer:unregister_additional_output(object) end + +--- @return bool +function DisplayServer:has_additional_outputs() end + + +----------------------------------------------------------- +-- ENetConnection +----------------------------------------------------------- + +--- @class ENetConnection: RefCounted, { [string]: any } +ENetConnection = {} + +--- @return ENetConnection +function ENetConnection:new() end + +--- @alias ENetConnection.CompressionMode `ENetConnection.COMPRESS_NONE` | `ENetConnection.COMPRESS_RANGE_CODER` | `ENetConnection.COMPRESS_FASTLZ` | `ENetConnection.COMPRESS_ZLIB` | `ENetConnection.COMPRESS_ZSTD` +ENetConnection.COMPRESS_NONE = 0 +ENetConnection.COMPRESS_RANGE_CODER = 1 +ENetConnection.COMPRESS_FASTLZ = 2 +ENetConnection.COMPRESS_ZLIB = 3 +ENetConnection.COMPRESS_ZSTD = 4 + +--- @alias ENetConnection.EventType `ENetConnection.EVENT_ERROR` | `ENetConnection.EVENT_NONE` | `ENetConnection.EVENT_CONNECT` | `ENetConnection.EVENT_DISCONNECT` | `ENetConnection.EVENT_RECEIVE` +ENetConnection.EVENT_ERROR = -1 +ENetConnection.EVENT_NONE = 0 +ENetConnection.EVENT_CONNECT = 1 +ENetConnection.EVENT_DISCONNECT = 2 +ENetConnection.EVENT_RECEIVE = 3 + +--- @alias ENetConnection.HostStatistic `ENetConnection.HOST_TOTAL_SENT_DATA` | `ENetConnection.HOST_TOTAL_SENT_PACKETS` | `ENetConnection.HOST_TOTAL_RECEIVED_DATA` | `ENetConnection.HOST_TOTAL_RECEIVED_PACKETS` +ENetConnection.HOST_TOTAL_SENT_DATA = 0 +ENetConnection.HOST_TOTAL_SENT_PACKETS = 1 +ENetConnection.HOST_TOTAL_RECEIVED_DATA = 2 +ENetConnection.HOST_TOTAL_RECEIVED_PACKETS = 3 + +--- @param bind_address String +--- @param bind_port int +--- @param max_peers int? Default: 32 +--- @param max_channels int? Default: 0 +--- @param in_bandwidth int? Default: 0 +--- @param out_bandwidth int? Default: 0 +--- @return Error +function ENetConnection:create_host_bound(bind_address, bind_port, max_peers, max_channels, in_bandwidth, out_bandwidth) end + +--- @param max_peers int? Default: 32 +--- @param max_channels int? Default: 0 +--- @param in_bandwidth int? Default: 0 +--- @param out_bandwidth int? Default: 0 +--- @return Error +function ENetConnection:create_host(max_peers, max_channels, in_bandwidth, out_bandwidth) end + +function ENetConnection:destroy() end + +--- @param address String +--- @param port int +--- @param channels int? Default: 0 +--- @param data int? Default: 0 +--- @return ENetPacketPeer +function ENetConnection:connect_to_host(address, port, channels, data) end + +--- @param timeout int? Default: 0 +--- @return Array +function ENetConnection:service(timeout) end + +function ENetConnection:flush() end + +--- @param in_bandwidth int? Default: 0 +--- @param out_bandwidth int? Default: 0 +function ENetConnection:bandwidth_limit(in_bandwidth, out_bandwidth) end + +--- @param limit int +function ENetConnection:channel_limit(limit) end + +--- @param channel int +--- @param packet PackedByteArray +--- @param flags int +function ENetConnection:broadcast(channel, packet, flags) end + +--- @param mode ENetConnection.CompressionMode +function ENetConnection:compress(mode) end + +--- @param server_options TLSOptions +--- @return Error +function ENetConnection:dtls_server_setup(server_options) end + +--- @param hostname String +--- @param client_options TLSOptions? Default: null +--- @return Error +function ENetConnection:dtls_client_setup(hostname, client_options) end + +--- @param refuse bool +function ENetConnection:refuse_new_connections(refuse) end + +--- @param statistic ENetConnection.HostStatistic +--- @return float +function ENetConnection:pop_statistic(statistic) end + +--- @return int +function ENetConnection:get_max_channels() end + +--- @return int +function ENetConnection:get_local_port() end + +--- @return Array[ENetPacketPeer] +function ENetConnection:get_peers() end + +--- @param destination_address String +--- @param destination_port int +--- @param packet PackedByteArray +function ENetConnection:socket_send(destination_address, destination_port, packet) end + + +----------------------------------------------------------- +-- ENetMultiplayerPeer +----------------------------------------------------------- + +--- @class ENetMultiplayerPeer: MultiplayerPeer, { [string]: any } +--- @field host ENetConnection +ENetMultiplayerPeer = {} + +--- @return ENetMultiplayerPeer +function ENetMultiplayerPeer:new() end + +--- @param port int +--- @param max_clients int? Default: 32 +--- @param max_channels int? Default: 0 +--- @param in_bandwidth int? Default: 0 +--- @param out_bandwidth int? Default: 0 +--- @return Error +function ENetMultiplayerPeer:create_server(port, max_clients, max_channels, in_bandwidth, out_bandwidth) end + +--- @param address String +--- @param port int +--- @param channel_count int? Default: 0 +--- @param in_bandwidth int? Default: 0 +--- @param out_bandwidth int? Default: 0 +--- @param local_port int? Default: 0 +--- @return Error +function ENetMultiplayerPeer:create_client(address, port, channel_count, in_bandwidth, out_bandwidth, local_port) end + +--- @param unique_id int +--- @return Error +function ENetMultiplayerPeer:create_mesh(unique_id) end + +--- @param peer_id int +--- @param host ENetConnection +--- @return Error +function ENetMultiplayerPeer:add_mesh_peer(peer_id, host) end + +--- @param ip String +function ENetMultiplayerPeer:set_bind_ip(ip) end + +--- @return ENetConnection +function ENetMultiplayerPeer:get_host() end + +--- @param id int +--- @return ENetPacketPeer +function ENetMultiplayerPeer:get_peer(id) end + + +----------------------------------------------------------- +-- ENetPacketPeer +----------------------------------------------------------- + +--- @class ENetPacketPeer: PacketPeer, { [string]: any } +ENetPacketPeer = {} + +ENetPacketPeer.PACKET_LOSS_SCALE = 65536 +ENetPacketPeer.PACKET_THROTTLE_SCALE = 32 +ENetPacketPeer.FLAG_RELIABLE = 1 +ENetPacketPeer.FLAG_UNSEQUENCED = 2 +ENetPacketPeer.FLAG_UNRELIABLE_FRAGMENT = 8 + +--- @alias ENetPacketPeer.PeerState `ENetPacketPeer.STATE_DISCONNECTED` | `ENetPacketPeer.STATE_CONNECTING` | `ENetPacketPeer.STATE_ACKNOWLEDGING_CONNECT` | `ENetPacketPeer.STATE_CONNECTION_PENDING` | `ENetPacketPeer.STATE_CONNECTION_SUCCEEDED` | `ENetPacketPeer.STATE_CONNECTED` | `ENetPacketPeer.STATE_DISCONNECT_LATER` | `ENetPacketPeer.STATE_DISCONNECTING` | `ENetPacketPeer.STATE_ACKNOWLEDGING_DISCONNECT` | `ENetPacketPeer.STATE_ZOMBIE` +ENetPacketPeer.STATE_DISCONNECTED = 0 +ENetPacketPeer.STATE_CONNECTING = 1 +ENetPacketPeer.STATE_ACKNOWLEDGING_CONNECT = 2 +ENetPacketPeer.STATE_CONNECTION_PENDING = 3 +ENetPacketPeer.STATE_CONNECTION_SUCCEEDED = 4 +ENetPacketPeer.STATE_CONNECTED = 5 +ENetPacketPeer.STATE_DISCONNECT_LATER = 6 +ENetPacketPeer.STATE_DISCONNECTING = 7 +ENetPacketPeer.STATE_ACKNOWLEDGING_DISCONNECT = 8 +ENetPacketPeer.STATE_ZOMBIE = 9 + +--- @alias ENetPacketPeer.PeerStatistic `ENetPacketPeer.PEER_PACKET_LOSS` | `ENetPacketPeer.PEER_PACKET_LOSS_VARIANCE` | `ENetPacketPeer.PEER_PACKET_LOSS_EPOCH` | `ENetPacketPeer.PEER_ROUND_TRIP_TIME` | `ENetPacketPeer.PEER_ROUND_TRIP_TIME_VARIANCE` | `ENetPacketPeer.PEER_LAST_ROUND_TRIP_TIME` | `ENetPacketPeer.PEER_LAST_ROUND_TRIP_TIME_VARIANCE` | `ENetPacketPeer.PEER_PACKET_THROTTLE` | `ENetPacketPeer.PEER_PACKET_THROTTLE_LIMIT` | `ENetPacketPeer.PEER_PACKET_THROTTLE_COUNTER` | `ENetPacketPeer.PEER_PACKET_THROTTLE_EPOCH` | `ENetPacketPeer.PEER_PACKET_THROTTLE_ACCELERATION` | `ENetPacketPeer.PEER_PACKET_THROTTLE_DECELERATION` | `ENetPacketPeer.PEER_PACKET_THROTTLE_INTERVAL` +ENetPacketPeer.PEER_PACKET_LOSS = 0 +ENetPacketPeer.PEER_PACKET_LOSS_VARIANCE = 1 +ENetPacketPeer.PEER_PACKET_LOSS_EPOCH = 2 +ENetPacketPeer.PEER_ROUND_TRIP_TIME = 3 +ENetPacketPeer.PEER_ROUND_TRIP_TIME_VARIANCE = 4 +ENetPacketPeer.PEER_LAST_ROUND_TRIP_TIME = 5 +ENetPacketPeer.PEER_LAST_ROUND_TRIP_TIME_VARIANCE = 6 +ENetPacketPeer.PEER_PACKET_THROTTLE = 7 +ENetPacketPeer.PEER_PACKET_THROTTLE_LIMIT = 8 +ENetPacketPeer.PEER_PACKET_THROTTLE_COUNTER = 9 +ENetPacketPeer.PEER_PACKET_THROTTLE_EPOCH = 10 +ENetPacketPeer.PEER_PACKET_THROTTLE_ACCELERATION = 11 +ENetPacketPeer.PEER_PACKET_THROTTLE_DECELERATION = 12 +ENetPacketPeer.PEER_PACKET_THROTTLE_INTERVAL = 13 + +--- @param data int? Default: 0 +function ENetPacketPeer:peer_disconnect(data) end + +--- @param data int? Default: 0 +function ENetPacketPeer:peer_disconnect_later(data) end + +--- @param data int? Default: 0 +function ENetPacketPeer:peer_disconnect_now(data) end + +function ENetPacketPeer:ping() end + +--- @param ping_interval int +function ENetPacketPeer:ping_interval(ping_interval) end + +function ENetPacketPeer:reset() end + +--- @param channel int +--- @param packet PackedByteArray +--- @param flags int +--- @return Error +function ENetPacketPeer:send(channel, packet, flags) end + +--- @param interval int +--- @param acceleration int +--- @param deceleration int +function ENetPacketPeer:throttle_configure(interval, acceleration, deceleration) end + +--- @param timeout int +--- @param timeout_min int +--- @param timeout_max int +function ENetPacketPeer:set_timeout(timeout, timeout_min, timeout_max) end + +--- @return int +function ENetPacketPeer:get_packet_flags() end + +--- @return String +function ENetPacketPeer:get_remote_address() end + +--- @return int +function ENetPacketPeer:get_remote_port() end + +--- @param statistic ENetPacketPeer.PeerStatistic +--- @return float +function ENetPacketPeer:get_statistic(statistic) end + +--- @return ENetPacketPeer.PeerState +function ENetPacketPeer:get_state() end + +--- @return int +function ENetPacketPeer:get_channels() end + +--- @return bool +function ENetPacketPeer:is_active() end + + +----------------------------------------------------------- +-- EditorCommandPalette +----------------------------------------------------------- + +--- @class EditorCommandPalette: ConfirmationDialog, { [string]: any } +EditorCommandPalette = {} + +--- @return EditorCommandPalette +function EditorCommandPalette:new() end + +--- @param command_name String +--- @param key_name String +--- @param binded_callable Callable +--- @param shortcut_text String? Default: "None" +function EditorCommandPalette:add_command(command_name, key_name, binded_callable, shortcut_text) end + +--- @param key_name String +function EditorCommandPalette:remove_command(key_name) end + + +----------------------------------------------------------- +-- EditorContextMenuPlugin +----------------------------------------------------------- + +--- @class EditorContextMenuPlugin: RefCounted, { [string]: any } +EditorContextMenuPlugin = {} + +--- @return EditorContextMenuPlugin +function EditorContextMenuPlugin:new() end + +--- @alias EditorContextMenuPlugin.ContextMenuSlot `EditorContextMenuPlugin.CONTEXT_SLOT_SCENE_TREE` | `EditorContextMenuPlugin.CONTEXT_SLOT_FILESYSTEM` | `EditorContextMenuPlugin.CONTEXT_SLOT_SCRIPT_EDITOR` | `EditorContextMenuPlugin.CONTEXT_SLOT_FILESYSTEM_CREATE` | `EditorContextMenuPlugin.CONTEXT_SLOT_SCRIPT_EDITOR_CODE` | `EditorContextMenuPlugin.CONTEXT_SLOT_SCENE_TABS` | `EditorContextMenuPlugin.CONTEXT_SLOT_2D_EDITOR` +EditorContextMenuPlugin.CONTEXT_SLOT_SCENE_TREE = 0 +EditorContextMenuPlugin.CONTEXT_SLOT_FILESYSTEM = 1 +EditorContextMenuPlugin.CONTEXT_SLOT_SCRIPT_EDITOR = 2 +EditorContextMenuPlugin.CONTEXT_SLOT_FILESYSTEM_CREATE = 3 +EditorContextMenuPlugin.CONTEXT_SLOT_SCRIPT_EDITOR_CODE = 4 +EditorContextMenuPlugin.CONTEXT_SLOT_SCENE_TABS = 5 +EditorContextMenuPlugin.CONTEXT_SLOT_2D_EDITOR = 6 + +--- @param paths PackedStringArray +function EditorContextMenuPlugin:_popup_menu(paths) end + +--- @param shortcut Shortcut +--- @param callback Callable +function EditorContextMenuPlugin:add_menu_shortcut(shortcut, callback) end + +--- @param name String +--- @param callback Callable +--- @param icon Texture2D? Default: null +function EditorContextMenuPlugin:add_context_menu_item(name, callback, icon) end + +--- @param name String +--- @param shortcut Shortcut +--- @param icon Texture2D? Default: null +function EditorContextMenuPlugin:add_context_menu_item_from_shortcut(name, shortcut, icon) end + +--- @param name String +--- @param menu PopupMenu +--- @param icon Texture2D? Default: null +function EditorContextMenuPlugin:add_context_submenu_item(name, menu, icon) end + + +----------------------------------------------------------- +-- EditorDebuggerPlugin +----------------------------------------------------------- + +--- @class EditorDebuggerPlugin: RefCounted, { [string]: any } +EditorDebuggerPlugin = {} + +--- @return EditorDebuggerPlugin +function EditorDebuggerPlugin:new() end + +--- @param session_id int +function EditorDebuggerPlugin:_setup_session(session_id) end + +--- @param capture String +--- @return bool +function EditorDebuggerPlugin:_has_capture(capture) end + +--- @param message String +--- @param data Array +--- @param session_id int +--- @return bool +function EditorDebuggerPlugin:_capture(message, data, session_id) end + +--- @param script Script +--- @param line int +function EditorDebuggerPlugin:_goto_script_line(script, line) end + +function EditorDebuggerPlugin:_breakpoints_cleared_in_tree() end + +--- @param script Script +--- @param line int +--- @param enabled bool +function EditorDebuggerPlugin:_breakpoint_set_in_tree(script, line, enabled) end + +--- @param id int +--- @return EditorDebuggerSession +function EditorDebuggerPlugin:get_session(id) end + +--- @return Array +function EditorDebuggerPlugin:get_sessions() end + + +----------------------------------------------------------- +-- EditorDebuggerSession +----------------------------------------------------------- + +--- @class EditorDebuggerSession: RefCounted, { [string]: any } +EditorDebuggerSession = {} + +EditorDebuggerSession.started = Signal() +EditorDebuggerSession.stopped = Signal() +EditorDebuggerSession.breaked = Signal() +EditorDebuggerSession.continued = Signal() + +--- @param message String +--- @param data Array? Default: [] +function EditorDebuggerSession:send_message(message, data) end + +--- @param profiler String +--- @param enable bool +--- @param data Array? Default: [] +function EditorDebuggerSession:toggle_profiler(profiler, enable, data) end + +--- @return bool +function EditorDebuggerSession:is_breaked() end + +--- @return bool +function EditorDebuggerSession:is_debuggable() end + +--- @return bool +function EditorDebuggerSession:is_active() end + +--- @param control Control +function EditorDebuggerSession:add_session_tab(control) end + +--- @param control Control +function EditorDebuggerSession:remove_session_tab(control) end + +--- @param path String +--- @param line int +--- @param enabled bool +function EditorDebuggerSession:set_breakpoint(path, line, enabled) end + + +----------------------------------------------------------- +-- EditorExportPlatform +----------------------------------------------------------- + +--- @class EditorExportPlatform: RefCounted, { [string]: any } +EditorExportPlatform = {} + +--- @alias EditorExportPlatform.ExportMessageType `EditorExportPlatform.EXPORT_MESSAGE_NONE` | `EditorExportPlatform.EXPORT_MESSAGE_INFO` | `EditorExportPlatform.EXPORT_MESSAGE_WARNING` | `EditorExportPlatform.EXPORT_MESSAGE_ERROR` +EditorExportPlatform.EXPORT_MESSAGE_NONE = 0 +EditorExportPlatform.EXPORT_MESSAGE_INFO = 1 +EditorExportPlatform.EXPORT_MESSAGE_WARNING = 2 +EditorExportPlatform.EXPORT_MESSAGE_ERROR = 3 + +--- @alias EditorExportPlatform.DebugFlags `EditorExportPlatform.DEBUG_FLAG_DUMB_CLIENT` | `EditorExportPlatform.DEBUG_FLAG_REMOTE_DEBUG` | `EditorExportPlatform.DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST` | `EditorExportPlatform.DEBUG_FLAG_VIEW_COLLISIONS` | `EditorExportPlatform.DEBUG_FLAG_VIEW_NAVIGATION` +EditorExportPlatform.DEBUG_FLAG_DUMB_CLIENT = 1 +EditorExportPlatform.DEBUG_FLAG_REMOTE_DEBUG = 2 +EditorExportPlatform.DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST = 4 +EditorExportPlatform.DEBUG_FLAG_VIEW_COLLISIONS = 8 +EditorExportPlatform.DEBUG_FLAG_VIEW_NAVIGATION = 16 + +--- @return String +function EditorExportPlatform:get_os_name() end + +--- @return EditorExportPreset +function EditorExportPlatform:create_preset() end + +--- @param template_file_name String +--- @return Dictionary +function EditorExportPlatform:find_export_template(template_file_name) end + +--- @return Array +function EditorExportPlatform:get_current_presets() end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param embed bool? Default: false +--- @return Dictionary +function EditorExportPlatform:save_pack(preset, debug, path, embed) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @return Dictionary +function EditorExportPlatform:save_zip(preset, debug, path) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @return Dictionary +function EditorExportPlatform:save_pack_patch(preset, debug, path) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @return Dictionary +function EditorExportPlatform:save_zip_patch(preset, debug, path) end + +--- @param flags EditorExportPlatform.DebugFlags +--- @return PackedStringArray +function EditorExportPlatform:gen_export_flags(flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param save_cb Callable +--- @param shared_cb Callable? Default: Callable() +--- @return Error +function EditorExportPlatform:export_project_files(preset, debug, save_cb, shared_cb) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags? Default: 0 +--- @return Error +function EditorExportPlatform:export_project(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags? Default: 0 +--- @return Error +function EditorExportPlatform:export_pack(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags? Default: 0 +--- @return Error +function EditorExportPlatform:export_zip(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param patches PackedStringArray? Default: PackedStringArray() +--- @param flags EditorExportPlatform.DebugFlags? Default: 0 +--- @return Error +function EditorExportPlatform:export_pack_patch(preset, debug, path, patches, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param patches PackedStringArray? Default: PackedStringArray() +--- @param flags EditorExportPlatform.DebugFlags? Default: 0 +--- @return Error +function EditorExportPlatform:export_zip_patch(preset, debug, path, patches, flags) end + +function EditorExportPlatform:clear_messages() end + +--- @param type EditorExportPlatform.ExportMessageType +--- @param category String +--- @param message String +function EditorExportPlatform:add_message(type, category, message) end + +--- @return int +function EditorExportPlatform:get_message_count() end + +--- @param index int +--- @return EditorExportPlatform.ExportMessageType +function EditorExportPlatform:get_message_type(index) end + +--- @param index int +--- @return String +function EditorExportPlatform:get_message_category(index) end + +--- @param index int +--- @return String +function EditorExportPlatform:get_message_text(index) end + +--- @return EditorExportPlatform.ExportMessageType +function EditorExportPlatform:get_worst_message_type() end + +--- @param host String +--- @param port String +--- @param ssh_arg PackedStringArray +--- @param cmd_args String +--- @param output Array? Default: [] +--- @param port_fwd int? Default: -1 +--- @return Error +function EditorExportPlatform:ssh_run_on_remote(host, port, ssh_arg, cmd_args, output, port_fwd) end + +--- @param host String +--- @param port String +--- @param ssh_args PackedStringArray +--- @param cmd_args String +--- @param port_fwd int? Default: -1 +--- @return int +function EditorExportPlatform:ssh_run_on_remote_no_wait(host, port, ssh_args, cmd_args, port_fwd) end + +--- @param host String +--- @param port String +--- @param scp_args PackedStringArray +--- @param src_file String +--- @param dst_file String +--- @return Error +function EditorExportPlatform:ssh_push_to_remote(host, port, scp_args, src_file, dst_file) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @return Dictionary +function EditorExportPlatform:get_internal_export_files(preset, debug) end + +--- static +--- @param preset EditorExportPreset? Default: null +--- @return PackedStringArray +function EditorExportPlatform:get_forced_export_files(preset) end + + +----------------------------------------------------------- +-- EditorExportPlatformAndroid +----------------------------------------------------------- + +--- @class EditorExportPlatformAndroid: EditorExportPlatform, { [string]: any } +EditorExportPlatformAndroid = {} + +--- @return EditorExportPlatformAndroid +function EditorExportPlatformAndroid:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformAppleEmbedded +----------------------------------------------------------- + +--- @class EditorExportPlatformAppleEmbedded: EditorExportPlatform, { [string]: any } +EditorExportPlatformAppleEmbedded = {} + + +----------------------------------------------------------- +-- EditorExportPlatformExtension +----------------------------------------------------------- + +--- @class EditorExportPlatformExtension: EditorExportPlatform, { [string]: any } +EditorExportPlatformExtension = {} + +--- @return EditorExportPlatformExtension +function EditorExportPlatformExtension:new() end + +--- @param preset EditorExportPreset +--- @return PackedStringArray +function EditorExportPlatformExtension:_get_preset_features(preset) end + +--- @param path String +--- @return bool +function EditorExportPlatformExtension:_is_executable(path) end + +--- @return Array[Dictionary] +function EditorExportPlatformExtension:_get_export_options() end + +--- @return bool +function EditorExportPlatformExtension:_should_update_export_options() end + +--- @param preset EditorExportPreset +--- @param option String +--- @return bool +function EditorExportPlatformExtension:_get_export_option_visibility(preset, option) end + +--- @param preset EditorExportPreset +--- @param option StringName +--- @return String +function EditorExportPlatformExtension:_get_export_option_warning(preset, option) end + +--- @return String +function EditorExportPlatformExtension:_get_os_name() end + +--- @return String +function EditorExportPlatformExtension:_get_name() end + +--- @return Texture2D +function EditorExportPlatformExtension:_get_logo() end + +--- @return bool +function EditorExportPlatformExtension:_poll_export() end + +--- @return int +function EditorExportPlatformExtension:_get_options_count() end + +--- @return String +function EditorExportPlatformExtension:_get_options_tooltip() end + +--- @param device int +--- @return Texture2D +function EditorExportPlatformExtension:_get_option_icon(device) end + +--- @param device int +--- @return String +function EditorExportPlatformExtension:_get_option_label(device) end + +--- @param device int +--- @return String +function EditorExportPlatformExtension:_get_option_tooltip(device) end + +--- @param device int +--- @return String +function EditorExportPlatformExtension:_get_device_architecture(device) end + +function EditorExportPlatformExtension:_cleanup() end + +--- @param preset EditorExportPreset +--- @param device int +--- @param debug_flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_run(preset, device, debug_flags) end + +--- @return Texture2D +function EditorExportPlatformExtension:_get_run_icon() end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @return bool +function EditorExportPlatformExtension:_can_export(preset, debug) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @return bool +function EditorExportPlatformExtension:_has_valid_export_configuration(preset, debug) end + +--- @param preset EditorExportPreset +--- @return bool +function EditorExportPlatformExtension:_has_valid_project_configuration(preset) end + +--- @param preset EditorExportPreset +--- @return PackedStringArray +function EditorExportPlatformExtension:_get_binary_extensions(preset) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_export_project(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_export_pack(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_export_zip(preset, debug, path, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param patches PackedStringArray +--- @param flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_export_pack_patch(preset, debug, path, patches, flags) end + +--- @param preset EditorExportPreset +--- @param debug bool +--- @param path String +--- @param patches PackedStringArray +--- @param flags EditorExportPlatform.DebugFlags +--- @return Error +function EditorExportPlatformExtension:_export_zip_patch(preset, debug, path, patches, flags) end + +--- @return PackedStringArray +function EditorExportPlatformExtension:_get_platform_features() end + +--- @return String +function EditorExportPlatformExtension:_get_debug_protocol() end + +--- @param error_text String +function EditorExportPlatformExtension:set_config_error(error_text) end + +--- @return String +function EditorExportPlatformExtension:get_config_error() end + +--- @param missing_templates bool +function EditorExportPlatformExtension:set_config_missing_templates(missing_templates) end + +--- @return bool +function EditorExportPlatformExtension:get_config_missing_templates() end + + +----------------------------------------------------------- +-- EditorExportPlatformIOS +----------------------------------------------------------- + +--- @class EditorExportPlatformIOS: EditorExportPlatformAppleEmbedded, { [string]: any } +EditorExportPlatformIOS = {} + +--- @return EditorExportPlatformIOS +function EditorExportPlatformIOS:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformLinuxBSD +----------------------------------------------------------- + +--- @class EditorExportPlatformLinuxBSD: EditorExportPlatformPC, { [string]: any } +EditorExportPlatformLinuxBSD = {} + +--- @return EditorExportPlatformLinuxBSD +function EditorExportPlatformLinuxBSD:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformMacOS +----------------------------------------------------------- + +--- @class EditorExportPlatformMacOS: EditorExportPlatform, { [string]: any } +EditorExportPlatformMacOS = {} + +--- @return EditorExportPlatformMacOS +function EditorExportPlatformMacOS:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformPC +----------------------------------------------------------- + +--- @class EditorExportPlatformPC: EditorExportPlatform, { [string]: any } +EditorExportPlatformPC = {} + + +----------------------------------------------------------- +-- EditorExportPlatformVisionOS +----------------------------------------------------------- + +--- @class EditorExportPlatformVisionOS: EditorExportPlatformAppleEmbedded, { [string]: any } +EditorExportPlatformVisionOS = {} + +--- @return EditorExportPlatformVisionOS +function EditorExportPlatformVisionOS:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformWeb +----------------------------------------------------------- + +--- @class EditorExportPlatformWeb: EditorExportPlatform, { [string]: any } +EditorExportPlatformWeb = {} + +--- @return EditorExportPlatformWeb +function EditorExportPlatformWeb:new() end + + +----------------------------------------------------------- +-- EditorExportPlatformWindows +----------------------------------------------------------- + +--- @class EditorExportPlatformWindows: EditorExportPlatformPC, { [string]: any } +EditorExportPlatformWindows = {} + +--- @return EditorExportPlatformWindows +function EditorExportPlatformWindows:new() end + + +----------------------------------------------------------- +-- EditorExportPlugin +----------------------------------------------------------- + +--- @class EditorExportPlugin: RefCounted, { [string]: any } +EditorExportPlugin = {} + +--- @return EditorExportPlugin +function EditorExportPlugin:new() end + +--- @param path String +--- @param type String +--- @param features PackedStringArray +function EditorExportPlugin:_export_file(path, type, features) end + +--- @param features PackedStringArray +--- @param is_debug bool +--- @param path String +--- @param flags int +function EditorExportPlugin:_export_begin(features, is_debug, path, flags) end + +function EditorExportPlugin:_export_end() end + +--- @param platform EditorExportPlatform +--- @param features PackedStringArray +--- @return bool +function EditorExportPlugin:_begin_customize_resources(platform, features) end + +--- @param resource Resource +--- @param path String +--- @return Resource +function EditorExportPlugin:_customize_resource(resource, path) end + +--- @param platform EditorExportPlatform +--- @param features PackedStringArray +--- @return bool +function EditorExportPlugin:_begin_customize_scenes(platform, features) end + +--- @param scene Node +--- @param path String +--- @return Node +function EditorExportPlugin:_customize_scene(scene, path) end + +--- @return int +function EditorExportPlugin:_get_customization_configuration_hash() end + +function EditorExportPlugin:_end_customize_scenes() end + +function EditorExportPlugin:_end_customize_resources() end + +--- @param platform EditorExportPlatform +--- @return Array[Dictionary] +function EditorExportPlugin:_get_export_options(platform) end + +--- @param platform EditorExportPlatform +--- @return Dictionary +function EditorExportPlugin:_get_export_options_overrides(platform) end + +--- @param platform EditorExportPlatform +--- @return bool +function EditorExportPlugin:_should_update_export_options(platform) end + +--- @param platform EditorExportPlatform +--- @param option String +--- @return bool +function EditorExportPlugin:_get_export_option_visibility(platform, option) end + +--- @param platform EditorExportPlatform +--- @param option String +--- @return String +function EditorExportPlugin:_get_export_option_warning(platform, option) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return PackedStringArray +function EditorExportPlugin:_get_export_features(platform, debug) end + +--- @return String +function EditorExportPlugin:_get_name() end + +--- @param platform EditorExportPlatform +--- @return bool +function EditorExportPlugin:_supports_platform(platform) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return PackedStringArray +function EditorExportPlugin:_get_android_dependencies(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return PackedStringArray +function EditorExportPlugin:_get_android_dependencies_maven_repos(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return PackedStringArray +function EditorExportPlugin:_get_android_libraries(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return String +function EditorExportPlugin:_get_android_manifest_activity_element_contents(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return String +function EditorExportPlugin:_get_android_manifest_application_element_contents(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param debug bool +--- @return String +function EditorExportPlugin:_get_android_manifest_element_contents(platform, debug) end + +--- @param platform EditorExportPlatform +--- @param manifest_data PackedByteArray +--- @return PackedByteArray +function EditorExportPlugin:_update_android_prebuilt_manifest(platform, manifest_data) end + +--- @param path String +--- @param tags PackedStringArray +--- @param target String +function EditorExportPlugin:add_shared_object(path, tags, target) end + +--- @param path String +--- @param file PackedByteArray +--- @param remap bool +function EditorExportPlugin:add_file(path, file, remap) end + +--- @param path String +function EditorExportPlugin:add_apple_embedded_platform_project_static_lib(path) end + +--- @param path String +function EditorExportPlugin:add_apple_embedded_platform_framework(path) end + +--- @param path String +function EditorExportPlugin:add_apple_embedded_platform_embedded_framework(path) end + +--- @param plist_content String +function EditorExportPlugin:add_apple_embedded_platform_plist_content(plist_content) end + +--- @param flags String +function EditorExportPlugin:add_apple_embedded_platform_linker_flags(flags) end + +--- @param path String +function EditorExportPlugin:add_apple_embedded_platform_bundle_file(path) end + +--- @param code String +function EditorExportPlugin:add_apple_embedded_platform_cpp_code(code) end + +--- @param path String +function EditorExportPlugin:add_ios_project_static_lib(path) end + +--- @param path String +function EditorExportPlugin:add_ios_framework(path) end + +--- @param path String +function EditorExportPlugin:add_ios_embedded_framework(path) end + +--- @param plist_content String +function EditorExportPlugin:add_ios_plist_content(plist_content) end + +--- @param flags String +function EditorExportPlugin:add_ios_linker_flags(flags) end + +--- @param path String +function EditorExportPlugin:add_ios_bundle_file(path) end + +--- @param code String +function EditorExportPlugin:add_ios_cpp_code(code) end + +--- @param path String +function EditorExportPlugin:add_macos_plugin_file(path) end + +function EditorExportPlugin:skip() end + +--- @param name StringName +--- @return any +function EditorExportPlugin:get_option(name) end + +--- @return EditorExportPreset +function EditorExportPlugin:get_export_preset() end + +--- @return EditorExportPlatform +function EditorExportPlugin:get_export_platform() end + + +----------------------------------------------------------- +-- EditorExportPreset +----------------------------------------------------------- + +--- @class EditorExportPreset: RefCounted, { [string]: any } +EditorExportPreset = {} + +--- @alias EditorExportPreset.ExportFilter `EditorExportPreset.EXPORT_ALL_RESOURCES` | `EditorExportPreset.EXPORT_SELECTED_SCENES` | `EditorExportPreset.EXPORT_SELECTED_RESOURCES` | `EditorExportPreset.EXCLUDE_SELECTED_RESOURCES` | `EditorExportPreset.EXPORT_CUSTOMIZED` +EditorExportPreset.EXPORT_ALL_RESOURCES = 0 +EditorExportPreset.EXPORT_SELECTED_SCENES = 1 +EditorExportPreset.EXPORT_SELECTED_RESOURCES = 2 +EditorExportPreset.EXCLUDE_SELECTED_RESOURCES = 3 +EditorExportPreset.EXPORT_CUSTOMIZED = 4 + +--- @alias EditorExportPreset.FileExportMode `EditorExportPreset.MODE_FILE_NOT_CUSTOMIZED` | `EditorExportPreset.MODE_FILE_STRIP` | `EditorExportPreset.MODE_FILE_KEEP` | `EditorExportPreset.MODE_FILE_REMOVE` +EditorExportPreset.MODE_FILE_NOT_CUSTOMIZED = 0 +EditorExportPreset.MODE_FILE_STRIP = 1 +EditorExportPreset.MODE_FILE_KEEP = 2 +EditorExportPreset.MODE_FILE_REMOVE = 3 + +--- @alias EditorExportPreset.ScriptExportMode `EditorExportPreset.MODE_SCRIPT_TEXT` | `EditorExportPreset.MODE_SCRIPT_BINARY_TOKENS` | `EditorExportPreset.MODE_SCRIPT_BINARY_TOKENS_COMPRESSED` +EditorExportPreset.MODE_SCRIPT_TEXT = 0 +EditorExportPreset.MODE_SCRIPT_BINARY_TOKENS = 1 +EditorExportPreset.MODE_SCRIPT_BINARY_TOKENS_COMPRESSED = 2 + +--- @param property StringName +--- @return bool +function EditorExportPreset:has(property) end + +--- @return PackedStringArray +function EditorExportPreset:get_files_to_export() end + +--- @return Dictionary +function EditorExportPreset:get_customized_files() end + +--- @return int +function EditorExportPreset:get_customized_files_count() end + +--- @param path String +--- @return bool +function EditorExportPreset:has_export_file(path) end + +--- @param path String +--- @param default EditorExportPreset.FileExportMode? Default: 0 +--- @return EditorExportPreset.FileExportMode +function EditorExportPreset:get_file_export_mode(path, default) end + +--- @param name StringName +--- @return any +function EditorExportPreset:get_project_setting(name) end + +--- @return String +function EditorExportPreset:get_preset_name() end + +--- @return bool +function EditorExportPreset:is_runnable() end + +--- @return bool +function EditorExportPreset:are_advanced_options_enabled() end + +--- @return bool +function EditorExportPreset:is_dedicated_server() end + +--- @return EditorExportPreset.ExportFilter +function EditorExportPreset:get_export_filter() end + +--- @return String +function EditorExportPreset:get_include_filter() end + +--- @return String +function EditorExportPreset:get_exclude_filter() end + +--- @return String +function EditorExportPreset:get_custom_features() end + +--- @return PackedStringArray +function EditorExportPreset:get_patches() end + +--- @return String +function EditorExportPreset:get_export_path() end + +--- @return String +function EditorExportPreset:get_encryption_in_filter() end + +--- @return String +function EditorExportPreset:get_encryption_ex_filter() end + +--- @return bool +function EditorExportPreset:get_encrypt_pck() end + +--- @return bool +function EditorExportPreset:get_encrypt_directory() end + +--- @return String +function EditorExportPreset:get_encryption_key() end + +--- @return int +function EditorExportPreset:get_script_export_mode() end + +--- @param name StringName +--- @param env_var String +--- @return any +function EditorExportPreset:get_or_env(name, env_var) end + +--- @param name StringName +--- @param windows_version bool +--- @return String +function EditorExportPreset:get_version(name, windows_version) end + + +----------------------------------------------------------- +-- EditorFeatureProfile +----------------------------------------------------------- + +--- @class EditorFeatureProfile: RefCounted, { [string]: any } +EditorFeatureProfile = {} + +--- @return EditorFeatureProfile +function EditorFeatureProfile:new() end + +--- @alias EditorFeatureProfile.Feature `EditorFeatureProfile.FEATURE_3D` | `EditorFeatureProfile.FEATURE_SCRIPT` | `EditorFeatureProfile.FEATURE_ASSET_LIB` | `EditorFeatureProfile.FEATURE_SCENE_TREE` | `EditorFeatureProfile.FEATURE_NODE_DOCK` | `EditorFeatureProfile.FEATURE_FILESYSTEM_DOCK` | `EditorFeatureProfile.FEATURE_IMPORT_DOCK` | `EditorFeatureProfile.FEATURE_HISTORY_DOCK` | `EditorFeatureProfile.FEATURE_GAME` | `EditorFeatureProfile.FEATURE_MAX` +EditorFeatureProfile.FEATURE_3D = 0 +EditorFeatureProfile.FEATURE_SCRIPT = 1 +EditorFeatureProfile.FEATURE_ASSET_LIB = 2 +EditorFeatureProfile.FEATURE_SCENE_TREE = 3 +EditorFeatureProfile.FEATURE_NODE_DOCK = 4 +EditorFeatureProfile.FEATURE_FILESYSTEM_DOCK = 5 +EditorFeatureProfile.FEATURE_IMPORT_DOCK = 6 +EditorFeatureProfile.FEATURE_HISTORY_DOCK = 7 +EditorFeatureProfile.FEATURE_GAME = 8 +EditorFeatureProfile.FEATURE_MAX = 9 + +--- @param class_name StringName +--- @param disable bool +function EditorFeatureProfile:set_disable_class(class_name, disable) end + +--- @param class_name StringName +--- @return bool +function EditorFeatureProfile:is_class_disabled(class_name) end + +--- @param class_name StringName +--- @param disable bool +function EditorFeatureProfile:set_disable_class_editor(class_name, disable) end + +--- @param class_name StringName +--- @return bool +function EditorFeatureProfile:is_class_editor_disabled(class_name) end + +--- @param class_name StringName +--- @param property StringName +--- @param disable bool +function EditorFeatureProfile:set_disable_class_property(class_name, property, disable) end + +--- @param class_name StringName +--- @param property StringName +--- @return bool +function EditorFeatureProfile:is_class_property_disabled(class_name, property) end + +--- @param feature EditorFeatureProfile.Feature +--- @param disable bool +function EditorFeatureProfile:set_disable_feature(feature, disable) end + +--- @param feature EditorFeatureProfile.Feature +--- @return bool +function EditorFeatureProfile:is_feature_disabled(feature) end + +--- @param feature EditorFeatureProfile.Feature +--- @return String +function EditorFeatureProfile:get_feature_name(feature) end + +--- @param path String +--- @return Error +function EditorFeatureProfile:save_to_file(path) end + +--- @param path String +--- @return Error +function EditorFeatureProfile:load_from_file(path) end + + +----------------------------------------------------------- +-- EditorFileDialog +----------------------------------------------------------- + +--- @class EditorFileDialog: ConfirmationDialog, { [string]: any } +--- @field access int +--- @field display_mode int +--- @field file_mode int +--- @field current_dir String +--- @field current_file String +--- @field current_path String +--- @field filters PackedStringArray +--- @field option_count int +--- @field show_hidden_files bool +--- @field disable_overwrite_warning bool +EditorFileDialog = {} + +--- @return EditorFileDialog +function EditorFileDialog:new() end + +--- @alias EditorFileDialog.FileMode `EditorFileDialog.FILE_MODE_OPEN_FILE` | `EditorFileDialog.FILE_MODE_OPEN_FILES` | `EditorFileDialog.FILE_MODE_OPEN_DIR` | `EditorFileDialog.FILE_MODE_OPEN_ANY` | `EditorFileDialog.FILE_MODE_SAVE_FILE` +EditorFileDialog.FILE_MODE_OPEN_FILE = 0 +EditorFileDialog.FILE_MODE_OPEN_FILES = 1 +EditorFileDialog.FILE_MODE_OPEN_DIR = 2 +EditorFileDialog.FILE_MODE_OPEN_ANY = 3 +EditorFileDialog.FILE_MODE_SAVE_FILE = 4 + +--- @alias EditorFileDialog.Access `EditorFileDialog.ACCESS_RESOURCES` | `EditorFileDialog.ACCESS_USERDATA` | `EditorFileDialog.ACCESS_FILESYSTEM` +EditorFileDialog.ACCESS_RESOURCES = 0 +EditorFileDialog.ACCESS_USERDATA = 1 +EditorFileDialog.ACCESS_FILESYSTEM = 2 + +--- @alias EditorFileDialog.DisplayMode `EditorFileDialog.DISPLAY_THUMBNAILS` | `EditorFileDialog.DISPLAY_LIST` +EditorFileDialog.DISPLAY_THUMBNAILS = 0 +EditorFileDialog.DISPLAY_LIST = 1 + +EditorFileDialog.file_selected = Signal() +EditorFileDialog.files_selected = Signal() +EditorFileDialog.dir_selected = Signal() +EditorFileDialog.filename_filter_changed = Signal() + +function EditorFileDialog:clear_filters() end + +--- @param filter String +--- @param description String? Default: "" +function EditorFileDialog:add_filter(filter, description) end + +--- @param filters PackedStringArray +function EditorFileDialog:set_filters(filters) end + +--- @return PackedStringArray +function EditorFileDialog:get_filters() end + +--- @param option int +--- @return String +function EditorFileDialog:get_option_name(option) end + +--- @param option int +--- @return PackedStringArray +function EditorFileDialog:get_option_values(option) end + +--- @param option int +--- @return int +function EditorFileDialog:get_option_default(option) end + +--- @param option int +--- @param name String +function EditorFileDialog:set_option_name(option, name) end + +--- @param option int +--- @param values PackedStringArray +function EditorFileDialog:set_option_values(option, values) end + +--- @param option int +--- @param default_value_index int +function EditorFileDialog:set_option_default(option, default_value_index) end + +--- @param count int +function EditorFileDialog:set_option_count(count) end + +--- @return int +function EditorFileDialog:get_option_count() end + +--- @param name String +--- @param values PackedStringArray +--- @param default_value_index int +function EditorFileDialog:add_option(name, values, default_value_index) end + +--- @return Dictionary +function EditorFileDialog:get_selected_options() end + +function EditorFileDialog:clear_filename_filter() end + +--- @param filter String +function EditorFileDialog:set_filename_filter(filter) end + +--- @return String +function EditorFileDialog:get_filename_filter() end + +--- @return String +function EditorFileDialog:get_current_dir() end + +--- @return String +function EditorFileDialog:get_current_file() end + +--- @return String +function EditorFileDialog:get_current_path() end + +--- @param dir String +function EditorFileDialog:set_current_dir(dir) end + +--- @param file String +function EditorFileDialog:set_current_file(file) end + +--- @param path String +function EditorFileDialog:set_current_path(path) end + +--- @param mode EditorFileDialog.FileMode +function EditorFileDialog:set_file_mode(mode) end + +--- @return EditorFileDialog.FileMode +function EditorFileDialog:get_file_mode() end + +--- @return VBoxContainer +function EditorFileDialog:get_vbox() end + +--- @return LineEdit +function EditorFileDialog:get_line_edit() end + +--- @param access EditorFileDialog.Access +function EditorFileDialog:set_access(access) end + +--- @return EditorFileDialog.Access +function EditorFileDialog:get_access() end + +--- @param show bool +function EditorFileDialog:set_show_hidden_files(show) end + +--- @return bool +function EditorFileDialog:is_showing_hidden_files() end + +--- @param mode EditorFileDialog.DisplayMode +function EditorFileDialog:set_display_mode(mode) end + +--- @return EditorFileDialog.DisplayMode +function EditorFileDialog:get_display_mode() end + +--- @param disable bool +function EditorFileDialog:set_disable_overwrite_warning(disable) end + +--- @return bool +function EditorFileDialog:is_overwrite_warning_disabled() end + +--- @param menu Control +--- @param title String? Default: "" +function EditorFileDialog:add_side_menu(menu, title) end + +function EditorFileDialog:popup_file_dialog() end + +function EditorFileDialog:invalidate() end + + +----------------------------------------------------------- +-- EditorFileSystem +----------------------------------------------------------- + +--- @class EditorFileSystem: Node, { [string]: any } +EditorFileSystem = {} + +EditorFileSystem.filesystem_changed = Signal() +EditorFileSystem.script_classes_updated = Signal() +EditorFileSystem.sources_changed = Signal() +EditorFileSystem.resources_reimporting = Signal() +EditorFileSystem.resources_reimported = Signal() +EditorFileSystem.resources_reload = Signal() + +--- @return EditorFileSystemDirectory +function EditorFileSystem:get_filesystem() end + +--- @return bool +function EditorFileSystem:is_scanning() end + +--- @return float +function EditorFileSystem:get_scanning_progress() end + +function EditorFileSystem:scan() end + +function EditorFileSystem:scan_sources() end + +--- @param path String +function EditorFileSystem:update_file(path) end + +--- @param path String +--- @return EditorFileSystemDirectory +function EditorFileSystem:get_filesystem_path(path) end + +--- @param path String +--- @return String +function EditorFileSystem:get_file_type(path) end + +--- @param files PackedStringArray +function EditorFileSystem:reimport_files(files) end + + +----------------------------------------------------------- +-- EditorFileSystemDirectory +----------------------------------------------------------- + +--- @class EditorFileSystemDirectory: Object, { [string]: any } +EditorFileSystemDirectory = {} + +--- @return EditorFileSystemDirectory +function EditorFileSystemDirectory:new() end + +--- @return int +function EditorFileSystemDirectory:get_subdir_count() end + +--- @param idx int +--- @return EditorFileSystemDirectory +function EditorFileSystemDirectory:get_subdir(idx) end + +--- @return int +function EditorFileSystemDirectory:get_file_count() end + +--- @param idx int +--- @return String +function EditorFileSystemDirectory:get_file(idx) end + +--- @param idx int +--- @return String +function EditorFileSystemDirectory:get_file_path(idx) end + +--- @param idx int +--- @return StringName +function EditorFileSystemDirectory:get_file_type(idx) end + +--- @param idx int +--- @return String +function EditorFileSystemDirectory:get_file_script_class_name(idx) end + +--- @param idx int +--- @return String +function EditorFileSystemDirectory:get_file_script_class_extends(idx) end + +--- @param idx int +--- @return bool +function EditorFileSystemDirectory:get_file_import_is_valid(idx) end + +--- @return String +function EditorFileSystemDirectory:get_name() end + +--- @return String +function EditorFileSystemDirectory:get_path() end + +--- @return EditorFileSystemDirectory +function EditorFileSystemDirectory:get_parent() end + +--- @param name String +--- @return int +function EditorFileSystemDirectory:find_file_index(name) end + +--- @param name String +--- @return int +function EditorFileSystemDirectory:find_dir_index(name) end + + +----------------------------------------------------------- +-- EditorFileSystemImportFormatSupportQuery +----------------------------------------------------------- + +--- @class EditorFileSystemImportFormatSupportQuery: RefCounted, { [string]: any } +EditorFileSystemImportFormatSupportQuery = {} + +--- @return EditorFileSystemImportFormatSupportQuery +function EditorFileSystemImportFormatSupportQuery:new() end + +--- @return bool +function EditorFileSystemImportFormatSupportQuery:_is_active() end + +--- @return PackedStringArray +function EditorFileSystemImportFormatSupportQuery:_get_file_extensions() end + +--- @return bool +function EditorFileSystemImportFormatSupportQuery:_query() end + + +----------------------------------------------------------- +-- EditorImportPlugin +----------------------------------------------------------- + +--- @class EditorImportPlugin: ResourceImporter, { [string]: any } +EditorImportPlugin = {} + +--- @return EditorImportPlugin +function EditorImportPlugin:new() end + +--- @return String +function EditorImportPlugin:_get_importer_name() end + +--- @return String +function EditorImportPlugin:_get_visible_name() end + +--- @return int +function EditorImportPlugin:_get_preset_count() end + +--- @param preset_index int +--- @return String +function EditorImportPlugin:_get_preset_name(preset_index) end + +--- @return PackedStringArray +function EditorImportPlugin:_get_recognized_extensions() end + +--- @param path String +--- @param preset_index int +--- @return Array[Dictionary] +function EditorImportPlugin:_get_import_options(path, preset_index) end + +--- @return String +function EditorImportPlugin:_get_save_extension() end + +--- @return String +function EditorImportPlugin:_get_resource_type() end + +--- @return float +function EditorImportPlugin:_get_priority() end + +--- @return int +function EditorImportPlugin:_get_import_order() end + +--- @return int +function EditorImportPlugin:_get_format_version() end + +--- @param path String +--- @param option_name StringName +--- @param options Dictionary +--- @return bool +function EditorImportPlugin:_get_option_visibility(path, option_name, options) end + +--- @param source_file String +--- @param save_path String +--- @param options Dictionary +--- @param platform_variants Array[String] +--- @param gen_files Array[String] +--- @return Error +function EditorImportPlugin:_import(source_file, save_path, options, platform_variants, gen_files) end + +--- @return bool +function EditorImportPlugin:_can_import_threaded() end + +--- @param path String +--- @param custom_options Dictionary? Default: {} +--- @param custom_importer String? Default: "" +--- @param generator_parameters any? Default: null +--- @return Error +function EditorImportPlugin:append_import_external_resource(path, custom_options, custom_importer, generator_parameters) end + + +----------------------------------------------------------- +-- EditorInspector +----------------------------------------------------------- + +--- @class EditorInspector: ScrollContainer, { [string]: any } +EditorInspector = {} + +--- @return EditorInspector +function EditorInspector:new() end + +EditorInspector.property_selected = Signal() +EditorInspector.property_keyed = Signal() +EditorInspector.property_deleted = Signal() +EditorInspector.resource_selected = Signal() +EditorInspector.object_id_selected = Signal() +EditorInspector.property_edited = Signal() +EditorInspector.property_toggled = Signal() +EditorInspector.edited_object_changed = Signal() +EditorInspector.restart_requested = Signal() + +--- @param object Object +function EditorInspector:edit(object) end + +--- @return String +function EditorInspector:get_selected_path() end + +--- @return Object +function EditorInspector:get_edited_object() end + +--- static +--- @param object Object +--- @param type Variant.Type +--- @param path String +--- @param hint PropertyHint +--- @param hint_text String +--- @param usage int +--- @param wide bool? Default: false +--- @return EditorProperty +function EditorInspector:instantiate_property_editor(object, type, path, hint, hint_text, usage, wide) end + + +----------------------------------------------------------- +-- EditorInspectorPlugin +----------------------------------------------------------- + +--- @class EditorInspectorPlugin: RefCounted, { [string]: any } +EditorInspectorPlugin = {} + +--- @return EditorInspectorPlugin +function EditorInspectorPlugin:new() end + +--- @param object Object +--- @return bool +function EditorInspectorPlugin:_can_handle(object) end + +--- @param object Object +function EditorInspectorPlugin:_parse_begin(object) end + +--- @param object Object +--- @param category String +function EditorInspectorPlugin:_parse_category(object, category) end + +--- @param object Object +--- @param group String +function EditorInspectorPlugin:_parse_group(object, group) end + +--- @param object Object +--- @param type Variant.Type +--- @param name String +--- @param hint_type PropertyHint +--- @param hint_string String +--- @param usage_flags PropertyUsageFlags +--- @param wide bool +--- @return bool +function EditorInspectorPlugin:_parse_property(object, type, name, hint_type, hint_string, usage_flags, wide) end + +--- @param object Object +function EditorInspectorPlugin:_parse_end(object) end + +--- @param control Control +function EditorInspectorPlugin:add_custom_control(control) end + +--- @param property String +--- @param editor Control +--- @param add_to_end bool? Default: false +--- @param label String? Default: "" +function EditorInspectorPlugin:add_property_editor(property, editor, add_to_end, label) end + +--- @param label String +--- @param properties PackedStringArray +--- @param editor Control +function EditorInspectorPlugin:add_property_editor_for_multiple_properties(label, properties, editor) end + + +----------------------------------------------------------- +-- EditorInterface +----------------------------------------------------------- + +--- @class EditorInterface: Object, { [string]: any } +--- @field distraction_free_mode bool +--- @field movie_maker_enabled bool +EditorInterface = {} + +--- @param save bool? Default: true +function EditorInterface:restart_editor(save) end + +--- @return EditorCommandPalette +function EditorInterface:get_command_palette() end + +--- @return EditorFileSystem +function EditorInterface:get_resource_filesystem() end + +--- @return EditorPaths +function EditorInterface:get_editor_paths() end + +--- @return EditorResourcePreview +function EditorInterface:get_resource_previewer() end + +--- @return EditorSelection +function EditorInterface:get_selection() end + +--- @return EditorSettings +function EditorInterface:get_editor_settings() end + +--- @return EditorToaster +function EditorInterface:get_editor_toaster() end + +--- @return EditorUndoRedoManager +function EditorInterface:get_editor_undo_redo() end + +--- @param meshes Array[Mesh] +--- @param preview_size int +--- @return Array[Texture2D] +function EditorInterface:make_mesh_previews(meshes, preview_size) end + +--- @param plugin String +--- @param enabled bool +function EditorInterface:set_plugin_enabled(plugin, enabled) end + +--- @param plugin String +--- @return bool +function EditorInterface:is_plugin_enabled(plugin) end + +--- @return Theme +function EditorInterface:get_editor_theme() end + +--- @return Control +function EditorInterface:get_base_control() end + +--- @return VBoxContainer +function EditorInterface:get_editor_main_screen() end + +--- @return ScriptEditor +function EditorInterface:get_script_editor() end + +--- @return SubViewport +function EditorInterface:get_editor_viewport_2d() end + +--- @param idx int? Default: 0 +--- @return SubViewport +function EditorInterface:get_editor_viewport_3d(idx) end + +--- @param name String +function EditorInterface:set_main_screen_editor(name) end + +--- @param enter bool +function EditorInterface:set_distraction_free_mode(enter) end + +--- @return bool +function EditorInterface:is_distraction_free_mode_enabled() end + +--- @return bool +function EditorInterface:is_multi_window_enabled() end + +--- @return float +function EditorInterface:get_editor_scale() end + +--- @param dialog Window +--- @param rect Rect2i? Default: Rect2i(0, 0, 0, 0) +function EditorInterface:popup_dialog(dialog, rect) end + +--- @param dialog Window +--- @param minsize Vector2i? Default: Vector2i(0, 0) +function EditorInterface:popup_dialog_centered(dialog, minsize) end + +--- @param dialog Window +--- @param ratio float? Default: 0.8 +function EditorInterface:popup_dialog_centered_ratio(dialog, ratio) end + +--- @param dialog Window +--- @param minsize Vector2i? Default: Vector2i(0, 0) +--- @param fallback_ratio float? Default: 0.75 +function EditorInterface:popup_dialog_centered_clamped(dialog, minsize, fallback_ratio) end + +--- @return String +function EditorInterface:get_current_feature_profile() end + +--- @param profile_name String +function EditorInterface:set_current_feature_profile(profile_name) end + +--- @param callback Callable +--- @param valid_types Array[StringName]? Default: Array[StringName]([]) +--- @param current_value Node? Default: null +function EditorInterface:popup_node_selector(callback, valid_types, current_value) end + +--- @param object Object +--- @param callback Callable +--- @param type_filter PackedInt32Array? Default: PackedInt32Array() +--- @param current_value String? Default: "" +function EditorInterface:popup_property_selector(object, callback, type_filter, current_value) end + +--- @param object Object +--- @param callback Callable +--- @param current_value String? Default: "" +function EditorInterface:popup_method_selector(object, callback, current_value) end + +--- @param callback Callable +--- @param base_types Array[StringName]? Default: Array[StringName]([]) +function EditorInterface:popup_quick_open(callback, base_types) end + +--- @param callback Callable +--- @param base_type StringName? Default: "" +--- @param current_type String? Default: "" +--- @param dialog_title String? Default: "" +--- @param type_blocklist Array[StringName]? Default: Array[StringName]([]) +function EditorInterface:popup_create_dialog(callback, base_type, current_type, dialog_title, type_blocklist) end + +--- @return FileSystemDock +function EditorInterface:get_file_system_dock() end + +--- @param file String +function EditorInterface:select_file(file) end + +--- @return PackedStringArray +function EditorInterface:get_selected_paths() end + +--- @return String +function EditorInterface:get_current_path() end + +--- @return String +function EditorInterface:get_current_directory() end + +--- @return EditorInspector +function EditorInterface:get_inspector() end + +--- @param object Object +--- @param for_property String? Default: "" +--- @param inspector_only bool? Default: false +function EditorInterface:inspect_object(object, for_property, inspector_only) end + +--- @param resource Resource +function EditorInterface:edit_resource(resource) end + +--- @param node Node +function EditorInterface:edit_node(node) end + +--- @param script Script +--- @param line int? Default: -1 +--- @param column int? Default: 0 +--- @param grab_focus bool? Default: true +function EditorInterface:edit_script(script, line, column, grab_focus) end + +--- @param scene_filepath String +--- @param set_inherited bool? Default: false +function EditorInterface:open_scene_from_path(scene_filepath, set_inherited) end + +--- @param scene_filepath String +function EditorInterface:reload_scene_from_path(scene_filepath) end + +--- @return PackedStringArray +function EditorInterface:get_open_scenes() end + +--- @return Array[Node] +function EditorInterface:get_open_scene_roots() end + +--- @return Node +function EditorInterface:get_edited_scene_root() end + +--- @return Error +function EditorInterface:save_scene() end + +--- @param path String +--- @param with_preview bool? Default: true +function EditorInterface:save_scene_as(path, with_preview) end + +function EditorInterface:save_all_scenes() end + +--- @return Error +function EditorInterface:close_scene() end + +function EditorInterface:mark_scene_as_unsaved() end + +function EditorInterface:play_main_scene() end + +function EditorInterface:play_current_scene() end + +--- @param scene_filepath String +function EditorInterface:play_custom_scene(scene_filepath) end + +function EditorInterface:stop_playing_scene() end + +--- @return bool +function EditorInterface:is_playing_scene() end + +--- @return String +function EditorInterface:get_playing_scene() end + +--- @param enabled bool +function EditorInterface:set_movie_maker_enabled(enabled) end + +--- @return bool +function EditorInterface:is_movie_maker_enabled() end + + +----------------------------------------------------------- +-- EditorNode3DGizmo +----------------------------------------------------------- + +--- @class EditorNode3DGizmo: Node3DGizmo, { [string]: any } +EditorNode3DGizmo = {} + +--- @return EditorNode3DGizmo +function EditorNode3DGizmo:new() end + +function EditorNode3DGizmo:_redraw() end + +--- @param id int +--- @param secondary bool +--- @return String +function EditorNode3DGizmo:_get_handle_name(id, secondary) end + +--- @param id int +--- @param secondary bool +--- @return bool +function EditorNode3DGizmo:_is_handle_highlighted(id, secondary) end + +--- @param id int +--- @param secondary bool +--- @return any +function EditorNode3DGizmo:_get_handle_value(id, secondary) end + +--- @param id int +--- @param secondary bool +function EditorNode3DGizmo:_begin_handle_action(id, secondary) end + +--- @param id int +--- @param secondary bool +--- @param camera Camera3D +--- @param point Vector2 +function EditorNode3DGizmo:_set_handle(id, secondary, camera, point) end + +--- @param id int +--- @param secondary bool +--- @param restore any +--- @param cancel bool +function EditorNode3DGizmo:_commit_handle(id, secondary, restore, cancel) end + +--- @param camera Camera3D +--- @param point Vector2 +--- @return int +function EditorNode3DGizmo:_subgizmos_intersect_ray(camera, point) end + +--- @param camera Camera3D +--- @param frustum Array[Plane] +--- @return PackedInt32Array +function EditorNode3DGizmo:_subgizmos_intersect_frustum(camera, frustum) end + +--- @param id int +--- @param transform Transform3D +function EditorNode3DGizmo:_set_subgizmo_transform(id, transform) end + +--- @param id int +--- @return Transform3D +function EditorNode3DGizmo:_get_subgizmo_transform(id) end + +--- @param ids PackedInt32Array +--- @param restores Array[Transform3D] +--- @param cancel bool +function EditorNode3DGizmo:_commit_subgizmos(ids, restores, cancel) end + +--- @param lines PackedVector3Array +--- @param material Material +--- @param billboard bool? Default: false +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function EditorNode3DGizmo:add_lines(lines, material, billboard, modulate) end + +--- @param mesh Mesh +--- @param material Material? Default: null +--- @param transform Transform3D? Default: Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +--- @param skeleton SkinReference? Default: null +function EditorNode3DGizmo:add_mesh(mesh, material, transform, skeleton) end + +--- @param segments PackedVector3Array +function EditorNode3DGizmo:add_collision_segments(segments) end + +--- @param triangles TriangleMesh +function EditorNode3DGizmo:add_collision_triangles(triangles) end + +--- @param material Material +--- @param default_scale float? Default: 1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function EditorNode3DGizmo:add_unscaled_billboard(material, default_scale, modulate) end + +--- @param handles PackedVector3Array +--- @param material Material +--- @param ids PackedInt32Array +--- @param billboard bool? Default: false +--- @param secondary bool? Default: false +function EditorNode3DGizmo:add_handles(handles, material, ids, billboard, secondary) end + +--- @param node Node +function EditorNode3DGizmo:set_node_3d(node) end + +--- @return Node3D +function EditorNode3DGizmo:get_node_3d() end + +--- @return EditorNode3DGizmoPlugin +function EditorNode3DGizmo:get_plugin() end + +function EditorNode3DGizmo:clear() end + +--- @param hidden bool +function EditorNode3DGizmo:set_hidden(hidden) end + +--- @param id int +--- @return bool +function EditorNode3DGizmo:is_subgizmo_selected(id) end + +--- @return PackedInt32Array +function EditorNode3DGizmo:get_subgizmo_selection() end + + +----------------------------------------------------------- +-- EditorNode3DGizmoPlugin +----------------------------------------------------------- + +--- @class EditorNode3DGizmoPlugin: Resource, { [string]: any } +EditorNode3DGizmoPlugin = {} + +--- @return EditorNode3DGizmoPlugin +function EditorNode3DGizmoPlugin:new() end + +--- @param for_node_3d Node3D +--- @return bool +function EditorNode3DGizmoPlugin:_has_gizmo(for_node_3d) end + +--- @param for_node_3d Node3D +--- @return EditorNode3DGizmo +function EditorNode3DGizmoPlugin:_create_gizmo(for_node_3d) end + +--- @return String +function EditorNode3DGizmoPlugin:_get_gizmo_name() end + +--- @return int +function EditorNode3DGizmoPlugin:_get_priority() end + +--- @return bool +function EditorNode3DGizmoPlugin:_can_be_hidden() end + +--- @return bool +function EditorNode3DGizmoPlugin:_is_selectable_when_hidden() end + +--- @param gizmo EditorNode3DGizmo +function EditorNode3DGizmoPlugin:_redraw(gizmo) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +--- @return String +function EditorNode3DGizmoPlugin:_get_handle_name(gizmo, handle_id, secondary) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +--- @return bool +function EditorNode3DGizmoPlugin:_is_handle_highlighted(gizmo, handle_id, secondary) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +--- @return any +function EditorNode3DGizmoPlugin:_get_handle_value(gizmo, handle_id, secondary) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +function EditorNode3DGizmoPlugin:_begin_handle_action(gizmo, handle_id, secondary) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +--- @param camera Camera3D +--- @param screen_pos Vector2 +function EditorNode3DGizmoPlugin:_set_handle(gizmo, handle_id, secondary, camera, screen_pos) end + +--- @param gizmo EditorNode3DGizmo +--- @param handle_id int +--- @param secondary bool +--- @param restore any +--- @param cancel bool +function EditorNode3DGizmoPlugin:_commit_handle(gizmo, handle_id, secondary, restore, cancel) end + +--- @param gizmo EditorNode3DGizmo +--- @param camera Camera3D +--- @param screen_pos Vector2 +--- @return int +function EditorNode3DGizmoPlugin:_subgizmos_intersect_ray(gizmo, camera, screen_pos) end + +--- @param gizmo EditorNode3DGizmo +--- @param camera Camera3D +--- @param frustum_planes Array[Plane] +--- @return PackedInt32Array +function EditorNode3DGizmoPlugin:_subgizmos_intersect_frustum(gizmo, camera, frustum_planes) end + +--- @param gizmo EditorNode3DGizmo +--- @param subgizmo_id int +--- @return Transform3D +function EditorNode3DGizmoPlugin:_get_subgizmo_transform(gizmo, subgizmo_id) end + +--- @param gizmo EditorNode3DGizmo +--- @param subgizmo_id int +--- @param transform Transform3D +function EditorNode3DGizmoPlugin:_set_subgizmo_transform(gizmo, subgizmo_id, transform) end + +--- @param gizmo EditorNode3DGizmo +--- @param ids PackedInt32Array +--- @param restores Array[Transform3D] +--- @param cancel bool +function EditorNode3DGizmoPlugin:_commit_subgizmos(gizmo, ids, restores, cancel) end + +--- @param name String +--- @param color Color +--- @param billboard bool? Default: false +--- @param on_top bool? Default: false +--- @param use_vertex_color bool? Default: false +function EditorNode3DGizmoPlugin:create_material(name, color, billboard, on_top, use_vertex_color) end + +--- @param name String +--- @param texture Texture2D +--- @param on_top bool? Default: false +--- @param color Color? Default: Color(1, 1, 1, 1) +function EditorNode3DGizmoPlugin:create_icon_material(name, texture, on_top, color) end + +--- @param name String +--- @param billboard bool? Default: false +--- @param texture Texture2D? Default: null +function EditorNode3DGizmoPlugin:create_handle_material(name, billboard, texture) end + +--- @param name String +--- @param material StandardMaterial3D +function EditorNode3DGizmoPlugin:add_material(name, material) end + +--- @param name String +--- @param gizmo EditorNode3DGizmo? Default: null +--- @return StandardMaterial3D +function EditorNode3DGizmoPlugin:get_material(name, gizmo) end + + +----------------------------------------------------------- +-- EditorPaths +----------------------------------------------------------- + +--- @class EditorPaths: Object, { [string]: any } +EditorPaths = {} + +--- @return EditorPaths +function EditorPaths:new() end + +--- @return String +function EditorPaths:get_data_dir() end + +--- @return String +function EditorPaths:get_config_dir() end + +--- @return String +function EditorPaths:get_cache_dir() end + +--- @return bool +function EditorPaths:is_self_contained() end + +--- @return String +function EditorPaths:get_self_contained_file() end + +--- @return String +function EditorPaths:get_project_settings_dir() end + + +----------------------------------------------------------- +-- EditorPlugin +----------------------------------------------------------- + +--- @class EditorPlugin: Node, { [string]: any } +EditorPlugin = {} + +--- @return EditorPlugin +function EditorPlugin:new() end + +--- @alias EditorPlugin.CustomControlContainer `EditorPlugin.CONTAINER_TOOLBAR` | `EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU` | `EditorPlugin.CONTAINER_SPATIAL_EDITOR_SIDE_LEFT` | `EditorPlugin.CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT` | `EditorPlugin.CONTAINER_SPATIAL_EDITOR_BOTTOM` | `EditorPlugin.CONTAINER_CANVAS_EDITOR_MENU` | `EditorPlugin.CONTAINER_CANVAS_EDITOR_SIDE_LEFT` | `EditorPlugin.CONTAINER_CANVAS_EDITOR_SIDE_RIGHT` | `EditorPlugin.CONTAINER_CANVAS_EDITOR_BOTTOM` | `EditorPlugin.CONTAINER_INSPECTOR_BOTTOM` | `EditorPlugin.CONTAINER_PROJECT_SETTING_TAB_LEFT` | `EditorPlugin.CONTAINER_PROJECT_SETTING_TAB_RIGHT` +EditorPlugin.CONTAINER_TOOLBAR = 0 +EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU = 1 +EditorPlugin.CONTAINER_SPATIAL_EDITOR_SIDE_LEFT = 2 +EditorPlugin.CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT = 3 +EditorPlugin.CONTAINER_SPATIAL_EDITOR_BOTTOM = 4 +EditorPlugin.CONTAINER_CANVAS_EDITOR_MENU = 5 +EditorPlugin.CONTAINER_CANVAS_EDITOR_SIDE_LEFT = 6 +EditorPlugin.CONTAINER_CANVAS_EDITOR_SIDE_RIGHT = 7 +EditorPlugin.CONTAINER_CANVAS_EDITOR_BOTTOM = 8 +EditorPlugin.CONTAINER_INSPECTOR_BOTTOM = 9 +EditorPlugin.CONTAINER_PROJECT_SETTING_TAB_LEFT = 10 +EditorPlugin.CONTAINER_PROJECT_SETTING_TAB_RIGHT = 11 + +--- @alias EditorPlugin.DockSlot `EditorPlugin.DOCK_SLOT_LEFT_UL` | `EditorPlugin.DOCK_SLOT_LEFT_BL` | `EditorPlugin.DOCK_SLOT_LEFT_UR` | `EditorPlugin.DOCK_SLOT_LEFT_BR` | `EditorPlugin.DOCK_SLOT_RIGHT_UL` | `EditorPlugin.DOCK_SLOT_RIGHT_BL` | `EditorPlugin.DOCK_SLOT_RIGHT_UR` | `EditorPlugin.DOCK_SLOT_RIGHT_BR` | `EditorPlugin.DOCK_SLOT_MAX` +EditorPlugin.DOCK_SLOT_LEFT_UL = 0 +EditorPlugin.DOCK_SLOT_LEFT_BL = 1 +EditorPlugin.DOCK_SLOT_LEFT_UR = 2 +EditorPlugin.DOCK_SLOT_LEFT_BR = 3 +EditorPlugin.DOCK_SLOT_RIGHT_UL = 4 +EditorPlugin.DOCK_SLOT_RIGHT_BL = 5 +EditorPlugin.DOCK_SLOT_RIGHT_UR = 6 +EditorPlugin.DOCK_SLOT_RIGHT_BR = 7 +EditorPlugin.DOCK_SLOT_MAX = 8 + +--- @alias EditorPlugin.AfterGUIInput `EditorPlugin.AFTER_GUI_INPUT_PASS` | `EditorPlugin.AFTER_GUI_INPUT_STOP` | `EditorPlugin.AFTER_GUI_INPUT_CUSTOM` +EditorPlugin.AFTER_GUI_INPUT_PASS = 0 +EditorPlugin.AFTER_GUI_INPUT_STOP = 1 +EditorPlugin.AFTER_GUI_INPUT_CUSTOM = 2 + +EditorPlugin.scene_changed = Signal() +EditorPlugin.scene_closed = Signal() +EditorPlugin.main_screen_changed = Signal() +EditorPlugin.resource_saved = Signal() +EditorPlugin.scene_saved = Signal() +EditorPlugin.project_settings_changed = Signal() + +--- @param event InputEvent +--- @return bool +function EditorPlugin:_forward_canvas_gui_input(event) end + +--- @param viewport_control Control +function EditorPlugin:_forward_canvas_draw_over_viewport(viewport_control) end + +--- @param viewport_control Control +function EditorPlugin:_forward_canvas_force_draw_over_viewport(viewport_control) end + +--- @param viewport_camera Camera3D +--- @param event InputEvent +--- @return int +function EditorPlugin:_forward_3d_gui_input(viewport_camera, event) end + +--- @param viewport_control Control +function EditorPlugin:_forward_3d_draw_over_viewport(viewport_control) end + +--- @param viewport_control Control +function EditorPlugin:_forward_3d_force_draw_over_viewport(viewport_control) end + +--- @return String +function EditorPlugin:_get_plugin_name() end + +--- @return Texture2D +function EditorPlugin:_get_plugin_icon() end + +--- @return bool +function EditorPlugin:_has_main_screen() end + +--- @param visible bool +function EditorPlugin:_make_visible(visible) end + +--- @param object Object +function EditorPlugin:_edit(object) end + +--- @param object Object +--- @return bool +function EditorPlugin:_handles(object) end + +--- @return Dictionary +function EditorPlugin:_get_state() end + +--- @param state Dictionary +function EditorPlugin:_set_state(state) end + +function EditorPlugin:_clear() end + +--- @param for_scene String +--- @return String +function EditorPlugin:_get_unsaved_status(for_scene) end + +function EditorPlugin:_save_external_data() end + +function EditorPlugin:_apply_changes() end + +--- @return PackedStringArray +function EditorPlugin:_get_breakpoints() end + +--- @param configuration ConfigFile +function EditorPlugin:_set_window_layout(configuration) end + +--- @param configuration ConfigFile +function EditorPlugin:_get_window_layout(configuration) end + +--- @return bool +function EditorPlugin:_build() end + +function EditorPlugin:_enable_plugin() end + +function EditorPlugin:_disable_plugin() end + +--- @param container EditorPlugin.CustomControlContainer +--- @param control Control +function EditorPlugin:add_control_to_container(container, control) end + +--- @param control Control +--- @param title String +--- @param shortcut Shortcut? Default: null +--- @return Button +function EditorPlugin:add_control_to_bottom_panel(control, title, shortcut) end + +--- @param slot EditorPlugin.DockSlot +--- @param control Control +--- @param shortcut Shortcut? Default: null +function EditorPlugin:add_control_to_dock(slot, control, shortcut) end + +--- @param control Control +function EditorPlugin:remove_control_from_docks(control) end + +--- @param control Control +function EditorPlugin:remove_control_from_bottom_panel(control) end + +--- @param container EditorPlugin.CustomControlContainer +--- @param control Control +function EditorPlugin:remove_control_from_container(container, control) end + +--- @param control Control +--- @param icon Texture2D +function EditorPlugin:set_dock_tab_icon(control, icon) end + +--- @param name String +--- @param callable Callable +function EditorPlugin:add_tool_menu_item(name, callable) end + +--- @param name String +--- @param submenu PopupMenu +function EditorPlugin:add_tool_submenu_item(name, submenu) end + +--- @param name String +function EditorPlugin:remove_tool_menu_item(name) end + +--- @return PopupMenu +function EditorPlugin:get_export_as_menu() end + +--- @param type String +--- @param base String +--- @param script Script +--- @param icon Texture2D +function EditorPlugin:add_custom_type(type, base, script, icon) end + +--- @param type String +function EditorPlugin:remove_custom_type(type) end + +--- @param name String +--- @param path String +function EditorPlugin:add_autoload_singleton(name, path) end + +--- @param name String +function EditorPlugin:remove_autoload_singleton(name) end + +--- @return int +function EditorPlugin:update_overlays() end + +--- @param item Control +function EditorPlugin:make_bottom_panel_item_visible(item) end + +function EditorPlugin:hide_bottom_panel() end + +--- @return EditorUndoRedoManager +function EditorPlugin:get_undo_redo() end + +--- @param callable Callable +function EditorPlugin:add_undo_redo_inspector_hook_callback(callable) end + +--- @param callable Callable +function EditorPlugin:remove_undo_redo_inspector_hook_callback(callable) end + +function EditorPlugin:queue_save_layout() end + +--- @param parser EditorTranslationParserPlugin +function EditorPlugin:add_translation_parser_plugin(parser) end + +--- @param parser EditorTranslationParserPlugin +function EditorPlugin:remove_translation_parser_plugin(parser) end + +--- @param importer EditorImportPlugin +--- @param first_priority bool? Default: false +function EditorPlugin:add_import_plugin(importer, first_priority) end + +--- @param importer EditorImportPlugin +function EditorPlugin:remove_import_plugin(importer) end + +--- @param scene_format_importer EditorSceneFormatImporter +--- @param first_priority bool? Default: false +function EditorPlugin:add_scene_format_importer_plugin(scene_format_importer, first_priority) end + +--- @param scene_format_importer EditorSceneFormatImporter +function EditorPlugin:remove_scene_format_importer_plugin(scene_format_importer) end + +--- @param scene_import_plugin EditorScenePostImportPlugin +--- @param first_priority bool? Default: false +function EditorPlugin:add_scene_post_import_plugin(scene_import_plugin, first_priority) end + +--- @param scene_import_plugin EditorScenePostImportPlugin +function EditorPlugin:remove_scene_post_import_plugin(scene_import_plugin) end + +--- @param plugin EditorExportPlugin +function EditorPlugin:add_export_plugin(plugin) end + +--- @param plugin EditorExportPlugin +function EditorPlugin:remove_export_plugin(plugin) end + +--- @param platform EditorExportPlatform +function EditorPlugin:add_export_platform(platform) end + +--- @param platform EditorExportPlatform +function EditorPlugin:remove_export_platform(platform) end + +--- @param plugin EditorNode3DGizmoPlugin +function EditorPlugin:add_node_3d_gizmo_plugin(plugin) end + +--- @param plugin EditorNode3DGizmoPlugin +function EditorPlugin:remove_node_3d_gizmo_plugin(plugin) end + +--- @param plugin EditorInspectorPlugin +function EditorPlugin:add_inspector_plugin(plugin) end + +--- @param plugin EditorInspectorPlugin +function EditorPlugin:remove_inspector_plugin(plugin) end + +--- @param plugin EditorResourceConversionPlugin +function EditorPlugin:add_resource_conversion_plugin(plugin) end + +--- @param plugin EditorResourceConversionPlugin +function EditorPlugin:remove_resource_conversion_plugin(plugin) end + +function EditorPlugin:set_input_event_forwarding_always_enabled() end + +function EditorPlugin:set_force_draw_over_forwarding_enabled() end + +--- @param slot EditorContextMenuPlugin.ContextMenuSlot +--- @param plugin EditorContextMenuPlugin +function EditorPlugin:add_context_menu_plugin(slot, plugin) end + +--- @param plugin EditorContextMenuPlugin +function EditorPlugin:remove_context_menu_plugin(plugin) end + +--- @return EditorInterface +function EditorPlugin:get_editor_interface() end + +--- @return ScriptCreateDialog +function EditorPlugin:get_script_create_dialog() end + +--- @param script EditorDebuggerPlugin +function EditorPlugin:add_debugger_plugin(script) end + +--- @param script EditorDebuggerPlugin +function EditorPlugin:remove_debugger_plugin(script) end + +--- @return String +function EditorPlugin:get_plugin_version() end + + +----------------------------------------------------------- +-- EditorProperty +----------------------------------------------------------- + +--- @class EditorProperty: Container, { [string]: any } +--- @field label String +--- @field read_only bool +--- @field draw_label bool +--- @field draw_background bool +--- @field checkable bool +--- @field checked bool +--- @field draw_warning bool +--- @field keying bool +--- @field deletable bool +--- @field selectable bool +--- @field use_folding bool +--- @field name_split_ratio float +EditorProperty = {} + +--- @return EditorProperty +function EditorProperty:new() end + +EditorProperty.property_changed = Signal() +EditorProperty.multiple_properties_changed = Signal() +EditorProperty.property_keyed = Signal() +EditorProperty.property_deleted = Signal() +EditorProperty.property_keyed_with_value = Signal() +EditorProperty.property_checked = Signal() +EditorProperty.property_overridden = Signal() +EditorProperty.property_favorited = Signal() +EditorProperty.property_pinned = Signal() +EditorProperty.property_can_revert_changed = Signal() +EditorProperty.resource_selected = Signal() +EditorProperty.object_id_selected = Signal() +EditorProperty.selected = Signal() + +function EditorProperty:_update_property() end + +--- @param read_only bool +function EditorProperty:_set_read_only(read_only) end + +--- @param text String +function EditorProperty:set_label(text) end + +--- @return String +function EditorProperty:get_label() end + +--- @param read_only bool +function EditorProperty:set_read_only(read_only) end + +--- @return bool +function EditorProperty:is_read_only() end + +--- @param draw_label bool +function EditorProperty:set_draw_label(draw_label) end + +--- @return bool +function EditorProperty:is_draw_label() end + +--- @param draw_background bool +function EditorProperty:set_draw_background(draw_background) end + +--- @return bool +function EditorProperty:is_draw_background() end + +--- @param checkable bool +function EditorProperty:set_checkable(checkable) end + +--- @return bool +function EditorProperty:is_checkable() end + +--- @param checked bool +function EditorProperty:set_checked(checked) end + +--- @return bool +function EditorProperty:is_checked() end + +--- @param draw_warning bool +function EditorProperty:set_draw_warning(draw_warning) end + +--- @return bool +function EditorProperty:is_draw_warning() end + +--- @param keying bool +function EditorProperty:set_keying(keying) end + +--- @return bool +function EditorProperty:is_keying() end + +--- @param deletable bool +function EditorProperty:set_deletable(deletable) end + +--- @return bool +function EditorProperty:is_deletable() end + +--- @return StringName +function EditorProperty:get_edited_property() end + +--- @return Object +function EditorProperty:get_edited_object() end + +function EditorProperty:update_property() end + +--- @param control Control +function EditorProperty:add_focusable(control) end + +--- @param editor Control +function EditorProperty:set_bottom_editor(editor) end + +--- @param selectable bool +function EditorProperty:set_selectable(selectable) end + +--- @return bool +function EditorProperty:is_selectable() end + +--- @param use_folding bool +function EditorProperty:set_use_folding(use_folding) end + +--- @return bool +function EditorProperty:is_using_folding() end + +--- @param ratio float +function EditorProperty:set_name_split_ratio(ratio) end + +--- @return float +function EditorProperty:get_name_split_ratio() end + +function EditorProperty:deselect() end + +--- @return bool +function EditorProperty:is_selected() end + +--- @param focusable int? Default: -1 +function EditorProperty:select(focusable) end + +--- @param object Object +--- @param property StringName +function EditorProperty:set_object_and_property(object, property) end + +--- @param control Control +function EditorProperty:set_label_reference(control) end + +--- @param property StringName +--- @param value any +--- @param field StringName? Default: &"" +--- @param changing bool? Default: false +function EditorProperty:emit_changed(property, value, field, changing) end + + +----------------------------------------------------------- +-- EditorResourceConversionPlugin +----------------------------------------------------------- + +--- @class EditorResourceConversionPlugin: RefCounted, { [string]: any } +EditorResourceConversionPlugin = {} + +--- @return EditorResourceConversionPlugin +function EditorResourceConversionPlugin:new() end + +--- @return String +function EditorResourceConversionPlugin:_converts_to() end + +--- @param resource Resource +--- @return bool +function EditorResourceConversionPlugin:_handles(resource) end + +--- @param resource Resource +--- @return Resource +function EditorResourceConversionPlugin:_convert(resource) end + + +----------------------------------------------------------- +-- EditorResourcePicker +----------------------------------------------------------- + +--- @class EditorResourcePicker: HBoxContainer, { [string]: any } +--- @field base_type String +--- @field edited_resource Resource +--- @field editable bool +--- @field toggle_mode bool +EditorResourcePicker = {} + +--- @return EditorResourcePicker +function EditorResourcePicker:new() end + +EditorResourcePicker.resource_selected = Signal() +EditorResourcePicker.resource_changed = Signal() + +--- @param menu_node Object +function EditorResourcePicker:_set_create_options(menu_node) end + +--- @param id int +--- @return bool +function EditorResourcePicker:_handle_menu_selected(id) end + +--- @param base_type String +function EditorResourcePicker:set_base_type(base_type) end + +--- @return String +function EditorResourcePicker:get_base_type() end + +--- @return PackedStringArray +function EditorResourcePicker:get_allowed_types() end + +--- @param resource Resource +function EditorResourcePicker:set_edited_resource(resource) end + +--- @return Resource +function EditorResourcePicker:get_edited_resource() end + +--- @param enable bool +function EditorResourcePicker:set_toggle_mode(enable) end + +--- @return bool +function EditorResourcePicker:is_toggle_mode() end + +--- @param pressed bool +function EditorResourcePicker:set_toggle_pressed(pressed) end + +--- @param enable bool +function EditorResourcePicker:set_editable(enable) end + +--- @return bool +function EditorResourcePicker:is_editable() end + + +----------------------------------------------------------- +-- EditorResourcePreview +----------------------------------------------------------- + +--- @class EditorResourcePreview: Node, { [string]: any } +EditorResourcePreview = {} + +EditorResourcePreview.preview_invalidated = Signal() + +--- @param path String +--- @param receiver Object +--- @param receiver_func StringName +--- @param userdata any +function EditorResourcePreview:queue_resource_preview(path, receiver, receiver_func, userdata) end + +--- @param resource Resource +--- @param receiver Object +--- @param receiver_func StringName +--- @param userdata any +function EditorResourcePreview:queue_edited_resource_preview(resource, receiver, receiver_func, userdata) end + +--- @param generator EditorResourcePreviewGenerator +function EditorResourcePreview:add_preview_generator(generator) end + +--- @param generator EditorResourcePreviewGenerator +function EditorResourcePreview:remove_preview_generator(generator) end + +--- @param path String +function EditorResourcePreview:check_for_invalidation(path) end + + +----------------------------------------------------------- +-- EditorResourcePreviewGenerator +----------------------------------------------------------- + +--- @class EditorResourcePreviewGenerator: RefCounted, { [string]: any } +EditorResourcePreviewGenerator = {} + +--- @return EditorResourcePreviewGenerator +function EditorResourcePreviewGenerator:new() end + +--- @param type String +--- @return bool +function EditorResourcePreviewGenerator:_handles(type) end + +--- @param resource Resource +--- @param size Vector2i +--- @param metadata Dictionary +--- @return Texture2D +function EditorResourcePreviewGenerator:_generate(resource, size, metadata) end + +--- @param path String +--- @param size Vector2i +--- @param metadata Dictionary +--- @return Texture2D +function EditorResourcePreviewGenerator:_generate_from_path(path, size, metadata) end + +--- @return bool +function EditorResourcePreviewGenerator:_generate_small_preview_automatically() end + +--- @return bool +function EditorResourcePreviewGenerator:_can_generate_small_preview() end + + +----------------------------------------------------------- +-- EditorResourceTooltipPlugin +----------------------------------------------------------- + +--- @class EditorResourceTooltipPlugin: RefCounted, { [string]: any } +EditorResourceTooltipPlugin = {} + +--- @return EditorResourceTooltipPlugin +function EditorResourceTooltipPlugin:new() end + +--- @param type String +--- @return bool +function EditorResourceTooltipPlugin:_handles(type) end + +--- @param path String +--- @param metadata Dictionary +--- @param base Control +--- @return Control +function EditorResourceTooltipPlugin:_make_tooltip_for_path(path, metadata, base) end + +--- @param path String +--- @param control TextureRect +function EditorResourceTooltipPlugin:request_thumbnail(path, control) end + + +----------------------------------------------------------- +-- EditorSceneFormatImporter +----------------------------------------------------------- + +--- @class EditorSceneFormatImporter: RefCounted, { [string]: any } +EditorSceneFormatImporter = {} + +--- @return EditorSceneFormatImporter +function EditorSceneFormatImporter:new() end + +EditorSceneFormatImporter.IMPORT_SCENE = 1 +EditorSceneFormatImporter.IMPORT_ANIMATION = 2 +EditorSceneFormatImporter.IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 4 +EditorSceneFormatImporter.IMPORT_GENERATE_TANGENT_ARRAYS = 8 +EditorSceneFormatImporter.IMPORT_USE_NAMED_SKIN_BINDS = 16 +EditorSceneFormatImporter.IMPORT_DISCARD_MESHES_AND_MATERIALS = 32 +EditorSceneFormatImporter.IMPORT_FORCE_DISABLE_MESH_COMPRESSION = 64 + +--- @return PackedStringArray +function EditorSceneFormatImporter:_get_extensions() end + +--- @param path String +--- @param flags int +--- @param options Dictionary +--- @return Object +function EditorSceneFormatImporter:_import_scene(path, flags, options) end + +--- @param path String +function EditorSceneFormatImporter:_get_import_options(path) end + +--- @param path String +--- @param for_animation bool +--- @param option String +--- @return any +function EditorSceneFormatImporter:_get_option_visibility(path, for_animation, option) end + +--- @param name String +--- @param value any +function EditorSceneFormatImporter:add_import_option(name, value) end + +--- @param type Variant.Type +--- @param name String +--- @param default_value any +--- @param hint PropertyHint? Default: 0 +--- @param hint_string String? Default: "" +--- @param usage_flags int? Default: 6 +function EditorSceneFormatImporter:add_import_option_advanced(type, name, default_value, hint, hint_string, usage_flags) end + + +----------------------------------------------------------- +-- EditorSceneFormatImporterBlend +----------------------------------------------------------- + +--- @class EditorSceneFormatImporterBlend: EditorSceneFormatImporter, { [string]: any } +EditorSceneFormatImporterBlend = {} + +--- @return EditorSceneFormatImporterBlend +function EditorSceneFormatImporterBlend:new() end + + +----------------------------------------------------------- +-- EditorSceneFormatImporterFBX2GLTF +----------------------------------------------------------- + +--- @class EditorSceneFormatImporterFBX2GLTF: EditorSceneFormatImporter, { [string]: any } +EditorSceneFormatImporterFBX2GLTF = {} + +--- @return EditorSceneFormatImporterFBX2GLTF +function EditorSceneFormatImporterFBX2GLTF:new() end + + +----------------------------------------------------------- +-- EditorSceneFormatImporterGLTF +----------------------------------------------------------- + +--- @class EditorSceneFormatImporterGLTF: EditorSceneFormatImporter, { [string]: any } +EditorSceneFormatImporterGLTF = {} + +--- @return EditorSceneFormatImporterGLTF +function EditorSceneFormatImporterGLTF:new() end + + +----------------------------------------------------------- +-- EditorSceneFormatImporterUFBX +----------------------------------------------------------- + +--- @class EditorSceneFormatImporterUFBX: EditorSceneFormatImporter, { [string]: any } +EditorSceneFormatImporterUFBX = {} + +--- @return EditorSceneFormatImporterUFBX +function EditorSceneFormatImporterUFBX:new() end + + +----------------------------------------------------------- +-- EditorScenePostImport +----------------------------------------------------------- + +--- @class EditorScenePostImport: RefCounted, { [string]: any } +EditorScenePostImport = {} + +--- @return EditorScenePostImport +function EditorScenePostImport:new() end + +--- @param scene Node +--- @return Object +function EditorScenePostImport:_post_import(scene) end + +--- @return String +function EditorScenePostImport:get_source_file() end + + +----------------------------------------------------------- +-- EditorScenePostImportPlugin +----------------------------------------------------------- + +--- @class EditorScenePostImportPlugin: RefCounted, { [string]: any } +EditorScenePostImportPlugin = {} + +--- @return EditorScenePostImportPlugin +function EditorScenePostImportPlugin:new() end + +--- @alias EditorScenePostImportPlugin.InternalImportCategory `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_NODE` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MESH` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MATERIAL` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_ANIMATION` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE` | `EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MAX` +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_NODE = 0 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE = 1 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MESH = 2 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MATERIAL = 3 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_ANIMATION = 4 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE = 5 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE = 6 +EditorScenePostImportPlugin.INTERNAL_IMPORT_CATEGORY_MAX = 7 + +--- @param category int +function EditorScenePostImportPlugin:_get_internal_import_options(category) end + +--- @param category int +--- @param for_animation bool +--- @param option String +--- @return any +function EditorScenePostImportPlugin:_get_internal_option_visibility(category, for_animation, option) end + +--- @param category int +--- @param option String +--- @return any +function EditorScenePostImportPlugin:_get_internal_option_update_view_required(category, option) end + +--- @param category int +--- @param base_node Node +--- @param node Node +--- @param resource Resource +function EditorScenePostImportPlugin:_internal_process(category, base_node, node, resource) end + +--- @param path String +function EditorScenePostImportPlugin:_get_import_options(path) end + +--- @param path String +--- @param for_animation bool +--- @param option String +--- @return any +function EditorScenePostImportPlugin:_get_option_visibility(path, for_animation, option) end + +--- @param scene Node +function EditorScenePostImportPlugin:_pre_process(scene) end + +--- @param scene Node +function EditorScenePostImportPlugin:_post_process(scene) end + +--- @param name StringName +--- @return any +function EditorScenePostImportPlugin:get_option_value(name) end + +--- @param name String +--- @param value any +function EditorScenePostImportPlugin:add_import_option(name, value) end + +--- @param type Variant.Type +--- @param name String +--- @param default_value any +--- @param hint PropertyHint? Default: 0 +--- @param hint_string String? Default: "" +--- @param usage_flags int? Default: 6 +function EditorScenePostImportPlugin:add_import_option_advanced(type, name, default_value, hint, hint_string, usage_flags) end + + +----------------------------------------------------------- +-- EditorScript +----------------------------------------------------------- + +--- @class EditorScript: RefCounted, { [string]: any } +EditorScript = {} + +--- @return EditorScript +function EditorScript:new() end + +function EditorScript:_run() end + +--- @param node Node +function EditorScript:add_root_node(node) end + +--- @return Node +function EditorScript:get_scene() end + +--- @return EditorInterface +function EditorScript:get_editor_interface() end + + +----------------------------------------------------------- +-- EditorScriptPicker +----------------------------------------------------------- + +--- @class EditorScriptPicker: EditorResourcePicker, { [string]: any } +--- @field script_owner Node +EditorScriptPicker = {} + +--- @return EditorScriptPicker +function EditorScriptPicker:new() end + +--- @param owner_node Node +function EditorScriptPicker:set_script_owner(owner_node) end + +--- @return Node +function EditorScriptPicker:get_script_owner() end + + +----------------------------------------------------------- +-- EditorSelection +----------------------------------------------------------- + +--- @class EditorSelection: Object, { [string]: any } +EditorSelection = {} + +--- @return EditorSelection +function EditorSelection:new() end + +EditorSelection.selection_changed = Signal() + +function EditorSelection:clear() end + +--- @param node Node +function EditorSelection:add_node(node) end + +--- @param node Node +function EditorSelection:remove_node(node) end + +--- @return Array[Node] +function EditorSelection:get_selected_nodes() end + +--- @return Array[Node] +function EditorSelection:get_top_selected_nodes() end + +--- @return Array[Node] +function EditorSelection:get_transformable_selected_nodes() end + + +----------------------------------------------------------- +-- EditorSettings +----------------------------------------------------------- + +--- @class EditorSettings: Resource, { [string]: any } +EditorSettings = {} + +--- @return EditorSettings +function EditorSettings:new() end + +EditorSettings.NOTIFICATION_EDITOR_SETTINGS_CHANGED = 10000 + +EditorSettings.settings_changed = Signal() + +--- @param name String +--- @return bool +function EditorSettings:has_setting(name) end + +--- @param name String +--- @param value any +function EditorSettings:set_setting(name, value) end + +--- @param name String +--- @return any +function EditorSettings:get_setting(name) end + +--- @param property String +function EditorSettings:erase(property) end + +--- @param name StringName +--- @param value any +--- @param update_current bool +function EditorSettings:set_initial_value(name, value, update_current) end + +--- @param info Dictionary +function EditorSettings:add_property_info(info) end + +--- @param section String +--- @param key String +--- @param data any +function EditorSettings:set_project_metadata(section, key, data) end + +--- @param section String +--- @param key String +--- @param default any? Default: null +--- @return any +function EditorSettings:get_project_metadata(section, key, default) end + +--- @param dirs PackedStringArray +function EditorSettings:set_favorites(dirs) end + +--- @return PackedStringArray +function EditorSettings:get_favorites() end + +--- @param dirs PackedStringArray +function EditorSettings:set_recent_dirs(dirs) end + +--- @return PackedStringArray +function EditorSettings:get_recent_dirs() end + +--- @param name String +--- @param actions_list Array[InputEvent] +function EditorSettings:set_builtin_action_override(name, actions_list) end + +--- @param setting_prefix String +--- @return bool +function EditorSettings:check_changed_settings_in_group(setting_prefix) end + +--- @return PackedStringArray +function EditorSettings:get_changed_settings() end + +--- @param setting String +function EditorSettings:mark_setting_changed(setting) end + + +----------------------------------------------------------- +-- EditorSpinSlider +----------------------------------------------------------- + +--- @class EditorSpinSlider: Range, { [string]: any } +--- @field label String +--- @field suffix String +--- @field read_only bool +--- @field flat bool +--- @field hide_slider bool +--- @field editing_integer bool +EditorSpinSlider = {} + +--- @return EditorSpinSlider +function EditorSpinSlider:new() end + +EditorSpinSlider.grabbed = Signal() +EditorSpinSlider.ungrabbed = Signal() +EditorSpinSlider.updown_pressed = Signal() +EditorSpinSlider.value_focus_entered = Signal() +EditorSpinSlider.value_focus_exited = Signal() + +--- @param label String +function EditorSpinSlider:set_label(label) end + +--- @return String +function EditorSpinSlider:get_label() end + +--- @param suffix String +function EditorSpinSlider:set_suffix(suffix) end + +--- @return String +function EditorSpinSlider:get_suffix() end + +--- @param read_only bool +function EditorSpinSlider:set_read_only(read_only) end + +--- @return bool +function EditorSpinSlider:is_read_only() end + +--- @param flat bool +function EditorSpinSlider:set_flat(flat) end + +--- @return bool +function EditorSpinSlider:is_flat() end + +--- @param hide_slider bool +function EditorSpinSlider:set_hide_slider(hide_slider) end + +--- @return bool +function EditorSpinSlider:is_hiding_slider() end + +--- @param editing_integer bool +function EditorSpinSlider:set_editing_integer(editing_integer) end + +--- @return bool +function EditorSpinSlider:is_editing_integer() end + + +----------------------------------------------------------- +-- EditorSyntaxHighlighter +----------------------------------------------------------- + +--- @class EditorSyntaxHighlighter: SyntaxHighlighter, { [string]: any } +EditorSyntaxHighlighter = {} + +--- @return EditorSyntaxHighlighter +function EditorSyntaxHighlighter:new() end + +--- @return String +function EditorSyntaxHighlighter:_get_name() end + +--- @return PackedStringArray +function EditorSyntaxHighlighter:_get_supported_languages() end + +--- @return EditorSyntaxHighlighter +function EditorSyntaxHighlighter:_create() end + + +----------------------------------------------------------- +-- EditorToaster +----------------------------------------------------------- + +--- @class EditorToaster: HBoxContainer, { [string]: any } +EditorToaster = {} + +--- @alias EditorToaster.Severity `EditorToaster.SEVERITY_INFO` | `EditorToaster.SEVERITY_WARNING` | `EditorToaster.SEVERITY_ERROR` +EditorToaster.SEVERITY_INFO = 0 +EditorToaster.SEVERITY_WARNING = 1 +EditorToaster.SEVERITY_ERROR = 2 + +--- @param message String +--- @param severity EditorToaster.Severity? Default: 0 +--- @param tooltip String? Default: "" +function EditorToaster:push_toast(message, severity, tooltip) end + + +----------------------------------------------------------- +-- EditorTranslationParserPlugin +----------------------------------------------------------- + +--- @class EditorTranslationParserPlugin: RefCounted, { [string]: any } +EditorTranslationParserPlugin = {} + +--- @return EditorTranslationParserPlugin +function EditorTranslationParserPlugin:new() end + +--- @param path String +--- @return Array[PackedStringArray] +function EditorTranslationParserPlugin:_parse_file(path) end + +--- @return PackedStringArray +function EditorTranslationParserPlugin:_get_recognized_extensions() end + + +----------------------------------------------------------- +-- EditorUndoRedoManager +----------------------------------------------------------- + +--- @class EditorUndoRedoManager: Object, { [string]: any } +EditorUndoRedoManager = {} + +--- @alias EditorUndoRedoManager.SpecialHistory `EditorUndoRedoManager.GLOBAL_HISTORY` | `EditorUndoRedoManager.REMOTE_HISTORY` | `EditorUndoRedoManager.INVALID_HISTORY` +EditorUndoRedoManager.GLOBAL_HISTORY = 0 +EditorUndoRedoManager.REMOTE_HISTORY = -9 +EditorUndoRedoManager.INVALID_HISTORY = -99 + +EditorUndoRedoManager.history_changed = Signal() +EditorUndoRedoManager.version_changed = Signal() + +--- @param name String +--- @param merge_mode UndoRedo.MergeMode? Default: 0 +--- @param custom_context Object? Default: null +--- @param backward_undo_ops bool? Default: false +--- @param mark_unsaved bool? Default: true +function EditorUndoRedoManager:create_action(name, merge_mode, custom_context, backward_undo_ops, mark_unsaved) end + +--- @param execute bool? Default: true +function EditorUndoRedoManager:commit_action(execute) end + +--- @return bool +function EditorUndoRedoManager:is_committing_action() end + +function EditorUndoRedoManager:force_fixed_history() end + +--- @param object Object +--- @param method StringName +function EditorUndoRedoManager:add_do_method(object, method, ...) end + +--- @param object Object +--- @param method StringName +function EditorUndoRedoManager:add_undo_method(object, method, ...) end + +--- @param object Object +--- @param property StringName +--- @param value any +function EditorUndoRedoManager:add_do_property(object, property, value) end + +--- @param object Object +--- @param property StringName +--- @param value any +function EditorUndoRedoManager:add_undo_property(object, property, value) end + +--- @param object Object +function EditorUndoRedoManager:add_do_reference(object) end + +--- @param object Object +function EditorUndoRedoManager:add_undo_reference(object) end + +--- @param object Object +--- @return int +function EditorUndoRedoManager:get_object_history_id(object) end + +--- @param id int +--- @return UndoRedo +function EditorUndoRedoManager:get_history_undo_redo(id) end + +--- @param id int? Default: -99 +--- @param increase_version bool? Default: true +function EditorUndoRedoManager:clear_history(id, increase_version) end + + +----------------------------------------------------------- +-- EditorVCSInterface +----------------------------------------------------------- + +--- @class EditorVCSInterface: Object, { [string]: any } +EditorVCSInterface = {} + +--- @return EditorVCSInterface +function EditorVCSInterface:new() end + +--- @alias EditorVCSInterface.ChangeType `EditorVCSInterface.CHANGE_TYPE_NEW` | `EditorVCSInterface.CHANGE_TYPE_MODIFIED` | `EditorVCSInterface.CHANGE_TYPE_RENAMED` | `EditorVCSInterface.CHANGE_TYPE_DELETED` | `EditorVCSInterface.CHANGE_TYPE_TYPECHANGE` | `EditorVCSInterface.CHANGE_TYPE_UNMERGED` +EditorVCSInterface.CHANGE_TYPE_NEW = 0 +EditorVCSInterface.CHANGE_TYPE_MODIFIED = 1 +EditorVCSInterface.CHANGE_TYPE_RENAMED = 2 +EditorVCSInterface.CHANGE_TYPE_DELETED = 3 +EditorVCSInterface.CHANGE_TYPE_TYPECHANGE = 4 +EditorVCSInterface.CHANGE_TYPE_UNMERGED = 5 + +--- @alias EditorVCSInterface.TreeArea `EditorVCSInterface.TREE_AREA_COMMIT` | `EditorVCSInterface.TREE_AREA_STAGED` | `EditorVCSInterface.TREE_AREA_UNSTAGED` +EditorVCSInterface.TREE_AREA_COMMIT = 0 +EditorVCSInterface.TREE_AREA_STAGED = 1 +EditorVCSInterface.TREE_AREA_UNSTAGED = 2 + +--- @param project_path String +--- @return bool +function EditorVCSInterface:_initialize(project_path) end + +--- @param username String +--- @param password String +--- @param ssh_public_key_path String +--- @param ssh_private_key_path String +--- @param ssh_passphrase String +function EditorVCSInterface:_set_credentials(username, password, ssh_public_key_path, ssh_private_key_path, ssh_passphrase) end + +--- @return Array[Dictionary] +function EditorVCSInterface:_get_modified_files_data() end + +--- @param file_path String +function EditorVCSInterface:_stage_file(file_path) end + +--- @param file_path String +function EditorVCSInterface:_unstage_file(file_path) end + +--- @param file_path String +function EditorVCSInterface:_discard_file(file_path) end + +--- @param msg String +function EditorVCSInterface:_commit(msg) end + +--- @param identifier String +--- @param area int +--- @return Array[Dictionary] +function EditorVCSInterface:_get_diff(identifier, area) end + +--- @return bool +function EditorVCSInterface:_shut_down() end + +--- @return String +function EditorVCSInterface:_get_vcs_name() end + +--- @param max_commits int +--- @return Array[Dictionary] +function EditorVCSInterface:_get_previous_commits(max_commits) end + +--- @return Array[String] +function EditorVCSInterface:_get_branch_list() end + +--- @return Array[String] +function EditorVCSInterface:_get_remotes() end + +--- @param branch_name String +function EditorVCSInterface:_create_branch(branch_name) end + +--- @param branch_name String +function EditorVCSInterface:_remove_branch(branch_name) end + +--- @param remote_name String +--- @param remote_url String +function EditorVCSInterface:_create_remote(remote_name, remote_url) end + +--- @param remote_name String +function EditorVCSInterface:_remove_remote(remote_name) end + +--- @return String +function EditorVCSInterface:_get_current_branch_name() end + +--- @param branch_name String +--- @return bool +function EditorVCSInterface:_checkout_branch(branch_name) end + +--- @param remote String +function EditorVCSInterface:_pull(remote) end + +--- @param remote String +--- @param force bool +function EditorVCSInterface:_push(remote, force) end + +--- @param remote String +function EditorVCSInterface:_fetch(remote) end + +--- @param file_path String +--- @param text String +--- @return Array[Dictionary] +function EditorVCSInterface:_get_line_diff(file_path, text) end + +--- @param new_line_no int +--- @param old_line_no int +--- @param content String +--- @param status String +--- @return Dictionary +function EditorVCSInterface:create_diff_line(new_line_no, old_line_no, content, status) end + +--- @param old_start int +--- @param new_start int +--- @param old_lines int +--- @param new_lines int +--- @return Dictionary +function EditorVCSInterface:create_diff_hunk(old_start, new_start, old_lines, new_lines) end + +--- @param new_file String +--- @param old_file String +--- @return Dictionary +function EditorVCSInterface:create_diff_file(new_file, old_file) end + +--- @param msg String +--- @param author String +--- @param id String +--- @param unix_timestamp int +--- @param offset_minutes int +--- @return Dictionary +function EditorVCSInterface:create_commit(msg, author, id, unix_timestamp, offset_minutes) end + +--- @param file_path String +--- @param change_type EditorVCSInterface.ChangeType +--- @param area EditorVCSInterface.TreeArea +--- @return Dictionary +function EditorVCSInterface:create_status_file(file_path, change_type, area) end + +--- @param diff_file Dictionary +--- @param diff_hunks Array[Dictionary] +--- @return Dictionary +function EditorVCSInterface:add_diff_hunks_into_diff_file(diff_file, diff_hunks) end + +--- @param diff_hunk Dictionary +--- @param line_diffs Array[Dictionary] +--- @return Dictionary +function EditorVCSInterface:add_line_diffs_into_diff_hunk(diff_hunk, line_diffs) end + +--- @param msg String +function EditorVCSInterface:popup_error(msg) end + + +----------------------------------------------------------- +-- EncodedObjectAsID +----------------------------------------------------------- + +--- @class EncodedObjectAsID: RefCounted, { [string]: any } +--- @field object_id int +EncodedObjectAsID = {} + +--- @return EncodedObjectAsID +function EncodedObjectAsID:new() end + +--- @param id int +function EncodedObjectAsID:set_object_id(id) end + +--- @return int +function EncodedObjectAsID:get_object_id() end + + +----------------------------------------------------------- +-- Engine +----------------------------------------------------------- + +--- @class Engine: Object, { [string]: any } +--- @field print_error_messages bool +--- @field print_to_stdout bool +--- @field physics_ticks_per_second int +--- @field max_physics_steps_per_frame int +--- @field max_fps int +--- @field time_scale float +--- @field physics_jitter_fix float +Engine = {} + +--- @param physics_ticks_per_second int +function Engine:set_physics_ticks_per_second(physics_ticks_per_second) end + +--- @return int +function Engine:get_physics_ticks_per_second() end + +--- @param max_physics_steps int +function Engine:set_max_physics_steps_per_frame(max_physics_steps) end + +--- @return int +function Engine:get_max_physics_steps_per_frame() end + +--- @param physics_jitter_fix float +function Engine:set_physics_jitter_fix(physics_jitter_fix) end + +--- @return float +function Engine:get_physics_jitter_fix() end + +--- @return float +function Engine:get_physics_interpolation_fraction() end + +--- @param max_fps int +function Engine:set_max_fps(max_fps) end + +--- @return int +function Engine:get_max_fps() end + +--- @param time_scale float +function Engine:set_time_scale(time_scale) end + +--- @return float +function Engine:get_time_scale() end + +--- @return int +function Engine:get_frames_drawn() end + +--- @return float +function Engine:get_frames_per_second() end + +--- @return int +function Engine:get_physics_frames() end + +--- @return int +function Engine:get_process_frames() end + +--- @return MainLoop +function Engine:get_main_loop() end + +--- @return Dictionary +function Engine:get_version_info() end + +--- @return Dictionary +function Engine:get_author_info() end + +--- @return Array[Dictionary] +function Engine:get_copyright_info() end + +--- @return Dictionary +function Engine:get_donor_info() end + +--- @return Dictionary +function Engine:get_license_info() end + +--- @return String +function Engine:get_license_text() end + +--- @return String +function Engine:get_architecture_name() end + +--- @return bool +function Engine:is_in_physics_frame() end + +--- @param name StringName +--- @return bool +function Engine:has_singleton(name) end + +--- @param name StringName +--- @return Object +function Engine:get_singleton(name) end + +--- @param name StringName +--- @param instance Object +function Engine:register_singleton(name, instance) end + +--- @param name StringName +function Engine:unregister_singleton(name) end + +--- @return PackedStringArray +function Engine:get_singleton_list() end + +--- @param language ScriptLanguage +--- @return Error +function Engine:register_script_language(language) end + +--- @param language ScriptLanguage +--- @return Error +function Engine:unregister_script_language(language) end + +--- @return int +function Engine:get_script_language_count() end + +--- @param index int +--- @return ScriptLanguage +function Engine:get_script_language(index) end + +--- @param include_variables bool? Default: false +--- @return Array[ScriptBacktrace] +function Engine:capture_script_backtraces(include_variables) end + +--- @return bool +function Engine:is_editor_hint() end + +--- @return bool +function Engine:is_embedded_in_editor() end + +--- @return String +function Engine:get_write_movie_path() end + +--- @param enabled bool +function Engine:set_print_to_stdout(enabled) end + +--- @return bool +function Engine:is_printing_to_stdout() end + +--- @param enabled bool +function Engine:set_print_error_messages(enabled) end + +--- @return bool +function Engine:is_printing_error_messages() end + + +----------------------------------------------------------- +-- EngineDebugger +----------------------------------------------------------- + +--- @class EngineDebugger: Object, { [string]: any } +EngineDebugger = {} + +--- @return bool +function EngineDebugger:is_active() end + +--- @param name StringName +--- @param profiler EngineProfiler +function EngineDebugger:register_profiler(name, profiler) end + +--- @param name StringName +function EngineDebugger:unregister_profiler(name) end + +--- @param name StringName +--- @return bool +function EngineDebugger:is_profiling(name) end + +--- @param name StringName +--- @return bool +function EngineDebugger:has_profiler(name) end + +--- @param name StringName +--- @param data Array +function EngineDebugger:profiler_add_frame_data(name, data) end + +--- @param name StringName +--- @param enable bool +--- @param arguments Array? Default: [] +function EngineDebugger:profiler_enable(name, enable, arguments) end + +--- @param name StringName +--- @param callable Callable +function EngineDebugger:register_message_capture(name, callable) end + +--- @param name StringName +function EngineDebugger:unregister_message_capture(name) end + +--- @param name StringName +--- @return bool +function EngineDebugger:has_capture(name) end + +function EngineDebugger:line_poll() end + +--- @param message String +--- @param data Array +function EngineDebugger:send_message(message, data) end + +--- @param can_continue bool? Default: true +--- @param is_error_breakpoint bool? Default: false +function EngineDebugger:debug(can_continue, is_error_breakpoint) end + +--- @param language ScriptLanguage +--- @param can_continue bool? Default: true +--- @param is_error_breakpoint bool? Default: false +function EngineDebugger:script_debug(language, can_continue, is_error_breakpoint) end + +--- @param lines int +function EngineDebugger:set_lines_left(lines) end + +--- @return int +function EngineDebugger:get_lines_left() end + +--- @param depth int +function EngineDebugger:set_depth(depth) end + +--- @return int +function EngineDebugger:get_depth() end + +--- @param line int +--- @param source StringName +--- @return bool +function EngineDebugger:is_breakpoint(line, source) end + +--- @return bool +function EngineDebugger:is_skipping_breakpoints() end + +--- @param line int +--- @param source StringName +function EngineDebugger:insert_breakpoint(line, source) end + +--- @param line int +--- @param source StringName +function EngineDebugger:remove_breakpoint(line, source) end + +function EngineDebugger:clear_breakpoints() end + + +----------------------------------------------------------- +-- EngineProfiler +----------------------------------------------------------- + +--- @class EngineProfiler: RefCounted, { [string]: any } +EngineProfiler = {} + +--- @return EngineProfiler +function EngineProfiler:new() end + +--- @param enable bool +--- @param options Array +function EngineProfiler:_toggle(enable, options) end + +--- @param data Array +function EngineProfiler:_add_frame(data) end + +--- @param frame_time float +--- @param process_time float +--- @param physics_time float +--- @param physics_frame_time float +function EngineProfiler:_tick(frame_time, process_time, physics_time, physics_frame_time) end + + +----------------------------------------------------------- +-- Environment +----------------------------------------------------------- + +--- @class Environment: Resource, { [string]: any } +--- @field background_mode int +--- @field background_color Color +--- @field background_energy_multiplier float +--- @field background_intensity float +--- @field background_canvas_max_layer int +--- @field background_camera_feed_id int +--- @field sky Sky +--- @field sky_custom_fov float +--- @field sky_rotation Vector3 +--- @field ambient_light_source int +--- @field ambient_light_color Color +--- @field ambient_light_sky_contribution float +--- @field ambient_light_energy float +--- @field reflected_light_source int +--- @field tonemap_mode int +--- @field tonemap_exposure float +--- @field tonemap_white float +--- @field ssr_enabled bool +--- @field ssr_max_steps int +--- @field ssr_fade_in float +--- @field ssr_fade_out float +--- @field ssr_depth_tolerance float +--- @field ssao_enabled bool +--- @field ssao_radius float +--- @field ssao_intensity float +--- @field ssao_power float +--- @field ssao_detail float +--- @field ssao_horizon float +--- @field ssao_sharpness float +--- @field ssao_light_affect float +--- @field ssao_ao_channel_affect float +--- @field ssil_enabled bool +--- @field ssil_radius float +--- @field ssil_intensity float +--- @field ssil_sharpness float +--- @field ssil_normal_rejection float +--- @field sdfgi_enabled bool +--- @field sdfgi_use_occlusion bool +--- @field sdfgi_read_sky_light bool +--- @field sdfgi_bounce_feedback float +--- @field sdfgi_cascades int +--- @field sdfgi_min_cell_size float +--- @field sdfgi_cascade0_distance float +--- @field sdfgi_max_distance float +--- @field sdfgi_y_scale int +--- @field sdfgi_energy float +--- @field sdfgi_normal_bias float +--- @field sdfgi_probe_bias float +--- @field glow_enabled bool +--- @field glow_normalized bool +--- @field glow_intensity float +--- @field glow_strength float +--- @field glow_mix float +--- @field glow_bloom float +--- @field glow_blend_mode int +--- @field glow_hdr_threshold float +--- @field glow_hdr_scale float +--- @field glow_hdr_luminance_cap float +--- @field glow_map_strength float +--- @field glow_map Texture2D +--- @field fog_enabled bool +--- @field fog_mode int +--- @field fog_light_color Color +--- @field fog_light_energy float +--- @field fog_sun_scatter float +--- @field fog_density float +--- @field fog_aerial_perspective float +--- @field fog_sky_affect float +--- @field fog_height float +--- @field fog_height_density float +--- @field fog_depth_curve float +--- @field fog_depth_begin float +--- @field fog_depth_end float +--- @field volumetric_fog_enabled bool +--- @field volumetric_fog_density float +--- @field volumetric_fog_albedo Color +--- @field volumetric_fog_emission Color +--- @field volumetric_fog_emission_energy float +--- @field volumetric_fog_gi_inject float +--- @field volumetric_fog_anisotropy float +--- @field volumetric_fog_length float +--- @field volumetric_fog_detail_spread float +--- @field volumetric_fog_ambient_inject float +--- @field volumetric_fog_sky_affect float +--- @field volumetric_fog_temporal_reprojection_enabled bool +--- @field volumetric_fog_temporal_reprojection_amount float +--- @field adjustment_enabled bool +--- @field adjustment_brightness float +--- @field adjustment_contrast float +--- @field adjustment_saturation float +--- @field adjustment_color_correction Texture2D | Texture3D +Environment = {} + +--- @return Environment +function Environment:new() end + +--- @alias Environment.BGMode `Environment.BG_CLEAR_COLOR` | `Environment.BG_COLOR` | `Environment.BG_SKY` | `Environment.BG_CANVAS` | `Environment.BG_KEEP` | `Environment.BG_CAMERA_FEED` | `Environment.BG_MAX` +Environment.BG_CLEAR_COLOR = 0 +Environment.BG_COLOR = 1 +Environment.BG_SKY = 2 +Environment.BG_CANVAS = 3 +Environment.BG_KEEP = 4 +Environment.BG_CAMERA_FEED = 5 +Environment.BG_MAX = 6 + +--- @alias Environment.AmbientSource `Environment.AMBIENT_SOURCE_BG` | `Environment.AMBIENT_SOURCE_DISABLED` | `Environment.AMBIENT_SOURCE_COLOR` | `Environment.AMBIENT_SOURCE_SKY` +Environment.AMBIENT_SOURCE_BG = 0 +Environment.AMBIENT_SOURCE_DISABLED = 1 +Environment.AMBIENT_SOURCE_COLOR = 2 +Environment.AMBIENT_SOURCE_SKY = 3 + +--- @alias Environment.ReflectionSource `Environment.REFLECTION_SOURCE_BG` | `Environment.REFLECTION_SOURCE_DISABLED` | `Environment.REFLECTION_SOURCE_SKY` +Environment.REFLECTION_SOURCE_BG = 0 +Environment.REFLECTION_SOURCE_DISABLED = 1 +Environment.REFLECTION_SOURCE_SKY = 2 + +--- @alias Environment.ToneMapper `Environment.TONE_MAPPER_LINEAR` | `Environment.TONE_MAPPER_REINHARDT` | `Environment.TONE_MAPPER_FILMIC` | `Environment.TONE_MAPPER_ACES` | `Environment.TONE_MAPPER_AGX` +Environment.TONE_MAPPER_LINEAR = 0 +Environment.TONE_MAPPER_REINHARDT = 1 +Environment.TONE_MAPPER_FILMIC = 2 +Environment.TONE_MAPPER_ACES = 3 +Environment.TONE_MAPPER_AGX = 4 + +--- @alias Environment.GlowBlendMode `Environment.GLOW_BLEND_MODE_ADDITIVE` | `Environment.GLOW_BLEND_MODE_SCREEN` | `Environment.GLOW_BLEND_MODE_SOFTLIGHT` | `Environment.GLOW_BLEND_MODE_REPLACE` | `Environment.GLOW_BLEND_MODE_MIX` +Environment.GLOW_BLEND_MODE_ADDITIVE = 0 +Environment.GLOW_BLEND_MODE_SCREEN = 1 +Environment.GLOW_BLEND_MODE_SOFTLIGHT = 2 +Environment.GLOW_BLEND_MODE_REPLACE = 3 +Environment.GLOW_BLEND_MODE_MIX = 4 + +--- @alias Environment.FogMode `Environment.FOG_MODE_EXPONENTIAL` | `Environment.FOG_MODE_DEPTH` +Environment.FOG_MODE_EXPONENTIAL = 0 +Environment.FOG_MODE_DEPTH = 1 + +--- @alias Environment.SDFGIYScale `Environment.SDFGI_Y_SCALE_50_PERCENT` | `Environment.SDFGI_Y_SCALE_75_PERCENT` | `Environment.SDFGI_Y_SCALE_100_PERCENT` +Environment.SDFGI_Y_SCALE_50_PERCENT = 0 +Environment.SDFGI_Y_SCALE_75_PERCENT = 1 +Environment.SDFGI_Y_SCALE_100_PERCENT = 2 + +--- @param mode Environment.BGMode +function Environment:set_background(mode) end + +--- @return Environment.BGMode +function Environment:get_background() end + +--- @param sky Sky +function Environment:set_sky(sky) end + +--- @return Sky +function Environment:get_sky() end + +--- @param scale float +function Environment:set_sky_custom_fov(scale) end + +--- @return float +function Environment:get_sky_custom_fov() end + +--- @param euler_radians Vector3 +function Environment:set_sky_rotation(euler_radians) end + +--- @return Vector3 +function Environment:get_sky_rotation() end + +--- @param color Color +function Environment:set_bg_color(color) end + +--- @return Color +function Environment:get_bg_color() end + +--- @param energy float +function Environment:set_bg_energy_multiplier(energy) end + +--- @return float +function Environment:get_bg_energy_multiplier() end + +--- @param energy float +function Environment:set_bg_intensity(energy) end + +--- @return float +function Environment:get_bg_intensity() end + +--- @param layer int +function Environment:set_canvas_max_layer(layer) end + +--- @return int +function Environment:get_canvas_max_layer() end + +--- @param id int +function Environment:set_camera_feed_id(id) end + +--- @return int +function Environment:get_camera_feed_id() end + +--- @param color Color +function Environment:set_ambient_light_color(color) end + +--- @return Color +function Environment:get_ambient_light_color() end + +--- @param source Environment.AmbientSource +function Environment:set_ambient_source(source) end + +--- @return Environment.AmbientSource +function Environment:get_ambient_source() end + +--- @param energy float +function Environment:set_ambient_light_energy(energy) end + +--- @return float +function Environment:get_ambient_light_energy() end + +--- @param ratio float +function Environment:set_ambient_light_sky_contribution(ratio) end + +--- @return float +function Environment:get_ambient_light_sky_contribution() end + +--- @param source Environment.ReflectionSource +function Environment:set_reflection_source(source) end + +--- @return Environment.ReflectionSource +function Environment:get_reflection_source() end + +--- @param mode Environment.ToneMapper +function Environment:set_tonemapper(mode) end + +--- @return Environment.ToneMapper +function Environment:get_tonemapper() end + +--- @param exposure float +function Environment:set_tonemap_exposure(exposure) end + +--- @return float +function Environment:get_tonemap_exposure() end + +--- @param white float +function Environment:set_tonemap_white(white) end + +--- @return float +function Environment:get_tonemap_white() end + +--- @param enabled bool +function Environment:set_ssr_enabled(enabled) end + +--- @return bool +function Environment:is_ssr_enabled() end + +--- @param max_steps int +function Environment:set_ssr_max_steps(max_steps) end + +--- @return int +function Environment:get_ssr_max_steps() end + +--- @param fade_in float +function Environment:set_ssr_fade_in(fade_in) end + +--- @return float +function Environment:get_ssr_fade_in() end + +--- @param fade_out float +function Environment:set_ssr_fade_out(fade_out) end + +--- @return float +function Environment:get_ssr_fade_out() end + +--- @param depth_tolerance float +function Environment:set_ssr_depth_tolerance(depth_tolerance) end + +--- @return float +function Environment:get_ssr_depth_tolerance() end + +--- @param enabled bool +function Environment:set_ssao_enabled(enabled) end + +--- @return bool +function Environment:is_ssao_enabled() end + +--- @param radius float +function Environment:set_ssao_radius(radius) end + +--- @return float +function Environment:get_ssao_radius() end + +--- @param intensity float +function Environment:set_ssao_intensity(intensity) end + +--- @return float +function Environment:get_ssao_intensity() end + +--- @param power float +function Environment:set_ssao_power(power) end + +--- @return float +function Environment:get_ssao_power() end + +--- @param detail float +function Environment:set_ssao_detail(detail) end + +--- @return float +function Environment:get_ssao_detail() end + +--- @param horizon float +function Environment:set_ssao_horizon(horizon) end + +--- @return float +function Environment:get_ssao_horizon() end + +--- @param sharpness float +function Environment:set_ssao_sharpness(sharpness) end + +--- @return float +function Environment:get_ssao_sharpness() end + +--- @param amount float +function Environment:set_ssao_direct_light_affect(amount) end + +--- @return float +function Environment:get_ssao_direct_light_affect() end + +--- @param amount float +function Environment:set_ssao_ao_channel_affect(amount) end + +--- @return float +function Environment:get_ssao_ao_channel_affect() end + +--- @param enabled bool +function Environment:set_ssil_enabled(enabled) end + +--- @return bool +function Environment:is_ssil_enabled() end + +--- @param radius float +function Environment:set_ssil_radius(radius) end + +--- @return float +function Environment:get_ssil_radius() end + +--- @param intensity float +function Environment:set_ssil_intensity(intensity) end + +--- @return float +function Environment:get_ssil_intensity() end + +--- @param sharpness float +function Environment:set_ssil_sharpness(sharpness) end + +--- @return float +function Environment:get_ssil_sharpness() end + +--- @param normal_rejection float +function Environment:set_ssil_normal_rejection(normal_rejection) end + +--- @return float +function Environment:get_ssil_normal_rejection() end + +--- @param enabled bool +function Environment:set_sdfgi_enabled(enabled) end + +--- @return bool +function Environment:is_sdfgi_enabled() end + +--- @param amount int +function Environment:set_sdfgi_cascades(amount) end + +--- @return int +function Environment:get_sdfgi_cascades() end + +--- @param size float +function Environment:set_sdfgi_min_cell_size(size) end + +--- @return float +function Environment:get_sdfgi_min_cell_size() end + +--- @param distance float +function Environment:set_sdfgi_max_distance(distance) end + +--- @return float +function Environment:get_sdfgi_max_distance() end + +--- @param distance float +function Environment:set_sdfgi_cascade0_distance(distance) end + +--- @return float +function Environment:get_sdfgi_cascade0_distance() end + +--- @param scale Environment.SDFGIYScale +function Environment:set_sdfgi_y_scale(scale) end + +--- @return Environment.SDFGIYScale +function Environment:get_sdfgi_y_scale() end + +--- @param enable bool +function Environment:set_sdfgi_use_occlusion(enable) end + +--- @return bool +function Environment:is_sdfgi_using_occlusion() end + +--- @param amount float +function Environment:set_sdfgi_bounce_feedback(amount) end + +--- @return float +function Environment:get_sdfgi_bounce_feedback() end + +--- @param enable bool +function Environment:set_sdfgi_read_sky_light(enable) end + +--- @return bool +function Environment:is_sdfgi_reading_sky_light() end + +--- @param amount float +function Environment:set_sdfgi_energy(amount) end + +--- @return float +function Environment:get_sdfgi_energy() end + +--- @param bias float +function Environment:set_sdfgi_normal_bias(bias) end + +--- @return float +function Environment:get_sdfgi_normal_bias() end + +--- @param bias float +function Environment:set_sdfgi_probe_bias(bias) end + +--- @return float +function Environment:get_sdfgi_probe_bias() end + +--- @param enabled bool +function Environment:set_glow_enabled(enabled) end + +--- @return bool +function Environment:is_glow_enabled() end + +--- @param idx int +--- @param intensity float +function Environment:set_glow_level(idx, intensity) end + +--- @param idx int +--- @return float +function Environment:get_glow_level(idx) end + +--- @param normalize bool +function Environment:set_glow_normalized(normalize) end + +--- @return bool +function Environment:is_glow_normalized() end + +--- @param intensity float +function Environment:set_glow_intensity(intensity) end + +--- @return float +function Environment:get_glow_intensity() end + +--- @param strength float +function Environment:set_glow_strength(strength) end + +--- @return float +function Environment:get_glow_strength() end + +--- @param mix float +function Environment:set_glow_mix(mix) end + +--- @return float +function Environment:get_glow_mix() end + +--- @param amount float +function Environment:set_glow_bloom(amount) end + +--- @return float +function Environment:get_glow_bloom() end + +--- @param mode Environment.GlowBlendMode +function Environment:set_glow_blend_mode(mode) end + +--- @return Environment.GlowBlendMode +function Environment:get_glow_blend_mode() end + +--- @param threshold float +function Environment:set_glow_hdr_bleed_threshold(threshold) end + +--- @return float +function Environment:get_glow_hdr_bleed_threshold() end + +--- @param scale float +function Environment:set_glow_hdr_bleed_scale(scale) end + +--- @return float +function Environment:get_glow_hdr_bleed_scale() end + +--- @param amount float +function Environment:set_glow_hdr_luminance_cap(amount) end + +--- @return float +function Environment:get_glow_hdr_luminance_cap() end + +--- @param strength float +function Environment:set_glow_map_strength(strength) end + +--- @return float +function Environment:get_glow_map_strength() end + +--- @param mode Texture +function Environment:set_glow_map(mode) end + +--- @return Texture +function Environment:get_glow_map() end + +--- @param enabled bool +function Environment:set_fog_enabled(enabled) end + +--- @return bool +function Environment:is_fog_enabled() end + +--- @param mode Environment.FogMode +function Environment:set_fog_mode(mode) end + +--- @return Environment.FogMode +function Environment:get_fog_mode() end + +--- @param light_color Color +function Environment:set_fog_light_color(light_color) end + +--- @return Color +function Environment:get_fog_light_color() end + +--- @param light_energy float +function Environment:set_fog_light_energy(light_energy) end + +--- @return float +function Environment:get_fog_light_energy() end + +--- @param sun_scatter float +function Environment:set_fog_sun_scatter(sun_scatter) end + +--- @return float +function Environment:get_fog_sun_scatter() end + +--- @param density float +function Environment:set_fog_density(density) end + +--- @return float +function Environment:get_fog_density() end + +--- @param height float +function Environment:set_fog_height(height) end + +--- @return float +function Environment:get_fog_height() end + +--- @param height_density float +function Environment:set_fog_height_density(height_density) end + +--- @return float +function Environment:get_fog_height_density() end + +--- @param aerial_perspective float +function Environment:set_fog_aerial_perspective(aerial_perspective) end + +--- @return float +function Environment:get_fog_aerial_perspective() end + +--- @param sky_affect float +function Environment:set_fog_sky_affect(sky_affect) end + +--- @return float +function Environment:get_fog_sky_affect() end + +--- @param curve float +function Environment:set_fog_depth_curve(curve) end + +--- @return float +function Environment:get_fog_depth_curve() end + +--- @param begin float +function Environment:set_fog_depth_begin(begin) end + +--- @return float +function Environment:get_fog_depth_begin() end + +--- @param _end float +function Environment:set_fog_depth_end(_end) end + +--- @return float +function Environment:get_fog_depth_end() end + +--- @param enabled bool +function Environment:set_volumetric_fog_enabled(enabled) end + +--- @return bool +function Environment:is_volumetric_fog_enabled() end + +--- @param color Color +function Environment:set_volumetric_fog_emission(color) end + +--- @return Color +function Environment:get_volumetric_fog_emission() end + +--- @param color Color +function Environment:set_volumetric_fog_albedo(color) end + +--- @return Color +function Environment:get_volumetric_fog_albedo() end + +--- @param density float +function Environment:set_volumetric_fog_density(density) end + +--- @return float +function Environment:get_volumetric_fog_density() end + +--- @param begin float +function Environment:set_volumetric_fog_emission_energy(begin) end + +--- @return float +function Environment:get_volumetric_fog_emission_energy() end + +--- @param anisotropy float +function Environment:set_volumetric_fog_anisotropy(anisotropy) end + +--- @return float +function Environment:get_volumetric_fog_anisotropy() end + +--- @param length float +function Environment:set_volumetric_fog_length(length) end + +--- @return float +function Environment:get_volumetric_fog_length() end + +--- @param detail_spread float +function Environment:set_volumetric_fog_detail_spread(detail_spread) end + +--- @return float +function Environment:get_volumetric_fog_detail_spread() end + +--- @param gi_inject float +function Environment:set_volumetric_fog_gi_inject(gi_inject) end + +--- @return float +function Environment:get_volumetric_fog_gi_inject() end + +--- @param enabled float +function Environment:set_volumetric_fog_ambient_inject(enabled) end + +--- @return float +function Environment:get_volumetric_fog_ambient_inject() end + +--- @param sky_affect float +function Environment:set_volumetric_fog_sky_affect(sky_affect) end + +--- @return float +function Environment:get_volumetric_fog_sky_affect() end + +--- @param enabled bool +function Environment:set_volumetric_fog_temporal_reprojection_enabled(enabled) end + +--- @return bool +function Environment:is_volumetric_fog_temporal_reprojection_enabled() end + +--- @param temporal_reprojection_amount float +function Environment:set_volumetric_fog_temporal_reprojection_amount(temporal_reprojection_amount) end + +--- @return float +function Environment:get_volumetric_fog_temporal_reprojection_amount() end + +--- @param enabled bool +function Environment:set_adjustment_enabled(enabled) end + +--- @return bool +function Environment:is_adjustment_enabled() end + +--- @param brightness float +function Environment:set_adjustment_brightness(brightness) end + +--- @return float +function Environment:get_adjustment_brightness() end + +--- @param contrast float +function Environment:set_adjustment_contrast(contrast) end + +--- @return float +function Environment:get_adjustment_contrast() end + +--- @param saturation float +function Environment:set_adjustment_saturation(saturation) end + +--- @return float +function Environment:get_adjustment_saturation() end + +--- @param color_correction Texture +function Environment:set_adjustment_color_correction(color_correction) end + +--- @return Texture +function Environment:get_adjustment_color_correction() end + + +----------------------------------------------------------- +-- Expression +----------------------------------------------------------- + +--- @class Expression: RefCounted, { [string]: any } +Expression = {} + +--- @return Expression +function Expression:new() end + +--- @param expression String +--- @param input_names PackedStringArray? Default: PackedStringArray() +--- @return Error +function Expression:parse(expression, input_names) end + +--- @param inputs Array? Default: [] +--- @param base_instance Object? Default: null +--- @param show_error bool? Default: true +--- @param const_calls_only bool? Default: false +--- @return any +function Expression:execute(inputs, base_instance, show_error, const_calls_only) end + +--- @return bool +function Expression:has_execute_failed() end + +--- @return String +function Expression:get_error_text() end + + +----------------------------------------------------------- +-- ExternalTexture +----------------------------------------------------------- + +--- @class ExternalTexture: Texture2D, { [string]: any } +--- @field size Vector2 +ExternalTexture = {} + +--- @return ExternalTexture +function ExternalTexture:new() end + +--- @param size Vector2 +function ExternalTexture:set_size(size) end + +--- @return int +function ExternalTexture:get_external_texture_id() end + +--- @param external_buffer_id int +function ExternalTexture:set_external_buffer_id(external_buffer_id) end + + +----------------------------------------------------------- +-- FBXDocument +----------------------------------------------------------- + +--- @class FBXDocument: GLTFDocument, { [string]: any } +FBXDocument = {} + +--- @return FBXDocument +function FBXDocument:new() end + + +----------------------------------------------------------- +-- FBXState +----------------------------------------------------------- + +--- @class FBXState: GLTFState, { [string]: any } +--- @field allow_geometry_helper_nodes bool +FBXState = {} + +--- @return FBXState +function FBXState:new() end + +--- @return bool +function FBXState:get_allow_geometry_helper_nodes() end + +--- @param allow bool +function FBXState:set_allow_geometry_helper_nodes(allow) end + + +----------------------------------------------------------- +-- FastNoiseLite +----------------------------------------------------------- + +--- @class FastNoiseLite: Noise, { [string]: any } +--- @field noise_type int +--- @field seed int +--- @field frequency float +--- @field offset Vector3 +--- @field fractal_type int +--- @field fractal_octaves int +--- @field fractal_lacunarity float +--- @field fractal_gain float +--- @field fractal_weighted_strength float +--- @field fractal_ping_pong_strength float +--- @field cellular_distance_function int +--- @field cellular_jitter float +--- @field cellular_return_type int +--- @field domain_warp_enabled bool +--- @field domain_warp_type int +--- @field domain_warp_amplitude float +--- @field domain_warp_frequency float +--- @field domain_warp_fractal_type int +--- @field domain_warp_fractal_octaves int +--- @field domain_warp_fractal_lacunarity float +--- @field domain_warp_fractal_gain float +FastNoiseLite = {} + +--- @return FastNoiseLite +function FastNoiseLite:new() end + +--- @alias FastNoiseLite.NoiseType `FastNoiseLite.TYPE_VALUE` | `FastNoiseLite.TYPE_VALUE_CUBIC` | `FastNoiseLite.TYPE_PERLIN` | `FastNoiseLite.TYPE_CELLULAR` | `FastNoiseLite.TYPE_SIMPLEX` | `FastNoiseLite.TYPE_SIMPLEX_SMOOTH` +FastNoiseLite.TYPE_VALUE = 5 +FastNoiseLite.TYPE_VALUE_CUBIC = 4 +FastNoiseLite.TYPE_PERLIN = 3 +FastNoiseLite.TYPE_CELLULAR = 2 +FastNoiseLite.TYPE_SIMPLEX = 0 +FastNoiseLite.TYPE_SIMPLEX_SMOOTH = 1 + +--- @alias FastNoiseLite.FractalType `FastNoiseLite.FRACTAL_NONE` | `FastNoiseLite.FRACTAL_FBM` | `FastNoiseLite.FRACTAL_RIDGED` | `FastNoiseLite.FRACTAL_PING_PONG` +FastNoiseLite.FRACTAL_NONE = 0 +FastNoiseLite.FRACTAL_FBM = 1 +FastNoiseLite.FRACTAL_RIDGED = 2 +FastNoiseLite.FRACTAL_PING_PONG = 3 + +--- @alias FastNoiseLite.CellularDistanceFunction `FastNoiseLite.DISTANCE_EUCLIDEAN` | `FastNoiseLite.DISTANCE_EUCLIDEAN_SQUARED` | `FastNoiseLite.DISTANCE_MANHATTAN` | `FastNoiseLite.DISTANCE_HYBRID` +FastNoiseLite.DISTANCE_EUCLIDEAN = 0 +FastNoiseLite.DISTANCE_EUCLIDEAN_SQUARED = 1 +FastNoiseLite.DISTANCE_MANHATTAN = 2 +FastNoiseLite.DISTANCE_HYBRID = 3 + +--- @alias FastNoiseLite.CellularReturnType `FastNoiseLite.RETURN_CELL_VALUE` | `FastNoiseLite.RETURN_DISTANCE` | `FastNoiseLite.RETURN_DISTANCE2` | `FastNoiseLite.RETURN_DISTANCE2_ADD` | `FastNoiseLite.RETURN_DISTANCE2_SUB` | `FastNoiseLite.RETURN_DISTANCE2_MUL` | `FastNoiseLite.RETURN_DISTANCE2_DIV` +FastNoiseLite.RETURN_CELL_VALUE = 0 +FastNoiseLite.RETURN_DISTANCE = 1 +FastNoiseLite.RETURN_DISTANCE2 = 2 +FastNoiseLite.RETURN_DISTANCE2_ADD = 3 +FastNoiseLite.RETURN_DISTANCE2_SUB = 4 +FastNoiseLite.RETURN_DISTANCE2_MUL = 5 +FastNoiseLite.RETURN_DISTANCE2_DIV = 6 + +--- @alias FastNoiseLite.DomainWarpType `FastNoiseLite.DOMAIN_WARP_SIMPLEX` | `FastNoiseLite.DOMAIN_WARP_SIMPLEX_REDUCED` | `FastNoiseLite.DOMAIN_WARP_BASIC_GRID` +FastNoiseLite.DOMAIN_WARP_SIMPLEX = 0 +FastNoiseLite.DOMAIN_WARP_SIMPLEX_REDUCED = 1 +FastNoiseLite.DOMAIN_WARP_BASIC_GRID = 2 + +--- @alias FastNoiseLite.DomainWarpFractalType `FastNoiseLite.DOMAIN_WARP_FRACTAL_NONE` | `FastNoiseLite.DOMAIN_WARP_FRACTAL_PROGRESSIVE` | `FastNoiseLite.DOMAIN_WARP_FRACTAL_INDEPENDENT` +FastNoiseLite.DOMAIN_WARP_FRACTAL_NONE = 0 +FastNoiseLite.DOMAIN_WARP_FRACTAL_PROGRESSIVE = 1 +FastNoiseLite.DOMAIN_WARP_FRACTAL_INDEPENDENT = 2 + +--- @param type FastNoiseLite.NoiseType +function FastNoiseLite:set_noise_type(type) end + +--- @return FastNoiseLite.NoiseType +function FastNoiseLite:get_noise_type() end + +--- @param seed int +function FastNoiseLite:set_seed(seed) end + +--- @return int +function FastNoiseLite:get_seed() end + +--- @param freq float +function FastNoiseLite:set_frequency(freq) end + +--- @return float +function FastNoiseLite:get_frequency() end + +--- @param offset Vector3 +function FastNoiseLite:set_offset(offset) end + +--- @return Vector3 +function FastNoiseLite:get_offset() end + +--- @param type FastNoiseLite.FractalType +function FastNoiseLite:set_fractal_type(type) end + +--- @return FastNoiseLite.FractalType +function FastNoiseLite:get_fractal_type() end + +--- @param octave_count int +function FastNoiseLite:set_fractal_octaves(octave_count) end + +--- @return int +function FastNoiseLite:get_fractal_octaves() end + +--- @param lacunarity float +function FastNoiseLite:set_fractal_lacunarity(lacunarity) end + +--- @return float +function FastNoiseLite:get_fractal_lacunarity() end + +--- @param gain float +function FastNoiseLite:set_fractal_gain(gain) end + +--- @return float +function FastNoiseLite:get_fractal_gain() end + +--- @param weighted_strength float +function FastNoiseLite:set_fractal_weighted_strength(weighted_strength) end + +--- @return float +function FastNoiseLite:get_fractal_weighted_strength() end + +--- @param ping_pong_strength float +function FastNoiseLite:set_fractal_ping_pong_strength(ping_pong_strength) end + +--- @return float +function FastNoiseLite:get_fractal_ping_pong_strength() end + +--- @param func FastNoiseLite.CellularDistanceFunction +function FastNoiseLite:set_cellular_distance_function(func) end + +--- @return FastNoiseLite.CellularDistanceFunction +function FastNoiseLite:get_cellular_distance_function() end + +--- @param jitter float +function FastNoiseLite:set_cellular_jitter(jitter) end + +--- @return float +function FastNoiseLite:get_cellular_jitter() end + +--- @param ret FastNoiseLite.CellularReturnType +function FastNoiseLite:set_cellular_return_type(ret) end + +--- @return FastNoiseLite.CellularReturnType +function FastNoiseLite:get_cellular_return_type() end + +--- @param domain_warp_enabled bool +function FastNoiseLite:set_domain_warp_enabled(domain_warp_enabled) end + +--- @return bool +function FastNoiseLite:is_domain_warp_enabled() end + +--- @param domain_warp_type FastNoiseLite.DomainWarpType +function FastNoiseLite:set_domain_warp_type(domain_warp_type) end + +--- @return FastNoiseLite.DomainWarpType +function FastNoiseLite:get_domain_warp_type() end + +--- @param domain_warp_amplitude float +function FastNoiseLite:set_domain_warp_amplitude(domain_warp_amplitude) end + +--- @return float +function FastNoiseLite:get_domain_warp_amplitude() end + +--- @param domain_warp_frequency float +function FastNoiseLite:set_domain_warp_frequency(domain_warp_frequency) end + +--- @return float +function FastNoiseLite:get_domain_warp_frequency() end + +--- @param domain_warp_fractal_type FastNoiseLite.DomainWarpFractalType +function FastNoiseLite:set_domain_warp_fractal_type(domain_warp_fractal_type) end + +--- @return FastNoiseLite.DomainWarpFractalType +function FastNoiseLite:get_domain_warp_fractal_type() end + +--- @param domain_warp_octave_count int +function FastNoiseLite:set_domain_warp_fractal_octaves(domain_warp_octave_count) end + +--- @return int +function FastNoiseLite:get_domain_warp_fractal_octaves() end + +--- @param domain_warp_lacunarity float +function FastNoiseLite:set_domain_warp_fractal_lacunarity(domain_warp_lacunarity) end + +--- @return float +function FastNoiseLite:get_domain_warp_fractal_lacunarity() end + +--- @param domain_warp_gain float +function FastNoiseLite:set_domain_warp_fractal_gain(domain_warp_gain) end + +--- @return float +function FastNoiseLite:get_domain_warp_fractal_gain() end + + +----------------------------------------------------------- +-- FileAccess +----------------------------------------------------------- + +--- @class FileAccess: RefCounted, { [string]: any } +--- @field big_endian bool +FileAccess = {} + +--- @alias FileAccess.ModeFlags `FileAccess.READ` | `FileAccess.WRITE` | `FileAccess.READ_WRITE` | `FileAccess.WRITE_READ` +FileAccess.READ = 1 +FileAccess.WRITE = 2 +FileAccess.READ_WRITE = 3 +FileAccess.WRITE_READ = 7 + +--- @alias FileAccess.CompressionMode `FileAccess.COMPRESSION_FASTLZ` | `FileAccess.COMPRESSION_DEFLATE` | `FileAccess.COMPRESSION_ZSTD` | `FileAccess.COMPRESSION_GZIP` | `FileAccess.COMPRESSION_BROTLI` +FileAccess.COMPRESSION_FASTLZ = 0 +FileAccess.COMPRESSION_DEFLATE = 1 +FileAccess.COMPRESSION_ZSTD = 2 +FileAccess.COMPRESSION_GZIP = 3 +FileAccess.COMPRESSION_BROTLI = 4 + +--- @alias FileAccess.UnixPermissionFlags `FileAccess.UNIX_READ_OWNER` | `FileAccess.UNIX_WRITE_OWNER` | `FileAccess.UNIX_EXECUTE_OWNER` | `FileAccess.UNIX_READ_GROUP` | `FileAccess.UNIX_WRITE_GROUP` | `FileAccess.UNIX_EXECUTE_GROUP` | `FileAccess.UNIX_READ_OTHER` | `FileAccess.UNIX_WRITE_OTHER` | `FileAccess.UNIX_EXECUTE_OTHER` | `FileAccess.UNIX_SET_USER_ID` | `FileAccess.UNIX_SET_GROUP_ID` | `FileAccess.UNIX_RESTRICTED_DELETE` +FileAccess.UNIX_READ_OWNER = 256 +FileAccess.UNIX_WRITE_OWNER = 128 +FileAccess.UNIX_EXECUTE_OWNER = 64 +FileAccess.UNIX_READ_GROUP = 32 +FileAccess.UNIX_WRITE_GROUP = 16 +FileAccess.UNIX_EXECUTE_GROUP = 8 +FileAccess.UNIX_READ_OTHER = 4 +FileAccess.UNIX_WRITE_OTHER = 2 +FileAccess.UNIX_EXECUTE_OTHER = 1 +FileAccess.UNIX_SET_USER_ID = 2048 +FileAccess.UNIX_SET_GROUP_ID = 1024 +FileAccess.UNIX_RESTRICTED_DELETE = 512 + +--- static +--- @param path String +--- @param flags FileAccess.ModeFlags +--- @return FileAccess +function FileAccess:open(path, flags) end + +--- static +--- @param path String +--- @param mode_flags FileAccess.ModeFlags +--- @param key PackedByteArray +--- @param iv PackedByteArray? Default: PackedByteArray() +--- @return FileAccess +function FileAccess:open_encrypted(path, mode_flags, key, iv) end + +--- static +--- @param path String +--- @param mode_flags FileAccess.ModeFlags +--- @param pass String +--- @return FileAccess +function FileAccess:open_encrypted_with_pass(path, mode_flags, pass) end + +--- static +--- @param path String +--- @param mode_flags FileAccess.ModeFlags +--- @param compression_mode FileAccess.CompressionMode? Default: 0 +--- @return FileAccess +function FileAccess:open_compressed(path, mode_flags, compression_mode) end + +--- static +--- @return Error +function FileAccess:get_open_error() end + +--- static +--- @param mode_flags int +--- @param prefix String? Default: "" +--- @param extension String? Default: "" +--- @param keep bool? Default: false +--- @return FileAccess +function FileAccess:create_temp(mode_flags, prefix, extension, keep) end + +--- static +--- @param path String +--- @return PackedByteArray +function FileAccess:get_file_as_bytes(path) end + +--- static +--- @param path String +--- @return String +function FileAccess:get_file_as_string(path) end + +--- @param length int +--- @return Error +function FileAccess:resize(length) end + +function FileAccess:flush() end + +--- @return String +function FileAccess:get_path() end + +--- @return String +function FileAccess:get_path_absolute() end + +--- @return bool +function FileAccess:is_open() end + +--- @param position int +function FileAccess:seek(position) end + +--- @param position int? Default: 0 +function FileAccess:seek_end(position) end + +--- @return int +function FileAccess:get_position() end + +--- @return int +function FileAccess:get_length() end + +--- @return bool +function FileAccess:eof_reached() end + +--- @return int +function FileAccess:get_8() end + +--- @return int +function FileAccess:get_16() end + +--- @return int +function FileAccess:get_32() end + +--- @return int +function FileAccess:get_64() end + +--- @return float +function FileAccess:get_half() end + +--- @return float +function FileAccess:get_float() end + +--- @return float +function FileAccess:get_double() end + +--- @return float +function FileAccess:get_real() end + +--- @param length int +--- @return PackedByteArray +function FileAccess:get_buffer(length) end + +--- @return String +function FileAccess:get_line() end + +--- @param delim String? Default: "," +--- @return PackedStringArray +function FileAccess:get_csv_line(delim) end + +--- @param skip_cr bool? Default: false +--- @return String +function FileAccess:get_as_text(skip_cr) end + +--- static +--- @param path String +--- @return String +function FileAccess:get_md5(path) end + +--- static +--- @param path String +--- @return String +function FileAccess:get_sha256(path) end + +--- @return bool +function FileAccess:is_big_endian() end + +--- @param big_endian bool +function FileAccess:set_big_endian(big_endian) end + +--- @return Error +function FileAccess:get_error() end + +--- @param allow_objects bool? Default: false +--- @return any +function FileAccess:get_var(allow_objects) end + +--- @param value int +--- @return bool +function FileAccess:store_8(value) end + +--- @param value int +--- @return bool +function FileAccess:store_16(value) end + +--- @param value int +--- @return bool +function FileAccess:store_32(value) end + +--- @param value int +--- @return bool +function FileAccess:store_64(value) end + +--- @param value float +--- @return bool +function FileAccess:store_half(value) end + +--- @param value float +--- @return bool +function FileAccess:store_float(value) end + +--- @param value float +--- @return bool +function FileAccess:store_double(value) end + +--- @param value float +--- @return bool +function FileAccess:store_real(value) end + +--- @param buffer PackedByteArray +--- @return bool +function FileAccess:store_buffer(buffer) end + +--- @param line String +--- @return bool +function FileAccess:store_line(line) end + +--- @param values PackedStringArray +--- @param delim String? Default: "," +--- @return bool +function FileAccess:store_csv_line(values, delim) end + +--- @param string String +--- @return bool +function FileAccess:store_string(string) end + +--- @param value any +--- @param full_objects bool? Default: false +--- @return bool +function FileAccess:store_var(value, full_objects) end + +--- @param string String +--- @return bool +function FileAccess:store_pascal_string(string) end + +--- @return String +function FileAccess:get_pascal_string() end + +function FileAccess:close() end + +--- static +--- @param path String +--- @return bool +function FileAccess:file_exists(path) end + +--- static +--- @param file String +--- @return int +function FileAccess:get_modified_time(file) end + +--- static +--- @param file String +--- @return int +function FileAccess:get_access_time(file) end + +--- static +--- @param file String +--- @return int +function FileAccess:get_size(file) end + +--- static +--- @param file String +--- @return FileAccess.UnixPermissionFlags +function FileAccess:get_unix_permissions(file) end + +--- static +--- @param file String +--- @param permissions FileAccess.UnixPermissionFlags +--- @return Error +function FileAccess:set_unix_permissions(file, permissions) end + +--- static +--- @param file String +--- @return bool +function FileAccess:get_hidden_attribute(file) end + +--- static +--- @param file String +--- @param hidden bool +--- @return Error +function FileAccess:set_hidden_attribute(file, hidden) end + +--- static +--- @param file String +--- @param ro bool +--- @return Error +function FileAccess:set_read_only_attribute(file, ro) end + +--- static +--- @param file String +--- @return bool +function FileAccess:get_read_only_attribute(file) end + + +----------------------------------------------------------- +-- FileDialog +----------------------------------------------------------- + +--- @class FileDialog: ConfirmationDialog, { [string]: any } +--- @field mode_overrides_title bool +--- @field file_mode int +--- @field display_mode int +--- @field access int +--- @field root_subfolder String +--- @field filters PackedStringArray +--- @field filename_filter String +--- @field show_hidden_files bool +--- @field use_native_dialog bool +--- @field option_count int +--- @field hidden_files_toggle_enabled bool +--- @field file_filter_toggle_enabled bool +--- @field file_sort_options_enabled bool +--- @field folder_creation_enabled bool +--- @field favorites_enabled bool +--- @field recent_list_enabled bool +--- @field layout_toggle_enabled bool +--- @field current_dir String +--- @field current_file String +--- @field current_path String +FileDialog = {} + +--- @return FileDialog +function FileDialog:new() end + +--- @alias FileDialog.FileMode `FileDialog.FILE_MODE_OPEN_FILE` | `FileDialog.FILE_MODE_OPEN_FILES` | `FileDialog.FILE_MODE_OPEN_DIR` | `FileDialog.FILE_MODE_OPEN_ANY` | `FileDialog.FILE_MODE_SAVE_FILE` +FileDialog.FILE_MODE_OPEN_FILE = 0 +FileDialog.FILE_MODE_OPEN_FILES = 1 +FileDialog.FILE_MODE_OPEN_DIR = 2 +FileDialog.FILE_MODE_OPEN_ANY = 3 +FileDialog.FILE_MODE_SAVE_FILE = 4 + +--- @alias FileDialog.Access `FileDialog.ACCESS_RESOURCES` | `FileDialog.ACCESS_USERDATA` | `FileDialog.ACCESS_FILESYSTEM` +FileDialog.ACCESS_RESOURCES = 0 +FileDialog.ACCESS_USERDATA = 1 +FileDialog.ACCESS_FILESYSTEM = 2 + +--- @alias FileDialog.DisplayMode `FileDialog.DISPLAY_THUMBNAILS` | `FileDialog.DISPLAY_LIST` +FileDialog.DISPLAY_THUMBNAILS = 0 +FileDialog.DISPLAY_LIST = 1 + +--- @alias FileDialog.Customization `FileDialog.CUSTOMIZATION_HIDDEN_FILES` | `FileDialog.CUSTOMIZATION_CREATE_FOLDER` | `FileDialog.CUSTOMIZATION_FILE_FILTER` | `FileDialog.CUSTOMIZATION_FILE_SORT` | `FileDialog.CUSTOMIZATION_FAVORITES` | `FileDialog.CUSTOMIZATION_RECENT` | `FileDialog.CUSTOMIZATION_LAYOUT` +FileDialog.CUSTOMIZATION_HIDDEN_FILES = 0 +FileDialog.CUSTOMIZATION_CREATE_FOLDER = 1 +FileDialog.CUSTOMIZATION_FILE_FILTER = 2 +FileDialog.CUSTOMIZATION_FILE_SORT = 3 +FileDialog.CUSTOMIZATION_FAVORITES = 4 +FileDialog.CUSTOMIZATION_RECENT = 5 +FileDialog.CUSTOMIZATION_LAYOUT = 6 + +FileDialog.file_selected = Signal() +FileDialog.files_selected = Signal() +FileDialog.dir_selected = Signal() +FileDialog.filename_filter_changed = Signal() + +function FileDialog:clear_filters() end + +--- @param filter String +--- @param description String? Default: "" +function FileDialog:add_filter(filter, description) end + +--- @param filters PackedStringArray +function FileDialog:set_filters(filters) end + +--- @return PackedStringArray +function FileDialog:get_filters() end + +function FileDialog:clear_filename_filter() end + +--- @param filter String +function FileDialog:set_filename_filter(filter) end + +--- @return String +function FileDialog:get_filename_filter() end + +--- @param option int +--- @return String +function FileDialog:get_option_name(option) end + +--- @param option int +--- @return PackedStringArray +function FileDialog:get_option_values(option) end + +--- @param option int +--- @return int +function FileDialog:get_option_default(option) end + +--- @param option int +--- @param name String +function FileDialog:set_option_name(option, name) end + +--- @param option int +--- @param values PackedStringArray +function FileDialog:set_option_values(option, values) end + +--- @param option int +--- @param default_value_index int +function FileDialog:set_option_default(option, default_value_index) end + +--- @param count int +function FileDialog:set_option_count(count) end + +--- @return int +function FileDialog:get_option_count() end + +--- @param name String +--- @param values PackedStringArray +--- @param default_value_index int +function FileDialog:add_option(name, values, default_value_index) end + +--- @return Dictionary +function FileDialog:get_selected_options() end + +--- @return String +function FileDialog:get_current_dir() end + +--- @return String +function FileDialog:get_current_file() end + +--- @return String +function FileDialog:get_current_path() end + +--- @param dir String +function FileDialog:set_current_dir(dir) end + +--- @param file String +function FileDialog:set_current_file(file) end + +--- @param path String +function FileDialog:set_current_path(path) end + +--- @param override bool +function FileDialog:set_mode_overrides_title(override) end + +--- @return bool +function FileDialog:is_mode_overriding_title() end + +--- @param mode FileDialog.FileMode +function FileDialog:set_file_mode(mode) end + +--- @return FileDialog.FileMode +function FileDialog:get_file_mode() end + +--- @param mode FileDialog.DisplayMode +function FileDialog:set_display_mode(mode) end + +--- @return FileDialog.DisplayMode +function FileDialog:get_display_mode() end + +--- @return VBoxContainer +function FileDialog:get_vbox() end + +--- @return LineEdit +function FileDialog:get_line_edit() end + +--- @param access FileDialog.Access +function FileDialog:set_access(access) end + +--- @return FileDialog.Access +function FileDialog:get_access() end + +--- @param dir String +function FileDialog:set_root_subfolder(dir) end + +--- @return String +function FileDialog:get_root_subfolder() end + +--- @param show bool +function FileDialog:set_show_hidden_files(show) end + +--- @return bool +function FileDialog:is_showing_hidden_files() end + +--- @param native bool +function FileDialog:set_use_native_dialog(native) end + +--- @return bool +function FileDialog:get_use_native_dialog() end + +--- @param flag FileDialog.Customization +--- @param enabled bool +function FileDialog:set_customization_flag_enabled(flag, enabled) end + +--- @param flag FileDialog.Customization +--- @return bool +function FileDialog:is_customization_flag_enabled(flag) end + +function FileDialog:deselect_all() end + +function FileDialog:invalidate() end + + +----------------------------------------------------------- +-- FileSystemDock +----------------------------------------------------------- + +--- @class FileSystemDock: VBoxContainer, { [string]: any } +FileSystemDock = {} + +FileSystemDock.inherit = Signal() +FileSystemDock.instantiate = Signal() +FileSystemDock.resource_removed = Signal() +FileSystemDock.file_removed = Signal() +FileSystemDock.folder_removed = Signal() +FileSystemDock.files_moved = Signal() +FileSystemDock.folder_moved = Signal() +FileSystemDock.folder_color_changed = Signal() +FileSystemDock.display_mode_changed = Signal() + +--- @param path String +function FileSystemDock:navigate_to_path(path) end + +--- @param plugin EditorResourceTooltipPlugin +function FileSystemDock:add_resource_tooltip_plugin(plugin) end + +--- @param plugin EditorResourceTooltipPlugin +function FileSystemDock:remove_resource_tooltip_plugin(plugin) end + + +----------------------------------------------------------- +-- FlowContainer +----------------------------------------------------------- + +--- @class FlowContainer: Container, { [string]: any } +--- @field alignment int +--- @field last_wrap_alignment int +--- @field vertical bool +--- @field reverse_fill bool +FlowContainer = {} + +--- @return FlowContainer +function FlowContainer:new() end + +--- @alias FlowContainer.AlignmentMode `FlowContainer.ALIGNMENT_BEGIN` | `FlowContainer.ALIGNMENT_CENTER` | `FlowContainer.ALIGNMENT_END` +FlowContainer.ALIGNMENT_BEGIN = 0 +FlowContainer.ALIGNMENT_CENTER = 1 +FlowContainer.ALIGNMENT_END = 2 + +--- @alias FlowContainer.LastWrapAlignmentMode `FlowContainer.LAST_WRAP_ALIGNMENT_INHERIT` | `FlowContainer.LAST_WRAP_ALIGNMENT_BEGIN` | `FlowContainer.LAST_WRAP_ALIGNMENT_CENTER` | `FlowContainer.LAST_WRAP_ALIGNMENT_END` +FlowContainer.LAST_WRAP_ALIGNMENT_INHERIT = 0 +FlowContainer.LAST_WRAP_ALIGNMENT_BEGIN = 1 +FlowContainer.LAST_WRAP_ALIGNMENT_CENTER = 2 +FlowContainer.LAST_WRAP_ALIGNMENT_END = 3 + +--- @return int +function FlowContainer:get_line_count() end + +--- @param alignment FlowContainer.AlignmentMode +function FlowContainer:set_alignment(alignment) end + +--- @return FlowContainer.AlignmentMode +function FlowContainer:get_alignment() end + +--- @param last_wrap_alignment FlowContainer.LastWrapAlignmentMode +function FlowContainer:set_last_wrap_alignment(last_wrap_alignment) end + +--- @return FlowContainer.LastWrapAlignmentMode +function FlowContainer:get_last_wrap_alignment() end + +--- @param vertical bool +function FlowContainer:set_vertical(vertical) end + +--- @return bool +function FlowContainer:is_vertical() end + +--- @param reverse_fill bool +function FlowContainer:set_reverse_fill(reverse_fill) end + +--- @return bool +function FlowContainer:is_reverse_fill() end + + +----------------------------------------------------------- +-- FogMaterial +----------------------------------------------------------- + +--- @class FogMaterial: Material, { [string]: any } +--- @field density float +--- @field albedo Color +--- @field emission Color +--- @field height_falloff float +--- @field edge_fade float +--- @field density_texture Texture3D +FogMaterial = {} + +--- @return FogMaterial +function FogMaterial:new() end + +--- @param density float +function FogMaterial:set_density(density) end + +--- @return float +function FogMaterial:get_density() end + +--- @param albedo Color +function FogMaterial:set_albedo(albedo) end + +--- @return Color +function FogMaterial:get_albedo() end + +--- @param emission Color +function FogMaterial:set_emission(emission) end + +--- @return Color +function FogMaterial:get_emission() end + +--- @param height_falloff float +function FogMaterial:set_height_falloff(height_falloff) end + +--- @return float +function FogMaterial:get_height_falloff() end + +--- @param edge_fade float +function FogMaterial:set_edge_fade(edge_fade) end + +--- @return float +function FogMaterial:get_edge_fade() end + +--- @param density_texture Texture3D +function FogMaterial:set_density_texture(density_texture) end + +--- @return Texture3D +function FogMaterial:get_density_texture() end + + +----------------------------------------------------------- +-- FogVolume +----------------------------------------------------------- + +--- @class FogVolume: VisualInstance3D, { [string]: any } +--- @field size Vector3 +--- @field shape int +--- @field material FogMaterial | ShaderMaterial +FogVolume = {} + +--- @return FogVolume +function FogVolume:new() end + +--- @param size Vector3 +function FogVolume:set_size(size) end + +--- @return Vector3 +function FogVolume:get_size() end + +--- @param shape RenderingServer.FogVolumeShape +function FogVolume:set_shape(shape) end + +--- @return RenderingServer.FogVolumeShape +function FogVolume:get_shape() end + +--- @param material Material +function FogVolume:set_material(material) end + +--- @return Material +function FogVolume:get_material() end + + +----------------------------------------------------------- +-- FoldableContainer +----------------------------------------------------------- + +--- @class FoldableContainer: Container, { [string]: any } +--- @field folded bool +--- @field title String +--- @field title_alignment int +--- @field title_position int +--- @field title_text_overrun_behavior int +--- @field foldable_group FoldableGroup +--- @field title_text_direction int +--- @field language String +FoldableContainer = {} + +--- @return FoldableContainer +function FoldableContainer:new() end + +--- @alias FoldableContainer.TitlePosition `FoldableContainer.POSITION_TOP` | `FoldableContainer.POSITION_BOTTOM` +FoldableContainer.POSITION_TOP = 0 +FoldableContainer.POSITION_BOTTOM = 1 + +FoldableContainer.folding_changed = Signal() + +function FoldableContainer:fold() end + +function FoldableContainer:expand() end + +--- @param folded bool +function FoldableContainer:set_folded(folded) end + +--- @return bool +function FoldableContainer:is_folded() end + +--- @param button_group FoldableGroup +function FoldableContainer:set_foldable_group(button_group) end + +--- @return FoldableGroup +function FoldableContainer:get_foldable_group() end + +--- @param text String +function FoldableContainer:set_title(text) end + +--- @return String +function FoldableContainer:get_title() end + +--- @param alignment HorizontalAlignment +function FoldableContainer:set_title_alignment(alignment) end + +--- @return HorizontalAlignment +function FoldableContainer:get_title_alignment() end + +--- @param language String +function FoldableContainer:set_language(language) end + +--- @return String +function FoldableContainer:get_language() end + +--- @param text_direction Control.TextDirection +function FoldableContainer:set_title_text_direction(text_direction) end + +--- @return Control.TextDirection +function FoldableContainer:get_title_text_direction() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function FoldableContainer:set_title_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function FoldableContainer:get_title_text_overrun_behavior() end + +--- @param title_position FoldableContainer.TitlePosition +function FoldableContainer:set_title_position(title_position) end + +--- @return FoldableContainer.TitlePosition +function FoldableContainer:get_title_position() end + +--- @param control Control +function FoldableContainer:add_title_bar_control(control) end + +--- @param control Control +function FoldableContainer:remove_title_bar_control(control) end + + +----------------------------------------------------------- +-- FoldableGroup +----------------------------------------------------------- + +--- @class FoldableGroup: Resource, { [string]: any } +--- @field allow_folding_all bool +FoldableGroup = {} + +--- @return FoldableGroup +function FoldableGroup:new() end + +FoldableGroup.expanded = Signal() + +--- @return FoldableContainer +function FoldableGroup:get_expanded_container() end + +--- @return Array[FoldableContainer] +function FoldableGroup:get_containers() end + +--- @param enabled bool +function FoldableGroup:set_allow_folding_all(enabled) end + +--- @return bool +function FoldableGroup:is_allow_folding_all() end + + +----------------------------------------------------------- +-- Font +----------------------------------------------------------- + +--- @class Font: Resource, { [string]: any } +--- @field fallbacks Array[24/17:Font] +Font = {} + +--- @param fallbacks Array[Font] +function Font:set_fallbacks(fallbacks) end + +--- @return Array[Font] +function Font:get_fallbacks() end + +--- @param variation_coordinates Dictionary +--- @param face_index int? Default: 0 +--- @param strength float? Default: 0.0 +--- @param transform Transform2D? Default: Transform2D(1, 0, 0, 1, 0, 0) +--- @param spacing_top int? Default: 0 +--- @param spacing_bottom int? Default: 0 +--- @param spacing_space int? Default: 0 +--- @param spacing_glyph int? Default: 0 +--- @param baseline_offset float? Default: 0.0 +--- @return RID +function Font:find_variation(variation_coordinates, face_index, strength, transform, spacing_top, spacing_bottom, spacing_space, spacing_glyph, baseline_offset) end + +--- @return Array[RID] +function Font:get_rids() end + +--- @param font_size int? Default: 16 +--- @return float +function Font:get_height(font_size) end + +--- @param font_size int? Default: 16 +--- @return float +function Font:get_ascent(font_size) end + +--- @param font_size int? Default: 16 +--- @return float +function Font:get_descent(font_size) end + +--- @param font_size int? Default: 16 +--- @return float +function Font:get_underline_position(font_size) end + +--- @param font_size int? Default: 16 +--- @return float +function Font:get_underline_thickness(font_size) end + +--- @return String +function Font:get_font_name() end + +--- @return String +function Font:get_font_style_name() end + +--- @return Dictionary +function Font:get_ot_name_strings() end + +--- @return TextServer.FontStyle +function Font:get_font_style() end + +--- @return int +function Font:get_font_weight() end + +--- @return int +function Font:get_font_stretch() end + +--- @param spacing TextServer.SpacingType +--- @return int +function Font:get_spacing(spacing) end + +--- @return Dictionary +function Font:get_opentype_features() end + +--- @param single_line int +--- @param multi_line int +function Font:set_cache_capacity(single_line, multi_line) end + +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @return Vector2 +function Font:get_string_size(text, alignment, width, font_size, justification_flags, direction, orientation) end + +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param max_lines int? Default: -1 +--- @param brk_flags TextServer.LineBreakFlag? Default: 3 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @return Vector2 +function Font:get_multiline_string_size(text, alignment, width, font_size, max_lines, brk_flags, justification_flags, direction, orientation) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function Font:draw_string(canvas_item, pos, text, alignment, width, font_size, modulate, justification_flags, direction, orientation, oversampling) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param max_lines int? Default: -1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param brk_flags TextServer.LineBreakFlag? Default: 3 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function Font:draw_multiline_string(canvas_item, pos, text, alignment, width, font_size, max_lines, modulate, brk_flags, justification_flags, direction, orientation, oversampling) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param size int? Default: 1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function Font:draw_string_outline(canvas_item, pos, text, alignment, width, font_size, size, modulate, justification_flags, direction, orientation, oversampling) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param text String +--- @param alignment HorizontalAlignment? Default: 0 +--- @param width float? Default: -1 +--- @param font_size int? Default: 16 +--- @param max_lines int? Default: -1 +--- @param size int? Default: 1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param brk_flags TextServer.LineBreakFlag? Default: 3 +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @param oversampling float? Default: 0.0 +function Font:draw_multiline_string_outline(canvas_item, pos, text, alignment, width, font_size, max_lines, size, modulate, brk_flags, justification_flags, direction, orientation, oversampling) end + +--- @param char int +--- @param font_size int +--- @return Vector2 +function Font:get_char_size(char, font_size) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param char int +--- @param font_size int +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +--- @return float +function Font:draw_char(canvas_item, pos, char, font_size, modulate, oversampling) end + +--- @param canvas_item RID +--- @param pos Vector2 +--- @param char int +--- @param font_size int +--- @param size int? Default: -1 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +--- @return float +function Font:draw_char_outline(canvas_item, pos, char, font_size, size, modulate, oversampling) end + +--- @param char int +--- @return bool +function Font:has_char(char) end + +--- @return String +function Font:get_supported_chars() end + +--- @param language String +--- @return bool +function Font:is_language_supported(language) end + +--- @param script String +--- @return bool +function Font:is_script_supported(script) end + +--- @return Dictionary +function Font:get_supported_feature_list() end + +--- @return Dictionary +function Font:get_supported_variation_list() end + +--- @return int +function Font:get_face_count() end + + +----------------------------------------------------------- +-- FontFile +----------------------------------------------------------- + +--- @class FontFile: Font, { [string]: any } +--- @field data PackedByteArray +--- @field generate_mipmaps bool +--- @field disable_embedded_bitmaps bool +--- @field antialiasing int +--- @field font_name String +--- @field style_name String +--- @field font_style int +--- @field font_weight int +--- @field font_stretch int +--- @field subpixel_positioning int +--- @field keep_rounding_remainders bool +--- @field multichannel_signed_distance_field bool +--- @field msdf_pixel_range int +--- @field msdf_size int +--- @field allow_system_fallback bool +--- @field force_autohinter bool +--- @field modulate_color_glyphs bool +--- @field hinting int +--- @field fixed_size int +--- @field fixed_size_scale_mode int +--- @field opentype_feature_overrides Dictionary +--- @field oversampling float +FontFile = {} + +--- @return FontFile +function FontFile:new() end + +--- @param path String +--- @return Error +function FontFile:load_bitmap_font(path) end + +--- @param path String +--- @return Error +function FontFile:load_dynamic_font(path) end + +--- @param data PackedByteArray +function FontFile:set_data(data) end + +--- @return PackedByteArray +function FontFile:get_data() end + +--- @param name String +function FontFile:set_font_name(name) end + +--- @param name String +function FontFile:set_font_style_name(name) end + +--- @param style TextServer.FontStyle +function FontFile:set_font_style(style) end + +--- @param weight int +function FontFile:set_font_weight(weight) end + +--- @param stretch int +function FontFile:set_font_stretch(stretch) end + +--- @param antialiasing TextServer.FontAntialiasing +function FontFile:set_antialiasing(antialiasing) end + +--- @return TextServer.FontAntialiasing +function FontFile:get_antialiasing() end + +--- @param disable_embedded_bitmaps bool +function FontFile:set_disable_embedded_bitmaps(disable_embedded_bitmaps) end + +--- @return bool +function FontFile:get_disable_embedded_bitmaps() end + +--- @param generate_mipmaps bool +function FontFile:set_generate_mipmaps(generate_mipmaps) end + +--- @return bool +function FontFile:get_generate_mipmaps() end + +--- @param msdf bool +function FontFile:set_multichannel_signed_distance_field(msdf) end + +--- @return bool +function FontFile:is_multichannel_signed_distance_field() end + +--- @param msdf_pixel_range int +function FontFile:set_msdf_pixel_range(msdf_pixel_range) end + +--- @return int +function FontFile:get_msdf_pixel_range() end + +--- @param msdf_size int +function FontFile:set_msdf_size(msdf_size) end + +--- @return int +function FontFile:get_msdf_size() end + +--- @param fixed_size int +function FontFile:set_fixed_size(fixed_size) end + +--- @return int +function FontFile:get_fixed_size() end + +--- @param fixed_size_scale_mode TextServer.FixedSizeScaleMode +function FontFile:set_fixed_size_scale_mode(fixed_size_scale_mode) end + +--- @return TextServer.FixedSizeScaleMode +function FontFile:get_fixed_size_scale_mode() end + +--- @param allow_system_fallback bool +function FontFile:set_allow_system_fallback(allow_system_fallback) end + +--- @return bool +function FontFile:is_allow_system_fallback() end + +--- @param force_autohinter bool +function FontFile:set_force_autohinter(force_autohinter) end + +--- @return bool +function FontFile:is_force_autohinter() end + +--- @param modulate bool +function FontFile:set_modulate_color_glyphs(modulate) end + +--- @return bool +function FontFile:is_modulate_color_glyphs() end + +--- @param hinting TextServer.Hinting +function FontFile:set_hinting(hinting) end + +--- @return TextServer.Hinting +function FontFile:get_hinting() end + +--- @param subpixel_positioning TextServer.SubpixelPositioning +function FontFile:set_subpixel_positioning(subpixel_positioning) end + +--- @return TextServer.SubpixelPositioning +function FontFile:get_subpixel_positioning() end + +--- @param keep_rounding_remainders bool +function FontFile:set_keep_rounding_remainders(keep_rounding_remainders) end + +--- @return bool +function FontFile:get_keep_rounding_remainders() end + +--- @param oversampling float +function FontFile:set_oversampling(oversampling) end + +--- @return float +function FontFile:get_oversampling() end + +--- @return int +function FontFile:get_cache_count() end + +function FontFile:clear_cache() end + +--- @param cache_index int +function FontFile:remove_cache(cache_index) end + +--- @param cache_index int +--- @return Array[Vector2i] +function FontFile:get_size_cache_list(cache_index) end + +--- @param cache_index int +function FontFile:clear_size_cache(cache_index) end + +--- @param cache_index int +--- @param size Vector2i +function FontFile:remove_size_cache(cache_index, size) end + +--- @param cache_index int +--- @param variation_coordinates Dictionary +function FontFile:set_variation_coordinates(cache_index, variation_coordinates) end + +--- @param cache_index int +--- @return Dictionary +function FontFile:get_variation_coordinates(cache_index) end + +--- @param cache_index int +--- @param strength float +function FontFile:set_embolden(cache_index, strength) end + +--- @param cache_index int +--- @return float +function FontFile:get_embolden(cache_index) end + +--- @param cache_index int +--- @param transform Transform2D +function FontFile:set_transform(cache_index, transform) end + +--- @param cache_index int +--- @return Transform2D +function FontFile:get_transform(cache_index) end + +--- @param cache_index int +--- @param spacing TextServer.SpacingType +--- @param value int +function FontFile:set_extra_spacing(cache_index, spacing, value) end + +--- @param cache_index int +--- @param spacing TextServer.SpacingType +--- @return int +function FontFile:get_extra_spacing(cache_index, spacing) end + +--- @param cache_index int +--- @param baseline_offset float +function FontFile:set_extra_baseline_offset(cache_index, baseline_offset) end + +--- @param cache_index int +--- @return float +function FontFile:get_extra_baseline_offset(cache_index) end + +--- @param cache_index int +--- @param face_index int +function FontFile:set_face_index(cache_index, face_index) end + +--- @param cache_index int +--- @return int +function FontFile:get_face_index(cache_index) end + +--- @param cache_index int +--- @param size int +--- @param ascent float +function FontFile:set_cache_ascent(cache_index, size, ascent) end + +--- @param cache_index int +--- @param size int +--- @return float +function FontFile:get_cache_ascent(cache_index, size) end + +--- @param cache_index int +--- @param size int +--- @param descent float +function FontFile:set_cache_descent(cache_index, size, descent) end + +--- @param cache_index int +--- @param size int +--- @return float +function FontFile:get_cache_descent(cache_index, size) end + +--- @param cache_index int +--- @param size int +--- @param underline_position float +function FontFile:set_cache_underline_position(cache_index, size, underline_position) end + +--- @param cache_index int +--- @param size int +--- @return float +function FontFile:get_cache_underline_position(cache_index, size) end + +--- @param cache_index int +--- @param size int +--- @param underline_thickness float +function FontFile:set_cache_underline_thickness(cache_index, size, underline_thickness) end + +--- @param cache_index int +--- @param size int +--- @return float +function FontFile:get_cache_underline_thickness(cache_index, size) end + +--- @param cache_index int +--- @param size int +--- @param scale float +function FontFile:set_cache_scale(cache_index, size, scale) end + +--- @param cache_index int +--- @param size int +--- @return float +function FontFile:get_cache_scale(cache_index, size) end + +--- @param cache_index int +--- @param size Vector2i +--- @return int +function FontFile:get_texture_count(cache_index, size) end + +--- @param cache_index int +--- @param size Vector2i +function FontFile:clear_textures(cache_index, size) end + +--- @param cache_index int +--- @param size Vector2i +--- @param texture_index int +function FontFile:remove_texture(cache_index, size, texture_index) end + +--- @param cache_index int +--- @param size Vector2i +--- @param texture_index int +--- @param image Image +function FontFile:set_texture_image(cache_index, size, texture_index, image) end + +--- @param cache_index int +--- @param size Vector2i +--- @param texture_index int +--- @return Image +function FontFile:get_texture_image(cache_index, size, texture_index) end + +--- @param cache_index int +--- @param size Vector2i +--- @param texture_index int +--- @param offset PackedInt32Array +function FontFile:set_texture_offsets(cache_index, size, texture_index, offset) end + +--- @param cache_index int +--- @param size Vector2i +--- @param texture_index int +--- @return PackedInt32Array +function FontFile:get_texture_offsets(cache_index, size, texture_index) end + +--- @param cache_index int +--- @param size Vector2i +--- @return PackedInt32Array +function FontFile:get_glyph_list(cache_index, size) end + +--- @param cache_index int +--- @param size Vector2i +function FontFile:clear_glyphs(cache_index, size) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +function FontFile:remove_glyph(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size int +--- @param glyph int +--- @param advance Vector2 +function FontFile:set_glyph_advance(cache_index, size, glyph, advance) end + +--- @param cache_index int +--- @param size int +--- @param glyph int +--- @return Vector2 +function FontFile:get_glyph_advance(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @param offset Vector2 +function FontFile:set_glyph_offset(cache_index, size, glyph, offset) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function FontFile:get_glyph_offset(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @param gl_size Vector2 +function FontFile:set_glyph_size(cache_index, size, glyph, gl_size) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function FontFile:get_glyph_size(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @param uv_rect Rect2 +function FontFile:set_glyph_uv_rect(cache_index, size, glyph, uv_rect) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @return Rect2 +function FontFile:get_glyph_uv_rect(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @param texture_idx int +function FontFile:set_glyph_texture_idx(cache_index, size, glyph, texture_idx) end + +--- @param cache_index int +--- @param size Vector2i +--- @param glyph int +--- @return int +function FontFile:get_glyph_texture_idx(cache_index, size, glyph) end + +--- @param cache_index int +--- @param size int +--- @return Array[Vector2i] +function FontFile:get_kerning_list(cache_index, size) end + +--- @param cache_index int +--- @param size int +function FontFile:clear_kerning_map(cache_index, size) end + +--- @param cache_index int +--- @param size int +--- @param glyph_pair Vector2i +function FontFile:remove_kerning(cache_index, size, glyph_pair) end + +--- @param cache_index int +--- @param size int +--- @param glyph_pair Vector2i +--- @param kerning Vector2 +function FontFile:set_kerning(cache_index, size, glyph_pair, kerning) end + +--- @param cache_index int +--- @param size int +--- @param glyph_pair Vector2i +--- @return Vector2 +function FontFile:get_kerning(cache_index, size, glyph_pair) end + +--- @param cache_index int +--- @param size Vector2i +--- @param start int +--- @param _end int +function FontFile:render_range(cache_index, size, start, _end) end + +--- @param cache_index int +--- @param size Vector2i +--- @param index int +function FontFile:render_glyph(cache_index, size, index) end + +--- @param language String +--- @param supported bool +function FontFile:set_language_support_override(language, supported) end + +--- @param language String +--- @return bool +function FontFile:get_language_support_override(language) end + +--- @param language String +function FontFile:remove_language_support_override(language) end + +--- @return PackedStringArray +function FontFile:get_language_support_overrides() end + +--- @param script String +--- @param supported bool +function FontFile:set_script_support_override(script, supported) end + +--- @param script String +--- @return bool +function FontFile:get_script_support_override(script) end + +--- @param script String +function FontFile:remove_script_support_override(script) end + +--- @return PackedStringArray +function FontFile:get_script_support_overrides() end + +--- @param overrides Dictionary +function FontFile:set_opentype_feature_overrides(overrides) end + +--- @return Dictionary +function FontFile:get_opentype_feature_overrides() end + +--- @param size int +--- @param char int +--- @param variation_selector int +--- @return int +function FontFile:get_glyph_index(size, char, variation_selector) end + +--- @param size int +--- @param glyph_index int +--- @return int +function FontFile:get_char_from_glyph_index(size, glyph_index) end + + +----------------------------------------------------------- +-- FontVariation +----------------------------------------------------------- + +--- @class FontVariation: Font, { [string]: any } +--- @field base_font Font +--- @field variation_opentype Dictionary +--- @field variation_face_index int +--- @field variation_embolden float +--- @field variation_transform Transform2D +--- @field opentype_features Dictionary +--- @field spacing_glyph int +--- @field spacing_space int +--- @field spacing_top int +--- @field spacing_bottom int +--- @field baseline_offset float +FontVariation = {} + +--- @return FontVariation +function FontVariation:new() end + +--- @param font Font +function FontVariation:set_base_font(font) end + +--- @return Font +function FontVariation:get_base_font() end + +--- @param coords Dictionary +function FontVariation:set_variation_opentype(coords) end + +--- @return Dictionary +function FontVariation:get_variation_opentype() end + +--- @param strength float +function FontVariation:set_variation_embolden(strength) end + +--- @return float +function FontVariation:get_variation_embolden() end + +--- @param face_index int +function FontVariation:set_variation_face_index(face_index) end + +--- @return int +function FontVariation:get_variation_face_index() end + +--- @param transform Transform2D +function FontVariation:set_variation_transform(transform) end + +--- @return Transform2D +function FontVariation:get_variation_transform() end + +--- @param features Dictionary +function FontVariation:set_opentype_features(features) end + +--- @param spacing TextServer.SpacingType +--- @param value int +function FontVariation:set_spacing(spacing, value) end + +--- @param baseline_offset float +function FontVariation:set_baseline_offset(baseline_offset) end + +--- @return float +function FontVariation:get_baseline_offset() end + + +----------------------------------------------------------- +-- FramebufferCacheRD +----------------------------------------------------------- + +--- @class FramebufferCacheRD: Object, { [string]: any } +FramebufferCacheRD = {} + +--- @return FramebufferCacheRD +function FramebufferCacheRD:new() end + +--- static +--- @param textures Array[RID] +--- @param passes Array[RDFramebufferPass] +--- @param views int +--- @return RID +function FramebufferCacheRD:get_cache_multipass(textures, passes, views) end + + +----------------------------------------------------------- +-- GDExtension +----------------------------------------------------------- + +--- @class GDExtension: Resource, { [string]: any } +GDExtension = {} + +--- @return GDExtension +function GDExtension:new() end + +--- @alias GDExtension.InitializationLevel `GDExtension.INITIALIZATION_LEVEL_CORE` | `GDExtension.INITIALIZATION_LEVEL_SERVERS` | `GDExtension.INITIALIZATION_LEVEL_SCENE` | `GDExtension.INITIALIZATION_LEVEL_EDITOR` +GDExtension.INITIALIZATION_LEVEL_CORE = 0 +GDExtension.INITIALIZATION_LEVEL_SERVERS = 1 +GDExtension.INITIALIZATION_LEVEL_SCENE = 2 +GDExtension.INITIALIZATION_LEVEL_EDITOR = 3 + +--- @return bool +function GDExtension:is_library_open() end + +--- @return GDExtension.InitializationLevel +function GDExtension:get_minimum_library_initialization_level() end + + +----------------------------------------------------------- +-- GDExtensionManager +----------------------------------------------------------- + +--- @class GDExtensionManager: Object, { [string]: any } +GDExtensionManager = {} + +--- @alias GDExtensionManager.LoadStatus `GDExtensionManager.LOAD_STATUS_OK` | `GDExtensionManager.LOAD_STATUS_FAILED` | `GDExtensionManager.LOAD_STATUS_ALREADY_LOADED` | `GDExtensionManager.LOAD_STATUS_NOT_LOADED` | `GDExtensionManager.LOAD_STATUS_NEEDS_RESTART` +GDExtensionManager.LOAD_STATUS_OK = 0 +GDExtensionManager.LOAD_STATUS_FAILED = 1 +GDExtensionManager.LOAD_STATUS_ALREADY_LOADED = 2 +GDExtensionManager.LOAD_STATUS_NOT_LOADED = 3 +GDExtensionManager.LOAD_STATUS_NEEDS_RESTART = 4 + +GDExtensionManager.extensions_reloaded = Signal() +GDExtensionManager.extension_loaded = Signal() +GDExtensionManager.extension_unloading = Signal() + +--- @param path String +--- @return GDExtensionManager.LoadStatus +function GDExtensionManager:load_extension(path) end + +--- @param path String +--- @return GDExtensionManager.LoadStatus +function GDExtensionManager:reload_extension(path) end + +--- @param path String +--- @return GDExtensionManager.LoadStatus +function GDExtensionManager:unload_extension(path) end + +--- @param path String +--- @return bool +function GDExtensionManager:is_extension_loaded(path) end + +--- @return PackedStringArray +function GDExtensionManager:get_loaded_extensions() end + +--- @param path String +--- @return GDExtension +function GDExtensionManager:get_extension(path) end + + +----------------------------------------------------------- +-- GDScript +----------------------------------------------------------- + +--- @class GDScript: Script, { [string]: any } +GDScript = {} + +--- @return GDScript +function GDScript:new() end + +--- @return any +function GDScript:new(...) end + + +----------------------------------------------------------- +-- GDScriptSyntaxHighlighter +----------------------------------------------------------- + +--- @class GDScriptSyntaxHighlighter: EditorSyntaxHighlighter, { [string]: any } +GDScriptSyntaxHighlighter = {} + +--- @return GDScriptSyntaxHighlighter +function GDScriptSyntaxHighlighter:new() end + + +----------------------------------------------------------- +-- GLTFAccessor +----------------------------------------------------------- + +--- @class GLTFAccessor: Resource, { [string]: any } +--- @field buffer_view int +--- @field byte_offset int +--- @field component_type int +--- @field normalized bool +--- @field count int +--- @field accessor_type int +--- @field type int +--- @field min PackedFloat64Array +--- @field max PackedFloat64Array +--- @field sparse_count int +--- @field sparse_indices_buffer_view int +--- @field sparse_indices_byte_offset int +--- @field sparse_indices_component_type int +--- @field sparse_values_buffer_view int +--- @field sparse_values_byte_offset int +GLTFAccessor = {} + +--- @return GLTFAccessor +function GLTFAccessor:new() end + +--- @alias GLTFAccessor.GLTFAccessorType `GLTFAccessor.TYPE_SCALAR` | `GLTFAccessor.TYPE_VEC2` | `GLTFAccessor.TYPE_VEC3` | `GLTFAccessor.TYPE_VEC4` | `GLTFAccessor.TYPE_MAT2` | `GLTFAccessor.TYPE_MAT3` | `GLTFAccessor.TYPE_MAT4` +GLTFAccessor.TYPE_SCALAR = 0 +GLTFAccessor.TYPE_VEC2 = 1 +GLTFAccessor.TYPE_VEC3 = 2 +GLTFAccessor.TYPE_VEC4 = 3 +GLTFAccessor.TYPE_MAT2 = 4 +GLTFAccessor.TYPE_MAT3 = 5 +GLTFAccessor.TYPE_MAT4 = 6 + +--- @alias GLTFAccessor.GLTFComponentType `GLTFAccessor.COMPONENT_TYPE_NONE` | `GLTFAccessor.COMPONENT_TYPE_SIGNED_BYTE` | `GLTFAccessor.COMPONENT_TYPE_UNSIGNED_BYTE` | `GLTFAccessor.COMPONENT_TYPE_SIGNED_SHORT` | `GLTFAccessor.COMPONENT_TYPE_UNSIGNED_SHORT` | `GLTFAccessor.COMPONENT_TYPE_SIGNED_INT` | `GLTFAccessor.COMPONENT_TYPE_UNSIGNED_INT` | `GLTFAccessor.COMPONENT_TYPE_SINGLE_FLOAT` | `GLTFAccessor.COMPONENT_TYPE_DOUBLE_FLOAT` | `GLTFAccessor.COMPONENT_TYPE_HALF_FLOAT` | `GLTFAccessor.COMPONENT_TYPE_SIGNED_LONG` | `GLTFAccessor.COMPONENT_TYPE_UNSIGNED_LONG` +GLTFAccessor.COMPONENT_TYPE_NONE = 0 +GLTFAccessor.COMPONENT_TYPE_SIGNED_BYTE = 5120 +GLTFAccessor.COMPONENT_TYPE_UNSIGNED_BYTE = 5121 +GLTFAccessor.COMPONENT_TYPE_SIGNED_SHORT = 5122 +GLTFAccessor.COMPONENT_TYPE_UNSIGNED_SHORT = 5123 +GLTFAccessor.COMPONENT_TYPE_SIGNED_INT = 5124 +GLTFAccessor.COMPONENT_TYPE_UNSIGNED_INT = 5125 +GLTFAccessor.COMPONENT_TYPE_SINGLE_FLOAT = 5126 +GLTFAccessor.COMPONENT_TYPE_DOUBLE_FLOAT = 5130 +GLTFAccessor.COMPONENT_TYPE_HALF_FLOAT = 5131 +GLTFAccessor.COMPONENT_TYPE_SIGNED_LONG = 5134 +GLTFAccessor.COMPONENT_TYPE_UNSIGNED_LONG = 5135 + +--- @return int +function GLTFAccessor:get_buffer_view() end + +--- @param buffer_view int +function GLTFAccessor:set_buffer_view(buffer_view) end + +--- @return int +function GLTFAccessor:get_byte_offset() end + +--- @param byte_offset int +function GLTFAccessor:set_byte_offset(byte_offset) end + +--- @return GLTFAccessor.GLTFComponentType +function GLTFAccessor:get_component_type() end + +--- @param component_type GLTFAccessor.GLTFComponentType +function GLTFAccessor:set_component_type(component_type) end + +--- @return bool +function GLTFAccessor:get_normalized() end + +--- @param normalized bool +function GLTFAccessor:set_normalized(normalized) end + +--- @return int +function GLTFAccessor:get_count() end + +--- @param count int +function GLTFAccessor:set_count(count) end + +--- @return GLTFAccessor.GLTFAccessorType +function GLTFAccessor:get_accessor_type() end + +--- @param accessor_type GLTFAccessor.GLTFAccessorType +function GLTFAccessor:set_accessor_type(accessor_type) end + +--- @return int +function GLTFAccessor:get_type() end + +--- @param type int +function GLTFAccessor:set_type(type) end + +--- @return PackedFloat64Array +function GLTFAccessor:get_min() end + +--- @param min PackedFloat64Array +function GLTFAccessor:set_min(min) end + +--- @return PackedFloat64Array +function GLTFAccessor:get_max() end + +--- @param max PackedFloat64Array +function GLTFAccessor:set_max(max) end + +--- @return int +function GLTFAccessor:get_sparse_count() end + +--- @param sparse_count int +function GLTFAccessor:set_sparse_count(sparse_count) end + +--- @return int +function GLTFAccessor:get_sparse_indices_buffer_view() end + +--- @param sparse_indices_buffer_view int +function GLTFAccessor:set_sparse_indices_buffer_view(sparse_indices_buffer_view) end + +--- @return int +function GLTFAccessor:get_sparse_indices_byte_offset() end + +--- @param sparse_indices_byte_offset int +function GLTFAccessor:set_sparse_indices_byte_offset(sparse_indices_byte_offset) end + +--- @return GLTFAccessor.GLTFComponentType +function GLTFAccessor:get_sparse_indices_component_type() end + +--- @param sparse_indices_component_type GLTFAccessor.GLTFComponentType +function GLTFAccessor:set_sparse_indices_component_type(sparse_indices_component_type) end + +--- @return int +function GLTFAccessor:get_sparse_values_buffer_view() end + +--- @param sparse_values_buffer_view int +function GLTFAccessor:set_sparse_values_buffer_view(sparse_values_buffer_view) end + +--- @return int +function GLTFAccessor:get_sparse_values_byte_offset() end + +--- @param sparse_values_byte_offset int +function GLTFAccessor:set_sparse_values_byte_offset(sparse_values_byte_offset) end + + +----------------------------------------------------------- +-- GLTFAnimation +----------------------------------------------------------- + +--- @class GLTFAnimation: Resource, { [string]: any } +--- @field original_name String +--- @field loop bool +GLTFAnimation = {} + +--- @return GLTFAnimation +function GLTFAnimation:new() end + +--- @return String +function GLTFAnimation:get_original_name() end + +--- @param original_name String +function GLTFAnimation:set_original_name(original_name) end + +--- @return bool +function GLTFAnimation:get_loop() end + +--- @param loop bool +function GLTFAnimation:set_loop(loop) end + +--- @param extension_name StringName +--- @return any +function GLTFAnimation:get_additional_data(extension_name) end + +--- @param extension_name StringName +--- @param additional_data any +function GLTFAnimation:set_additional_data(extension_name, additional_data) end + + +----------------------------------------------------------- +-- GLTFBufferView +----------------------------------------------------------- + +--- @class GLTFBufferView: Resource, { [string]: any } +--- @field buffer int +--- @field byte_offset int +--- @field byte_length int +--- @field byte_stride int +--- @field indices bool +--- @field vertex_attributes bool +GLTFBufferView = {} + +--- @return GLTFBufferView +function GLTFBufferView:new() end + +--- @param state GLTFState +--- @return PackedByteArray +function GLTFBufferView:load_buffer_view_data(state) end + +--- @return int +function GLTFBufferView:get_buffer() end + +--- @param buffer int +function GLTFBufferView:set_buffer(buffer) end + +--- @return int +function GLTFBufferView:get_byte_offset() end + +--- @param byte_offset int +function GLTFBufferView:set_byte_offset(byte_offset) end + +--- @return int +function GLTFBufferView:get_byte_length() end + +--- @param byte_length int +function GLTFBufferView:set_byte_length(byte_length) end + +--- @return int +function GLTFBufferView:get_byte_stride() end + +--- @param byte_stride int +function GLTFBufferView:set_byte_stride(byte_stride) end + +--- @return bool +function GLTFBufferView:get_indices() end + +--- @param indices bool +function GLTFBufferView:set_indices(indices) end + +--- @return bool +function GLTFBufferView:get_vertex_attributes() end + +--- @param is_attributes bool +function GLTFBufferView:set_vertex_attributes(is_attributes) end + + +----------------------------------------------------------- +-- GLTFCamera +----------------------------------------------------------- + +--- @class GLTFCamera: Resource, { [string]: any } +--- @field perspective bool +--- @field fov float +--- @field size_mag float +--- @field depth_far float +--- @field depth_near float +GLTFCamera = {} + +--- @return GLTFCamera +function GLTFCamera:new() end + +--- static +--- @param camera_node Camera3D +--- @return GLTFCamera +function GLTFCamera:from_node(camera_node) end + +--- @return Camera3D +function GLTFCamera:to_node() end + +--- static +--- @param dictionary Dictionary +--- @return GLTFCamera +function GLTFCamera:from_dictionary(dictionary) end + +--- @return Dictionary +function GLTFCamera:to_dictionary() end + +--- @return bool +function GLTFCamera:get_perspective() end + +--- @param perspective bool +function GLTFCamera:set_perspective(perspective) end + +--- @return float +function GLTFCamera:get_fov() end + +--- @param fov float +function GLTFCamera:set_fov(fov) end + +--- @return float +function GLTFCamera:get_size_mag() end + +--- @param size_mag float +function GLTFCamera:set_size_mag(size_mag) end + +--- @return float +function GLTFCamera:get_depth_far() end + +--- @param zdepth_far float +function GLTFCamera:set_depth_far(zdepth_far) end + +--- @return float +function GLTFCamera:get_depth_near() end + +--- @param zdepth_near float +function GLTFCamera:set_depth_near(zdepth_near) end + + +----------------------------------------------------------- +-- GLTFDocument +----------------------------------------------------------- + +--- @class GLTFDocument: Resource, { [string]: any } +--- @field image_format String +--- @field lossy_quality float +--- @field fallback_image_format String +--- @field fallback_image_quality float +--- @field root_node_mode int +--- @field visibility_mode int +GLTFDocument = {} + +--- @return GLTFDocument +function GLTFDocument:new() end + +--- @alias GLTFDocument.RootNodeMode `GLTFDocument.ROOT_NODE_MODE_SINGLE_ROOT` | `GLTFDocument.ROOT_NODE_MODE_KEEP_ROOT` | `GLTFDocument.ROOT_NODE_MODE_MULTI_ROOT` +GLTFDocument.ROOT_NODE_MODE_SINGLE_ROOT = 0 +GLTFDocument.ROOT_NODE_MODE_KEEP_ROOT = 1 +GLTFDocument.ROOT_NODE_MODE_MULTI_ROOT = 2 + +--- @alias GLTFDocument.VisibilityMode `GLTFDocument.VISIBILITY_MODE_INCLUDE_REQUIRED` | `GLTFDocument.VISIBILITY_MODE_INCLUDE_OPTIONAL` | `GLTFDocument.VISIBILITY_MODE_EXCLUDE` +GLTFDocument.VISIBILITY_MODE_INCLUDE_REQUIRED = 0 +GLTFDocument.VISIBILITY_MODE_INCLUDE_OPTIONAL = 1 +GLTFDocument.VISIBILITY_MODE_EXCLUDE = 2 + +--- @param image_format String +function GLTFDocument:set_image_format(image_format) end + +--- @return String +function GLTFDocument:get_image_format() end + +--- @param lossy_quality float +function GLTFDocument:set_lossy_quality(lossy_quality) end + +--- @return float +function GLTFDocument:get_lossy_quality() end + +--- @param fallback_image_format String +function GLTFDocument:set_fallback_image_format(fallback_image_format) end + +--- @return String +function GLTFDocument:get_fallback_image_format() end + +--- @param fallback_image_quality float +function GLTFDocument:set_fallback_image_quality(fallback_image_quality) end + +--- @return float +function GLTFDocument:get_fallback_image_quality() end + +--- @param root_node_mode GLTFDocument.RootNodeMode +function GLTFDocument:set_root_node_mode(root_node_mode) end + +--- @return GLTFDocument.RootNodeMode +function GLTFDocument:get_root_node_mode() end + +--- @param visibility_mode GLTFDocument.VisibilityMode +function GLTFDocument:set_visibility_mode(visibility_mode) end + +--- @return GLTFDocument.VisibilityMode +function GLTFDocument:get_visibility_mode() end + +--- @param path String +--- @param state GLTFState +--- @param flags int? Default: 0 +--- @param base_path String? Default: "" +--- @return Error +function GLTFDocument:append_from_file(path, state, flags, base_path) end + +--- @param bytes PackedByteArray +--- @param base_path String +--- @param state GLTFState +--- @param flags int? Default: 0 +--- @return Error +function GLTFDocument:append_from_buffer(bytes, base_path, state, flags) end + +--- @param node Node +--- @param state GLTFState +--- @param flags int? Default: 0 +--- @return Error +function GLTFDocument:append_from_scene(node, state, flags) end + +--- @param state GLTFState +--- @param bake_fps float? Default: 30 +--- @param trimming bool? Default: false +--- @param remove_immutable_tracks bool? Default: true +--- @return Node +function GLTFDocument:generate_scene(state, bake_fps, trimming, remove_immutable_tracks) end + +--- @param state GLTFState +--- @return PackedByteArray +function GLTFDocument:generate_buffer(state) end + +--- @param state GLTFState +--- @param path String +--- @return Error +function GLTFDocument:write_to_filesystem(state, path) end + +--- static +--- @param state GLTFState +--- @param json_pointer String +--- @return GLTFObjectModelProperty +function GLTFDocument:import_object_model_property(state, json_pointer) end + +--- static +--- @param state GLTFState +--- @param node_path NodePath +--- @param godot_node Node +--- @param gltf_node_index int +--- @return GLTFObjectModelProperty +function GLTFDocument:export_object_model_property(state, node_path, godot_node, gltf_node_index) end + +--- static +--- @param extension GLTFDocumentExtension +--- @param first_priority bool? Default: false +function GLTFDocument:register_gltf_document_extension(extension, first_priority) end + +--- static +--- @param extension GLTFDocumentExtension +function GLTFDocument:unregister_gltf_document_extension(extension) end + +--- static +--- @return PackedStringArray +function GLTFDocument:get_supported_gltf_extensions() end + + +----------------------------------------------------------- +-- GLTFDocumentExtension +----------------------------------------------------------- + +--- @class GLTFDocumentExtension: Resource, { [string]: any } +GLTFDocumentExtension = {} + +--- @return GLTFDocumentExtension +function GLTFDocumentExtension:new() end + +--- @param state GLTFState +--- @param extensions PackedStringArray +--- @return Error +function GLTFDocumentExtension:_import_preflight(state, extensions) end + +--- @return PackedStringArray +function GLTFDocumentExtension:_get_supported_extensions() end + +--- @param state GLTFState +--- @param gltf_node GLTFNode +--- @param extensions Dictionary +--- @return Error +function GLTFDocumentExtension:_parse_node_extensions(state, gltf_node, extensions) end + +--- @param state GLTFState +--- @param image_data PackedByteArray +--- @param mime_type String +--- @param ret_image Image +--- @return Error +function GLTFDocumentExtension:_parse_image_data(state, image_data, mime_type, ret_image) end + +--- @return String +function GLTFDocumentExtension:_get_image_file_extension() end + +--- @param state GLTFState +--- @param texture_json Dictionary +--- @param ret_gltf_texture GLTFTexture +--- @return Error +function GLTFDocumentExtension:_parse_texture_json(state, texture_json, ret_gltf_texture) end + +--- @param state GLTFState +--- @param split_json_pointer PackedStringArray +--- @param partial_paths Array[NodePath] +--- @return GLTFObjectModelProperty +function GLTFDocumentExtension:_import_object_model_property(state, split_json_pointer, partial_paths) end + +--- @param state GLTFState +--- @return Error +function GLTFDocumentExtension:_import_post_parse(state) end + +--- @param state GLTFState +--- @return Error +function GLTFDocumentExtension:_import_pre_generate(state) end + +--- @param state GLTFState +--- @param gltf_node GLTFNode +--- @param scene_parent Node +--- @return Node3D +function GLTFDocumentExtension:_generate_scene_node(state, gltf_node, scene_parent) end + +--- @param state GLTFState +--- @param gltf_node GLTFNode +--- @param json Dictionary +--- @param node Node +--- @return Error +function GLTFDocumentExtension:_import_node(state, gltf_node, json, node) end + +--- @param state GLTFState +--- @param root Node +--- @return Error +function GLTFDocumentExtension:_import_post(state, root) end + +--- @param state GLTFState +--- @param root Node +--- @return Error +function GLTFDocumentExtension:_export_preflight(state, root) end + +--- @param state GLTFState +--- @param gltf_node GLTFNode +--- @param scene_node Node +function GLTFDocumentExtension:_convert_scene_node(state, gltf_node, scene_node) end + +--- @param state GLTFState +--- @param root Node +--- @return Error +function GLTFDocumentExtension:_export_post_convert(state, root) end + +--- @param state GLTFState +--- @return Error +function GLTFDocumentExtension:_export_preserialize(state) end + +--- @param state GLTFState +--- @param node_path NodePath +--- @param godot_node Node +--- @param gltf_node_index int +--- @param target_object Object +--- @param target_depth int +--- @return GLTFObjectModelProperty +function GLTFDocumentExtension:_export_object_model_property(state, node_path, godot_node, gltf_node_index, target_object, target_depth) end + +--- @return PackedStringArray +function GLTFDocumentExtension:_get_saveable_image_formats() end + +--- @param state GLTFState +--- @param image Image +--- @param image_dict Dictionary +--- @param image_format String +--- @param lossy_quality float +--- @return PackedByteArray +function GLTFDocumentExtension:_serialize_image_to_bytes(state, image, image_dict, image_format, lossy_quality) end + +--- @param state GLTFState +--- @param image Image +--- @param file_path String +--- @param image_format String +--- @param lossy_quality float +--- @return Error +function GLTFDocumentExtension:_save_image_at_path(state, image, file_path, image_format, lossy_quality) end + +--- @param state GLTFState +--- @param texture_json Dictionary +--- @param gltf_texture GLTFTexture +--- @param image_format String +--- @return Error +function GLTFDocumentExtension:_serialize_texture_json(state, texture_json, gltf_texture, image_format) end + +--- @param state GLTFState +--- @param gltf_node GLTFNode +--- @param json Dictionary +--- @param node Node +--- @return Error +function GLTFDocumentExtension:_export_node(state, gltf_node, json, node) end + +--- @param state GLTFState +--- @return Error +function GLTFDocumentExtension:_export_post(state) end + + +----------------------------------------------------------- +-- GLTFDocumentExtensionConvertImporterMesh +----------------------------------------------------------- + +--- @class GLTFDocumentExtensionConvertImporterMesh: GLTFDocumentExtension, { [string]: any } +GLTFDocumentExtensionConvertImporterMesh = {} + +--- @return GLTFDocumentExtensionConvertImporterMesh +function GLTFDocumentExtensionConvertImporterMesh:new() end + + +----------------------------------------------------------- +-- GLTFLight +----------------------------------------------------------- + +--- @class GLTFLight: Resource, { [string]: any } +--- @field color Color +--- @field intensity float +--- @field light_type String +--- @field range float +--- @field inner_cone_angle float +--- @field outer_cone_angle float +GLTFLight = {} + +--- @return GLTFLight +function GLTFLight:new() end + +--- static +--- @param light_node Light3D +--- @return GLTFLight +function GLTFLight:from_node(light_node) end + +--- @return Light3D +function GLTFLight:to_node() end + +--- static +--- @param dictionary Dictionary +--- @return GLTFLight +function GLTFLight:from_dictionary(dictionary) end + +--- @return Dictionary +function GLTFLight:to_dictionary() end + +--- @return Color +function GLTFLight:get_color() end + +--- @param color Color +function GLTFLight:set_color(color) end + +--- @return float +function GLTFLight:get_intensity() end + +--- @param intensity float +function GLTFLight:set_intensity(intensity) end + +--- @return String +function GLTFLight:get_light_type() end + +--- @param light_type String +function GLTFLight:set_light_type(light_type) end + +--- @return float +function GLTFLight:get_range() end + +--- @param range float +function GLTFLight:set_range(range) end + +--- @return float +function GLTFLight:get_inner_cone_angle() end + +--- @param inner_cone_angle float +function GLTFLight:set_inner_cone_angle(inner_cone_angle) end + +--- @return float +function GLTFLight:get_outer_cone_angle() end + +--- @param outer_cone_angle float +function GLTFLight:set_outer_cone_angle(outer_cone_angle) end + +--- @param extension_name StringName +--- @return any +function GLTFLight:get_additional_data(extension_name) end + +--- @param extension_name StringName +--- @param additional_data any +function GLTFLight:set_additional_data(extension_name, additional_data) end + + +----------------------------------------------------------- +-- GLTFMesh +----------------------------------------------------------- + +--- @class GLTFMesh: Resource, { [string]: any } +--- @field original_name String +--- @field mesh Object +--- @field blend_weights PackedFloat32Array +--- @field instance_materials Array +GLTFMesh = {} + +--- @return GLTFMesh +function GLTFMesh:new() end + +--- @return String +function GLTFMesh:get_original_name() end + +--- @param original_name String +function GLTFMesh:set_original_name(original_name) end + +--- @return ImporterMesh +function GLTFMesh:get_mesh() end + +--- @param mesh ImporterMesh +function GLTFMesh:set_mesh(mesh) end + +--- @return PackedFloat32Array +function GLTFMesh:get_blend_weights() end + +--- @param blend_weights PackedFloat32Array +function GLTFMesh:set_blend_weights(blend_weights) end + +--- @return Array[Material] +function GLTFMesh:get_instance_materials() end + +--- @param instance_materials Array[Material] +function GLTFMesh:set_instance_materials(instance_materials) end + +--- @param extension_name StringName +--- @return any +function GLTFMesh:get_additional_data(extension_name) end + +--- @param extension_name StringName +--- @param additional_data any +function GLTFMesh:set_additional_data(extension_name, additional_data) end + + +----------------------------------------------------------- +-- GLTFNode +----------------------------------------------------------- + +--- @class GLTFNode: Resource, { [string]: any } +--- @field original_name String +--- @field parent int +--- @field height int +--- @field xform Transform3D +--- @field mesh int +--- @field camera int +--- @field skin int +--- @field skeleton int +--- @field position Vector3 +--- @field rotation Quaternion +--- @field scale Vector3 +--- @field children PackedInt32Array +--- @field light int +--- @field visible bool +GLTFNode = {} + +--- @return GLTFNode +function GLTFNode:new() end + +--- @return String +function GLTFNode:get_original_name() end + +--- @param original_name String +function GLTFNode:set_original_name(original_name) end + +--- @return int +function GLTFNode:get_parent() end + +--- @param parent int +function GLTFNode:set_parent(parent) end + +--- @return int +function GLTFNode:get_height() end + +--- @param height int +function GLTFNode:set_height(height) end + +--- @return Transform3D +function GLTFNode:get_xform() end + +--- @param xform Transform3D +function GLTFNode:set_xform(xform) end + +--- @return int +function GLTFNode:get_mesh() end + +--- @param mesh int +function GLTFNode:set_mesh(mesh) end + +--- @return int +function GLTFNode:get_camera() end + +--- @param camera int +function GLTFNode:set_camera(camera) end + +--- @return int +function GLTFNode:get_skin() end + +--- @param skin int +function GLTFNode:set_skin(skin) end + +--- @return int +function GLTFNode:get_skeleton() end + +--- @param skeleton int +function GLTFNode:set_skeleton(skeleton) end + +--- @return Vector3 +function GLTFNode:get_position() end + +--- @param position Vector3 +function GLTFNode:set_position(position) end + +--- @return Quaternion +function GLTFNode:get_rotation() end + +--- @param rotation Quaternion +function GLTFNode:set_rotation(rotation) end + +--- @return Vector3 +function GLTFNode:get_scale() end + +--- @param scale Vector3 +function GLTFNode:set_scale(scale) end + +--- @return PackedInt32Array +function GLTFNode:get_children() end + +--- @param children PackedInt32Array +function GLTFNode:set_children(children) end + +--- @param child_index int +function GLTFNode:append_child_index(child_index) end + +--- @return int +function GLTFNode:get_light() end + +--- @param light int +function GLTFNode:set_light(light) end + +--- @return bool +function GLTFNode:get_visible() end + +--- @param visible bool +function GLTFNode:set_visible(visible) end + +--- @param extension_name StringName +--- @return any +function GLTFNode:get_additional_data(extension_name) end + +--- @param extension_name StringName +--- @param additional_data any +function GLTFNode:set_additional_data(extension_name, additional_data) end + +--- @param gltf_state GLTFState +--- @param handle_skeletons bool? Default: true +--- @return NodePath +function GLTFNode:get_scene_node_path(gltf_state, handle_skeletons) end + + +----------------------------------------------------------- +-- GLTFObjectModelProperty +----------------------------------------------------------- + +--- @class GLTFObjectModelProperty: RefCounted, { [string]: any } +--- @field gltf_to_godot_expression Expression +--- @field godot_to_gltf_expression Expression +--- @field node_paths Array +--- @field object_model_type int +--- @field json_pointers PackedStringArray +--- @field variant_type int +GLTFObjectModelProperty = {} + +--- @return GLTFObjectModelProperty +function GLTFObjectModelProperty:new() end + +--- @alias GLTFObjectModelProperty.GLTFObjectModelType `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_UNKNOWN` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_BOOL` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT_ARRAY` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT2` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT3` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT4` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT2X2` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT3X3` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT4X4` | `GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_INT` +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_UNKNOWN = 0 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_BOOL = 1 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT = 2 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT_ARRAY = 3 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT2 = 4 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT3 = 5 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT4 = 6 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT2X2 = 7 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT3X3 = 8 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_FLOAT4X4 = 9 +GLTFObjectModelProperty.GLTF_OBJECT_MODEL_TYPE_INT = 10 + +--- @param node_path NodePath +function GLTFObjectModelProperty:append_node_path(node_path) end + +--- @param node_path NodePath +--- @param prop_name StringName +function GLTFObjectModelProperty:append_path_to_property(node_path, prop_name) end + +--- @return GLTFAccessor.GLTFAccessorType +function GLTFObjectModelProperty:get_accessor_type() end + +--- @return Expression +function GLTFObjectModelProperty:get_gltf_to_godot_expression() end + +--- @param gltf_to_godot_expr Expression +function GLTFObjectModelProperty:set_gltf_to_godot_expression(gltf_to_godot_expr) end + +--- @return Expression +function GLTFObjectModelProperty:get_godot_to_gltf_expression() end + +--- @param godot_to_gltf_expr Expression +function GLTFObjectModelProperty:set_godot_to_gltf_expression(godot_to_gltf_expr) end + +--- @return Array[NodePath] +function GLTFObjectModelProperty:get_node_paths() end + +--- @return bool +function GLTFObjectModelProperty:has_node_paths() end + +--- @param node_paths Array[NodePath] +function GLTFObjectModelProperty:set_node_paths(node_paths) end + +--- @return GLTFObjectModelProperty.GLTFObjectModelType +function GLTFObjectModelProperty:get_object_model_type() end + +--- @param type GLTFObjectModelProperty.GLTFObjectModelType +function GLTFObjectModelProperty:set_object_model_type(type) end + +--- @return Array[PackedStringArray] +function GLTFObjectModelProperty:get_json_pointers() end + +--- @return bool +function GLTFObjectModelProperty:has_json_pointers() end + +--- @param json_pointers Array[PackedStringArray] +function GLTFObjectModelProperty:set_json_pointers(json_pointers) end + +--- @return Variant.Type +function GLTFObjectModelProperty:get_variant_type() end + +--- @param variant_type Variant.Type +function GLTFObjectModelProperty:set_variant_type(variant_type) end + +--- @param variant_type Variant.Type +--- @param obj_model_type GLTFObjectModelProperty.GLTFObjectModelType +function GLTFObjectModelProperty:set_types(variant_type, obj_model_type) end + + +----------------------------------------------------------- +-- GLTFPhysicsBody +----------------------------------------------------------- + +--- @class GLTFPhysicsBody: Resource, { [string]: any } +--- @field body_type String +--- @field mass float +--- @field linear_velocity Vector3 +--- @field angular_velocity Vector3 +--- @field center_of_mass Vector3 +--- @field inertia_diagonal Vector3 +--- @field inertia_orientation Quaternion +--- @field inertia_tensor Basis +GLTFPhysicsBody = {} + +--- @return GLTFPhysicsBody +function GLTFPhysicsBody:new() end + +--- static +--- @param body_node CollisionObject3D +--- @return GLTFPhysicsBody +function GLTFPhysicsBody:from_node(body_node) end + +--- @return CollisionObject3D +function GLTFPhysicsBody:to_node() end + +--- static +--- @param dictionary Dictionary +--- @return GLTFPhysicsBody +function GLTFPhysicsBody:from_dictionary(dictionary) end + +--- @return Dictionary +function GLTFPhysicsBody:to_dictionary() end + +--- @return String +function GLTFPhysicsBody:get_body_type() end + +--- @param body_type String +function GLTFPhysicsBody:set_body_type(body_type) end + +--- @return float +function GLTFPhysicsBody:get_mass() end + +--- @param mass float +function GLTFPhysicsBody:set_mass(mass) end + +--- @return Vector3 +function GLTFPhysicsBody:get_linear_velocity() end + +--- @param linear_velocity Vector3 +function GLTFPhysicsBody:set_linear_velocity(linear_velocity) end + +--- @return Vector3 +function GLTFPhysicsBody:get_angular_velocity() end + +--- @param angular_velocity Vector3 +function GLTFPhysicsBody:set_angular_velocity(angular_velocity) end + +--- @return Vector3 +function GLTFPhysicsBody:get_center_of_mass() end + +--- @param center_of_mass Vector3 +function GLTFPhysicsBody:set_center_of_mass(center_of_mass) end + +--- @return Vector3 +function GLTFPhysicsBody:get_inertia_diagonal() end + +--- @param inertia_diagonal Vector3 +function GLTFPhysicsBody:set_inertia_diagonal(inertia_diagonal) end + +--- @return Quaternion +function GLTFPhysicsBody:get_inertia_orientation() end + +--- @param inertia_orientation Quaternion +function GLTFPhysicsBody:set_inertia_orientation(inertia_orientation) end + +--- @return Basis +function GLTFPhysicsBody:get_inertia_tensor() end + +--- @param inertia_tensor Basis +function GLTFPhysicsBody:set_inertia_tensor(inertia_tensor) end + + +----------------------------------------------------------- +-- GLTFPhysicsShape +----------------------------------------------------------- + +--- @class GLTFPhysicsShape: Resource, { [string]: any } +--- @field shape_type String +--- @field size Vector3 +--- @field radius float +--- @field height float +--- @field is_trigger bool +--- @field mesh_index int +--- @field importer_mesh ImporterMesh +GLTFPhysicsShape = {} + +--- @return GLTFPhysicsShape +function GLTFPhysicsShape:new() end + +--- static +--- @param shape_node CollisionShape3D +--- @return GLTFPhysicsShape +function GLTFPhysicsShape:from_node(shape_node) end + +--- @param cache_shapes bool? Default: false +--- @return CollisionShape3D +function GLTFPhysicsShape:to_node(cache_shapes) end + +--- static +--- @param shape_resource Shape3D +--- @return GLTFPhysicsShape +function GLTFPhysicsShape:from_resource(shape_resource) end + +--- @param cache_shapes bool? Default: false +--- @return Shape3D +function GLTFPhysicsShape:to_resource(cache_shapes) end + +--- static +--- @param dictionary Dictionary +--- @return GLTFPhysicsShape +function GLTFPhysicsShape:from_dictionary(dictionary) end + +--- @return Dictionary +function GLTFPhysicsShape:to_dictionary() end + +--- @return String +function GLTFPhysicsShape:get_shape_type() end + +--- @param shape_type String +function GLTFPhysicsShape:set_shape_type(shape_type) end + +--- @return Vector3 +function GLTFPhysicsShape:get_size() end + +--- @param size Vector3 +function GLTFPhysicsShape:set_size(size) end + +--- @return float +function GLTFPhysicsShape:get_radius() end + +--- @param radius float +function GLTFPhysicsShape:set_radius(radius) end + +--- @return float +function GLTFPhysicsShape:get_height() end + +--- @param height float +function GLTFPhysicsShape:set_height(height) end + +--- @return bool +function GLTFPhysicsShape:get_is_trigger() end + +--- @param is_trigger bool +function GLTFPhysicsShape:set_is_trigger(is_trigger) end + +--- @return int +function GLTFPhysicsShape:get_mesh_index() end + +--- @param mesh_index int +function GLTFPhysicsShape:set_mesh_index(mesh_index) end + +--- @return ImporterMesh +function GLTFPhysicsShape:get_importer_mesh() end + +--- @param importer_mesh ImporterMesh +function GLTFPhysicsShape:set_importer_mesh(importer_mesh) end + + +----------------------------------------------------------- +-- GLTFSkeleton +----------------------------------------------------------- + +--- @class GLTFSkeleton: Resource, { [string]: any } +--- @field joints PackedInt32Array +--- @field roots PackedInt32Array +--- @field unique_names Array +--- @field godot_bone_node Dictionary +GLTFSkeleton = {} + +--- @return GLTFSkeleton +function GLTFSkeleton:new() end + +--- @return PackedInt32Array +function GLTFSkeleton:get_joints() end + +--- @param joints PackedInt32Array +function GLTFSkeleton:set_joints(joints) end + +--- @return PackedInt32Array +function GLTFSkeleton:get_roots() end + +--- @param roots PackedInt32Array +function GLTFSkeleton:set_roots(roots) end + +--- @return Skeleton3D +function GLTFSkeleton:get_godot_skeleton() end + +--- @return Array[String] +function GLTFSkeleton:get_unique_names() end + +--- @param unique_names Array[String] +function GLTFSkeleton:set_unique_names(unique_names) end + +--- @return Dictionary +function GLTFSkeleton:get_godot_bone_node() end + +--- @param godot_bone_node Dictionary +function GLTFSkeleton:set_godot_bone_node(godot_bone_node) end + +--- @return int +function GLTFSkeleton:get_bone_attachment_count() end + +--- @param idx int +--- @return BoneAttachment3D +function GLTFSkeleton:get_bone_attachment(idx) end + + +----------------------------------------------------------- +-- GLTFSkin +----------------------------------------------------------- + +--- @class GLTFSkin: Resource, { [string]: any } +--- @field skin_root int +--- @field joints_original PackedInt32Array +--- @field inverse_binds Array +--- @field joints PackedInt32Array +--- @field non_joints PackedInt32Array +--- @field roots PackedInt32Array +--- @field skeleton int +--- @field joint_i_to_bone_i Dictionary +--- @field joint_i_to_name Dictionary +--- @field godot_skin Skin +GLTFSkin = {} + +--- @return GLTFSkin +function GLTFSkin:new() end + +--- @return int +function GLTFSkin:get_skin_root() end + +--- @param skin_root int +function GLTFSkin:set_skin_root(skin_root) end + +--- @return PackedInt32Array +function GLTFSkin:get_joints_original() end + +--- @param joints_original PackedInt32Array +function GLTFSkin:set_joints_original(joints_original) end + +--- @return Array[Transform3D] +function GLTFSkin:get_inverse_binds() end + +--- @param inverse_binds Array[Transform3D] +function GLTFSkin:set_inverse_binds(inverse_binds) end + +--- @return PackedInt32Array +function GLTFSkin:get_joints() end + +--- @param joints PackedInt32Array +function GLTFSkin:set_joints(joints) end + +--- @return PackedInt32Array +function GLTFSkin:get_non_joints() end + +--- @param non_joints PackedInt32Array +function GLTFSkin:set_non_joints(non_joints) end + +--- @return PackedInt32Array +function GLTFSkin:get_roots() end + +--- @param roots PackedInt32Array +function GLTFSkin:set_roots(roots) end + +--- @return int +function GLTFSkin:get_skeleton() end + +--- @param skeleton int +function GLTFSkin:set_skeleton(skeleton) end + +--- @return Dictionary +function GLTFSkin:get_joint_i_to_bone_i() end + +--- @param joint_i_to_bone_i Dictionary +function GLTFSkin:set_joint_i_to_bone_i(joint_i_to_bone_i) end + +--- @return Dictionary +function GLTFSkin:get_joint_i_to_name() end + +--- @param joint_i_to_name Dictionary +function GLTFSkin:set_joint_i_to_name(joint_i_to_name) end + +--- @return Skin +function GLTFSkin:get_godot_skin() end + +--- @param godot_skin Skin +function GLTFSkin:set_godot_skin(godot_skin) end + + +----------------------------------------------------------- +-- GLTFSpecGloss +----------------------------------------------------------- + +--- @class GLTFSpecGloss: Resource, { [string]: any } +--- @field diffuse_img Object +--- @field diffuse_factor Color +--- @field gloss_factor float +--- @field specular_factor Color +--- @field spec_gloss_img Object +GLTFSpecGloss = {} + +--- @return GLTFSpecGloss +function GLTFSpecGloss:new() end + +--- @return Image +function GLTFSpecGloss:get_diffuse_img() end + +--- @param diffuse_img Image +function GLTFSpecGloss:set_diffuse_img(diffuse_img) end + +--- @return Color +function GLTFSpecGloss:get_diffuse_factor() end + +--- @param diffuse_factor Color +function GLTFSpecGloss:set_diffuse_factor(diffuse_factor) end + +--- @return float +function GLTFSpecGloss:get_gloss_factor() end + +--- @param gloss_factor float +function GLTFSpecGloss:set_gloss_factor(gloss_factor) end + +--- @return Color +function GLTFSpecGloss:get_specular_factor() end + +--- @param specular_factor Color +function GLTFSpecGloss:set_specular_factor(specular_factor) end + +--- @return Image +function GLTFSpecGloss:get_spec_gloss_img() end + +--- @param spec_gloss_img Image +function GLTFSpecGloss:set_spec_gloss_img(spec_gloss_img) end + + +----------------------------------------------------------- +-- GLTFState +----------------------------------------------------------- + +--- @class GLTFState: Resource, { [string]: any } +--- @field json Dictionary +--- @field major_version int +--- @field minor_version int +--- @field copyright String +--- @field glb_data PackedByteArray +--- @field use_named_skin_binds bool +--- @field nodes Array +--- @field buffers Array +--- @field buffer_views Array +--- @field accessors Array +--- @field meshes Array +--- @field materials Array +--- @field scene_name String +--- @field base_path String +--- @field filename String +--- @field root_nodes PackedInt32Array +--- @field textures Array +--- @field texture_samplers Array +--- @field images Array +--- @field skins Array +--- @field cameras Array +--- @field lights Array +--- @field unique_names Array +--- @field unique_animation_names Array +--- @field skeletons Array +--- @field create_animations bool +--- @field import_as_skeleton_bones bool +--- @field animations Array +--- @field handle_binary_image int +--- @field bake_fps float +GLTFState = {} + +--- @return GLTFState +function GLTFState:new() end + +GLTFState.HANDLE_BINARY_DISCARD_TEXTURES = 0 +GLTFState.HANDLE_BINARY_EXTRACT_TEXTURES = 1 +GLTFState.HANDLE_BINARY_EMBED_AS_BASISU = 2 +GLTFState.HANDLE_BINARY_EMBED_AS_UNCOMPRESSED = 3 + +--- @param extension_name String +--- @param required bool +function GLTFState:add_used_extension(extension_name, required) end + +--- @param data PackedByteArray +--- @param deduplication bool +--- @return int +function GLTFState:append_data_to_buffers(data, deduplication) end + +--- @param gltf_node GLTFNode +--- @param godot_scene_node Node +--- @param parent_node_index int +--- @return int +function GLTFState:append_gltf_node(gltf_node, godot_scene_node, parent_node_index) end + +--- @return Dictionary +function GLTFState:get_json() end + +--- @param json Dictionary +function GLTFState:set_json(json) end + +--- @return int +function GLTFState:get_major_version() end + +--- @param major_version int +function GLTFState:set_major_version(major_version) end + +--- @return int +function GLTFState:get_minor_version() end + +--- @param minor_version int +function GLTFState:set_minor_version(minor_version) end + +--- @return String +function GLTFState:get_copyright() end + +--- @param copyright String +function GLTFState:set_copyright(copyright) end + +--- @return PackedByteArray +function GLTFState:get_glb_data() end + +--- @param glb_data PackedByteArray +function GLTFState:set_glb_data(glb_data) end + +--- @return bool +function GLTFState:get_use_named_skin_binds() end + +--- @param use_named_skin_binds bool +function GLTFState:set_use_named_skin_binds(use_named_skin_binds) end + +--- @return Array[GLTFNode] +function GLTFState:get_nodes() end + +--- @param nodes Array[GLTFNode] +function GLTFState:set_nodes(nodes) end + +--- @return Array[PackedByteArray] +function GLTFState:get_buffers() end + +--- @param buffers Array[PackedByteArray] +function GLTFState:set_buffers(buffers) end + +--- @return Array[GLTFBufferView] +function GLTFState:get_buffer_views() end + +--- @param buffer_views Array[GLTFBufferView] +function GLTFState:set_buffer_views(buffer_views) end + +--- @return Array[GLTFAccessor] +function GLTFState:get_accessors() end + +--- @param accessors Array[GLTFAccessor] +function GLTFState:set_accessors(accessors) end + +--- @return Array[GLTFMesh] +function GLTFState:get_meshes() end + +--- @param meshes Array[GLTFMesh] +function GLTFState:set_meshes(meshes) end + +--- @param idx int +--- @return int +function GLTFState:get_animation_players_count(idx) end + +--- @param idx int +--- @return AnimationPlayer +function GLTFState:get_animation_player(idx) end + +--- @return Array[Material] +function GLTFState:get_materials() end + +--- @param materials Array[Material] +function GLTFState:set_materials(materials) end + +--- @return String +function GLTFState:get_scene_name() end + +--- @param scene_name String +function GLTFState:set_scene_name(scene_name) end + +--- @return String +function GLTFState:get_base_path() end + +--- @param base_path String +function GLTFState:set_base_path(base_path) end + +--- @return String +function GLTFState:get_filename() end + +--- @param filename String +function GLTFState:set_filename(filename) end + +--- @return PackedInt32Array +function GLTFState:get_root_nodes() end + +--- @param root_nodes PackedInt32Array +function GLTFState:set_root_nodes(root_nodes) end + +--- @return Array[GLTFTexture] +function GLTFState:get_textures() end + +--- @param textures Array[GLTFTexture] +function GLTFState:set_textures(textures) end + +--- @return Array[GLTFTextureSampler] +function GLTFState:get_texture_samplers() end + +--- @param texture_samplers Array[GLTFTextureSampler] +function GLTFState:set_texture_samplers(texture_samplers) end + +--- @return Array[Texture2D] +function GLTFState:get_images() end + +--- @param images Array[Texture2D] +function GLTFState:set_images(images) end + +--- @return Array[GLTFSkin] +function GLTFState:get_skins() end + +--- @param skins Array[GLTFSkin] +function GLTFState:set_skins(skins) end + +--- @return Array[GLTFCamera] +function GLTFState:get_cameras() end + +--- @param cameras Array[GLTFCamera] +function GLTFState:set_cameras(cameras) end + +--- @return Array[GLTFLight] +function GLTFState:get_lights() end + +--- @param lights Array[GLTFLight] +function GLTFState:set_lights(lights) end + +--- @return Array[String] +function GLTFState:get_unique_names() end + +--- @param unique_names Array[String] +function GLTFState:set_unique_names(unique_names) end + +--- @return Array[String] +function GLTFState:get_unique_animation_names() end + +--- @param unique_animation_names Array[String] +function GLTFState:set_unique_animation_names(unique_animation_names) end + +--- @return Array[GLTFSkeleton] +function GLTFState:get_skeletons() end + +--- @param skeletons Array[GLTFSkeleton] +function GLTFState:set_skeletons(skeletons) end + +--- @return bool +function GLTFState:get_create_animations() end + +--- @param create_animations bool +function GLTFState:set_create_animations(create_animations) end + +--- @return bool +function GLTFState:get_import_as_skeleton_bones() end + +--- @param import_as_skeleton_bones bool +function GLTFState:set_import_as_skeleton_bones(import_as_skeleton_bones) end + +--- @return Array[GLTFAnimation] +function GLTFState:get_animations() end + +--- @param animations Array[GLTFAnimation] +function GLTFState:set_animations(animations) end + +--- @param idx int +--- @return Node +function GLTFState:get_scene_node(idx) end + +--- @param scene_node Node +--- @return int +function GLTFState:get_node_index(scene_node) end + +--- @param extension_name StringName +--- @return any +function GLTFState:get_additional_data(extension_name) end + +--- @param extension_name StringName +--- @param additional_data any +function GLTFState:set_additional_data(extension_name, additional_data) end + +--- @return int +function GLTFState:get_handle_binary_image() end + +--- @param method int +function GLTFState:set_handle_binary_image(method) end + +--- @param value float +function GLTFState:set_bake_fps(value) end + +--- @return float +function GLTFState:get_bake_fps() end + + +----------------------------------------------------------- +-- GLTFTexture +----------------------------------------------------------- + +--- @class GLTFTexture: Resource, { [string]: any } +--- @field src_image int +--- @field sampler int +GLTFTexture = {} + +--- @return GLTFTexture +function GLTFTexture:new() end + +--- @return int +function GLTFTexture:get_src_image() end + +--- @param src_image int +function GLTFTexture:set_src_image(src_image) end + +--- @return int +function GLTFTexture:get_sampler() end + +--- @param sampler int +function GLTFTexture:set_sampler(sampler) end + + +----------------------------------------------------------- +-- GLTFTextureSampler +----------------------------------------------------------- + +--- @class GLTFTextureSampler: Resource, { [string]: any } +--- @field mag_filter int +--- @field min_filter int +--- @field wrap_s int +--- @field wrap_t int +GLTFTextureSampler = {} + +--- @return GLTFTextureSampler +function GLTFTextureSampler:new() end + +--- @return int +function GLTFTextureSampler:get_mag_filter() end + +--- @param filter_mode int +function GLTFTextureSampler:set_mag_filter(filter_mode) end + +--- @return int +function GLTFTextureSampler:get_min_filter() end + +--- @param filter_mode int +function GLTFTextureSampler:set_min_filter(filter_mode) end + +--- @return int +function GLTFTextureSampler:get_wrap_s() end + +--- @param wrap_mode int +function GLTFTextureSampler:set_wrap_s(wrap_mode) end + +--- @return int +function GLTFTextureSampler:get_wrap_t() end + +--- @param wrap_mode int +function GLTFTextureSampler:set_wrap_t(wrap_mode) end + + +----------------------------------------------------------- +-- GPUParticles2D +----------------------------------------------------------- + +--- @class GPUParticles2D: Node2D, { [string]: any } +--- @field emitting bool +--- @field amount int +--- @field amount_ratio float +--- @field sub_emitter NodePath +--- @field texture Texture2D +--- @field lifetime float +--- @field interp_to_end float +--- @field one_shot bool +--- @field preprocess float +--- @field speed_scale float +--- @field explosiveness float +--- @field randomness float +--- @field use_fixed_seed bool +--- @field seed int +--- @field fixed_fps int +--- @field interpolate bool +--- @field fract_delta bool +--- @field collision_base_size float +--- @field visibility_rect Rect2 +--- @field local_coords bool +--- @field draw_order int +--- @field trail_enabled bool +--- @field trail_lifetime float +--- @field trail_sections int +--- @field trail_section_subdivisions int +--- @field process_material ParticleProcessMaterial | ShaderMaterial +GPUParticles2D = {} + +--- @return GPUParticles2D +function GPUParticles2D:new() end + +--- @alias GPUParticles2D.DrawOrder `GPUParticles2D.DRAW_ORDER_INDEX` | `GPUParticles2D.DRAW_ORDER_LIFETIME` | `GPUParticles2D.DRAW_ORDER_REVERSE_LIFETIME` +GPUParticles2D.DRAW_ORDER_INDEX = 0 +GPUParticles2D.DRAW_ORDER_LIFETIME = 1 +GPUParticles2D.DRAW_ORDER_REVERSE_LIFETIME = 2 + +--- @alias GPUParticles2D.EmitFlags `GPUParticles2D.EMIT_FLAG_POSITION` | `GPUParticles2D.EMIT_FLAG_ROTATION_SCALE` | `GPUParticles2D.EMIT_FLAG_VELOCITY` | `GPUParticles2D.EMIT_FLAG_COLOR` | `GPUParticles2D.EMIT_FLAG_CUSTOM` +GPUParticles2D.EMIT_FLAG_POSITION = 1 +GPUParticles2D.EMIT_FLAG_ROTATION_SCALE = 2 +GPUParticles2D.EMIT_FLAG_VELOCITY = 4 +GPUParticles2D.EMIT_FLAG_COLOR = 8 +GPUParticles2D.EMIT_FLAG_CUSTOM = 16 + +GPUParticles2D.finished = Signal() + +--- @param emitting bool +function GPUParticles2D:set_emitting(emitting) end + +--- @param amount int +function GPUParticles2D:set_amount(amount) end + +--- @param secs float +function GPUParticles2D:set_lifetime(secs) end + +--- @param secs bool +function GPUParticles2D:set_one_shot(secs) end + +--- @param secs float +function GPUParticles2D:set_pre_process_time(secs) end + +--- @param ratio float +function GPUParticles2D:set_explosiveness_ratio(ratio) end + +--- @param ratio float +function GPUParticles2D:set_randomness_ratio(ratio) end + +--- @param visibility_rect Rect2 +function GPUParticles2D:set_visibility_rect(visibility_rect) end + +--- @param enable bool +function GPUParticles2D:set_use_local_coordinates(enable) end + +--- @param fps int +function GPUParticles2D:set_fixed_fps(fps) end + +--- @param enable bool +function GPUParticles2D:set_fractional_delta(enable) end + +--- @param enable bool +function GPUParticles2D:set_interpolate(enable) end + +--- @param material Material +function GPUParticles2D:set_process_material(material) end + +--- @param scale float +function GPUParticles2D:set_speed_scale(scale) end + +--- @param size float +function GPUParticles2D:set_collision_base_size(size) end + +--- @param interp float +function GPUParticles2D:set_interp_to_end(interp) end + +--- @param process_time float +function GPUParticles2D:request_particles_process(process_time) end + +--- @return bool +function GPUParticles2D:is_emitting() end + +--- @return int +function GPUParticles2D:get_amount() end + +--- @return float +function GPUParticles2D:get_lifetime() end + +--- @return bool +function GPUParticles2D:get_one_shot() end + +--- @return float +function GPUParticles2D:get_pre_process_time() end + +--- @return float +function GPUParticles2D:get_explosiveness_ratio() end + +--- @return float +function GPUParticles2D:get_randomness_ratio() end + +--- @return Rect2 +function GPUParticles2D:get_visibility_rect() end + +--- @return bool +function GPUParticles2D:get_use_local_coordinates() end + +--- @return int +function GPUParticles2D:get_fixed_fps() end + +--- @return bool +function GPUParticles2D:get_fractional_delta() end + +--- @return bool +function GPUParticles2D:get_interpolate() end + +--- @return Material +function GPUParticles2D:get_process_material() end + +--- @return float +function GPUParticles2D:get_speed_scale() end + +--- @return float +function GPUParticles2D:get_collision_base_size() end + +--- @return float +function GPUParticles2D:get_interp_to_end() end + +--- @param order GPUParticles2D.DrawOrder +function GPUParticles2D:set_draw_order(order) end + +--- @return GPUParticles2D.DrawOrder +function GPUParticles2D:get_draw_order() end + +--- @param texture Texture2D +function GPUParticles2D:set_texture(texture) end + +--- @return Texture2D +function GPUParticles2D:get_texture() end + +--- @return Rect2 +function GPUParticles2D:capture_rect() end + +--- @param keep_seed bool? Default: false +function GPUParticles2D:restart(keep_seed) end + +--- @param path NodePath +function GPUParticles2D:set_sub_emitter(path) end + +--- @return NodePath +function GPUParticles2D:get_sub_emitter() end + +--- @param xform Transform2D +--- @param velocity Vector2 +--- @param color Color +--- @param custom Color +--- @param flags int +function GPUParticles2D:emit_particle(xform, velocity, color, custom, flags) end + +--- @param enabled bool +function GPUParticles2D:set_trail_enabled(enabled) end + +--- @param secs float +function GPUParticles2D:set_trail_lifetime(secs) end + +--- @return bool +function GPUParticles2D:is_trail_enabled() end + +--- @return float +function GPUParticles2D:get_trail_lifetime() end + +--- @param sections int +function GPUParticles2D:set_trail_sections(sections) end + +--- @return int +function GPUParticles2D:get_trail_sections() end + +--- @param subdivisions int +function GPUParticles2D:set_trail_section_subdivisions(subdivisions) end + +--- @return int +function GPUParticles2D:get_trail_section_subdivisions() end + +--- @param particles Node +function GPUParticles2D:convert_from_particles(particles) end + +--- @param ratio float +function GPUParticles2D:set_amount_ratio(ratio) end + +--- @return float +function GPUParticles2D:get_amount_ratio() end + +--- @param use_fixed_seed bool +function GPUParticles2D:set_use_fixed_seed(use_fixed_seed) end + +--- @return bool +function GPUParticles2D:get_use_fixed_seed() end + +--- @param seed int +function GPUParticles2D:set_seed(seed) end + +--- @return int +function GPUParticles2D:get_seed() end + + +----------------------------------------------------------- +-- GPUParticles3D +----------------------------------------------------------- + +--- @class GPUParticles3D: GeometryInstance3D, { [string]: any } +--- @field emitting bool +--- @field amount int +--- @field amount_ratio float +--- @field sub_emitter NodePath +--- @field lifetime float +--- @field interp_to_end float +--- @field one_shot bool +--- @field preprocess float +--- @field speed_scale float +--- @field explosiveness float +--- @field randomness float +--- @field use_fixed_seed bool +--- @field seed int +--- @field fixed_fps int +--- @field interpolate bool +--- @field fract_delta bool +--- @field collision_base_size float +--- @field visibility_aabb AABB +--- @field local_coords bool +--- @field draw_order int +--- @field transform_align int +--- @field trail_enabled bool +--- @field trail_lifetime float +--- @field process_material ParticleProcessMaterial | ShaderMaterial +--- @field draw_passes int +--- @field draw_pass_1 Mesh +--- @field draw_pass_2 Mesh +--- @field draw_pass_3 Mesh +--- @field draw_pass_4 Mesh +--- @field draw_skin Skin +GPUParticles3D = {} + +--- @return GPUParticles3D +function GPUParticles3D:new() end + +GPUParticles3D.MAX_DRAW_PASSES = 4 + +--- @alias GPUParticles3D.DrawOrder `GPUParticles3D.DRAW_ORDER_INDEX` | `GPUParticles3D.DRAW_ORDER_LIFETIME` | `GPUParticles3D.DRAW_ORDER_REVERSE_LIFETIME` | `GPUParticles3D.DRAW_ORDER_VIEW_DEPTH` +GPUParticles3D.DRAW_ORDER_INDEX = 0 +GPUParticles3D.DRAW_ORDER_LIFETIME = 1 +GPUParticles3D.DRAW_ORDER_REVERSE_LIFETIME = 2 +GPUParticles3D.DRAW_ORDER_VIEW_DEPTH = 3 + +--- @alias GPUParticles3D.EmitFlags `GPUParticles3D.EMIT_FLAG_POSITION` | `GPUParticles3D.EMIT_FLAG_ROTATION_SCALE` | `GPUParticles3D.EMIT_FLAG_VELOCITY` | `GPUParticles3D.EMIT_FLAG_COLOR` | `GPUParticles3D.EMIT_FLAG_CUSTOM` +GPUParticles3D.EMIT_FLAG_POSITION = 1 +GPUParticles3D.EMIT_FLAG_ROTATION_SCALE = 2 +GPUParticles3D.EMIT_FLAG_VELOCITY = 4 +GPUParticles3D.EMIT_FLAG_COLOR = 8 +GPUParticles3D.EMIT_FLAG_CUSTOM = 16 + +--- @alias GPUParticles3D.TransformAlign `GPUParticles3D.TRANSFORM_ALIGN_DISABLED` | `GPUParticles3D.TRANSFORM_ALIGN_Z_BILLBOARD` | `GPUParticles3D.TRANSFORM_ALIGN_Y_TO_VELOCITY` | `GPUParticles3D.TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY` +GPUParticles3D.TRANSFORM_ALIGN_DISABLED = 0 +GPUParticles3D.TRANSFORM_ALIGN_Z_BILLBOARD = 1 +GPUParticles3D.TRANSFORM_ALIGN_Y_TO_VELOCITY = 2 +GPUParticles3D.TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3 + +GPUParticles3D.finished = Signal() + +--- @param emitting bool +function GPUParticles3D:set_emitting(emitting) end + +--- @param amount int +function GPUParticles3D:set_amount(amount) end + +--- @param secs float +function GPUParticles3D:set_lifetime(secs) end + +--- @param enable bool +function GPUParticles3D:set_one_shot(enable) end + +--- @param secs float +function GPUParticles3D:set_pre_process_time(secs) end + +--- @param ratio float +function GPUParticles3D:set_explosiveness_ratio(ratio) end + +--- @param ratio float +function GPUParticles3D:set_randomness_ratio(ratio) end + +--- @param aabb AABB +function GPUParticles3D:set_visibility_aabb(aabb) end + +--- @param enable bool +function GPUParticles3D:set_use_local_coordinates(enable) end + +--- @param fps int +function GPUParticles3D:set_fixed_fps(fps) end + +--- @param enable bool +function GPUParticles3D:set_fractional_delta(enable) end + +--- @param enable bool +function GPUParticles3D:set_interpolate(enable) end + +--- @param material Material +function GPUParticles3D:set_process_material(material) end + +--- @param scale float +function GPUParticles3D:set_speed_scale(scale) end + +--- @param size float +function GPUParticles3D:set_collision_base_size(size) end + +--- @param interp float +function GPUParticles3D:set_interp_to_end(interp) end + +--- @return bool +function GPUParticles3D:is_emitting() end + +--- @return int +function GPUParticles3D:get_amount() end + +--- @return float +function GPUParticles3D:get_lifetime() end + +--- @return bool +function GPUParticles3D:get_one_shot() end + +--- @return float +function GPUParticles3D:get_pre_process_time() end + +--- @return float +function GPUParticles3D:get_explosiveness_ratio() end + +--- @return float +function GPUParticles3D:get_randomness_ratio() end + +--- @return AABB +function GPUParticles3D:get_visibility_aabb() end + +--- @return bool +function GPUParticles3D:get_use_local_coordinates() end + +--- @return int +function GPUParticles3D:get_fixed_fps() end + +--- @return bool +function GPUParticles3D:get_fractional_delta() end + +--- @return bool +function GPUParticles3D:get_interpolate() end + +--- @return Material +function GPUParticles3D:get_process_material() end + +--- @return float +function GPUParticles3D:get_speed_scale() end + +--- @return float +function GPUParticles3D:get_collision_base_size() end + +--- @return float +function GPUParticles3D:get_interp_to_end() end + +--- @param use_fixed_seed bool +function GPUParticles3D:set_use_fixed_seed(use_fixed_seed) end + +--- @return bool +function GPUParticles3D:get_use_fixed_seed() end + +--- @param seed int +function GPUParticles3D:set_seed(seed) end + +--- @return int +function GPUParticles3D:get_seed() end + +--- @param order GPUParticles3D.DrawOrder +function GPUParticles3D:set_draw_order(order) end + +--- @return GPUParticles3D.DrawOrder +function GPUParticles3D:get_draw_order() end + +--- @param passes int +function GPUParticles3D:set_draw_passes(passes) end + +--- @param pass int +--- @param mesh Mesh +function GPUParticles3D:set_draw_pass_mesh(pass, mesh) end + +--- @return int +function GPUParticles3D:get_draw_passes() end + +--- @param pass int +--- @return Mesh +function GPUParticles3D:get_draw_pass_mesh(pass) end + +--- @param skin Skin +function GPUParticles3D:set_skin(skin) end + +--- @return Skin +function GPUParticles3D:get_skin() end + +--- @param keep_seed bool? Default: false +function GPUParticles3D:restart(keep_seed) end + +--- @return AABB +function GPUParticles3D:capture_aabb() end + +--- @param path NodePath +function GPUParticles3D:set_sub_emitter(path) end + +--- @return NodePath +function GPUParticles3D:get_sub_emitter() end + +--- @param xform Transform3D +--- @param velocity Vector3 +--- @param color Color +--- @param custom Color +--- @param flags int +function GPUParticles3D:emit_particle(xform, velocity, color, custom, flags) end + +--- @param enabled bool +function GPUParticles3D:set_trail_enabled(enabled) end + +--- @param secs float +function GPUParticles3D:set_trail_lifetime(secs) end + +--- @return bool +function GPUParticles3D:is_trail_enabled() end + +--- @return float +function GPUParticles3D:get_trail_lifetime() end + +--- @param align GPUParticles3D.TransformAlign +function GPUParticles3D:set_transform_align(align) end + +--- @return GPUParticles3D.TransformAlign +function GPUParticles3D:get_transform_align() end + +--- @param particles Node +function GPUParticles3D:convert_from_particles(particles) end + +--- @param ratio float +function GPUParticles3D:set_amount_ratio(ratio) end + +--- @return float +function GPUParticles3D:get_amount_ratio() end + +--- @param process_time float +function GPUParticles3D:request_particles_process(process_time) end + + +----------------------------------------------------------- +-- GPUParticlesAttractor3D +----------------------------------------------------------- + +--- @class GPUParticlesAttractor3D: VisualInstance3D, { [string]: any } +--- @field strength float +--- @field attenuation float +--- @field directionality float +--- @field cull_mask int +GPUParticlesAttractor3D = {} + +--- @param mask int +function GPUParticlesAttractor3D:set_cull_mask(mask) end + +--- @return int +function GPUParticlesAttractor3D:get_cull_mask() end + +--- @param strength float +function GPUParticlesAttractor3D:set_strength(strength) end + +--- @return float +function GPUParticlesAttractor3D:get_strength() end + +--- @param attenuation float +function GPUParticlesAttractor3D:set_attenuation(attenuation) end + +--- @return float +function GPUParticlesAttractor3D:get_attenuation() end + +--- @param amount float +function GPUParticlesAttractor3D:set_directionality(amount) end + +--- @return float +function GPUParticlesAttractor3D:get_directionality() end + + +----------------------------------------------------------- +-- GPUParticlesAttractorBox3D +----------------------------------------------------------- + +--- @class GPUParticlesAttractorBox3D: GPUParticlesAttractor3D, { [string]: any } +--- @field size Vector3 +GPUParticlesAttractorBox3D = {} + +--- @return GPUParticlesAttractorBox3D +function GPUParticlesAttractorBox3D:new() end + +--- @param size Vector3 +function GPUParticlesAttractorBox3D:set_size(size) end + +--- @return Vector3 +function GPUParticlesAttractorBox3D:get_size() end + + +----------------------------------------------------------- +-- GPUParticlesAttractorSphere3D +----------------------------------------------------------- + +--- @class GPUParticlesAttractorSphere3D: GPUParticlesAttractor3D, { [string]: any } +--- @field radius float +GPUParticlesAttractorSphere3D = {} + +--- @return GPUParticlesAttractorSphere3D +function GPUParticlesAttractorSphere3D:new() end + +--- @param radius float +function GPUParticlesAttractorSphere3D:set_radius(radius) end + +--- @return float +function GPUParticlesAttractorSphere3D:get_radius() end + + +----------------------------------------------------------- +-- GPUParticlesAttractorVectorField3D +----------------------------------------------------------- + +--- @class GPUParticlesAttractorVectorField3D: GPUParticlesAttractor3D, { [string]: any } +--- @field size Vector3 +--- @field texture Texture3D +GPUParticlesAttractorVectorField3D = {} + +--- @return GPUParticlesAttractorVectorField3D +function GPUParticlesAttractorVectorField3D:new() end + +--- @param size Vector3 +function GPUParticlesAttractorVectorField3D:set_size(size) end + +--- @return Vector3 +function GPUParticlesAttractorVectorField3D:get_size() end + +--- @param texture Texture3D +function GPUParticlesAttractorVectorField3D:set_texture(texture) end + +--- @return Texture3D +function GPUParticlesAttractorVectorField3D:get_texture() end + + +----------------------------------------------------------- +-- GPUParticlesCollision3D +----------------------------------------------------------- + +--- @class GPUParticlesCollision3D: VisualInstance3D, { [string]: any } +--- @field cull_mask int +GPUParticlesCollision3D = {} + +--- @param mask int +function GPUParticlesCollision3D:set_cull_mask(mask) end + +--- @return int +function GPUParticlesCollision3D:get_cull_mask() end + + +----------------------------------------------------------- +-- GPUParticlesCollisionBox3D +----------------------------------------------------------- + +--- @class GPUParticlesCollisionBox3D: GPUParticlesCollision3D, { [string]: any } +--- @field size Vector3 +GPUParticlesCollisionBox3D = {} + +--- @return GPUParticlesCollisionBox3D +function GPUParticlesCollisionBox3D:new() end + +--- @param size Vector3 +function GPUParticlesCollisionBox3D:set_size(size) end + +--- @return Vector3 +function GPUParticlesCollisionBox3D:get_size() end + + +----------------------------------------------------------- +-- GPUParticlesCollisionHeightField3D +----------------------------------------------------------- + +--- @class GPUParticlesCollisionHeightField3D: GPUParticlesCollision3D, { [string]: any } +--- @field size Vector3 +--- @field resolution int +--- @field update_mode int +--- @field follow_camera_enabled bool +--- @field heightfield_mask int +GPUParticlesCollisionHeightField3D = {} + +--- @return GPUParticlesCollisionHeightField3D +function GPUParticlesCollisionHeightField3D:new() end + +--- @alias GPUParticlesCollisionHeightField3D.Resolution `GPUParticlesCollisionHeightField3D.RESOLUTION_256` | `GPUParticlesCollisionHeightField3D.RESOLUTION_512` | `GPUParticlesCollisionHeightField3D.RESOLUTION_1024` | `GPUParticlesCollisionHeightField3D.RESOLUTION_2048` | `GPUParticlesCollisionHeightField3D.RESOLUTION_4096` | `GPUParticlesCollisionHeightField3D.RESOLUTION_8192` | `GPUParticlesCollisionHeightField3D.RESOLUTION_MAX` +GPUParticlesCollisionHeightField3D.RESOLUTION_256 = 0 +GPUParticlesCollisionHeightField3D.RESOLUTION_512 = 1 +GPUParticlesCollisionHeightField3D.RESOLUTION_1024 = 2 +GPUParticlesCollisionHeightField3D.RESOLUTION_2048 = 3 +GPUParticlesCollisionHeightField3D.RESOLUTION_4096 = 4 +GPUParticlesCollisionHeightField3D.RESOLUTION_8192 = 5 +GPUParticlesCollisionHeightField3D.RESOLUTION_MAX = 6 + +--- @alias GPUParticlesCollisionHeightField3D.UpdateMode `GPUParticlesCollisionHeightField3D.UPDATE_MODE_WHEN_MOVED` | `GPUParticlesCollisionHeightField3D.UPDATE_MODE_ALWAYS` +GPUParticlesCollisionHeightField3D.UPDATE_MODE_WHEN_MOVED = 0 +GPUParticlesCollisionHeightField3D.UPDATE_MODE_ALWAYS = 1 + +--- @param size Vector3 +function GPUParticlesCollisionHeightField3D:set_size(size) end + +--- @return Vector3 +function GPUParticlesCollisionHeightField3D:get_size() end + +--- @param resolution GPUParticlesCollisionHeightField3D.Resolution +function GPUParticlesCollisionHeightField3D:set_resolution(resolution) end + +--- @return GPUParticlesCollisionHeightField3D.Resolution +function GPUParticlesCollisionHeightField3D:get_resolution() end + +--- @param update_mode GPUParticlesCollisionHeightField3D.UpdateMode +function GPUParticlesCollisionHeightField3D:set_update_mode(update_mode) end + +--- @return GPUParticlesCollisionHeightField3D.UpdateMode +function GPUParticlesCollisionHeightField3D:get_update_mode() end + +--- @param heightfield_mask int +function GPUParticlesCollisionHeightField3D:set_heightfield_mask(heightfield_mask) end + +--- @return int +function GPUParticlesCollisionHeightField3D:get_heightfield_mask() end + +--- @param layer_number int +--- @param value bool +function GPUParticlesCollisionHeightField3D:set_heightfield_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function GPUParticlesCollisionHeightField3D:get_heightfield_mask_value(layer_number) end + +--- @param enabled bool +function GPUParticlesCollisionHeightField3D:set_follow_camera_enabled(enabled) end + +--- @return bool +function GPUParticlesCollisionHeightField3D:is_follow_camera_enabled() end + + +----------------------------------------------------------- +-- GPUParticlesCollisionSDF3D +----------------------------------------------------------- + +--- @class GPUParticlesCollisionSDF3D: GPUParticlesCollision3D, { [string]: any } +--- @field size Vector3 +--- @field resolution int +--- @field thickness float +--- @field bake_mask int +--- @field texture Texture3D +GPUParticlesCollisionSDF3D = {} + +--- @return GPUParticlesCollisionSDF3D +function GPUParticlesCollisionSDF3D:new() end + +--- @alias GPUParticlesCollisionSDF3D.Resolution `GPUParticlesCollisionSDF3D.RESOLUTION_16` | `GPUParticlesCollisionSDF3D.RESOLUTION_32` | `GPUParticlesCollisionSDF3D.RESOLUTION_64` | `GPUParticlesCollisionSDF3D.RESOLUTION_128` | `GPUParticlesCollisionSDF3D.RESOLUTION_256` | `GPUParticlesCollisionSDF3D.RESOLUTION_512` | `GPUParticlesCollisionSDF3D.RESOLUTION_MAX` +GPUParticlesCollisionSDF3D.RESOLUTION_16 = 0 +GPUParticlesCollisionSDF3D.RESOLUTION_32 = 1 +GPUParticlesCollisionSDF3D.RESOLUTION_64 = 2 +GPUParticlesCollisionSDF3D.RESOLUTION_128 = 3 +GPUParticlesCollisionSDF3D.RESOLUTION_256 = 4 +GPUParticlesCollisionSDF3D.RESOLUTION_512 = 5 +GPUParticlesCollisionSDF3D.RESOLUTION_MAX = 6 + +--- @param size Vector3 +function GPUParticlesCollisionSDF3D:set_size(size) end + +--- @return Vector3 +function GPUParticlesCollisionSDF3D:get_size() end + +--- @param resolution GPUParticlesCollisionSDF3D.Resolution +function GPUParticlesCollisionSDF3D:set_resolution(resolution) end + +--- @return GPUParticlesCollisionSDF3D.Resolution +function GPUParticlesCollisionSDF3D:get_resolution() end + +--- @param texture Texture3D +function GPUParticlesCollisionSDF3D:set_texture(texture) end + +--- @return Texture3D +function GPUParticlesCollisionSDF3D:get_texture() end + +--- @param thickness float +function GPUParticlesCollisionSDF3D:set_thickness(thickness) end + +--- @return float +function GPUParticlesCollisionSDF3D:get_thickness() end + +--- @param mask int +function GPUParticlesCollisionSDF3D:set_bake_mask(mask) end + +--- @return int +function GPUParticlesCollisionSDF3D:get_bake_mask() end + +--- @param layer_number int +--- @param value bool +function GPUParticlesCollisionSDF3D:set_bake_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function GPUParticlesCollisionSDF3D:get_bake_mask_value(layer_number) end + + +----------------------------------------------------------- +-- GPUParticlesCollisionSphere3D +----------------------------------------------------------- + +--- @class GPUParticlesCollisionSphere3D: GPUParticlesCollision3D, { [string]: any } +--- @field radius float +GPUParticlesCollisionSphere3D = {} + +--- @return GPUParticlesCollisionSphere3D +function GPUParticlesCollisionSphere3D:new() end + +--- @param radius float +function GPUParticlesCollisionSphere3D:set_radius(radius) end + +--- @return float +function GPUParticlesCollisionSphere3D:get_radius() end + + +----------------------------------------------------------- +-- Generic6DOFJoint3D +----------------------------------------------------------- + +--- @class Generic6DOFJoint3D: Joint3D, { [string]: any } +Generic6DOFJoint3D = {} + +--- @return Generic6DOFJoint3D +function Generic6DOFJoint3D:new() end + +--- @alias Generic6DOFJoint3D.Param `Generic6DOFJoint3D.PARAM_LINEAR_LOWER_LIMIT` | `Generic6DOFJoint3D.PARAM_LINEAR_UPPER_LIMIT` | `Generic6DOFJoint3D.PARAM_LINEAR_LIMIT_SOFTNESS` | `Generic6DOFJoint3D.PARAM_LINEAR_RESTITUTION` | `Generic6DOFJoint3D.PARAM_LINEAR_DAMPING` | `Generic6DOFJoint3D.PARAM_LINEAR_MOTOR_TARGET_VELOCITY` | `Generic6DOFJoint3D.PARAM_LINEAR_MOTOR_FORCE_LIMIT` | `Generic6DOFJoint3D.PARAM_LINEAR_SPRING_STIFFNESS` | `Generic6DOFJoint3D.PARAM_LINEAR_SPRING_DAMPING` | `Generic6DOFJoint3D.PARAM_LINEAR_SPRING_EQUILIBRIUM_POINT` | `Generic6DOFJoint3D.PARAM_ANGULAR_LOWER_LIMIT` | `Generic6DOFJoint3D.PARAM_ANGULAR_UPPER_LIMIT` | `Generic6DOFJoint3D.PARAM_ANGULAR_LIMIT_SOFTNESS` | `Generic6DOFJoint3D.PARAM_ANGULAR_DAMPING` | `Generic6DOFJoint3D.PARAM_ANGULAR_RESTITUTION` | `Generic6DOFJoint3D.PARAM_ANGULAR_FORCE_LIMIT` | `Generic6DOFJoint3D.PARAM_ANGULAR_ERP` | `Generic6DOFJoint3D.PARAM_ANGULAR_MOTOR_TARGET_VELOCITY` | `Generic6DOFJoint3D.PARAM_ANGULAR_MOTOR_FORCE_LIMIT` | `Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_STIFFNESS` | `Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_DAMPING` | `Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_EQUILIBRIUM_POINT` | `Generic6DOFJoint3D.PARAM_MAX` +Generic6DOFJoint3D.PARAM_LINEAR_LOWER_LIMIT = 0 +Generic6DOFJoint3D.PARAM_LINEAR_UPPER_LIMIT = 1 +Generic6DOFJoint3D.PARAM_LINEAR_LIMIT_SOFTNESS = 2 +Generic6DOFJoint3D.PARAM_LINEAR_RESTITUTION = 3 +Generic6DOFJoint3D.PARAM_LINEAR_DAMPING = 4 +Generic6DOFJoint3D.PARAM_LINEAR_MOTOR_TARGET_VELOCITY = 5 +Generic6DOFJoint3D.PARAM_LINEAR_MOTOR_FORCE_LIMIT = 6 +Generic6DOFJoint3D.PARAM_LINEAR_SPRING_STIFFNESS = 7 +Generic6DOFJoint3D.PARAM_LINEAR_SPRING_DAMPING = 8 +Generic6DOFJoint3D.PARAM_LINEAR_SPRING_EQUILIBRIUM_POINT = 9 +Generic6DOFJoint3D.PARAM_ANGULAR_LOWER_LIMIT = 10 +Generic6DOFJoint3D.PARAM_ANGULAR_UPPER_LIMIT = 11 +Generic6DOFJoint3D.PARAM_ANGULAR_LIMIT_SOFTNESS = 12 +Generic6DOFJoint3D.PARAM_ANGULAR_DAMPING = 13 +Generic6DOFJoint3D.PARAM_ANGULAR_RESTITUTION = 14 +Generic6DOFJoint3D.PARAM_ANGULAR_FORCE_LIMIT = 15 +Generic6DOFJoint3D.PARAM_ANGULAR_ERP = 16 +Generic6DOFJoint3D.PARAM_ANGULAR_MOTOR_TARGET_VELOCITY = 17 +Generic6DOFJoint3D.PARAM_ANGULAR_MOTOR_FORCE_LIMIT = 18 +Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_STIFFNESS = 19 +Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_DAMPING = 20 +Generic6DOFJoint3D.PARAM_ANGULAR_SPRING_EQUILIBRIUM_POINT = 21 +Generic6DOFJoint3D.PARAM_MAX = 22 + +--- @alias Generic6DOFJoint3D.Flag `Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_LIMIT` | `Generic6DOFJoint3D.FLAG_ENABLE_ANGULAR_LIMIT` | `Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_SPRING` | `Generic6DOFJoint3D.FLAG_ENABLE_ANGULAR_SPRING` | `Generic6DOFJoint3D.FLAG_ENABLE_MOTOR` | `Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_MOTOR` | `Generic6DOFJoint3D.FLAG_MAX` +Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_LIMIT = 0 +Generic6DOFJoint3D.FLAG_ENABLE_ANGULAR_LIMIT = 1 +Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_SPRING = 3 +Generic6DOFJoint3D.FLAG_ENABLE_ANGULAR_SPRING = 2 +Generic6DOFJoint3D.FLAG_ENABLE_MOTOR = 4 +Generic6DOFJoint3D.FLAG_ENABLE_LINEAR_MOTOR = 5 +Generic6DOFJoint3D.FLAG_MAX = 6 + +--- @param param Generic6DOFJoint3D.Param +--- @param value float +function Generic6DOFJoint3D:set_param_x(param, value) end + +--- @param param Generic6DOFJoint3D.Param +--- @return float +function Generic6DOFJoint3D:get_param_x(param) end + +--- @param param Generic6DOFJoint3D.Param +--- @param value float +function Generic6DOFJoint3D:set_param_y(param, value) end + +--- @param param Generic6DOFJoint3D.Param +--- @return float +function Generic6DOFJoint3D:get_param_y(param) end + +--- @param param Generic6DOFJoint3D.Param +--- @param value float +function Generic6DOFJoint3D:set_param_z(param, value) end + +--- @param param Generic6DOFJoint3D.Param +--- @return float +function Generic6DOFJoint3D:get_param_z(param) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @param value bool +function Generic6DOFJoint3D:set_flag_x(flag, value) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @return bool +function Generic6DOFJoint3D:get_flag_x(flag) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @param value bool +function Generic6DOFJoint3D:set_flag_y(flag, value) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @return bool +function Generic6DOFJoint3D:get_flag_y(flag) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @param value bool +function Generic6DOFJoint3D:set_flag_z(flag, value) end + +--- @param flag Generic6DOFJoint3D.Flag +--- @return bool +function Generic6DOFJoint3D:get_flag_z(flag) end + + +----------------------------------------------------------- +-- Geometry2D +----------------------------------------------------------- + +--- @class Geometry2D: Object, { [string]: any } +Geometry2D = {} + +--- @alias Geometry2D.PolyBooleanOperation `Geometry2D.OPERATION_UNION` | `Geometry2D.OPERATION_DIFFERENCE` | `Geometry2D.OPERATION_INTERSECTION` | `Geometry2D.OPERATION_XOR` +Geometry2D.OPERATION_UNION = 0 +Geometry2D.OPERATION_DIFFERENCE = 1 +Geometry2D.OPERATION_INTERSECTION = 2 +Geometry2D.OPERATION_XOR = 3 + +--- @alias Geometry2D.PolyJoinType `Geometry2D.JOIN_SQUARE` | `Geometry2D.JOIN_ROUND` | `Geometry2D.JOIN_MITER` +Geometry2D.JOIN_SQUARE = 0 +Geometry2D.JOIN_ROUND = 1 +Geometry2D.JOIN_MITER = 2 + +--- @alias Geometry2D.PolyEndType `Geometry2D.END_POLYGON` | `Geometry2D.END_JOINED` | `Geometry2D.END_BUTT` | `Geometry2D.END_SQUARE` | `Geometry2D.END_ROUND` +Geometry2D.END_POLYGON = 0 +Geometry2D.END_JOINED = 1 +Geometry2D.END_BUTT = 2 +Geometry2D.END_SQUARE = 3 +Geometry2D.END_ROUND = 4 + +--- @param point Vector2 +--- @param circle_position Vector2 +--- @param circle_radius float +--- @return bool +function Geometry2D:is_point_in_circle(point, circle_position, circle_radius) end + +--- @param segment_from Vector2 +--- @param segment_to Vector2 +--- @param circle_position Vector2 +--- @param circle_radius float +--- @return float +function Geometry2D:segment_intersects_circle(segment_from, segment_to, circle_position, circle_radius) end + +--- @param from_a Vector2 +--- @param to_a Vector2 +--- @param from_b Vector2 +--- @param to_b Vector2 +--- @return any +function Geometry2D:segment_intersects_segment(from_a, to_a, from_b, to_b) end + +--- @param from_a Vector2 +--- @param dir_a Vector2 +--- @param from_b Vector2 +--- @param dir_b Vector2 +--- @return any +function Geometry2D:line_intersects_line(from_a, dir_a, from_b, dir_b) end + +--- @param p1 Vector2 +--- @param q1 Vector2 +--- @param p2 Vector2 +--- @param q2 Vector2 +--- @return PackedVector2Array +function Geometry2D:get_closest_points_between_segments(p1, q1, p2, q2) end + +--- @param point Vector2 +--- @param s1 Vector2 +--- @param s2 Vector2 +--- @return Vector2 +function Geometry2D:get_closest_point_to_segment(point, s1, s2) end + +--- @param point Vector2 +--- @param s1 Vector2 +--- @param s2 Vector2 +--- @return Vector2 +function Geometry2D:get_closest_point_to_segment_uncapped(point, s1, s2) end + +--- @param point Vector2 +--- @param a Vector2 +--- @param b Vector2 +--- @param c Vector2 +--- @return bool +function Geometry2D:point_is_inside_triangle(point, a, b, c) end + +--- @param polygon PackedVector2Array +--- @return bool +function Geometry2D:is_polygon_clockwise(polygon) end + +--- @param point Vector2 +--- @param polygon PackedVector2Array +--- @return bool +function Geometry2D:is_point_in_polygon(point, polygon) end + +--- @param polygon PackedVector2Array +--- @return PackedInt32Array +function Geometry2D:triangulate_polygon(polygon) end + +--- @param points PackedVector2Array +--- @return PackedInt32Array +function Geometry2D:triangulate_delaunay(points) end + +--- @param points PackedVector2Array +--- @return PackedVector2Array +function Geometry2D:convex_hull(points) end + +--- @param polygon PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:decompose_polygon_in_convex(polygon) end + +--- @param polygon_a PackedVector2Array +--- @param polygon_b PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:merge_polygons(polygon_a, polygon_b) end + +--- @param polygon_a PackedVector2Array +--- @param polygon_b PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:clip_polygons(polygon_a, polygon_b) end + +--- @param polygon_a PackedVector2Array +--- @param polygon_b PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:intersect_polygons(polygon_a, polygon_b) end + +--- @param polygon_a PackedVector2Array +--- @param polygon_b PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:exclude_polygons(polygon_a, polygon_b) end + +--- @param polyline PackedVector2Array +--- @param polygon PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:clip_polyline_with_polygon(polyline, polygon) end + +--- @param polyline PackedVector2Array +--- @param polygon PackedVector2Array +--- @return Array[PackedVector2Array] +function Geometry2D:intersect_polyline_with_polygon(polyline, polygon) end + +--- @param polygon PackedVector2Array +--- @param delta float +--- @param join_type Geometry2D.PolyJoinType? Default: 0 +--- @return Array[PackedVector2Array] +function Geometry2D:offset_polygon(polygon, delta, join_type) end + +--- @param polyline PackedVector2Array +--- @param delta float +--- @param join_type Geometry2D.PolyJoinType? Default: 0 +--- @param end_type Geometry2D.PolyEndType? Default: 3 +--- @return Array[PackedVector2Array] +function Geometry2D:offset_polyline(polyline, delta, join_type, end_type) end + +--- @param sizes PackedVector2Array +--- @return Dictionary +function Geometry2D:make_atlas(sizes) end + +--- @param from Vector2i +--- @param to Vector2i +--- @return Array[Vector2i] +function Geometry2D:bresenham_line(from, to) end + + +----------------------------------------------------------- +-- Geometry3D +----------------------------------------------------------- + +--- @class Geometry3D: Object, { [string]: any } +Geometry3D = {} + +--- @param planes Array[Plane] +--- @return PackedVector3Array +function Geometry3D:compute_convex_mesh_points(planes) end + +--- @param extents Vector3 +--- @return Array[Plane] +function Geometry3D:build_box_planes(extents) end + +--- @param radius float +--- @param height float +--- @param sides int +--- @param axis Vector3.Axis? Default: 2 +--- @return Array[Plane] +function Geometry3D:build_cylinder_planes(radius, height, sides, axis) end + +--- @param radius float +--- @param height float +--- @param sides int +--- @param lats int +--- @param axis Vector3.Axis? Default: 2 +--- @return Array[Plane] +function Geometry3D:build_capsule_planes(radius, height, sides, lats, axis) end + +--- @param p1 Vector3 +--- @param p2 Vector3 +--- @param q1 Vector3 +--- @param q2 Vector3 +--- @return PackedVector3Array +function Geometry3D:get_closest_points_between_segments(p1, p2, q1, q2) end + +--- @param point Vector3 +--- @param s1 Vector3 +--- @param s2 Vector3 +--- @return Vector3 +function Geometry3D:get_closest_point_to_segment(point, s1, s2) end + +--- @param point Vector3 +--- @param s1 Vector3 +--- @param s2 Vector3 +--- @return Vector3 +function Geometry3D:get_closest_point_to_segment_uncapped(point, s1, s2) end + +--- @param point Vector3 +--- @param a Vector3 +--- @param b Vector3 +--- @param c Vector3 +--- @return Vector3 +function Geometry3D:get_triangle_barycentric_coords(point, a, b, c) end + +--- @param from Vector3 +--- @param dir Vector3 +--- @param a Vector3 +--- @param b Vector3 +--- @param c Vector3 +--- @return any +function Geometry3D:ray_intersects_triangle(from, dir, a, b, c) end + +--- @param from Vector3 +--- @param to Vector3 +--- @param a Vector3 +--- @param b Vector3 +--- @param c Vector3 +--- @return any +function Geometry3D:segment_intersects_triangle(from, to, a, b, c) end + +--- @param from Vector3 +--- @param to Vector3 +--- @param sphere_position Vector3 +--- @param sphere_radius float +--- @return PackedVector3Array +function Geometry3D:segment_intersects_sphere(from, to, sphere_position, sphere_radius) end + +--- @param from Vector3 +--- @param to Vector3 +--- @param height float +--- @param radius float +--- @return PackedVector3Array +function Geometry3D:segment_intersects_cylinder(from, to, height, radius) end + +--- @param from Vector3 +--- @param to Vector3 +--- @param planes Array[Plane] +--- @return PackedVector3Array +function Geometry3D:segment_intersects_convex(from, to, planes) end + +--- @param points PackedVector3Array +--- @param plane Plane +--- @return PackedVector3Array +function Geometry3D:clip_polygon(points, plane) end + +--- @param points PackedVector3Array +--- @return PackedInt32Array +function Geometry3D:tetrahedralize_delaunay(points) end + + +----------------------------------------------------------- +-- GeometryInstance3D +----------------------------------------------------------- + +--- @class GeometryInstance3D: VisualInstance3D, { [string]: any } +--- @field material_override BaseMaterial3D | ShaderMaterial +--- @field material_overlay BaseMaterial3D | ShaderMaterial +--- @field transparency float +--- @field cast_shadow int +--- @field extra_cull_margin float +--- @field custom_aabb AABB +--- @field lod_bias float +--- @field ignore_occlusion_culling bool +--- @field gi_mode int +--- @field gi_lightmap_texel_scale float +--- @field gi_lightmap_scale int +--- @field visibility_range_begin float +--- @field visibility_range_begin_margin float +--- @field visibility_range_end float +--- @field visibility_range_end_margin float +--- @field visibility_range_fade_mode int +GeometryInstance3D = {} + +--- @return GeometryInstance3D +function GeometryInstance3D:new() end + +--- @alias GeometryInstance3D.ShadowCastingSetting `GeometryInstance3D.SHADOW_CASTING_SETTING_OFF` | `GeometryInstance3D.SHADOW_CASTING_SETTING_ON` | `GeometryInstance3D.SHADOW_CASTING_SETTING_DOUBLE_SIDED` | `GeometryInstance3D.SHADOW_CASTING_SETTING_SHADOWS_ONLY` +GeometryInstance3D.SHADOW_CASTING_SETTING_OFF = 0 +GeometryInstance3D.SHADOW_CASTING_SETTING_ON = 1 +GeometryInstance3D.SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2 +GeometryInstance3D.SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3 + +--- @alias GeometryInstance3D.GIMode `GeometryInstance3D.GI_MODE_DISABLED` | `GeometryInstance3D.GI_MODE_STATIC` | `GeometryInstance3D.GI_MODE_DYNAMIC` +GeometryInstance3D.GI_MODE_DISABLED = 0 +GeometryInstance3D.GI_MODE_STATIC = 1 +GeometryInstance3D.GI_MODE_DYNAMIC = 2 + +--- @alias GeometryInstance3D.LightmapScale `GeometryInstance3D.LIGHTMAP_SCALE_1X` | `GeometryInstance3D.LIGHTMAP_SCALE_2X` | `GeometryInstance3D.LIGHTMAP_SCALE_4X` | `GeometryInstance3D.LIGHTMAP_SCALE_8X` | `GeometryInstance3D.LIGHTMAP_SCALE_MAX` +GeometryInstance3D.LIGHTMAP_SCALE_1X = 0 +GeometryInstance3D.LIGHTMAP_SCALE_2X = 1 +GeometryInstance3D.LIGHTMAP_SCALE_4X = 2 +GeometryInstance3D.LIGHTMAP_SCALE_8X = 3 +GeometryInstance3D.LIGHTMAP_SCALE_MAX = 4 + +--- @alias GeometryInstance3D.VisibilityRangeFadeMode `GeometryInstance3D.VISIBILITY_RANGE_FADE_DISABLED` | `GeometryInstance3D.VISIBILITY_RANGE_FADE_SELF` | `GeometryInstance3D.VISIBILITY_RANGE_FADE_DEPENDENCIES` +GeometryInstance3D.VISIBILITY_RANGE_FADE_DISABLED = 0 +GeometryInstance3D.VISIBILITY_RANGE_FADE_SELF = 1 +GeometryInstance3D.VISIBILITY_RANGE_FADE_DEPENDENCIES = 2 + +--- @param material Material +function GeometryInstance3D:set_material_override(material) end + +--- @return Material +function GeometryInstance3D:get_material_override() end + +--- @param material Material +function GeometryInstance3D:set_material_overlay(material) end + +--- @return Material +function GeometryInstance3D:get_material_overlay() end + +--- @param shadow_casting_setting GeometryInstance3D.ShadowCastingSetting +function GeometryInstance3D:set_cast_shadows_setting(shadow_casting_setting) end + +--- @return GeometryInstance3D.ShadowCastingSetting +function GeometryInstance3D:get_cast_shadows_setting() end + +--- @param bias float +function GeometryInstance3D:set_lod_bias(bias) end + +--- @return float +function GeometryInstance3D:get_lod_bias() end + +--- @param transparency float +function GeometryInstance3D:set_transparency(transparency) end + +--- @return float +function GeometryInstance3D:get_transparency() end + +--- @param distance float +function GeometryInstance3D:set_visibility_range_end_margin(distance) end + +--- @return float +function GeometryInstance3D:get_visibility_range_end_margin() end + +--- @param distance float +function GeometryInstance3D:set_visibility_range_end(distance) end + +--- @return float +function GeometryInstance3D:get_visibility_range_end() end + +--- @param distance float +function GeometryInstance3D:set_visibility_range_begin_margin(distance) end + +--- @return float +function GeometryInstance3D:get_visibility_range_begin_margin() end + +--- @param distance float +function GeometryInstance3D:set_visibility_range_begin(distance) end + +--- @return float +function GeometryInstance3D:get_visibility_range_begin() end + +--- @param mode GeometryInstance3D.VisibilityRangeFadeMode +function GeometryInstance3D:set_visibility_range_fade_mode(mode) end + +--- @return GeometryInstance3D.VisibilityRangeFadeMode +function GeometryInstance3D:get_visibility_range_fade_mode() end + +--- @param name StringName +--- @param value any +function GeometryInstance3D:set_instance_shader_parameter(name, value) end + +--- @param name StringName +--- @return any +function GeometryInstance3D:get_instance_shader_parameter(name) end + +--- @param margin float +function GeometryInstance3D:set_extra_cull_margin(margin) end + +--- @return float +function GeometryInstance3D:get_extra_cull_margin() end + +--- @param scale float +function GeometryInstance3D:set_lightmap_texel_scale(scale) end + +--- @return float +function GeometryInstance3D:get_lightmap_texel_scale() end + +--- @param scale GeometryInstance3D.LightmapScale +function GeometryInstance3D:set_lightmap_scale(scale) end + +--- @return GeometryInstance3D.LightmapScale +function GeometryInstance3D:get_lightmap_scale() end + +--- @param mode GeometryInstance3D.GIMode +function GeometryInstance3D:set_gi_mode(mode) end + +--- @return GeometryInstance3D.GIMode +function GeometryInstance3D:get_gi_mode() end + +--- @param ignore_culling bool +function GeometryInstance3D:set_ignore_occlusion_culling(ignore_culling) end + +--- @return bool +function GeometryInstance3D:is_ignoring_occlusion_culling() end + +--- @param aabb AABB +function GeometryInstance3D:set_custom_aabb(aabb) end + +--- @return AABB +function GeometryInstance3D:get_custom_aabb() end + + +----------------------------------------------------------- +-- Gradient +----------------------------------------------------------- + +--- @class Gradient: Resource, { [string]: any } +--- @field interpolation_mode int +--- @field interpolation_color_space int +--- @field offsets PackedFloat32Array +--- @field colors PackedColorArray +Gradient = {} + +--- @return Gradient +function Gradient:new() end + +--- @alias Gradient.InterpolationMode `Gradient.GRADIENT_INTERPOLATE_LINEAR` | `Gradient.GRADIENT_INTERPOLATE_CONSTANT` | `Gradient.GRADIENT_INTERPOLATE_CUBIC` +Gradient.GRADIENT_INTERPOLATE_LINEAR = 0 +Gradient.GRADIENT_INTERPOLATE_CONSTANT = 1 +Gradient.GRADIENT_INTERPOLATE_CUBIC = 2 + +--- @alias Gradient.ColorSpace `Gradient.GRADIENT_COLOR_SPACE_SRGB` | `Gradient.GRADIENT_COLOR_SPACE_LINEAR_SRGB` | `Gradient.GRADIENT_COLOR_SPACE_OKLAB` +Gradient.GRADIENT_COLOR_SPACE_SRGB = 0 +Gradient.GRADIENT_COLOR_SPACE_LINEAR_SRGB = 1 +Gradient.GRADIENT_COLOR_SPACE_OKLAB = 2 + +--- @param offset float +--- @param color Color +function Gradient:add_point(offset, color) end + +--- @param point int +function Gradient:remove_point(point) end + +--- @param point int +--- @param offset float +function Gradient:set_offset(point, offset) end + +--- @param point int +--- @return float +function Gradient:get_offset(point) end + +function Gradient:reverse() end + +--- @param point int +--- @param color Color +function Gradient:set_color(point, color) end + +--- @param point int +--- @return Color +function Gradient:get_color(point) end + +--- @param offset float +--- @return Color +function Gradient:sample(offset) end + +--- @return int +function Gradient:get_point_count() end + +--- @param offsets PackedFloat32Array +function Gradient:set_offsets(offsets) end + +--- @return PackedFloat32Array +function Gradient:get_offsets() end + +--- @param colors PackedColorArray +function Gradient:set_colors(colors) end + +--- @return PackedColorArray +function Gradient:get_colors() end + +--- @param interpolation_mode Gradient.InterpolationMode +function Gradient:set_interpolation_mode(interpolation_mode) end + +--- @return Gradient.InterpolationMode +function Gradient:get_interpolation_mode() end + +--- @param interpolation_color_space Gradient.ColorSpace +function Gradient:set_interpolation_color_space(interpolation_color_space) end + +--- @return Gradient.ColorSpace +function Gradient:get_interpolation_color_space() end + + +----------------------------------------------------------- +-- GradientTexture1D +----------------------------------------------------------- + +--- @class GradientTexture1D: Texture2D, { [string]: any } +--- @field gradient Gradient +--- @field width int +--- @field use_hdr bool +GradientTexture1D = {} + +--- @return GradientTexture1D +function GradientTexture1D:new() end + +--- @param gradient Gradient +function GradientTexture1D:set_gradient(gradient) end + +--- @return Gradient +function GradientTexture1D:get_gradient() end + +--- @param width int +function GradientTexture1D:set_width(width) end + +--- @param enabled bool +function GradientTexture1D:set_use_hdr(enabled) end + +--- @return bool +function GradientTexture1D:is_using_hdr() end + + +----------------------------------------------------------- +-- GradientTexture2D +----------------------------------------------------------- + +--- @class GradientTexture2D: Texture2D, { [string]: any } +--- @field gradient Gradient +--- @field width int +--- @field height int +--- @field use_hdr bool +--- @field fill int +--- @field fill_from Vector2 +--- @field fill_to Vector2 +--- @field repeat int +GradientTexture2D = {} + +--- @return GradientTexture2D +function GradientTexture2D:new() end + +--- @alias GradientTexture2D.Fill `GradientTexture2D.FILL_LINEAR` | `GradientTexture2D.FILL_RADIAL` | `GradientTexture2D.FILL_SQUARE` +GradientTexture2D.FILL_LINEAR = 0 +GradientTexture2D.FILL_RADIAL = 1 +GradientTexture2D.FILL_SQUARE = 2 + +--- @alias GradientTexture2D.Repeat `GradientTexture2D.REPEAT_NONE` | `GradientTexture2D.REPEAT` | `GradientTexture2D.REPEAT_MIRROR` +GradientTexture2D.REPEAT_NONE = 0 +GradientTexture2D.REPEAT = 1 +GradientTexture2D.REPEAT_MIRROR = 2 + +--- @param gradient Gradient +function GradientTexture2D:set_gradient(gradient) end + +--- @return Gradient +function GradientTexture2D:get_gradient() end + +--- @param width int +function GradientTexture2D:set_width(width) end + +--- @param height int +function GradientTexture2D:set_height(height) end + +--- @param enabled bool +function GradientTexture2D:set_use_hdr(enabled) end + +--- @return bool +function GradientTexture2D:is_using_hdr() end + +--- @param fill GradientTexture2D.Fill +function GradientTexture2D:set_fill(fill) end + +--- @return GradientTexture2D.Fill +function GradientTexture2D:get_fill() end + +--- @param fill_from Vector2 +function GradientTexture2D:set_fill_from(fill_from) end + +--- @return Vector2 +function GradientTexture2D:get_fill_from() end + +--- @param fill_to Vector2 +function GradientTexture2D:set_fill_to(fill_to) end + +--- @return Vector2 +function GradientTexture2D:get_fill_to() end + +--- @param _repeat GradientTexture2D.Repeat +function GradientTexture2D:set_repeat(_repeat) end + +--- @return GradientTexture2D.Repeat +function GradientTexture2D:get_repeat() end + + +----------------------------------------------------------- +-- GraphEdit +----------------------------------------------------------- + +--- @class GraphEdit: Control, { [string]: any } +--- @field scroll_offset Vector2 +--- @field show_grid bool +--- @field grid_pattern int +--- @field snapping_enabled bool +--- @field snapping_distance int +--- @field panning_scheme int +--- @field right_disconnects bool +--- @field type_names typeddictionary::int;String +--- @field connection_lines_curvature float +--- @field connection_lines_thickness float +--- @field connection_lines_antialiased bool +--- @field connections Array[27/0:] +--- @field zoom float +--- @field zoom_min float +--- @field zoom_max float +--- @field zoom_step float +--- @field minimap_enabled bool +--- @field minimap_size Vector2 +--- @field minimap_opacity float +--- @field show_menu bool +--- @field show_zoom_label bool +--- @field show_zoom_buttons bool +--- @field show_grid_buttons bool +--- @field show_minimap_button bool +--- @field show_arrange_button bool +GraphEdit = {} + +--- @return GraphEdit +function GraphEdit:new() end + +--- @alias GraphEdit.PanningScheme `GraphEdit.SCROLL_ZOOMS` | `GraphEdit.SCROLL_PANS` +GraphEdit.SCROLL_ZOOMS = 0 +GraphEdit.SCROLL_PANS = 1 + +--- @alias GraphEdit.GridPattern `GraphEdit.GRID_PATTERN_LINES` | `GraphEdit.GRID_PATTERN_DOTS` +GraphEdit.GRID_PATTERN_LINES = 0 +GraphEdit.GRID_PATTERN_DOTS = 1 + +GraphEdit.connection_request = Signal() +GraphEdit.disconnection_request = Signal() +GraphEdit.connection_to_empty = Signal() +GraphEdit.connection_from_empty = Signal() +GraphEdit.connection_drag_started = Signal() +GraphEdit.connection_drag_ended = Signal() +GraphEdit.copy_nodes_request = Signal() +GraphEdit.cut_nodes_request = Signal() +GraphEdit.paste_nodes_request = Signal() +GraphEdit.duplicate_nodes_request = Signal() +GraphEdit.delete_nodes_request = Signal() +GraphEdit.node_selected = Signal() +GraphEdit.node_deselected = Signal() +GraphEdit.frame_rect_changed = Signal() +GraphEdit.popup_request = Signal() +GraphEdit.begin_node_move = Signal() +GraphEdit.end_node_move = Signal() +GraphEdit.graph_elements_linked_to_frame_request = Signal() +GraphEdit.scroll_offset_changed = Signal() + +--- @param in_node Object +--- @param in_port int +--- @param mouse_position Vector2 +--- @return bool +function GraphEdit:_is_in_input_hotzone(in_node, in_port, mouse_position) end + +--- @param in_node Object +--- @param in_port int +--- @param mouse_position Vector2 +--- @return bool +function GraphEdit:_is_in_output_hotzone(in_node, in_port, mouse_position) end + +--- @param from_position Vector2 +--- @param to_position Vector2 +--- @return PackedVector2Array +function GraphEdit:_get_connection_line(from_position, to_position) end + +--- @param from_node StringName +--- @param from_port int +--- @param to_node StringName +--- @param to_port int +--- @return bool +function GraphEdit:_is_node_hover_valid(from_node, from_port, to_node, to_port) end + +--- @param from_node StringName +--- @param from_port int +--- @param to_node StringName +--- @param to_port int +--- @param keep_alive bool? Default: false +--- @return Error +function GraphEdit:connect_node(from_node, from_port, to_node, to_port, keep_alive) end + +--- @param from_node StringName +--- @param from_port int +--- @param to_node StringName +--- @param to_port int +--- @return bool +function GraphEdit:is_node_connected(from_node, from_port, to_node, to_port) end + +--- @param from_node StringName +--- @param from_port int +--- @param to_node StringName +--- @param to_port int +function GraphEdit:disconnect_node(from_node, from_port, to_node, to_port) end + +--- @param from_node StringName +--- @param from_port int +--- @param to_node StringName +--- @param to_port int +--- @param amount float +function GraphEdit:set_connection_activity(from_node, from_port, to_node, to_port, amount) end + +--- @param connections Array[Dictionary] +function GraphEdit:set_connections(connections) end + +--- @return Array[Dictionary] +function GraphEdit:get_connection_list() end + +--- @param from_node StringName +--- @param from_port int +--- @return int +function GraphEdit:get_connection_count(from_node, from_port) end + +--- @param point Vector2 +--- @param max_distance float? Default: 4.0 +--- @return Dictionary +function GraphEdit:get_closest_connection_at_point(point, max_distance) end + +--- @param node StringName +--- @return Array[Dictionary] +function GraphEdit:get_connection_list_from_node(node) end + +--- @param rect Rect2 +--- @return Array[Dictionary] +function GraphEdit:get_connections_intersecting_with_rect(rect) end + +function GraphEdit:clear_connections() end + +function GraphEdit:force_connection_drag_end() end + +--- @return Vector2 +function GraphEdit:get_scroll_offset() end + +--- @param offset Vector2 +function GraphEdit:set_scroll_offset(offset) end + +--- @param type int +function GraphEdit:add_valid_right_disconnect_type(type) end + +--- @param type int +function GraphEdit:remove_valid_right_disconnect_type(type) end + +--- @param type int +function GraphEdit:add_valid_left_disconnect_type(type) end + +--- @param type int +function GraphEdit:remove_valid_left_disconnect_type(type) end + +--- @param from_type int +--- @param to_type int +function GraphEdit:add_valid_connection_type(from_type, to_type) end + +--- @param from_type int +--- @param to_type int +function GraphEdit:remove_valid_connection_type(from_type, to_type) end + +--- @param from_type int +--- @param to_type int +--- @return bool +function GraphEdit:is_valid_connection_type(from_type, to_type) end + +--- @param from_node Vector2 +--- @param to_node Vector2 +--- @return PackedVector2Array +function GraphEdit:get_connection_line(from_node, to_node) end + +--- @param element StringName +--- @param frame StringName +function GraphEdit:attach_graph_element_to_frame(element, frame) end + +--- @param element StringName +function GraphEdit:detach_graph_element_from_frame(element) end + +--- @param element StringName +--- @return GraphFrame +function GraphEdit:get_element_frame(element) end + +--- @param frame StringName +--- @return Array[StringName] +function GraphEdit:get_attached_nodes_of_frame(frame) end + +--- @param scheme GraphEdit.PanningScheme +function GraphEdit:set_panning_scheme(scheme) end + +--- @return GraphEdit.PanningScheme +function GraphEdit:get_panning_scheme() end + +--- @param zoom float +function GraphEdit:set_zoom(zoom) end + +--- @return float +function GraphEdit:get_zoom() end + +--- @param zoom_min float +function GraphEdit:set_zoom_min(zoom_min) end + +--- @return float +function GraphEdit:get_zoom_min() end + +--- @param zoom_max float +function GraphEdit:set_zoom_max(zoom_max) end + +--- @return float +function GraphEdit:get_zoom_max() end + +--- @param zoom_step float +function GraphEdit:set_zoom_step(zoom_step) end + +--- @return float +function GraphEdit:get_zoom_step() end + +--- @param enable bool +function GraphEdit:set_show_grid(enable) end + +--- @return bool +function GraphEdit:is_showing_grid() end + +--- @param pattern GraphEdit.GridPattern +function GraphEdit:set_grid_pattern(pattern) end + +--- @return GraphEdit.GridPattern +function GraphEdit:get_grid_pattern() end + +--- @param enable bool +function GraphEdit:set_snapping_enabled(enable) end + +--- @return bool +function GraphEdit:is_snapping_enabled() end + +--- @param pixels int +function GraphEdit:set_snapping_distance(pixels) end + +--- @return int +function GraphEdit:get_snapping_distance() end + +--- @param curvature float +function GraphEdit:set_connection_lines_curvature(curvature) end + +--- @return float +function GraphEdit:get_connection_lines_curvature() end + +--- @param pixels float +function GraphEdit:set_connection_lines_thickness(pixels) end + +--- @return float +function GraphEdit:get_connection_lines_thickness() end + +--- @param pixels bool +function GraphEdit:set_connection_lines_antialiased(pixels) end + +--- @return bool +function GraphEdit:is_connection_lines_antialiased() end + +--- @param size Vector2 +function GraphEdit:set_minimap_size(size) end + +--- @return Vector2 +function GraphEdit:get_minimap_size() end + +--- @param opacity float +function GraphEdit:set_minimap_opacity(opacity) end + +--- @return float +function GraphEdit:get_minimap_opacity() end + +--- @param enable bool +function GraphEdit:set_minimap_enabled(enable) end + +--- @return bool +function GraphEdit:is_minimap_enabled() end + +--- @param hidden bool +function GraphEdit:set_show_menu(hidden) end + +--- @return bool +function GraphEdit:is_showing_menu() end + +--- @param enable bool +function GraphEdit:set_show_zoom_label(enable) end + +--- @return bool +function GraphEdit:is_showing_zoom_label() end + +--- @param hidden bool +function GraphEdit:set_show_grid_buttons(hidden) end + +--- @return bool +function GraphEdit:is_showing_grid_buttons() end + +--- @param hidden bool +function GraphEdit:set_show_zoom_buttons(hidden) end + +--- @return bool +function GraphEdit:is_showing_zoom_buttons() end + +--- @param hidden bool +function GraphEdit:set_show_minimap_button(hidden) end + +--- @return bool +function GraphEdit:is_showing_minimap_button() end + +--- @param hidden bool +function GraphEdit:set_show_arrange_button(hidden) end + +--- @return bool +function GraphEdit:is_showing_arrange_button() end + +--- @param enable bool +function GraphEdit:set_right_disconnects(enable) end + +--- @return bool +function GraphEdit:is_right_disconnects_enabled() end + +--- @param type_names Dictionary +function GraphEdit:set_type_names(type_names) end + +--- @return Dictionary +function GraphEdit:get_type_names() end + +--- @return HBoxContainer +function GraphEdit:get_menu_hbox() end + +function GraphEdit:arrange_nodes() end + +--- @param node Node +function GraphEdit:set_selected(node) end + + +----------------------------------------------------------- +-- GraphElement +----------------------------------------------------------- + +--- @class GraphElement: Container, { [string]: any } +--- @field position_offset Vector2 +--- @field resizable bool +--- @field draggable bool +--- @field selectable bool +--- @field selected bool +GraphElement = {} + +--- @return GraphElement +function GraphElement:new() end + +GraphElement.node_selected = Signal() +GraphElement.node_deselected = Signal() +GraphElement.raise_request = Signal() +GraphElement.delete_request = Signal() +GraphElement.resize_request = Signal() +GraphElement.resize_end = Signal() +GraphElement.dragged = Signal() +GraphElement.position_offset_changed = Signal() + +--- @param resizable bool +function GraphElement:set_resizable(resizable) end + +--- @return bool +function GraphElement:is_resizable() end + +--- @param draggable bool +function GraphElement:set_draggable(draggable) end + +--- @return bool +function GraphElement:is_draggable() end + +--- @param selectable bool +function GraphElement:set_selectable(selectable) end + +--- @return bool +function GraphElement:is_selectable() end + +--- @param selected bool +function GraphElement:set_selected(selected) end + +--- @return bool +function GraphElement:is_selected() end + +--- @param offset Vector2 +function GraphElement:set_position_offset(offset) end + +--- @return Vector2 +function GraphElement:get_position_offset() end + + +----------------------------------------------------------- +-- GraphFrame +----------------------------------------------------------- + +--- @class GraphFrame: GraphElement, { [string]: any } +--- @field title String +--- @field autoshrink_enabled bool +--- @field autoshrink_margin int +--- @field drag_margin int +--- @field tint_color_enabled bool +--- @field tint_color Color +GraphFrame = {} + +--- @return GraphFrame +function GraphFrame:new() end + +GraphFrame.autoshrink_changed = Signal() + +--- @param title String +function GraphFrame:set_title(title) end + +--- @return String +function GraphFrame:get_title() end + +--- @return HBoxContainer +function GraphFrame:get_titlebar_hbox() end + +--- @param shrink bool +function GraphFrame:set_autoshrink_enabled(shrink) end + +--- @return bool +function GraphFrame:is_autoshrink_enabled() end + +--- @param autoshrink_margin int +function GraphFrame:set_autoshrink_margin(autoshrink_margin) end + +--- @return int +function GraphFrame:get_autoshrink_margin() end + +--- @param drag_margin int +function GraphFrame:set_drag_margin(drag_margin) end + +--- @return int +function GraphFrame:get_drag_margin() end + +--- @param enable bool +function GraphFrame:set_tint_color_enabled(enable) end + +--- @return bool +function GraphFrame:is_tint_color_enabled() end + +--- @param color Color +function GraphFrame:set_tint_color(color) end + +--- @return Color +function GraphFrame:get_tint_color() end + + +----------------------------------------------------------- +-- GraphNode +----------------------------------------------------------- + +--- @class GraphNode: GraphElement, { [string]: any } +--- @field title String +--- @field ignore_invalid_connection_type bool +--- @field slots_focus_mode int +GraphNode = {} + +--- @return GraphNode +function GraphNode:new() end + +GraphNode.slot_updated = Signal() +GraphNode.slot_sizes_changed = Signal() + +--- @param slot_index int +--- @param position Vector2i +--- @param left bool +--- @param color Color +function GraphNode:_draw_port(slot_index, position, left, color) end + +--- @param title String +function GraphNode:set_title(title) end + +--- @return String +function GraphNode:get_title() end + +--- @return HBoxContainer +function GraphNode:get_titlebar_hbox() end + +--- @param slot_index int +--- @param enable_left_port bool +--- @param type_left int +--- @param color_left Color +--- @param enable_right_port bool +--- @param type_right int +--- @param color_right Color +--- @param custom_icon_left Texture2D? Default: null +--- @param custom_icon_right Texture2D? Default: null +--- @param draw_stylebox bool? Default: true +function GraphNode:set_slot(slot_index, enable_left_port, type_left, color_left, enable_right_port, type_right, color_right, custom_icon_left, custom_icon_right, draw_stylebox) end + +--- @param slot_index int +function GraphNode:clear_slot(slot_index) end + +function GraphNode:clear_all_slots() end + +--- @param slot_index int +--- @return bool +function GraphNode:is_slot_enabled_left(slot_index) end + +--- @param slot_index int +--- @param enable bool +function GraphNode:set_slot_enabled_left(slot_index, enable) end + +--- @param slot_index int +--- @param type int +function GraphNode:set_slot_type_left(slot_index, type) end + +--- @param slot_index int +--- @return int +function GraphNode:get_slot_type_left(slot_index) end + +--- @param slot_index int +--- @param color Color +function GraphNode:set_slot_color_left(slot_index, color) end + +--- @param slot_index int +--- @return Color +function GraphNode:get_slot_color_left(slot_index) end + +--- @param slot_index int +--- @param custom_icon Texture2D +function GraphNode:set_slot_custom_icon_left(slot_index, custom_icon) end + +--- @param slot_index int +--- @return Texture2D +function GraphNode:get_slot_custom_icon_left(slot_index) end + +--- @param slot_index int +--- @return bool +function GraphNode:is_slot_enabled_right(slot_index) end + +--- @param slot_index int +--- @param enable bool +function GraphNode:set_slot_enabled_right(slot_index, enable) end + +--- @param slot_index int +--- @param type int +function GraphNode:set_slot_type_right(slot_index, type) end + +--- @param slot_index int +--- @return int +function GraphNode:get_slot_type_right(slot_index) end + +--- @param slot_index int +--- @param color Color +function GraphNode:set_slot_color_right(slot_index, color) end + +--- @param slot_index int +--- @return Color +function GraphNode:get_slot_color_right(slot_index) end + +--- @param slot_index int +--- @param custom_icon Texture2D +function GraphNode:set_slot_custom_icon_right(slot_index, custom_icon) end + +--- @param slot_index int +--- @return Texture2D +function GraphNode:get_slot_custom_icon_right(slot_index) end + +--- @param slot_index int +--- @return bool +function GraphNode:is_slot_draw_stylebox(slot_index) end + +--- @param slot_index int +--- @param enable bool +function GraphNode:set_slot_draw_stylebox(slot_index, enable) end + +--- @param ignore bool +function GraphNode:set_ignore_invalid_connection_type(ignore) end + +--- @return bool +function GraphNode:is_ignoring_valid_connection_type() end + +--- @param focus_mode Control.FocusMode +function GraphNode:set_slots_focus_mode(focus_mode) end + +--- @return Control.FocusMode +function GraphNode:get_slots_focus_mode() end + +--- @return int +function GraphNode:get_input_port_count() end + +--- @param port_idx int +--- @return Vector2 +function GraphNode:get_input_port_position(port_idx) end + +--- @param port_idx int +--- @return int +function GraphNode:get_input_port_type(port_idx) end + +--- @param port_idx int +--- @return Color +function GraphNode:get_input_port_color(port_idx) end + +--- @param port_idx int +--- @return int +function GraphNode:get_input_port_slot(port_idx) end + +--- @return int +function GraphNode:get_output_port_count() end + +--- @param port_idx int +--- @return Vector2 +function GraphNode:get_output_port_position(port_idx) end + +--- @param port_idx int +--- @return int +function GraphNode:get_output_port_type(port_idx) end + +--- @param port_idx int +--- @return Color +function GraphNode:get_output_port_color(port_idx) end + +--- @param port_idx int +--- @return int +function GraphNode:get_output_port_slot(port_idx) end + + +----------------------------------------------------------- +-- GridContainer +----------------------------------------------------------- + +--- @class GridContainer: Container, { [string]: any } +--- @field columns int +GridContainer = {} + +--- @return GridContainer +function GridContainer:new() end + +--- @param columns int +function GridContainer:set_columns(columns) end + +--- @return int +function GridContainer:get_columns() end + + +----------------------------------------------------------- +-- GridMap +----------------------------------------------------------- + +--- @class GridMap: Node3D, { [string]: any } +--- @field mesh_library MeshLibrary +--- @field physics_material PhysicsMaterial +--- @field cell_size Vector3 +--- @field cell_octant_size int +--- @field cell_center_x bool +--- @field cell_center_y bool +--- @field cell_center_z bool +--- @field cell_scale float +--- @field collision_layer int +--- @field collision_mask int +--- @field collision_priority float +--- @field bake_navigation bool +GridMap = {} + +--- @return GridMap +function GridMap:new() end + +GridMap.INVALID_CELL_ITEM = -1 + +GridMap.cell_size_changed = Signal() +GridMap.changed = Signal() + +--- @param layer int +function GridMap:set_collision_layer(layer) end + +--- @return int +function GridMap:get_collision_layer() end + +--- @param mask int +function GridMap:set_collision_mask(mask) end + +--- @return int +function GridMap:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function GridMap:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function GridMap:get_collision_mask_value(layer_number) end + +--- @param layer_number int +--- @param value bool +function GridMap:set_collision_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function GridMap:get_collision_layer_value(layer_number) end + +--- @param priority float +function GridMap:set_collision_priority(priority) end + +--- @return float +function GridMap:get_collision_priority() end + +--- @param material PhysicsMaterial +function GridMap:set_physics_material(material) end + +--- @return PhysicsMaterial +function GridMap:get_physics_material() end + +--- @param bake_navigation bool +function GridMap:set_bake_navigation(bake_navigation) end + +--- @return bool +function GridMap:is_baking_navigation() end + +--- @param navigation_map RID +function GridMap:set_navigation_map(navigation_map) end + +--- @return RID +function GridMap:get_navigation_map() end + +--- @param mesh_library MeshLibrary +function GridMap:set_mesh_library(mesh_library) end + +--- @return MeshLibrary +function GridMap:get_mesh_library() end + +--- @param size Vector3 +function GridMap:set_cell_size(size) end + +--- @return Vector3 +function GridMap:get_cell_size() end + +--- @param scale float +function GridMap:set_cell_scale(scale) end + +--- @return float +function GridMap:get_cell_scale() end + +--- @param size int +function GridMap:set_octant_size(size) end + +--- @return int +function GridMap:get_octant_size() end + +--- @param position Vector3i +--- @param item int +--- @param orientation int? Default: 0 +function GridMap:set_cell_item(position, item, orientation) end + +--- @param position Vector3i +--- @return int +function GridMap:get_cell_item(position) end + +--- @param position Vector3i +--- @return int +function GridMap:get_cell_item_orientation(position) end + +--- @param position Vector3i +--- @return Basis +function GridMap:get_cell_item_basis(position) end + +--- @param index int +--- @return Basis +function GridMap:get_basis_with_orthogonal_index(index) end + +--- @param basis Basis +--- @return int +function GridMap:get_orthogonal_index_from_basis(basis) end + +--- @param local_position Vector3 +--- @return Vector3i +function GridMap:local_to_map(local_position) end + +--- @param map_position Vector3i +--- @return Vector3 +function GridMap:map_to_local(map_position) end + +--- @param resource Resource +function GridMap:resource_changed(resource) end + +--- @param enable bool +function GridMap:set_center_x(enable) end + +--- @return bool +function GridMap:get_center_x() end + +--- @param enable bool +function GridMap:set_center_y(enable) end + +--- @return bool +function GridMap:get_center_y() end + +--- @param enable bool +function GridMap:set_center_z(enable) end + +--- @return bool +function GridMap:get_center_z() end + +function GridMap:clear() end + +--- @return Array[Vector3i] +function GridMap:get_used_cells() end + +--- @param item int +--- @return Array[Vector3i] +function GridMap:get_used_cells_by_item(item) end + +--- @return Array +function GridMap:get_meshes() end + +--- @return Array +function GridMap:get_bake_meshes() end + +--- @param idx int +--- @return RID +function GridMap:get_bake_mesh_instance(idx) end + +function GridMap:clear_baked_meshes() end + +--- @param gen_lightmap_uv bool? Default: false +--- @param lightmap_uv_texel_size float? Default: 0.1 +function GridMap:make_baked_meshes(gen_lightmap_uv, lightmap_uv_texel_size) end + + +----------------------------------------------------------- +-- GridMapEditorPlugin +----------------------------------------------------------- + +--- @class GridMapEditorPlugin: EditorPlugin, { [string]: any } +GridMapEditorPlugin = {} + +--- @return GridMapEditorPlugin +function GridMapEditorPlugin:new() end + +--- @return GridMap +function GridMapEditorPlugin:get_current_grid_map() end + +--- @param begin Vector3i +--- @param _end Vector3i +function GridMapEditorPlugin:set_selection(begin, _end) end + +function GridMapEditorPlugin:clear_selection() end + +--- @return AABB +function GridMapEditorPlugin:get_selection() end + +--- @return bool +function GridMapEditorPlugin:has_selection() end + +--- @return Array +function GridMapEditorPlugin:get_selected_cells() end + +--- @param item int +function GridMapEditorPlugin:set_selected_palette_item(item) end + +--- @return int +function GridMapEditorPlugin:get_selected_palette_item() end + + +----------------------------------------------------------- +-- GrooveJoint2D +----------------------------------------------------------- + +--- @class GrooveJoint2D: Joint2D, { [string]: any } +--- @field length float +--- @field initial_offset float +GrooveJoint2D = {} + +--- @return GrooveJoint2D +function GrooveJoint2D:new() end + +--- @param length float +function GrooveJoint2D:set_length(length) end + +--- @return float +function GrooveJoint2D:get_length() end + +--- @param offset float +function GrooveJoint2D:set_initial_offset(offset) end + +--- @return float +function GrooveJoint2D:get_initial_offset() end + + +----------------------------------------------------------- +-- HBoxContainer +----------------------------------------------------------- + +--- @class HBoxContainer: BoxContainer, { [string]: any } +HBoxContainer = {} + +--- @return HBoxContainer +function HBoxContainer:new() end + + +----------------------------------------------------------- +-- HFlowContainer +----------------------------------------------------------- + +--- @class HFlowContainer: FlowContainer, { [string]: any } +HFlowContainer = {} + +--- @return HFlowContainer +function HFlowContainer:new() end + + +----------------------------------------------------------- +-- HMACContext +----------------------------------------------------------- + +--- @class HMACContext: RefCounted, { [string]: any } +HMACContext = {} + +--- @return HMACContext +function HMACContext:new() end + +--- @param hash_type HashingContext.HashType +--- @param key PackedByteArray +--- @return Error +function HMACContext:start(hash_type, key) end + +--- @param data PackedByteArray +--- @return Error +function HMACContext:update(data) end + +--- @return PackedByteArray +function HMACContext:finish() end + + +----------------------------------------------------------- +-- HScrollBar +----------------------------------------------------------- + +--- @class HScrollBar: ScrollBar, { [string]: any } +HScrollBar = {} + +--- @return HScrollBar +function HScrollBar:new() end + + +----------------------------------------------------------- +-- HSeparator +----------------------------------------------------------- + +--- @class HSeparator: Separator, { [string]: any } +HSeparator = {} + +--- @return HSeparator +function HSeparator:new() end + + +----------------------------------------------------------- +-- HSlider +----------------------------------------------------------- + +--- @class HSlider: Slider, { [string]: any } +HSlider = {} + +--- @return HSlider +function HSlider:new() end + + +----------------------------------------------------------- +-- HSplitContainer +----------------------------------------------------------- + +--- @class HSplitContainer: SplitContainer, { [string]: any } +HSplitContainer = {} + +--- @return HSplitContainer +function HSplitContainer:new() end + + +----------------------------------------------------------- +-- HTTPClient +----------------------------------------------------------- + +--- @class HTTPClient: RefCounted, { [string]: any } +--- @field blocking_mode_enabled bool +--- @field connection StreamPeer +--- @field read_chunk_size int +HTTPClient = {} + +--- @return HTTPClient +function HTTPClient:new() end + +--- @alias HTTPClient.Method `HTTPClient.METHOD_GET` | `HTTPClient.METHOD_HEAD` | `HTTPClient.METHOD_POST` | `HTTPClient.METHOD_PUT` | `HTTPClient.METHOD_DELETE` | `HTTPClient.METHOD_OPTIONS` | `HTTPClient.METHOD_TRACE` | `HTTPClient.METHOD_CONNECT` | `HTTPClient.METHOD_PATCH` | `HTTPClient.METHOD_MAX` +HTTPClient.METHOD_GET = 0 +HTTPClient.METHOD_HEAD = 1 +HTTPClient.METHOD_POST = 2 +HTTPClient.METHOD_PUT = 3 +HTTPClient.METHOD_DELETE = 4 +HTTPClient.METHOD_OPTIONS = 5 +HTTPClient.METHOD_TRACE = 6 +HTTPClient.METHOD_CONNECT = 7 +HTTPClient.METHOD_PATCH = 8 +HTTPClient.METHOD_MAX = 9 + +--- @alias HTTPClient.Status `HTTPClient.STATUS_DISCONNECTED` | `HTTPClient.STATUS_RESOLVING` | `HTTPClient.STATUS_CANT_RESOLVE` | `HTTPClient.STATUS_CONNECTING` | `HTTPClient.STATUS_CANT_CONNECT` | `HTTPClient.STATUS_CONNECTED` | `HTTPClient.STATUS_REQUESTING` | `HTTPClient.STATUS_BODY` | `HTTPClient.STATUS_CONNECTION_ERROR` | `HTTPClient.STATUS_TLS_HANDSHAKE_ERROR` +HTTPClient.STATUS_DISCONNECTED = 0 +HTTPClient.STATUS_RESOLVING = 1 +HTTPClient.STATUS_CANT_RESOLVE = 2 +HTTPClient.STATUS_CONNECTING = 3 +HTTPClient.STATUS_CANT_CONNECT = 4 +HTTPClient.STATUS_CONNECTED = 5 +HTTPClient.STATUS_REQUESTING = 6 +HTTPClient.STATUS_BODY = 7 +HTTPClient.STATUS_CONNECTION_ERROR = 8 +HTTPClient.STATUS_TLS_HANDSHAKE_ERROR = 9 + +--- @alias HTTPClient.ResponseCode `HTTPClient.RESPONSE_CONTINUE` | `HTTPClient.RESPONSE_SWITCHING_PROTOCOLS` | `HTTPClient.RESPONSE_PROCESSING` | `HTTPClient.RESPONSE_OK` | `HTTPClient.RESPONSE_CREATED` | `HTTPClient.RESPONSE_ACCEPTED` | `HTTPClient.RESPONSE_NON_AUTHORITATIVE_INFORMATION` | `HTTPClient.RESPONSE_NO_CONTENT` | `HTTPClient.RESPONSE_RESET_CONTENT` | `HTTPClient.RESPONSE_PARTIAL_CONTENT` | `HTTPClient.RESPONSE_MULTI_STATUS` | `HTTPClient.RESPONSE_ALREADY_REPORTED` | `HTTPClient.RESPONSE_IM_USED` | `HTTPClient.RESPONSE_MULTIPLE_CHOICES` | `HTTPClient.RESPONSE_MOVED_PERMANENTLY` | `HTTPClient.RESPONSE_FOUND` | `HTTPClient.RESPONSE_SEE_OTHER` | `HTTPClient.RESPONSE_NOT_MODIFIED` | `HTTPClient.RESPONSE_USE_PROXY` | `HTTPClient.RESPONSE_SWITCH_PROXY` | `HTTPClient.RESPONSE_TEMPORARY_REDIRECT` | `HTTPClient.RESPONSE_PERMANENT_REDIRECT` | `HTTPClient.RESPONSE_BAD_REQUEST` | `HTTPClient.RESPONSE_UNAUTHORIZED` | `HTTPClient.RESPONSE_PAYMENT_REQUIRED` | `HTTPClient.RESPONSE_FORBIDDEN` | `HTTPClient.RESPONSE_NOT_FOUND` | `HTTPClient.RESPONSE_METHOD_NOT_ALLOWED` | `HTTPClient.RESPONSE_NOT_ACCEPTABLE` | `HTTPClient.RESPONSE_PROXY_AUTHENTICATION_REQUIRED` | `HTTPClient.RESPONSE_REQUEST_TIMEOUT` | `HTTPClient.RESPONSE_CONFLICT` | `HTTPClient.RESPONSE_GONE` | `HTTPClient.RESPONSE_LENGTH_REQUIRED` | `HTTPClient.RESPONSE_PRECONDITION_FAILED` | `HTTPClient.RESPONSE_REQUEST_ENTITY_TOO_LARGE` | `HTTPClient.RESPONSE_REQUEST_URI_TOO_LONG` | `HTTPClient.RESPONSE_UNSUPPORTED_MEDIA_TYPE` | `HTTPClient.RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE` | `HTTPClient.RESPONSE_EXPECTATION_FAILED` | `HTTPClient.RESPONSE_IM_A_TEAPOT` | `HTTPClient.RESPONSE_MISDIRECTED_REQUEST` | `HTTPClient.RESPONSE_UNPROCESSABLE_ENTITY` | `HTTPClient.RESPONSE_LOCKED` | `HTTPClient.RESPONSE_FAILED_DEPENDENCY` | `HTTPClient.RESPONSE_UPGRADE_REQUIRED` | `HTTPClient.RESPONSE_PRECONDITION_REQUIRED` | `HTTPClient.RESPONSE_TOO_MANY_REQUESTS` | `HTTPClient.RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE` | `HTTPClient.RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS` | `HTTPClient.RESPONSE_INTERNAL_SERVER_ERROR` | `HTTPClient.RESPONSE_NOT_IMPLEMENTED` | `HTTPClient.RESPONSE_BAD_GATEWAY` | `HTTPClient.RESPONSE_SERVICE_UNAVAILABLE` | `HTTPClient.RESPONSE_GATEWAY_TIMEOUT` | `HTTPClient.RESPONSE_HTTP_VERSION_NOT_SUPPORTED` | `HTTPClient.RESPONSE_VARIANT_ALSO_NEGOTIATES` | `HTTPClient.RESPONSE_INSUFFICIENT_STORAGE` | `HTTPClient.RESPONSE_LOOP_DETECTED` | `HTTPClient.RESPONSE_NOT_EXTENDED` | `HTTPClient.RESPONSE_NETWORK_AUTH_REQUIRED` +HTTPClient.RESPONSE_CONTINUE = 100 +HTTPClient.RESPONSE_SWITCHING_PROTOCOLS = 101 +HTTPClient.RESPONSE_PROCESSING = 102 +HTTPClient.RESPONSE_OK = 200 +HTTPClient.RESPONSE_CREATED = 201 +HTTPClient.RESPONSE_ACCEPTED = 202 +HTTPClient.RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203 +HTTPClient.RESPONSE_NO_CONTENT = 204 +HTTPClient.RESPONSE_RESET_CONTENT = 205 +HTTPClient.RESPONSE_PARTIAL_CONTENT = 206 +HTTPClient.RESPONSE_MULTI_STATUS = 207 +HTTPClient.RESPONSE_ALREADY_REPORTED = 208 +HTTPClient.RESPONSE_IM_USED = 226 +HTTPClient.RESPONSE_MULTIPLE_CHOICES = 300 +HTTPClient.RESPONSE_MOVED_PERMANENTLY = 301 +HTTPClient.RESPONSE_FOUND = 302 +HTTPClient.RESPONSE_SEE_OTHER = 303 +HTTPClient.RESPONSE_NOT_MODIFIED = 304 +HTTPClient.RESPONSE_USE_PROXY = 305 +HTTPClient.RESPONSE_SWITCH_PROXY = 306 +HTTPClient.RESPONSE_TEMPORARY_REDIRECT = 307 +HTTPClient.RESPONSE_PERMANENT_REDIRECT = 308 +HTTPClient.RESPONSE_BAD_REQUEST = 400 +HTTPClient.RESPONSE_UNAUTHORIZED = 401 +HTTPClient.RESPONSE_PAYMENT_REQUIRED = 402 +HTTPClient.RESPONSE_FORBIDDEN = 403 +HTTPClient.RESPONSE_NOT_FOUND = 404 +HTTPClient.RESPONSE_METHOD_NOT_ALLOWED = 405 +HTTPClient.RESPONSE_NOT_ACCEPTABLE = 406 +HTTPClient.RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407 +HTTPClient.RESPONSE_REQUEST_TIMEOUT = 408 +HTTPClient.RESPONSE_CONFLICT = 409 +HTTPClient.RESPONSE_GONE = 410 +HTTPClient.RESPONSE_LENGTH_REQUIRED = 411 +HTTPClient.RESPONSE_PRECONDITION_FAILED = 412 +HTTPClient.RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413 +HTTPClient.RESPONSE_REQUEST_URI_TOO_LONG = 414 +HTTPClient.RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415 +HTTPClient.RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416 +HTTPClient.RESPONSE_EXPECTATION_FAILED = 417 +HTTPClient.RESPONSE_IM_A_TEAPOT = 418 +HTTPClient.RESPONSE_MISDIRECTED_REQUEST = 421 +HTTPClient.RESPONSE_UNPROCESSABLE_ENTITY = 422 +HTTPClient.RESPONSE_LOCKED = 423 +HTTPClient.RESPONSE_FAILED_DEPENDENCY = 424 +HTTPClient.RESPONSE_UPGRADE_REQUIRED = 426 +HTTPClient.RESPONSE_PRECONDITION_REQUIRED = 428 +HTTPClient.RESPONSE_TOO_MANY_REQUESTS = 429 +HTTPClient.RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431 +HTTPClient.RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS = 451 +HTTPClient.RESPONSE_INTERNAL_SERVER_ERROR = 500 +HTTPClient.RESPONSE_NOT_IMPLEMENTED = 501 +HTTPClient.RESPONSE_BAD_GATEWAY = 502 +HTTPClient.RESPONSE_SERVICE_UNAVAILABLE = 503 +HTTPClient.RESPONSE_GATEWAY_TIMEOUT = 504 +HTTPClient.RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505 +HTTPClient.RESPONSE_VARIANT_ALSO_NEGOTIATES = 506 +HTTPClient.RESPONSE_INSUFFICIENT_STORAGE = 507 +HTTPClient.RESPONSE_LOOP_DETECTED = 508 +HTTPClient.RESPONSE_NOT_EXTENDED = 510 +HTTPClient.RESPONSE_NETWORK_AUTH_REQUIRED = 511 + +--- @param host String +--- @param port int? Default: -1 +--- @param tls_options TLSOptions? Default: null +--- @return Error +function HTTPClient:connect_to_host(host, port, tls_options) end + +--- @param connection StreamPeer +function HTTPClient:set_connection(connection) end + +--- @return StreamPeer +function HTTPClient:get_connection() end + +--- @param method HTTPClient.Method +--- @param url String +--- @param headers PackedStringArray +--- @param body PackedByteArray +--- @return Error +function HTTPClient:request_raw(method, url, headers, body) end + +--- @param method HTTPClient.Method +--- @param url String +--- @param headers PackedStringArray +--- @param body String? Default: "" +--- @return Error +function HTTPClient:request(method, url, headers, body) end + +function HTTPClient:close() end + +--- @return bool +function HTTPClient:has_response() end + +--- @return bool +function HTTPClient:is_response_chunked() end + +--- @return int +function HTTPClient:get_response_code() end + +--- @return PackedStringArray +function HTTPClient:get_response_headers() end + +--- @return Dictionary +function HTTPClient:get_response_headers_as_dictionary() end + +--- @return int +function HTTPClient:get_response_body_length() end + +--- @return PackedByteArray +function HTTPClient:read_response_body_chunk() end + +--- @param bytes int +function HTTPClient:set_read_chunk_size(bytes) end + +--- @return int +function HTTPClient:get_read_chunk_size() end + +--- @param enabled bool +function HTTPClient:set_blocking_mode(enabled) end + +--- @return bool +function HTTPClient:is_blocking_mode_enabled() end + +--- @return HTTPClient.Status +function HTTPClient:get_status() end + +--- @return Error +function HTTPClient:poll() end + +--- @param host String +--- @param port int +function HTTPClient:set_http_proxy(host, port) end + +--- @param host String +--- @param port int +function HTTPClient:set_https_proxy(host, port) end + +--- @param fields Dictionary +--- @return String +function HTTPClient:query_string_from_dict(fields) end + + +----------------------------------------------------------- +-- HTTPRequest +----------------------------------------------------------- + +--- @class HTTPRequest: Node, { [string]: any } +--- @field download_file String +--- @field download_chunk_size int +--- @field use_threads bool +--- @field accept_gzip bool +--- @field body_size_limit int +--- @field max_redirects int +--- @field timeout float +HTTPRequest = {} + +--- @return HTTPRequest +function HTTPRequest:new() end + +--- @alias HTTPRequest.Result `HTTPRequest.RESULT_SUCCESS` | `HTTPRequest.RESULT_CHUNKED_BODY_SIZE_MISMATCH` | `HTTPRequest.RESULT_CANT_CONNECT` | `HTTPRequest.RESULT_CANT_RESOLVE` | `HTTPRequest.RESULT_CONNECTION_ERROR` | `HTTPRequest.RESULT_TLS_HANDSHAKE_ERROR` | `HTTPRequest.RESULT_NO_RESPONSE` | `HTTPRequest.RESULT_BODY_SIZE_LIMIT_EXCEEDED` | `HTTPRequest.RESULT_BODY_DECOMPRESS_FAILED` | `HTTPRequest.RESULT_REQUEST_FAILED` | `HTTPRequest.RESULT_DOWNLOAD_FILE_CANT_OPEN` | `HTTPRequest.RESULT_DOWNLOAD_FILE_WRITE_ERROR` | `HTTPRequest.RESULT_REDIRECT_LIMIT_REACHED` | `HTTPRequest.RESULT_TIMEOUT` +HTTPRequest.RESULT_SUCCESS = 0 +HTTPRequest.RESULT_CHUNKED_BODY_SIZE_MISMATCH = 1 +HTTPRequest.RESULT_CANT_CONNECT = 2 +HTTPRequest.RESULT_CANT_RESOLVE = 3 +HTTPRequest.RESULT_CONNECTION_ERROR = 4 +HTTPRequest.RESULT_TLS_HANDSHAKE_ERROR = 5 +HTTPRequest.RESULT_NO_RESPONSE = 6 +HTTPRequest.RESULT_BODY_SIZE_LIMIT_EXCEEDED = 7 +HTTPRequest.RESULT_BODY_DECOMPRESS_FAILED = 8 +HTTPRequest.RESULT_REQUEST_FAILED = 9 +HTTPRequest.RESULT_DOWNLOAD_FILE_CANT_OPEN = 10 +HTTPRequest.RESULT_DOWNLOAD_FILE_WRITE_ERROR = 11 +HTTPRequest.RESULT_REDIRECT_LIMIT_REACHED = 12 +HTTPRequest.RESULT_TIMEOUT = 13 + +HTTPRequest.request_completed = Signal() + +--- @param url String +--- @param custom_headers PackedStringArray? Default: PackedStringArray() +--- @param method HTTPClient.Method? Default: 0 +--- @param request_data String? Default: "" +--- @return Error +function HTTPRequest:request(url, custom_headers, method, request_data) end + +--- @param url String +--- @param custom_headers PackedStringArray? Default: PackedStringArray() +--- @param method HTTPClient.Method? Default: 0 +--- @param request_data_raw PackedByteArray? Default: PackedByteArray() +--- @return Error +function HTTPRequest:request_raw(url, custom_headers, method, request_data_raw) end + +function HTTPRequest:cancel_request() end + +--- @param client_options TLSOptions +function HTTPRequest:set_tls_options(client_options) end + +--- @return HTTPClient.Status +function HTTPRequest:get_http_client_status() end + +--- @param enable bool +function HTTPRequest:set_use_threads(enable) end + +--- @return bool +function HTTPRequest:is_using_threads() end + +--- @param enable bool +function HTTPRequest:set_accept_gzip(enable) end + +--- @return bool +function HTTPRequest:is_accepting_gzip() end + +--- @param bytes int +function HTTPRequest:set_body_size_limit(bytes) end + +--- @return int +function HTTPRequest:get_body_size_limit() end + +--- @param amount int +function HTTPRequest:set_max_redirects(amount) end + +--- @return int +function HTTPRequest:get_max_redirects() end + +--- @param path String +function HTTPRequest:set_download_file(path) end + +--- @return String +function HTTPRequest:get_download_file() end + +--- @return int +function HTTPRequest:get_downloaded_bytes() end + +--- @return int +function HTTPRequest:get_body_size() end + +--- @param timeout float +function HTTPRequest:set_timeout(timeout) end + +--- @return float +function HTTPRequest:get_timeout() end + +--- @param chunk_size int +function HTTPRequest:set_download_chunk_size(chunk_size) end + +--- @return int +function HTTPRequest:get_download_chunk_size() end + +--- @param host String +--- @param port int +function HTTPRequest:set_http_proxy(host, port) end + +--- @param host String +--- @param port int +function HTTPRequest:set_https_proxy(host, port) end + + +----------------------------------------------------------- +-- HashingContext +----------------------------------------------------------- + +--- @class HashingContext: RefCounted, { [string]: any } +HashingContext = {} + +--- @return HashingContext +function HashingContext:new() end + +--- @alias HashingContext.HashType `HashingContext.HASH_MD5` | `HashingContext.HASH_SHA1` | `HashingContext.HASH_SHA256` +HashingContext.HASH_MD5 = 0 +HashingContext.HASH_SHA1 = 1 +HashingContext.HASH_SHA256 = 2 + +--- @param type HashingContext.HashType +--- @return Error +function HashingContext:start(type) end + +--- @param chunk PackedByteArray +--- @return Error +function HashingContext:update(chunk) end + +--- @return PackedByteArray +function HashingContext:finish() end + + +----------------------------------------------------------- +-- HeightMapShape3D +----------------------------------------------------------- + +--- @class HeightMapShape3D: Shape3D, { [string]: any } +--- @field map_width int +--- @field map_depth int +--- @field map_data PackedFloat32Array +HeightMapShape3D = {} + +--- @return HeightMapShape3D +function HeightMapShape3D:new() end + +--- @param width int +function HeightMapShape3D:set_map_width(width) end + +--- @return int +function HeightMapShape3D:get_map_width() end + +--- @param height int +function HeightMapShape3D:set_map_depth(height) end + +--- @return int +function HeightMapShape3D:get_map_depth() end + +--- @param data PackedFloat32Array +function HeightMapShape3D:set_map_data(data) end + +--- @return PackedFloat32Array +function HeightMapShape3D:get_map_data() end + +--- @return float +function HeightMapShape3D:get_min_height() end + +--- @return float +function HeightMapShape3D:get_max_height() end + +--- @param image Image +--- @param height_min float +--- @param height_max float +function HeightMapShape3D:update_map_data_from_image(image, height_min, height_max) end + + +----------------------------------------------------------- +-- HingeJoint3D +----------------------------------------------------------- + +--- @class HingeJoint3D: Joint3D, { [string]: any } +HingeJoint3D = {} + +--- @return HingeJoint3D +function HingeJoint3D:new() end + +--- @alias HingeJoint3D.Param `HingeJoint3D.PARAM_BIAS` | `HingeJoint3D.PARAM_LIMIT_UPPER` | `HingeJoint3D.PARAM_LIMIT_LOWER` | `HingeJoint3D.PARAM_LIMIT_BIAS` | `HingeJoint3D.PARAM_LIMIT_SOFTNESS` | `HingeJoint3D.PARAM_LIMIT_RELAXATION` | `HingeJoint3D.PARAM_MOTOR_TARGET_VELOCITY` | `HingeJoint3D.PARAM_MOTOR_MAX_IMPULSE` | `HingeJoint3D.PARAM_MAX` +HingeJoint3D.PARAM_BIAS = 0 +HingeJoint3D.PARAM_LIMIT_UPPER = 1 +HingeJoint3D.PARAM_LIMIT_LOWER = 2 +HingeJoint3D.PARAM_LIMIT_BIAS = 3 +HingeJoint3D.PARAM_LIMIT_SOFTNESS = 4 +HingeJoint3D.PARAM_LIMIT_RELAXATION = 5 +HingeJoint3D.PARAM_MOTOR_TARGET_VELOCITY = 6 +HingeJoint3D.PARAM_MOTOR_MAX_IMPULSE = 7 +HingeJoint3D.PARAM_MAX = 8 + +--- @alias HingeJoint3D.Flag `HingeJoint3D.FLAG_USE_LIMIT` | `HingeJoint3D.FLAG_ENABLE_MOTOR` | `HingeJoint3D.FLAG_MAX` +HingeJoint3D.FLAG_USE_LIMIT = 0 +HingeJoint3D.FLAG_ENABLE_MOTOR = 1 +HingeJoint3D.FLAG_MAX = 2 + +--- @param param HingeJoint3D.Param +--- @param value float +function HingeJoint3D:set_param(param, value) end + +--- @param param HingeJoint3D.Param +--- @return float +function HingeJoint3D:get_param(param) end + +--- @param flag HingeJoint3D.Flag +--- @param enabled bool +function HingeJoint3D:set_flag(flag, enabled) end + +--- @param flag HingeJoint3D.Flag +--- @return bool +function HingeJoint3D:get_flag(flag) end + + +----------------------------------------------------------- +-- IP +----------------------------------------------------------- + +--- @class IP: Object, { [string]: any } +IP = {} + +IP.RESOLVER_MAX_QUERIES = 256 +IP.RESOLVER_INVALID_ID = -1 + +--- @alias IP.ResolverStatus `IP.RESOLVER_STATUS_NONE` | `IP.RESOLVER_STATUS_WAITING` | `IP.RESOLVER_STATUS_DONE` | `IP.RESOLVER_STATUS_ERROR` +IP.RESOLVER_STATUS_NONE = 0 +IP.RESOLVER_STATUS_WAITING = 1 +IP.RESOLVER_STATUS_DONE = 2 +IP.RESOLVER_STATUS_ERROR = 3 + +--- @alias IP.Type `IP.TYPE_NONE` | `IP.TYPE_IPV4` | `IP.TYPE_IPV6` | `IP.TYPE_ANY` +IP.TYPE_NONE = 0 +IP.TYPE_IPV4 = 1 +IP.TYPE_IPV6 = 2 +IP.TYPE_ANY = 3 + +--- @param host String +--- @param ip_type IP.Type? Default: 3 +--- @return String +function IP:resolve_hostname(host, ip_type) end + +--- @param host String +--- @param ip_type IP.Type? Default: 3 +--- @return PackedStringArray +function IP:resolve_hostname_addresses(host, ip_type) end + +--- @param host String +--- @param ip_type IP.Type? Default: 3 +--- @return int +function IP:resolve_hostname_queue_item(host, ip_type) end + +--- @param id int +--- @return IP.ResolverStatus +function IP:get_resolve_item_status(id) end + +--- @param id int +--- @return String +function IP:get_resolve_item_address(id) end + +--- @param id int +--- @return Array +function IP:get_resolve_item_addresses(id) end + +--- @param id int +function IP:erase_resolve_item(id) end + +--- @return PackedStringArray +function IP:get_local_addresses() end + +--- @return Array[Dictionary] +function IP:get_local_interfaces() end + +--- @param hostname String? Default: "" +function IP:clear_cache(hostname) end + + +----------------------------------------------------------- +-- Image +----------------------------------------------------------- + +--- @class Image: Resource, { [string]: any } +--- @field data Dictionary +Image = {} + +--- @return Image +function Image:new() end + +Image.MAX_WIDTH = 16777216 +Image.MAX_HEIGHT = 16777216 + +--- @alias Image.Format `Image.FORMAT_L8` | `Image.FORMAT_LA8` | `Image.FORMAT_R8` | `Image.FORMAT_RG8` | `Image.FORMAT_RGB8` | `Image.FORMAT_RGBA8` | `Image.FORMAT_RGBA4444` | `Image.FORMAT_RGB565` | `Image.FORMAT_RF` | `Image.FORMAT_RGF` | `Image.FORMAT_RGBF` | `Image.FORMAT_RGBAF` | `Image.FORMAT_RH` | `Image.FORMAT_RGH` | `Image.FORMAT_RGBH` | `Image.FORMAT_RGBAH` | `Image.FORMAT_RGBE9995` | `Image.FORMAT_DXT1` | `Image.FORMAT_DXT3` | `Image.FORMAT_DXT5` | `Image.FORMAT_RGTC_R` | `Image.FORMAT_RGTC_RG` | `Image.FORMAT_BPTC_RGBA` | `Image.FORMAT_BPTC_RGBF` | `Image.FORMAT_BPTC_RGBFU` | `Image.FORMAT_ETC` | `Image.FORMAT_ETC2_R11` | `Image.FORMAT_ETC2_R11S` | `Image.FORMAT_ETC2_RG11` | `Image.FORMAT_ETC2_RG11S` | `Image.FORMAT_ETC2_RGB8` | `Image.FORMAT_ETC2_RGBA8` | `Image.FORMAT_ETC2_RGB8A1` | `Image.FORMAT_ETC2_RA_AS_RG` | `Image.FORMAT_DXT5_RA_AS_RG` | `Image.FORMAT_ASTC_4x4` | `Image.FORMAT_ASTC_4x4_HDR` | `Image.FORMAT_ASTC_8x8` | `Image.FORMAT_ASTC_8x8_HDR` | `Image.FORMAT_MAX` +Image.FORMAT_L8 = 0 +Image.FORMAT_LA8 = 1 +Image.FORMAT_R8 = 2 +Image.FORMAT_RG8 = 3 +Image.FORMAT_RGB8 = 4 +Image.FORMAT_RGBA8 = 5 +Image.FORMAT_RGBA4444 = 6 +Image.FORMAT_RGB565 = 7 +Image.FORMAT_RF = 8 +Image.FORMAT_RGF = 9 +Image.FORMAT_RGBF = 10 +Image.FORMAT_RGBAF = 11 +Image.FORMAT_RH = 12 +Image.FORMAT_RGH = 13 +Image.FORMAT_RGBH = 14 +Image.FORMAT_RGBAH = 15 +Image.FORMAT_RGBE9995 = 16 +Image.FORMAT_DXT1 = 17 +Image.FORMAT_DXT3 = 18 +Image.FORMAT_DXT5 = 19 +Image.FORMAT_RGTC_R = 20 +Image.FORMAT_RGTC_RG = 21 +Image.FORMAT_BPTC_RGBA = 22 +Image.FORMAT_BPTC_RGBF = 23 +Image.FORMAT_BPTC_RGBFU = 24 +Image.FORMAT_ETC = 25 +Image.FORMAT_ETC2_R11 = 26 +Image.FORMAT_ETC2_R11S = 27 +Image.FORMAT_ETC2_RG11 = 28 +Image.FORMAT_ETC2_RG11S = 29 +Image.FORMAT_ETC2_RGB8 = 30 +Image.FORMAT_ETC2_RGBA8 = 31 +Image.FORMAT_ETC2_RGB8A1 = 32 +Image.FORMAT_ETC2_RA_AS_RG = 33 +Image.FORMAT_DXT5_RA_AS_RG = 34 +Image.FORMAT_ASTC_4x4 = 35 +Image.FORMAT_ASTC_4x4_HDR = 36 +Image.FORMAT_ASTC_8x8 = 37 +Image.FORMAT_ASTC_8x8_HDR = 38 +Image.FORMAT_MAX = 39 + +--- @alias Image.Interpolation `Image.INTERPOLATE_NEAREST` | `Image.INTERPOLATE_BILINEAR` | `Image.INTERPOLATE_CUBIC` | `Image.INTERPOLATE_TRILINEAR` | `Image.INTERPOLATE_LANCZOS` +Image.INTERPOLATE_NEAREST = 0 +Image.INTERPOLATE_BILINEAR = 1 +Image.INTERPOLATE_CUBIC = 2 +Image.INTERPOLATE_TRILINEAR = 3 +Image.INTERPOLATE_LANCZOS = 4 + +--- @alias Image.AlphaMode `Image.ALPHA_NONE` | `Image.ALPHA_BIT` | `Image.ALPHA_BLEND` +Image.ALPHA_NONE = 0 +Image.ALPHA_BIT = 1 +Image.ALPHA_BLEND = 2 + +--- @alias Image.CompressMode `Image.COMPRESS_S3TC` | `Image.COMPRESS_ETC` | `Image.COMPRESS_ETC2` | `Image.COMPRESS_BPTC` | `Image.COMPRESS_ASTC` | `Image.COMPRESS_MAX` +Image.COMPRESS_S3TC = 0 +Image.COMPRESS_ETC = 1 +Image.COMPRESS_ETC2 = 2 +Image.COMPRESS_BPTC = 3 +Image.COMPRESS_ASTC = 4 +Image.COMPRESS_MAX = 5 + +--- @alias Image.UsedChannels `Image.USED_CHANNELS_L` | `Image.USED_CHANNELS_LA` | `Image.USED_CHANNELS_R` | `Image.USED_CHANNELS_RG` | `Image.USED_CHANNELS_RGB` | `Image.USED_CHANNELS_RGBA` +Image.USED_CHANNELS_L = 0 +Image.USED_CHANNELS_LA = 1 +Image.USED_CHANNELS_R = 2 +Image.USED_CHANNELS_RG = 3 +Image.USED_CHANNELS_RGB = 4 +Image.USED_CHANNELS_RGBA = 5 + +--- @alias Image.CompressSource `Image.COMPRESS_SOURCE_GENERIC` | `Image.COMPRESS_SOURCE_SRGB` | `Image.COMPRESS_SOURCE_NORMAL` +Image.COMPRESS_SOURCE_GENERIC = 0 +Image.COMPRESS_SOURCE_SRGB = 1 +Image.COMPRESS_SOURCE_NORMAL = 2 + +--- @alias Image.ASTCFormat `Image.ASTC_FORMAT_4x4` | `Image.ASTC_FORMAT_8x8` +Image.ASTC_FORMAT_4x4 = 0 +Image.ASTC_FORMAT_8x8 = 1 + +--- @return int +function Image:get_width() end + +--- @return int +function Image:get_height() end + +--- @return Vector2i +function Image:get_size() end + +--- @return bool +function Image:has_mipmaps() end + +--- @return Image.Format +function Image:get_format() end + +--- @return PackedByteArray +function Image:get_data() end + +--- @return int +function Image:get_data_size() end + +--- @param format Image.Format +function Image:convert(format) end + +--- @return int +function Image:get_mipmap_count() end + +--- @param mipmap int +--- @return int +function Image:get_mipmap_offset(mipmap) end + +--- @param square bool? Default: false +--- @param interpolation Image.Interpolation? Default: 1 +function Image:resize_to_po2(square, interpolation) end + +--- @param width int +--- @param height int +--- @param interpolation Image.Interpolation? Default: 1 +function Image:resize(width, height, interpolation) end + +function Image:shrink_x2() end + +--- @param width int +--- @param height int +function Image:crop(width, height) end + +function Image:flip_x() end + +function Image:flip_y() end + +--- @param renormalize bool? Default: false +--- @return Error +function Image:generate_mipmaps(renormalize) end + +function Image:clear_mipmaps() end + +--- static +--- @param width int +--- @param height int +--- @param use_mipmaps bool +--- @param format Image.Format +--- @return Image +function Image:create(width, height, use_mipmaps, format) end + +--- static +--- @param width int +--- @param height int +--- @param use_mipmaps bool +--- @param format Image.Format +--- @return Image +function Image:create_empty(width, height, use_mipmaps, format) end + +--- static +--- @param width int +--- @param height int +--- @param use_mipmaps bool +--- @param format Image.Format +--- @param data PackedByteArray +--- @return Image +function Image:create_from_data(width, height, use_mipmaps, format, data) end + +--- @param width int +--- @param height int +--- @param use_mipmaps bool +--- @param format Image.Format +--- @param data PackedByteArray +function Image:set_data(width, height, use_mipmaps, format, data) end + +--- @return bool +function Image:is_empty() end + +--- @param path String +--- @return Error +function Image:load(path) end + +--- static +--- @param path String +--- @return Image +function Image:load_from_file(path) end + +--- @param path String +--- @return Error +function Image:save_png(path) end + +--- @return PackedByteArray +function Image:save_png_to_buffer() end + +--- @param path String +--- @param quality float? Default: 0.75 +--- @return Error +function Image:save_jpg(path, quality) end + +--- @param quality float? Default: 0.75 +--- @return PackedByteArray +function Image:save_jpg_to_buffer(quality) end + +--- @param path String +--- @param grayscale bool? Default: false +--- @return Error +function Image:save_exr(path, grayscale) end + +--- @param grayscale bool? Default: false +--- @return PackedByteArray +function Image:save_exr_to_buffer(grayscale) end + +--- @param path String +--- @return Error +function Image:save_dds(path) end + +--- @return PackedByteArray +function Image:save_dds_to_buffer() end + +--- @param path String +--- @param lossy bool? Default: false +--- @param quality float? Default: 0.75 +--- @return Error +function Image:save_webp(path, lossy, quality) end + +--- @param lossy bool? Default: false +--- @param quality float? Default: 0.75 +--- @return PackedByteArray +function Image:save_webp_to_buffer(lossy, quality) end + +--- @return Image.AlphaMode +function Image:detect_alpha() end + +--- @return bool +function Image:is_invisible() end + +--- @param source Image.CompressSource? Default: 0 +--- @return Image.UsedChannels +function Image:detect_used_channels(source) end + +--- @param mode Image.CompressMode +--- @param source Image.CompressSource? Default: 0 +--- @param astc_format Image.ASTCFormat? Default: 0 +--- @return Error +function Image:compress(mode, source, astc_format) end + +--- @param mode Image.CompressMode +--- @param channels Image.UsedChannels +--- @param astc_format Image.ASTCFormat? Default: 0 +--- @return Error +function Image:compress_from_channels(mode, channels, astc_format) end + +--- @return Error +function Image:decompress() end + +--- @return bool +function Image:is_compressed() end + +--- @param direction ClockDirection +function Image:rotate_90(direction) end + +function Image:rotate_180() end + +function Image:fix_alpha_edges() end + +function Image:premultiply_alpha() end + +function Image:srgb_to_linear() end + +function Image:linear_to_srgb() end + +function Image:normal_map_to_xy() end + +--- @return Image +function Image:rgbe_to_srgb() end + +--- @param bump_scale float? Default: 1.0 +function Image:bump_map_to_normal_map(bump_scale) end + +--- @param compared_image Image +--- @param use_luma bool +--- @return Dictionary +function Image:compute_image_metrics(compared_image, use_luma) end + +--- @param src Image +--- @param src_rect Rect2i +--- @param dst Vector2i +function Image:blit_rect(src, src_rect, dst) end + +--- @param src Image +--- @param mask Image +--- @param src_rect Rect2i +--- @param dst Vector2i +function Image:blit_rect_mask(src, mask, src_rect, dst) end + +--- @param src Image +--- @param src_rect Rect2i +--- @param dst Vector2i +function Image:blend_rect(src, src_rect, dst) end + +--- @param src Image +--- @param mask Image +--- @param src_rect Rect2i +--- @param dst Vector2i +function Image:blend_rect_mask(src, mask, src_rect, dst) end + +--- @param color Color +function Image:fill(color) end + +--- @param rect Rect2i +--- @param color Color +function Image:fill_rect(rect, color) end + +--- @return Rect2i +function Image:get_used_rect() end + +--- @param region Rect2i +--- @return Image +function Image:get_region(region) end + +--- @param src Image +function Image:copy_from(src) end + +--- @param point Vector2i +--- @return Color +function Image:get_pixelv(point) end + +--- @param x int +--- @param y int +--- @return Color +function Image:get_pixel(x, y) end + +--- @param point Vector2i +--- @param color Color +function Image:set_pixelv(point, color) end + +--- @param x int +--- @param y int +--- @param color Color +function Image:set_pixel(x, y, color) end + +--- @param brightness float +--- @param contrast float +--- @param saturation float +function Image:adjust_bcs(brightness, contrast, saturation) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_png_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_jpg_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_webp_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_tga_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_bmp_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_ktx_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @return Error +function Image:load_dds_from_buffer(buffer) end + +--- @param buffer PackedByteArray +--- @param scale float? Default: 1.0 +--- @return Error +function Image:load_svg_from_buffer(buffer, scale) end + +--- @param svg_str String +--- @param scale float? Default: 1.0 +--- @return Error +function Image:load_svg_from_string(svg_str, scale) end + + +----------------------------------------------------------- +-- ImageFormatLoader +----------------------------------------------------------- + +--- @class ImageFormatLoader: RefCounted, { [string]: any } +ImageFormatLoader = {} + +--- @alias ImageFormatLoader.LoaderFlags `ImageFormatLoader.FLAG_NONE` | `ImageFormatLoader.FLAG_FORCE_LINEAR` | `ImageFormatLoader.FLAG_CONVERT_COLORS` +ImageFormatLoader.FLAG_NONE = 0 +ImageFormatLoader.FLAG_FORCE_LINEAR = 1 +ImageFormatLoader.FLAG_CONVERT_COLORS = 2 + + +----------------------------------------------------------- +-- ImageFormatLoaderExtension +----------------------------------------------------------- + +--- @class ImageFormatLoaderExtension: ImageFormatLoader, { [string]: any } +ImageFormatLoaderExtension = {} + +--- @return ImageFormatLoaderExtension +function ImageFormatLoaderExtension:new() end + +--- @return PackedStringArray +function ImageFormatLoaderExtension:_get_recognized_extensions() end + +--- @param image Image +--- @param fileaccess FileAccess +--- @param flags ImageFormatLoader.LoaderFlags +--- @param scale float +--- @return Error +function ImageFormatLoaderExtension:_load_image(image, fileaccess, flags, scale) end + +function ImageFormatLoaderExtension:add_format_loader() end + +function ImageFormatLoaderExtension:remove_format_loader() end + + +----------------------------------------------------------- +-- ImageTexture +----------------------------------------------------------- + +--- @class ImageTexture: Texture2D, { [string]: any } +ImageTexture = {} + +--- @return ImageTexture +function ImageTexture:new() end + +--- static +--- @param image Image +--- @return ImageTexture +function ImageTexture:create_from_image(image) end + +--- @return Image.Format +function ImageTexture:get_format() end + +--- @param image Image +function ImageTexture:set_image(image) end + +--- @param image Image +function ImageTexture:update(image) end + +--- @param size Vector2i +function ImageTexture:set_size_override(size) end + + +----------------------------------------------------------- +-- ImageTexture3D +----------------------------------------------------------- + +--- @class ImageTexture3D: Texture3D, { [string]: any } +ImageTexture3D = {} + +--- @return ImageTexture3D +function ImageTexture3D:new() end + +--- @param format Image.Format +--- @param width int +--- @param height int +--- @param depth int +--- @param use_mipmaps bool +--- @param data Array[Image] +--- @return Error +function ImageTexture3D:create(format, width, height, depth, use_mipmaps, data) end + +--- @param data Array[Image] +function ImageTexture3D:update(data) end + + +----------------------------------------------------------- +-- ImageTextureLayered +----------------------------------------------------------- + +--- @class ImageTextureLayered: TextureLayered, { [string]: any } +ImageTextureLayered = {} + +--- @param images Array[Image] +--- @return Error +function ImageTextureLayered:create_from_images(images) end + +--- @param image Image +--- @param layer int +function ImageTextureLayered:update_layer(image, layer) end + + +----------------------------------------------------------- +-- ImmediateMesh +----------------------------------------------------------- + +--- @class ImmediateMesh: Mesh, { [string]: any } +ImmediateMesh = {} + +--- @return ImmediateMesh +function ImmediateMesh:new() end + +--- @param primitive Mesh.PrimitiveType +--- @param material Material? Default: null +function ImmediateMesh:surface_begin(primitive, material) end + +--- @param color Color +function ImmediateMesh:surface_set_color(color) end + +--- @param normal Vector3 +function ImmediateMesh:surface_set_normal(normal) end + +--- @param tangent Plane +function ImmediateMesh:surface_set_tangent(tangent) end + +--- @param uv Vector2 +function ImmediateMesh:surface_set_uv(uv) end + +--- @param uv2 Vector2 +function ImmediateMesh:surface_set_uv2(uv2) end + +--- @param vertex Vector3 +function ImmediateMesh:surface_add_vertex(vertex) end + +--- @param vertex Vector2 +function ImmediateMesh:surface_add_vertex_2d(vertex) end + +function ImmediateMesh:surface_end() end + +function ImmediateMesh:clear_surfaces() end + + +----------------------------------------------------------- +-- ImporterMesh +----------------------------------------------------------- + +--- @class ImporterMesh: Resource, { [string]: any } +ImporterMesh = {} + +--- @return ImporterMesh +function ImporterMesh:new() end + +--- @param name String +function ImporterMesh:add_blend_shape(name) end + +--- @return int +function ImporterMesh:get_blend_shape_count() end + +--- @param blend_shape_idx int +--- @return String +function ImporterMesh:get_blend_shape_name(blend_shape_idx) end + +--- @param mode Mesh.BlendShapeMode +function ImporterMesh:set_blend_shape_mode(mode) end + +--- @return Mesh.BlendShapeMode +function ImporterMesh:get_blend_shape_mode() end + +--- @param primitive Mesh.PrimitiveType +--- @param arrays Array +--- @param blend_shapes Array[Array]? Default: Array[Array]([]) +--- @param lods Dictionary? Default: {} +--- @param material Material? Default: null +--- @param name String? Default: "" +--- @param flags int? Default: 0 +function ImporterMesh:add_surface(primitive, arrays, blend_shapes, lods, material, name, flags) end + +--- @return int +function ImporterMesh:get_surface_count() end + +--- @param surface_idx int +--- @return Mesh.PrimitiveType +function ImporterMesh:get_surface_primitive_type(surface_idx) end + +--- @param surface_idx int +--- @return String +function ImporterMesh:get_surface_name(surface_idx) end + +--- @param surface_idx int +--- @return Array +function ImporterMesh:get_surface_arrays(surface_idx) end + +--- @param surface_idx int +--- @param blend_shape_idx int +--- @return Array +function ImporterMesh:get_surface_blend_shape_arrays(surface_idx, blend_shape_idx) end + +--- @param surface_idx int +--- @return int +function ImporterMesh:get_surface_lod_count(surface_idx) end + +--- @param surface_idx int +--- @param lod_idx int +--- @return float +function ImporterMesh:get_surface_lod_size(surface_idx, lod_idx) end + +--- @param surface_idx int +--- @param lod_idx int +--- @return PackedInt32Array +function ImporterMesh:get_surface_lod_indices(surface_idx, lod_idx) end + +--- @param surface_idx int +--- @return Material +function ImporterMesh:get_surface_material(surface_idx) end + +--- @param surface_idx int +--- @return int +function ImporterMesh:get_surface_format(surface_idx) end + +--- @param surface_idx int +--- @param name String +function ImporterMesh:set_surface_name(surface_idx, name) end + +--- @param surface_idx int +--- @param material Material +function ImporterMesh:set_surface_material(surface_idx, material) end + +--- @param normal_merge_angle float +--- @param normal_split_angle float +--- @param bone_transform_array Array +function ImporterMesh:generate_lods(normal_merge_angle, normal_split_angle, bone_transform_array) end + +--- @param base_mesh ArrayMesh? Default: null +--- @return ArrayMesh +function ImporterMesh:get_mesh(base_mesh) end + +function ImporterMesh:clear() end + +--- @param size Vector2i +function ImporterMesh:set_lightmap_size_hint(size) end + +--- @return Vector2i +function ImporterMesh:get_lightmap_size_hint() end + + +----------------------------------------------------------- +-- ImporterMeshInstance3D +----------------------------------------------------------- + +--- @class ImporterMeshInstance3D: Node3D, { [string]: any } +--- @field mesh ImporterMesh +--- @field skin Skin +--- @field skeleton_path NodePath +--- @field layer_mask int +--- @field cast_shadow int +--- @field visibility_range_begin float +--- @field visibility_range_begin_margin float +--- @field visibility_range_end float +--- @field visibility_range_end_margin float +--- @field visibility_range_fade_mode int +ImporterMeshInstance3D = {} + +--- @return ImporterMeshInstance3D +function ImporterMeshInstance3D:new() end + +--- @param mesh ImporterMesh +function ImporterMeshInstance3D:set_mesh(mesh) end + +--- @return ImporterMesh +function ImporterMeshInstance3D:get_mesh() end + +--- @param skin Skin +function ImporterMeshInstance3D:set_skin(skin) end + +--- @return Skin +function ImporterMeshInstance3D:get_skin() end + +--- @param skeleton_path NodePath +function ImporterMeshInstance3D:set_skeleton_path(skeleton_path) end + +--- @return NodePath +function ImporterMeshInstance3D:get_skeleton_path() end + +--- @param layer_mask int +function ImporterMeshInstance3D:set_layer_mask(layer_mask) end + +--- @return int +function ImporterMeshInstance3D:get_layer_mask() end + +--- @param shadow_casting_setting GeometryInstance3D.ShadowCastingSetting +function ImporterMeshInstance3D:set_cast_shadows_setting(shadow_casting_setting) end + +--- @return GeometryInstance3D.ShadowCastingSetting +function ImporterMeshInstance3D:get_cast_shadows_setting() end + +--- @param distance float +function ImporterMeshInstance3D:set_visibility_range_end_margin(distance) end + +--- @return float +function ImporterMeshInstance3D:get_visibility_range_end_margin() end + +--- @param distance float +function ImporterMeshInstance3D:set_visibility_range_end(distance) end + +--- @return float +function ImporterMeshInstance3D:get_visibility_range_end() end + +--- @param distance float +function ImporterMeshInstance3D:set_visibility_range_begin_margin(distance) end + +--- @return float +function ImporterMeshInstance3D:get_visibility_range_begin_margin() end + +--- @param distance float +function ImporterMeshInstance3D:set_visibility_range_begin(distance) end + +--- @return float +function ImporterMeshInstance3D:get_visibility_range_begin() end + +--- @param mode GeometryInstance3D.VisibilityRangeFadeMode +function ImporterMeshInstance3D:set_visibility_range_fade_mode(mode) end + +--- @return GeometryInstance3D.VisibilityRangeFadeMode +function ImporterMeshInstance3D:get_visibility_range_fade_mode() end + + +----------------------------------------------------------- +-- Input +----------------------------------------------------------- + +--- @class Input: Object, { [string]: any } +--- @field mouse_mode int +--- @field use_accumulated_input bool +--- @field emulate_mouse_from_touch bool +--- @field emulate_touch_from_mouse bool +Input = {} + +--- @alias Input.MouseMode `Input.MOUSE_MODE_VISIBLE` | `Input.MOUSE_MODE_HIDDEN` | `Input.MOUSE_MODE_CAPTURED` | `Input.MOUSE_MODE_CONFINED` | `Input.MOUSE_MODE_CONFINED_HIDDEN` | `Input.MOUSE_MODE_MAX` +Input.MOUSE_MODE_VISIBLE = 0 +Input.MOUSE_MODE_HIDDEN = 1 +Input.MOUSE_MODE_CAPTURED = 2 +Input.MOUSE_MODE_CONFINED = 3 +Input.MOUSE_MODE_CONFINED_HIDDEN = 4 +Input.MOUSE_MODE_MAX = 5 + +--- @alias Input.CursorShape `Input.CURSOR_ARROW` | `Input.CURSOR_IBEAM` | `Input.CURSOR_POINTING_HAND` | `Input.CURSOR_CROSS` | `Input.CURSOR_WAIT` | `Input.CURSOR_BUSY` | `Input.CURSOR_DRAG` | `Input.CURSOR_CAN_DROP` | `Input.CURSOR_FORBIDDEN` | `Input.CURSOR_VSIZE` | `Input.CURSOR_HSIZE` | `Input.CURSOR_BDIAGSIZE` | `Input.CURSOR_FDIAGSIZE` | `Input.CURSOR_MOVE` | `Input.CURSOR_VSPLIT` | `Input.CURSOR_HSPLIT` | `Input.CURSOR_HELP` +Input.CURSOR_ARROW = 0 +Input.CURSOR_IBEAM = 1 +Input.CURSOR_POINTING_HAND = 2 +Input.CURSOR_CROSS = 3 +Input.CURSOR_WAIT = 4 +Input.CURSOR_BUSY = 5 +Input.CURSOR_DRAG = 6 +Input.CURSOR_CAN_DROP = 7 +Input.CURSOR_FORBIDDEN = 8 +Input.CURSOR_VSIZE = 9 +Input.CURSOR_HSIZE = 10 +Input.CURSOR_BDIAGSIZE = 11 +Input.CURSOR_FDIAGSIZE = 12 +Input.CURSOR_MOVE = 13 +Input.CURSOR_VSPLIT = 14 +Input.CURSOR_HSPLIT = 15 +Input.CURSOR_HELP = 16 + +Input.joy_connection_changed = Signal() + +--- @return bool +function Input:is_anything_pressed() end + +--- @param keycode Key +--- @return bool +function Input:is_key_pressed(keycode) end + +--- @param keycode Key +--- @return bool +function Input:is_physical_key_pressed(keycode) end + +--- @param keycode Key +--- @return bool +function Input:is_key_label_pressed(keycode) end + +--- @param button MouseButton +--- @return bool +function Input:is_mouse_button_pressed(button) end + +--- @param device int +--- @param button JoyButton +--- @return bool +function Input:is_joy_button_pressed(device, button) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function Input:is_action_pressed(action, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function Input:is_action_just_pressed(action, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function Input:is_action_just_released(action, exact_match) end + +--- @param action StringName +--- @param event InputEvent +--- @param exact_match bool? Default: false +--- @return bool +function Input:is_action_just_pressed_by_event(action, event, exact_match) end + +--- @param action StringName +--- @param event InputEvent +--- @param exact_match bool? Default: false +--- @return bool +function Input:is_action_just_released_by_event(action, event, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return float +function Input:get_action_strength(action, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return float +function Input:get_action_raw_strength(action, exact_match) end + +--- @param negative_action StringName +--- @param positive_action StringName +--- @return float +function Input:get_axis(negative_action, positive_action) end + +--- @param negative_x StringName +--- @param positive_x StringName +--- @param negative_y StringName +--- @param positive_y StringName +--- @param deadzone float? Default: -1.0 +--- @return Vector2 +function Input:get_vector(negative_x, positive_x, negative_y, positive_y, deadzone) end + +--- @param mapping String +--- @param update_existing bool? Default: false +function Input:add_joy_mapping(mapping, update_existing) end + +--- @param guid String +function Input:remove_joy_mapping(guid) end + +--- @param device int +--- @return bool +function Input:is_joy_known(device) end + +--- @param device int +--- @param axis JoyAxis +--- @return float +function Input:get_joy_axis(device, axis) end + +--- @param device int +--- @return String +function Input:get_joy_name(device) end + +--- @param device int +--- @return String +function Input:get_joy_guid(device) end + +--- @param device int +--- @return Dictionary +function Input:get_joy_info(device) end + +--- @param vendor_id int +--- @param product_id int +--- @return bool +function Input:should_ignore_device(vendor_id, product_id) end + +--- @return Array[int] +function Input:get_connected_joypads() end + +--- @param device int +--- @return Vector2 +function Input:get_joy_vibration_strength(device) end + +--- @param device int +--- @return float +function Input:get_joy_vibration_duration(device) end + +--- @param device int +--- @param weak_magnitude float +--- @param strong_magnitude float +--- @param duration float? Default: 0 +function Input:start_joy_vibration(device, weak_magnitude, strong_magnitude, duration) end + +--- @param device int +function Input:stop_joy_vibration(device) end + +--- @param duration_ms int? Default: 500 +--- @param amplitude float? Default: -1.0 +function Input:vibrate_handheld(duration_ms, amplitude) end + +--- @return Vector3 +function Input:get_gravity() end + +--- @return Vector3 +function Input:get_accelerometer() end + +--- @return Vector3 +function Input:get_magnetometer() end + +--- @return Vector3 +function Input:get_gyroscope() end + +--- @param value Vector3 +function Input:set_gravity(value) end + +--- @param value Vector3 +function Input:set_accelerometer(value) end + +--- @param value Vector3 +function Input:set_magnetometer(value) end + +--- @param value Vector3 +function Input:set_gyroscope(value) end + +--- @return Vector2 +function Input:get_last_mouse_velocity() end + +--- @return Vector2 +function Input:get_last_mouse_screen_velocity() end + +--- @return MouseButtonMask +function Input:get_mouse_button_mask() end + +--- @param mode Input.MouseMode +function Input:set_mouse_mode(mode) end + +--- @return Input.MouseMode +function Input:get_mouse_mode() end + +--- @param position Vector2 +function Input:warp_mouse(position) end + +--- @param action StringName +--- @param strength float? Default: 1.0 +function Input:action_press(action, strength) end + +--- @param action StringName +function Input:action_release(action) end + +--- @param shape Input.CursorShape? Default: 0 +function Input:set_default_cursor_shape(shape) end + +--- @return Input.CursorShape +function Input:get_current_cursor_shape() end + +--- @param image Resource +--- @param shape Input.CursorShape? Default: 0 +--- @param hotspot Vector2? Default: Vector2(0, 0) +function Input:set_custom_mouse_cursor(image, shape, hotspot) end + +--- @param event InputEvent +function Input:parse_input_event(event) end + +--- @param enable bool +function Input:set_use_accumulated_input(enable) end + +--- @return bool +function Input:is_using_accumulated_input() end + +function Input:flush_buffered_events() end + +--- @param enable bool +function Input:set_emulate_mouse_from_touch(enable) end + +--- @return bool +function Input:is_emulating_mouse_from_touch() end + +--- @param enable bool +function Input:set_emulate_touch_from_mouse(enable) end + +--- @return bool +function Input:is_emulating_touch_from_mouse() end + + +----------------------------------------------------------- +-- InputEvent +----------------------------------------------------------- + +--- @class InputEvent: Resource, { [string]: any } +--- @field device int +InputEvent = {} + +InputEvent.DEVICE_ID_EMULATION = -1 + +--- @param device int +function InputEvent:set_device(device) end + +--- @return int +function InputEvent:get_device() end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function InputEvent:is_action(action, exact_match) end + +--- @param action StringName +--- @param allow_echo bool? Default: false +--- @param exact_match bool? Default: false +--- @return bool +function InputEvent:is_action_pressed(action, allow_echo, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function InputEvent:is_action_released(action, exact_match) end + +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return float +function InputEvent:get_action_strength(action, exact_match) end + +--- @return bool +function InputEvent:is_canceled() end + +--- @return bool +function InputEvent:is_pressed() end + +--- @return bool +function InputEvent:is_released() end + +--- @return bool +function InputEvent:is_echo() end + +--- @return String +function InputEvent:as_text() end + +--- @param event InputEvent +--- @param exact_match bool? Default: true +--- @return bool +function InputEvent:is_match(event, exact_match) end + +--- @return bool +function InputEvent:is_action_type() end + +--- @param with_event InputEvent +--- @return bool +function InputEvent:accumulate(with_event) end + +--- @param xform Transform2D +--- @param local_ofs Vector2? Default: Vector2(0, 0) +--- @return InputEvent +function InputEvent:xformed_by(xform, local_ofs) end + + +----------------------------------------------------------- +-- InputEventAction +----------------------------------------------------------- + +--- @class InputEventAction: InputEvent, { [string]: any } +--- @field action StringName +--- @field pressed bool +--- @field strength float +--- @field event_index int +InputEventAction = {} + +--- @return InputEventAction +function InputEventAction:new() end + +--- @param action StringName +function InputEventAction:set_action(action) end + +--- @return StringName +function InputEventAction:get_action() end + +--- @param pressed bool +function InputEventAction:set_pressed(pressed) end + +--- @param strength float +function InputEventAction:set_strength(strength) end + +--- @return float +function InputEventAction:get_strength() end + +--- @param index int +function InputEventAction:set_event_index(index) end + +--- @return int +function InputEventAction:get_event_index() end + + +----------------------------------------------------------- +-- InputEventFromWindow +----------------------------------------------------------- + +--- @class InputEventFromWindow: InputEvent, { [string]: any } +--- @field window_id int +InputEventFromWindow = {} + +--- @param id int +function InputEventFromWindow:set_window_id(id) end + +--- @return int +function InputEventFromWindow:get_window_id() end + + +----------------------------------------------------------- +-- InputEventGesture +----------------------------------------------------------- + +--- @class InputEventGesture: InputEventWithModifiers, { [string]: any } +--- @field position Vector2 +InputEventGesture = {} + +--- @param position Vector2 +function InputEventGesture:set_position(position) end + +--- @return Vector2 +function InputEventGesture:get_position() end + + +----------------------------------------------------------- +-- InputEventJoypadButton +----------------------------------------------------------- + +--- @class InputEventJoypadButton: InputEvent, { [string]: any } +--- @field button_index int +--- @field pressure float +--- @field pressed bool +InputEventJoypadButton = {} + +--- @return InputEventJoypadButton +function InputEventJoypadButton:new() end + +--- @param button_index JoyButton +function InputEventJoypadButton:set_button_index(button_index) end + +--- @return JoyButton +function InputEventJoypadButton:get_button_index() end + +--- @param pressure float +function InputEventJoypadButton:set_pressure(pressure) end + +--- @return float +function InputEventJoypadButton:get_pressure() end + +--- @param pressed bool +function InputEventJoypadButton:set_pressed(pressed) end + + +----------------------------------------------------------- +-- InputEventJoypadMotion +----------------------------------------------------------- + +--- @class InputEventJoypadMotion: InputEvent, { [string]: any } +--- @field axis int +--- @field axis_value float +InputEventJoypadMotion = {} + +--- @return InputEventJoypadMotion +function InputEventJoypadMotion:new() end + +--- @param axis JoyAxis +function InputEventJoypadMotion:set_axis(axis) end + +--- @return JoyAxis +function InputEventJoypadMotion:get_axis() end + +--- @param axis_value float +function InputEventJoypadMotion:set_axis_value(axis_value) end + +--- @return float +function InputEventJoypadMotion:get_axis_value() end + + +----------------------------------------------------------- +-- InputEventKey +----------------------------------------------------------- + +--- @class InputEventKey: InputEventWithModifiers, { [string]: any } +--- @field pressed bool +--- @field keycode int +--- @field physical_keycode int +--- @field key_label int +--- @field unicode int +--- @field location int +--- @field echo bool +InputEventKey = {} + +--- @return InputEventKey +function InputEventKey:new() end + +--- @param pressed bool +function InputEventKey:set_pressed(pressed) end + +--- @param keycode Key +function InputEventKey:set_keycode(keycode) end + +--- @return Key +function InputEventKey:get_keycode() end + +--- @param physical_keycode Key +function InputEventKey:set_physical_keycode(physical_keycode) end + +--- @return Key +function InputEventKey:get_physical_keycode() end + +--- @param key_label Key +function InputEventKey:set_key_label(key_label) end + +--- @return Key +function InputEventKey:get_key_label() end + +--- @param unicode int +function InputEventKey:set_unicode(unicode) end + +--- @return int +function InputEventKey:get_unicode() end + +--- @param location KeyLocation +function InputEventKey:set_location(location) end + +--- @return KeyLocation +function InputEventKey:get_location() end + +--- @param echo bool +function InputEventKey:set_echo(echo) end + +--- @return Key +function InputEventKey:get_keycode_with_modifiers() end + +--- @return Key +function InputEventKey:get_physical_keycode_with_modifiers() end + +--- @return Key +function InputEventKey:get_key_label_with_modifiers() end + +--- @return String +function InputEventKey:as_text_keycode() end + +--- @return String +function InputEventKey:as_text_physical_keycode() end + +--- @return String +function InputEventKey:as_text_key_label() end + +--- @return String +function InputEventKey:as_text_location() end + + +----------------------------------------------------------- +-- InputEventMIDI +----------------------------------------------------------- + +--- @class InputEventMIDI: InputEvent, { [string]: any } +--- @field channel int +--- @field message int +--- @field pitch int +--- @field velocity int +--- @field instrument int +--- @field pressure int +--- @field controller_number int +--- @field controller_value int +InputEventMIDI = {} + +--- @return InputEventMIDI +function InputEventMIDI:new() end + +--- @param channel int +function InputEventMIDI:set_channel(channel) end + +--- @return int +function InputEventMIDI:get_channel() end + +--- @param message MIDIMessage +function InputEventMIDI:set_message(message) end + +--- @return MIDIMessage +function InputEventMIDI:get_message() end + +--- @param pitch int +function InputEventMIDI:set_pitch(pitch) end + +--- @return int +function InputEventMIDI:get_pitch() end + +--- @param velocity int +function InputEventMIDI:set_velocity(velocity) end + +--- @return int +function InputEventMIDI:get_velocity() end + +--- @param instrument int +function InputEventMIDI:set_instrument(instrument) end + +--- @return int +function InputEventMIDI:get_instrument() end + +--- @param pressure int +function InputEventMIDI:set_pressure(pressure) end + +--- @return int +function InputEventMIDI:get_pressure() end + +--- @param controller_number int +function InputEventMIDI:set_controller_number(controller_number) end + +--- @return int +function InputEventMIDI:get_controller_number() end + +--- @param controller_value int +function InputEventMIDI:set_controller_value(controller_value) end + +--- @return int +function InputEventMIDI:get_controller_value() end + + +----------------------------------------------------------- +-- InputEventMagnifyGesture +----------------------------------------------------------- + +--- @class InputEventMagnifyGesture: InputEventGesture, { [string]: any } +--- @field factor float +InputEventMagnifyGesture = {} + +--- @return InputEventMagnifyGesture +function InputEventMagnifyGesture:new() end + +--- @param factor float +function InputEventMagnifyGesture:set_factor(factor) end + +--- @return float +function InputEventMagnifyGesture:get_factor() end + + +----------------------------------------------------------- +-- InputEventMouse +----------------------------------------------------------- + +--- @class InputEventMouse: InputEventWithModifiers, { [string]: any } +--- @field button_mask int +--- @field position Vector2 +--- @field global_position Vector2 +InputEventMouse = {} + +--- @param button_mask MouseButtonMask +function InputEventMouse:set_button_mask(button_mask) end + +--- @return MouseButtonMask +function InputEventMouse:get_button_mask() end + +--- @param position Vector2 +function InputEventMouse:set_position(position) end + +--- @return Vector2 +function InputEventMouse:get_position() end + +--- @param global_position Vector2 +function InputEventMouse:set_global_position(global_position) end + +--- @return Vector2 +function InputEventMouse:get_global_position() end + + +----------------------------------------------------------- +-- InputEventMouseButton +----------------------------------------------------------- + +--- @class InputEventMouseButton: InputEventMouse, { [string]: any } +--- @field factor float +--- @field button_index int +--- @field canceled bool +--- @field pressed bool +--- @field double_click bool +InputEventMouseButton = {} + +--- @return InputEventMouseButton +function InputEventMouseButton:new() end + +--- @param factor float +function InputEventMouseButton:set_factor(factor) end + +--- @return float +function InputEventMouseButton:get_factor() end + +--- @param button_index MouseButton +function InputEventMouseButton:set_button_index(button_index) end + +--- @return MouseButton +function InputEventMouseButton:get_button_index() end + +--- @param pressed bool +function InputEventMouseButton:set_pressed(pressed) end + +--- @param canceled bool +function InputEventMouseButton:set_canceled(canceled) end + +--- @param double_click bool +function InputEventMouseButton:set_double_click(double_click) end + +--- @return bool +function InputEventMouseButton:is_double_click() end + + +----------------------------------------------------------- +-- InputEventMouseMotion +----------------------------------------------------------- + +--- @class InputEventMouseMotion: InputEventMouse, { [string]: any } +--- @field tilt Vector2 +--- @field pressure float +--- @field pen_inverted bool +--- @field relative Vector2 +--- @field screen_relative Vector2 +--- @field velocity Vector2 +--- @field screen_velocity Vector2 +InputEventMouseMotion = {} + +--- @return InputEventMouseMotion +function InputEventMouseMotion:new() end + +--- @param tilt Vector2 +function InputEventMouseMotion:set_tilt(tilt) end + +--- @return Vector2 +function InputEventMouseMotion:get_tilt() end + +--- @param pressure float +function InputEventMouseMotion:set_pressure(pressure) end + +--- @return float +function InputEventMouseMotion:get_pressure() end + +--- @param pen_inverted bool +function InputEventMouseMotion:set_pen_inverted(pen_inverted) end + +--- @return bool +function InputEventMouseMotion:get_pen_inverted() end + +--- @param relative Vector2 +function InputEventMouseMotion:set_relative(relative) end + +--- @return Vector2 +function InputEventMouseMotion:get_relative() end + +--- @param relative Vector2 +function InputEventMouseMotion:set_screen_relative(relative) end + +--- @return Vector2 +function InputEventMouseMotion:get_screen_relative() end + +--- @param velocity Vector2 +function InputEventMouseMotion:set_velocity(velocity) end + +--- @return Vector2 +function InputEventMouseMotion:get_velocity() end + +--- @param velocity Vector2 +function InputEventMouseMotion:set_screen_velocity(velocity) end + +--- @return Vector2 +function InputEventMouseMotion:get_screen_velocity() end + + +----------------------------------------------------------- +-- InputEventPanGesture +----------------------------------------------------------- + +--- @class InputEventPanGesture: InputEventGesture, { [string]: any } +--- @field delta Vector2 +InputEventPanGesture = {} + +--- @return InputEventPanGesture +function InputEventPanGesture:new() end + +--- @param delta Vector2 +function InputEventPanGesture:set_delta(delta) end + +--- @return Vector2 +function InputEventPanGesture:get_delta() end + + +----------------------------------------------------------- +-- InputEventScreenDrag +----------------------------------------------------------- + +--- @class InputEventScreenDrag: InputEventFromWindow, { [string]: any } +--- @field index int +--- @field tilt Vector2 +--- @field pressure float +--- @field pen_inverted bool +--- @field position Vector2 +--- @field relative Vector2 +--- @field screen_relative Vector2 +--- @field velocity Vector2 +--- @field screen_velocity Vector2 +InputEventScreenDrag = {} + +--- @return InputEventScreenDrag +function InputEventScreenDrag:new() end + +--- @param index int +function InputEventScreenDrag:set_index(index) end + +--- @return int +function InputEventScreenDrag:get_index() end + +--- @param tilt Vector2 +function InputEventScreenDrag:set_tilt(tilt) end + +--- @return Vector2 +function InputEventScreenDrag:get_tilt() end + +--- @param pressure float +function InputEventScreenDrag:set_pressure(pressure) end + +--- @return float +function InputEventScreenDrag:get_pressure() end + +--- @param pen_inverted bool +function InputEventScreenDrag:set_pen_inverted(pen_inverted) end + +--- @return bool +function InputEventScreenDrag:get_pen_inverted() end + +--- @param position Vector2 +function InputEventScreenDrag:set_position(position) end + +--- @return Vector2 +function InputEventScreenDrag:get_position() end + +--- @param relative Vector2 +function InputEventScreenDrag:set_relative(relative) end + +--- @return Vector2 +function InputEventScreenDrag:get_relative() end + +--- @param relative Vector2 +function InputEventScreenDrag:set_screen_relative(relative) end + +--- @return Vector2 +function InputEventScreenDrag:get_screen_relative() end + +--- @param velocity Vector2 +function InputEventScreenDrag:set_velocity(velocity) end + +--- @return Vector2 +function InputEventScreenDrag:get_velocity() end + +--- @param velocity Vector2 +function InputEventScreenDrag:set_screen_velocity(velocity) end + +--- @return Vector2 +function InputEventScreenDrag:get_screen_velocity() end + + +----------------------------------------------------------- +-- InputEventScreenTouch +----------------------------------------------------------- + +--- @class InputEventScreenTouch: InputEventFromWindow, { [string]: any } +--- @field index int +--- @field position Vector2 +--- @field canceled bool +--- @field pressed bool +--- @field double_tap bool +InputEventScreenTouch = {} + +--- @return InputEventScreenTouch +function InputEventScreenTouch:new() end + +--- @param index int +function InputEventScreenTouch:set_index(index) end + +--- @return int +function InputEventScreenTouch:get_index() end + +--- @param position Vector2 +function InputEventScreenTouch:set_position(position) end + +--- @return Vector2 +function InputEventScreenTouch:get_position() end + +--- @param pressed bool +function InputEventScreenTouch:set_pressed(pressed) end + +--- @param canceled bool +function InputEventScreenTouch:set_canceled(canceled) end + +--- @param double_tap bool +function InputEventScreenTouch:set_double_tap(double_tap) end + +--- @return bool +function InputEventScreenTouch:is_double_tap() end + + +----------------------------------------------------------- +-- InputEventShortcut +----------------------------------------------------------- + +--- @class InputEventShortcut: InputEvent, { [string]: any } +--- @field shortcut Shortcut +InputEventShortcut = {} + +--- @return InputEventShortcut +function InputEventShortcut:new() end + +--- @param shortcut Shortcut +function InputEventShortcut:set_shortcut(shortcut) end + +--- @return Shortcut +function InputEventShortcut:get_shortcut() end + + +----------------------------------------------------------- +-- InputEventWithModifiers +----------------------------------------------------------- + +--- @class InputEventWithModifiers: InputEventFromWindow, { [string]: any } +--- @field command_or_control_autoremap bool +--- @field alt_pressed bool +--- @field shift_pressed bool +--- @field ctrl_pressed bool +--- @field meta_pressed bool +InputEventWithModifiers = {} + +--- @param enable bool +function InputEventWithModifiers:set_command_or_control_autoremap(enable) end + +--- @return bool +function InputEventWithModifiers:is_command_or_control_autoremap() end + +--- @return bool +function InputEventWithModifiers:is_command_or_control_pressed() end + +--- @param pressed bool +function InputEventWithModifiers:set_alt_pressed(pressed) end + +--- @return bool +function InputEventWithModifiers:is_alt_pressed() end + +--- @param pressed bool +function InputEventWithModifiers:set_shift_pressed(pressed) end + +--- @return bool +function InputEventWithModifiers:is_shift_pressed() end + +--- @param pressed bool +function InputEventWithModifiers:set_ctrl_pressed(pressed) end + +--- @return bool +function InputEventWithModifiers:is_ctrl_pressed() end + +--- @param pressed bool +function InputEventWithModifiers:set_meta_pressed(pressed) end + +--- @return bool +function InputEventWithModifiers:is_meta_pressed() end + +--- @return KeyModifierMask +function InputEventWithModifiers:get_modifiers_mask() end + + +----------------------------------------------------------- +-- InputMap +----------------------------------------------------------- + +--- @class InputMap: Object, { [string]: any } +InputMap = {} + +--- @param action StringName +--- @return bool +function InputMap:has_action(action) end + +--- @return Array[StringName] +function InputMap:get_actions() end + +--- @param action StringName +--- @param deadzone float? Default: 0.2 +function InputMap:add_action(action, deadzone) end + +--- @param action StringName +function InputMap:erase_action(action) end + +--- @param action StringName +--- @return String +function InputMap:get_action_description(action) end + +--- @param action StringName +--- @param deadzone float +function InputMap:action_set_deadzone(action, deadzone) end + +--- @param action StringName +--- @return float +function InputMap:action_get_deadzone(action) end + +--- @param action StringName +--- @param event InputEvent +function InputMap:action_add_event(action, event) end + +--- @param action StringName +--- @param event InputEvent +--- @return bool +function InputMap:action_has_event(action, event) end + +--- @param action StringName +--- @param event InputEvent +function InputMap:action_erase_event(action, event) end + +--- @param action StringName +function InputMap:action_erase_events(action) end + +--- @param action StringName +--- @return Array[InputEvent] +function InputMap:action_get_events(action) end + +--- @param event InputEvent +--- @param action StringName +--- @param exact_match bool? Default: false +--- @return bool +function InputMap:event_is_action(event, action, exact_match) end + +function InputMap:load_from_project_settings() end + + +----------------------------------------------------------- +-- InstancePlaceholder +----------------------------------------------------------- + +--- @class InstancePlaceholder: Node, { [string]: any } +InstancePlaceholder = {} + +--- @param with_order bool? Default: false +--- @return Dictionary +function InstancePlaceholder:get_stored_values(with_order) end + +--- @param replace bool? Default: false +--- @param custom_scene PackedScene? Default: null +--- @return Node +function InstancePlaceholder:create_instance(replace, custom_scene) end + +--- @return String +function InstancePlaceholder:get_instance_path() end + + +----------------------------------------------------------- +-- IntervalTweener +----------------------------------------------------------- + +--- @class IntervalTweener: Tweener, { [string]: any } +IntervalTweener = {} + +--- @return IntervalTweener +function IntervalTweener:new() end + + +----------------------------------------------------------- +-- ItemList +----------------------------------------------------------- + +--- @class ItemList: Control, { [string]: any } +--- @field select_mode int +--- @field allow_reselect bool +--- @field allow_rmb_select bool +--- @field allow_search bool +--- @field max_text_lines int +--- @field auto_width bool +--- @field auto_height bool +--- @field text_overrun_behavior int +--- @field wraparound_items bool +--- @field item_count int +--- @field max_columns int +--- @field same_column_width bool +--- @field fixed_column_width int +--- @field icon_mode int +--- @field icon_scale float +--- @field fixed_icon_size Vector2i +ItemList = {} + +--- @return ItemList +function ItemList:new() end + +--- @alias ItemList.IconMode `ItemList.ICON_MODE_TOP` | `ItemList.ICON_MODE_LEFT` +ItemList.ICON_MODE_TOP = 0 +ItemList.ICON_MODE_LEFT = 1 + +--- @alias ItemList.SelectMode `ItemList.SELECT_SINGLE` | `ItemList.SELECT_MULTI` | `ItemList.SELECT_TOGGLE` +ItemList.SELECT_SINGLE = 0 +ItemList.SELECT_MULTI = 1 +ItemList.SELECT_TOGGLE = 2 + +ItemList.item_selected = Signal() +ItemList.empty_clicked = Signal() +ItemList.item_clicked = Signal() +ItemList.multi_selected = Signal() +ItemList.item_activated = Signal() + +--- @param text String +--- @param icon Texture2D? Default: null +--- @param selectable bool? Default: true +--- @return int +function ItemList:add_item(text, icon, selectable) end + +--- @param icon Texture2D +--- @param selectable bool? Default: true +--- @return int +function ItemList:add_icon_item(icon, selectable) end + +--- @param idx int +--- @param text String +function ItemList:set_item_text(idx, text) end + +--- @param idx int +--- @return String +function ItemList:get_item_text(idx) end + +--- @param idx int +--- @param icon Texture2D +function ItemList:set_item_icon(idx, icon) end + +--- @param idx int +--- @return Texture2D +function ItemList:get_item_icon(idx) end + +--- @param idx int +--- @param direction Control.TextDirection +function ItemList:set_item_text_direction(idx, direction) end + +--- @param idx int +--- @return Control.TextDirection +function ItemList:get_item_text_direction(idx) end + +--- @param idx int +--- @param language String +function ItemList:set_item_language(idx, language) end + +--- @param idx int +--- @return String +function ItemList:get_item_language(idx) end + +--- @param idx int +--- @param mode Node.AutoTranslateMode +function ItemList:set_item_auto_translate_mode(idx, mode) end + +--- @param idx int +--- @return Node.AutoTranslateMode +function ItemList:get_item_auto_translate_mode(idx) end + +--- @param idx int +--- @param transposed bool +function ItemList:set_item_icon_transposed(idx, transposed) end + +--- @param idx int +--- @return bool +function ItemList:is_item_icon_transposed(idx) end + +--- @param idx int +--- @param rect Rect2 +function ItemList:set_item_icon_region(idx, rect) end + +--- @param idx int +--- @return Rect2 +function ItemList:get_item_icon_region(idx) end + +--- @param idx int +--- @param modulate Color +function ItemList:set_item_icon_modulate(idx, modulate) end + +--- @param idx int +--- @return Color +function ItemList:get_item_icon_modulate(idx) end + +--- @param idx int +--- @param selectable bool +function ItemList:set_item_selectable(idx, selectable) end + +--- @param idx int +--- @return bool +function ItemList:is_item_selectable(idx) end + +--- @param idx int +--- @param disabled bool +function ItemList:set_item_disabled(idx, disabled) end + +--- @param idx int +--- @return bool +function ItemList:is_item_disabled(idx) end + +--- @param idx int +--- @param metadata any +function ItemList:set_item_metadata(idx, metadata) end + +--- @param idx int +--- @return any +function ItemList:get_item_metadata(idx) end + +--- @param idx int +--- @param custom_bg_color Color +function ItemList:set_item_custom_bg_color(idx, custom_bg_color) end + +--- @param idx int +--- @return Color +function ItemList:get_item_custom_bg_color(idx) end + +--- @param idx int +--- @param custom_fg_color Color +function ItemList:set_item_custom_fg_color(idx, custom_fg_color) end + +--- @param idx int +--- @return Color +function ItemList:get_item_custom_fg_color(idx) end + +--- @param idx int +--- @param expand bool? Default: true +--- @return Rect2 +function ItemList:get_item_rect(idx, expand) end + +--- @param idx int +--- @param enable bool +function ItemList:set_item_tooltip_enabled(idx, enable) end + +--- @param idx int +--- @return bool +function ItemList:is_item_tooltip_enabled(idx) end + +--- @param idx int +--- @param tooltip String +function ItemList:set_item_tooltip(idx, tooltip) end + +--- @param idx int +--- @return String +function ItemList:get_item_tooltip(idx) end + +--- @param idx int +--- @param single bool? Default: true +function ItemList:select(idx, single) end + +--- @param idx int +function ItemList:deselect(idx) end + +function ItemList:deselect_all() end + +--- @param idx int +--- @return bool +function ItemList:is_selected(idx) end + +--- @return PackedInt32Array +function ItemList:get_selected_items() end + +--- @param from_idx int +--- @param to_idx int +function ItemList:move_item(from_idx, to_idx) end + +--- @param count int +function ItemList:set_item_count(count) end + +--- @return int +function ItemList:get_item_count() end + +--- @param idx int +function ItemList:remove_item(idx) end + +function ItemList:clear() end + +function ItemList:sort_items_by_text() end + +--- @param width int +function ItemList:set_fixed_column_width(width) end + +--- @return int +function ItemList:get_fixed_column_width() end + +--- @param enable bool +function ItemList:set_same_column_width(enable) end + +--- @return bool +function ItemList:is_same_column_width() end + +--- @param lines int +function ItemList:set_max_text_lines(lines) end + +--- @return int +function ItemList:get_max_text_lines() end + +--- @param amount int +function ItemList:set_max_columns(amount) end + +--- @return int +function ItemList:get_max_columns() end + +--- @param mode ItemList.SelectMode +function ItemList:set_select_mode(mode) end + +--- @return ItemList.SelectMode +function ItemList:get_select_mode() end + +--- @param mode ItemList.IconMode +function ItemList:set_icon_mode(mode) end + +--- @return ItemList.IconMode +function ItemList:get_icon_mode() end + +--- @param size Vector2i +function ItemList:set_fixed_icon_size(size) end + +--- @return Vector2i +function ItemList:get_fixed_icon_size() end + +--- @param scale float +function ItemList:set_icon_scale(scale) end + +--- @return float +function ItemList:get_icon_scale() end + +--- @param allow bool +function ItemList:set_allow_rmb_select(allow) end + +--- @return bool +function ItemList:get_allow_rmb_select() end + +--- @param allow bool +function ItemList:set_allow_reselect(allow) end + +--- @return bool +function ItemList:get_allow_reselect() end + +--- @param allow bool +function ItemList:set_allow_search(allow) end + +--- @return bool +function ItemList:get_allow_search() end + +--- @param enable bool +function ItemList:set_auto_width(enable) end + +--- @return bool +function ItemList:has_auto_width() end + +--- @param enable bool +function ItemList:set_auto_height(enable) end + +--- @return bool +function ItemList:has_auto_height() end + +--- @return bool +function ItemList:is_anything_selected() end + +--- @param position Vector2 +--- @param exact bool? Default: false +--- @return int +function ItemList:get_item_at_position(position, exact) end + +function ItemList:ensure_current_is_visible() end + +--- @return VScrollBar +function ItemList:get_v_scroll_bar() end + +--- @return HScrollBar +function ItemList:get_h_scroll_bar() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function ItemList:set_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function ItemList:get_text_overrun_behavior() end + +--- @param enable bool +function ItemList:set_wraparound_items(enable) end + +--- @return bool +function ItemList:has_wraparound_items() end + +function ItemList:force_update_list_size() end + + +----------------------------------------------------------- +-- JNISingleton +----------------------------------------------------------- + +--- @class JNISingleton: Object, { [string]: any } +JNISingleton = {} + +--- @return JNISingleton +function JNISingleton:new() end + + +----------------------------------------------------------- +-- JSON +----------------------------------------------------------- + +--- @class JSON: Resource, { [string]: any } +--- @field data any +JSON = {} + +--- @return JSON +function JSON:new() end + +--- static +--- @param data any +--- @param indent String? Default: "" +--- @param sort_keys bool? Default: true +--- @param full_precision bool? Default: false +--- @return String +function JSON:stringify(data, indent, sort_keys, full_precision) end + +--- static +--- @param json_string String +--- @return any +function JSON:parse_string(json_string) end + +--- @param json_text String +--- @param keep_text bool? Default: false +--- @return Error +function JSON:parse(json_text, keep_text) end + +--- @return any +function JSON:get_data() end + +--- @param data any +function JSON:set_data(data) end + +--- @return String +function JSON:get_parsed_text() end + +--- @return int +function JSON:get_error_line() end + +--- @return String +function JSON:get_error_message() end + +--- static +--- @param variant any +--- @param full_objects bool? Default: false +--- @return any +function JSON:from_native(variant, full_objects) end + +--- static +--- @param json any +--- @param allow_objects bool? Default: false +--- @return any +function JSON:to_native(json, allow_objects) end + + +----------------------------------------------------------- +-- JSONRPC +----------------------------------------------------------- + +--- @class JSONRPC: Object, { [string]: any } +JSONRPC = {} + +--- @return JSONRPC +function JSONRPC:new() end + +--- @alias JSONRPC.ErrorCode `JSONRPC.PARSE_ERROR` | `JSONRPC.INVALID_REQUEST` | `JSONRPC.METHOD_NOT_FOUND` | `JSONRPC.INVALID_PARAMS` | `JSONRPC.INTERNAL_ERROR` +JSONRPC.PARSE_ERROR = -32700 +JSONRPC.INVALID_REQUEST = -32600 +JSONRPC.METHOD_NOT_FOUND = -32601 +JSONRPC.INVALID_PARAMS = -32602 +JSONRPC.INTERNAL_ERROR = -32603 + +--- @param name String +--- @param callback Callable +function JSONRPC:set_method(name, callback) end + +--- @param action any +--- @param recurse bool? Default: false +--- @return any +function JSONRPC:process_action(action, recurse) end + +--- @param action String +--- @return String +function JSONRPC:process_string(action) end + +--- @param method String +--- @param params any +--- @param id any +--- @return Dictionary +function JSONRPC:make_request(method, params, id) end + +--- @param result any +--- @param id any +--- @return Dictionary +function JSONRPC:make_response(result, id) end + +--- @param method String +--- @param params any +--- @return Dictionary +function JSONRPC:make_notification(method, params) end + +--- @param code int +--- @param message String +--- @param id any? Default: null +--- @return Dictionary +function JSONRPC:make_response_error(code, message, id) end + + +----------------------------------------------------------- +-- JavaClass +----------------------------------------------------------- + +--- @class JavaClass: RefCounted, { [string]: any } +JavaClass = {} + +--- @return JavaClass +function JavaClass:new() end + +--- @return String +function JavaClass:get_java_class_name() end + +--- @return Array[Dictionary] +function JavaClass:get_java_method_list() end + +--- @return JavaClass +function JavaClass:get_java_parent_class() end + + +----------------------------------------------------------- +-- JavaClassWrapper +----------------------------------------------------------- + +--- @class JavaClassWrapper: Object, { [string]: any } +JavaClassWrapper = {} + +--- @param name String +--- @return JavaClass +function JavaClassWrapper:wrap(name) end + +--- @return JavaObject +function JavaClassWrapper:get_exception() end + + +----------------------------------------------------------- +-- JavaObject +----------------------------------------------------------- + +--- @class JavaObject: RefCounted, { [string]: any } +JavaObject = {} + +--- @return JavaObject +function JavaObject:new() end + +--- @return JavaClass +function JavaObject:get_java_class() end + + +----------------------------------------------------------- +-- JavaScriptBridge +----------------------------------------------------------- + +--- @class JavaScriptBridge: Object, { [string]: any } +JavaScriptBridge = {} + +JavaScriptBridge.pwa_update_available = Signal() + +--- @param code String +--- @param use_global_execution_context bool? Default: false +--- @return any +function JavaScriptBridge:eval(code, use_global_execution_context) end + +--- @param interface String +--- @return JavaScriptObject +function JavaScriptBridge:get_interface(interface) end + +--- @param callable Callable +--- @return JavaScriptObject +function JavaScriptBridge:create_callback(callable) end + +--- @param javascript_object JavaScriptObject +--- @return bool +function JavaScriptBridge:is_js_buffer(javascript_object) end + +--- @param javascript_buffer JavaScriptObject +--- @return PackedByteArray +function JavaScriptBridge:js_buffer_to_packed_byte_array(javascript_buffer) end + +--- @param object String +--- @return any +function JavaScriptBridge:create_object(object, ...) end + +--- @param buffer PackedByteArray +--- @param name String +--- @param mime String? Default: "application/octet-stream" +function JavaScriptBridge:download_buffer(buffer, name, mime) end + +--- @return bool +function JavaScriptBridge:pwa_needs_update() end + +--- @return Error +function JavaScriptBridge:pwa_update() end + +function JavaScriptBridge:force_fs_sync() end + + +----------------------------------------------------------- +-- JavaScriptObject +----------------------------------------------------------- + +--- @class JavaScriptObject: RefCounted, { [string]: any } +JavaScriptObject = {} + + +----------------------------------------------------------- +-- Joint2D +----------------------------------------------------------- + +--- @class Joint2D: Node2D, { [string]: any } +--- @field node_a NodePath +--- @field node_b NodePath +--- @field bias float +--- @field disable_collision bool +Joint2D = {} + +--- @param node NodePath +function Joint2D:set_node_a(node) end + +--- @return NodePath +function Joint2D:get_node_a() end + +--- @param node NodePath +function Joint2D:set_node_b(node) end + +--- @return NodePath +function Joint2D:get_node_b() end + +--- @param bias float +function Joint2D:set_bias(bias) end + +--- @return float +function Joint2D:get_bias() end + +--- @param enable bool +function Joint2D:set_exclude_nodes_from_collision(enable) end + +--- @return bool +function Joint2D:get_exclude_nodes_from_collision() end + +--- @return RID +function Joint2D:get_rid() end + + +----------------------------------------------------------- +-- Joint3D +----------------------------------------------------------- + +--- @class Joint3D: Node3D, { [string]: any } +--- @field node_a NodePath +--- @field node_b NodePath +--- @field solver_priority int +--- @field exclude_nodes_from_collision bool +Joint3D = {} + +--- @param node NodePath +function Joint3D:set_node_a(node) end + +--- @return NodePath +function Joint3D:get_node_a() end + +--- @param node NodePath +function Joint3D:set_node_b(node) end + +--- @return NodePath +function Joint3D:get_node_b() end + +--- @param priority int +function Joint3D:set_solver_priority(priority) end + +--- @return int +function Joint3D:get_solver_priority() end + +--- @param enable bool +function Joint3D:set_exclude_nodes_from_collision(enable) end + +--- @return bool +function Joint3D:get_exclude_nodes_from_collision() end + +--- @return RID +function Joint3D:get_rid() end + + +----------------------------------------------------------- +-- KinematicCollision2D +----------------------------------------------------------- + +--- @class KinematicCollision2D: RefCounted, { [string]: any } +KinematicCollision2D = {} + +--- @return KinematicCollision2D +function KinematicCollision2D:new() end + +--- @return Vector2 +function KinematicCollision2D:get_position() end + +--- @return Vector2 +function KinematicCollision2D:get_normal() end + +--- @return Vector2 +function KinematicCollision2D:get_travel() end + +--- @return Vector2 +function KinematicCollision2D:get_remainder() end + +--- @param up_direction Vector2? Default: Vector2(0, -1) +--- @return float +function KinematicCollision2D:get_angle(up_direction) end + +--- @return float +function KinematicCollision2D:get_depth() end + +--- @return Object +function KinematicCollision2D:get_local_shape() end + +--- @return Object +function KinematicCollision2D:get_collider() end + +--- @return int +function KinematicCollision2D:get_collider_id() end + +--- @return RID +function KinematicCollision2D:get_collider_rid() end + +--- @return Object +function KinematicCollision2D:get_collider_shape() end + +--- @return int +function KinematicCollision2D:get_collider_shape_index() end + +--- @return Vector2 +function KinematicCollision2D:get_collider_velocity() end + + +----------------------------------------------------------- +-- KinematicCollision3D +----------------------------------------------------------- + +--- @class KinematicCollision3D: RefCounted, { [string]: any } +KinematicCollision3D = {} + +--- @return KinematicCollision3D +function KinematicCollision3D:new() end + +--- @return Vector3 +function KinematicCollision3D:get_travel() end + +--- @return Vector3 +function KinematicCollision3D:get_remainder() end + +--- @return float +function KinematicCollision3D:get_depth() end + +--- @return int +function KinematicCollision3D:get_collision_count() end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function KinematicCollision3D:get_position(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function KinematicCollision3D:get_normal(collision_index) end + +--- @param collision_index int? Default: 0 +--- @param up_direction Vector3? Default: Vector3(0, 1, 0) +--- @return float +function KinematicCollision3D:get_angle(collision_index, up_direction) end + +--- @param collision_index int? Default: 0 +--- @return Object +function KinematicCollision3D:get_local_shape(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Object +function KinematicCollision3D:get_collider(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return int +function KinematicCollision3D:get_collider_id(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return RID +function KinematicCollision3D:get_collider_rid(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Object +function KinematicCollision3D:get_collider_shape(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return int +function KinematicCollision3D:get_collider_shape_index(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function KinematicCollision3D:get_collider_velocity(collision_index) end + + +----------------------------------------------------------- +-- Label +----------------------------------------------------------- + +--- @class Label: Control, { [string]: any } +--- @field text String +--- @field label_settings LabelSettings +--- @field horizontal_alignment int +--- @field vertical_alignment int +--- @field autowrap_mode int +--- @field autowrap_trim_flags int +--- @field justification_flags int +--- @field paragraph_separator String +--- @field clip_text bool +--- @field text_overrun_behavior int +--- @field ellipsis_char String +--- @field uppercase bool +--- @field tab_stops PackedFloat32Array +--- @field lines_skipped int +--- @field max_lines_visible int +--- @field visible_characters int +--- @field visible_characters_behavior int +--- @field visible_ratio float +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +Label = {} + +--- @return Label +function Label:new() end + +--- @param alignment HorizontalAlignment +function Label:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function Label:get_horizontal_alignment() end + +--- @param alignment VerticalAlignment +function Label:set_vertical_alignment(alignment) end + +--- @return VerticalAlignment +function Label:get_vertical_alignment() end + +--- @param text String +function Label:set_text(text) end + +--- @return String +function Label:get_text() end + +--- @param settings LabelSettings +function Label:set_label_settings(settings) end + +--- @return LabelSettings +function Label:get_label_settings() end + +--- @param direction Control.TextDirection +function Label:set_text_direction(direction) end + +--- @return Control.TextDirection +function Label:get_text_direction() end + +--- @param language String +function Label:set_language(language) end + +--- @return String +function Label:get_language() end + +--- @param paragraph_separator String +function Label:set_paragraph_separator(paragraph_separator) end + +--- @return String +function Label:get_paragraph_separator() end + +--- @param autowrap_mode TextServer.AutowrapMode +function Label:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function Label:get_autowrap_mode() end + +--- @param autowrap_trim_flags TextServer.LineBreakFlag +function Label:set_autowrap_trim_flags(autowrap_trim_flags) end + +--- @return TextServer.LineBreakFlag +function Label:get_autowrap_trim_flags() end + +--- @param justification_flags TextServer.JustificationFlag +function Label:set_justification_flags(justification_flags) end + +--- @return TextServer.JustificationFlag +function Label:get_justification_flags() end + +--- @param enable bool +function Label:set_clip_text(enable) end + +--- @return bool +function Label:is_clipping_text() end + +--- @param tab_stops PackedFloat32Array +function Label:set_tab_stops(tab_stops) end + +--- @return PackedFloat32Array +function Label:get_tab_stops() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function Label:set_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function Label:get_text_overrun_behavior() end + +--- @param char String +function Label:set_ellipsis_char(char) end + +--- @return String +function Label:get_ellipsis_char() end + +--- @param enable bool +function Label:set_uppercase(enable) end + +--- @return bool +function Label:is_uppercase() end + +--- @param line int? Default: -1 +--- @return int +function Label:get_line_height(line) end + +--- @return int +function Label:get_line_count() end + +--- @return int +function Label:get_visible_line_count() end + +--- @return int +function Label:get_total_character_count() end + +--- @param amount int +function Label:set_visible_characters(amount) end + +--- @return int +function Label:get_visible_characters() end + +--- @return TextServer.VisibleCharactersBehavior +function Label:get_visible_characters_behavior() end + +--- @param behavior TextServer.VisibleCharactersBehavior +function Label:set_visible_characters_behavior(behavior) end + +--- @param ratio float +function Label:set_visible_ratio(ratio) end + +--- @return float +function Label:get_visible_ratio() end + +--- @param lines_skipped int +function Label:set_lines_skipped(lines_skipped) end + +--- @return int +function Label:get_lines_skipped() end + +--- @param lines_visible int +function Label:set_max_lines_visible(lines_visible) end + +--- @return int +function Label:get_max_lines_visible() end + +--- @param parser TextServer.StructuredTextParser +function Label:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function Label:get_structured_text_bidi_override() end + +--- @param args Array +function Label:set_structured_text_bidi_override_options(args) end + +--- @return Array +function Label:get_structured_text_bidi_override_options() end + +--- @param pos int +--- @return Rect2 +function Label:get_character_bounds(pos) end + + +----------------------------------------------------------- +-- Label3D +----------------------------------------------------------- + +--- @class Label3D: GeometryInstance3D, { [string]: any } +--- @field pixel_size float +--- @field offset Vector2 +--- @field billboard int +--- @field shaded bool +--- @field double_sided bool +--- @field no_depth_test bool +--- @field fixed_size bool +--- @field alpha_cut int +--- @field alpha_scissor_threshold float +--- @field alpha_hash_scale float +--- @field alpha_antialiasing_mode int +--- @field alpha_antialiasing_edge float +--- @field texture_filter int +--- @field render_priority int +--- @field outline_render_priority int +--- @field modulate Color +--- @field outline_modulate Color +--- @field text String +--- @field font Font +--- @field font_size int +--- @field outline_size int +--- @field horizontal_alignment int +--- @field vertical_alignment int +--- @field uppercase bool +--- @field line_spacing float +--- @field autowrap_mode int +--- @field autowrap_trim_flags int +--- @field justification_flags int +--- @field width float +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +Label3D = {} + +--- @return Label3D +function Label3D:new() end + +--- @alias Label3D.DrawFlags `Label3D.FLAG_SHADED` | `Label3D.FLAG_DOUBLE_SIDED` | `Label3D.FLAG_DISABLE_DEPTH_TEST` | `Label3D.FLAG_FIXED_SIZE` | `Label3D.FLAG_MAX` +Label3D.FLAG_SHADED = 0 +Label3D.FLAG_DOUBLE_SIDED = 1 +Label3D.FLAG_DISABLE_DEPTH_TEST = 2 +Label3D.FLAG_FIXED_SIZE = 3 +Label3D.FLAG_MAX = 4 + +--- @alias Label3D.AlphaCutMode `Label3D.ALPHA_CUT_DISABLED` | `Label3D.ALPHA_CUT_DISCARD` | `Label3D.ALPHA_CUT_OPAQUE_PREPASS` | `Label3D.ALPHA_CUT_HASH` +Label3D.ALPHA_CUT_DISABLED = 0 +Label3D.ALPHA_CUT_DISCARD = 1 +Label3D.ALPHA_CUT_OPAQUE_PREPASS = 2 +Label3D.ALPHA_CUT_HASH = 3 + +--- @param alignment HorizontalAlignment +function Label3D:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function Label3D:get_horizontal_alignment() end + +--- @param alignment VerticalAlignment +function Label3D:set_vertical_alignment(alignment) end + +--- @return VerticalAlignment +function Label3D:get_vertical_alignment() end + +--- @param modulate Color +function Label3D:set_modulate(modulate) end + +--- @return Color +function Label3D:get_modulate() end + +--- @param modulate Color +function Label3D:set_outline_modulate(modulate) end + +--- @return Color +function Label3D:get_outline_modulate() end + +--- @param text String +function Label3D:set_text(text) end + +--- @return String +function Label3D:get_text() end + +--- @param direction TextServer.Direction +function Label3D:set_text_direction(direction) end + +--- @return TextServer.Direction +function Label3D:get_text_direction() end + +--- @param language String +function Label3D:set_language(language) end + +--- @return String +function Label3D:get_language() end + +--- @param parser TextServer.StructuredTextParser +function Label3D:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function Label3D:get_structured_text_bidi_override() end + +--- @param args Array +function Label3D:set_structured_text_bidi_override_options(args) end + +--- @return Array +function Label3D:get_structured_text_bidi_override_options() end + +--- @param enable bool +function Label3D:set_uppercase(enable) end + +--- @return bool +function Label3D:is_uppercase() end + +--- @param priority int +function Label3D:set_render_priority(priority) end + +--- @return int +function Label3D:get_render_priority() end + +--- @param priority int +function Label3D:set_outline_render_priority(priority) end + +--- @return int +function Label3D:get_outline_render_priority() end + +--- @param font Font +function Label3D:set_font(font) end + +--- @return Font +function Label3D:get_font() end + +--- @param size int +function Label3D:set_font_size(size) end + +--- @return int +function Label3D:get_font_size() end + +--- @param outline_size int +function Label3D:set_outline_size(outline_size) end + +--- @return int +function Label3D:get_outline_size() end + +--- @param line_spacing float +function Label3D:set_line_spacing(line_spacing) end + +--- @return float +function Label3D:get_line_spacing() end + +--- @param autowrap_mode TextServer.AutowrapMode +function Label3D:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function Label3D:get_autowrap_mode() end + +--- @param autowrap_trim_flags TextServer.LineBreakFlag +function Label3D:set_autowrap_trim_flags(autowrap_trim_flags) end + +--- @return TextServer.LineBreakFlag +function Label3D:get_autowrap_trim_flags() end + +--- @param justification_flags TextServer.JustificationFlag +function Label3D:set_justification_flags(justification_flags) end + +--- @return TextServer.JustificationFlag +function Label3D:get_justification_flags() end + +--- @param width float +function Label3D:set_width(width) end + +--- @return float +function Label3D:get_width() end + +--- @param pixel_size float +function Label3D:set_pixel_size(pixel_size) end + +--- @return float +function Label3D:get_pixel_size() end + +--- @param offset Vector2 +function Label3D:set_offset(offset) end + +--- @return Vector2 +function Label3D:get_offset() end + +--- @param flag Label3D.DrawFlags +--- @param enabled bool +function Label3D:set_draw_flag(flag, enabled) end + +--- @param flag Label3D.DrawFlags +--- @return bool +function Label3D:get_draw_flag(flag) end + +--- @param mode BaseMaterial3D.BillboardMode +function Label3D:set_billboard_mode(mode) end + +--- @return BaseMaterial3D.BillboardMode +function Label3D:get_billboard_mode() end + +--- @param mode Label3D.AlphaCutMode +function Label3D:set_alpha_cut_mode(mode) end + +--- @return Label3D.AlphaCutMode +function Label3D:get_alpha_cut_mode() end + +--- @param threshold float +function Label3D:set_alpha_scissor_threshold(threshold) end + +--- @return float +function Label3D:get_alpha_scissor_threshold() end + +--- @param threshold float +function Label3D:set_alpha_hash_scale(threshold) end + +--- @return float +function Label3D:get_alpha_hash_scale() end + +--- @param alpha_aa BaseMaterial3D.AlphaAntiAliasing +function Label3D:set_alpha_antialiasing(alpha_aa) end + +--- @return BaseMaterial3D.AlphaAntiAliasing +function Label3D:get_alpha_antialiasing() end + +--- @param edge float +function Label3D:set_alpha_antialiasing_edge(edge) end + +--- @return float +function Label3D:get_alpha_antialiasing_edge() end + +--- @param mode BaseMaterial3D.TextureFilter +function Label3D:set_texture_filter(mode) end + +--- @return BaseMaterial3D.TextureFilter +function Label3D:get_texture_filter() end + +--- @return TriangleMesh +function Label3D:generate_triangle_mesh() end + + +----------------------------------------------------------- +-- LabelSettings +----------------------------------------------------------- + +--- @class LabelSettings: Resource, { [string]: any } +--- @field line_spacing float +--- @field paragraph_spacing float +--- @field font Font +--- @field font_size int +--- @field font_color Color +--- @field outline_size int +--- @field outline_color Color +--- @field shadow_size int +--- @field shadow_color Color +--- @field shadow_offset Vector2 +--- @field stacked_outline_count int +--- @field stacked_shadow_count int +LabelSettings = {} + +--- @return LabelSettings +function LabelSettings:new() end + +--- @param spacing float +function LabelSettings:set_line_spacing(spacing) end + +--- @return float +function LabelSettings:get_line_spacing() end + +--- @param spacing float +function LabelSettings:set_paragraph_spacing(spacing) end + +--- @return float +function LabelSettings:get_paragraph_spacing() end + +--- @param font Font +function LabelSettings:set_font(font) end + +--- @return Font +function LabelSettings:get_font() end + +--- @param size int +function LabelSettings:set_font_size(size) end + +--- @return int +function LabelSettings:get_font_size() end + +--- @param color Color +function LabelSettings:set_font_color(color) end + +--- @return Color +function LabelSettings:get_font_color() end + +--- @param size int +function LabelSettings:set_outline_size(size) end + +--- @return int +function LabelSettings:get_outline_size() end + +--- @param color Color +function LabelSettings:set_outline_color(color) end + +--- @return Color +function LabelSettings:get_outline_color() end + +--- @param size int +function LabelSettings:set_shadow_size(size) end + +--- @return int +function LabelSettings:get_shadow_size() end + +--- @param color Color +function LabelSettings:set_shadow_color(color) end + +--- @return Color +function LabelSettings:get_shadow_color() end + +--- @param offset Vector2 +function LabelSettings:set_shadow_offset(offset) end + +--- @return Vector2 +function LabelSettings:get_shadow_offset() end + +--- @return int +function LabelSettings:get_stacked_outline_count() end + +--- @param count int +function LabelSettings:set_stacked_outline_count(count) end + +--- @param index int? Default: -1 +function LabelSettings:add_stacked_outline(index) end + +--- @param from_index int +--- @param to_position int +function LabelSettings:move_stacked_outline(from_index, to_position) end + +--- @param index int +function LabelSettings:remove_stacked_outline(index) end + +--- @param index int +--- @param size int +function LabelSettings:set_stacked_outline_size(index, size) end + +--- @param index int +--- @return int +function LabelSettings:get_stacked_outline_size(index) end + +--- @param index int +--- @param color Color +function LabelSettings:set_stacked_outline_color(index, color) end + +--- @param index int +--- @return Color +function LabelSettings:get_stacked_outline_color(index) end + +--- @return int +function LabelSettings:get_stacked_shadow_count() end + +--- @param count int +function LabelSettings:set_stacked_shadow_count(count) end + +--- @param index int? Default: -1 +function LabelSettings:add_stacked_shadow(index) end + +--- @param from_index int +--- @param to_position int +function LabelSettings:move_stacked_shadow(from_index, to_position) end + +--- @param index int +function LabelSettings:remove_stacked_shadow(index) end + +--- @param index int +--- @param offset Vector2 +function LabelSettings:set_stacked_shadow_offset(index, offset) end + +--- @param index int +--- @return Vector2 +function LabelSettings:get_stacked_shadow_offset(index) end + +--- @param index int +--- @param color Color +function LabelSettings:set_stacked_shadow_color(index, color) end + +--- @param index int +--- @return Color +function LabelSettings:get_stacked_shadow_color(index) end + +--- @param index int +--- @param size int +function LabelSettings:set_stacked_shadow_outline_size(index, size) end + +--- @param index int +--- @return int +function LabelSettings:get_stacked_shadow_outline_size(index) end + + +----------------------------------------------------------- +-- Light2D +----------------------------------------------------------- + +--- @class Light2D: Node2D, { [string]: any } +--- @field enabled bool +--- @field editor_only bool +--- @field color Color +--- @field energy float +--- @field blend_mode int +--- @field range_z_min int +--- @field range_z_max int +--- @field range_layer_min int +--- @field range_layer_max int +--- @field range_item_cull_mask int +--- @field shadow_enabled bool +--- @field shadow_color Color +--- @field shadow_filter int +--- @field shadow_filter_smooth float +--- @field shadow_item_cull_mask int +Light2D = {} + +--- @alias Light2D.ShadowFilter `Light2D.SHADOW_FILTER_NONE` | `Light2D.SHADOW_FILTER_PCF5` | `Light2D.SHADOW_FILTER_PCF13` +Light2D.SHADOW_FILTER_NONE = 0 +Light2D.SHADOW_FILTER_PCF5 = 1 +Light2D.SHADOW_FILTER_PCF13 = 2 + +--- @alias Light2D.BlendMode `Light2D.BLEND_MODE_ADD` | `Light2D.BLEND_MODE_SUB` | `Light2D.BLEND_MODE_MIX` +Light2D.BLEND_MODE_ADD = 0 +Light2D.BLEND_MODE_SUB = 1 +Light2D.BLEND_MODE_MIX = 2 + +--- @param enabled bool +function Light2D:set_enabled(enabled) end + +--- @return bool +function Light2D:is_enabled() end + +--- @param editor_only bool +function Light2D:set_editor_only(editor_only) end + +--- @return bool +function Light2D:is_editor_only() end + +--- @param color Color +function Light2D:set_color(color) end + +--- @return Color +function Light2D:get_color() end + +--- @param energy float +function Light2D:set_energy(energy) end + +--- @return float +function Light2D:get_energy() end + +--- @param z int +function Light2D:set_z_range_min(z) end + +--- @return int +function Light2D:get_z_range_min() end + +--- @param z int +function Light2D:set_z_range_max(z) end + +--- @return int +function Light2D:get_z_range_max() end + +--- @param layer int +function Light2D:set_layer_range_min(layer) end + +--- @return int +function Light2D:get_layer_range_min() end + +--- @param layer int +function Light2D:set_layer_range_max(layer) end + +--- @return int +function Light2D:get_layer_range_max() end + +--- @param item_cull_mask int +function Light2D:set_item_cull_mask(item_cull_mask) end + +--- @return int +function Light2D:get_item_cull_mask() end + +--- @param item_shadow_cull_mask int +function Light2D:set_item_shadow_cull_mask(item_shadow_cull_mask) end + +--- @return int +function Light2D:get_item_shadow_cull_mask() end + +--- @param enabled bool +function Light2D:set_shadow_enabled(enabled) end + +--- @return bool +function Light2D:is_shadow_enabled() end + +--- @param smooth float +function Light2D:set_shadow_smooth(smooth) end + +--- @return float +function Light2D:get_shadow_smooth() end + +--- @param filter Light2D.ShadowFilter +function Light2D:set_shadow_filter(filter) end + +--- @return Light2D.ShadowFilter +function Light2D:get_shadow_filter() end + +--- @param shadow_color Color +function Light2D:set_shadow_color(shadow_color) end + +--- @return Color +function Light2D:get_shadow_color() end + +--- @param mode Light2D.BlendMode +function Light2D:set_blend_mode(mode) end + +--- @return Light2D.BlendMode +function Light2D:get_blend_mode() end + +--- @param height float +function Light2D:set_height(height) end + +--- @return float +function Light2D:get_height() end + + +----------------------------------------------------------- +-- Light3D +----------------------------------------------------------- + +--- @class Light3D: VisualInstance3D, { [string]: any } +--- @field light_intensity_lumens float +--- @field light_intensity_lux float +--- @field light_temperature float +--- @field light_color Color +--- @field light_energy float +--- @field light_indirect_energy float +--- @field light_volumetric_fog_energy float +--- @field light_projector Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field light_size float +--- @field light_angular_distance float +--- @field light_negative bool +--- @field light_specular float +--- @field light_bake_mode int +--- @field light_cull_mask int +--- @field shadow_enabled bool +--- @field shadow_bias float +--- @field shadow_normal_bias float +--- @field shadow_reverse_cull_face bool +--- @field shadow_transmittance_bias float +--- @field shadow_opacity float +--- @field shadow_blur float +--- @field shadow_caster_mask int +--- @field distance_fade_enabled bool +--- @field distance_fade_begin float +--- @field distance_fade_shadow float +--- @field distance_fade_length float +--- @field editor_only bool +Light3D = {} + +--- @alias Light3D.Param `Light3D.PARAM_ENERGY` | `Light3D.PARAM_INDIRECT_ENERGY` | `Light3D.PARAM_VOLUMETRIC_FOG_ENERGY` | `Light3D.PARAM_SPECULAR` | `Light3D.PARAM_RANGE` | `Light3D.PARAM_SIZE` | `Light3D.PARAM_ATTENUATION` | `Light3D.PARAM_SPOT_ANGLE` | `Light3D.PARAM_SPOT_ATTENUATION` | `Light3D.PARAM_SHADOW_MAX_DISTANCE` | `Light3D.PARAM_SHADOW_SPLIT_1_OFFSET` | `Light3D.PARAM_SHADOW_SPLIT_2_OFFSET` | `Light3D.PARAM_SHADOW_SPLIT_3_OFFSET` | `Light3D.PARAM_SHADOW_FADE_START` | `Light3D.PARAM_SHADOW_NORMAL_BIAS` | `Light3D.PARAM_SHADOW_BIAS` | `Light3D.PARAM_SHADOW_PANCAKE_SIZE` | `Light3D.PARAM_SHADOW_OPACITY` | `Light3D.PARAM_SHADOW_BLUR` | `Light3D.PARAM_TRANSMITTANCE_BIAS` | `Light3D.PARAM_INTENSITY` | `Light3D.PARAM_MAX` +Light3D.PARAM_ENERGY = 0 +Light3D.PARAM_INDIRECT_ENERGY = 1 +Light3D.PARAM_VOLUMETRIC_FOG_ENERGY = 2 +Light3D.PARAM_SPECULAR = 3 +Light3D.PARAM_RANGE = 4 +Light3D.PARAM_SIZE = 5 +Light3D.PARAM_ATTENUATION = 6 +Light3D.PARAM_SPOT_ANGLE = 7 +Light3D.PARAM_SPOT_ATTENUATION = 8 +Light3D.PARAM_SHADOW_MAX_DISTANCE = 9 +Light3D.PARAM_SHADOW_SPLIT_1_OFFSET = 10 +Light3D.PARAM_SHADOW_SPLIT_2_OFFSET = 11 +Light3D.PARAM_SHADOW_SPLIT_3_OFFSET = 12 +Light3D.PARAM_SHADOW_FADE_START = 13 +Light3D.PARAM_SHADOW_NORMAL_BIAS = 14 +Light3D.PARAM_SHADOW_BIAS = 15 +Light3D.PARAM_SHADOW_PANCAKE_SIZE = 16 +Light3D.PARAM_SHADOW_OPACITY = 17 +Light3D.PARAM_SHADOW_BLUR = 18 +Light3D.PARAM_TRANSMITTANCE_BIAS = 19 +Light3D.PARAM_INTENSITY = 20 +Light3D.PARAM_MAX = 21 + +--- @alias Light3D.BakeMode `Light3D.BAKE_DISABLED` | `Light3D.BAKE_STATIC` | `Light3D.BAKE_DYNAMIC` +Light3D.BAKE_DISABLED = 0 +Light3D.BAKE_STATIC = 1 +Light3D.BAKE_DYNAMIC = 2 + +--- @param editor_only bool +function Light3D:set_editor_only(editor_only) end + +--- @return bool +function Light3D:is_editor_only() end + +--- @param param Light3D.Param +--- @param value float +function Light3D:set_param(param, value) end + +--- @param param Light3D.Param +--- @return float +function Light3D:get_param(param) end + +--- @param enabled bool +function Light3D:set_shadow(enabled) end + +--- @return bool +function Light3D:has_shadow() end + +--- @param enabled bool +function Light3D:set_negative(enabled) end + +--- @return bool +function Light3D:is_negative() end + +--- @param cull_mask int +function Light3D:set_cull_mask(cull_mask) end + +--- @return int +function Light3D:get_cull_mask() end + +--- @param enable bool +function Light3D:set_enable_distance_fade(enable) end + +--- @return bool +function Light3D:is_distance_fade_enabled() end + +--- @param distance float +function Light3D:set_distance_fade_begin(distance) end + +--- @return float +function Light3D:get_distance_fade_begin() end + +--- @param distance float +function Light3D:set_distance_fade_shadow(distance) end + +--- @return float +function Light3D:get_distance_fade_shadow() end + +--- @param distance float +function Light3D:set_distance_fade_length(distance) end + +--- @return float +function Light3D:get_distance_fade_length() end + +--- @param color Color +function Light3D:set_color(color) end + +--- @return Color +function Light3D:get_color() end + +--- @param enable bool +function Light3D:set_shadow_reverse_cull_face(enable) end + +--- @return bool +function Light3D:get_shadow_reverse_cull_face() end + +--- @param caster_mask int +function Light3D:set_shadow_caster_mask(caster_mask) end + +--- @return int +function Light3D:get_shadow_caster_mask() end + +--- @param bake_mode Light3D.BakeMode +function Light3D:set_bake_mode(bake_mode) end + +--- @return Light3D.BakeMode +function Light3D:get_bake_mode() end + +--- @param projector Texture2D +function Light3D:set_projector(projector) end + +--- @return Texture2D +function Light3D:get_projector() end + +--- @param temperature float +function Light3D:set_temperature(temperature) end + +--- @return float +function Light3D:get_temperature() end + +--- @return Color +function Light3D:get_correlated_color() end + + +----------------------------------------------------------- +-- LightOccluder2D +----------------------------------------------------------- + +--- @class LightOccluder2D: Node2D, { [string]: any } +--- @field occluder OccluderPolygon2D +--- @field sdf_collision bool +--- @field occluder_light_mask int +LightOccluder2D = {} + +--- @return LightOccluder2D +function LightOccluder2D:new() end + +--- @param polygon OccluderPolygon2D +function LightOccluder2D:set_occluder_polygon(polygon) end + +--- @return OccluderPolygon2D +function LightOccluder2D:get_occluder_polygon() end + +--- @param mask int +function LightOccluder2D:set_occluder_light_mask(mask) end + +--- @return int +function LightOccluder2D:get_occluder_light_mask() end + +--- @param enable bool +function LightOccluder2D:set_as_sdf_collision(enable) end + +--- @return bool +function LightOccluder2D:is_set_as_sdf_collision() end + + +----------------------------------------------------------- +-- LightmapGI +----------------------------------------------------------- + +--- @class LightmapGI: VisualInstance3D, { [string]: any } +--- @field quality int +--- @field supersampling bool +--- @field supersampling_factor float +--- @field bounces int +--- @field bounce_indirect_energy float +--- @field directional bool +--- @field shadowmask_mode int +--- @field use_texture_for_bounces bool +--- @field interior bool +--- @field use_denoiser bool +--- @field denoiser_strength float +--- @field denoiser_range int +--- @field bias float +--- @field texel_scale float +--- @field max_texture_size int +--- @field environment_mode int +--- @field environment_custom_sky Sky +--- @field environment_custom_color Color +--- @field environment_custom_energy float +--- @field camera_attributes CameraAttributesPractical | CameraAttributesPhysical +--- @field generate_probes_subdiv int +--- @field light_data LightmapGIData +LightmapGI = {} + +--- @return LightmapGI +function LightmapGI:new() end + +--- @alias LightmapGI.BakeQuality `LightmapGI.BAKE_QUALITY_LOW` | `LightmapGI.BAKE_QUALITY_MEDIUM` | `LightmapGI.BAKE_QUALITY_HIGH` | `LightmapGI.BAKE_QUALITY_ULTRA` +LightmapGI.BAKE_QUALITY_LOW = 0 +LightmapGI.BAKE_QUALITY_MEDIUM = 1 +LightmapGI.BAKE_QUALITY_HIGH = 2 +LightmapGI.BAKE_QUALITY_ULTRA = 3 + +--- @alias LightmapGI.GenerateProbes `LightmapGI.GENERATE_PROBES_DISABLED` | `LightmapGI.GENERATE_PROBES_SUBDIV_4` | `LightmapGI.GENERATE_PROBES_SUBDIV_8` | `LightmapGI.GENERATE_PROBES_SUBDIV_16` | `LightmapGI.GENERATE_PROBES_SUBDIV_32` +LightmapGI.GENERATE_PROBES_DISABLED = 0 +LightmapGI.GENERATE_PROBES_SUBDIV_4 = 1 +LightmapGI.GENERATE_PROBES_SUBDIV_8 = 2 +LightmapGI.GENERATE_PROBES_SUBDIV_16 = 3 +LightmapGI.GENERATE_PROBES_SUBDIV_32 = 4 + +--- @alias LightmapGI.BakeError `LightmapGI.BAKE_ERROR_OK` | `LightmapGI.BAKE_ERROR_NO_SCENE_ROOT` | `LightmapGI.BAKE_ERROR_FOREIGN_DATA` | `LightmapGI.BAKE_ERROR_NO_LIGHTMAPPER` | `LightmapGI.BAKE_ERROR_NO_SAVE_PATH` | `LightmapGI.BAKE_ERROR_NO_MESHES` | `LightmapGI.BAKE_ERROR_MESHES_INVALID` | `LightmapGI.BAKE_ERROR_CANT_CREATE_IMAGE` | `LightmapGI.BAKE_ERROR_USER_ABORTED` | `LightmapGI.BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL` | `LightmapGI.BAKE_ERROR_LIGHTMAP_TOO_SMALL` | `LightmapGI.BAKE_ERROR_ATLAS_TOO_SMALL` +LightmapGI.BAKE_ERROR_OK = 0 +LightmapGI.BAKE_ERROR_NO_SCENE_ROOT = 1 +LightmapGI.BAKE_ERROR_FOREIGN_DATA = 2 +LightmapGI.BAKE_ERROR_NO_LIGHTMAPPER = 3 +LightmapGI.BAKE_ERROR_NO_SAVE_PATH = 4 +LightmapGI.BAKE_ERROR_NO_MESHES = 5 +LightmapGI.BAKE_ERROR_MESHES_INVALID = 6 +LightmapGI.BAKE_ERROR_CANT_CREATE_IMAGE = 7 +LightmapGI.BAKE_ERROR_USER_ABORTED = 8 +LightmapGI.BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL = 9 +LightmapGI.BAKE_ERROR_LIGHTMAP_TOO_SMALL = 10 +LightmapGI.BAKE_ERROR_ATLAS_TOO_SMALL = 11 + +--- @alias LightmapGI.EnvironmentMode `LightmapGI.ENVIRONMENT_MODE_DISABLED` | `LightmapGI.ENVIRONMENT_MODE_SCENE` | `LightmapGI.ENVIRONMENT_MODE_CUSTOM_SKY` | `LightmapGI.ENVIRONMENT_MODE_CUSTOM_COLOR` +LightmapGI.ENVIRONMENT_MODE_DISABLED = 0 +LightmapGI.ENVIRONMENT_MODE_SCENE = 1 +LightmapGI.ENVIRONMENT_MODE_CUSTOM_SKY = 2 +LightmapGI.ENVIRONMENT_MODE_CUSTOM_COLOR = 3 + +--- @param data LightmapGIData +function LightmapGI:set_light_data(data) end + +--- @return LightmapGIData +function LightmapGI:get_light_data() end + +--- @param bake_quality LightmapGI.BakeQuality +function LightmapGI:set_bake_quality(bake_quality) end + +--- @return LightmapGI.BakeQuality +function LightmapGI:get_bake_quality() end + +--- @param bounces int +function LightmapGI:set_bounces(bounces) end + +--- @return int +function LightmapGI:get_bounces() end + +--- @param bounce_indirect_energy float +function LightmapGI:set_bounce_indirect_energy(bounce_indirect_energy) end + +--- @return float +function LightmapGI:get_bounce_indirect_energy() end + +--- @param subdivision LightmapGI.GenerateProbes +function LightmapGI:set_generate_probes(subdivision) end + +--- @return LightmapGI.GenerateProbes +function LightmapGI:get_generate_probes() end + +--- @param bias float +function LightmapGI:set_bias(bias) end + +--- @return float +function LightmapGI:get_bias() end + +--- @param mode LightmapGI.EnvironmentMode +function LightmapGI:set_environment_mode(mode) end + +--- @return LightmapGI.EnvironmentMode +function LightmapGI:get_environment_mode() end + +--- @param sky Sky +function LightmapGI:set_environment_custom_sky(sky) end + +--- @return Sky +function LightmapGI:get_environment_custom_sky() end + +--- @param color Color +function LightmapGI:set_environment_custom_color(color) end + +--- @return Color +function LightmapGI:get_environment_custom_color() end + +--- @param energy float +function LightmapGI:set_environment_custom_energy(energy) end + +--- @return float +function LightmapGI:get_environment_custom_energy() end + +--- @param texel_scale float +function LightmapGI:set_texel_scale(texel_scale) end + +--- @return float +function LightmapGI:get_texel_scale() end + +--- @param max_texture_size int +function LightmapGI:set_max_texture_size(max_texture_size) end + +--- @return int +function LightmapGI:get_max_texture_size() end + +--- @param enable bool +function LightmapGI:set_supersampling_enabled(enable) end + +--- @return bool +function LightmapGI:is_supersampling_enabled() end + +--- @param factor float +function LightmapGI:set_supersampling_factor(factor) end + +--- @return float +function LightmapGI:get_supersampling_factor() end + +--- @param use_denoiser bool +function LightmapGI:set_use_denoiser(use_denoiser) end + +--- @return bool +function LightmapGI:is_using_denoiser() end + +--- @param denoiser_strength float +function LightmapGI:set_denoiser_strength(denoiser_strength) end + +--- @return float +function LightmapGI:get_denoiser_strength() end + +--- @param denoiser_range int +function LightmapGI:set_denoiser_range(denoiser_range) end + +--- @return int +function LightmapGI:get_denoiser_range() end + +--- @param enable bool +function LightmapGI:set_interior(enable) end + +--- @return bool +function LightmapGI:is_interior() end + +--- @param directional bool +function LightmapGI:set_directional(directional) end + +--- @return bool +function LightmapGI:is_directional() end + +--- @param mode LightmapGIData.ShadowmaskMode +function LightmapGI:set_shadowmask_mode(mode) end + +--- @return LightmapGIData.ShadowmaskMode +function LightmapGI:get_shadowmask_mode() end + +--- @param use_texture_for_bounces bool +function LightmapGI:set_use_texture_for_bounces(use_texture_for_bounces) end + +--- @return bool +function LightmapGI:is_using_texture_for_bounces() end + +--- @param camera_attributes CameraAttributes +function LightmapGI:set_camera_attributes(camera_attributes) end + +--- @return CameraAttributes +function LightmapGI:get_camera_attributes() end + + +----------------------------------------------------------- +-- LightmapGIData +----------------------------------------------------------- + +--- @class LightmapGIData: Resource, { [string]: any } +--- @field lightmap_textures Array[TextureLayered] +--- @field shadowmask_textures Array[TextureLayered] +--- @field uses_spherical_harmonics bool +--- @field user_data Array +--- @field probe_data Dictionary +--- @field light_texture TextureLayered +--- @field light_textures Array +LightmapGIData = {} + +--- @return LightmapGIData +function LightmapGIData:new() end + +--- @alias LightmapGIData.ShadowmaskMode `LightmapGIData.SHADOWMASK_MODE_NONE` | `LightmapGIData.SHADOWMASK_MODE_REPLACE` | `LightmapGIData.SHADOWMASK_MODE_OVERLAY` +LightmapGIData.SHADOWMASK_MODE_NONE = 0 +LightmapGIData.SHADOWMASK_MODE_REPLACE = 1 +LightmapGIData.SHADOWMASK_MODE_OVERLAY = 2 + +--- @param light_textures Array[TextureLayered] +function LightmapGIData:set_lightmap_textures(light_textures) end + +--- @return Array[TextureLayered] +function LightmapGIData:get_lightmap_textures() end + +--- @param shadowmask_textures Array[TextureLayered] +function LightmapGIData:set_shadowmask_textures(shadowmask_textures) end + +--- @return Array[TextureLayered] +function LightmapGIData:get_shadowmask_textures() end + +--- @param uses_spherical_harmonics bool +function LightmapGIData:set_uses_spherical_harmonics(uses_spherical_harmonics) end + +--- @return bool +function LightmapGIData:is_using_spherical_harmonics() end + +--- @param path NodePath +--- @param uv_scale Rect2 +--- @param slice_index int +--- @param sub_instance int +function LightmapGIData:add_user(path, uv_scale, slice_index, sub_instance) end + +--- @return int +function LightmapGIData:get_user_count() end + +--- @param user_idx int +--- @return NodePath +function LightmapGIData:get_user_path(user_idx) end + +function LightmapGIData:clear_users() end + +--- @param light_texture TextureLayered +function LightmapGIData:set_light_texture(light_texture) end + +--- @return TextureLayered +function LightmapGIData:get_light_texture() end + + +----------------------------------------------------------- +-- LightmapProbe +----------------------------------------------------------- + +--- @class LightmapProbe: Node3D, { [string]: any } +LightmapProbe = {} + +--- @return LightmapProbe +function LightmapProbe:new() end + + +----------------------------------------------------------- +-- Lightmapper +----------------------------------------------------------- + +--- @class Lightmapper: RefCounted, { [string]: any } +Lightmapper = {} + + +----------------------------------------------------------- +-- LightmapperRD +----------------------------------------------------------- + +--- @class LightmapperRD: Lightmapper, { [string]: any } +LightmapperRD = {} + +--- @return LightmapperRD +function LightmapperRD:new() end + + +----------------------------------------------------------- +-- Line2D +----------------------------------------------------------- + +--- @class Line2D: Node2D, { [string]: any } +--- @field points PackedVector2Array +--- @field closed bool +--- @field width float +--- @field width_curve Curve +--- @field default_color Color +--- @field gradient Gradient +--- @field texture Texture2D +--- @field texture_mode int +--- @field joint_mode int +--- @field begin_cap_mode int +--- @field end_cap_mode int +--- @field sharp_limit float +--- @field round_precision int +--- @field antialiased bool +Line2D = {} + +--- @return Line2D +function Line2D:new() end + +--- @alias Line2D.LineJointMode `Line2D.LINE_JOINT_SHARP` | `Line2D.LINE_JOINT_BEVEL` | `Line2D.LINE_JOINT_ROUND` +Line2D.LINE_JOINT_SHARP = 0 +Line2D.LINE_JOINT_BEVEL = 1 +Line2D.LINE_JOINT_ROUND = 2 + +--- @alias Line2D.LineCapMode `Line2D.LINE_CAP_NONE` | `Line2D.LINE_CAP_BOX` | `Line2D.LINE_CAP_ROUND` +Line2D.LINE_CAP_NONE = 0 +Line2D.LINE_CAP_BOX = 1 +Line2D.LINE_CAP_ROUND = 2 + +--- @alias Line2D.LineTextureMode `Line2D.LINE_TEXTURE_NONE` | `Line2D.LINE_TEXTURE_TILE` | `Line2D.LINE_TEXTURE_STRETCH` +Line2D.LINE_TEXTURE_NONE = 0 +Line2D.LINE_TEXTURE_TILE = 1 +Line2D.LINE_TEXTURE_STRETCH = 2 + +--- @param points PackedVector2Array +function Line2D:set_points(points) end + +--- @return PackedVector2Array +function Line2D:get_points() end + +--- @param index int +--- @param position Vector2 +function Line2D:set_point_position(index, position) end + +--- @param index int +--- @return Vector2 +function Line2D:get_point_position(index) end + +--- @return int +function Line2D:get_point_count() end + +--- @param position Vector2 +--- @param index int? Default: -1 +function Line2D:add_point(position, index) end + +--- @param index int +function Line2D:remove_point(index) end + +function Line2D:clear_points() end + +--- @param closed bool +function Line2D:set_closed(closed) end + +--- @return bool +function Line2D:is_closed() end + +--- @param width float +function Line2D:set_width(width) end + +--- @return float +function Line2D:get_width() end + +--- @param curve Curve +function Line2D:set_curve(curve) end + +--- @return Curve +function Line2D:get_curve() end + +--- @param color Color +function Line2D:set_default_color(color) end + +--- @return Color +function Line2D:get_default_color() end + +--- @param color Gradient +function Line2D:set_gradient(color) end + +--- @return Gradient +function Line2D:get_gradient() end + +--- @param texture Texture2D +function Line2D:set_texture(texture) end + +--- @return Texture2D +function Line2D:get_texture() end + +--- @param mode Line2D.LineTextureMode +function Line2D:set_texture_mode(mode) end + +--- @return Line2D.LineTextureMode +function Line2D:get_texture_mode() end + +--- @param mode Line2D.LineJointMode +function Line2D:set_joint_mode(mode) end + +--- @return Line2D.LineJointMode +function Line2D:get_joint_mode() end + +--- @param mode Line2D.LineCapMode +function Line2D:set_begin_cap_mode(mode) end + +--- @return Line2D.LineCapMode +function Line2D:get_begin_cap_mode() end + +--- @param mode Line2D.LineCapMode +function Line2D:set_end_cap_mode(mode) end + +--- @return Line2D.LineCapMode +function Line2D:get_end_cap_mode() end + +--- @param limit float +function Line2D:set_sharp_limit(limit) end + +--- @return float +function Line2D:get_sharp_limit() end + +--- @param precision int +function Line2D:set_round_precision(precision) end + +--- @return int +function Line2D:get_round_precision() end + +--- @param antialiased bool +function Line2D:set_antialiased(antialiased) end + +--- @return bool +function Line2D:get_antialiased() end + + +----------------------------------------------------------- +-- LineEdit +----------------------------------------------------------- + +--- @class LineEdit: Control, { [string]: any } +--- @field text String +--- @field placeholder_text String +--- @field alignment int +--- @field max_length int +--- @field editable bool +--- @field keep_editing_on_text_submit bool +--- @field expand_to_text_length bool +--- @field context_menu_enabled bool +--- @field emoji_menu_enabled bool +--- @field backspace_deletes_composite_character_enabled bool +--- @field virtual_keyboard_enabled bool +--- @field virtual_keyboard_show_on_focus bool +--- @field virtual_keyboard_type int +--- @field clear_button_enabled bool +--- @field shortcut_keys_enabled bool +--- @field middle_mouse_paste_enabled bool +--- @field selecting_enabled bool +--- @field deselect_on_focus_loss_enabled bool +--- @field drag_and_drop_selection_enabled bool +--- @field right_icon Texture2D +--- @field flat bool +--- @field draw_control_chars bool +--- @field select_all_on_focus bool +--- @field caret_blink bool +--- @field caret_blink_interval float +--- @field caret_column int +--- @field caret_force_displayed bool +--- @field caret_mid_grapheme bool +--- @field secret bool +--- @field secret_character String +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +LineEdit = {} + +--- @return LineEdit +function LineEdit:new() end + +--- @alias LineEdit.MenuItems `LineEdit.MENU_CUT` | `LineEdit.MENU_COPY` | `LineEdit.MENU_PASTE` | `LineEdit.MENU_CLEAR` | `LineEdit.MENU_SELECT_ALL` | `LineEdit.MENU_UNDO` | `LineEdit.MENU_REDO` | `LineEdit.MENU_SUBMENU_TEXT_DIR` | `LineEdit.MENU_DIR_INHERITED` | `LineEdit.MENU_DIR_AUTO` | `LineEdit.MENU_DIR_LTR` | `LineEdit.MENU_DIR_RTL` | `LineEdit.MENU_DISPLAY_UCC` | `LineEdit.MENU_SUBMENU_INSERT_UCC` | `LineEdit.MENU_INSERT_LRM` | `LineEdit.MENU_INSERT_RLM` | `LineEdit.MENU_INSERT_LRE` | `LineEdit.MENU_INSERT_RLE` | `LineEdit.MENU_INSERT_LRO` | `LineEdit.MENU_INSERT_RLO` | `LineEdit.MENU_INSERT_PDF` | `LineEdit.MENU_INSERT_ALM` | `LineEdit.MENU_INSERT_LRI` | `LineEdit.MENU_INSERT_RLI` | `LineEdit.MENU_INSERT_FSI` | `LineEdit.MENU_INSERT_PDI` | `LineEdit.MENU_INSERT_ZWJ` | `LineEdit.MENU_INSERT_ZWNJ` | `LineEdit.MENU_INSERT_WJ` | `LineEdit.MENU_INSERT_SHY` | `LineEdit.MENU_EMOJI_AND_SYMBOL` | `LineEdit.MENU_MAX` +LineEdit.MENU_CUT = 0 +LineEdit.MENU_COPY = 1 +LineEdit.MENU_PASTE = 2 +LineEdit.MENU_CLEAR = 3 +LineEdit.MENU_SELECT_ALL = 4 +LineEdit.MENU_UNDO = 5 +LineEdit.MENU_REDO = 6 +LineEdit.MENU_SUBMENU_TEXT_DIR = 7 +LineEdit.MENU_DIR_INHERITED = 8 +LineEdit.MENU_DIR_AUTO = 9 +LineEdit.MENU_DIR_LTR = 10 +LineEdit.MENU_DIR_RTL = 11 +LineEdit.MENU_DISPLAY_UCC = 12 +LineEdit.MENU_SUBMENU_INSERT_UCC = 13 +LineEdit.MENU_INSERT_LRM = 14 +LineEdit.MENU_INSERT_RLM = 15 +LineEdit.MENU_INSERT_LRE = 16 +LineEdit.MENU_INSERT_RLE = 17 +LineEdit.MENU_INSERT_LRO = 18 +LineEdit.MENU_INSERT_RLO = 19 +LineEdit.MENU_INSERT_PDF = 20 +LineEdit.MENU_INSERT_ALM = 21 +LineEdit.MENU_INSERT_LRI = 22 +LineEdit.MENU_INSERT_RLI = 23 +LineEdit.MENU_INSERT_FSI = 24 +LineEdit.MENU_INSERT_PDI = 25 +LineEdit.MENU_INSERT_ZWJ = 26 +LineEdit.MENU_INSERT_ZWNJ = 27 +LineEdit.MENU_INSERT_WJ = 28 +LineEdit.MENU_INSERT_SHY = 29 +LineEdit.MENU_EMOJI_AND_SYMBOL = 30 +LineEdit.MENU_MAX = 31 + +--- @alias LineEdit.VirtualKeyboardType `LineEdit.KEYBOARD_TYPE_DEFAULT` | `LineEdit.KEYBOARD_TYPE_MULTILINE` | `LineEdit.KEYBOARD_TYPE_NUMBER` | `LineEdit.KEYBOARD_TYPE_NUMBER_DECIMAL` | `LineEdit.KEYBOARD_TYPE_PHONE` | `LineEdit.KEYBOARD_TYPE_EMAIL_ADDRESS` | `LineEdit.KEYBOARD_TYPE_PASSWORD` | `LineEdit.KEYBOARD_TYPE_URL` +LineEdit.KEYBOARD_TYPE_DEFAULT = 0 +LineEdit.KEYBOARD_TYPE_MULTILINE = 1 +LineEdit.KEYBOARD_TYPE_NUMBER = 2 +LineEdit.KEYBOARD_TYPE_NUMBER_DECIMAL = 3 +LineEdit.KEYBOARD_TYPE_PHONE = 4 +LineEdit.KEYBOARD_TYPE_EMAIL_ADDRESS = 5 +LineEdit.KEYBOARD_TYPE_PASSWORD = 6 +LineEdit.KEYBOARD_TYPE_URL = 7 + +LineEdit.text_changed = Signal() +LineEdit.text_change_rejected = Signal() +LineEdit.text_submitted = Signal() +LineEdit.editing_toggled = Signal() + +--- @return bool +function LineEdit:has_ime_text() end + +function LineEdit:cancel_ime() end + +function LineEdit:apply_ime() end + +--- @param alignment HorizontalAlignment +function LineEdit:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function LineEdit:get_horizontal_alignment() end + +function LineEdit:edit() end + +function LineEdit:unedit() end + +--- @return bool +function LineEdit:is_editing() end + +--- @param enable bool +function LineEdit:set_keep_editing_on_text_submit(enable) end + +--- @return bool +function LineEdit:is_editing_kept_on_text_submit() end + +function LineEdit:clear() end + +--- @param from int? Default: 0 +--- @param to int? Default: -1 +function LineEdit:select(from, to) end + +function LineEdit:select_all() end + +function LineEdit:deselect() end + +--- @return bool +function LineEdit:has_undo() end + +--- @return bool +function LineEdit:has_redo() end + +--- @return bool +function LineEdit:has_selection() end + +--- @return String +function LineEdit:get_selected_text() end + +--- @return int +function LineEdit:get_selection_from_column() end + +--- @return int +function LineEdit:get_selection_to_column() end + +--- @param text String +function LineEdit:set_text(text) end + +--- @return String +function LineEdit:get_text() end + +--- @return bool +function LineEdit:get_draw_control_chars() end + +--- @param enable bool +function LineEdit:set_draw_control_chars(enable) end + +--- @param direction Control.TextDirection +function LineEdit:set_text_direction(direction) end + +--- @return Control.TextDirection +function LineEdit:get_text_direction() end + +--- @param language String +function LineEdit:set_language(language) end + +--- @return String +function LineEdit:get_language() end + +--- @param parser TextServer.StructuredTextParser +function LineEdit:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function LineEdit:get_structured_text_bidi_override() end + +--- @param args Array +function LineEdit:set_structured_text_bidi_override_options(args) end + +--- @return Array +function LineEdit:get_structured_text_bidi_override_options() end + +--- @param text String +function LineEdit:set_placeholder(text) end + +--- @return String +function LineEdit:get_placeholder() end + +--- @param position int +function LineEdit:set_caret_column(position) end + +--- @return int +function LineEdit:get_caret_column() end + +--- @param column int +--- @return int +function LineEdit:get_next_composite_character_column(column) end + +--- @param column int +--- @return int +function LineEdit:get_previous_composite_character_column(column) end + +--- @return float +function LineEdit:get_scroll_offset() end + +--- @param enabled bool +function LineEdit:set_expand_to_text_length_enabled(enabled) end + +--- @return bool +function LineEdit:is_expand_to_text_length_enabled() end + +--- @param enabled bool +function LineEdit:set_caret_blink_enabled(enabled) end + +--- @return bool +function LineEdit:is_caret_blink_enabled() end + +--- @param enabled bool +function LineEdit:set_caret_mid_grapheme_enabled(enabled) end + +--- @return bool +function LineEdit:is_caret_mid_grapheme_enabled() end + +--- @param enabled bool +function LineEdit:set_caret_force_displayed(enabled) end + +--- @return bool +function LineEdit:is_caret_force_displayed() end + +--- @param interval float +function LineEdit:set_caret_blink_interval(interval) end + +--- @return float +function LineEdit:get_caret_blink_interval() end + +--- @param chars int +function LineEdit:set_max_length(chars) end + +--- @return int +function LineEdit:get_max_length() end + +--- @param text String +function LineEdit:insert_text_at_caret(text) end + +function LineEdit:delete_char_at_caret() end + +--- @param from_column int +--- @param to_column int +function LineEdit:delete_text(from_column, to_column) end + +--- @param enabled bool +function LineEdit:set_editable(enabled) end + +--- @return bool +function LineEdit:is_editable() end + +--- @param enabled bool +function LineEdit:set_secret(enabled) end + +--- @return bool +function LineEdit:is_secret() end + +--- @param character String +function LineEdit:set_secret_character(character) end + +--- @return String +function LineEdit:get_secret_character() end + +--- @param option int +function LineEdit:menu_option(option) end + +--- @return PopupMenu +function LineEdit:get_menu() end + +--- @return bool +function LineEdit:is_menu_visible() end + +--- @param enable bool +function LineEdit:set_context_menu_enabled(enable) end + +--- @return bool +function LineEdit:is_context_menu_enabled() end + +--- @param enable bool +function LineEdit:set_emoji_menu_enabled(enable) end + +--- @return bool +function LineEdit:is_emoji_menu_enabled() end + +--- @param enable bool +function LineEdit:set_backspace_deletes_composite_character_enabled(enable) end + +--- @return bool +function LineEdit:is_backspace_deletes_composite_character_enabled() end + +--- @param enable bool +function LineEdit:set_virtual_keyboard_enabled(enable) end + +--- @return bool +function LineEdit:is_virtual_keyboard_enabled() end + +--- @param show_on_focus bool +function LineEdit:set_virtual_keyboard_show_on_focus(show_on_focus) end + +--- @return bool +function LineEdit:get_virtual_keyboard_show_on_focus() end + +--- @param type LineEdit.VirtualKeyboardType +function LineEdit:set_virtual_keyboard_type(type) end + +--- @return LineEdit.VirtualKeyboardType +function LineEdit:get_virtual_keyboard_type() end + +--- @param enable bool +function LineEdit:set_clear_button_enabled(enable) end + +--- @return bool +function LineEdit:is_clear_button_enabled() end + +--- @param enable bool +function LineEdit:set_shortcut_keys_enabled(enable) end + +--- @return bool +function LineEdit:is_shortcut_keys_enabled() end + +--- @param enable bool +function LineEdit:set_middle_mouse_paste_enabled(enable) end + +--- @return bool +function LineEdit:is_middle_mouse_paste_enabled() end + +--- @param enable bool +function LineEdit:set_selecting_enabled(enable) end + +--- @return bool +function LineEdit:is_selecting_enabled() end + +--- @param enable bool +function LineEdit:set_deselect_on_focus_loss_enabled(enable) end + +--- @return bool +function LineEdit:is_deselect_on_focus_loss_enabled() end + +--- @param enable bool +function LineEdit:set_drag_and_drop_selection_enabled(enable) end + +--- @return bool +function LineEdit:is_drag_and_drop_selection_enabled() end + +--- @param icon Texture2D +function LineEdit:set_right_icon(icon) end + +--- @return Texture2D +function LineEdit:get_right_icon() end + +--- @param enabled bool +function LineEdit:set_flat(enabled) end + +--- @return bool +function LineEdit:is_flat() end + +--- @param enabled bool +function LineEdit:set_select_all_on_focus(enabled) end + +--- @return bool +function LineEdit:is_select_all_on_focus() end + + +----------------------------------------------------------- +-- LinkButton +----------------------------------------------------------- + +--- @class LinkButton: BaseButton, { [string]: any } +--- @field text String +--- @field underline int +--- @field uri String +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +LinkButton = {} + +--- @return LinkButton +function LinkButton:new() end + +--- @alias LinkButton.UnderlineMode `LinkButton.UNDERLINE_MODE_ALWAYS` | `LinkButton.UNDERLINE_MODE_ON_HOVER` | `LinkButton.UNDERLINE_MODE_NEVER` +LinkButton.UNDERLINE_MODE_ALWAYS = 0 +LinkButton.UNDERLINE_MODE_ON_HOVER = 1 +LinkButton.UNDERLINE_MODE_NEVER = 2 + +--- @param text String +function LinkButton:set_text(text) end + +--- @return String +function LinkButton:get_text() end + +--- @param direction Control.TextDirection +function LinkButton:set_text_direction(direction) end + +--- @return Control.TextDirection +function LinkButton:get_text_direction() end + +--- @param language String +function LinkButton:set_language(language) end + +--- @return String +function LinkButton:get_language() end + +--- @param uri String +function LinkButton:set_uri(uri) end + +--- @return String +function LinkButton:get_uri() end + +--- @param underline_mode LinkButton.UnderlineMode +function LinkButton:set_underline_mode(underline_mode) end + +--- @return LinkButton.UnderlineMode +function LinkButton:get_underline_mode() end + +--- @param parser TextServer.StructuredTextParser +function LinkButton:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function LinkButton:get_structured_text_bidi_override() end + +--- @param args Array +function LinkButton:set_structured_text_bidi_override_options(args) end + +--- @return Array +function LinkButton:get_structured_text_bidi_override_options() end + + +----------------------------------------------------------- +-- Logger +----------------------------------------------------------- + +--- @class Logger: RefCounted, { [string]: any } +Logger = {} + +--- @return Logger +function Logger:new() end + +--- @alias Logger.ErrorType `Logger.ERROR_TYPE_ERROR` | `Logger.ERROR_TYPE_WARNING` | `Logger.ERROR_TYPE_SCRIPT` | `Logger.ERROR_TYPE_SHADER` +Logger.ERROR_TYPE_ERROR = 0 +Logger.ERROR_TYPE_WARNING = 1 +Logger.ERROR_TYPE_SCRIPT = 2 +Logger.ERROR_TYPE_SHADER = 3 + +--- @param _function String +--- @param file String +--- @param line int +--- @param code String +--- @param rationale String +--- @param editor_notify bool +--- @param error_type int +--- @param script_backtraces Array[ScriptBacktrace] +function Logger:_log_error(_function, file, line, code, rationale, editor_notify, error_type, script_backtraces) end + +--- @param message String +--- @param error bool +function Logger:_log_message(message, error) end + + +----------------------------------------------------------- +-- LookAtModifier3D +----------------------------------------------------------- + +--- @class LookAtModifier3D: SkeletonModifier3D, { [string]: any } +--- @field target_node NodePath +--- @field bone_name String +--- @field bone int +--- @field forward_axis int +--- @field primary_rotation_axis int +--- @field use_secondary_rotation bool +--- @field origin_from int +--- @field origin_bone_name String +--- @field origin_bone int +--- @field origin_external_node NodePath +--- @field origin_offset Vector3 +--- @field origin_safe_margin float +--- @field duration float +--- @field transition_type int +--- @field ease_type int +--- @field use_angle_limitation bool +--- @field symmetry_limitation bool +--- @field primary_limit_angle float +--- @field primary_damp_threshold float +--- @field primary_positive_limit_angle float +--- @field primary_positive_damp_threshold float +--- @field primary_negative_limit_angle float +--- @field primary_negative_damp_threshold float +--- @field secondary_limit_angle float +--- @field secondary_damp_threshold float +--- @field secondary_positive_limit_angle float +--- @field secondary_positive_damp_threshold float +--- @field secondary_negative_limit_angle float +--- @field secondary_negative_damp_threshold float +LookAtModifier3D = {} + +--- @return LookAtModifier3D +function LookAtModifier3D:new() end + +--- @alias LookAtModifier3D.OriginFrom `LookAtModifier3D.ORIGIN_FROM_SELF` | `LookAtModifier3D.ORIGIN_FROM_SPECIFIC_BONE` | `LookAtModifier3D.ORIGIN_FROM_EXTERNAL_NODE` +LookAtModifier3D.ORIGIN_FROM_SELF = 0 +LookAtModifier3D.ORIGIN_FROM_SPECIFIC_BONE = 1 +LookAtModifier3D.ORIGIN_FROM_EXTERNAL_NODE = 2 + +--- @param target_node NodePath +function LookAtModifier3D:set_target_node(target_node) end + +--- @return NodePath +function LookAtModifier3D:get_target_node() end + +--- @param bone_name String +function LookAtModifier3D:set_bone_name(bone_name) end + +--- @return String +function LookAtModifier3D:get_bone_name() end + +--- @param bone int +function LookAtModifier3D:set_bone(bone) end + +--- @return int +function LookAtModifier3D:get_bone() end + +--- @param forward_axis SkeletonModifier3D.BoneAxis +function LookAtModifier3D:set_forward_axis(forward_axis) end + +--- @return SkeletonModifier3D.BoneAxis +function LookAtModifier3D:get_forward_axis() end + +--- @param axis Vector3.Axis +function LookAtModifier3D:set_primary_rotation_axis(axis) end + +--- @return Vector3.Axis +function LookAtModifier3D:get_primary_rotation_axis() end + +--- @param enabled bool +function LookAtModifier3D:set_use_secondary_rotation(enabled) end + +--- @return bool +function LookAtModifier3D:is_using_secondary_rotation() end + +--- @param margin float +function LookAtModifier3D:set_origin_safe_margin(margin) end + +--- @return float +function LookAtModifier3D:get_origin_safe_margin() end + +--- @param origin_from LookAtModifier3D.OriginFrom +function LookAtModifier3D:set_origin_from(origin_from) end + +--- @return LookAtModifier3D.OriginFrom +function LookAtModifier3D:get_origin_from() end + +--- @param bone_name String +function LookAtModifier3D:set_origin_bone_name(bone_name) end + +--- @return String +function LookAtModifier3D:get_origin_bone_name() end + +--- @param bone int +function LookAtModifier3D:set_origin_bone(bone) end + +--- @return int +function LookAtModifier3D:get_origin_bone() end + +--- @param external_node NodePath +function LookAtModifier3D:set_origin_external_node(external_node) end + +--- @return NodePath +function LookAtModifier3D:get_origin_external_node() end + +--- @param offset Vector3 +function LookAtModifier3D:set_origin_offset(offset) end + +--- @return Vector3 +function LookAtModifier3D:get_origin_offset() end + +--- @param duration float +function LookAtModifier3D:set_duration(duration) end + +--- @return float +function LookAtModifier3D:get_duration() end + +--- @param transition_type Tween.TransitionType +function LookAtModifier3D:set_transition_type(transition_type) end + +--- @return Tween.TransitionType +function LookAtModifier3D:get_transition_type() end + +--- @param ease_type Tween.EaseType +function LookAtModifier3D:set_ease_type(ease_type) end + +--- @return Tween.EaseType +function LookAtModifier3D:get_ease_type() end + +--- @param enabled bool +function LookAtModifier3D:set_use_angle_limitation(enabled) end + +--- @return bool +function LookAtModifier3D:is_using_angle_limitation() end + +--- @param enabled bool +function LookAtModifier3D:set_symmetry_limitation(enabled) end + +--- @return bool +function LookAtModifier3D:is_limitation_symmetry() end + +--- @param angle float +function LookAtModifier3D:set_primary_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_primary_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_primary_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_primary_damp_threshold() end + +--- @param angle float +function LookAtModifier3D:set_primary_positive_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_primary_positive_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_primary_positive_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_primary_positive_damp_threshold() end + +--- @param angle float +function LookAtModifier3D:set_primary_negative_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_primary_negative_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_primary_negative_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_primary_negative_damp_threshold() end + +--- @param angle float +function LookAtModifier3D:set_secondary_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_secondary_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_secondary_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_secondary_damp_threshold() end + +--- @param angle float +function LookAtModifier3D:set_secondary_positive_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_secondary_positive_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_secondary_positive_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_secondary_positive_damp_threshold() end + +--- @param angle float +function LookAtModifier3D:set_secondary_negative_limit_angle(angle) end + +--- @return float +function LookAtModifier3D:get_secondary_negative_limit_angle() end + +--- @param power float +function LookAtModifier3D:set_secondary_negative_damp_threshold(power) end + +--- @return float +function LookAtModifier3D:get_secondary_negative_damp_threshold() end + +--- @return float +function LookAtModifier3D:get_interpolation_remaining() end + +--- @return bool +function LookAtModifier3D:is_interpolating() end + +--- @return bool +function LookAtModifier3D:is_target_within_limitation() end + + +----------------------------------------------------------- +-- MainLoop +----------------------------------------------------------- + +--- @class MainLoop: Object, { [string]: any } +MainLoop = {} + +--- @return MainLoop +function MainLoop:new() end + +MainLoop.NOTIFICATION_OS_MEMORY_WARNING = 2009 +MainLoop.NOTIFICATION_TRANSLATION_CHANGED = 2010 +MainLoop.NOTIFICATION_WM_ABOUT = 2011 +MainLoop.NOTIFICATION_CRASH = 2012 +MainLoop.NOTIFICATION_OS_IME_UPDATE = 2013 +MainLoop.NOTIFICATION_APPLICATION_RESUMED = 2014 +MainLoop.NOTIFICATION_APPLICATION_PAUSED = 2015 +MainLoop.NOTIFICATION_APPLICATION_FOCUS_IN = 2016 +MainLoop.NOTIFICATION_APPLICATION_FOCUS_OUT = 2017 +MainLoop.NOTIFICATION_TEXT_SERVER_CHANGED = 2018 + +MainLoop.on_request_permissions_result = Signal() + +function MainLoop:_initialize() end + +--- @param delta float +--- @return bool +function MainLoop:_physics_process(delta) end + +--- @param delta float +--- @return bool +function MainLoop:_process(delta) end + +function MainLoop:_finalize() end + + +----------------------------------------------------------- +-- MarginContainer +----------------------------------------------------------- + +--- @class MarginContainer: Container, { [string]: any } +MarginContainer = {} + +--- @return MarginContainer +function MarginContainer:new() end + + +----------------------------------------------------------- +-- Marker2D +----------------------------------------------------------- + +--- @class Marker2D: Node2D, { [string]: any } +--- @field gizmo_extents float +Marker2D = {} + +--- @return Marker2D +function Marker2D:new() end + +--- @param extents float +function Marker2D:set_gizmo_extents(extents) end + +--- @return float +function Marker2D:get_gizmo_extents() end + + +----------------------------------------------------------- +-- Marker3D +----------------------------------------------------------- + +--- @class Marker3D: Node3D, { [string]: any } +--- @field gizmo_extents float +Marker3D = {} + +--- @return Marker3D +function Marker3D:new() end + +--- @param extents float +function Marker3D:set_gizmo_extents(extents) end + +--- @return float +function Marker3D:get_gizmo_extents() end + + +----------------------------------------------------------- +-- Marshalls +----------------------------------------------------------- + +--- @class Marshalls: Object, { [string]: any } +Marshalls = {} + +--- @param variant any +--- @param full_objects bool? Default: false +--- @return String +function Marshalls:variant_to_base64(variant, full_objects) end + +--- @param base64_str String +--- @param allow_objects bool? Default: false +--- @return any +function Marshalls:base64_to_variant(base64_str, allow_objects) end + +--- @param array PackedByteArray +--- @return String +function Marshalls:raw_to_base64(array) end + +--- @param base64_str String +--- @return PackedByteArray +function Marshalls:base64_to_raw(base64_str) end + +--- @param utf8_str String +--- @return String +function Marshalls:utf8_to_base64(utf8_str) end + +--- @param base64_str String +--- @return String +function Marshalls:base64_to_utf8(base64_str) end + + +----------------------------------------------------------- +-- Material +----------------------------------------------------------- + +--- @class Material: Resource, { [string]: any } +--- @field render_priority int +--- @field next_pass Material +Material = {} + +--- @return Material +function Material:new() end + +Material.RENDER_PRIORITY_MAX = 127 +Material.RENDER_PRIORITY_MIN = -128 + +--- @return RID +function Material:_get_shader_rid() end + +--- @return Shader.Mode +function Material:_get_shader_mode() end + +--- @return bool +function Material:_can_do_next_pass() end + +--- @return bool +function Material:_can_use_render_priority() end + +--- @param next_pass Material +function Material:set_next_pass(next_pass) end + +--- @return Material +function Material:get_next_pass() end + +--- @param priority int +function Material:set_render_priority(priority) end + +--- @return int +function Material:get_render_priority() end + +function Material:inspect_native_shader_code() end + +--- @return Resource +function Material:create_placeholder() end + + +----------------------------------------------------------- +-- MenuBar +----------------------------------------------------------- + +--- @class MenuBar: Control, { [string]: any } +--- @field flat bool +--- @field start_index int +--- @field switch_on_hover bool +--- @field prefer_global_menu bool +--- @field text_direction int +--- @field language String +MenuBar = {} + +--- @return MenuBar +function MenuBar:new() end + +--- @param enable bool +function MenuBar:set_switch_on_hover(enable) end + +--- @return bool +function MenuBar:is_switch_on_hover() end + +--- @param disabled bool +function MenuBar:set_disable_shortcuts(disabled) end + +--- @param enabled bool +function MenuBar:set_prefer_global_menu(enabled) end + +--- @return bool +function MenuBar:is_prefer_global_menu() end + +--- @return bool +function MenuBar:is_native_menu() end + +--- @return int +function MenuBar:get_menu_count() end + +--- @param direction Control.TextDirection +function MenuBar:set_text_direction(direction) end + +--- @return Control.TextDirection +function MenuBar:get_text_direction() end + +--- @param language String +function MenuBar:set_language(language) end + +--- @return String +function MenuBar:get_language() end + +--- @param enabled bool +function MenuBar:set_flat(enabled) end + +--- @return bool +function MenuBar:is_flat() end + +--- @param enabled int +function MenuBar:set_start_index(enabled) end + +--- @return int +function MenuBar:get_start_index() end + +--- @param menu int +--- @param title String +function MenuBar:set_menu_title(menu, title) end + +--- @param menu int +--- @return String +function MenuBar:get_menu_title(menu) end + +--- @param menu int +--- @param tooltip String +function MenuBar:set_menu_tooltip(menu, tooltip) end + +--- @param menu int +--- @return String +function MenuBar:get_menu_tooltip(menu) end + +--- @param menu int +--- @param disabled bool +function MenuBar:set_menu_disabled(menu, disabled) end + +--- @param menu int +--- @return bool +function MenuBar:is_menu_disabled(menu) end + +--- @param menu int +--- @param hidden bool +function MenuBar:set_menu_hidden(menu, hidden) end + +--- @param menu int +--- @return bool +function MenuBar:is_menu_hidden(menu) end + +--- @param menu int +--- @return PopupMenu +function MenuBar:get_menu_popup(menu) end + + +----------------------------------------------------------- +-- MenuButton +----------------------------------------------------------- + +--- @class MenuButton: Button, { [string]: any } +--- @field switch_on_hover bool +--- @field item_count int +MenuButton = {} + +--- @return MenuButton +function MenuButton:new() end + +MenuButton.about_to_popup = Signal() + +--- @return PopupMenu +function MenuButton:get_popup() end + +function MenuButton:show_popup() end + +--- @param enable bool +function MenuButton:set_switch_on_hover(enable) end + +--- @return bool +function MenuButton:is_switch_on_hover() end + +--- @param disabled bool +function MenuButton:set_disable_shortcuts(disabled) end + +--- @param count int +function MenuButton:set_item_count(count) end + +--- @return int +function MenuButton:get_item_count() end + + +----------------------------------------------------------- +-- Mesh +----------------------------------------------------------- + +--- @class Mesh: Resource, { [string]: any } +--- @field lightmap_size_hint Vector2i +Mesh = {} + +--- @return Mesh +function Mesh:new() end + +--- @alias Mesh.PrimitiveType `Mesh.PRIMITIVE_POINTS` | `Mesh.PRIMITIVE_LINES` | `Mesh.PRIMITIVE_LINE_STRIP` | `Mesh.PRIMITIVE_TRIANGLES` | `Mesh.PRIMITIVE_TRIANGLE_STRIP` +Mesh.PRIMITIVE_POINTS = 0 +Mesh.PRIMITIVE_LINES = 1 +Mesh.PRIMITIVE_LINE_STRIP = 2 +Mesh.PRIMITIVE_TRIANGLES = 3 +Mesh.PRIMITIVE_TRIANGLE_STRIP = 4 + +--- @alias Mesh.ArrayType `Mesh.ARRAY_VERTEX` | `Mesh.ARRAY_NORMAL` | `Mesh.ARRAY_TANGENT` | `Mesh.ARRAY_COLOR` | `Mesh.ARRAY_TEX_UV` | `Mesh.ARRAY_TEX_UV2` | `Mesh.ARRAY_CUSTOM0` | `Mesh.ARRAY_CUSTOM1` | `Mesh.ARRAY_CUSTOM2` | `Mesh.ARRAY_CUSTOM3` | `Mesh.ARRAY_BONES` | `Mesh.ARRAY_WEIGHTS` | `Mesh.ARRAY_INDEX` | `Mesh.ARRAY_MAX` +Mesh.ARRAY_VERTEX = 0 +Mesh.ARRAY_NORMAL = 1 +Mesh.ARRAY_TANGENT = 2 +Mesh.ARRAY_COLOR = 3 +Mesh.ARRAY_TEX_UV = 4 +Mesh.ARRAY_TEX_UV2 = 5 +Mesh.ARRAY_CUSTOM0 = 6 +Mesh.ARRAY_CUSTOM1 = 7 +Mesh.ARRAY_CUSTOM2 = 8 +Mesh.ARRAY_CUSTOM3 = 9 +Mesh.ARRAY_BONES = 10 +Mesh.ARRAY_WEIGHTS = 11 +Mesh.ARRAY_INDEX = 12 +Mesh.ARRAY_MAX = 13 + +--- @alias Mesh.ArrayCustomFormat `Mesh.ARRAY_CUSTOM_RGBA8_UNORM` | `Mesh.ARRAY_CUSTOM_RGBA8_SNORM` | `Mesh.ARRAY_CUSTOM_RG_HALF` | `Mesh.ARRAY_CUSTOM_RGBA_HALF` | `Mesh.ARRAY_CUSTOM_R_FLOAT` | `Mesh.ARRAY_CUSTOM_RG_FLOAT` | `Mesh.ARRAY_CUSTOM_RGB_FLOAT` | `Mesh.ARRAY_CUSTOM_RGBA_FLOAT` | `Mesh.ARRAY_CUSTOM_MAX` +Mesh.ARRAY_CUSTOM_RGBA8_UNORM = 0 +Mesh.ARRAY_CUSTOM_RGBA8_SNORM = 1 +Mesh.ARRAY_CUSTOM_RG_HALF = 2 +Mesh.ARRAY_CUSTOM_RGBA_HALF = 3 +Mesh.ARRAY_CUSTOM_R_FLOAT = 4 +Mesh.ARRAY_CUSTOM_RG_FLOAT = 5 +Mesh.ARRAY_CUSTOM_RGB_FLOAT = 6 +Mesh.ARRAY_CUSTOM_RGBA_FLOAT = 7 +Mesh.ARRAY_CUSTOM_MAX = 8 + +--- @alias Mesh.ArrayFormat `Mesh.ARRAY_FORMAT_VERTEX` | `Mesh.ARRAY_FORMAT_NORMAL` | `Mesh.ARRAY_FORMAT_TANGENT` | `Mesh.ARRAY_FORMAT_COLOR` | `Mesh.ARRAY_FORMAT_TEX_UV` | `Mesh.ARRAY_FORMAT_TEX_UV2` | `Mesh.ARRAY_FORMAT_CUSTOM0` | `Mesh.ARRAY_FORMAT_CUSTOM1` | `Mesh.ARRAY_FORMAT_CUSTOM2` | `Mesh.ARRAY_FORMAT_CUSTOM3` | `Mesh.ARRAY_FORMAT_BONES` | `Mesh.ARRAY_FORMAT_WEIGHTS` | `Mesh.ARRAY_FORMAT_INDEX` | `Mesh.ARRAY_FORMAT_BLEND_SHAPE_MASK` | `Mesh.ARRAY_FORMAT_CUSTOM_BASE` | `Mesh.ARRAY_FORMAT_CUSTOM_BITS` | `Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT` | `Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT` | `Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT` | `Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT` | `Mesh.ARRAY_FORMAT_CUSTOM_MASK` | `Mesh.ARRAY_COMPRESS_FLAGS_BASE` | `Mesh.ARRAY_FLAG_USE_2D_VERTICES` | `Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE` | `Mesh.ARRAY_FLAG_USE_8_BONE_WEIGHTS` | `Mesh.ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY` | `Mesh.ARRAY_FLAG_COMPRESS_ATTRIBUTES` +Mesh.ARRAY_FORMAT_VERTEX = 1 +Mesh.ARRAY_FORMAT_NORMAL = 2 +Mesh.ARRAY_FORMAT_TANGENT = 4 +Mesh.ARRAY_FORMAT_COLOR = 8 +Mesh.ARRAY_FORMAT_TEX_UV = 16 +Mesh.ARRAY_FORMAT_TEX_UV2 = 32 +Mesh.ARRAY_FORMAT_CUSTOM0 = 64 +Mesh.ARRAY_FORMAT_CUSTOM1 = 128 +Mesh.ARRAY_FORMAT_CUSTOM2 = 256 +Mesh.ARRAY_FORMAT_CUSTOM3 = 512 +Mesh.ARRAY_FORMAT_BONES = 1024 +Mesh.ARRAY_FORMAT_WEIGHTS = 2048 +Mesh.ARRAY_FORMAT_INDEX = 4096 +Mesh.ARRAY_FORMAT_BLEND_SHAPE_MASK = 7 +Mesh.ARRAY_FORMAT_CUSTOM_BASE = 13 +Mesh.ARRAY_FORMAT_CUSTOM_BITS = 3 +Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT = 13 +Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT = 16 +Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT = 19 +Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT = 22 +Mesh.ARRAY_FORMAT_CUSTOM_MASK = 7 +Mesh.ARRAY_COMPRESS_FLAGS_BASE = 25 +Mesh.ARRAY_FLAG_USE_2D_VERTICES = 33554432 +Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864 +Mesh.ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728 +Mesh.ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456 +Mesh.ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912 + +--- @alias Mesh.BlendShapeMode `Mesh.BLEND_SHAPE_MODE_NORMALIZED` | `Mesh.BLEND_SHAPE_MODE_RELATIVE` +Mesh.BLEND_SHAPE_MODE_NORMALIZED = 0 +Mesh.BLEND_SHAPE_MODE_RELATIVE = 1 + +--- @return int +function Mesh:_get_surface_count() end + +--- @param index int +--- @return int +function Mesh:_surface_get_array_len(index) end + +--- @param index int +--- @return int +function Mesh:_surface_get_array_index_len(index) end + +--- @param index int +--- @return Array +function Mesh:_surface_get_arrays(index) end + +--- @param index int +--- @return Array[Array] +function Mesh:_surface_get_blend_shape_arrays(index) end + +--- @param index int +--- @return Dictionary +function Mesh:_surface_get_lods(index) end + +--- @param index int +--- @return int +function Mesh:_surface_get_format(index) end + +--- @param index int +--- @return int +function Mesh:_surface_get_primitive_type(index) end + +--- @param index int +--- @param material Material +function Mesh:_surface_set_material(index, material) end + +--- @param index int +--- @return Material +function Mesh:_surface_get_material(index) end + +--- @return int +function Mesh:_get_blend_shape_count() end + +--- @param index int +--- @return StringName +function Mesh:_get_blend_shape_name(index) end + +--- @param index int +--- @param name StringName +function Mesh:_set_blend_shape_name(index, name) end + +--- @return AABB +function Mesh:_get_aabb() end + +--- @param size Vector2i +function Mesh:set_lightmap_size_hint(size) end + +--- @return Vector2i +function Mesh:get_lightmap_size_hint() end + +--- @return AABB +function Mesh:get_aabb() end + +--- @return PackedVector3Array +function Mesh:get_faces() end + +--- @return int +function Mesh:get_surface_count() end + +--- @param surf_idx int +--- @return Array +function Mesh:surface_get_arrays(surf_idx) end + +--- @param surf_idx int +--- @return Array[Array] +function Mesh:surface_get_blend_shape_arrays(surf_idx) end + +--- @param surf_idx int +--- @param material Material +function Mesh:surface_set_material(surf_idx, material) end + +--- @param surf_idx int +--- @return Material +function Mesh:surface_get_material(surf_idx) end + +--- @return Resource +function Mesh:create_placeholder() end + +--- @return ConcavePolygonShape3D +function Mesh:create_trimesh_shape() end + +--- @param clean bool? Default: true +--- @param simplify bool? Default: false +--- @return ConvexPolygonShape3D +function Mesh:create_convex_shape(clean, simplify) end + +--- @param margin float +--- @return Mesh +function Mesh:create_outline(margin) end + +--- @return TriangleMesh +function Mesh:generate_triangle_mesh() end + + +----------------------------------------------------------- +-- MeshConvexDecompositionSettings +----------------------------------------------------------- + +--- @class MeshConvexDecompositionSettings: RefCounted, { [string]: any } +--- @field max_concavity float +--- @field symmetry_planes_clipping_bias float +--- @field revolution_axes_clipping_bias float +--- @field min_volume_per_convex_hull float +--- @field resolution int +--- @field max_num_vertices_per_convex_hull int +--- @field plane_downsampling int +--- @field convex_hull_downsampling int +--- @field normalize_mesh bool +--- @field mode int +--- @field convex_hull_approximation bool +--- @field max_convex_hulls int +--- @field project_hull_vertices bool +MeshConvexDecompositionSettings = {} + +--- @return MeshConvexDecompositionSettings +function MeshConvexDecompositionSettings:new() end + +--- @alias MeshConvexDecompositionSettings.Mode `MeshConvexDecompositionSettings.CONVEX_DECOMPOSITION_MODE_VOXEL` | `MeshConvexDecompositionSettings.CONVEX_DECOMPOSITION_MODE_TETRAHEDRON` +MeshConvexDecompositionSettings.CONVEX_DECOMPOSITION_MODE_VOXEL = 0 +MeshConvexDecompositionSettings.CONVEX_DECOMPOSITION_MODE_TETRAHEDRON = 1 + +--- @param max_concavity float +function MeshConvexDecompositionSettings:set_max_concavity(max_concavity) end + +--- @return float +function MeshConvexDecompositionSettings:get_max_concavity() end + +--- @param symmetry_planes_clipping_bias float +function MeshConvexDecompositionSettings:set_symmetry_planes_clipping_bias(symmetry_planes_clipping_bias) end + +--- @return float +function MeshConvexDecompositionSettings:get_symmetry_planes_clipping_bias() end + +--- @param revolution_axes_clipping_bias float +function MeshConvexDecompositionSettings:set_revolution_axes_clipping_bias(revolution_axes_clipping_bias) end + +--- @return float +function MeshConvexDecompositionSettings:get_revolution_axes_clipping_bias() end + +--- @param min_volume_per_convex_hull float +function MeshConvexDecompositionSettings:set_min_volume_per_convex_hull(min_volume_per_convex_hull) end + +--- @return float +function MeshConvexDecompositionSettings:get_min_volume_per_convex_hull() end + +--- @param min_volume_per_convex_hull int +function MeshConvexDecompositionSettings:set_resolution(min_volume_per_convex_hull) end + +--- @return int +function MeshConvexDecompositionSettings:get_resolution() end + +--- @param max_num_vertices_per_convex_hull int +function MeshConvexDecompositionSettings:set_max_num_vertices_per_convex_hull(max_num_vertices_per_convex_hull) end + +--- @return int +function MeshConvexDecompositionSettings:get_max_num_vertices_per_convex_hull() end + +--- @param plane_downsampling int +function MeshConvexDecompositionSettings:set_plane_downsampling(plane_downsampling) end + +--- @return int +function MeshConvexDecompositionSettings:get_plane_downsampling() end + +--- @param convex_hull_downsampling int +function MeshConvexDecompositionSettings:set_convex_hull_downsampling(convex_hull_downsampling) end + +--- @return int +function MeshConvexDecompositionSettings:get_convex_hull_downsampling() end + +--- @param normalize_mesh bool +function MeshConvexDecompositionSettings:set_normalize_mesh(normalize_mesh) end + +--- @return bool +function MeshConvexDecompositionSettings:get_normalize_mesh() end + +--- @param mode MeshConvexDecompositionSettings.Mode +function MeshConvexDecompositionSettings:set_mode(mode) end + +--- @return MeshConvexDecompositionSettings.Mode +function MeshConvexDecompositionSettings:get_mode() end + +--- @param convex_hull_approximation bool +function MeshConvexDecompositionSettings:set_convex_hull_approximation(convex_hull_approximation) end + +--- @return bool +function MeshConvexDecompositionSettings:get_convex_hull_approximation() end + +--- @param max_convex_hulls int +function MeshConvexDecompositionSettings:set_max_convex_hulls(max_convex_hulls) end + +--- @return int +function MeshConvexDecompositionSettings:get_max_convex_hulls() end + +--- @param project_hull_vertices bool +function MeshConvexDecompositionSettings:set_project_hull_vertices(project_hull_vertices) end + +--- @return bool +function MeshConvexDecompositionSettings:get_project_hull_vertices() end + + +----------------------------------------------------------- +-- MeshDataTool +----------------------------------------------------------- + +--- @class MeshDataTool: RefCounted, { [string]: any } +MeshDataTool = {} + +--- @return MeshDataTool +function MeshDataTool:new() end + +function MeshDataTool:clear() end + +--- @param mesh ArrayMesh +--- @param surface int +--- @return Error +function MeshDataTool:create_from_surface(mesh, surface) end + +--- @param mesh ArrayMesh +--- @param compression_flags int? Default: 0 +--- @return Error +function MeshDataTool:commit_to_surface(mesh, compression_flags) end + +--- @return int +function MeshDataTool:get_format() end + +--- @return int +function MeshDataTool:get_vertex_count() end + +--- @return int +function MeshDataTool:get_edge_count() end + +--- @return int +function MeshDataTool:get_face_count() end + +--- @param idx int +--- @param vertex Vector3 +function MeshDataTool:set_vertex(idx, vertex) end + +--- @param idx int +--- @return Vector3 +function MeshDataTool:get_vertex(idx) end + +--- @param idx int +--- @param normal Vector3 +function MeshDataTool:set_vertex_normal(idx, normal) end + +--- @param idx int +--- @return Vector3 +function MeshDataTool:get_vertex_normal(idx) end + +--- @param idx int +--- @param tangent Plane +function MeshDataTool:set_vertex_tangent(idx, tangent) end + +--- @param idx int +--- @return Plane +function MeshDataTool:get_vertex_tangent(idx) end + +--- @param idx int +--- @param uv Vector2 +function MeshDataTool:set_vertex_uv(idx, uv) end + +--- @param idx int +--- @return Vector2 +function MeshDataTool:get_vertex_uv(idx) end + +--- @param idx int +--- @param uv2 Vector2 +function MeshDataTool:set_vertex_uv2(idx, uv2) end + +--- @param idx int +--- @return Vector2 +function MeshDataTool:get_vertex_uv2(idx) end + +--- @param idx int +--- @param color Color +function MeshDataTool:set_vertex_color(idx, color) end + +--- @param idx int +--- @return Color +function MeshDataTool:get_vertex_color(idx) end + +--- @param idx int +--- @param bones PackedInt32Array +function MeshDataTool:set_vertex_bones(idx, bones) end + +--- @param idx int +--- @return PackedInt32Array +function MeshDataTool:get_vertex_bones(idx) end + +--- @param idx int +--- @param weights PackedFloat32Array +function MeshDataTool:set_vertex_weights(idx, weights) end + +--- @param idx int +--- @return PackedFloat32Array +function MeshDataTool:get_vertex_weights(idx) end + +--- @param idx int +--- @param meta any +function MeshDataTool:set_vertex_meta(idx, meta) end + +--- @param idx int +--- @return any +function MeshDataTool:get_vertex_meta(idx) end + +--- @param idx int +--- @return PackedInt32Array +function MeshDataTool:get_vertex_edges(idx) end + +--- @param idx int +--- @return PackedInt32Array +function MeshDataTool:get_vertex_faces(idx) end + +--- @param idx int +--- @param vertex int +--- @return int +function MeshDataTool:get_edge_vertex(idx, vertex) end + +--- @param idx int +--- @return PackedInt32Array +function MeshDataTool:get_edge_faces(idx) end + +--- @param idx int +--- @param meta any +function MeshDataTool:set_edge_meta(idx, meta) end + +--- @param idx int +--- @return any +function MeshDataTool:get_edge_meta(idx) end + +--- @param idx int +--- @param vertex int +--- @return int +function MeshDataTool:get_face_vertex(idx, vertex) end + +--- @param idx int +--- @param edge int +--- @return int +function MeshDataTool:get_face_edge(idx, edge) end + +--- @param idx int +--- @param meta any +function MeshDataTool:set_face_meta(idx, meta) end + +--- @param idx int +--- @return any +function MeshDataTool:get_face_meta(idx) end + +--- @param idx int +--- @return Vector3 +function MeshDataTool:get_face_normal(idx) end + +--- @param material Material +function MeshDataTool:set_material(material) end + +--- @return Material +function MeshDataTool:get_material() end + + +----------------------------------------------------------- +-- MeshInstance2D +----------------------------------------------------------- + +--- @class MeshInstance2D: Node2D, { [string]: any } +--- @field mesh Mesh +--- @field texture Texture2D +MeshInstance2D = {} + +--- @return MeshInstance2D +function MeshInstance2D:new() end + +MeshInstance2D.texture_changed = Signal() + +--- @param mesh Mesh +function MeshInstance2D:set_mesh(mesh) end + +--- @return Mesh +function MeshInstance2D:get_mesh() end + +--- @param texture Texture2D +function MeshInstance2D:set_texture(texture) end + +--- @return Texture2D +function MeshInstance2D:get_texture() end + + +----------------------------------------------------------- +-- MeshInstance3D +----------------------------------------------------------- + +--- @class MeshInstance3D: GeometryInstance3D, { [string]: any } +--- @field mesh Mesh +--- @field skin Skin +--- @field skeleton NodePath +MeshInstance3D = {} + +--- @return MeshInstance3D +function MeshInstance3D:new() end + +--- @param mesh Mesh +function MeshInstance3D:set_mesh(mesh) end + +--- @return Mesh +function MeshInstance3D:get_mesh() end + +--- @param skeleton_path NodePath +function MeshInstance3D:set_skeleton_path(skeleton_path) end + +--- @return NodePath +function MeshInstance3D:get_skeleton_path() end + +--- @param skin Skin +function MeshInstance3D:set_skin(skin) end + +--- @return Skin +function MeshInstance3D:get_skin() end + +--- @return SkinReference +function MeshInstance3D:get_skin_reference() end + +--- @return int +function MeshInstance3D:get_surface_override_material_count() end + +--- @param surface int +--- @param material Material +function MeshInstance3D:set_surface_override_material(surface, material) end + +--- @param surface int +--- @return Material +function MeshInstance3D:get_surface_override_material(surface) end + +--- @param surface int +--- @return Material +function MeshInstance3D:get_active_material(surface) end + +function MeshInstance3D:create_trimesh_collision() end + +--- @param clean bool? Default: true +--- @param simplify bool? Default: false +function MeshInstance3D:create_convex_collision(clean, simplify) end + +--- @param settings MeshConvexDecompositionSettings? Default: null +function MeshInstance3D:create_multiple_convex_collisions(settings) end + +--- @return int +function MeshInstance3D:get_blend_shape_count() end + +--- @param name StringName +--- @return int +function MeshInstance3D:find_blend_shape_by_name(name) end + +--- @param blend_shape_idx int +--- @return float +function MeshInstance3D:get_blend_shape_value(blend_shape_idx) end + +--- @param blend_shape_idx int +--- @param value float +function MeshInstance3D:set_blend_shape_value(blend_shape_idx, value) end + +function MeshInstance3D:create_debug_tangents() end + +--- @param existing ArrayMesh? Default: null +--- @return ArrayMesh +function MeshInstance3D:bake_mesh_from_current_blend_shape_mix(existing) end + +--- @param existing ArrayMesh? Default: null +--- @return ArrayMesh +function MeshInstance3D:bake_mesh_from_current_skeleton_pose(existing) end + + +----------------------------------------------------------- +-- MeshLibrary +----------------------------------------------------------- + +--- @class MeshLibrary: Resource, { [string]: any } +MeshLibrary = {} + +--- @return MeshLibrary +function MeshLibrary:new() end + +--- @param id int +function MeshLibrary:create_item(id) end + +--- @param id int +--- @param name String +function MeshLibrary:set_item_name(id, name) end + +--- @param id int +--- @param mesh Mesh +function MeshLibrary:set_item_mesh(id, mesh) end + +--- @param id int +--- @param mesh_transform Transform3D +function MeshLibrary:set_item_mesh_transform(id, mesh_transform) end + +--- @param id int +--- @param shadow_casting_setting RenderingServer.ShadowCastingSetting +function MeshLibrary:set_item_mesh_cast_shadow(id, shadow_casting_setting) end + +--- @param id int +--- @param navigation_mesh NavigationMesh +function MeshLibrary:set_item_navigation_mesh(id, navigation_mesh) end + +--- @param id int +--- @param navigation_mesh Transform3D +function MeshLibrary:set_item_navigation_mesh_transform(id, navigation_mesh) end + +--- @param id int +--- @param navigation_layers int +function MeshLibrary:set_item_navigation_layers(id, navigation_layers) end + +--- @param id int +--- @param shapes Array +function MeshLibrary:set_item_shapes(id, shapes) end + +--- @param id int +--- @param texture Texture2D +function MeshLibrary:set_item_preview(id, texture) end + +--- @param id int +--- @return String +function MeshLibrary:get_item_name(id) end + +--- @param id int +--- @return Mesh +function MeshLibrary:get_item_mesh(id) end + +--- @param id int +--- @return Transform3D +function MeshLibrary:get_item_mesh_transform(id) end + +--- @param id int +--- @return RenderingServer.ShadowCastingSetting +function MeshLibrary:get_item_mesh_cast_shadow(id) end + +--- @param id int +--- @return NavigationMesh +function MeshLibrary:get_item_navigation_mesh(id) end + +--- @param id int +--- @return Transform3D +function MeshLibrary:get_item_navigation_mesh_transform(id) end + +--- @param id int +--- @return int +function MeshLibrary:get_item_navigation_layers(id) end + +--- @param id int +--- @return Array +function MeshLibrary:get_item_shapes(id) end + +--- @param id int +--- @return Texture2D +function MeshLibrary:get_item_preview(id) end + +--- @param id int +function MeshLibrary:remove_item(id) end + +--- @param name String +--- @return int +function MeshLibrary:find_item_by_name(name) end + +function MeshLibrary:clear() end + +--- @return PackedInt32Array +function MeshLibrary:get_item_list() end + +--- @return int +function MeshLibrary:get_last_unused_item_id() end + + +----------------------------------------------------------- +-- MeshTexture +----------------------------------------------------------- + +--- @class MeshTexture: Texture2D, { [string]: any } +--- @field mesh Mesh +--- @field base_texture Texture2D +--- @field image_size Vector2 +MeshTexture = {} + +--- @return MeshTexture +function MeshTexture:new() end + +--- @param mesh Mesh +function MeshTexture:set_mesh(mesh) end + +--- @return Mesh +function MeshTexture:get_mesh() end + +--- @param size Vector2 +function MeshTexture:set_image_size(size) end + +--- @return Vector2 +function MeshTexture:get_image_size() end + +--- @param texture Texture2D +function MeshTexture:set_base_texture(texture) end + +--- @return Texture2D +function MeshTexture:get_base_texture() end + + +----------------------------------------------------------- +-- MethodTweener +----------------------------------------------------------- + +--- @class MethodTweener: Tweener, { [string]: any } +MethodTweener = {} + +--- @return MethodTweener +function MethodTweener:new() end + +--- @param delay float +--- @return MethodTweener +function MethodTweener:set_delay(delay) end + +--- @param trans Tween.TransitionType +--- @return MethodTweener +function MethodTweener:set_trans(trans) end + +--- @param ease Tween.EaseType +--- @return MethodTweener +function MethodTweener:set_ease(ease) end + + +----------------------------------------------------------- +-- MissingNode +----------------------------------------------------------- + +--- @class MissingNode: Node, { [string]: any } +--- @field original_class String +--- @field original_scene String +--- @field recording_properties bool +MissingNode = {} + +--- @return MissingNode +function MissingNode:new() end + +--- @param name String +function MissingNode:set_original_class(name) end + +--- @return String +function MissingNode:get_original_class() end + +--- @param name String +function MissingNode:set_original_scene(name) end + +--- @return String +function MissingNode:get_original_scene() end + +--- @param enable bool +function MissingNode:set_recording_properties(enable) end + +--- @return bool +function MissingNode:is_recording_properties() end + + +----------------------------------------------------------- +-- MissingResource +----------------------------------------------------------- + +--- @class MissingResource: Resource, { [string]: any } +--- @field original_class String +--- @field recording_properties bool +MissingResource = {} + +--- @return MissingResource +function MissingResource:new() end + +--- @param name String +function MissingResource:set_original_class(name) end + +--- @return String +function MissingResource:get_original_class() end + +--- @param enable bool +function MissingResource:set_recording_properties(enable) end + +--- @return bool +function MissingResource:is_recording_properties() end + + +----------------------------------------------------------- +-- MobileVRInterface +----------------------------------------------------------- + +--- @class MobileVRInterface: XRInterface, { [string]: any } +--- @field eye_height float +--- @field iod float +--- @field display_width float +--- @field display_to_lens float +--- @field offset_rect Rect2 +--- @field oversample float +--- @field k1 float +--- @field k2 float +--- @field vrs_min_radius float +--- @field vrs_strength float +MobileVRInterface = {} + +--- @return MobileVRInterface +function MobileVRInterface:new() end + +--- @param eye_height float +function MobileVRInterface:set_eye_height(eye_height) end + +--- @return float +function MobileVRInterface:get_eye_height() end + +--- @param iod float +function MobileVRInterface:set_iod(iod) end + +--- @return float +function MobileVRInterface:get_iod() end + +--- @param display_width float +function MobileVRInterface:set_display_width(display_width) end + +--- @return float +function MobileVRInterface:get_display_width() end + +--- @param display_to_lens float +function MobileVRInterface:set_display_to_lens(display_to_lens) end + +--- @return float +function MobileVRInterface:get_display_to_lens() end + +--- @param offset_rect Rect2 +function MobileVRInterface:set_offset_rect(offset_rect) end + +--- @return Rect2 +function MobileVRInterface:get_offset_rect() end + +--- @param oversample float +function MobileVRInterface:set_oversample(oversample) end + +--- @return float +function MobileVRInterface:get_oversample() end + +--- @param k float +function MobileVRInterface:set_k1(k) end + +--- @return float +function MobileVRInterface:get_k1() end + +--- @param k float +function MobileVRInterface:set_k2(k) end + +--- @return float +function MobileVRInterface:get_k2() end + +--- @return float +function MobileVRInterface:get_vrs_min_radius() end + +--- @param radius float +function MobileVRInterface:set_vrs_min_radius(radius) end + +--- @return float +function MobileVRInterface:get_vrs_strength() end + +--- @param strength float +function MobileVRInterface:set_vrs_strength(strength) end + + +----------------------------------------------------------- +-- ModifierBoneTarget3D +----------------------------------------------------------- + +--- @class ModifierBoneTarget3D: SkeletonModifier3D, { [string]: any } +--- @field bone_name String +--- @field bone int +ModifierBoneTarget3D = {} + +--- @return ModifierBoneTarget3D +function ModifierBoneTarget3D:new() end + +--- @param bone_name String +function ModifierBoneTarget3D:set_bone_name(bone_name) end + +--- @return String +function ModifierBoneTarget3D:get_bone_name() end + +--- @param bone int +function ModifierBoneTarget3D:set_bone(bone) end + +--- @return int +function ModifierBoneTarget3D:get_bone() end + + +----------------------------------------------------------- +-- MovieWriter +----------------------------------------------------------- + +--- @class MovieWriter: Object, { [string]: any } +MovieWriter = {} + +--- @return MovieWriter +function MovieWriter:new() end + +--- @return int +function MovieWriter:_get_audio_mix_rate() end + +--- @return AudioServer.SpeakerMode +function MovieWriter:_get_audio_speaker_mode() end + +--- @param path String +--- @return bool +function MovieWriter:_handles_file(path) end + +--- @param movie_size Vector2i +--- @param fps int +--- @param base_path String +--- @return Error +function MovieWriter:_write_begin(movie_size, fps, base_path) end + +--- @param frame_image Image +--- @param audio_frame_block const void* +--- @return Error +function MovieWriter:_write_frame(frame_image, audio_frame_block) end + +function MovieWriter:_write_end() end + +--- static +--- @param writer MovieWriter +function MovieWriter:add_writer(writer) end + + +----------------------------------------------------------- +-- MultiMesh +----------------------------------------------------------- + +--- @class MultiMesh: Resource, { [string]: any } +--- @field transform_format int +--- @field use_colors bool +--- @field use_custom_data bool +--- @field custom_aabb AABB +--- @field instance_count int +--- @field visible_instance_count int +--- @field mesh Mesh +--- @field buffer PackedFloat32Array +--- @field transform_array PackedVector3Array +--- @field transform_2d_array PackedVector2Array +--- @field color_array PackedColorArray +--- @field custom_data_array PackedColorArray +--- @field physics_interpolation_quality int +MultiMesh = {} + +--- @return MultiMesh +function MultiMesh:new() end + +--- @alias MultiMesh.TransformFormat `MultiMesh.TRANSFORM_2D` | `MultiMesh.TRANSFORM_3D` +MultiMesh.TRANSFORM_2D = 0 +MultiMesh.TRANSFORM_3D = 1 + +--- @alias MultiMesh.PhysicsInterpolationQuality `MultiMesh.INTERP_QUALITY_FAST` | `MultiMesh.INTERP_QUALITY_HIGH` +MultiMesh.INTERP_QUALITY_FAST = 0 +MultiMesh.INTERP_QUALITY_HIGH = 1 + +--- @param mesh Mesh +function MultiMesh:set_mesh(mesh) end + +--- @return Mesh +function MultiMesh:get_mesh() end + +--- @param enable bool +function MultiMesh:set_use_colors(enable) end + +--- @return bool +function MultiMesh:is_using_colors() end + +--- @param enable bool +function MultiMesh:set_use_custom_data(enable) end + +--- @return bool +function MultiMesh:is_using_custom_data() end + +--- @param format MultiMesh.TransformFormat +function MultiMesh:set_transform_format(format) end + +--- @return MultiMesh.TransformFormat +function MultiMesh:get_transform_format() end + +--- @param count int +function MultiMesh:set_instance_count(count) end + +--- @return int +function MultiMesh:get_instance_count() end + +--- @param count int +function MultiMesh:set_visible_instance_count(count) end + +--- @return int +function MultiMesh:get_visible_instance_count() end + +--- @param quality MultiMesh.PhysicsInterpolationQuality +function MultiMesh:set_physics_interpolation_quality(quality) end + +--- @return MultiMesh.PhysicsInterpolationQuality +function MultiMesh:get_physics_interpolation_quality() end + +--- @param instance int +--- @param transform Transform3D +function MultiMesh:set_instance_transform(instance, transform) end + +--- @param instance int +--- @param transform Transform2D +function MultiMesh:set_instance_transform_2d(instance, transform) end + +--- @param instance int +--- @return Transform3D +function MultiMesh:get_instance_transform(instance) end + +--- @param instance int +--- @return Transform2D +function MultiMesh:get_instance_transform_2d(instance) end + +--- @param instance int +--- @param color Color +function MultiMesh:set_instance_color(instance, color) end + +--- @param instance int +--- @return Color +function MultiMesh:get_instance_color(instance) end + +--- @param instance int +--- @param custom_data Color +function MultiMesh:set_instance_custom_data(instance, custom_data) end + +--- @param instance int +--- @return Color +function MultiMesh:get_instance_custom_data(instance) end + +--- @param instance int +function MultiMesh:reset_instance_physics_interpolation(instance) end + +--- @param aabb AABB +function MultiMesh:set_custom_aabb(aabb) end + +--- @return AABB +function MultiMesh:get_custom_aabb() end + +--- @return AABB +function MultiMesh:get_aabb() end + +--- @return PackedFloat32Array +function MultiMesh:get_buffer() end + +--- @param buffer PackedFloat32Array +function MultiMesh:set_buffer(buffer) end + +--- @param buffer_curr PackedFloat32Array +--- @param buffer_prev PackedFloat32Array +function MultiMesh:set_buffer_interpolated(buffer_curr, buffer_prev) end + + +----------------------------------------------------------- +-- MultiMeshInstance2D +----------------------------------------------------------- + +--- @class MultiMeshInstance2D: Node2D, { [string]: any } +--- @field multimesh MultiMesh +--- @field texture Texture2D +MultiMeshInstance2D = {} + +--- @return MultiMeshInstance2D +function MultiMeshInstance2D:new() end + +MultiMeshInstance2D.texture_changed = Signal() + +--- @param multimesh MultiMesh +function MultiMeshInstance2D:set_multimesh(multimesh) end + +--- @return MultiMesh +function MultiMeshInstance2D:get_multimesh() end + +--- @param texture Texture2D +function MultiMeshInstance2D:set_texture(texture) end + +--- @return Texture2D +function MultiMeshInstance2D:get_texture() end + + +----------------------------------------------------------- +-- MultiMeshInstance3D +----------------------------------------------------------- + +--- @class MultiMeshInstance3D: GeometryInstance3D, { [string]: any } +--- @field multimesh MultiMesh +MultiMeshInstance3D = {} + +--- @return MultiMeshInstance3D +function MultiMeshInstance3D:new() end + +--- @param multimesh MultiMesh +function MultiMeshInstance3D:set_multimesh(multimesh) end + +--- @return MultiMesh +function MultiMeshInstance3D:get_multimesh() end + + +----------------------------------------------------------- +-- MultiplayerAPI +----------------------------------------------------------- + +--- @class MultiplayerAPI: RefCounted, { [string]: any } +--- @field multiplayer_peer MultiplayerPeer +MultiplayerAPI = {} + +--- @alias MultiplayerAPI.RPCMode `MultiplayerAPI.RPC_MODE_DISABLED` | `MultiplayerAPI.RPC_MODE_ANY_PEER` | `MultiplayerAPI.RPC_MODE_AUTHORITY` +MultiplayerAPI.RPC_MODE_DISABLED = 0 +MultiplayerAPI.RPC_MODE_ANY_PEER = 1 +MultiplayerAPI.RPC_MODE_AUTHORITY = 2 + +MultiplayerAPI.peer_connected = Signal() +MultiplayerAPI.peer_disconnected = Signal() +MultiplayerAPI.connected_to_server = Signal() +MultiplayerAPI.connection_failed = Signal() +MultiplayerAPI.server_disconnected = Signal() + +--- @return bool +function MultiplayerAPI:has_multiplayer_peer() end + +--- @return MultiplayerPeer +function MultiplayerAPI:get_multiplayer_peer() end + +--- @param peer MultiplayerPeer +function MultiplayerAPI:set_multiplayer_peer(peer) end + +--- @return int +function MultiplayerAPI:get_unique_id() end + +--- @return bool +function MultiplayerAPI:is_server() end + +--- @return int +function MultiplayerAPI:get_remote_sender_id() end + +--- @return Error +function MultiplayerAPI:poll() end + +--- @param peer int +--- @param object Object +--- @param method StringName +--- @param arguments Array? Default: [] +--- @return Error +function MultiplayerAPI:rpc(peer, object, method, arguments) end + +--- @param object Object +--- @param configuration any +--- @return Error +function MultiplayerAPI:object_configuration_add(object, configuration) end + +--- @param object Object +--- @param configuration any +--- @return Error +function MultiplayerAPI:object_configuration_remove(object, configuration) end + +--- @return PackedInt32Array +function MultiplayerAPI:get_peers() end + +--- static +--- @param interface_name StringName +function MultiplayerAPI:set_default_interface(interface_name) end + +--- static +--- @return StringName +function MultiplayerAPI:get_default_interface() end + +--- static +--- @return MultiplayerAPI +function MultiplayerAPI:create_default_interface() end + + +----------------------------------------------------------- +-- MultiplayerAPIExtension +----------------------------------------------------------- + +--- @class MultiplayerAPIExtension: MultiplayerAPI, { [string]: any } +MultiplayerAPIExtension = {} + +--- @return MultiplayerAPIExtension +function MultiplayerAPIExtension:new() end + +--- @return Error +function MultiplayerAPIExtension:_poll() end + +--- @param multiplayer_peer MultiplayerPeer +function MultiplayerAPIExtension:_set_multiplayer_peer(multiplayer_peer) end + +--- @return MultiplayerPeer +function MultiplayerAPIExtension:_get_multiplayer_peer() end + +--- @return int +function MultiplayerAPIExtension:_get_unique_id() end + +--- @return PackedInt32Array +function MultiplayerAPIExtension:_get_peer_ids() end + +--- @param peer int +--- @param object Object +--- @param method StringName +--- @param args Array +--- @return Error +function MultiplayerAPIExtension:_rpc(peer, object, method, args) end + +--- @return int +function MultiplayerAPIExtension:_get_remote_sender_id() end + +--- @param object Object +--- @param configuration any +--- @return Error +function MultiplayerAPIExtension:_object_configuration_add(object, configuration) end + +--- @param object Object +--- @param configuration any +--- @return Error +function MultiplayerAPIExtension:_object_configuration_remove(object, configuration) end + + +----------------------------------------------------------- +-- MultiplayerPeer +----------------------------------------------------------- + +--- @class MultiplayerPeer: PacketPeer, { [string]: any } +--- @field refuse_new_connections bool +--- @field transfer_mode int +--- @field transfer_channel int +MultiplayerPeer = {} + +MultiplayerPeer.TARGET_PEER_BROADCAST = 0 +MultiplayerPeer.TARGET_PEER_SERVER = 1 + +--- @alias MultiplayerPeer.ConnectionStatus `MultiplayerPeer.CONNECTION_DISCONNECTED` | `MultiplayerPeer.CONNECTION_CONNECTING` | `MultiplayerPeer.CONNECTION_CONNECTED` +MultiplayerPeer.CONNECTION_DISCONNECTED = 0 +MultiplayerPeer.CONNECTION_CONNECTING = 1 +MultiplayerPeer.CONNECTION_CONNECTED = 2 + +--- @alias MultiplayerPeer.TransferMode `MultiplayerPeer.TRANSFER_MODE_UNRELIABLE` | `MultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED` | `MultiplayerPeer.TRANSFER_MODE_RELIABLE` +MultiplayerPeer.TRANSFER_MODE_UNRELIABLE = 0 +MultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED = 1 +MultiplayerPeer.TRANSFER_MODE_RELIABLE = 2 + +MultiplayerPeer.peer_connected = Signal() +MultiplayerPeer.peer_disconnected = Signal() + +--- @param channel int +function MultiplayerPeer:set_transfer_channel(channel) end + +--- @return int +function MultiplayerPeer:get_transfer_channel() end + +--- @param mode MultiplayerPeer.TransferMode +function MultiplayerPeer:set_transfer_mode(mode) end + +--- @return MultiplayerPeer.TransferMode +function MultiplayerPeer:get_transfer_mode() end + +--- @param id int +function MultiplayerPeer:set_target_peer(id) end + +--- @return int +function MultiplayerPeer:get_packet_peer() end + +--- @return int +function MultiplayerPeer:get_packet_channel() end + +--- @return MultiplayerPeer.TransferMode +function MultiplayerPeer:get_packet_mode() end + +function MultiplayerPeer:poll() end + +function MultiplayerPeer:close() end + +--- @param peer int +--- @param force bool? Default: false +function MultiplayerPeer:disconnect_peer(peer, force) end + +--- @return MultiplayerPeer.ConnectionStatus +function MultiplayerPeer:get_connection_status() end + +--- @return int +function MultiplayerPeer:get_unique_id() end + +--- @return int +function MultiplayerPeer:generate_unique_id() end + +--- @param enable bool +function MultiplayerPeer:set_refuse_new_connections(enable) end + +--- @return bool +function MultiplayerPeer:is_refusing_new_connections() end + +--- @return bool +function MultiplayerPeer:is_server_relay_supported() end + + +----------------------------------------------------------- +-- MultiplayerPeerExtension +----------------------------------------------------------- + +--- @class MultiplayerPeerExtension: MultiplayerPeer, { [string]: any } +MultiplayerPeerExtension = {} + +--- @return MultiplayerPeerExtension +function MultiplayerPeerExtension:new() end + +--- @param r_buffer const uint8_t ** +--- @param r_buffer_size int32_t* +--- @return Error +function MultiplayerPeerExtension:_get_packet(r_buffer, r_buffer_size) end + +--- @param p_buffer const uint8_t* +--- @param p_buffer_size int +--- @return Error +function MultiplayerPeerExtension:_put_packet(p_buffer, p_buffer_size) end + +--- @return int +function MultiplayerPeerExtension:_get_available_packet_count() end + +--- @return int +function MultiplayerPeerExtension:_get_max_packet_size() end + +--- @return PackedByteArray +function MultiplayerPeerExtension:_get_packet_script() end + +--- @param p_buffer PackedByteArray +--- @return Error +function MultiplayerPeerExtension:_put_packet_script(p_buffer) end + +--- @return int +function MultiplayerPeerExtension:_get_packet_channel() end + +--- @return MultiplayerPeer.TransferMode +function MultiplayerPeerExtension:_get_packet_mode() end + +--- @param p_channel int +function MultiplayerPeerExtension:_set_transfer_channel(p_channel) end + +--- @return int +function MultiplayerPeerExtension:_get_transfer_channel() end + +--- @param p_mode MultiplayerPeer.TransferMode +function MultiplayerPeerExtension:_set_transfer_mode(p_mode) end + +--- @return MultiplayerPeer.TransferMode +function MultiplayerPeerExtension:_get_transfer_mode() end + +--- @param p_peer int +function MultiplayerPeerExtension:_set_target_peer(p_peer) end + +--- @return int +function MultiplayerPeerExtension:_get_packet_peer() end + +--- @return bool +function MultiplayerPeerExtension:_is_server() end + +function MultiplayerPeerExtension:_poll() end + +function MultiplayerPeerExtension:_close() end + +--- @param p_peer int +--- @param p_force bool +function MultiplayerPeerExtension:_disconnect_peer(p_peer, p_force) end + +--- @return int +function MultiplayerPeerExtension:_get_unique_id() end + +--- @param p_enable bool +function MultiplayerPeerExtension:_set_refuse_new_connections(p_enable) end + +--- @return bool +function MultiplayerPeerExtension:_is_refusing_new_connections() end + +--- @return bool +function MultiplayerPeerExtension:_is_server_relay_supported() end + +--- @return MultiplayerPeer.ConnectionStatus +function MultiplayerPeerExtension:_get_connection_status() end + + +----------------------------------------------------------- +-- MultiplayerSpawner +----------------------------------------------------------- + +--- @class MultiplayerSpawner: Node, { [string]: any } +--- @field spawn_path NodePath +--- @field spawn_limit int +--- @field spawn_function Callable +MultiplayerSpawner = {} + +--- @return MultiplayerSpawner +function MultiplayerSpawner:new() end + +MultiplayerSpawner.despawned = Signal() +MultiplayerSpawner.spawned = Signal() + +--- @param path String +function MultiplayerSpawner:add_spawnable_scene(path) end + +--- @return int +function MultiplayerSpawner:get_spawnable_scene_count() end + +--- @param index int +--- @return String +function MultiplayerSpawner:get_spawnable_scene(index) end + +function MultiplayerSpawner:clear_spawnable_scenes() end + +--- @param data any? Default: null +--- @return Node +function MultiplayerSpawner:spawn(data) end + +--- @return NodePath +function MultiplayerSpawner:get_spawn_path() end + +--- @param path NodePath +function MultiplayerSpawner:set_spawn_path(path) end + +--- @return int +function MultiplayerSpawner:get_spawn_limit() end + +--- @param limit int +function MultiplayerSpawner:set_spawn_limit(limit) end + +--- @return Callable +function MultiplayerSpawner:get_spawn_function() end + +--- @param spawn_function Callable +function MultiplayerSpawner:set_spawn_function(spawn_function) end + + +----------------------------------------------------------- +-- MultiplayerSynchronizer +----------------------------------------------------------- + +--- @class MultiplayerSynchronizer: Node, { [string]: any } +--- @field root_path NodePath +--- @field replication_interval float +--- @field delta_interval float +--- @field replication_config SceneReplicationConfig +--- @field visibility_update_mode int +--- @field public_visibility bool +MultiplayerSynchronizer = {} + +--- @return MultiplayerSynchronizer +function MultiplayerSynchronizer:new() end + +--- @alias MultiplayerSynchronizer.VisibilityUpdateMode `MultiplayerSynchronizer.VISIBILITY_PROCESS_IDLE` | `MultiplayerSynchronizer.VISIBILITY_PROCESS_PHYSICS` | `MultiplayerSynchronizer.VISIBILITY_PROCESS_NONE` +MultiplayerSynchronizer.VISIBILITY_PROCESS_IDLE = 0 +MultiplayerSynchronizer.VISIBILITY_PROCESS_PHYSICS = 1 +MultiplayerSynchronizer.VISIBILITY_PROCESS_NONE = 2 + +MultiplayerSynchronizer.synchronized = Signal() +MultiplayerSynchronizer.delta_synchronized = Signal() +MultiplayerSynchronizer.visibility_changed = Signal() + +--- @param path NodePath +function MultiplayerSynchronizer:set_root_path(path) end + +--- @return NodePath +function MultiplayerSynchronizer:get_root_path() end + +--- @param milliseconds float +function MultiplayerSynchronizer:set_replication_interval(milliseconds) end + +--- @return float +function MultiplayerSynchronizer:get_replication_interval() end + +--- @param milliseconds float +function MultiplayerSynchronizer:set_delta_interval(milliseconds) end + +--- @return float +function MultiplayerSynchronizer:get_delta_interval() end + +--- @param config SceneReplicationConfig +function MultiplayerSynchronizer:set_replication_config(config) end + +--- @return SceneReplicationConfig +function MultiplayerSynchronizer:get_replication_config() end + +--- @param mode MultiplayerSynchronizer.VisibilityUpdateMode +function MultiplayerSynchronizer:set_visibility_update_mode(mode) end + +--- @return MultiplayerSynchronizer.VisibilityUpdateMode +function MultiplayerSynchronizer:get_visibility_update_mode() end + +--- @param for_peer int? Default: 0 +function MultiplayerSynchronizer:update_visibility(for_peer) end + +--- @param visible bool +function MultiplayerSynchronizer:set_visibility_public(visible) end + +--- @return bool +function MultiplayerSynchronizer:is_visibility_public() end + +--- @param filter Callable +function MultiplayerSynchronizer:add_visibility_filter(filter) end + +--- @param filter Callable +function MultiplayerSynchronizer:remove_visibility_filter(filter) end + +--- @param peer int +--- @param visible bool +function MultiplayerSynchronizer:set_visibility_for(peer, visible) end + +--- @param peer int +--- @return bool +function MultiplayerSynchronizer:get_visibility_for(peer) end + + +----------------------------------------------------------- +-- Mutex +----------------------------------------------------------- + +--- @class Mutex: RefCounted, { [string]: any } +Mutex = {} + +--- @return Mutex +function Mutex:new() end + +function Mutex:lock() end + +--- @return bool +function Mutex:try_lock() end + +function Mutex:unlock() end + + +----------------------------------------------------------- +-- NativeMenu +----------------------------------------------------------- + +--- @class NativeMenu: Object, { [string]: any } +NativeMenu = {} + +--- @alias NativeMenu.Feature `NativeMenu.FEATURE_GLOBAL_MENU` | `NativeMenu.FEATURE_POPUP_MENU` | `NativeMenu.FEATURE_OPEN_CLOSE_CALLBACK` | `NativeMenu.FEATURE_HOVER_CALLBACK` | `NativeMenu.FEATURE_KEY_CALLBACK` +NativeMenu.FEATURE_GLOBAL_MENU = 0 +NativeMenu.FEATURE_POPUP_MENU = 1 +NativeMenu.FEATURE_OPEN_CLOSE_CALLBACK = 2 +NativeMenu.FEATURE_HOVER_CALLBACK = 3 +NativeMenu.FEATURE_KEY_CALLBACK = 4 + +--- @alias NativeMenu.SystemMenus `NativeMenu.INVALID_MENU_ID` | `NativeMenu.MAIN_MENU_ID` | `NativeMenu.APPLICATION_MENU_ID` | `NativeMenu.WINDOW_MENU_ID` | `NativeMenu.HELP_MENU_ID` | `NativeMenu.DOCK_MENU_ID` +NativeMenu.INVALID_MENU_ID = 0 +NativeMenu.MAIN_MENU_ID = 1 +NativeMenu.APPLICATION_MENU_ID = 2 +NativeMenu.WINDOW_MENU_ID = 3 +NativeMenu.HELP_MENU_ID = 4 +NativeMenu.DOCK_MENU_ID = 5 + +--- @param feature NativeMenu.Feature +--- @return bool +function NativeMenu:has_feature(feature) end + +--- @param menu_id NativeMenu.SystemMenus +--- @return bool +function NativeMenu:has_system_menu(menu_id) end + +--- @param menu_id NativeMenu.SystemMenus +--- @return RID +function NativeMenu:get_system_menu(menu_id) end + +--- @param menu_id NativeMenu.SystemMenus +--- @return String +function NativeMenu:get_system_menu_name(menu_id) end + +--- @return RID +function NativeMenu:create_menu() end + +--- @param rid RID +--- @return bool +function NativeMenu:has_menu(rid) end + +--- @param rid RID +function NativeMenu:free_menu(rid) end + +--- @param rid RID +--- @return Vector2 +function NativeMenu:get_size(rid) end + +--- @param rid RID +--- @param position Vector2i +function NativeMenu:popup(rid, position) end + +--- @param rid RID +--- @param is_rtl bool +function NativeMenu:set_interface_direction(rid, is_rtl) end + +--- @param rid RID +--- @param callback Callable +function NativeMenu:set_popup_open_callback(rid, callback) end + +--- @param rid RID +--- @return Callable +function NativeMenu:get_popup_open_callback(rid) end + +--- @param rid RID +--- @param callback Callable +function NativeMenu:set_popup_close_callback(rid, callback) end + +--- @param rid RID +--- @return Callable +function NativeMenu:get_popup_close_callback(rid) end + +--- @param rid RID +--- @param width float +function NativeMenu:set_minimum_width(rid, width) end + +--- @param rid RID +--- @return float +function NativeMenu:get_minimum_width(rid) end + +--- @param rid RID +--- @return bool +function NativeMenu:is_opened(rid) end + +--- @param rid RID +--- @param label String +--- @param submenu_rid RID +--- @param tag any? Default: null +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_submenu_item(rid, label, submenu_rid, tag, index) end + +--- @param rid RID +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_item(rid, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_check_item(rid, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_icon_item(rid, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_icon_check_item(rid, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_radio_check_item(rid, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param icon Texture2D +--- @param label String +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_icon_radio_check_item(rid, icon, label, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param label String +--- @param max_states int +--- @param default_state int +--- @param callback Callable? Default: Callable() +--- @param key_callback Callable? Default: Callable() +--- @param tag any? Default: null +--- @param accelerator Key? Default: 0 +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_multistate_item(rid, label, max_states, default_state, callback, key_callback, tag, accelerator, index) end + +--- @param rid RID +--- @param index int? Default: -1 +--- @return int +function NativeMenu:add_separator(rid, index) end + +--- @param rid RID +--- @param text String +--- @return int +function NativeMenu:find_item_index_with_text(rid, text) end + +--- @param rid RID +--- @param tag any +--- @return int +function NativeMenu:find_item_index_with_tag(rid, tag) end + +--- @param rid RID +--- @param submenu_rid RID +--- @return int +function NativeMenu:find_item_index_with_submenu(rid, submenu_rid) end + +--- @param rid RID +--- @param idx int +--- @return bool +function NativeMenu:is_item_checked(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return bool +function NativeMenu:is_item_checkable(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return bool +function NativeMenu:is_item_radio_checkable(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return Callable +function NativeMenu:get_item_callback(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return Callable +function NativeMenu:get_item_key_callback(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return any +function NativeMenu:get_item_tag(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return String +function NativeMenu:get_item_text(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return RID +function NativeMenu:get_item_submenu(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return Key +function NativeMenu:get_item_accelerator(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return bool +function NativeMenu:is_item_disabled(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return bool +function NativeMenu:is_item_hidden(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return String +function NativeMenu:get_item_tooltip(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return int +function NativeMenu:get_item_state(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return int +function NativeMenu:get_item_max_states(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return Texture2D +function NativeMenu:get_item_icon(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @return int +function NativeMenu:get_item_indentation_level(rid, idx) end + +--- @param rid RID +--- @param idx int +--- @param checked bool +function NativeMenu:set_item_checked(rid, idx, checked) end + +--- @param rid RID +--- @param idx int +--- @param checkable bool +function NativeMenu:set_item_checkable(rid, idx, checkable) end + +--- @param rid RID +--- @param idx int +--- @param checkable bool +function NativeMenu:set_item_radio_checkable(rid, idx, checkable) end + +--- @param rid RID +--- @param idx int +--- @param callback Callable +function NativeMenu:set_item_callback(rid, idx, callback) end + +--- @param rid RID +--- @param idx int +--- @param callback Callable +function NativeMenu:set_item_hover_callbacks(rid, idx, callback) end + +--- @param rid RID +--- @param idx int +--- @param key_callback Callable +function NativeMenu:set_item_key_callback(rid, idx, key_callback) end + +--- @param rid RID +--- @param idx int +--- @param tag any +function NativeMenu:set_item_tag(rid, idx, tag) end + +--- @param rid RID +--- @param idx int +--- @param text String +function NativeMenu:set_item_text(rid, idx, text) end + +--- @param rid RID +--- @param idx int +--- @param submenu_rid RID +function NativeMenu:set_item_submenu(rid, idx, submenu_rid) end + +--- @param rid RID +--- @param idx int +--- @param keycode Key +function NativeMenu:set_item_accelerator(rid, idx, keycode) end + +--- @param rid RID +--- @param idx int +--- @param disabled bool +function NativeMenu:set_item_disabled(rid, idx, disabled) end + +--- @param rid RID +--- @param idx int +--- @param hidden bool +function NativeMenu:set_item_hidden(rid, idx, hidden) end + +--- @param rid RID +--- @param idx int +--- @param tooltip String +function NativeMenu:set_item_tooltip(rid, idx, tooltip) end + +--- @param rid RID +--- @param idx int +--- @param state int +function NativeMenu:set_item_state(rid, idx, state) end + +--- @param rid RID +--- @param idx int +--- @param max_states int +function NativeMenu:set_item_max_states(rid, idx, max_states) end + +--- @param rid RID +--- @param idx int +--- @param icon Texture2D +function NativeMenu:set_item_icon(rid, idx, icon) end + +--- @param rid RID +--- @param idx int +--- @param level int +function NativeMenu:set_item_indentation_level(rid, idx, level) end + +--- @param rid RID +--- @return int +function NativeMenu:get_item_count(rid) end + +--- @param rid RID +--- @return bool +function NativeMenu:is_system_menu(rid) end + +--- @param rid RID +--- @param idx int +function NativeMenu:remove_item(rid, idx) end + +--- @param rid RID +function NativeMenu:clear(rid) end + + +----------------------------------------------------------- +-- NavigationAgent2D +----------------------------------------------------------- + +--- @class NavigationAgent2D: Node, { [string]: any } +--- @field target_position Vector2 +--- @field path_desired_distance float +--- @field target_desired_distance float +--- @field path_max_distance float +--- @field navigation_layers int +--- @field pathfinding_algorithm int +--- @field path_postprocessing int +--- @field path_metadata_flags int +--- @field simplify_path bool +--- @field simplify_epsilon float +--- @field path_return_max_length float +--- @field path_return_max_radius float +--- @field path_search_max_polygons int +--- @field path_search_max_distance float +--- @field avoidance_enabled bool +--- @field velocity Vector2 +--- @field radius float +--- @field neighbor_distance float +--- @field max_neighbors int +--- @field time_horizon_agents float +--- @field time_horizon_obstacles float +--- @field max_speed float +--- @field avoidance_layers int +--- @field avoidance_mask int +--- @field avoidance_priority float +--- @field debug_enabled bool +--- @field debug_use_custom bool +--- @field debug_path_custom_color Color +--- @field debug_path_custom_point_size float +--- @field debug_path_custom_line_width float +NavigationAgent2D = {} + +--- @return NavigationAgent2D +function NavigationAgent2D:new() end + +NavigationAgent2D.path_changed = Signal() +NavigationAgent2D.target_reached = Signal() +NavigationAgent2D.waypoint_reached = Signal() +NavigationAgent2D.link_reached = Signal() +NavigationAgent2D.navigation_finished = Signal() +NavigationAgent2D.velocity_computed = Signal() + +--- @return RID +function NavigationAgent2D:get_rid() end + +--- @param enabled bool +function NavigationAgent2D:set_avoidance_enabled(enabled) end + +--- @return bool +function NavigationAgent2D:get_avoidance_enabled() end + +--- @param desired_distance float +function NavigationAgent2D:set_path_desired_distance(desired_distance) end + +--- @return float +function NavigationAgent2D:get_path_desired_distance() end + +--- @param desired_distance float +function NavigationAgent2D:set_target_desired_distance(desired_distance) end + +--- @return float +function NavigationAgent2D:get_target_desired_distance() end + +--- @param radius float +function NavigationAgent2D:set_radius(radius) end + +--- @return float +function NavigationAgent2D:get_radius() end + +--- @param neighbor_distance float +function NavigationAgent2D:set_neighbor_distance(neighbor_distance) end + +--- @return float +function NavigationAgent2D:get_neighbor_distance() end + +--- @param max_neighbors int +function NavigationAgent2D:set_max_neighbors(max_neighbors) end + +--- @return int +function NavigationAgent2D:get_max_neighbors() end + +--- @param time_horizon float +function NavigationAgent2D:set_time_horizon_agents(time_horizon) end + +--- @return float +function NavigationAgent2D:get_time_horizon_agents() end + +--- @param time_horizon float +function NavigationAgent2D:set_time_horizon_obstacles(time_horizon) end + +--- @return float +function NavigationAgent2D:get_time_horizon_obstacles() end + +--- @param max_speed float +function NavigationAgent2D:set_max_speed(max_speed) end + +--- @return float +function NavigationAgent2D:get_max_speed() end + +--- @param max_speed float +function NavigationAgent2D:set_path_max_distance(max_speed) end + +--- @return float +function NavigationAgent2D:get_path_max_distance() end + +--- @param navigation_layers int +function NavigationAgent2D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationAgent2D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationAgent2D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationAgent2D:get_navigation_layer_value(layer_number) end + +--- @param pathfinding_algorithm NavigationPathQueryParameters2D.PathfindingAlgorithm +function NavigationAgent2D:set_pathfinding_algorithm(pathfinding_algorithm) end + +--- @return NavigationPathQueryParameters2D.PathfindingAlgorithm +function NavigationAgent2D:get_pathfinding_algorithm() end + +--- @param path_postprocessing NavigationPathQueryParameters2D.PathPostProcessing +function NavigationAgent2D:set_path_postprocessing(path_postprocessing) end + +--- @return NavigationPathQueryParameters2D.PathPostProcessing +function NavigationAgent2D:get_path_postprocessing() end + +--- @param flags NavigationPathQueryParameters2D.PathMetadataFlags +function NavigationAgent2D:set_path_metadata_flags(flags) end + +--- @return NavigationPathQueryParameters2D.PathMetadataFlags +function NavigationAgent2D:get_path_metadata_flags() end + +--- @param navigation_map RID +function NavigationAgent2D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationAgent2D:get_navigation_map() end + +--- @param position Vector2 +function NavigationAgent2D:set_target_position(position) end + +--- @return Vector2 +function NavigationAgent2D:get_target_position() end + +--- @param enabled bool +function NavigationAgent2D:set_simplify_path(enabled) end + +--- @return bool +function NavigationAgent2D:get_simplify_path() end + +--- @param epsilon float +function NavigationAgent2D:set_simplify_epsilon(epsilon) end + +--- @return float +function NavigationAgent2D:get_simplify_epsilon() end + +--- @param length float +function NavigationAgent2D:set_path_return_max_length(length) end + +--- @return float +function NavigationAgent2D:get_path_return_max_length() end + +--- @param radius float +function NavigationAgent2D:set_path_return_max_radius(radius) end + +--- @return float +function NavigationAgent2D:get_path_return_max_radius() end + +--- @param max_polygons int +function NavigationAgent2D:set_path_search_max_polygons(max_polygons) end + +--- @return int +function NavigationAgent2D:get_path_search_max_polygons() end + +--- @param distance float +function NavigationAgent2D:set_path_search_max_distance(distance) end + +--- @return float +function NavigationAgent2D:get_path_search_max_distance() end + +--- @return float +function NavigationAgent2D:get_path_length() end + +--- @return Vector2 +function NavigationAgent2D:get_next_path_position() end + +--- @param velocity Vector2 +function NavigationAgent2D:set_velocity_forced(velocity) end + +--- @param velocity Vector2 +function NavigationAgent2D:set_velocity(velocity) end + +--- @return Vector2 +function NavigationAgent2D:get_velocity() end + +--- @return float +function NavigationAgent2D:distance_to_target() end + +--- @return NavigationPathQueryResult2D +function NavigationAgent2D:get_current_navigation_result() end + +--- @return PackedVector2Array +function NavigationAgent2D:get_current_navigation_path() end + +--- @return int +function NavigationAgent2D:get_current_navigation_path_index() end + +--- @return bool +function NavigationAgent2D:is_target_reached() end + +--- @return bool +function NavigationAgent2D:is_target_reachable() end + +--- @return bool +function NavigationAgent2D:is_navigation_finished() end + +--- @return Vector2 +function NavigationAgent2D:get_final_position() end + +--- @param layers int +function NavigationAgent2D:set_avoidance_layers(layers) end + +--- @return int +function NavigationAgent2D:get_avoidance_layers() end + +--- @param mask int +function NavigationAgent2D:set_avoidance_mask(mask) end + +--- @return int +function NavigationAgent2D:get_avoidance_mask() end + +--- @param layer_number int +--- @param value bool +function NavigationAgent2D:set_avoidance_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationAgent2D:get_avoidance_layer_value(layer_number) end + +--- @param mask_number int +--- @param value bool +function NavigationAgent2D:set_avoidance_mask_value(mask_number, value) end + +--- @param mask_number int +--- @return bool +function NavigationAgent2D:get_avoidance_mask_value(mask_number) end + +--- @param priority float +function NavigationAgent2D:set_avoidance_priority(priority) end + +--- @return float +function NavigationAgent2D:get_avoidance_priority() end + +--- @param enabled bool +function NavigationAgent2D:set_debug_enabled(enabled) end + +--- @return bool +function NavigationAgent2D:get_debug_enabled() end + +--- @param enabled bool +function NavigationAgent2D:set_debug_use_custom(enabled) end + +--- @return bool +function NavigationAgent2D:get_debug_use_custom() end + +--- @param color Color +function NavigationAgent2D:set_debug_path_custom_color(color) end + +--- @return Color +function NavigationAgent2D:get_debug_path_custom_color() end + +--- @param point_size float +function NavigationAgent2D:set_debug_path_custom_point_size(point_size) end + +--- @return float +function NavigationAgent2D:get_debug_path_custom_point_size() end + +--- @param line_width float +function NavigationAgent2D:set_debug_path_custom_line_width(line_width) end + +--- @return float +function NavigationAgent2D:get_debug_path_custom_line_width() end + + +----------------------------------------------------------- +-- NavigationAgent3D +----------------------------------------------------------- + +--- @class NavigationAgent3D: Node, { [string]: any } +--- @field target_position Vector3 +--- @field path_desired_distance float +--- @field target_desired_distance float +--- @field path_height_offset float +--- @field path_max_distance float +--- @field navigation_layers int +--- @field pathfinding_algorithm int +--- @field path_postprocessing int +--- @field path_metadata_flags int +--- @field simplify_path bool +--- @field simplify_epsilon float +--- @field path_return_max_length float +--- @field path_return_max_radius float +--- @field path_search_max_polygons int +--- @field path_search_max_distance float +--- @field avoidance_enabled bool +--- @field velocity Vector3 +--- @field height float +--- @field radius float +--- @field neighbor_distance float +--- @field max_neighbors int +--- @field time_horizon_agents float +--- @field time_horizon_obstacles float +--- @field max_speed float +--- @field use_3d_avoidance bool +--- @field keep_y_velocity bool +--- @field avoidance_layers int +--- @field avoidance_mask int +--- @field avoidance_priority float +--- @field debug_enabled bool +--- @field debug_use_custom bool +--- @field debug_path_custom_color Color +--- @field debug_path_custom_point_size float +NavigationAgent3D = {} + +--- @return NavigationAgent3D +function NavigationAgent3D:new() end + +NavigationAgent3D.path_changed = Signal() +NavigationAgent3D.target_reached = Signal() +NavigationAgent3D.waypoint_reached = Signal() +NavigationAgent3D.link_reached = Signal() +NavigationAgent3D.navigation_finished = Signal() +NavigationAgent3D.velocity_computed = Signal() + +--- @return RID +function NavigationAgent3D:get_rid() end + +--- @param enabled bool +function NavigationAgent3D:set_avoidance_enabled(enabled) end + +--- @return bool +function NavigationAgent3D:get_avoidance_enabled() end + +--- @param desired_distance float +function NavigationAgent3D:set_path_desired_distance(desired_distance) end + +--- @return float +function NavigationAgent3D:get_path_desired_distance() end + +--- @param desired_distance float +function NavigationAgent3D:set_target_desired_distance(desired_distance) end + +--- @return float +function NavigationAgent3D:get_target_desired_distance() end + +--- @param radius float +function NavigationAgent3D:set_radius(radius) end + +--- @return float +function NavigationAgent3D:get_radius() end + +--- @param height float +function NavigationAgent3D:set_height(height) end + +--- @return float +function NavigationAgent3D:get_height() end + +--- @param path_height_offset float +function NavigationAgent3D:set_path_height_offset(path_height_offset) end + +--- @return float +function NavigationAgent3D:get_path_height_offset() end + +--- @param enabled bool +function NavigationAgent3D:set_use_3d_avoidance(enabled) end + +--- @return bool +function NavigationAgent3D:get_use_3d_avoidance() end + +--- @param enabled bool +function NavigationAgent3D:set_keep_y_velocity(enabled) end + +--- @return bool +function NavigationAgent3D:get_keep_y_velocity() end + +--- @param neighbor_distance float +function NavigationAgent3D:set_neighbor_distance(neighbor_distance) end + +--- @return float +function NavigationAgent3D:get_neighbor_distance() end + +--- @param max_neighbors int +function NavigationAgent3D:set_max_neighbors(max_neighbors) end + +--- @return int +function NavigationAgent3D:get_max_neighbors() end + +--- @param time_horizon float +function NavigationAgent3D:set_time_horizon_agents(time_horizon) end + +--- @return float +function NavigationAgent3D:get_time_horizon_agents() end + +--- @param time_horizon float +function NavigationAgent3D:set_time_horizon_obstacles(time_horizon) end + +--- @return float +function NavigationAgent3D:get_time_horizon_obstacles() end + +--- @param max_speed float +function NavigationAgent3D:set_max_speed(max_speed) end + +--- @return float +function NavigationAgent3D:get_max_speed() end + +--- @param max_speed float +function NavigationAgent3D:set_path_max_distance(max_speed) end + +--- @return float +function NavigationAgent3D:get_path_max_distance() end + +--- @param navigation_layers int +function NavigationAgent3D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationAgent3D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationAgent3D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationAgent3D:get_navigation_layer_value(layer_number) end + +--- @param pathfinding_algorithm NavigationPathQueryParameters3D.PathfindingAlgorithm +function NavigationAgent3D:set_pathfinding_algorithm(pathfinding_algorithm) end + +--- @return NavigationPathQueryParameters3D.PathfindingAlgorithm +function NavigationAgent3D:get_pathfinding_algorithm() end + +--- @param path_postprocessing NavigationPathQueryParameters3D.PathPostProcessing +function NavigationAgent3D:set_path_postprocessing(path_postprocessing) end + +--- @return NavigationPathQueryParameters3D.PathPostProcessing +function NavigationAgent3D:get_path_postprocessing() end + +--- @param flags NavigationPathQueryParameters3D.PathMetadataFlags +function NavigationAgent3D:set_path_metadata_flags(flags) end + +--- @return NavigationPathQueryParameters3D.PathMetadataFlags +function NavigationAgent3D:get_path_metadata_flags() end + +--- @param navigation_map RID +function NavigationAgent3D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationAgent3D:get_navigation_map() end + +--- @param position Vector3 +function NavigationAgent3D:set_target_position(position) end + +--- @return Vector3 +function NavigationAgent3D:get_target_position() end + +--- @param enabled bool +function NavigationAgent3D:set_simplify_path(enabled) end + +--- @return bool +function NavigationAgent3D:get_simplify_path() end + +--- @param epsilon float +function NavigationAgent3D:set_simplify_epsilon(epsilon) end + +--- @return float +function NavigationAgent3D:get_simplify_epsilon() end + +--- @param length float +function NavigationAgent3D:set_path_return_max_length(length) end + +--- @return float +function NavigationAgent3D:get_path_return_max_length() end + +--- @param radius float +function NavigationAgent3D:set_path_return_max_radius(radius) end + +--- @return float +function NavigationAgent3D:get_path_return_max_radius() end + +--- @param max_polygons int +function NavigationAgent3D:set_path_search_max_polygons(max_polygons) end + +--- @return int +function NavigationAgent3D:get_path_search_max_polygons() end + +--- @param distance float +function NavigationAgent3D:set_path_search_max_distance(distance) end + +--- @return float +function NavigationAgent3D:get_path_search_max_distance() end + +--- @return float +function NavigationAgent3D:get_path_length() end + +--- @return Vector3 +function NavigationAgent3D:get_next_path_position() end + +--- @param velocity Vector3 +function NavigationAgent3D:set_velocity_forced(velocity) end + +--- @param velocity Vector3 +function NavigationAgent3D:set_velocity(velocity) end + +--- @return Vector3 +function NavigationAgent3D:get_velocity() end + +--- @return float +function NavigationAgent3D:distance_to_target() end + +--- @return NavigationPathQueryResult3D +function NavigationAgent3D:get_current_navigation_result() end + +--- @return PackedVector3Array +function NavigationAgent3D:get_current_navigation_path() end + +--- @return int +function NavigationAgent3D:get_current_navigation_path_index() end + +--- @return bool +function NavigationAgent3D:is_target_reached() end + +--- @return bool +function NavigationAgent3D:is_target_reachable() end + +--- @return bool +function NavigationAgent3D:is_navigation_finished() end + +--- @return Vector3 +function NavigationAgent3D:get_final_position() end + +--- @param layers int +function NavigationAgent3D:set_avoidance_layers(layers) end + +--- @return int +function NavigationAgent3D:get_avoidance_layers() end + +--- @param mask int +function NavigationAgent3D:set_avoidance_mask(mask) end + +--- @return int +function NavigationAgent3D:get_avoidance_mask() end + +--- @param layer_number int +--- @param value bool +function NavigationAgent3D:set_avoidance_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationAgent3D:get_avoidance_layer_value(layer_number) end + +--- @param mask_number int +--- @param value bool +function NavigationAgent3D:set_avoidance_mask_value(mask_number, value) end + +--- @param mask_number int +--- @return bool +function NavigationAgent3D:get_avoidance_mask_value(mask_number) end + +--- @param priority float +function NavigationAgent3D:set_avoidance_priority(priority) end + +--- @return float +function NavigationAgent3D:get_avoidance_priority() end + +--- @param enabled bool +function NavigationAgent3D:set_debug_enabled(enabled) end + +--- @return bool +function NavigationAgent3D:get_debug_enabled() end + +--- @param enabled bool +function NavigationAgent3D:set_debug_use_custom(enabled) end + +--- @return bool +function NavigationAgent3D:get_debug_use_custom() end + +--- @param color Color +function NavigationAgent3D:set_debug_path_custom_color(color) end + +--- @return Color +function NavigationAgent3D:get_debug_path_custom_color() end + +--- @param point_size float +function NavigationAgent3D:set_debug_path_custom_point_size(point_size) end + +--- @return float +function NavigationAgent3D:get_debug_path_custom_point_size() end + + +----------------------------------------------------------- +-- NavigationLink2D +----------------------------------------------------------- + +--- @class NavigationLink2D: Node2D, { [string]: any } +--- @field enabled bool +--- @field bidirectional bool +--- @field navigation_layers int +--- @field start_position Vector2 +--- @field end_position Vector2 +--- @field enter_cost float +--- @field travel_cost float +NavigationLink2D = {} + +--- @return NavigationLink2D +function NavigationLink2D:new() end + +--- @return RID +function NavigationLink2D:get_rid() end + +--- @param enabled bool +function NavigationLink2D:set_enabled(enabled) end + +--- @return bool +function NavigationLink2D:is_enabled() end + +--- @param navigation_map RID +function NavigationLink2D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationLink2D:get_navigation_map() end + +--- @param bidirectional bool +function NavigationLink2D:set_bidirectional(bidirectional) end + +--- @return bool +function NavigationLink2D:is_bidirectional() end + +--- @param navigation_layers int +function NavigationLink2D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationLink2D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationLink2D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationLink2D:get_navigation_layer_value(layer_number) end + +--- @param position Vector2 +function NavigationLink2D:set_start_position(position) end + +--- @return Vector2 +function NavigationLink2D:get_start_position() end + +--- @param position Vector2 +function NavigationLink2D:set_end_position(position) end + +--- @return Vector2 +function NavigationLink2D:get_end_position() end + +--- @param position Vector2 +function NavigationLink2D:set_global_start_position(position) end + +--- @return Vector2 +function NavigationLink2D:get_global_start_position() end + +--- @param position Vector2 +function NavigationLink2D:set_global_end_position(position) end + +--- @return Vector2 +function NavigationLink2D:get_global_end_position() end + +--- @param enter_cost float +function NavigationLink2D:set_enter_cost(enter_cost) end + +--- @return float +function NavigationLink2D:get_enter_cost() end + +--- @param travel_cost float +function NavigationLink2D:set_travel_cost(travel_cost) end + +--- @return float +function NavigationLink2D:get_travel_cost() end + + +----------------------------------------------------------- +-- NavigationLink3D +----------------------------------------------------------- + +--- @class NavigationLink3D: Node3D, { [string]: any } +--- @field enabled bool +--- @field bidirectional bool +--- @field navigation_layers int +--- @field start_position Vector3 +--- @field end_position Vector3 +--- @field enter_cost float +--- @field travel_cost float +NavigationLink3D = {} + +--- @return NavigationLink3D +function NavigationLink3D:new() end + +--- @return RID +function NavigationLink3D:get_rid() end + +--- @param enabled bool +function NavigationLink3D:set_enabled(enabled) end + +--- @return bool +function NavigationLink3D:is_enabled() end + +--- @param navigation_map RID +function NavigationLink3D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationLink3D:get_navigation_map() end + +--- @param bidirectional bool +function NavigationLink3D:set_bidirectional(bidirectional) end + +--- @return bool +function NavigationLink3D:is_bidirectional() end + +--- @param navigation_layers int +function NavigationLink3D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationLink3D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationLink3D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationLink3D:get_navigation_layer_value(layer_number) end + +--- @param position Vector3 +function NavigationLink3D:set_start_position(position) end + +--- @return Vector3 +function NavigationLink3D:get_start_position() end + +--- @param position Vector3 +function NavigationLink3D:set_end_position(position) end + +--- @return Vector3 +function NavigationLink3D:get_end_position() end + +--- @param position Vector3 +function NavigationLink3D:set_global_start_position(position) end + +--- @return Vector3 +function NavigationLink3D:get_global_start_position() end + +--- @param position Vector3 +function NavigationLink3D:set_global_end_position(position) end + +--- @return Vector3 +function NavigationLink3D:get_global_end_position() end + +--- @param enter_cost float +function NavigationLink3D:set_enter_cost(enter_cost) end + +--- @return float +function NavigationLink3D:get_enter_cost() end + +--- @param travel_cost float +function NavigationLink3D:set_travel_cost(travel_cost) end + +--- @return float +function NavigationLink3D:get_travel_cost() end + + +----------------------------------------------------------- +-- NavigationMesh +----------------------------------------------------------- + +--- @class NavigationMesh: Resource, { [string]: any } +--- @field vertices PackedVector3Array +--- @field polygons Array +--- @field sample_partition_type int +--- @field geometry_parsed_geometry_type int +--- @field geometry_collision_mask int +--- @field geometry_source_geometry_mode int +--- @field geometry_source_group_name String +--- @field cell_size float +--- @field cell_height float +--- @field border_size float +--- @field agent_height float +--- @field agent_radius float +--- @field agent_max_climb float +--- @field agent_max_slope float +--- @field region_min_size float +--- @field region_merge_size float +--- @field edge_max_length float +--- @field edge_max_error float +--- @field vertices_per_polygon float +--- @field detail_sample_distance float +--- @field detail_sample_max_error float +--- @field filter_low_hanging_obstacles bool +--- @field filter_ledge_spans bool +--- @field filter_walkable_low_height_spans bool +--- @field filter_baking_aabb AABB +--- @field filter_baking_aabb_offset Vector3 +NavigationMesh = {} + +--- @return NavigationMesh +function NavigationMesh:new() end + +--- @alias NavigationMesh.SamplePartitionType `NavigationMesh.SAMPLE_PARTITION_WATERSHED` | `NavigationMesh.SAMPLE_PARTITION_MONOTONE` | `NavigationMesh.SAMPLE_PARTITION_LAYERS` | `NavigationMesh.SAMPLE_PARTITION_MAX` +NavigationMesh.SAMPLE_PARTITION_WATERSHED = 0 +NavigationMesh.SAMPLE_PARTITION_MONOTONE = 1 +NavigationMesh.SAMPLE_PARTITION_LAYERS = 2 +NavigationMesh.SAMPLE_PARTITION_MAX = 3 + +--- @alias NavigationMesh.ParsedGeometryType `NavigationMesh.PARSED_GEOMETRY_MESH_INSTANCES` | `NavigationMesh.PARSED_GEOMETRY_STATIC_COLLIDERS` | `NavigationMesh.PARSED_GEOMETRY_BOTH` | `NavigationMesh.PARSED_GEOMETRY_MAX` +NavigationMesh.PARSED_GEOMETRY_MESH_INSTANCES = 0 +NavigationMesh.PARSED_GEOMETRY_STATIC_COLLIDERS = 1 +NavigationMesh.PARSED_GEOMETRY_BOTH = 2 +NavigationMesh.PARSED_GEOMETRY_MAX = 3 + +--- @alias NavigationMesh.SourceGeometryMode `NavigationMesh.SOURCE_GEOMETRY_ROOT_NODE_CHILDREN` | `NavigationMesh.SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN` | `NavigationMesh.SOURCE_GEOMETRY_GROUPS_EXPLICIT` | `NavigationMesh.SOURCE_GEOMETRY_MAX` +NavigationMesh.SOURCE_GEOMETRY_ROOT_NODE_CHILDREN = 0 +NavigationMesh.SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN = 1 +NavigationMesh.SOURCE_GEOMETRY_GROUPS_EXPLICIT = 2 +NavigationMesh.SOURCE_GEOMETRY_MAX = 3 + +--- @param sample_partition_type NavigationMesh.SamplePartitionType +function NavigationMesh:set_sample_partition_type(sample_partition_type) end + +--- @return NavigationMesh.SamplePartitionType +function NavigationMesh:get_sample_partition_type() end + +--- @param geometry_type NavigationMesh.ParsedGeometryType +function NavigationMesh:set_parsed_geometry_type(geometry_type) end + +--- @return NavigationMesh.ParsedGeometryType +function NavigationMesh:get_parsed_geometry_type() end + +--- @param mask int +function NavigationMesh:set_collision_mask(mask) end + +--- @return int +function NavigationMesh:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function NavigationMesh:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationMesh:get_collision_mask_value(layer_number) end + +--- @param mask NavigationMesh.SourceGeometryMode +function NavigationMesh:set_source_geometry_mode(mask) end + +--- @return NavigationMesh.SourceGeometryMode +function NavigationMesh:get_source_geometry_mode() end + +--- @param mask StringName +function NavigationMesh:set_source_group_name(mask) end + +--- @return StringName +function NavigationMesh:get_source_group_name() end + +--- @param cell_size float +function NavigationMesh:set_cell_size(cell_size) end + +--- @return float +function NavigationMesh:get_cell_size() end + +--- @param cell_height float +function NavigationMesh:set_cell_height(cell_height) end + +--- @return float +function NavigationMesh:get_cell_height() end + +--- @param border_size float +function NavigationMesh:set_border_size(border_size) end + +--- @return float +function NavigationMesh:get_border_size() end + +--- @param agent_height float +function NavigationMesh:set_agent_height(agent_height) end + +--- @return float +function NavigationMesh:get_agent_height() end + +--- @param agent_radius float +function NavigationMesh:set_agent_radius(agent_radius) end + +--- @return float +function NavigationMesh:get_agent_radius() end + +--- @param agent_max_climb float +function NavigationMesh:set_agent_max_climb(agent_max_climb) end + +--- @return float +function NavigationMesh:get_agent_max_climb() end + +--- @param agent_max_slope float +function NavigationMesh:set_agent_max_slope(agent_max_slope) end + +--- @return float +function NavigationMesh:get_agent_max_slope() end + +--- @param region_min_size float +function NavigationMesh:set_region_min_size(region_min_size) end + +--- @return float +function NavigationMesh:get_region_min_size() end + +--- @param region_merge_size float +function NavigationMesh:set_region_merge_size(region_merge_size) end + +--- @return float +function NavigationMesh:get_region_merge_size() end + +--- @param edge_max_length float +function NavigationMesh:set_edge_max_length(edge_max_length) end + +--- @return float +function NavigationMesh:get_edge_max_length() end + +--- @param edge_max_error float +function NavigationMesh:set_edge_max_error(edge_max_error) end + +--- @return float +function NavigationMesh:get_edge_max_error() end + +--- @param vertices_per_polygon float +function NavigationMesh:set_vertices_per_polygon(vertices_per_polygon) end + +--- @return float +function NavigationMesh:get_vertices_per_polygon() end + +--- @param detail_sample_dist float +function NavigationMesh:set_detail_sample_distance(detail_sample_dist) end + +--- @return float +function NavigationMesh:get_detail_sample_distance() end + +--- @param detail_sample_max_error float +function NavigationMesh:set_detail_sample_max_error(detail_sample_max_error) end + +--- @return float +function NavigationMesh:get_detail_sample_max_error() end + +--- @param filter_low_hanging_obstacles bool +function NavigationMesh:set_filter_low_hanging_obstacles(filter_low_hanging_obstacles) end + +--- @return bool +function NavigationMesh:get_filter_low_hanging_obstacles() end + +--- @param filter_ledge_spans bool +function NavigationMesh:set_filter_ledge_spans(filter_ledge_spans) end + +--- @return bool +function NavigationMesh:get_filter_ledge_spans() end + +--- @param filter_walkable_low_height_spans bool +function NavigationMesh:set_filter_walkable_low_height_spans(filter_walkable_low_height_spans) end + +--- @return bool +function NavigationMesh:get_filter_walkable_low_height_spans() end + +--- @param baking_aabb AABB +function NavigationMesh:set_filter_baking_aabb(baking_aabb) end + +--- @return AABB +function NavigationMesh:get_filter_baking_aabb() end + +--- @param baking_aabb_offset Vector3 +function NavigationMesh:set_filter_baking_aabb_offset(baking_aabb_offset) end + +--- @return Vector3 +function NavigationMesh:get_filter_baking_aabb_offset() end + +--- @param vertices PackedVector3Array +function NavigationMesh:set_vertices(vertices) end + +--- @return PackedVector3Array +function NavigationMesh:get_vertices() end + +--- @param polygon PackedInt32Array +function NavigationMesh:add_polygon(polygon) end + +--- @return int +function NavigationMesh:get_polygon_count() end + +--- @param idx int +--- @return PackedInt32Array +function NavigationMesh:get_polygon(idx) end + +function NavigationMesh:clear_polygons() end + +--- @param mesh Mesh +function NavigationMesh:create_from_mesh(mesh) end + +function NavigationMesh:clear() end + + +----------------------------------------------------------- +-- NavigationMeshGenerator +----------------------------------------------------------- + +--- @class NavigationMeshGenerator: Object, { [string]: any } +NavigationMeshGenerator = {} + +--- @param navigation_mesh NavigationMesh +--- @param root_node Node +function NavigationMeshGenerator:bake(navigation_mesh, root_node) end + +--- @param navigation_mesh NavigationMesh +function NavigationMeshGenerator:clear(navigation_mesh) end + +--- @param navigation_mesh NavigationMesh +--- @param source_geometry_data NavigationMeshSourceGeometryData3D +--- @param root_node Node +--- @param callback Callable? Default: Callable() +function NavigationMeshGenerator:parse_source_geometry_data(navigation_mesh, source_geometry_data, root_node, callback) end + +--- @param navigation_mesh NavigationMesh +--- @param source_geometry_data NavigationMeshSourceGeometryData3D +--- @param callback Callable? Default: Callable() +function NavigationMeshGenerator:bake_from_source_geometry_data(navigation_mesh, source_geometry_data, callback) end + + +----------------------------------------------------------- +-- NavigationMeshSourceGeometryData2D +----------------------------------------------------------- + +--- @class NavigationMeshSourceGeometryData2D: Resource, { [string]: any } +--- @field traversable_outlines Array +--- @field obstruction_outlines Array +--- @field projected_obstructions Array +NavigationMeshSourceGeometryData2D = {} + +--- @return NavigationMeshSourceGeometryData2D +function NavigationMeshSourceGeometryData2D:new() end + +function NavigationMeshSourceGeometryData2D:clear() end + +--- @return bool +function NavigationMeshSourceGeometryData2D:has_data() end + +--- @param traversable_outlines Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:set_traversable_outlines(traversable_outlines) end + +--- @return Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:get_traversable_outlines() end + +--- @param obstruction_outlines Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:set_obstruction_outlines(obstruction_outlines) end + +--- @return Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:get_obstruction_outlines() end + +--- @param traversable_outlines Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:append_traversable_outlines(traversable_outlines) end + +--- @param obstruction_outlines Array[PackedVector2Array] +function NavigationMeshSourceGeometryData2D:append_obstruction_outlines(obstruction_outlines) end + +--- @param shape_outline PackedVector2Array +function NavigationMeshSourceGeometryData2D:add_traversable_outline(shape_outline) end + +--- @param shape_outline PackedVector2Array +function NavigationMeshSourceGeometryData2D:add_obstruction_outline(shape_outline) end + +--- @param other_geometry NavigationMeshSourceGeometryData2D +function NavigationMeshSourceGeometryData2D:merge(other_geometry) end + +--- @param vertices PackedVector2Array +--- @param carve bool +function NavigationMeshSourceGeometryData2D:add_projected_obstruction(vertices, carve) end + +function NavigationMeshSourceGeometryData2D:clear_projected_obstructions() end + +--- @param projected_obstructions Array +function NavigationMeshSourceGeometryData2D:set_projected_obstructions(projected_obstructions) end + +--- @return Array +function NavigationMeshSourceGeometryData2D:get_projected_obstructions() end + +--- @return Rect2 +function NavigationMeshSourceGeometryData2D:get_bounds() end + + +----------------------------------------------------------- +-- NavigationMeshSourceGeometryData3D +----------------------------------------------------------- + +--- @class NavigationMeshSourceGeometryData3D: Resource, { [string]: any } +--- @field vertices PackedVector3Array +--- @field indices PackedInt32Array +--- @field projected_obstructions Array +NavigationMeshSourceGeometryData3D = {} + +--- @return NavigationMeshSourceGeometryData3D +function NavigationMeshSourceGeometryData3D:new() end + +--- @param vertices PackedFloat32Array +function NavigationMeshSourceGeometryData3D:set_vertices(vertices) end + +--- @return PackedFloat32Array +function NavigationMeshSourceGeometryData3D:get_vertices() end + +--- @param indices PackedInt32Array +function NavigationMeshSourceGeometryData3D:set_indices(indices) end + +--- @return PackedInt32Array +function NavigationMeshSourceGeometryData3D:get_indices() end + +--- @param vertices PackedFloat32Array +--- @param indices PackedInt32Array +function NavigationMeshSourceGeometryData3D:append_arrays(vertices, indices) end + +function NavigationMeshSourceGeometryData3D:clear() end + +--- @return bool +function NavigationMeshSourceGeometryData3D:has_data() end + +--- @param mesh Mesh +--- @param xform Transform3D +function NavigationMeshSourceGeometryData3D:add_mesh(mesh, xform) end + +--- @param mesh_array Array +--- @param xform Transform3D +function NavigationMeshSourceGeometryData3D:add_mesh_array(mesh_array, xform) end + +--- @param faces PackedVector3Array +--- @param xform Transform3D +function NavigationMeshSourceGeometryData3D:add_faces(faces, xform) end + +--- @param other_geometry NavigationMeshSourceGeometryData3D +function NavigationMeshSourceGeometryData3D:merge(other_geometry) end + +--- @param vertices PackedVector3Array +--- @param elevation float +--- @param height float +--- @param carve bool +function NavigationMeshSourceGeometryData3D:add_projected_obstruction(vertices, elevation, height, carve) end + +function NavigationMeshSourceGeometryData3D:clear_projected_obstructions() end + +--- @param projected_obstructions Array +function NavigationMeshSourceGeometryData3D:set_projected_obstructions(projected_obstructions) end + +--- @return Array +function NavigationMeshSourceGeometryData3D:get_projected_obstructions() end + +--- @return AABB +function NavigationMeshSourceGeometryData3D:get_bounds() end + + +----------------------------------------------------------- +-- NavigationObstacle2D +----------------------------------------------------------- + +--- @class NavigationObstacle2D: Node2D, { [string]: any } +--- @field radius float +--- @field vertices PackedVector2Array +--- @field affect_navigation_mesh bool +--- @field carve_navigation_mesh bool +--- @field avoidance_enabled bool +--- @field velocity Vector2 +--- @field avoidance_layers int +NavigationObstacle2D = {} + +--- @return NavigationObstacle2D +function NavigationObstacle2D:new() end + +--- @return RID +function NavigationObstacle2D:get_rid() end + +--- @param enabled bool +function NavigationObstacle2D:set_avoidance_enabled(enabled) end + +--- @return bool +function NavigationObstacle2D:get_avoidance_enabled() end + +--- @param navigation_map RID +function NavigationObstacle2D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationObstacle2D:get_navigation_map() end + +--- @param radius float +function NavigationObstacle2D:set_radius(radius) end + +--- @return float +function NavigationObstacle2D:get_radius() end + +--- @param velocity Vector2 +function NavigationObstacle2D:set_velocity(velocity) end + +--- @return Vector2 +function NavigationObstacle2D:get_velocity() end + +--- @param vertices PackedVector2Array +function NavigationObstacle2D:set_vertices(vertices) end + +--- @return PackedVector2Array +function NavigationObstacle2D:get_vertices() end + +--- @param layers int +function NavigationObstacle2D:set_avoidance_layers(layers) end + +--- @return int +function NavigationObstacle2D:get_avoidance_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationObstacle2D:set_avoidance_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationObstacle2D:get_avoidance_layer_value(layer_number) end + +--- @param enabled bool +function NavigationObstacle2D:set_affect_navigation_mesh(enabled) end + +--- @return bool +function NavigationObstacle2D:get_affect_navigation_mesh() end + +--- @param enabled bool +function NavigationObstacle2D:set_carve_navigation_mesh(enabled) end + +--- @return bool +function NavigationObstacle2D:get_carve_navigation_mesh() end + + +----------------------------------------------------------- +-- NavigationObstacle3D +----------------------------------------------------------- + +--- @class NavigationObstacle3D: Node3D, { [string]: any } +--- @field radius float +--- @field height float +--- @field vertices PackedVector3Array +--- @field affect_navigation_mesh bool +--- @field carve_navigation_mesh bool +--- @field avoidance_enabled bool +--- @field velocity Vector3 +--- @field avoidance_layers int +--- @field use_3d_avoidance bool +NavigationObstacle3D = {} + +--- @return NavigationObstacle3D +function NavigationObstacle3D:new() end + +--- @return RID +function NavigationObstacle3D:get_rid() end + +--- @param enabled bool +function NavigationObstacle3D:set_avoidance_enabled(enabled) end + +--- @return bool +function NavigationObstacle3D:get_avoidance_enabled() end + +--- @param navigation_map RID +function NavigationObstacle3D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationObstacle3D:get_navigation_map() end + +--- @param radius float +function NavigationObstacle3D:set_radius(radius) end + +--- @return float +function NavigationObstacle3D:get_radius() end + +--- @param height float +function NavigationObstacle3D:set_height(height) end + +--- @return float +function NavigationObstacle3D:get_height() end + +--- @param velocity Vector3 +function NavigationObstacle3D:set_velocity(velocity) end + +--- @return Vector3 +function NavigationObstacle3D:get_velocity() end + +--- @param vertices PackedVector3Array +function NavigationObstacle3D:set_vertices(vertices) end + +--- @return PackedVector3Array +function NavigationObstacle3D:get_vertices() end + +--- @param layers int +function NavigationObstacle3D:set_avoidance_layers(layers) end + +--- @return int +function NavigationObstacle3D:get_avoidance_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationObstacle3D:set_avoidance_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationObstacle3D:get_avoidance_layer_value(layer_number) end + +--- @param enabled bool +function NavigationObstacle3D:set_use_3d_avoidance(enabled) end + +--- @return bool +function NavigationObstacle3D:get_use_3d_avoidance() end + +--- @param enabled bool +function NavigationObstacle3D:set_affect_navigation_mesh(enabled) end + +--- @return bool +function NavigationObstacle3D:get_affect_navigation_mesh() end + +--- @param enabled bool +function NavigationObstacle3D:set_carve_navigation_mesh(enabled) end + +--- @return bool +function NavigationObstacle3D:get_carve_navigation_mesh() end + + +----------------------------------------------------------- +-- NavigationPathQueryParameters2D +----------------------------------------------------------- + +--- @class NavigationPathQueryParameters2D: RefCounted, { [string]: any } +--- @field map RID +--- @field start_position Vector2 +--- @field target_position Vector2 +--- @field navigation_layers int +--- @field pathfinding_algorithm int +--- @field path_postprocessing int +--- @field metadata_flags int +--- @field simplify_path bool +--- @field simplify_epsilon float +--- @field excluded_regions Array[RID] +--- @field included_regions Array[RID] +--- @field path_return_max_length float +--- @field path_return_max_radius float +--- @field path_search_max_polygons int +--- @field path_search_max_distance float +NavigationPathQueryParameters2D = {} + +--- @return NavigationPathQueryParameters2D +function NavigationPathQueryParameters2D:new() end + +--- @alias NavigationPathQueryParameters2D.PathfindingAlgorithm `NavigationPathQueryParameters2D.PATHFINDING_ALGORITHM_ASTAR` +NavigationPathQueryParameters2D.PATHFINDING_ALGORITHM_ASTAR = 0 + +--- @alias NavigationPathQueryParameters2D.PathPostProcessing `NavigationPathQueryParameters2D.PATH_POSTPROCESSING_CORRIDORFUNNEL` | `NavigationPathQueryParameters2D.PATH_POSTPROCESSING_EDGECENTERED` | `NavigationPathQueryParameters2D.PATH_POSTPROCESSING_NONE` +NavigationPathQueryParameters2D.PATH_POSTPROCESSING_CORRIDORFUNNEL = 0 +NavigationPathQueryParameters2D.PATH_POSTPROCESSING_EDGECENTERED = 1 +NavigationPathQueryParameters2D.PATH_POSTPROCESSING_NONE = 2 + +--- @alias NavigationPathQueryParameters2D.PathMetadataFlags `NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_NONE` | `NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_TYPES` | `NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_RIDS` | `NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_OWNERS` | `NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_ALL` +NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_NONE = 0 +NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_TYPES = 1 +NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_RIDS = 2 +NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_OWNERS = 4 +NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_ALL = 7 + +--- @param pathfinding_algorithm NavigationPathQueryParameters2D.PathfindingAlgorithm +function NavigationPathQueryParameters2D:set_pathfinding_algorithm(pathfinding_algorithm) end + +--- @return NavigationPathQueryParameters2D.PathfindingAlgorithm +function NavigationPathQueryParameters2D:get_pathfinding_algorithm() end + +--- @param path_postprocessing NavigationPathQueryParameters2D.PathPostProcessing +function NavigationPathQueryParameters2D:set_path_postprocessing(path_postprocessing) end + +--- @return NavigationPathQueryParameters2D.PathPostProcessing +function NavigationPathQueryParameters2D:get_path_postprocessing() end + +--- @param map RID +function NavigationPathQueryParameters2D:set_map(map) end + +--- @return RID +function NavigationPathQueryParameters2D:get_map() end + +--- @param start_position Vector2 +function NavigationPathQueryParameters2D:set_start_position(start_position) end + +--- @return Vector2 +function NavigationPathQueryParameters2D:get_start_position() end + +--- @param target_position Vector2 +function NavigationPathQueryParameters2D:set_target_position(target_position) end + +--- @return Vector2 +function NavigationPathQueryParameters2D:get_target_position() end + +--- @param navigation_layers int +function NavigationPathQueryParameters2D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationPathQueryParameters2D:get_navigation_layers() end + +--- @param flags NavigationPathQueryParameters2D.PathMetadataFlags +function NavigationPathQueryParameters2D:set_metadata_flags(flags) end + +--- @return NavigationPathQueryParameters2D.PathMetadataFlags +function NavigationPathQueryParameters2D:get_metadata_flags() end + +--- @param enabled bool +function NavigationPathQueryParameters2D:set_simplify_path(enabled) end + +--- @return bool +function NavigationPathQueryParameters2D:get_simplify_path() end + +--- @param epsilon float +function NavigationPathQueryParameters2D:set_simplify_epsilon(epsilon) end + +--- @return float +function NavigationPathQueryParameters2D:get_simplify_epsilon() end + +--- @param regions Array[RID] +function NavigationPathQueryParameters2D:set_included_regions(regions) end + +--- @return Array[RID] +function NavigationPathQueryParameters2D:get_included_regions() end + +--- @param regions Array[RID] +function NavigationPathQueryParameters2D:set_excluded_regions(regions) end + +--- @return Array[RID] +function NavigationPathQueryParameters2D:get_excluded_regions() end + +--- @param length float +function NavigationPathQueryParameters2D:set_path_return_max_length(length) end + +--- @return float +function NavigationPathQueryParameters2D:get_path_return_max_length() end + +--- @param radius float +function NavigationPathQueryParameters2D:set_path_return_max_radius(radius) end + +--- @return float +function NavigationPathQueryParameters2D:get_path_return_max_radius() end + +--- @param max_polygons int +function NavigationPathQueryParameters2D:set_path_search_max_polygons(max_polygons) end + +--- @return int +function NavigationPathQueryParameters2D:get_path_search_max_polygons() end + +--- @param distance float +function NavigationPathQueryParameters2D:set_path_search_max_distance(distance) end + +--- @return float +function NavigationPathQueryParameters2D:get_path_search_max_distance() end + + +----------------------------------------------------------- +-- NavigationPathQueryParameters3D +----------------------------------------------------------- + +--- @class NavigationPathQueryParameters3D: RefCounted, { [string]: any } +--- @field map RID +--- @field start_position Vector3 +--- @field target_position Vector3 +--- @field navigation_layers int +--- @field pathfinding_algorithm int +--- @field path_postprocessing int +--- @field metadata_flags int +--- @field simplify_path bool +--- @field simplify_epsilon float +--- @field excluded_regions Array[RID] +--- @field included_regions Array[RID] +--- @field path_return_max_length float +--- @field path_return_max_radius float +--- @field path_search_max_polygons int +--- @field path_search_max_distance float +NavigationPathQueryParameters3D = {} + +--- @return NavigationPathQueryParameters3D +function NavigationPathQueryParameters3D:new() end + +--- @alias NavigationPathQueryParameters3D.PathfindingAlgorithm `NavigationPathQueryParameters3D.PATHFINDING_ALGORITHM_ASTAR` +NavigationPathQueryParameters3D.PATHFINDING_ALGORITHM_ASTAR = 0 + +--- @alias NavigationPathQueryParameters3D.PathPostProcessing `NavigationPathQueryParameters3D.PATH_POSTPROCESSING_CORRIDORFUNNEL` | `NavigationPathQueryParameters3D.PATH_POSTPROCESSING_EDGECENTERED` | `NavigationPathQueryParameters3D.PATH_POSTPROCESSING_NONE` +NavigationPathQueryParameters3D.PATH_POSTPROCESSING_CORRIDORFUNNEL = 0 +NavigationPathQueryParameters3D.PATH_POSTPROCESSING_EDGECENTERED = 1 +NavigationPathQueryParameters3D.PATH_POSTPROCESSING_NONE = 2 + +--- @alias NavigationPathQueryParameters3D.PathMetadataFlags `NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_NONE` | `NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_TYPES` | `NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_RIDS` | `NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_OWNERS` | `NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_ALL` +NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_NONE = 0 +NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_TYPES = 1 +NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_RIDS = 2 +NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_OWNERS = 4 +NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_ALL = 7 + +--- @param pathfinding_algorithm NavigationPathQueryParameters3D.PathfindingAlgorithm +function NavigationPathQueryParameters3D:set_pathfinding_algorithm(pathfinding_algorithm) end + +--- @return NavigationPathQueryParameters3D.PathfindingAlgorithm +function NavigationPathQueryParameters3D:get_pathfinding_algorithm() end + +--- @param path_postprocessing NavigationPathQueryParameters3D.PathPostProcessing +function NavigationPathQueryParameters3D:set_path_postprocessing(path_postprocessing) end + +--- @return NavigationPathQueryParameters3D.PathPostProcessing +function NavigationPathQueryParameters3D:get_path_postprocessing() end + +--- @param map RID +function NavigationPathQueryParameters3D:set_map(map) end + +--- @return RID +function NavigationPathQueryParameters3D:get_map() end + +--- @param start_position Vector3 +function NavigationPathQueryParameters3D:set_start_position(start_position) end + +--- @return Vector3 +function NavigationPathQueryParameters3D:get_start_position() end + +--- @param target_position Vector3 +function NavigationPathQueryParameters3D:set_target_position(target_position) end + +--- @return Vector3 +function NavigationPathQueryParameters3D:get_target_position() end + +--- @param navigation_layers int +function NavigationPathQueryParameters3D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationPathQueryParameters3D:get_navigation_layers() end + +--- @param flags NavigationPathQueryParameters3D.PathMetadataFlags +function NavigationPathQueryParameters3D:set_metadata_flags(flags) end + +--- @return NavigationPathQueryParameters3D.PathMetadataFlags +function NavigationPathQueryParameters3D:get_metadata_flags() end + +--- @param enabled bool +function NavigationPathQueryParameters3D:set_simplify_path(enabled) end + +--- @return bool +function NavigationPathQueryParameters3D:get_simplify_path() end + +--- @param epsilon float +function NavigationPathQueryParameters3D:set_simplify_epsilon(epsilon) end + +--- @return float +function NavigationPathQueryParameters3D:get_simplify_epsilon() end + +--- @param regions Array[RID] +function NavigationPathQueryParameters3D:set_included_regions(regions) end + +--- @return Array[RID] +function NavigationPathQueryParameters3D:get_included_regions() end + +--- @param regions Array[RID] +function NavigationPathQueryParameters3D:set_excluded_regions(regions) end + +--- @return Array[RID] +function NavigationPathQueryParameters3D:get_excluded_regions() end + +--- @param length float +function NavigationPathQueryParameters3D:set_path_return_max_length(length) end + +--- @return float +function NavigationPathQueryParameters3D:get_path_return_max_length() end + +--- @param radius float +function NavigationPathQueryParameters3D:set_path_return_max_radius(radius) end + +--- @return float +function NavigationPathQueryParameters3D:get_path_return_max_radius() end + +--- @param max_polygons int +function NavigationPathQueryParameters3D:set_path_search_max_polygons(max_polygons) end + +--- @return int +function NavigationPathQueryParameters3D:get_path_search_max_polygons() end + +--- @param distance float +function NavigationPathQueryParameters3D:set_path_search_max_distance(distance) end + +--- @return float +function NavigationPathQueryParameters3D:get_path_search_max_distance() end + + +----------------------------------------------------------- +-- NavigationPathQueryResult2D +----------------------------------------------------------- + +--- @class NavigationPathQueryResult2D: RefCounted, { [string]: any } +--- @field path PackedVector2Array +--- @field path_types PackedInt32Array +--- @field path_rids Array[RID] +--- @field path_owner_ids PackedInt64Array +--- @field path_length float +NavigationPathQueryResult2D = {} + +--- @return NavigationPathQueryResult2D +function NavigationPathQueryResult2D:new() end + +--- @alias NavigationPathQueryResult2D.PathSegmentType `NavigationPathQueryResult2D.PATH_SEGMENT_TYPE_REGION` | `NavigationPathQueryResult2D.PATH_SEGMENT_TYPE_LINK` +NavigationPathQueryResult2D.PATH_SEGMENT_TYPE_REGION = 0 +NavigationPathQueryResult2D.PATH_SEGMENT_TYPE_LINK = 1 + +--- @param path PackedVector2Array +function NavigationPathQueryResult2D:set_path(path) end + +--- @return PackedVector2Array +function NavigationPathQueryResult2D:get_path() end + +--- @param path_types PackedInt32Array +function NavigationPathQueryResult2D:set_path_types(path_types) end + +--- @return PackedInt32Array +function NavigationPathQueryResult2D:get_path_types() end + +--- @param path_rids Array[RID] +function NavigationPathQueryResult2D:set_path_rids(path_rids) end + +--- @return Array[RID] +function NavigationPathQueryResult2D:get_path_rids() end + +--- @param path_owner_ids PackedInt64Array +function NavigationPathQueryResult2D:set_path_owner_ids(path_owner_ids) end + +--- @return PackedInt64Array +function NavigationPathQueryResult2D:get_path_owner_ids() end + +--- @param length float +function NavigationPathQueryResult2D:set_path_length(length) end + +--- @return float +function NavigationPathQueryResult2D:get_path_length() end + +function NavigationPathQueryResult2D:reset() end + + +----------------------------------------------------------- +-- NavigationPathQueryResult3D +----------------------------------------------------------- + +--- @class NavigationPathQueryResult3D: RefCounted, { [string]: any } +--- @field path PackedVector3Array +--- @field path_types PackedInt32Array +--- @field path_rids Array[RID] +--- @field path_owner_ids PackedInt64Array +--- @field path_length float +NavigationPathQueryResult3D = {} + +--- @return NavigationPathQueryResult3D +function NavigationPathQueryResult3D:new() end + +--- @alias NavigationPathQueryResult3D.PathSegmentType `NavigationPathQueryResult3D.PATH_SEGMENT_TYPE_REGION` | `NavigationPathQueryResult3D.PATH_SEGMENT_TYPE_LINK` +NavigationPathQueryResult3D.PATH_SEGMENT_TYPE_REGION = 0 +NavigationPathQueryResult3D.PATH_SEGMENT_TYPE_LINK = 1 + +--- @param path PackedVector3Array +function NavigationPathQueryResult3D:set_path(path) end + +--- @return PackedVector3Array +function NavigationPathQueryResult3D:get_path() end + +--- @param path_types PackedInt32Array +function NavigationPathQueryResult3D:set_path_types(path_types) end + +--- @return PackedInt32Array +function NavigationPathQueryResult3D:get_path_types() end + +--- @param path_rids Array[RID] +function NavigationPathQueryResult3D:set_path_rids(path_rids) end + +--- @return Array[RID] +function NavigationPathQueryResult3D:get_path_rids() end + +--- @param path_owner_ids PackedInt64Array +function NavigationPathQueryResult3D:set_path_owner_ids(path_owner_ids) end + +--- @return PackedInt64Array +function NavigationPathQueryResult3D:get_path_owner_ids() end + +--- @param length float +function NavigationPathQueryResult3D:set_path_length(length) end + +--- @return float +function NavigationPathQueryResult3D:get_path_length() end + +function NavigationPathQueryResult3D:reset() end + + +----------------------------------------------------------- +-- NavigationPolygon +----------------------------------------------------------- + +--- @class NavigationPolygon: Resource, { [string]: any } +--- @field vertices PackedVector2Array +--- @field polygons Array +--- @field outlines Array +--- @field sample_partition_type int +--- @field parsed_geometry_type int +--- @field parsed_collision_mask int +--- @field source_geometry_mode int +--- @field source_geometry_group_name String +--- @field cell_size float +--- @field border_size float +--- @field agent_radius float +--- @field baking_rect Rect2 +--- @field baking_rect_offset Vector2 +NavigationPolygon = {} + +--- @return NavigationPolygon +function NavigationPolygon:new() end + +--- @alias NavigationPolygon.SamplePartitionType `NavigationPolygon.SAMPLE_PARTITION_CONVEX_PARTITION` | `NavigationPolygon.SAMPLE_PARTITION_TRIANGULATE` | `NavigationPolygon.SAMPLE_PARTITION_MAX` +NavigationPolygon.SAMPLE_PARTITION_CONVEX_PARTITION = 0 +NavigationPolygon.SAMPLE_PARTITION_TRIANGULATE = 1 +NavigationPolygon.SAMPLE_PARTITION_MAX = 2 + +--- @alias NavigationPolygon.ParsedGeometryType `NavigationPolygon.PARSED_GEOMETRY_MESH_INSTANCES` | `NavigationPolygon.PARSED_GEOMETRY_STATIC_COLLIDERS` | `NavigationPolygon.PARSED_GEOMETRY_BOTH` | `NavigationPolygon.PARSED_GEOMETRY_MAX` +NavigationPolygon.PARSED_GEOMETRY_MESH_INSTANCES = 0 +NavigationPolygon.PARSED_GEOMETRY_STATIC_COLLIDERS = 1 +NavigationPolygon.PARSED_GEOMETRY_BOTH = 2 +NavigationPolygon.PARSED_GEOMETRY_MAX = 3 + +--- @alias NavigationPolygon.SourceGeometryMode `NavigationPolygon.SOURCE_GEOMETRY_ROOT_NODE_CHILDREN` | `NavigationPolygon.SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN` | `NavigationPolygon.SOURCE_GEOMETRY_GROUPS_EXPLICIT` | `NavigationPolygon.SOURCE_GEOMETRY_MAX` +NavigationPolygon.SOURCE_GEOMETRY_ROOT_NODE_CHILDREN = 0 +NavigationPolygon.SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN = 1 +NavigationPolygon.SOURCE_GEOMETRY_GROUPS_EXPLICIT = 2 +NavigationPolygon.SOURCE_GEOMETRY_MAX = 3 + +--- @param vertices PackedVector2Array +function NavigationPolygon:set_vertices(vertices) end + +--- @return PackedVector2Array +function NavigationPolygon:get_vertices() end + +--- @param polygon PackedInt32Array +function NavigationPolygon:add_polygon(polygon) end + +--- @return int +function NavigationPolygon:get_polygon_count() end + +--- @param idx int +--- @return PackedInt32Array +function NavigationPolygon:get_polygon(idx) end + +function NavigationPolygon:clear_polygons() end + +--- @return NavigationMesh +function NavigationPolygon:get_navigation_mesh() end + +--- @param outline PackedVector2Array +function NavigationPolygon:add_outline(outline) end + +--- @param outline PackedVector2Array +--- @param index int +function NavigationPolygon:add_outline_at_index(outline, index) end + +--- @return int +function NavigationPolygon:get_outline_count() end + +--- @param idx int +--- @param outline PackedVector2Array +function NavigationPolygon:set_outline(idx, outline) end + +--- @param idx int +--- @return PackedVector2Array +function NavigationPolygon:get_outline(idx) end + +--- @param idx int +function NavigationPolygon:remove_outline(idx) end + +function NavigationPolygon:clear_outlines() end + +function NavigationPolygon:make_polygons_from_outlines() end + +--- @param cell_size float +function NavigationPolygon:set_cell_size(cell_size) end + +--- @return float +function NavigationPolygon:get_cell_size() end + +--- @param border_size float +function NavigationPolygon:set_border_size(border_size) end + +--- @return float +function NavigationPolygon:get_border_size() end + +--- @param sample_partition_type NavigationPolygon.SamplePartitionType +function NavigationPolygon:set_sample_partition_type(sample_partition_type) end + +--- @return NavigationPolygon.SamplePartitionType +function NavigationPolygon:get_sample_partition_type() end + +--- @param geometry_type NavigationPolygon.ParsedGeometryType +function NavigationPolygon:set_parsed_geometry_type(geometry_type) end + +--- @return NavigationPolygon.ParsedGeometryType +function NavigationPolygon:get_parsed_geometry_type() end + +--- @param mask int +function NavigationPolygon:set_parsed_collision_mask(mask) end + +--- @return int +function NavigationPolygon:get_parsed_collision_mask() end + +--- @param layer_number int +--- @param value bool +function NavigationPolygon:set_parsed_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationPolygon:get_parsed_collision_mask_value(layer_number) end + +--- @param geometry_mode NavigationPolygon.SourceGeometryMode +function NavigationPolygon:set_source_geometry_mode(geometry_mode) end + +--- @return NavigationPolygon.SourceGeometryMode +function NavigationPolygon:get_source_geometry_mode() end + +--- @param group_name StringName +function NavigationPolygon:set_source_geometry_group_name(group_name) end + +--- @return StringName +function NavigationPolygon:get_source_geometry_group_name() end + +--- @param agent_radius float +function NavigationPolygon:set_agent_radius(agent_radius) end + +--- @return float +function NavigationPolygon:get_agent_radius() end + +--- @param rect Rect2 +function NavigationPolygon:set_baking_rect(rect) end + +--- @return Rect2 +function NavigationPolygon:get_baking_rect() end + +--- @param rect_offset Vector2 +function NavigationPolygon:set_baking_rect_offset(rect_offset) end + +--- @return Vector2 +function NavigationPolygon:get_baking_rect_offset() end + +function NavigationPolygon:clear() end + + +----------------------------------------------------------- +-- NavigationRegion2D +----------------------------------------------------------- + +--- @class NavigationRegion2D: Node2D, { [string]: any } +--- @field navigation_polygon NavigationPolygon +--- @field enabled bool +--- @field use_edge_connections bool +--- @field navigation_layers int +--- @field enter_cost float +--- @field travel_cost float +NavigationRegion2D = {} + +--- @return NavigationRegion2D +function NavigationRegion2D:new() end + +NavigationRegion2D.navigation_polygon_changed = Signal() +NavigationRegion2D.bake_finished = Signal() + +--- @return RID +function NavigationRegion2D:get_rid() end + +--- @param navigation_polygon NavigationPolygon +function NavigationRegion2D:set_navigation_polygon(navigation_polygon) end + +--- @return NavigationPolygon +function NavigationRegion2D:get_navigation_polygon() end + +--- @param enabled bool +function NavigationRegion2D:set_enabled(enabled) end + +--- @return bool +function NavigationRegion2D:is_enabled() end + +--- @param navigation_map RID +function NavigationRegion2D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationRegion2D:get_navigation_map() end + +--- @param enabled bool +function NavigationRegion2D:set_use_edge_connections(enabled) end + +--- @return bool +function NavigationRegion2D:get_use_edge_connections() end + +--- @param navigation_layers int +function NavigationRegion2D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationRegion2D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationRegion2D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationRegion2D:get_navigation_layer_value(layer_number) end + +--- @return RID +function NavigationRegion2D:get_region_rid() end + +--- @param enter_cost float +function NavigationRegion2D:set_enter_cost(enter_cost) end + +--- @return float +function NavigationRegion2D:get_enter_cost() end + +--- @param travel_cost float +function NavigationRegion2D:set_travel_cost(travel_cost) end + +--- @return float +function NavigationRegion2D:get_travel_cost() end + +--- @param on_thread bool? Default: true +function NavigationRegion2D:bake_navigation_polygon(on_thread) end + +--- @return bool +function NavigationRegion2D:is_baking() end + +--- @return Rect2 +function NavigationRegion2D:get_bounds() end + + +----------------------------------------------------------- +-- NavigationRegion3D +----------------------------------------------------------- + +--- @class NavigationRegion3D: Node3D, { [string]: any } +--- @field navigation_mesh NavigationMesh +--- @field enabled bool +--- @field use_edge_connections bool +--- @field navigation_layers int +--- @field enter_cost float +--- @field travel_cost float +NavigationRegion3D = {} + +--- @return NavigationRegion3D +function NavigationRegion3D:new() end + +NavigationRegion3D.navigation_mesh_changed = Signal() +NavigationRegion3D.bake_finished = Signal() + +--- @return RID +function NavigationRegion3D:get_rid() end + +--- @param navigation_mesh NavigationMesh +function NavigationRegion3D:set_navigation_mesh(navigation_mesh) end + +--- @return NavigationMesh +function NavigationRegion3D:get_navigation_mesh() end + +--- @param enabled bool +function NavigationRegion3D:set_enabled(enabled) end + +--- @return bool +function NavigationRegion3D:is_enabled() end + +--- @param navigation_map RID +function NavigationRegion3D:set_navigation_map(navigation_map) end + +--- @return RID +function NavigationRegion3D:get_navigation_map() end + +--- @param enabled bool +function NavigationRegion3D:set_use_edge_connections(enabled) end + +--- @return bool +function NavigationRegion3D:get_use_edge_connections() end + +--- @param navigation_layers int +function NavigationRegion3D:set_navigation_layers(navigation_layers) end + +--- @return int +function NavigationRegion3D:get_navigation_layers() end + +--- @param layer_number int +--- @param value bool +function NavigationRegion3D:set_navigation_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function NavigationRegion3D:get_navigation_layer_value(layer_number) end + +--- @return RID +function NavigationRegion3D:get_region_rid() end + +--- @param enter_cost float +function NavigationRegion3D:set_enter_cost(enter_cost) end + +--- @return float +function NavigationRegion3D:get_enter_cost() end + +--- @param travel_cost float +function NavigationRegion3D:set_travel_cost(travel_cost) end + +--- @return float +function NavigationRegion3D:get_travel_cost() end + +--- @param on_thread bool? Default: true +function NavigationRegion3D:bake_navigation_mesh(on_thread) end + +--- @return bool +function NavigationRegion3D:is_baking() end + +--- @return AABB +function NavigationRegion3D:get_bounds() end + + +----------------------------------------------------------- +-- NavigationServer2D +----------------------------------------------------------- + +--- @class NavigationServer2D: Object, { [string]: any } +NavigationServer2D = {} + +--- @alias NavigationServer2D.ProcessInfo `NavigationServer2D.INFO_ACTIVE_MAPS` | `NavigationServer2D.INFO_REGION_COUNT` | `NavigationServer2D.INFO_AGENT_COUNT` | `NavigationServer2D.INFO_LINK_COUNT` | `NavigationServer2D.INFO_POLYGON_COUNT` | `NavigationServer2D.INFO_EDGE_COUNT` | `NavigationServer2D.INFO_EDGE_MERGE_COUNT` | `NavigationServer2D.INFO_EDGE_CONNECTION_COUNT` | `NavigationServer2D.INFO_EDGE_FREE_COUNT` | `NavigationServer2D.INFO_OBSTACLE_COUNT` +NavigationServer2D.INFO_ACTIVE_MAPS = 0 +NavigationServer2D.INFO_REGION_COUNT = 1 +NavigationServer2D.INFO_AGENT_COUNT = 2 +NavigationServer2D.INFO_LINK_COUNT = 3 +NavigationServer2D.INFO_POLYGON_COUNT = 4 +NavigationServer2D.INFO_EDGE_COUNT = 5 +NavigationServer2D.INFO_EDGE_MERGE_COUNT = 6 +NavigationServer2D.INFO_EDGE_CONNECTION_COUNT = 7 +NavigationServer2D.INFO_EDGE_FREE_COUNT = 8 +NavigationServer2D.INFO_OBSTACLE_COUNT = 9 + +NavigationServer2D.map_changed = Signal() +NavigationServer2D.navigation_debug_changed = Signal() +NavigationServer2D.avoidance_debug_changed = Signal() + +--- @return Array[RID] +function NavigationServer2D:get_maps() end + +--- @return RID +function NavigationServer2D:map_create() end + +--- @param map RID +--- @param active bool +function NavigationServer2D:map_set_active(map, active) end + +--- @param map RID +--- @return bool +function NavigationServer2D:map_is_active(map) end + +--- @param map RID +--- @param cell_size float +function NavigationServer2D:map_set_cell_size(map, cell_size) end + +--- @param map RID +--- @return float +function NavigationServer2D:map_get_cell_size(map) end + +--- @param map RID +--- @param scale float +function NavigationServer2D:map_set_merge_rasterizer_cell_scale(map, scale) end + +--- @param map RID +--- @return float +function NavigationServer2D:map_get_merge_rasterizer_cell_scale(map) end + +--- @param map RID +--- @param enabled bool +function NavigationServer2D:map_set_use_edge_connections(map, enabled) end + +--- @param map RID +--- @return bool +function NavigationServer2D:map_get_use_edge_connections(map) end + +--- @param map RID +--- @param margin float +function NavigationServer2D:map_set_edge_connection_margin(map, margin) end + +--- @param map RID +--- @return float +function NavigationServer2D:map_get_edge_connection_margin(map) end + +--- @param map RID +--- @param radius float +function NavigationServer2D:map_set_link_connection_radius(map, radius) end + +--- @param map RID +--- @return float +function NavigationServer2D:map_get_link_connection_radius(map) end + +--- @param map RID +--- @param origin Vector2 +--- @param destination Vector2 +--- @param optimize bool +--- @param navigation_layers int? Default: 1 +--- @return PackedVector2Array +function NavigationServer2D:map_get_path(map, origin, destination, optimize, navigation_layers) end + +--- @param map RID +--- @param to_point Vector2 +--- @return Vector2 +function NavigationServer2D:map_get_closest_point(map, to_point) end + +--- @param map RID +--- @param to_point Vector2 +--- @return RID +function NavigationServer2D:map_get_closest_point_owner(map, to_point) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer2D:map_get_links(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer2D:map_get_regions(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer2D:map_get_agents(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer2D:map_get_obstacles(map) end + +--- @param map RID +function NavigationServer2D:map_force_update(map) end + +--- @param map RID +--- @return int +function NavigationServer2D:map_get_iteration_id(map) end + +--- @param map RID +--- @param enabled bool +function NavigationServer2D:map_set_use_async_iterations(map, enabled) end + +--- @param map RID +--- @return bool +function NavigationServer2D:map_get_use_async_iterations(map) end + +--- @param map RID +--- @param navigation_layers int +--- @param uniformly bool +--- @return Vector2 +function NavigationServer2D:map_get_random_point(map, navigation_layers, uniformly) end + +--- @param parameters NavigationPathQueryParameters2D +--- @param result NavigationPathQueryResult2D +--- @param callback Callable? Default: Callable() +function NavigationServer2D:query_path(parameters, result, callback) end + +--- @return RID +function NavigationServer2D:region_create() end + +--- @param region RID +--- @return int +function NavigationServer2D:region_get_iteration_id(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer2D:region_set_use_async_iterations(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer2D:region_get_use_async_iterations(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer2D:region_set_enabled(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer2D:region_get_enabled(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer2D:region_set_use_edge_connections(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer2D:region_get_use_edge_connections(region) end + +--- @param region RID +--- @param enter_cost float +function NavigationServer2D:region_set_enter_cost(region, enter_cost) end + +--- @param region RID +--- @return float +function NavigationServer2D:region_get_enter_cost(region) end + +--- @param region RID +--- @param travel_cost float +function NavigationServer2D:region_set_travel_cost(region, travel_cost) end + +--- @param region RID +--- @return float +function NavigationServer2D:region_get_travel_cost(region) end + +--- @param region RID +--- @param owner_id int +function NavigationServer2D:region_set_owner_id(region, owner_id) end + +--- @param region RID +--- @return int +function NavigationServer2D:region_get_owner_id(region) end + +--- @param region RID +--- @param point Vector2 +--- @return bool +function NavigationServer2D:region_owns_point(region, point) end + +--- @param region RID +--- @param map RID +function NavigationServer2D:region_set_map(region, map) end + +--- @param region RID +--- @return RID +function NavigationServer2D:region_get_map(region) end + +--- @param region RID +--- @param navigation_layers int +function NavigationServer2D:region_set_navigation_layers(region, navigation_layers) end + +--- @param region RID +--- @return int +function NavigationServer2D:region_get_navigation_layers(region) end + +--- @param region RID +--- @param transform Transform2D +function NavigationServer2D:region_set_transform(region, transform) end + +--- @param region RID +--- @return Transform2D +function NavigationServer2D:region_get_transform(region) end + +--- @param region RID +--- @param navigation_polygon NavigationPolygon +function NavigationServer2D:region_set_navigation_polygon(region, navigation_polygon) end + +--- @param region RID +--- @return int +function NavigationServer2D:region_get_connections_count(region) end + +--- @param region RID +--- @param connection int +--- @return Vector2 +function NavigationServer2D:region_get_connection_pathway_start(region, connection) end + +--- @param region RID +--- @param connection int +--- @return Vector2 +function NavigationServer2D:region_get_connection_pathway_end(region, connection) end + +--- @param region RID +--- @param to_point Vector2 +--- @return Vector2 +function NavigationServer2D:region_get_closest_point(region, to_point) end + +--- @param region RID +--- @param navigation_layers int +--- @param uniformly bool +--- @return Vector2 +function NavigationServer2D:region_get_random_point(region, navigation_layers, uniformly) end + +--- @param region RID +--- @return Rect2 +function NavigationServer2D:region_get_bounds(region) end + +--- @return RID +function NavigationServer2D:link_create() end + +--- @param link RID +--- @return int +function NavigationServer2D:link_get_iteration_id(link) end + +--- @param link RID +--- @param map RID +function NavigationServer2D:link_set_map(link, map) end + +--- @param link RID +--- @return RID +function NavigationServer2D:link_get_map(link) end + +--- @param link RID +--- @param enabled bool +function NavigationServer2D:link_set_enabled(link, enabled) end + +--- @param link RID +--- @return bool +function NavigationServer2D:link_get_enabled(link) end + +--- @param link RID +--- @param bidirectional bool +function NavigationServer2D:link_set_bidirectional(link, bidirectional) end + +--- @param link RID +--- @return bool +function NavigationServer2D:link_is_bidirectional(link) end + +--- @param link RID +--- @param navigation_layers int +function NavigationServer2D:link_set_navigation_layers(link, navigation_layers) end + +--- @param link RID +--- @return int +function NavigationServer2D:link_get_navigation_layers(link) end + +--- @param link RID +--- @param position Vector2 +function NavigationServer2D:link_set_start_position(link, position) end + +--- @param link RID +--- @return Vector2 +function NavigationServer2D:link_get_start_position(link) end + +--- @param link RID +--- @param position Vector2 +function NavigationServer2D:link_set_end_position(link, position) end + +--- @param link RID +--- @return Vector2 +function NavigationServer2D:link_get_end_position(link) end + +--- @param link RID +--- @param enter_cost float +function NavigationServer2D:link_set_enter_cost(link, enter_cost) end + +--- @param link RID +--- @return float +function NavigationServer2D:link_get_enter_cost(link) end + +--- @param link RID +--- @param travel_cost float +function NavigationServer2D:link_set_travel_cost(link, travel_cost) end + +--- @param link RID +--- @return float +function NavigationServer2D:link_get_travel_cost(link) end + +--- @param link RID +--- @param owner_id int +function NavigationServer2D:link_set_owner_id(link, owner_id) end + +--- @param link RID +--- @return int +function NavigationServer2D:link_get_owner_id(link) end + +--- @return RID +function NavigationServer2D:agent_create() end + +--- @param agent RID +--- @param enabled bool +function NavigationServer2D:agent_set_avoidance_enabled(agent, enabled) end + +--- @param agent RID +--- @return bool +function NavigationServer2D:agent_get_avoidance_enabled(agent) end + +--- @param agent RID +--- @param map RID +function NavigationServer2D:agent_set_map(agent, map) end + +--- @param agent RID +--- @return RID +function NavigationServer2D:agent_get_map(agent) end + +--- @param agent RID +--- @param paused bool +function NavigationServer2D:agent_set_paused(agent, paused) end + +--- @param agent RID +--- @return bool +function NavigationServer2D:agent_get_paused(agent) end + +--- @param agent RID +--- @param distance float +function NavigationServer2D:agent_set_neighbor_distance(agent, distance) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_neighbor_distance(agent) end + +--- @param agent RID +--- @param count int +function NavigationServer2D:agent_set_max_neighbors(agent, count) end + +--- @param agent RID +--- @return int +function NavigationServer2D:agent_get_max_neighbors(agent) end + +--- @param agent RID +--- @param time_horizon float +function NavigationServer2D:agent_set_time_horizon_agents(agent, time_horizon) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_time_horizon_agents(agent) end + +--- @param agent RID +--- @param time_horizon float +function NavigationServer2D:agent_set_time_horizon_obstacles(agent, time_horizon) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_time_horizon_obstacles(agent) end + +--- @param agent RID +--- @param radius float +function NavigationServer2D:agent_set_radius(agent, radius) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_radius(agent) end + +--- @param agent RID +--- @param max_speed float +function NavigationServer2D:agent_set_max_speed(agent, max_speed) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_max_speed(agent) end + +--- @param agent RID +--- @param velocity Vector2 +function NavigationServer2D:agent_set_velocity_forced(agent, velocity) end + +--- @param agent RID +--- @param velocity Vector2 +function NavigationServer2D:agent_set_velocity(agent, velocity) end + +--- @param agent RID +--- @return Vector2 +function NavigationServer2D:agent_get_velocity(agent) end + +--- @param agent RID +--- @param position Vector2 +function NavigationServer2D:agent_set_position(agent, position) end + +--- @param agent RID +--- @return Vector2 +function NavigationServer2D:agent_get_position(agent) end + +--- @param agent RID +--- @return bool +function NavigationServer2D:agent_is_map_changed(agent) end + +--- @param agent RID +--- @param callback Callable +function NavigationServer2D:agent_set_avoidance_callback(agent, callback) end + +--- @param agent RID +--- @return bool +function NavigationServer2D:agent_has_avoidance_callback(agent) end + +--- @param agent RID +--- @param layers int +function NavigationServer2D:agent_set_avoidance_layers(agent, layers) end + +--- @param agent RID +--- @return int +function NavigationServer2D:agent_get_avoidance_layers(agent) end + +--- @param agent RID +--- @param mask int +function NavigationServer2D:agent_set_avoidance_mask(agent, mask) end + +--- @param agent RID +--- @return int +function NavigationServer2D:agent_get_avoidance_mask(agent) end + +--- @param agent RID +--- @param priority float +function NavigationServer2D:agent_set_avoidance_priority(agent, priority) end + +--- @param agent RID +--- @return float +function NavigationServer2D:agent_get_avoidance_priority(agent) end + +--- @return RID +function NavigationServer2D:obstacle_create() end + +--- @param obstacle RID +--- @param enabled bool +function NavigationServer2D:obstacle_set_avoidance_enabled(obstacle, enabled) end + +--- @param obstacle RID +--- @return bool +function NavigationServer2D:obstacle_get_avoidance_enabled(obstacle) end + +--- @param obstacle RID +--- @param map RID +function NavigationServer2D:obstacle_set_map(obstacle, map) end + +--- @param obstacle RID +--- @return RID +function NavigationServer2D:obstacle_get_map(obstacle) end + +--- @param obstacle RID +--- @param paused bool +function NavigationServer2D:obstacle_set_paused(obstacle, paused) end + +--- @param obstacle RID +--- @return bool +function NavigationServer2D:obstacle_get_paused(obstacle) end + +--- @param obstacle RID +--- @param radius float +function NavigationServer2D:obstacle_set_radius(obstacle, radius) end + +--- @param obstacle RID +--- @return float +function NavigationServer2D:obstacle_get_radius(obstacle) end + +--- @param obstacle RID +--- @param velocity Vector2 +function NavigationServer2D:obstacle_set_velocity(obstacle, velocity) end + +--- @param obstacle RID +--- @return Vector2 +function NavigationServer2D:obstacle_get_velocity(obstacle) end + +--- @param obstacle RID +--- @param position Vector2 +function NavigationServer2D:obstacle_set_position(obstacle, position) end + +--- @param obstacle RID +--- @return Vector2 +function NavigationServer2D:obstacle_get_position(obstacle) end + +--- @param obstacle RID +--- @param vertices PackedVector2Array +function NavigationServer2D:obstacle_set_vertices(obstacle, vertices) end + +--- @param obstacle RID +--- @return PackedVector2Array +function NavigationServer2D:obstacle_get_vertices(obstacle) end + +--- @param obstacle RID +--- @param layers int +function NavigationServer2D:obstacle_set_avoidance_layers(obstacle, layers) end + +--- @param obstacle RID +--- @return int +function NavigationServer2D:obstacle_get_avoidance_layers(obstacle) end + +--- @param navigation_polygon NavigationPolygon +--- @param source_geometry_data NavigationMeshSourceGeometryData2D +--- @param root_node Node +--- @param callback Callable? Default: Callable() +function NavigationServer2D:parse_source_geometry_data(navigation_polygon, source_geometry_data, root_node, callback) end + +--- @param navigation_polygon NavigationPolygon +--- @param source_geometry_data NavigationMeshSourceGeometryData2D +--- @param callback Callable? Default: Callable() +function NavigationServer2D:bake_from_source_geometry_data(navigation_polygon, source_geometry_data, callback) end + +--- @param navigation_polygon NavigationPolygon +--- @param source_geometry_data NavigationMeshSourceGeometryData2D +--- @param callback Callable? Default: Callable() +function NavigationServer2D:bake_from_source_geometry_data_async(navigation_polygon, source_geometry_data, callback) end + +--- @param navigation_polygon NavigationPolygon +--- @return bool +function NavigationServer2D:is_baking_navigation_polygon(navigation_polygon) end + +--- @return RID +function NavigationServer2D:source_geometry_parser_create() end + +--- @param parser RID +--- @param callback Callable +function NavigationServer2D:source_geometry_parser_set_callback(parser, callback) end + +--- @param path PackedVector2Array +--- @param epsilon float +--- @return PackedVector2Array +function NavigationServer2D:simplify_path(path, epsilon) end + +--- @param rid RID +function NavigationServer2D:free_rid(rid) end + +--- @param active bool +function NavigationServer2D:set_active(active) end + +--- @param enabled bool +function NavigationServer2D:set_debug_enabled(enabled) end + +--- @return bool +function NavigationServer2D:get_debug_enabled() end + +--- @param process_info NavigationServer2D.ProcessInfo +--- @return int +function NavigationServer2D:get_process_info(process_info) end + + +----------------------------------------------------------- +-- NavigationServer3D +----------------------------------------------------------- + +--- @class NavigationServer3D: Object, { [string]: any } +NavigationServer3D = {} + +--- @alias NavigationServer3D.ProcessInfo `NavigationServer3D.INFO_ACTIVE_MAPS` | `NavigationServer3D.INFO_REGION_COUNT` | `NavigationServer3D.INFO_AGENT_COUNT` | `NavigationServer3D.INFO_LINK_COUNT` | `NavigationServer3D.INFO_POLYGON_COUNT` | `NavigationServer3D.INFO_EDGE_COUNT` | `NavigationServer3D.INFO_EDGE_MERGE_COUNT` | `NavigationServer3D.INFO_EDGE_CONNECTION_COUNT` | `NavigationServer3D.INFO_EDGE_FREE_COUNT` | `NavigationServer3D.INFO_OBSTACLE_COUNT` +NavigationServer3D.INFO_ACTIVE_MAPS = 0 +NavigationServer3D.INFO_REGION_COUNT = 1 +NavigationServer3D.INFO_AGENT_COUNT = 2 +NavigationServer3D.INFO_LINK_COUNT = 3 +NavigationServer3D.INFO_POLYGON_COUNT = 4 +NavigationServer3D.INFO_EDGE_COUNT = 5 +NavigationServer3D.INFO_EDGE_MERGE_COUNT = 6 +NavigationServer3D.INFO_EDGE_CONNECTION_COUNT = 7 +NavigationServer3D.INFO_EDGE_FREE_COUNT = 8 +NavigationServer3D.INFO_OBSTACLE_COUNT = 9 + +NavigationServer3D.map_changed = Signal() +NavigationServer3D.navigation_debug_changed = Signal() +NavigationServer3D.avoidance_debug_changed = Signal() + +--- @return Array[RID] +function NavigationServer3D:get_maps() end + +--- @return RID +function NavigationServer3D:map_create() end + +--- @param map RID +--- @param active bool +function NavigationServer3D:map_set_active(map, active) end + +--- @param map RID +--- @return bool +function NavigationServer3D:map_is_active(map) end + +--- @param map RID +--- @param up Vector3 +function NavigationServer3D:map_set_up(map, up) end + +--- @param map RID +--- @return Vector3 +function NavigationServer3D:map_get_up(map) end + +--- @param map RID +--- @param cell_size float +function NavigationServer3D:map_set_cell_size(map, cell_size) end + +--- @param map RID +--- @return float +function NavigationServer3D:map_get_cell_size(map) end + +--- @param map RID +--- @param cell_height float +function NavigationServer3D:map_set_cell_height(map, cell_height) end + +--- @param map RID +--- @return float +function NavigationServer3D:map_get_cell_height(map) end + +--- @param map RID +--- @param scale float +function NavigationServer3D:map_set_merge_rasterizer_cell_scale(map, scale) end + +--- @param map RID +--- @return float +function NavigationServer3D:map_get_merge_rasterizer_cell_scale(map) end + +--- @param map RID +--- @param enabled bool +function NavigationServer3D:map_set_use_edge_connections(map, enabled) end + +--- @param map RID +--- @return bool +function NavigationServer3D:map_get_use_edge_connections(map) end + +--- @param map RID +--- @param margin float +function NavigationServer3D:map_set_edge_connection_margin(map, margin) end + +--- @param map RID +--- @return float +function NavigationServer3D:map_get_edge_connection_margin(map) end + +--- @param map RID +--- @param radius float +function NavigationServer3D:map_set_link_connection_radius(map, radius) end + +--- @param map RID +--- @return float +function NavigationServer3D:map_get_link_connection_radius(map) end + +--- @param map RID +--- @param origin Vector3 +--- @param destination Vector3 +--- @param optimize bool +--- @param navigation_layers int? Default: 1 +--- @return PackedVector3Array +function NavigationServer3D:map_get_path(map, origin, destination, optimize, navigation_layers) end + +--- @param map RID +--- @param start Vector3 +--- @param _end Vector3 +--- @param use_collision bool? Default: false +--- @return Vector3 +function NavigationServer3D:map_get_closest_point_to_segment(map, start, _end, use_collision) end + +--- @param map RID +--- @param to_point Vector3 +--- @return Vector3 +function NavigationServer3D:map_get_closest_point(map, to_point) end + +--- @param map RID +--- @param to_point Vector3 +--- @return Vector3 +function NavigationServer3D:map_get_closest_point_normal(map, to_point) end + +--- @param map RID +--- @param to_point Vector3 +--- @return RID +function NavigationServer3D:map_get_closest_point_owner(map, to_point) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer3D:map_get_links(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer3D:map_get_regions(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer3D:map_get_agents(map) end + +--- @param map RID +--- @return Array[RID] +function NavigationServer3D:map_get_obstacles(map) end + +--- @param map RID +function NavigationServer3D:map_force_update(map) end + +--- @param map RID +--- @return int +function NavigationServer3D:map_get_iteration_id(map) end + +--- @param map RID +--- @param enabled bool +function NavigationServer3D:map_set_use_async_iterations(map, enabled) end + +--- @param map RID +--- @return bool +function NavigationServer3D:map_get_use_async_iterations(map) end + +--- @param map RID +--- @param navigation_layers int +--- @param uniformly bool +--- @return Vector3 +function NavigationServer3D:map_get_random_point(map, navigation_layers, uniformly) end + +--- @param parameters NavigationPathQueryParameters3D +--- @param result NavigationPathQueryResult3D +--- @param callback Callable? Default: Callable() +function NavigationServer3D:query_path(parameters, result, callback) end + +--- @return RID +function NavigationServer3D:region_create() end + +--- @param region RID +--- @return int +function NavigationServer3D:region_get_iteration_id(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer3D:region_set_use_async_iterations(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer3D:region_get_use_async_iterations(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer3D:region_set_enabled(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer3D:region_get_enabled(region) end + +--- @param region RID +--- @param enabled bool +function NavigationServer3D:region_set_use_edge_connections(region, enabled) end + +--- @param region RID +--- @return bool +function NavigationServer3D:region_get_use_edge_connections(region) end + +--- @param region RID +--- @param enter_cost float +function NavigationServer3D:region_set_enter_cost(region, enter_cost) end + +--- @param region RID +--- @return float +function NavigationServer3D:region_get_enter_cost(region) end + +--- @param region RID +--- @param travel_cost float +function NavigationServer3D:region_set_travel_cost(region, travel_cost) end + +--- @param region RID +--- @return float +function NavigationServer3D:region_get_travel_cost(region) end + +--- @param region RID +--- @param owner_id int +function NavigationServer3D:region_set_owner_id(region, owner_id) end + +--- @param region RID +--- @return int +function NavigationServer3D:region_get_owner_id(region) end + +--- @param region RID +--- @param point Vector3 +--- @return bool +function NavigationServer3D:region_owns_point(region, point) end + +--- @param region RID +--- @param map RID +function NavigationServer3D:region_set_map(region, map) end + +--- @param region RID +--- @return RID +function NavigationServer3D:region_get_map(region) end + +--- @param region RID +--- @param navigation_layers int +function NavigationServer3D:region_set_navigation_layers(region, navigation_layers) end + +--- @param region RID +--- @return int +function NavigationServer3D:region_get_navigation_layers(region) end + +--- @param region RID +--- @param transform Transform3D +function NavigationServer3D:region_set_transform(region, transform) end + +--- @param region RID +--- @return Transform3D +function NavigationServer3D:region_get_transform(region) end + +--- @param region RID +--- @param navigation_mesh NavigationMesh +function NavigationServer3D:region_set_navigation_mesh(region, navigation_mesh) end + +--- @param navigation_mesh NavigationMesh +--- @param root_node Node +function NavigationServer3D:region_bake_navigation_mesh(navigation_mesh, root_node) end + +--- @param region RID +--- @return int +function NavigationServer3D:region_get_connections_count(region) end + +--- @param region RID +--- @param connection int +--- @return Vector3 +function NavigationServer3D:region_get_connection_pathway_start(region, connection) end + +--- @param region RID +--- @param connection int +--- @return Vector3 +function NavigationServer3D:region_get_connection_pathway_end(region, connection) end + +--- @param region RID +--- @param start Vector3 +--- @param _end Vector3 +--- @param use_collision bool? Default: false +--- @return Vector3 +function NavigationServer3D:region_get_closest_point_to_segment(region, start, _end, use_collision) end + +--- @param region RID +--- @param to_point Vector3 +--- @return Vector3 +function NavigationServer3D:region_get_closest_point(region, to_point) end + +--- @param region RID +--- @param to_point Vector3 +--- @return Vector3 +function NavigationServer3D:region_get_closest_point_normal(region, to_point) end + +--- @param region RID +--- @param navigation_layers int +--- @param uniformly bool +--- @return Vector3 +function NavigationServer3D:region_get_random_point(region, navigation_layers, uniformly) end + +--- @param region RID +--- @return AABB +function NavigationServer3D:region_get_bounds(region) end + +--- @return RID +function NavigationServer3D:link_create() end + +--- @param link RID +--- @return int +function NavigationServer3D:link_get_iteration_id(link) end + +--- @param link RID +--- @param map RID +function NavigationServer3D:link_set_map(link, map) end + +--- @param link RID +--- @return RID +function NavigationServer3D:link_get_map(link) end + +--- @param link RID +--- @param enabled bool +function NavigationServer3D:link_set_enabled(link, enabled) end + +--- @param link RID +--- @return bool +function NavigationServer3D:link_get_enabled(link) end + +--- @param link RID +--- @param bidirectional bool +function NavigationServer3D:link_set_bidirectional(link, bidirectional) end + +--- @param link RID +--- @return bool +function NavigationServer3D:link_is_bidirectional(link) end + +--- @param link RID +--- @param navigation_layers int +function NavigationServer3D:link_set_navigation_layers(link, navigation_layers) end + +--- @param link RID +--- @return int +function NavigationServer3D:link_get_navigation_layers(link) end + +--- @param link RID +--- @param position Vector3 +function NavigationServer3D:link_set_start_position(link, position) end + +--- @param link RID +--- @return Vector3 +function NavigationServer3D:link_get_start_position(link) end + +--- @param link RID +--- @param position Vector3 +function NavigationServer3D:link_set_end_position(link, position) end + +--- @param link RID +--- @return Vector3 +function NavigationServer3D:link_get_end_position(link) end + +--- @param link RID +--- @param enter_cost float +function NavigationServer3D:link_set_enter_cost(link, enter_cost) end + +--- @param link RID +--- @return float +function NavigationServer3D:link_get_enter_cost(link) end + +--- @param link RID +--- @param travel_cost float +function NavigationServer3D:link_set_travel_cost(link, travel_cost) end + +--- @param link RID +--- @return float +function NavigationServer3D:link_get_travel_cost(link) end + +--- @param link RID +--- @param owner_id int +function NavigationServer3D:link_set_owner_id(link, owner_id) end + +--- @param link RID +--- @return int +function NavigationServer3D:link_get_owner_id(link) end + +--- @return RID +function NavigationServer3D:agent_create() end + +--- @param agent RID +--- @param enabled bool +function NavigationServer3D:agent_set_avoidance_enabled(agent, enabled) end + +--- @param agent RID +--- @return bool +function NavigationServer3D:agent_get_avoidance_enabled(agent) end + +--- @param agent RID +--- @param enabled bool +function NavigationServer3D:agent_set_use_3d_avoidance(agent, enabled) end + +--- @param agent RID +--- @return bool +function NavigationServer3D:agent_get_use_3d_avoidance(agent) end + +--- @param agent RID +--- @param map RID +function NavigationServer3D:agent_set_map(agent, map) end + +--- @param agent RID +--- @return RID +function NavigationServer3D:agent_get_map(agent) end + +--- @param agent RID +--- @param paused bool +function NavigationServer3D:agent_set_paused(agent, paused) end + +--- @param agent RID +--- @return bool +function NavigationServer3D:agent_get_paused(agent) end + +--- @param agent RID +--- @param distance float +function NavigationServer3D:agent_set_neighbor_distance(agent, distance) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_neighbor_distance(agent) end + +--- @param agent RID +--- @param count int +function NavigationServer3D:agent_set_max_neighbors(agent, count) end + +--- @param agent RID +--- @return int +function NavigationServer3D:agent_get_max_neighbors(agent) end + +--- @param agent RID +--- @param time_horizon float +function NavigationServer3D:agent_set_time_horizon_agents(agent, time_horizon) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_time_horizon_agents(agent) end + +--- @param agent RID +--- @param time_horizon float +function NavigationServer3D:agent_set_time_horizon_obstacles(agent, time_horizon) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_time_horizon_obstacles(agent) end + +--- @param agent RID +--- @param radius float +function NavigationServer3D:agent_set_radius(agent, radius) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_radius(agent) end + +--- @param agent RID +--- @param height float +function NavigationServer3D:agent_set_height(agent, height) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_height(agent) end + +--- @param agent RID +--- @param max_speed float +function NavigationServer3D:agent_set_max_speed(agent, max_speed) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_max_speed(agent) end + +--- @param agent RID +--- @param velocity Vector3 +function NavigationServer3D:agent_set_velocity_forced(agent, velocity) end + +--- @param agent RID +--- @param velocity Vector3 +function NavigationServer3D:agent_set_velocity(agent, velocity) end + +--- @param agent RID +--- @return Vector3 +function NavigationServer3D:agent_get_velocity(agent) end + +--- @param agent RID +--- @param position Vector3 +function NavigationServer3D:agent_set_position(agent, position) end + +--- @param agent RID +--- @return Vector3 +function NavigationServer3D:agent_get_position(agent) end + +--- @param agent RID +--- @return bool +function NavigationServer3D:agent_is_map_changed(agent) end + +--- @param agent RID +--- @param callback Callable +function NavigationServer3D:agent_set_avoidance_callback(agent, callback) end + +--- @param agent RID +--- @return bool +function NavigationServer3D:agent_has_avoidance_callback(agent) end + +--- @param agent RID +--- @param layers int +function NavigationServer3D:agent_set_avoidance_layers(agent, layers) end + +--- @param agent RID +--- @return int +function NavigationServer3D:agent_get_avoidance_layers(agent) end + +--- @param agent RID +--- @param mask int +function NavigationServer3D:agent_set_avoidance_mask(agent, mask) end + +--- @param agent RID +--- @return int +function NavigationServer3D:agent_get_avoidance_mask(agent) end + +--- @param agent RID +--- @param priority float +function NavigationServer3D:agent_set_avoidance_priority(agent, priority) end + +--- @param agent RID +--- @return float +function NavigationServer3D:agent_get_avoidance_priority(agent) end + +--- @return RID +function NavigationServer3D:obstacle_create() end + +--- @param obstacle RID +--- @param enabled bool +function NavigationServer3D:obstacle_set_avoidance_enabled(obstacle, enabled) end + +--- @param obstacle RID +--- @return bool +function NavigationServer3D:obstacle_get_avoidance_enabled(obstacle) end + +--- @param obstacle RID +--- @param enabled bool +function NavigationServer3D:obstacle_set_use_3d_avoidance(obstacle, enabled) end + +--- @param obstacle RID +--- @return bool +function NavigationServer3D:obstacle_get_use_3d_avoidance(obstacle) end + +--- @param obstacle RID +--- @param map RID +function NavigationServer3D:obstacle_set_map(obstacle, map) end + +--- @param obstacle RID +--- @return RID +function NavigationServer3D:obstacle_get_map(obstacle) end + +--- @param obstacle RID +--- @param paused bool +function NavigationServer3D:obstacle_set_paused(obstacle, paused) end + +--- @param obstacle RID +--- @return bool +function NavigationServer3D:obstacle_get_paused(obstacle) end + +--- @param obstacle RID +--- @param radius float +function NavigationServer3D:obstacle_set_radius(obstacle, radius) end + +--- @param obstacle RID +--- @return float +function NavigationServer3D:obstacle_get_radius(obstacle) end + +--- @param obstacle RID +--- @param height float +function NavigationServer3D:obstacle_set_height(obstacle, height) end + +--- @param obstacle RID +--- @return float +function NavigationServer3D:obstacle_get_height(obstacle) end + +--- @param obstacle RID +--- @param velocity Vector3 +function NavigationServer3D:obstacle_set_velocity(obstacle, velocity) end + +--- @param obstacle RID +--- @return Vector3 +function NavigationServer3D:obstacle_get_velocity(obstacle) end + +--- @param obstacle RID +--- @param position Vector3 +function NavigationServer3D:obstacle_set_position(obstacle, position) end + +--- @param obstacle RID +--- @return Vector3 +function NavigationServer3D:obstacle_get_position(obstacle) end + +--- @param obstacle RID +--- @param vertices PackedVector3Array +function NavigationServer3D:obstacle_set_vertices(obstacle, vertices) end + +--- @param obstacle RID +--- @return PackedVector3Array +function NavigationServer3D:obstacle_get_vertices(obstacle) end + +--- @param obstacle RID +--- @param layers int +function NavigationServer3D:obstacle_set_avoidance_layers(obstacle, layers) end + +--- @param obstacle RID +--- @return int +function NavigationServer3D:obstacle_get_avoidance_layers(obstacle) end + +--- @param navigation_mesh NavigationMesh +--- @param source_geometry_data NavigationMeshSourceGeometryData3D +--- @param root_node Node +--- @param callback Callable? Default: Callable() +function NavigationServer3D:parse_source_geometry_data(navigation_mesh, source_geometry_data, root_node, callback) end + +--- @param navigation_mesh NavigationMesh +--- @param source_geometry_data NavigationMeshSourceGeometryData3D +--- @param callback Callable? Default: Callable() +function NavigationServer3D:bake_from_source_geometry_data(navigation_mesh, source_geometry_data, callback) end + +--- @param navigation_mesh NavigationMesh +--- @param source_geometry_data NavigationMeshSourceGeometryData3D +--- @param callback Callable? Default: Callable() +function NavigationServer3D:bake_from_source_geometry_data_async(navigation_mesh, source_geometry_data, callback) end + +--- @param navigation_mesh NavigationMesh +--- @return bool +function NavigationServer3D:is_baking_navigation_mesh(navigation_mesh) end + +--- @return RID +function NavigationServer3D:source_geometry_parser_create() end + +--- @param parser RID +--- @param callback Callable +function NavigationServer3D:source_geometry_parser_set_callback(parser, callback) end + +--- @param path PackedVector3Array +--- @param epsilon float +--- @return PackedVector3Array +function NavigationServer3D:simplify_path(path, epsilon) end + +--- @param rid RID +function NavigationServer3D:free_rid(rid) end + +--- @param active bool +function NavigationServer3D:set_active(active) end + +--- @param enabled bool +function NavigationServer3D:set_debug_enabled(enabled) end + +--- @return bool +function NavigationServer3D:get_debug_enabled() end + +--- @param process_info NavigationServer3D.ProcessInfo +--- @return int +function NavigationServer3D:get_process_info(process_info) end + + +----------------------------------------------------------- +-- NinePatchRect +----------------------------------------------------------- + +--- @class NinePatchRect: Control, { [string]: any } +--- @field texture Texture2D +--- @field draw_center bool +--- @field region_rect Rect2 +--- @field patch_margin_left int +--- @field patch_margin_top int +--- @field patch_margin_right int +--- @field patch_margin_bottom int +--- @field axis_stretch_horizontal int +--- @field axis_stretch_vertical int +NinePatchRect = {} + +--- @return NinePatchRect +function NinePatchRect:new() end + +--- @alias NinePatchRect.AxisStretchMode `NinePatchRect.AXIS_STRETCH_MODE_STRETCH` | `NinePatchRect.AXIS_STRETCH_MODE_TILE` | `NinePatchRect.AXIS_STRETCH_MODE_TILE_FIT` +NinePatchRect.AXIS_STRETCH_MODE_STRETCH = 0 +NinePatchRect.AXIS_STRETCH_MODE_TILE = 1 +NinePatchRect.AXIS_STRETCH_MODE_TILE_FIT = 2 + +NinePatchRect.texture_changed = Signal() + +--- @param texture Texture2D +function NinePatchRect:set_texture(texture) end + +--- @return Texture2D +function NinePatchRect:get_texture() end + +--- @param margin Side +--- @param value int +function NinePatchRect:set_patch_margin(margin, value) end + +--- @param margin Side +--- @return int +function NinePatchRect:get_patch_margin(margin) end + +--- @param rect Rect2 +function NinePatchRect:set_region_rect(rect) end + +--- @return Rect2 +function NinePatchRect:get_region_rect() end + +--- @param draw_center bool +function NinePatchRect:set_draw_center(draw_center) end + +--- @return bool +function NinePatchRect:is_draw_center_enabled() end + +--- @param mode NinePatchRect.AxisStretchMode +function NinePatchRect:set_h_axis_stretch_mode(mode) end + +--- @return NinePatchRect.AxisStretchMode +function NinePatchRect:get_h_axis_stretch_mode() end + +--- @param mode NinePatchRect.AxisStretchMode +function NinePatchRect:set_v_axis_stretch_mode(mode) end + +--- @return NinePatchRect.AxisStretchMode +function NinePatchRect:get_v_axis_stretch_mode() end + + +----------------------------------------------------------- +-- Node +----------------------------------------------------------- + +--- @class Node: Object, { [string]: any } +--- @field name StringName +--- @field unique_name_in_owner bool +--- @field scene_file_path String +--- @field owner Node +--- @field multiplayer MultiplayerAPI +--- @field process_mode int +--- @field process_priority int +--- @field process_physics_priority int +--- @field process_thread_group int +--- @field process_thread_group_order int +--- @field process_thread_messages int +--- @field physics_interpolation_mode int +--- @field auto_translate_mode int +--- @field editor_description String +Node = {} + +--- @return Node +function Node:new() end + +Node.NOTIFICATION_ENTER_TREE = 10 +Node.NOTIFICATION_EXIT_TREE = 11 +Node.NOTIFICATION_MOVED_IN_PARENT = 12 +Node.NOTIFICATION_READY = 13 +Node.NOTIFICATION_PAUSED = 14 +Node.NOTIFICATION_UNPAUSED = 15 +Node.NOTIFICATION_PHYSICS_PROCESS = 16 +Node.NOTIFICATION_PROCESS = 17 +Node.NOTIFICATION_PARENTED = 18 +Node.NOTIFICATION_UNPARENTED = 19 +Node.NOTIFICATION_SCENE_INSTANTIATED = 20 +Node.NOTIFICATION_DRAG_BEGIN = 21 +Node.NOTIFICATION_DRAG_END = 22 +Node.NOTIFICATION_PATH_RENAMED = 23 +Node.NOTIFICATION_CHILD_ORDER_CHANGED = 24 +Node.NOTIFICATION_INTERNAL_PROCESS = 25 +Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26 +Node.NOTIFICATION_POST_ENTER_TREE = 27 +Node.NOTIFICATION_DISABLED = 28 +Node.NOTIFICATION_ENABLED = 29 +Node.NOTIFICATION_RESET_PHYSICS_INTERPOLATION = 2001 +Node.NOTIFICATION_EDITOR_PRE_SAVE = 9001 +Node.NOTIFICATION_EDITOR_POST_SAVE = 9002 +Node.NOTIFICATION_WM_MOUSE_ENTER = 1002 +Node.NOTIFICATION_WM_MOUSE_EXIT = 1003 +Node.NOTIFICATION_WM_WINDOW_FOCUS_IN = 1004 +Node.NOTIFICATION_WM_WINDOW_FOCUS_OUT = 1005 +Node.NOTIFICATION_WM_CLOSE_REQUEST = 1006 +Node.NOTIFICATION_WM_GO_BACK_REQUEST = 1007 +Node.NOTIFICATION_WM_SIZE_CHANGED = 1008 +Node.NOTIFICATION_WM_DPI_CHANGE = 1009 +Node.NOTIFICATION_VP_MOUSE_ENTER = 1010 +Node.NOTIFICATION_VP_MOUSE_EXIT = 1011 +Node.NOTIFICATION_WM_POSITION_CHANGED = 1012 +Node.NOTIFICATION_OS_MEMORY_WARNING = 2009 +Node.NOTIFICATION_TRANSLATION_CHANGED = 2010 +Node.NOTIFICATION_WM_ABOUT = 2011 +Node.NOTIFICATION_CRASH = 2012 +Node.NOTIFICATION_OS_IME_UPDATE = 2013 +Node.NOTIFICATION_APPLICATION_RESUMED = 2014 +Node.NOTIFICATION_APPLICATION_PAUSED = 2015 +Node.NOTIFICATION_APPLICATION_FOCUS_IN = 2016 +Node.NOTIFICATION_APPLICATION_FOCUS_OUT = 2017 +Node.NOTIFICATION_TEXT_SERVER_CHANGED = 2018 +Node.NOTIFICATION_ACCESSIBILITY_UPDATE = 3000 +Node.NOTIFICATION_ACCESSIBILITY_INVALIDATE = 3001 + +--- @alias Node.ProcessMode `Node.PROCESS_MODE_INHERIT` | `Node.PROCESS_MODE_PAUSABLE` | `Node.PROCESS_MODE_WHEN_PAUSED` | `Node.PROCESS_MODE_ALWAYS` | `Node.PROCESS_MODE_DISABLED` +Node.PROCESS_MODE_INHERIT = 0 +Node.PROCESS_MODE_PAUSABLE = 1 +Node.PROCESS_MODE_WHEN_PAUSED = 2 +Node.PROCESS_MODE_ALWAYS = 3 +Node.PROCESS_MODE_DISABLED = 4 + +--- @alias Node.ProcessThreadGroup `Node.PROCESS_THREAD_GROUP_INHERIT` | `Node.PROCESS_THREAD_GROUP_MAIN_THREAD` | `Node.PROCESS_THREAD_GROUP_SUB_THREAD` +Node.PROCESS_THREAD_GROUP_INHERIT = 0 +Node.PROCESS_THREAD_GROUP_MAIN_THREAD = 1 +Node.PROCESS_THREAD_GROUP_SUB_THREAD = 2 + +--- @alias Node.ProcessThreadMessages `Node.FLAG_PROCESS_THREAD_MESSAGES` | `Node.FLAG_PROCESS_THREAD_MESSAGES_PHYSICS` | `Node.FLAG_PROCESS_THREAD_MESSAGES_ALL` +Node.FLAG_PROCESS_THREAD_MESSAGES = 1 +Node.FLAG_PROCESS_THREAD_MESSAGES_PHYSICS = 2 +Node.FLAG_PROCESS_THREAD_MESSAGES_ALL = 3 + +--- @alias Node.PhysicsInterpolationMode `Node.PHYSICS_INTERPOLATION_MODE_INHERIT` | `Node.PHYSICS_INTERPOLATION_MODE_ON` | `Node.PHYSICS_INTERPOLATION_MODE_OFF` +Node.PHYSICS_INTERPOLATION_MODE_INHERIT = 0 +Node.PHYSICS_INTERPOLATION_MODE_ON = 1 +Node.PHYSICS_INTERPOLATION_MODE_OFF = 2 + +--- @alias Node.DuplicateFlags `Node.DUPLICATE_SIGNALS` | `Node.DUPLICATE_GROUPS` | `Node.DUPLICATE_SCRIPTS` | `Node.DUPLICATE_USE_INSTANTIATION` +Node.DUPLICATE_SIGNALS = 1 +Node.DUPLICATE_GROUPS = 2 +Node.DUPLICATE_SCRIPTS = 4 +Node.DUPLICATE_USE_INSTANTIATION = 8 + +--- @alias Node.InternalMode `Node.INTERNAL_MODE_DISABLED` | `Node.INTERNAL_MODE_FRONT` | `Node.INTERNAL_MODE_BACK` +Node.INTERNAL_MODE_DISABLED = 0 +Node.INTERNAL_MODE_FRONT = 1 +Node.INTERNAL_MODE_BACK = 2 + +--- @alias Node.AutoTranslateMode `Node.AUTO_TRANSLATE_MODE_INHERIT` | `Node.AUTO_TRANSLATE_MODE_ALWAYS` | `Node.AUTO_TRANSLATE_MODE_DISABLED` +Node.AUTO_TRANSLATE_MODE_INHERIT = 0 +Node.AUTO_TRANSLATE_MODE_ALWAYS = 1 +Node.AUTO_TRANSLATE_MODE_DISABLED = 2 + +Node.ready = Signal() +Node.renamed = Signal() +Node.tree_entered = Signal() +Node.tree_exiting = Signal() +Node.tree_exited = Signal() +Node.child_entered_tree = Signal() +Node.child_exiting_tree = Signal() +Node.child_order_changed = Signal() +Node.replacing_by = Signal() +Node.editor_description_changed = Signal() +Node.editor_state_changed = Signal() + +--- @param delta float +function Node:_process(delta) end + +--- @param delta float +function Node:_physics_process(delta) end + +function Node:_enter_tree() end + +function Node:_exit_tree() end + +function Node:_ready() end + +--- @return PackedStringArray +function Node:_get_configuration_warnings() end + +--- @return PackedStringArray +function Node:_get_accessibility_configuration_warnings() end + +--- @param event InputEvent +function Node:_input(event) end + +--- @param event InputEvent +function Node:_shortcut_input(event) end + +--- @param event InputEvent +function Node:_unhandled_input(event) end + +--- @param event InputEvent +function Node:_unhandled_key_input(event) end + +--- @return RID +function Node:_get_focused_accessibility_element() end + +--- static +function Node:print_orphan_nodes() end + +--- static +--- @return Array[int] +function Node:get_orphan_node_ids() end + +--- @param sibling Node +--- @param force_readable_name bool? Default: false +function Node:add_sibling(sibling, force_readable_name) end + +--- @param name StringName +function Node:set_name(name) end + +--- @return StringName +function Node:get_name() end + +--- @param node Node +--- @param force_readable_name bool? Default: false +--- @param internal Node.InternalMode? Default: 0 +function Node:add_child(node, force_readable_name, internal) end + +--- @param node Node +function Node:remove_child(node) end + +--- @param new_parent Node +--- @param keep_global_transform bool? Default: true +function Node:reparent(new_parent, keep_global_transform) end + +--- @param include_internal bool? Default: false +--- @return int +function Node:get_child_count(include_internal) end + +--- @param include_internal bool? Default: false +--- @return Array[Node] +function Node:get_children(include_internal) end + +--- @param idx int +--- @param include_internal bool? Default: false +--- @return Node +function Node:get_child(idx, include_internal) end + +--- @param path NodePath +--- @return bool +function Node:has_node(path) end + +--- @param path NodePath +--- @return Node +function Node:get_node(path) end + +--- @param path NodePath +--- @return Node +function Node:get_node_or_null(path) end + +--- @return Node +function Node:get_parent() end + +--- @param pattern String +--- @param recursive bool? Default: true +--- @param owned bool? Default: true +--- @return Node +function Node:find_child(pattern, recursive, owned) end + +--- @param pattern String +--- @param type String? Default: "" +--- @param recursive bool? Default: true +--- @param owned bool? Default: true +--- @return Array[Node] +function Node:find_children(pattern, type, recursive, owned) end + +--- @param pattern String +--- @return Node +function Node:find_parent(pattern) end + +--- @param path NodePath +--- @return bool +function Node:has_node_and_resource(path) end + +--- @param path NodePath +--- @return Array +function Node:get_node_and_resource(path) end + +--- @return bool +function Node:is_inside_tree() end + +--- @return bool +function Node:is_part_of_edited_scene() end + +--- @param node Node +--- @return bool +function Node:is_ancestor_of(node) end + +--- @param node Node +--- @return bool +function Node:is_greater_than(node) end + +--- @return NodePath +function Node:get_path() end + +--- @param node Node +--- @param use_unique_path bool? Default: false +--- @return NodePath +function Node:get_path_to(node, use_unique_path) end + +--- @param group StringName +--- @param persistent bool? Default: false +function Node:add_to_group(group, persistent) end + +--- @param group StringName +function Node:remove_from_group(group) end + +--- @param group StringName +--- @return bool +function Node:is_in_group(group) end + +--- @param child_node Node +--- @param to_index int +function Node:move_child(child_node, to_index) end + +--- @return Array[StringName] +function Node:get_groups() end + +--- @param owner Node +function Node:set_owner(owner) end + +--- @return Node +function Node:get_owner() end + +--- @param include_internal bool? Default: false +--- @return int +function Node:get_index(include_internal) end + +function Node:print_tree() end + +function Node:print_tree_pretty() end + +--- @return String +function Node:get_tree_string() end + +--- @return String +function Node:get_tree_string_pretty() end + +--- @param scene_file_path String +function Node:set_scene_file_path(scene_file_path) end + +--- @return String +function Node:get_scene_file_path() end + +--- @param what int +function Node:propagate_notification(what) end + +--- @param method StringName +--- @param args Array? Default: [] +--- @param parent_first bool? Default: false +function Node:propagate_call(method, args, parent_first) end + +--- @param enable bool +function Node:set_physics_process(enable) end + +--- @return float +function Node:get_physics_process_delta_time() end + +--- @return bool +function Node:is_physics_processing() end + +--- @return float +function Node:get_process_delta_time() end + +--- @param enable bool +function Node:set_process(enable) end + +--- @param priority int +function Node:set_process_priority(priority) end + +--- @return int +function Node:get_process_priority() end + +--- @param priority int +function Node:set_physics_process_priority(priority) end + +--- @return int +function Node:get_physics_process_priority() end + +--- @return bool +function Node:is_processing() end + +--- @param enable bool +function Node:set_process_input(enable) end + +--- @return bool +function Node:is_processing_input() end + +--- @param enable bool +function Node:set_process_shortcut_input(enable) end + +--- @return bool +function Node:is_processing_shortcut_input() end + +--- @param enable bool +function Node:set_process_unhandled_input(enable) end + +--- @return bool +function Node:is_processing_unhandled_input() end + +--- @param enable bool +function Node:set_process_unhandled_key_input(enable) end + +--- @return bool +function Node:is_processing_unhandled_key_input() end + +--- @param mode Node.ProcessMode +function Node:set_process_mode(mode) end + +--- @return Node.ProcessMode +function Node:get_process_mode() end + +--- @return bool +function Node:can_process() end + +--- @param mode Node.ProcessThreadGroup +function Node:set_process_thread_group(mode) end + +--- @return Node.ProcessThreadGroup +function Node:get_process_thread_group() end + +--- @param flags Node.ProcessThreadMessages +function Node:set_process_thread_messages(flags) end + +--- @return Node.ProcessThreadMessages +function Node:get_process_thread_messages() end + +--- @param order int +function Node:set_process_thread_group_order(order) end + +--- @return int +function Node:get_process_thread_group_order() end + +function Node:queue_accessibility_update() end + +--- @return RID +function Node:get_accessibility_element() end + +--- @param fold bool +function Node:set_display_folded(fold) end + +--- @return bool +function Node:is_displayed_folded() end + +--- @param enable bool +function Node:set_process_internal(enable) end + +--- @return bool +function Node:is_processing_internal() end + +--- @param enable bool +function Node:set_physics_process_internal(enable) end + +--- @return bool +function Node:is_physics_processing_internal() end + +--- @param mode Node.PhysicsInterpolationMode +function Node:set_physics_interpolation_mode(mode) end + +--- @return Node.PhysicsInterpolationMode +function Node:get_physics_interpolation_mode() end + +--- @return bool +function Node:is_physics_interpolated() end + +--- @return bool +function Node:is_physics_interpolated_and_enabled() end + +function Node:reset_physics_interpolation() end + +--- @param mode Node.AutoTranslateMode +function Node:set_auto_translate_mode(mode) end + +--- @return Node.AutoTranslateMode +function Node:get_auto_translate_mode() end + +--- @return bool +function Node:can_auto_translate() end + +function Node:set_translation_domain_inherited() end + +--- @return Window +function Node:get_window() end + +--- @return Window +function Node:get_last_exclusive_window() end + +--- @return SceneTree +function Node:get_tree() end + +--- @return Tween +function Node:create_tween() end + +--- @param flags int? Default: 15 +--- @return Node +function Node:duplicate(flags) end + +--- @param node Node +--- @param keep_groups bool? Default: false +function Node:replace_by(node, keep_groups) end + +--- @param load_placeholder bool +function Node:set_scene_instance_load_placeholder(load_placeholder) end + +--- @return bool +function Node:get_scene_instance_load_placeholder() end + +--- @param node Node +--- @param is_editable bool +function Node:set_editable_instance(node, is_editable) end + +--- @param node Node +--- @return bool +function Node:is_editable_instance(node) end + +--- @return Viewport +function Node:get_viewport() end + +function Node:queue_free() end + +function Node:request_ready() end + +--- @return bool +function Node:is_node_ready() end + +--- @param id int +--- @param recursive bool? Default: true +function Node:set_multiplayer_authority(id, recursive) end + +--- @return int +function Node:get_multiplayer_authority() end + +--- @return bool +function Node:is_multiplayer_authority() end + +--- @return MultiplayerAPI +function Node:get_multiplayer() end + +--- @param method StringName +--- @param config any +function Node:rpc_config(method, config) end + +--- @return any +function Node:get_node_rpc_config() end + +--- @param editor_description String +function Node:set_editor_description(editor_description) end + +--- @return String +function Node:get_editor_description() end + +--- @param enable bool +function Node:set_unique_name_in_owner(enable) end + +--- @return bool +function Node:is_unique_name_in_owner() end + +--- @param message String +--- @param context StringName? Default: "" +--- @return String +function Node:atr(message, context) end + +--- @param message String +--- @param plural_message StringName +--- @param n int +--- @param context StringName? Default: "" +--- @return String +function Node:atr_n(message, plural_message, n, context) end + +--- @param method StringName +--- @return Error +function Node:rpc(method, ...) end + +--- @param peer_id int +--- @param method StringName +--- @return Error +function Node:rpc_id(peer_id, method, ...) end + +function Node:update_configuration_warnings() end + +--- @param method StringName +--- @return any +function Node:call_deferred_thread_group(method, ...) end + +--- @param property StringName +--- @param value any +function Node:set_deferred_thread_group(property, value) end + +--- @param what int +function Node:notify_deferred_thread_group(what) end + +--- @param method StringName +--- @return any +function Node:call_thread_safe(method, ...) end + +--- @param property StringName +--- @param value any +function Node:set_thread_safe(property, value) end + +--- @param what int +function Node:notify_thread_safe(what) end + + +----------------------------------------------------------- +-- Node2D +----------------------------------------------------------- + +--- @class Node2D: CanvasItem, { [string]: any } +--- @field position Vector2 +--- @field rotation float +--- @field rotation_degrees float +--- @field scale Vector2 +--- @field skew float +--- @field transform Transform2D +--- @field global_position Vector2 +--- @field global_rotation float +--- @field global_rotation_degrees float +--- @field global_scale Vector2 +--- @field global_skew float +--- @field global_transform Transform2D +Node2D = {} + +--- @return Node2D +function Node2D:new() end + +--- @param position Vector2 +function Node2D:set_position(position) end + +--- @param radians float +function Node2D:set_rotation(radians) end + +--- @param degrees float +function Node2D:set_rotation_degrees(degrees) end + +--- @param radians float +function Node2D:set_skew(radians) end + +--- @param scale Vector2 +function Node2D:set_scale(scale) end + +--- @return Vector2 +function Node2D:get_position() end + +--- @return float +function Node2D:get_rotation() end + +--- @return float +function Node2D:get_rotation_degrees() end + +--- @return float +function Node2D:get_skew() end + +--- @return Vector2 +function Node2D:get_scale() end + +--- @param radians float +function Node2D:rotate(radians) end + +--- @param delta float +--- @param scaled bool? Default: false +function Node2D:move_local_x(delta, scaled) end + +--- @param delta float +--- @param scaled bool? Default: false +function Node2D:move_local_y(delta, scaled) end + +--- @param offset Vector2 +function Node2D:translate(offset) end + +--- @param offset Vector2 +function Node2D:global_translate(offset) end + +--- @param ratio Vector2 +function Node2D:apply_scale(ratio) end + +--- @param position Vector2 +function Node2D:set_global_position(position) end + +--- @return Vector2 +function Node2D:get_global_position() end + +--- @param radians float +function Node2D:set_global_rotation(radians) end + +--- @param degrees float +function Node2D:set_global_rotation_degrees(degrees) end + +--- @return float +function Node2D:get_global_rotation() end + +--- @return float +function Node2D:get_global_rotation_degrees() end + +--- @param radians float +function Node2D:set_global_skew(radians) end + +--- @return float +function Node2D:get_global_skew() end + +--- @param scale Vector2 +function Node2D:set_global_scale(scale) end + +--- @return Vector2 +function Node2D:get_global_scale() end + +--- @param xform Transform2D +function Node2D:set_transform(xform) end + +--- @param xform Transform2D +function Node2D:set_global_transform(xform) end + +--- @param point Vector2 +function Node2D:look_at(point) end + +--- @param point Vector2 +--- @return float +function Node2D:get_angle_to(point) end + +--- @param global_point Vector2 +--- @return Vector2 +function Node2D:to_local(global_point) end + +--- @param local_point Vector2 +--- @return Vector2 +function Node2D:to_global(local_point) end + +--- @param parent Node +--- @return Transform2D +function Node2D:get_relative_transform_to_parent(parent) end + + +----------------------------------------------------------- +-- Node3D +----------------------------------------------------------- + +--- @class Node3D: Node, { [string]: any } +--- @field transform Transform3D +--- @field global_transform Transform3D +--- @field position Vector3 +--- @field rotation Vector3 +--- @field rotation_degrees Vector3 +--- @field quaternion Quaternion +--- @field basis Basis +--- @field scale Vector3 +--- @field rotation_edit_mode int +--- @field rotation_order int +--- @field top_level bool +--- @field global_position Vector3 +--- @field global_basis Basis +--- @field global_rotation Vector3 +--- @field global_rotation_degrees Vector3 +--- @field visible bool +--- @field visibility_parent NodePath +Node3D = {} + +--- @return Node3D +function Node3D:new() end + +Node3D.NOTIFICATION_TRANSFORM_CHANGED = 2000 +Node3D.NOTIFICATION_ENTER_WORLD = 41 +Node3D.NOTIFICATION_EXIT_WORLD = 42 +Node3D.NOTIFICATION_VISIBILITY_CHANGED = 43 +Node3D.NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 44 + +--- @alias Node3D.RotationEditMode `Node3D.ROTATION_EDIT_MODE_EULER` | `Node3D.ROTATION_EDIT_MODE_QUATERNION` | `Node3D.ROTATION_EDIT_MODE_BASIS` +Node3D.ROTATION_EDIT_MODE_EULER = 0 +Node3D.ROTATION_EDIT_MODE_QUATERNION = 1 +Node3D.ROTATION_EDIT_MODE_BASIS = 2 + +Node3D.visibility_changed = Signal() + +--- @param _local Transform3D +function Node3D:set_transform(_local) end + +--- @return Transform3D +function Node3D:get_transform() end + +--- @param position Vector3 +function Node3D:set_position(position) end + +--- @return Vector3 +function Node3D:get_position() end + +--- @param euler_radians Vector3 +function Node3D:set_rotation(euler_radians) end + +--- @return Vector3 +function Node3D:get_rotation() end + +--- @param euler_degrees Vector3 +function Node3D:set_rotation_degrees(euler_degrees) end + +--- @return Vector3 +function Node3D:get_rotation_degrees() end + +--- @param order EulerOrder +function Node3D:set_rotation_order(order) end + +--- @return EulerOrder +function Node3D:get_rotation_order() end + +--- @param edit_mode Node3D.RotationEditMode +function Node3D:set_rotation_edit_mode(edit_mode) end + +--- @return Node3D.RotationEditMode +function Node3D:get_rotation_edit_mode() end + +--- @param scale Vector3 +function Node3D:set_scale(scale) end + +--- @return Vector3 +function Node3D:get_scale() end + +--- @param quaternion Quaternion +function Node3D:set_quaternion(quaternion) end + +--- @return Quaternion +function Node3D:get_quaternion() end + +--- @param basis Basis +function Node3D:set_basis(basis) end + +--- @return Basis +function Node3D:get_basis() end + +--- @param global Transform3D +function Node3D:set_global_transform(global) end + +--- @return Transform3D +function Node3D:get_global_transform() end + +--- @return Transform3D +function Node3D:get_global_transform_interpolated() end + +--- @param position Vector3 +function Node3D:set_global_position(position) end + +--- @return Vector3 +function Node3D:get_global_position() end + +--- @param basis Basis +function Node3D:set_global_basis(basis) end + +--- @return Basis +function Node3D:get_global_basis() end + +--- @param euler_radians Vector3 +function Node3D:set_global_rotation(euler_radians) end + +--- @return Vector3 +function Node3D:get_global_rotation() end + +--- @param euler_degrees Vector3 +function Node3D:set_global_rotation_degrees(euler_degrees) end + +--- @return Vector3 +function Node3D:get_global_rotation_degrees() end + +--- @return Node3D +function Node3D:get_parent_node_3d() end + +--- @param enabled bool +function Node3D:set_ignore_transform_notification(enabled) end + +--- @param enable bool +function Node3D:set_as_top_level(enable) end + +--- @return bool +function Node3D:is_set_as_top_level() end + +--- @param disable bool +function Node3D:set_disable_scale(disable) end + +--- @return bool +function Node3D:is_scale_disabled() end + +--- @return World3D +function Node3D:get_world_3d() end + +function Node3D:force_update_transform() end + +--- @param path NodePath +function Node3D:set_visibility_parent(path) end + +--- @return NodePath +function Node3D:get_visibility_parent() end + +function Node3D:update_gizmos() end + +--- @param gizmo Node3DGizmo +function Node3D:add_gizmo(gizmo) end + +--- @return Array[Node3DGizmo] +function Node3D:get_gizmos() end + +function Node3D:clear_gizmos() end + +--- @param gizmo Node3DGizmo +--- @param id int +--- @param transform Transform3D +function Node3D:set_subgizmo_selection(gizmo, id, transform) end + +function Node3D:clear_subgizmo_selection() end + +--- @param visible bool +function Node3D:set_visible(visible) end + +--- @return bool +function Node3D:is_visible() end + +--- @return bool +function Node3D:is_visible_in_tree() end + +function Node3D:show() end + +function Node3D:hide() end + +--- @param enable bool +function Node3D:set_notify_local_transform(enable) end + +--- @return bool +function Node3D:is_local_transform_notification_enabled() end + +--- @param enable bool +function Node3D:set_notify_transform(enable) end + +--- @return bool +function Node3D:is_transform_notification_enabled() end + +--- @param axis Vector3 +--- @param angle float +function Node3D:rotate(axis, angle) end + +--- @param axis Vector3 +--- @param angle float +function Node3D:global_rotate(axis, angle) end + +--- @param scale Vector3 +function Node3D:global_scale(scale) end + +--- @param offset Vector3 +function Node3D:global_translate(offset) end + +--- @param axis Vector3 +--- @param angle float +function Node3D:rotate_object_local(axis, angle) end + +--- @param scale Vector3 +function Node3D:scale_object_local(scale) end + +--- @param offset Vector3 +function Node3D:translate_object_local(offset) end + +--- @param angle float +function Node3D:rotate_x(angle) end + +--- @param angle float +function Node3D:rotate_y(angle) end + +--- @param angle float +function Node3D:rotate_z(angle) end + +--- @param offset Vector3 +function Node3D:translate(offset) end + +function Node3D:orthonormalize() end + +function Node3D:set_identity() end + +--- @param target Vector3 +--- @param up Vector3? Default: Vector3(0, 1, 0) +--- @param use_model_front bool? Default: false +function Node3D:look_at(target, up, use_model_front) end + +--- @param position Vector3 +--- @param target Vector3 +--- @param up Vector3? Default: Vector3(0, 1, 0) +--- @param use_model_front bool? Default: false +function Node3D:look_at_from_position(position, target, up, use_model_front) end + +--- @param global_point Vector3 +--- @return Vector3 +function Node3D:to_local(global_point) end + +--- @param local_point Vector3 +--- @return Vector3 +function Node3D:to_global(local_point) end + + +----------------------------------------------------------- +-- Node3DGizmo +----------------------------------------------------------- + +--- @class Node3DGizmo: RefCounted, { [string]: any } +Node3DGizmo = {} + + +----------------------------------------------------------- +-- Noise +----------------------------------------------------------- + +--- @class Noise: Resource, { [string]: any } +Noise = {} + +--- @param x float +--- @return float +function Noise:get_noise_1d(x) end + +--- @param x float +--- @param y float +--- @return float +function Noise:get_noise_2d(x, y) end + +--- @param v Vector2 +--- @return float +function Noise:get_noise_2dv(v) end + +--- @param x float +--- @param y float +--- @param z float +--- @return float +function Noise:get_noise_3d(x, y, z) end + +--- @param v Vector3 +--- @return float +function Noise:get_noise_3dv(v) end + +--- @param width int +--- @param height int +--- @param invert bool? Default: false +--- @param in_3d_space bool? Default: false +--- @param normalize bool? Default: true +--- @return Image +function Noise:get_image(width, height, invert, in_3d_space, normalize) end + +--- @param width int +--- @param height int +--- @param invert bool? Default: false +--- @param in_3d_space bool? Default: false +--- @param skirt float? Default: 0.1 +--- @param normalize bool? Default: true +--- @return Image +function Noise:get_seamless_image(width, height, invert, in_3d_space, skirt, normalize) end + +--- @param width int +--- @param height int +--- @param depth int +--- @param invert bool? Default: false +--- @param normalize bool? Default: true +--- @return Array[Image] +function Noise:get_image_3d(width, height, depth, invert, normalize) end + +--- @param width int +--- @param height int +--- @param depth int +--- @param invert bool? Default: false +--- @param skirt float? Default: 0.1 +--- @param normalize bool? Default: true +--- @return Array[Image] +function Noise:get_seamless_image_3d(width, height, depth, invert, skirt, normalize) end + + +----------------------------------------------------------- +-- NoiseTexture2D +----------------------------------------------------------- + +--- @class NoiseTexture2D: Texture2D, { [string]: any } +--- @field width int +--- @field height int +--- @field generate_mipmaps bool +--- @field noise Noise +--- @field color_ramp Gradient +--- @field seamless bool +--- @field invert bool +--- @field in_3d_space bool +--- @field as_normal_map bool +--- @field normalize bool +--- @field seamless_blend_skirt float +--- @field bump_strength float +NoiseTexture2D = {} + +--- @return NoiseTexture2D +function NoiseTexture2D:new() end + +--- @param width int +function NoiseTexture2D:set_width(width) end + +--- @param height int +function NoiseTexture2D:set_height(height) end + +--- @param invert bool +function NoiseTexture2D:set_generate_mipmaps(invert) end + +--- @return bool +function NoiseTexture2D:is_generating_mipmaps() end + +--- @param noise Noise +function NoiseTexture2D:set_noise(noise) end + +--- @return Noise +function NoiseTexture2D:get_noise() end + +--- @param gradient Gradient +function NoiseTexture2D:set_color_ramp(gradient) end + +--- @return Gradient +function NoiseTexture2D:get_color_ramp() end + +--- @param seamless bool +function NoiseTexture2D:set_seamless(seamless) end + +--- @return bool +function NoiseTexture2D:get_seamless() end + +--- @param invert bool +function NoiseTexture2D:set_invert(invert) end + +--- @return bool +function NoiseTexture2D:get_invert() end + +--- @param enable bool +function NoiseTexture2D:set_in_3d_space(enable) end + +--- @return bool +function NoiseTexture2D:is_in_3d_space() end + +--- @param as_normal_map bool +function NoiseTexture2D:set_as_normal_map(as_normal_map) end + +--- @return bool +function NoiseTexture2D:is_normal_map() end + +--- @param normalize bool +function NoiseTexture2D:set_normalize(normalize) end + +--- @return bool +function NoiseTexture2D:is_normalized() end + +--- @param seamless_blend_skirt float +function NoiseTexture2D:set_seamless_blend_skirt(seamless_blend_skirt) end + +--- @return float +function NoiseTexture2D:get_seamless_blend_skirt() end + +--- @param bump_strength float +function NoiseTexture2D:set_bump_strength(bump_strength) end + +--- @return float +function NoiseTexture2D:get_bump_strength() end + + +----------------------------------------------------------- +-- NoiseTexture3D +----------------------------------------------------------- + +--- @class NoiseTexture3D: Texture3D, { [string]: any } +--- @field width int +--- @field height int +--- @field depth int +--- @field noise Noise +--- @field color_ramp Gradient +--- @field seamless bool +--- @field invert bool +--- @field normalize bool +--- @field seamless_blend_skirt float +NoiseTexture3D = {} + +--- @return NoiseTexture3D +function NoiseTexture3D:new() end + +--- @param width int +function NoiseTexture3D:set_width(width) end + +--- @param height int +function NoiseTexture3D:set_height(height) end + +--- @param depth int +function NoiseTexture3D:set_depth(depth) end + +--- @param noise Noise +function NoiseTexture3D:set_noise(noise) end + +--- @return Noise +function NoiseTexture3D:get_noise() end + +--- @param gradient Gradient +function NoiseTexture3D:set_color_ramp(gradient) end + +--- @return Gradient +function NoiseTexture3D:get_color_ramp() end + +--- @param seamless bool +function NoiseTexture3D:set_seamless(seamless) end + +--- @return bool +function NoiseTexture3D:get_seamless() end + +--- @param invert bool +function NoiseTexture3D:set_invert(invert) end + +--- @return bool +function NoiseTexture3D:get_invert() end + +--- @param normalize bool +function NoiseTexture3D:set_normalize(normalize) end + +--- @return bool +function NoiseTexture3D:is_normalized() end + +--- @param seamless_blend_skirt float +function NoiseTexture3D:set_seamless_blend_skirt(seamless_blend_skirt) end + +--- @return float +function NoiseTexture3D:get_seamless_blend_skirt() end + + +----------------------------------------------------------- +-- ORMMaterial3D +----------------------------------------------------------- + +--- @class ORMMaterial3D: BaseMaterial3D, { [string]: any } +ORMMaterial3D = {} + +--- @return ORMMaterial3D +function ORMMaterial3D:new() end + + +----------------------------------------------------------- +-- OS +----------------------------------------------------------- + +--- @class OS: Object, { [string]: any } +--- @field low_processor_usage_mode bool +--- @field low_processor_usage_mode_sleep_usec int +--- @field delta_smoothing bool +OS = {} + +--- @alias OS.RenderingDriver `OS.RENDERING_DRIVER_VULKAN` | `OS.RENDERING_DRIVER_OPENGL3` | `OS.RENDERING_DRIVER_D3D12` | `OS.RENDERING_DRIVER_METAL` +OS.RENDERING_DRIVER_VULKAN = 0 +OS.RENDERING_DRIVER_OPENGL3 = 1 +OS.RENDERING_DRIVER_D3D12 = 2 +OS.RENDERING_DRIVER_METAL = 3 + +--- @alias OS.SystemDir `OS.SYSTEM_DIR_DESKTOP` | `OS.SYSTEM_DIR_DCIM` | `OS.SYSTEM_DIR_DOCUMENTS` | `OS.SYSTEM_DIR_DOWNLOADS` | `OS.SYSTEM_DIR_MOVIES` | `OS.SYSTEM_DIR_MUSIC` | `OS.SYSTEM_DIR_PICTURES` | `OS.SYSTEM_DIR_RINGTONES` +OS.SYSTEM_DIR_DESKTOP = 0 +OS.SYSTEM_DIR_DCIM = 1 +OS.SYSTEM_DIR_DOCUMENTS = 2 +OS.SYSTEM_DIR_DOWNLOADS = 3 +OS.SYSTEM_DIR_MOVIES = 4 +OS.SYSTEM_DIR_MUSIC = 5 +OS.SYSTEM_DIR_PICTURES = 6 +OS.SYSTEM_DIR_RINGTONES = 7 + +--- @alias OS.StdHandleType `OS.STD_HANDLE_INVALID` | `OS.STD_HANDLE_CONSOLE` | `OS.STD_HANDLE_FILE` | `OS.STD_HANDLE_PIPE` | `OS.STD_HANDLE_UNKNOWN` +OS.STD_HANDLE_INVALID = 0 +OS.STD_HANDLE_CONSOLE = 1 +OS.STD_HANDLE_FILE = 2 +OS.STD_HANDLE_PIPE = 3 +OS.STD_HANDLE_UNKNOWN = 4 + +--- @param size int +--- @return PackedByteArray +function OS:get_entropy(size) end + +--- @return String +function OS:get_system_ca_certificates() end + +--- @return PackedStringArray +function OS:get_connected_midi_inputs() end + +function OS:open_midi_inputs() end + +function OS:close_midi_inputs() end + +--- @param text String +--- @param title String? Default: "Alert!" +function OS:alert(text, title) end + +--- @param message String +function OS:crash(message) end + +--- @param enable bool +function OS:set_low_processor_usage_mode(enable) end + +--- @return bool +function OS:is_in_low_processor_usage_mode() end + +--- @param usec int +function OS:set_low_processor_usage_mode_sleep_usec(usec) end + +--- @return int +function OS:get_low_processor_usage_mode_sleep_usec() end + +--- @param delta_smoothing_enabled bool +function OS:set_delta_smoothing(delta_smoothing_enabled) end + +--- @return bool +function OS:is_delta_smoothing_enabled() end + +--- @return int +function OS:get_processor_count() end + +--- @return String +function OS:get_processor_name() end + +--- @return PackedStringArray +function OS:get_system_fonts() end + +--- @param font_name String +--- @param weight int? Default: 400 +--- @param stretch int? Default: 100 +--- @param italic bool? Default: false +--- @return String +function OS:get_system_font_path(font_name, weight, stretch, italic) end + +--- @param font_name String +--- @param text String +--- @param locale String? Default: "" +--- @param script String? Default: "" +--- @param weight int? Default: 400 +--- @param stretch int? Default: 100 +--- @param italic bool? Default: false +--- @return PackedStringArray +function OS:get_system_font_path_for_text(font_name, text, locale, script, weight, stretch, italic) end + +--- @return String +function OS:get_executable_path() end + +--- @param buffer_size int? Default: 1024 +--- @return String +function OS:read_string_from_stdin(buffer_size) end + +--- @param buffer_size int? Default: 1024 +--- @return PackedByteArray +function OS:read_buffer_from_stdin(buffer_size) end + +--- @return OS.StdHandleType +function OS:get_stdin_type() end + +--- @return OS.StdHandleType +function OS:get_stdout_type() end + +--- @return OS.StdHandleType +function OS:get_stderr_type() end + +--- @param path String +--- @param arguments PackedStringArray +--- @param output Array? Default: [] +--- @param read_stderr bool? Default: false +--- @param open_console bool? Default: false +--- @return int +function OS:execute(path, arguments, output, read_stderr, open_console) end + +--- @param path String +--- @param arguments PackedStringArray +--- @param blocking bool? Default: true +--- @return Dictionary +function OS:execute_with_pipe(path, arguments, blocking) end + +--- @param path String +--- @param arguments PackedStringArray +--- @param open_console bool? Default: false +--- @return int +function OS:create_process(path, arguments, open_console) end + +--- @param arguments PackedStringArray +--- @return int +function OS:create_instance(arguments) end + +--- @param program_path String +--- @param paths PackedStringArray +--- @return Error +function OS:open_with_program(program_path, paths) end + +--- @param pid int +--- @return Error +function OS:kill(pid) end + +--- @param uri String +--- @return Error +function OS:shell_open(uri) end + +--- @param file_or_dir_path String +--- @param open_folder bool? Default: true +--- @return Error +function OS:shell_show_in_file_manager(file_or_dir_path, open_folder) end + +--- @param pid int +--- @return bool +function OS:is_process_running(pid) end + +--- @param pid int +--- @return int +function OS:get_process_exit_code(pid) end + +--- @return int +function OS:get_process_id() end + +--- @param variable String +--- @return bool +function OS:has_environment(variable) end + +--- @param variable String +--- @return String +function OS:get_environment(variable) end + +--- @param variable String +--- @param value String +function OS:set_environment(variable, value) end + +--- @param variable String +function OS:unset_environment(variable) end + +--- @return String +function OS:get_name() end + +--- @return String +function OS:get_distribution_name() end + +--- @return String +function OS:get_version() end + +--- @return String +function OS:get_version_alias() end + +--- @return PackedStringArray +function OS:get_cmdline_args() end + +--- @return PackedStringArray +function OS:get_cmdline_user_args() end + +--- @return PackedStringArray +function OS:get_video_adapter_driver_info() end + +--- @param restart bool +--- @param arguments PackedStringArray? Default: PackedStringArray() +function OS:set_restart_on_exit(restart, arguments) end + +--- @return bool +function OS:is_restart_on_exit_set() end + +--- @return PackedStringArray +function OS:get_restart_on_exit_arguments() end + +--- @param usec int +function OS:delay_usec(usec) end + +--- @param msec int +function OS:delay_msec(msec) end + +--- @return String +function OS:get_locale() end + +--- @return String +function OS:get_locale_language() end + +--- @return String +function OS:get_model_name() end + +--- @return bool +function OS:is_userfs_persistent() end + +--- @return bool +function OS:is_stdout_verbose() end + +--- @return bool +function OS:is_debug_build() end + +--- @return int +function OS:get_static_memory_usage() end + +--- @return int +function OS:get_static_memory_peak_usage() end + +--- @return Dictionary +function OS:get_memory_info() end + +--- @param path String +--- @return Error +function OS:move_to_trash(path) end + +--- @return String +function OS:get_user_data_dir() end + +--- @param dir OS.SystemDir +--- @param shared_storage bool? Default: true +--- @return String +function OS:get_system_dir(dir, shared_storage) end + +--- @return String +function OS:get_config_dir() end + +--- @return String +function OS:get_data_dir() end + +--- @return String +function OS:get_cache_dir() end + +--- @return String +function OS:get_temp_dir() end + +--- @return String +function OS:get_unique_id() end + +--- @param code Key +--- @return String +function OS:get_keycode_string(code) end + +--- @param code int +--- @return bool +function OS:is_keycode_unicode(code) end + +--- @param string String +--- @return Key +function OS:find_keycode_from_string(string) end + +--- @param enabled bool +function OS:set_use_file_access_save_and_swap(enabled) end + +--- @param name String +--- @return Error +function OS:set_thread_name(name) end + +--- @return int +function OS:get_thread_caller_id() end + +--- @return int +function OS:get_main_thread_id() end + +--- @param tag_name String +--- @return bool +function OS:has_feature(tag_name) end + +--- @return bool +function OS:is_sandboxed() end + +--- @param name String +--- @return bool +function OS:request_permission(name) end + +--- @return bool +function OS:request_permissions() end + +--- @return PackedStringArray +function OS:get_granted_permissions() end + +function OS:revoke_granted_permissions() end + +--- @param logger Logger +function OS:add_logger(logger) end + +--- @param logger Logger +function OS:remove_logger(logger) end + + +----------------------------------------------------------- +-- Object +----------------------------------------------------------- + +--- @class Object: Variant, { [string]: any } +Object = {} + +--- @return Object +function Object:new() end + +Object.NOTIFICATION_POSTINITIALIZE = 0 +Object.NOTIFICATION_PREDELETE = 1 +Object.NOTIFICATION_EXTENSION_RELOADED = 2 + +--- @alias Object.ConnectFlags `Object.CONNECT_DEFERRED` | `Object.CONNECT_PERSIST` | `Object.CONNECT_ONE_SHOT` | `Object.CONNECT_REFERENCE_COUNTED` | `Object.CONNECT_APPEND_SOURCE_OBJECT` +Object.CONNECT_DEFERRED = 1 +Object.CONNECT_PERSIST = 2 +Object.CONNECT_ONE_SHOT = 4 +Object.CONNECT_REFERENCE_COUNTED = 8 +Object.CONNECT_APPEND_SOURCE_OBJECT = 16 + +Object.script_changed = Signal() +Object.property_list_changed = Signal() + +--- @return String +function Object:get_class() end + +--- @param class String +--- @return bool +function Object:is_class(class) end + +--- @param property StringName +--- @param value any +function Object:set(property, value) end + +--- @param property StringName +--- @return any +function Object:get(property) end + +--- @param property_path NodePath +--- @param value any +function Object:set_indexed(property_path, value) end + +--- @param property_path NodePath +--- @return any +function Object:get_indexed(property_path) end + +--- @return Array[Dictionary] +function Object:get_property_list() end + +--- @return Array[Dictionary] +function Object:get_method_list() end + +--- @param property StringName +--- @return bool +function Object:property_can_revert(property) end + +--- @param property StringName +--- @return any +function Object:property_get_revert(property) end + +--- @param what int +--- @param reversed bool? Default: false +function Object:notification(what, reversed) end + +--- @return String +function Object:to_string() end + +--- @return int +function Object:get_instance_id() end + +--- @param script any +function Object:set_script(script) end + +--- @return any +function Object:get_script() end + +--- @param name StringName +--- @param value any +function Object:set_meta(name, value) end + +--- @param name StringName +function Object:remove_meta(name) end + +--- @param name StringName +--- @param default any? Default: null +--- @return any +function Object:get_meta(name, default) end + +--- @param name StringName +--- @return bool +function Object:has_meta(name) end + +--- @return Array[StringName] +function Object:get_meta_list() end + +--- @param signal String +--- @param arguments Array? Default: [] +function Object:add_user_signal(signal, arguments) end + +--- @param signal StringName +--- @return bool +function Object:has_user_signal(signal) end + +--- @param signal StringName +function Object:remove_user_signal(signal) end + +--- @param signal StringName +--- @return Error +function Object:emit_signal(signal, ...) end + +--- @param method StringName +--- @return any +function Object:call(method, ...) end + +--- @param method StringName +--- @return any +function Object:call_deferred(method, ...) end + +--- @param property StringName +--- @param value any +function Object:set_deferred(property, value) end + +--- @param method StringName +--- @param arg_array Array +--- @return any +function Object:callv(method, arg_array) end + +--- @param method StringName +--- @return bool +function Object:has_method(method) end + +--- @param method StringName +--- @return int +function Object:get_method_argument_count(method) end + +--- @param signal StringName +--- @return bool +function Object:has_signal(signal) end + +--- @return Array[Dictionary] +function Object:get_signal_list() end + +--- @param signal StringName +--- @return Array[Dictionary] +function Object:get_signal_connection_list(signal) end + +--- @return Array[Dictionary] +function Object:get_incoming_connections() end + +--- @param signal StringName +--- @param callable Callable +--- @param flags int? Default: 0 +--- @return Error +function Object:connect(signal, callable, flags) end + +--- @param signal StringName +--- @param callable Callable +function Object:disconnect(signal, callable) end + +--- @param signal StringName +--- @param callable Callable +--- @return bool +function Object:is_connected(signal, callable) end + +--- @param signal StringName +--- @return bool +function Object:has_connections(signal) end + +--- @param enable bool +function Object:set_block_signals(enable) end + +--- @return bool +function Object:is_blocking_signals() end + +function Object:notify_property_list_changed() end + +--- @param enable bool +function Object:set_message_translation(enable) end + +--- @return bool +function Object:can_translate_messages() end + +--- @param message StringName +--- @param context StringName? Default: &"" +--- @return String +function Object:tr(message, context) end + +--- @param message StringName +--- @param plural_message StringName +--- @param n int +--- @param context StringName? Default: &"" +--- @return String +function Object:tr_n(message, plural_message, n, context) end + +--- @return StringName +function Object:get_translation_domain() end + +--- @param domain StringName +function Object:set_translation_domain(domain) end + +--- @return bool +function Object:is_queued_for_deletion() end + +function Object:cancel_free() end + + +----------------------------------------------------------- +-- Occluder3D +----------------------------------------------------------- + +--- @class Occluder3D: Resource, { [string]: any } +Occluder3D = {} + +--- @return PackedVector3Array +function Occluder3D:get_vertices() end + +--- @return PackedInt32Array +function Occluder3D:get_indices() end + + +----------------------------------------------------------- +-- OccluderInstance3D +----------------------------------------------------------- + +--- @class OccluderInstance3D: VisualInstance3D, { [string]: any } +--- @field occluder Occluder3D +--- @field bake_mask int +--- @field bake_simplification_distance float +OccluderInstance3D = {} + +--- @return OccluderInstance3D +function OccluderInstance3D:new() end + +--- @param mask int +function OccluderInstance3D:set_bake_mask(mask) end + +--- @return int +function OccluderInstance3D:get_bake_mask() end + +--- @param layer_number int +--- @param value bool +function OccluderInstance3D:set_bake_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function OccluderInstance3D:get_bake_mask_value(layer_number) end + +--- @param simplification_distance float +function OccluderInstance3D:set_bake_simplification_distance(simplification_distance) end + +--- @return float +function OccluderInstance3D:get_bake_simplification_distance() end + +--- @param occluder Occluder3D +function OccluderInstance3D:set_occluder(occluder) end + +--- @return Occluder3D +function OccluderInstance3D:get_occluder() end + + +----------------------------------------------------------- +-- OccluderPolygon2D +----------------------------------------------------------- + +--- @class OccluderPolygon2D: Resource, { [string]: any } +--- @field closed bool +--- @field cull_mode int +--- @field polygon PackedVector2Array +OccluderPolygon2D = {} + +--- @return OccluderPolygon2D +function OccluderPolygon2D:new() end + +--- @alias OccluderPolygon2D.CullMode `OccluderPolygon2D.CULL_DISABLED` | `OccluderPolygon2D.CULL_CLOCKWISE` | `OccluderPolygon2D.CULL_COUNTER_CLOCKWISE` +OccluderPolygon2D.CULL_DISABLED = 0 +OccluderPolygon2D.CULL_CLOCKWISE = 1 +OccluderPolygon2D.CULL_COUNTER_CLOCKWISE = 2 + +--- @param closed bool +function OccluderPolygon2D:set_closed(closed) end + +--- @return bool +function OccluderPolygon2D:is_closed() end + +--- @param cull_mode OccluderPolygon2D.CullMode +function OccluderPolygon2D:set_cull_mode(cull_mode) end + +--- @return OccluderPolygon2D.CullMode +function OccluderPolygon2D:get_cull_mode() end + +--- @param polygon PackedVector2Array +function OccluderPolygon2D:set_polygon(polygon) end + +--- @return PackedVector2Array +function OccluderPolygon2D:get_polygon() end + + +----------------------------------------------------------- +-- OfflineMultiplayerPeer +----------------------------------------------------------- + +--- @class OfflineMultiplayerPeer: MultiplayerPeer, { [string]: any } +OfflineMultiplayerPeer = {} + +--- @return OfflineMultiplayerPeer +function OfflineMultiplayerPeer:new() end + + +----------------------------------------------------------- +-- OggPacketSequence +----------------------------------------------------------- + +--- @class OggPacketSequence: Resource, { [string]: any } +--- @field packet_data Array[PackedByteArray] +--- @field granule_positions PackedInt64Array +--- @field sampling_rate float +OggPacketSequence = {} + +--- @return OggPacketSequence +function OggPacketSequence:new() end + +--- @param packet_data Array[Array] +function OggPacketSequence:set_packet_data(packet_data) end + +--- @return Array[Array] +function OggPacketSequence:get_packet_data() end + +--- @param granule_positions PackedInt64Array +function OggPacketSequence:set_packet_granule_positions(granule_positions) end + +--- @return PackedInt64Array +function OggPacketSequence:get_packet_granule_positions() end + +--- @param sampling_rate float +function OggPacketSequence:set_sampling_rate(sampling_rate) end + +--- @return float +function OggPacketSequence:get_sampling_rate() end + +--- @return float +function OggPacketSequence:get_length() end + + +----------------------------------------------------------- +-- OggPacketSequencePlayback +----------------------------------------------------------- + +--- @class OggPacketSequencePlayback: RefCounted, { [string]: any } +OggPacketSequencePlayback = {} + +--- @return OggPacketSequencePlayback +function OggPacketSequencePlayback:new() end + + +----------------------------------------------------------- +-- OmniLight3D +----------------------------------------------------------- + +--- @class OmniLight3D: Light3D, { [string]: any } +--- @field omni_range float +--- @field omni_attenuation float +--- @field omni_shadow_mode int +OmniLight3D = {} + +--- @return OmniLight3D +function OmniLight3D:new() end + +--- @alias OmniLight3D.ShadowMode `OmniLight3D.SHADOW_DUAL_PARABOLOID` | `OmniLight3D.SHADOW_CUBE` +OmniLight3D.SHADOW_DUAL_PARABOLOID = 0 +OmniLight3D.SHADOW_CUBE = 1 + +--- @param mode OmniLight3D.ShadowMode +function OmniLight3D:set_shadow_mode(mode) end + +--- @return OmniLight3D.ShadowMode +function OmniLight3D:get_shadow_mode() end + + +----------------------------------------------------------- +-- OpenXRAPIExtension +----------------------------------------------------------- + +--- @class OpenXRAPIExtension: RefCounted, { [string]: any } +OpenXRAPIExtension = {} + +--- @return OpenXRAPIExtension +function OpenXRAPIExtension:new() end + +--- @alias OpenXRAPIExtension.OpenXRAlphaBlendModeSupport `OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_NONE` | `OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL` | `OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_EMULATING` +OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_NONE = 0 +OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL = 1 +OpenXRAPIExtension.OPENXR_ALPHA_BLEND_MODE_SUPPORT_EMULATING = 2 + +--- @return int +function OpenXRAPIExtension:get_instance() end + +--- @return int +function OpenXRAPIExtension:get_system_id() end + +--- @return int +function OpenXRAPIExtension:get_session() end + +--- @param pose const void* +--- @return Transform3D +function OpenXRAPIExtension:transform_from_pose(pose) end + +--- @param result int +--- @param format String +--- @param args Array +--- @return bool +function OpenXRAPIExtension:xr_result(result, format, args) end + +--- static +--- @param check_run_in_editor bool +--- @return bool +function OpenXRAPIExtension:openxr_is_enabled(check_run_in_editor) end + +--- @param name String +--- @return int +function OpenXRAPIExtension:get_instance_proc_addr(name) end + +--- @param result int +--- @return String +function OpenXRAPIExtension:get_error_string(result) end + +--- @param swapchain_format int +--- @return String +function OpenXRAPIExtension:get_swapchain_format_name(swapchain_format) end + +--- @param object_type int +--- @param object_handle int +--- @param object_name String +function OpenXRAPIExtension:set_object_name(object_type, object_handle, object_name) end + +--- @param label_name String +function OpenXRAPIExtension:begin_debug_label_region(label_name) end + +function OpenXRAPIExtension:end_debug_label_region() end + +--- @param label_name String +function OpenXRAPIExtension:insert_debug_label(label_name) end + +--- @return bool +function OpenXRAPIExtension:is_initialized() end + +--- @return bool +function OpenXRAPIExtension:is_running() end + +--- @param space const void* +function OpenXRAPIExtension:set_custom_play_space(space) end + +--- @return int +function OpenXRAPIExtension:get_play_space() end + +--- @return int +function OpenXRAPIExtension:get_predicted_display_time() end + +--- @return int +function OpenXRAPIExtension:get_next_frame_time() end + +--- @return bool +function OpenXRAPIExtension:can_render() end + +--- @param name String +--- @param action_set RID +--- @return RID +function OpenXRAPIExtension:find_action(name, action_set) end + +--- @param action RID +--- @return int +function OpenXRAPIExtension:action_get_handle(action) end + +--- @param hand_index int +--- @return int +function OpenXRAPIExtension:get_hand_tracker(hand_index) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:register_composition_layer_provider(extension) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:unregister_composition_layer_provider(extension) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:register_projection_views_extension(extension) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:unregister_projection_views_extension(extension) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:register_frame_info_extension(extension) end + +--- @param extension OpenXRExtensionWrapper +function OpenXRAPIExtension:unregister_frame_info_extension(extension) end + +--- @return float +function OpenXRAPIExtension:get_render_state_z_near() end + +--- @return float +function OpenXRAPIExtension:get_render_state_z_far() end + +--- @param render_target RID +function OpenXRAPIExtension:set_velocity_texture(render_target) end + +--- @param render_target RID +function OpenXRAPIExtension:set_velocity_depth_texture(render_target) end + +--- @param target_size Vector2i +function OpenXRAPIExtension:set_velocity_target_size(target_size) end + +--- @return PackedInt64Array +function OpenXRAPIExtension:get_supported_swapchain_formats() end + +--- @param create_flags int +--- @param usage_flags int +--- @param swapchain_format int +--- @param width int +--- @param height int +--- @param sample_count int +--- @param array_size int +--- @return int +function OpenXRAPIExtension:openxr_swapchain_create(create_flags, usage_flags, swapchain_format, width, height, sample_count, array_size) end + +--- @param swapchain int +function OpenXRAPIExtension:openxr_swapchain_free(swapchain) end + +--- @param swapchain int +--- @return int +function OpenXRAPIExtension:openxr_swapchain_get_swapchain(swapchain) end + +--- @param swapchain int +function OpenXRAPIExtension:openxr_swapchain_acquire(swapchain) end + +--- @param swapchain int +--- @return RID +function OpenXRAPIExtension:openxr_swapchain_get_image(swapchain) end + +--- @param swapchain int +function OpenXRAPIExtension:openxr_swapchain_release(swapchain) end + +--- @return int +function OpenXRAPIExtension:get_projection_layer() end + +--- @param render_region Rect2i +function OpenXRAPIExtension:set_render_region(render_region) end + +--- @param enabled bool +function OpenXRAPIExtension:set_emulate_environment_blend_mode_alpha_blend(enabled) end + +--- @return OpenXRAPIExtension.OpenXRAlphaBlendModeSupport +function OpenXRAPIExtension:is_environment_blend_mode_alpha_supported() end + + +----------------------------------------------------------- +-- OpenXRAction +----------------------------------------------------------- + +--- @class OpenXRAction: Resource, { [string]: any } +--- @field localized_name String +--- @field action_type int +--- @field toplevel_paths PackedStringArray +OpenXRAction = {} + +--- @return OpenXRAction +function OpenXRAction:new() end + +--- @alias OpenXRAction.ActionType `OpenXRAction.OPENXR_ACTION_BOOL` | `OpenXRAction.OPENXR_ACTION_FLOAT` | `OpenXRAction.OPENXR_ACTION_VECTOR2` | `OpenXRAction.OPENXR_ACTION_POSE` +OpenXRAction.OPENXR_ACTION_BOOL = 0 +OpenXRAction.OPENXR_ACTION_FLOAT = 1 +OpenXRAction.OPENXR_ACTION_VECTOR2 = 2 +OpenXRAction.OPENXR_ACTION_POSE = 3 + +--- @param localized_name String +function OpenXRAction:set_localized_name(localized_name) end + +--- @return String +function OpenXRAction:get_localized_name() end + +--- @param action_type OpenXRAction.ActionType +function OpenXRAction:set_action_type(action_type) end + +--- @return OpenXRAction.ActionType +function OpenXRAction:get_action_type() end + +--- @param toplevel_paths PackedStringArray +function OpenXRAction:set_toplevel_paths(toplevel_paths) end + +--- @return PackedStringArray +function OpenXRAction:get_toplevel_paths() end + + +----------------------------------------------------------- +-- OpenXRActionBindingModifier +----------------------------------------------------------- + +--- @class OpenXRActionBindingModifier: OpenXRBindingModifier, { [string]: any } +OpenXRActionBindingModifier = {} + +--- @return OpenXRActionBindingModifier +function OpenXRActionBindingModifier:new() end + + +----------------------------------------------------------- +-- OpenXRActionMap +----------------------------------------------------------- + +--- @class OpenXRActionMap: Resource, { [string]: any } +--- @field action_sets OpenXRActionSet +--- @field interaction_profiles OpenXRInteractionProfile +OpenXRActionMap = {} + +--- @return OpenXRActionMap +function OpenXRActionMap:new() end + +--- @param action_sets Array +function OpenXRActionMap:set_action_sets(action_sets) end + +--- @return Array +function OpenXRActionMap:get_action_sets() end + +--- @return int +function OpenXRActionMap:get_action_set_count() end + +--- @param name String +--- @return OpenXRActionSet +function OpenXRActionMap:find_action_set(name) end + +--- @param idx int +--- @return OpenXRActionSet +function OpenXRActionMap:get_action_set(idx) end + +--- @param action_set OpenXRActionSet +function OpenXRActionMap:add_action_set(action_set) end + +--- @param action_set OpenXRActionSet +function OpenXRActionMap:remove_action_set(action_set) end + +--- @param interaction_profiles Array +function OpenXRActionMap:set_interaction_profiles(interaction_profiles) end + +--- @return Array +function OpenXRActionMap:get_interaction_profiles() end + +--- @return int +function OpenXRActionMap:get_interaction_profile_count() end + +--- @param name String +--- @return OpenXRInteractionProfile +function OpenXRActionMap:find_interaction_profile(name) end + +--- @param idx int +--- @return OpenXRInteractionProfile +function OpenXRActionMap:get_interaction_profile(idx) end + +--- @param interaction_profile OpenXRInteractionProfile +function OpenXRActionMap:add_interaction_profile(interaction_profile) end + +--- @param interaction_profile OpenXRInteractionProfile +function OpenXRActionMap:remove_interaction_profile(interaction_profile) end + +function OpenXRActionMap:create_default_action_sets() end + + +----------------------------------------------------------- +-- OpenXRActionSet +----------------------------------------------------------- + +--- @class OpenXRActionSet: Resource, { [string]: any } +--- @field localized_name String +--- @field priority int +--- @field actions OpenXRAction +OpenXRActionSet = {} + +--- @return OpenXRActionSet +function OpenXRActionSet:new() end + +--- @param localized_name String +function OpenXRActionSet:set_localized_name(localized_name) end + +--- @return String +function OpenXRActionSet:get_localized_name() end + +--- @param priority int +function OpenXRActionSet:set_priority(priority) end + +--- @return int +function OpenXRActionSet:get_priority() end + +--- @return int +function OpenXRActionSet:get_action_count() end + +--- @param actions Array +function OpenXRActionSet:set_actions(actions) end + +--- @return Array +function OpenXRActionSet:get_actions() end + +--- @param action OpenXRAction +function OpenXRActionSet:add_action(action) end + +--- @param action OpenXRAction +function OpenXRActionSet:remove_action(action) end + + +----------------------------------------------------------- +-- OpenXRAnalogThresholdModifier +----------------------------------------------------------- + +--- @class OpenXRAnalogThresholdModifier: OpenXRActionBindingModifier, { [string]: any } +--- @field on_threshold float +--- @field off_threshold float +--- @field on_haptic OpenXRHapticBase +--- @field off_haptic OpenXRHapticBase +OpenXRAnalogThresholdModifier = {} + +--- @return OpenXRAnalogThresholdModifier +function OpenXRAnalogThresholdModifier:new() end + +--- @param on_threshold float +function OpenXRAnalogThresholdModifier:set_on_threshold(on_threshold) end + +--- @return float +function OpenXRAnalogThresholdModifier:get_on_threshold() end + +--- @param off_threshold float +function OpenXRAnalogThresholdModifier:set_off_threshold(off_threshold) end + +--- @return float +function OpenXRAnalogThresholdModifier:get_off_threshold() end + +--- @param haptic OpenXRHapticBase +function OpenXRAnalogThresholdModifier:set_on_haptic(haptic) end + +--- @return OpenXRHapticBase +function OpenXRAnalogThresholdModifier:get_on_haptic() end + +--- @param haptic OpenXRHapticBase +function OpenXRAnalogThresholdModifier:set_off_haptic(haptic) end + +--- @return OpenXRHapticBase +function OpenXRAnalogThresholdModifier:get_off_haptic() end + + +----------------------------------------------------------- +-- OpenXRBindingModifier +----------------------------------------------------------- + +--- @class OpenXRBindingModifier: Resource, { [string]: any } +OpenXRBindingModifier = {} + +--- @return String +function OpenXRBindingModifier:_get_description() end + +--- @return PackedByteArray +function OpenXRBindingModifier:_get_ip_modification() end + + +----------------------------------------------------------- +-- OpenXRBindingModifierEditor +----------------------------------------------------------- + +--- @class OpenXRBindingModifierEditor: PanelContainer, { [string]: any } +OpenXRBindingModifierEditor = {} + +--- @return OpenXRBindingModifierEditor +function OpenXRBindingModifierEditor:new() end + +OpenXRBindingModifierEditor.binding_modifier_removed = Signal() + +--- @return OpenXRBindingModifier +function OpenXRBindingModifierEditor:get_binding_modifier() end + +--- @param action_map OpenXRActionMap +--- @param binding_modifier OpenXRBindingModifier +function OpenXRBindingModifierEditor:setup(action_map, binding_modifier) end + + +----------------------------------------------------------- +-- OpenXRCompositionLayer +----------------------------------------------------------- + +--- @class OpenXRCompositionLayer: Node3D, { [string]: any } +--- @field layer_viewport Object +--- @field use_android_surface bool +--- @field android_surface_size Vector2i +--- @field sort_order int +--- @field alpha_blend bool +--- @field enable_hole_punch bool +--- @field swapchain_state_min_filter int +--- @field swapchain_state_mag_filter int +--- @field swapchain_state_mipmap_mode int +--- @field swapchain_state_horizontal_wrap int +--- @field swapchain_state_vertical_wrap int +--- @field swapchain_state_red_swizzle int +--- @field swapchain_state_green_swizzle int +--- @field swapchain_state_blue_swizzle int +--- @field swapchain_state_alpha_swizzle int +--- @field swapchain_state_max_anisotropy float +--- @field swapchain_state_border_color Color +OpenXRCompositionLayer = {} + +--- @alias OpenXRCompositionLayer.Filter `OpenXRCompositionLayer.FILTER_NEAREST` | `OpenXRCompositionLayer.FILTER_LINEAR` | `OpenXRCompositionLayer.FILTER_CUBIC` +OpenXRCompositionLayer.FILTER_NEAREST = 0 +OpenXRCompositionLayer.FILTER_LINEAR = 1 +OpenXRCompositionLayer.FILTER_CUBIC = 2 + +--- @alias OpenXRCompositionLayer.MipmapMode `OpenXRCompositionLayer.MIPMAP_MODE_DISABLED` | `OpenXRCompositionLayer.MIPMAP_MODE_NEAREST` | `OpenXRCompositionLayer.MIPMAP_MODE_LINEAR` +OpenXRCompositionLayer.MIPMAP_MODE_DISABLED = 0 +OpenXRCompositionLayer.MIPMAP_MODE_NEAREST = 1 +OpenXRCompositionLayer.MIPMAP_MODE_LINEAR = 2 + +--- @alias OpenXRCompositionLayer.Wrap `OpenXRCompositionLayer.WRAP_CLAMP_TO_BORDER` | `OpenXRCompositionLayer.WRAP_CLAMP_TO_EDGE` | `OpenXRCompositionLayer.WRAP_REPEAT` | `OpenXRCompositionLayer.WRAP_MIRRORED_REPEAT` | `OpenXRCompositionLayer.WRAP_MIRROR_CLAMP_TO_EDGE` +OpenXRCompositionLayer.WRAP_CLAMP_TO_BORDER = 0 +OpenXRCompositionLayer.WRAP_CLAMP_TO_EDGE = 1 +OpenXRCompositionLayer.WRAP_REPEAT = 2 +OpenXRCompositionLayer.WRAP_MIRRORED_REPEAT = 3 +OpenXRCompositionLayer.WRAP_MIRROR_CLAMP_TO_EDGE = 4 + +--- @alias OpenXRCompositionLayer.Swizzle `OpenXRCompositionLayer.SWIZZLE_RED` | `OpenXRCompositionLayer.SWIZZLE_GREEN` | `OpenXRCompositionLayer.SWIZZLE_BLUE` | `OpenXRCompositionLayer.SWIZZLE_ALPHA` | `OpenXRCompositionLayer.SWIZZLE_ZERO` | `OpenXRCompositionLayer.SWIZZLE_ONE` +OpenXRCompositionLayer.SWIZZLE_RED = 0 +OpenXRCompositionLayer.SWIZZLE_GREEN = 1 +OpenXRCompositionLayer.SWIZZLE_BLUE = 2 +OpenXRCompositionLayer.SWIZZLE_ALPHA = 3 +OpenXRCompositionLayer.SWIZZLE_ZERO = 4 +OpenXRCompositionLayer.SWIZZLE_ONE = 5 + +--- @param viewport SubViewport +function OpenXRCompositionLayer:set_layer_viewport(viewport) end + +--- @return SubViewport +function OpenXRCompositionLayer:get_layer_viewport() end + +--- @param enable bool +function OpenXRCompositionLayer:set_use_android_surface(enable) end + +--- @return bool +function OpenXRCompositionLayer:get_use_android_surface() end + +--- @param size Vector2i +function OpenXRCompositionLayer:set_android_surface_size(size) end + +--- @return Vector2i +function OpenXRCompositionLayer:get_android_surface_size() end + +--- @param enable bool +function OpenXRCompositionLayer:set_enable_hole_punch(enable) end + +--- @return bool +function OpenXRCompositionLayer:get_enable_hole_punch() end + +--- @param order int +function OpenXRCompositionLayer:set_sort_order(order) end + +--- @return int +function OpenXRCompositionLayer:get_sort_order() end + +--- @param enabled bool +function OpenXRCompositionLayer:set_alpha_blend(enabled) end + +--- @return bool +function OpenXRCompositionLayer:get_alpha_blend() end + +--- @return JavaObject +function OpenXRCompositionLayer:get_android_surface() end + +--- @return bool +function OpenXRCompositionLayer:is_natively_supported() end + +--- @param mode OpenXRCompositionLayer.Filter +function OpenXRCompositionLayer:set_min_filter(mode) end + +--- @return OpenXRCompositionLayer.Filter +function OpenXRCompositionLayer:get_min_filter() end + +--- @param mode OpenXRCompositionLayer.Filter +function OpenXRCompositionLayer:set_mag_filter(mode) end + +--- @return OpenXRCompositionLayer.Filter +function OpenXRCompositionLayer:get_mag_filter() end + +--- @param mode OpenXRCompositionLayer.MipmapMode +function OpenXRCompositionLayer:set_mipmap_mode(mode) end + +--- @return OpenXRCompositionLayer.MipmapMode +function OpenXRCompositionLayer:get_mipmap_mode() end + +--- @param mode OpenXRCompositionLayer.Wrap +function OpenXRCompositionLayer:set_horizontal_wrap(mode) end + +--- @return OpenXRCompositionLayer.Wrap +function OpenXRCompositionLayer:get_horizontal_wrap() end + +--- @param mode OpenXRCompositionLayer.Wrap +function OpenXRCompositionLayer:set_vertical_wrap(mode) end + +--- @return OpenXRCompositionLayer.Wrap +function OpenXRCompositionLayer:get_vertical_wrap() end + +--- @param mode OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:set_red_swizzle(mode) end + +--- @return OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:get_red_swizzle() end + +--- @param mode OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:set_green_swizzle(mode) end + +--- @return OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:get_green_swizzle() end + +--- @param mode OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:set_blue_swizzle(mode) end + +--- @return OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:get_blue_swizzle() end + +--- @param mode OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:set_alpha_swizzle(mode) end + +--- @return OpenXRCompositionLayer.Swizzle +function OpenXRCompositionLayer:get_alpha_swizzle() end + +--- @param value float +function OpenXRCompositionLayer:set_max_anisotropy(value) end + +--- @return float +function OpenXRCompositionLayer:get_max_anisotropy() end + +--- @param color Color +function OpenXRCompositionLayer:set_border_color(color) end + +--- @return Color +function OpenXRCompositionLayer:get_border_color() end + +--- @param origin Vector3 +--- @param direction Vector3 +--- @return Vector2 +function OpenXRCompositionLayer:intersects_ray(origin, direction) end + + +----------------------------------------------------------- +-- OpenXRCompositionLayerCylinder +----------------------------------------------------------- + +--- @class OpenXRCompositionLayerCylinder: OpenXRCompositionLayer, { [string]: any } +--- @field radius float +--- @field aspect_ratio float +--- @field central_angle float +--- @field fallback_segments int +OpenXRCompositionLayerCylinder = {} + +--- @return OpenXRCompositionLayerCylinder +function OpenXRCompositionLayerCylinder:new() end + +--- @param radius float +function OpenXRCompositionLayerCylinder:set_radius(radius) end + +--- @return float +function OpenXRCompositionLayerCylinder:get_radius() end + +--- @param aspect_ratio float +function OpenXRCompositionLayerCylinder:set_aspect_ratio(aspect_ratio) end + +--- @return float +function OpenXRCompositionLayerCylinder:get_aspect_ratio() end + +--- @param angle float +function OpenXRCompositionLayerCylinder:set_central_angle(angle) end + +--- @return float +function OpenXRCompositionLayerCylinder:get_central_angle() end + +--- @param segments int +function OpenXRCompositionLayerCylinder:set_fallback_segments(segments) end + +--- @return int +function OpenXRCompositionLayerCylinder:get_fallback_segments() end + + +----------------------------------------------------------- +-- OpenXRCompositionLayerEquirect +----------------------------------------------------------- + +--- @class OpenXRCompositionLayerEquirect: OpenXRCompositionLayer, { [string]: any } +--- @field radius float +--- @field central_horizontal_angle float +--- @field upper_vertical_angle float +--- @field lower_vertical_angle float +--- @field fallback_segments int +OpenXRCompositionLayerEquirect = {} + +--- @return OpenXRCompositionLayerEquirect +function OpenXRCompositionLayerEquirect:new() end + +--- @param radius float +function OpenXRCompositionLayerEquirect:set_radius(radius) end + +--- @return float +function OpenXRCompositionLayerEquirect:get_radius() end + +--- @param angle float +function OpenXRCompositionLayerEquirect:set_central_horizontal_angle(angle) end + +--- @return float +function OpenXRCompositionLayerEquirect:get_central_horizontal_angle() end + +--- @param angle float +function OpenXRCompositionLayerEquirect:set_upper_vertical_angle(angle) end + +--- @return float +function OpenXRCompositionLayerEquirect:get_upper_vertical_angle() end + +--- @param angle float +function OpenXRCompositionLayerEquirect:set_lower_vertical_angle(angle) end + +--- @return float +function OpenXRCompositionLayerEquirect:get_lower_vertical_angle() end + +--- @param segments int +function OpenXRCompositionLayerEquirect:set_fallback_segments(segments) end + +--- @return int +function OpenXRCompositionLayerEquirect:get_fallback_segments() end + + +----------------------------------------------------------- +-- OpenXRCompositionLayerQuad +----------------------------------------------------------- + +--- @class OpenXRCompositionLayerQuad: OpenXRCompositionLayer, { [string]: any } +--- @field quad_size Vector2 +OpenXRCompositionLayerQuad = {} + +--- @return OpenXRCompositionLayerQuad +function OpenXRCompositionLayerQuad:new() end + +--- @param size Vector2 +function OpenXRCompositionLayerQuad:set_quad_size(size) end + +--- @return Vector2 +function OpenXRCompositionLayerQuad:get_quad_size() end + + +----------------------------------------------------------- +-- OpenXRDpadBindingModifier +----------------------------------------------------------- + +--- @class OpenXRDpadBindingModifier: OpenXRIPBindingModifier, { [string]: any } +--- @field action_set OpenXRActionSet +--- @field input_path String +--- @field threshold float +--- @field threshold_released float +--- @field center_region float +--- @field wedge_angle float +--- @field is_sticky bool +--- @field on_haptic OpenXRHapticBase +--- @field off_haptic OpenXRHapticBase +OpenXRDpadBindingModifier = {} + +--- @return OpenXRDpadBindingModifier +function OpenXRDpadBindingModifier:new() end + +--- @param action_set OpenXRActionSet +function OpenXRDpadBindingModifier:set_action_set(action_set) end + +--- @return OpenXRActionSet +function OpenXRDpadBindingModifier:get_action_set() end + +--- @param input_path String +function OpenXRDpadBindingModifier:set_input_path(input_path) end + +--- @return String +function OpenXRDpadBindingModifier:get_input_path() end + +--- @param threshold float +function OpenXRDpadBindingModifier:set_threshold(threshold) end + +--- @return float +function OpenXRDpadBindingModifier:get_threshold() end + +--- @param threshold_released float +function OpenXRDpadBindingModifier:set_threshold_released(threshold_released) end + +--- @return float +function OpenXRDpadBindingModifier:get_threshold_released() end + +--- @param center_region float +function OpenXRDpadBindingModifier:set_center_region(center_region) end + +--- @return float +function OpenXRDpadBindingModifier:get_center_region() end + +--- @param wedge_angle float +function OpenXRDpadBindingModifier:set_wedge_angle(wedge_angle) end + +--- @return float +function OpenXRDpadBindingModifier:get_wedge_angle() end + +--- @param is_sticky bool +function OpenXRDpadBindingModifier:set_is_sticky(is_sticky) end + +--- @return bool +function OpenXRDpadBindingModifier:get_is_sticky() end + +--- @param haptic OpenXRHapticBase +function OpenXRDpadBindingModifier:set_on_haptic(haptic) end + +--- @return OpenXRHapticBase +function OpenXRDpadBindingModifier:get_on_haptic() end + +--- @param haptic OpenXRHapticBase +function OpenXRDpadBindingModifier:set_off_haptic(haptic) end + +--- @return OpenXRHapticBase +function OpenXRDpadBindingModifier:get_off_haptic() end + + +----------------------------------------------------------- +-- OpenXRExtensionWrapper +----------------------------------------------------------- + +--- @class OpenXRExtensionWrapper: Object, { [string]: any } +OpenXRExtensionWrapper = {} + +--- @return OpenXRExtensionWrapper +function OpenXRExtensionWrapper:new() end + +--- @return Dictionary +function OpenXRExtensionWrapper:_get_requested_extensions() end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_system_properties_and_get_next_pointer(next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_instance_create_info_and_get_next_pointer(next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_session_create_and_get_next_pointer(next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_swapchain_create_info_and_get_next_pointer(next_pointer) end + +--- @param hand_index int +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_hand_joint_locations_and_get_next_pointer(hand_index, next_pointer) end + +--- @param view_index int +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_projection_views_and_get_next_pointer(view_index, next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_frame_wait_info_and_get_next_pointer(next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_frame_end_info_and_get_next_pointer(next_pointer) end + +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_view_locate_info_and_get_next_pointer(next_pointer) end + +--- @param reference_space_type int +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_reference_space_create_info_and_get_next_pointer(reference_space_type, next_pointer) end + +--- @return int +function OpenXRExtensionWrapper:_get_composition_layer_count() end + +--- @param index int +--- @return int +function OpenXRExtensionWrapper:_get_composition_layer(index) end + +--- @param index int +--- @return int +function OpenXRExtensionWrapper:_get_composition_layer_order(index) end + +--- @return PackedStringArray +function OpenXRExtensionWrapper:_get_suggested_tracker_names() end + +function OpenXRExtensionWrapper:_on_register_metadata() end + +function OpenXRExtensionWrapper:_on_before_instance_created() end + +--- @param instance int +function OpenXRExtensionWrapper:_on_instance_created(instance) end + +function OpenXRExtensionWrapper:_on_instance_destroyed() end + +--- @param session int +function OpenXRExtensionWrapper:_on_session_created(session) end + +function OpenXRExtensionWrapper:_on_process() end + +function OpenXRExtensionWrapper:_on_sync_actions() end + +function OpenXRExtensionWrapper:_on_pre_render() end + +function OpenXRExtensionWrapper:_on_main_swapchains_created() end + +--- @param viewport RID +function OpenXRExtensionWrapper:_on_pre_draw_viewport(viewport) end + +--- @param viewport RID +function OpenXRExtensionWrapper:_on_post_draw_viewport(viewport) end + +function OpenXRExtensionWrapper:_on_session_destroyed() end + +function OpenXRExtensionWrapper:_on_state_idle() end + +function OpenXRExtensionWrapper:_on_state_ready() end + +function OpenXRExtensionWrapper:_on_state_synchronized() end + +function OpenXRExtensionWrapper:_on_state_visible() end + +function OpenXRExtensionWrapper:_on_state_focused() end + +function OpenXRExtensionWrapper:_on_state_stopping() end + +function OpenXRExtensionWrapper:_on_state_loss_pending() end + +function OpenXRExtensionWrapper:_on_state_exiting() end + +--- @param event const void* +--- @return bool +function OpenXRExtensionWrapper:_on_event_polled(event) end + +--- @param layer const void* +--- @param property_values Dictionary +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_viewport_composition_layer_and_get_next_pointer(layer, property_values, next_pointer) end + +--- @return Array[Dictionary] +function OpenXRExtensionWrapper:_get_viewport_composition_layer_extension_properties() end + +--- @return Dictionary +function OpenXRExtensionWrapper:_get_viewport_composition_layer_extension_property_defaults() end + +--- @param layer const void* +function OpenXRExtensionWrapper:_on_viewport_composition_layer_destroyed(layer) end + +--- @param property_values Dictionary +--- @param next_pointer void* +--- @return int +function OpenXRExtensionWrapper:_set_android_surface_swapchain_create_info_and_get_next_pointer(property_values, next_pointer) end + +--- @return OpenXRAPIExtension +function OpenXRExtensionWrapper:get_openxr_api() end + +function OpenXRExtensionWrapper:register_extension_wrapper() end + + +----------------------------------------------------------- +-- OpenXRExtensionWrapperExtension +----------------------------------------------------------- + +--- @class OpenXRExtensionWrapperExtension: OpenXRExtensionWrapper, { [string]: any } +OpenXRExtensionWrapperExtension = {} + +--- @return OpenXRExtensionWrapperExtension +function OpenXRExtensionWrapperExtension:new() end + + +----------------------------------------------------------- +-- OpenXRFutureExtension +----------------------------------------------------------- + +--- @class OpenXRFutureExtension: OpenXRExtensionWrapper, { [string]: any } +OpenXRFutureExtension = {} + +--- @return OpenXRFutureExtension +function OpenXRFutureExtension:new() end + +--- @return bool +function OpenXRFutureExtension:is_active() end + +--- @param future int +--- @param on_success Callable? Default: Callable() +--- @return OpenXRFutureResult +function OpenXRFutureExtension:register_future(future, on_success) end + +--- @param future int +function OpenXRFutureExtension:cancel_future(future) end + + +----------------------------------------------------------- +-- OpenXRFutureResult +----------------------------------------------------------- + +--- @class OpenXRFutureResult: RefCounted, { [string]: any } +OpenXRFutureResult = {} + +--- @alias OpenXRFutureResult.ResultStatus `OpenXRFutureResult.RESULT_RUNNING` | `OpenXRFutureResult.RESULT_FINISHED` | `OpenXRFutureResult.RESULT_CANCELLED` +OpenXRFutureResult.RESULT_RUNNING = 0 +OpenXRFutureResult.RESULT_FINISHED = 1 +OpenXRFutureResult.RESULT_CANCELLED = 2 + +OpenXRFutureResult.completed = Signal() + +--- @return OpenXRFutureResult.ResultStatus +function OpenXRFutureResult:get_status() end + +--- @return int +function OpenXRFutureResult:get_future() end + +function OpenXRFutureResult:cancel_future() end + +--- @param result_value any +function OpenXRFutureResult:set_result_value(result_value) end + +--- @return any +function OpenXRFutureResult:get_result_value() end + + +----------------------------------------------------------- +-- OpenXRHand +----------------------------------------------------------- + +--- @class OpenXRHand: Node3D, { [string]: any } +--- @field hand int +--- @field motion_range int +--- @field hand_skeleton NodePath +--- @field skeleton_rig int +--- @field bone_update int +OpenXRHand = {} + +--- @return OpenXRHand +function OpenXRHand:new() end + +--- @alias OpenXRHand.Hands `OpenXRHand.HAND_LEFT` | `OpenXRHand.HAND_RIGHT` | `OpenXRHand.HAND_MAX` +OpenXRHand.HAND_LEFT = 0 +OpenXRHand.HAND_RIGHT = 1 +OpenXRHand.HAND_MAX = 2 + +--- @alias OpenXRHand.MotionRange `OpenXRHand.MOTION_RANGE_UNOBSTRUCTED` | `OpenXRHand.MOTION_RANGE_CONFORM_TO_CONTROLLER` | `OpenXRHand.MOTION_RANGE_MAX` +OpenXRHand.MOTION_RANGE_UNOBSTRUCTED = 0 +OpenXRHand.MOTION_RANGE_CONFORM_TO_CONTROLLER = 1 +OpenXRHand.MOTION_RANGE_MAX = 2 + +--- @alias OpenXRHand.SkeletonRig `OpenXRHand.SKELETON_RIG_OPENXR` | `OpenXRHand.SKELETON_RIG_HUMANOID` | `OpenXRHand.SKELETON_RIG_MAX` +OpenXRHand.SKELETON_RIG_OPENXR = 0 +OpenXRHand.SKELETON_RIG_HUMANOID = 1 +OpenXRHand.SKELETON_RIG_MAX = 2 + +--- @alias OpenXRHand.BoneUpdate `OpenXRHand.BONE_UPDATE_FULL` | `OpenXRHand.BONE_UPDATE_ROTATION_ONLY` | `OpenXRHand.BONE_UPDATE_MAX` +OpenXRHand.BONE_UPDATE_FULL = 0 +OpenXRHand.BONE_UPDATE_ROTATION_ONLY = 1 +OpenXRHand.BONE_UPDATE_MAX = 2 + +--- @param hand OpenXRHand.Hands +function OpenXRHand:set_hand(hand) end + +--- @return OpenXRHand.Hands +function OpenXRHand:get_hand() end + +--- @param hand_skeleton NodePath +function OpenXRHand:set_hand_skeleton(hand_skeleton) end + +--- @return NodePath +function OpenXRHand:get_hand_skeleton() end + +--- @param motion_range OpenXRHand.MotionRange +function OpenXRHand:set_motion_range(motion_range) end + +--- @return OpenXRHand.MotionRange +function OpenXRHand:get_motion_range() end + +--- @param skeleton_rig OpenXRHand.SkeletonRig +function OpenXRHand:set_skeleton_rig(skeleton_rig) end + +--- @return OpenXRHand.SkeletonRig +function OpenXRHand:get_skeleton_rig() end + +--- @param bone_update OpenXRHand.BoneUpdate +function OpenXRHand:set_bone_update(bone_update) end + +--- @return OpenXRHand.BoneUpdate +function OpenXRHand:get_bone_update() end + + +----------------------------------------------------------- +-- OpenXRHapticBase +----------------------------------------------------------- + +--- @class OpenXRHapticBase: Resource, { [string]: any } +OpenXRHapticBase = {} + + +----------------------------------------------------------- +-- OpenXRHapticVibration +----------------------------------------------------------- + +--- @class OpenXRHapticVibration: OpenXRHapticBase, { [string]: any } +--- @field duration int +--- @field frequency float +--- @field amplitude float +OpenXRHapticVibration = {} + +--- @return OpenXRHapticVibration +function OpenXRHapticVibration:new() end + +--- @param duration int +function OpenXRHapticVibration:set_duration(duration) end + +--- @return int +function OpenXRHapticVibration:get_duration() end + +--- @param frequency float +function OpenXRHapticVibration:set_frequency(frequency) end + +--- @return float +function OpenXRHapticVibration:get_frequency() end + +--- @param amplitude float +function OpenXRHapticVibration:set_amplitude(amplitude) end + +--- @return float +function OpenXRHapticVibration:get_amplitude() end + + +----------------------------------------------------------- +-- OpenXRIPBinding +----------------------------------------------------------- + +--- @class OpenXRIPBinding: Resource, { [string]: any } +--- @field action OpenXRAction +--- @field binding_path String +--- @field binding_modifiers OpenXRActionBindingModifier +--- @field paths PackedStringArray +OpenXRIPBinding = {} + +--- @return OpenXRIPBinding +function OpenXRIPBinding:new() end + +--- @param action OpenXRAction +function OpenXRIPBinding:set_action(action) end + +--- @return OpenXRAction +function OpenXRIPBinding:get_action() end + +--- @param binding_path String +function OpenXRIPBinding:set_binding_path(binding_path) end + +--- @return String +function OpenXRIPBinding:get_binding_path() end + +--- @return int +function OpenXRIPBinding:get_binding_modifier_count() end + +--- @param index int +--- @return OpenXRActionBindingModifier +function OpenXRIPBinding:get_binding_modifier(index) end + +--- @param binding_modifiers Array +function OpenXRIPBinding:set_binding_modifiers(binding_modifiers) end + +--- @return Array +function OpenXRIPBinding:get_binding_modifiers() end + +--- @param paths PackedStringArray +function OpenXRIPBinding:set_paths(paths) end + +--- @return PackedStringArray +function OpenXRIPBinding:get_paths() end + +--- @return int +function OpenXRIPBinding:get_path_count() end + +--- @param path String +--- @return bool +function OpenXRIPBinding:has_path(path) end + +--- @param path String +function OpenXRIPBinding:add_path(path) end + +--- @param path String +function OpenXRIPBinding:remove_path(path) end + + +----------------------------------------------------------- +-- OpenXRIPBindingModifier +----------------------------------------------------------- + +--- @class OpenXRIPBindingModifier: OpenXRBindingModifier, { [string]: any } +OpenXRIPBindingModifier = {} + +--- @return OpenXRIPBindingModifier +function OpenXRIPBindingModifier:new() end + + +----------------------------------------------------------- +-- OpenXRInteractionProfile +----------------------------------------------------------- + +--- @class OpenXRInteractionProfile: Resource, { [string]: any } +--- @field interaction_profile_path String +--- @field bindings OpenXRIPBinding +--- @field binding_modifiers OpenXRIPBindingModifier +OpenXRInteractionProfile = {} + +--- @return OpenXRInteractionProfile +function OpenXRInteractionProfile:new() end + +--- @param interaction_profile_path String +function OpenXRInteractionProfile:set_interaction_profile_path(interaction_profile_path) end + +--- @return String +function OpenXRInteractionProfile:get_interaction_profile_path() end + +--- @return int +function OpenXRInteractionProfile:get_binding_count() end + +--- @param index int +--- @return OpenXRIPBinding +function OpenXRInteractionProfile:get_binding(index) end + +--- @param bindings Array +function OpenXRInteractionProfile:set_bindings(bindings) end + +--- @return Array +function OpenXRInteractionProfile:get_bindings() end + +--- @return int +function OpenXRInteractionProfile:get_binding_modifier_count() end + +--- @param index int +--- @return OpenXRIPBindingModifier +function OpenXRInteractionProfile:get_binding_modifier(index) end + +--- @param binding_modifiers Array +function OpenXRInteractionProfile:set_binding_modifiers(binding_modifiers) end + +--- @return Array +function OpenXRInteractionProfile:get_binding_modifiers() end + + +----------------------------------------------------------- +-- OpenXRInteractionProfileEditor +----------------------------------------------------------- + +--- @class OpenXRInteractionProfileEditor: OpenXRInteractionProfileEditorBase, { [string]: any } +OpenXRInteractionProfileEditor = {} + +--- @return OpenXRInteractionProfileEditor +function OpenXRInteractionProfileEditor:new() end + + +----------------------------------------------------------- +-- OpenXRInteractionProfileEditorBase +----------------------------------------------------------- + +--- @class OpenXRInteractionProfileEditorBase: HBoxContainer, { [string]: any } +OpenXRInteractionProfileEditorBase = {} + +--- @param action_map OpenXRActionMap +--- @param interaction_profile OpenXRInteractionProfile +function OpenXRInteractionProfileEditorBase:setup(action_map, interaction_profile) end + + +----------------------------------------------------------- +-- OpenXRInteractionProfileMetadata +----------------------------------------------------------- + +--- @class OpenXRInteractionProfileMetadata: Object, { [string]: any } +OpenXRInteractionProfileMetadata = {} + +--- @return OpenXRInteractionProfileMetadata +function OpenXRInteractionProfileMetadata:new() end + +--- @param old_name String +--- @param new_name String +function OpenXRInteractionProfileMetadata:register_profile_rename(old_name, new_name) end + +--- @param display_name String +--- @param openxr_path String +--- @param openxr_extension_name String +function OpenXRInteractionProfileMetadata:register_top_level_path(display_name, openxr_path, openxr_extension_name) end + +--- @param display_name String +--- @param openxr_path String +--- @param openxr_extension_name String +function OpenXRInteractionProfileMetadata:register_interaction_profile(display_name, openxr_path, openxr_extension_name) end + +--- @param interaction_profile String +--- @param display_name String +--- @param toplevel_path String +--- @param openxr_path String +--- @param openxr_extension_name String +--- @param action_type OpenXRAction.ActionType +function OpenXRInteractionProfileMetadata:register_io_path(interaction_profile, display_name, toplevel_path, openxr_path, openxr_extension_name, action_type) end + + +----------------------------------------------------------- +-- OpenXRInterface +----------------------------------------------------------- + +--- @class OpenXRInterface: XRInterface, { [string]: any } +--- @field display_refresh_rate float +--- @field render_target_size_multiplier float +--- @field foveation_level int +--- @field foveation_dynamic bool +--- @field vrs_min_radius float +--- @field vrs_strength float +OpenXRInterface = {} + +--- @return OpenXRInterface +function OpenXRInterface:new() end + +--- @alias OpenXRInterface.SessionState `OpenXRInterface.SESSION_STATE_UNKNOWN` | `OpenXRInterface.SESSION_STATE_IDLE` | `OpenXRInterface.SESSION_STATE_READY` | `OpenXRInterface.SESSION_STATE_SYNCHRONIZED` | `OpenXRInterface.SESSION_STATE_VISIBLE` | `OpenXRInterface.SESSION_STATE_FOCUSED` | `OpenXRInterface.SESSION_STATE_STOPPING` | `OpenXRInterface.SESSION_STATE_LOSS_PENDING` | `OpenXRInterface.SESSION_STATE_EXITING` +OpenXRInterface.SESSION_STATE_UNKNOWN = 0 +OpenXRInterface.SESSION_STATE_IDLE = 1 +OpenXRInterface.SESSION_STATE_READY = 2 +OpenXRInterface.SESSION_STATE_SYNCHRONIZED = 3 +OpenXRInterface.SESSION_STATE_VISIBLE = 4 +OpenXRInterface.SESSION_STATE_FOCUSED = 5 +OpenXRInterface.SESSION_STATE_STOPPING = 6 +OpenXRInterface.SESSION_STATE_LOSS_PENDING = 7 +OpenXRInterface.SESSION_STATE_EXITING = 8 + +--- @alias OpenXRInterface.Hand `OpenXRInterface.HAND_LEFT` | `OpenXRInterface.HAND_RIGHT` | `OpenXRInterface.HAND_MAX` +OpenXRInterface.HAND_LEFT = 0 +OpenXRInterface.HAND_RIGHT = 1 +OpenXRInterface.HAND_MAX = 2 + +--- @alias OpenXRInterface.HandMotionRange `OpenXRInterface.HAND_MOTION_RANGE_UNOBSTRUCTED` | `OpenXRInterface.HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER` | `OpenXRInterface.HAND_MOTION_RANGE_MAX` +OpenXRInterface.HAND_MOTION_RANGE_UNOBSTRUCTED = 0 +OpenXRInterface.HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER = 1 +OpenXRInterface.HAND_MOTION_RANGE_MAX = 2 + +--- @alias OpenXRInterface.HandTrackedSource `OpenXRInterface.HAND_TRACKED_SOURCE_UNKNOWN` | `OpenXRInterface.HAND_TRACKED_SOURCE_UNOBSTRUCTED` | `OpenXRInterface.HAND_TRACKED_SOURCE_CONTROLLER` | `OpenXRInterface.HAND_TRACKED_SOURCE_MAX` +OpenXRInterface.HAND_TRACKED_SOURCE_UNKNOWN = 0 +OpenXRInterface.HAND_TRACKED_SOURCE_UNOBSTRUCTED = 1 +OpenXRInterface.HAND_TRACKED_SOURCE_CONTROLLER = 2 +OpenXRInterface.HAND_TRACKED_SOURCE_MAX = 3 + +--- @alias OpenXRInterface.HandJoints `OpenXRInterface.HAND_JOINT_PALM` | `OpenXRInterface.HAND_JOINT_WRIST` | `OpenXRInterface.HAND_JOINT_THUMB_METACARPAL` | `OpenXRInterface.HAND_JOINT_THUMB_PROXIMAL` | `OpenXRInterface.HAND_JOINT_THUMB_DISTAL` | `OpenXRInterface.HAND_JOINT_THUMB_TIP` | `OpenXRInterface.HAND_JOINT_INDEX_METACARPAL` | `OpenXRInterface.HAND_JOINT_INDEX_PROXIMAL` | `OpenXRInterface.HAND_JOINT_INDEX_INTERMEDIATE` | `OpenXRInterface.HAND_JOINT_INDEX_DISTAL` | `OpenXRInterface.HAND_JOINT_INDEX_TIP` | `OpenXRInterface.HAND_JOINT_MIDDLE_METACARPAL` | `OpenXRInterface.HAND_JOINT_MIDDLE_PROXIMAL` | `OpenXRInterface.HAND_JOINT_MIDDLE_INTERMEDIATE` | `OpenXRInterface.HAND_JOINT_MIDDLE_DISTAL` | `OpenXRInterface.HAND_JOINT_MIDDLE_TIP` | `OpenXRInterface.HAND_JOINT_RING_METACARPAL` | `OpenXRInterface.HAND_JOINT_RING_PROXIMAL` | `OpenXRInterface.HAND_JOINT_RING_INTERMEDIATE` | `OpenXRInterface.HAND_JOINT_RING_DISTAL` | `OpenXRInterface.HAND_JOINT_RING_TIP` | `OpenXRInterface.HAND_JOINT_LITTLE_METACARPAL` | `OpenXRInterface.HAND_JOINT_LITTLE_PROXIMAL` | `OpenXRInterface.HAND_JOINT_LITTLE_INTERMEDIATE` | `OpenXRInterface.HAND_JOINT_LITTLE_DISTAL` | `OpenXRInterface.HAND_JOINT_LITTLE_TIP` | `OpenXRInterface.HAND_JOINT_MAX` +OpenXRInterface.HAND_JOINT_PALM = 0 +OpenXRInterface.HAND_JOINT_WRIST = 1 +OpenXRInterface.HAND_JOINT_THUMB_METACARPAL = 2 +OpenXRInterface.HAND_JOINT_THUMB_PROXIMAL = 3 +OpenXRInterface.HAND_JOINT_THUMB_DISTAL = 4 +OpenXRInterface.HAND_JOINT_THUMB_TIP = 5 +OpenXRInterface.HAND_JOINT_INDEX_METACARPAL = 6 +OpenXRInterface.HAND_JOINT_INDEX_PROXIMAL = 7 +OpenXRInterface.HAND_JOINT_INDEX_INTERMEDIATE = 8 +OpenXRInterface.HAND_JOINT_INDEX_DISTAL = 9 +OpenXRInterface.HAND_JOINT_INDEX_TIP = 10 +OpenXRInterface.HAND_JOINT_MIDDLE_METACARPAL = 11 +OpenXRInterface.HAND_JOINT_MIDDLE_PROXIMAL = 12 +OpenXRInterface.HAND_JOINT_MIDDLE_INTERMEDIATE = 13 +OpenXRInterface.HAND_JOINT_MIDDLE_DISTAL = 14 +OpenXRInterface.HAND_JOINT_MIDDLE_TIP = 15 +OpenXRInterface.HAND_JOINT_RING_METACARPAL = 16 +OpenXRInterface.HAND_JOINT_RING_PROXIMAL = 17 +OpenXRInterface.HAND_JOINT_RING_INTERMEDIATE = 18 +OpenXRInterface.HAND_JOINT_RING_DISTAL = 19 +OpenXRInterface.HAND_JOINT_RING_TIP = 20 +OpenXRInterface.HAND_JOINT_LITTLE_METACARPAL = 21 +OpenXRInterface.HAND_JOINT_LITTLE_PROXIMAL = 22 +OpenXRInterface.HAND_JOINT_LITTLE_INTERMEDIATE = 23 +OpenXRInterface.HAND_JOINT_LITTLE_DISTAL = 24 +OpenXRInterface.HAND_JOINT_LITTLE_TIP = 25 +OpenXRInterface.HAND_JOINT_MAX = 26 + +--- @alias OpenXRInterface.PerfSettingsLevel `OpenXRInterface.PERF_SETTINGS_LEVEL_POWER_SAVINGS` | `OpenXRInterface.PERF_SETTINGS_LEVEL_SUSTAINED_LOW` | `OpenXRInterface.PERF_SETTINGS_LEVEL_SUSTAINED_HIGH` | `OpenXRInterface.PERF_SETTINGS_LEVEL_BOOST` +OpenXRInterface.PERF_SETTINGS_LEVEL_POWER_SAVINGS = 0 +OpenXRInterface.PERF_SETTINGS_LEVEL_SUSTAINED_LOW = 1 +OpenXRInterface.PERF_SETTINGS_LEVEL_SUSTAINED_HIGH = 2 +OpenXRInterface.PERF_SETTINGS_LEVEL_BOOST = 3 + +--- @alias OpenXRInterface.PerfSettingsSubDomain `OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_COMPOSITING` | `OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_RENDERING` | `OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_THERMAL` +OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_COMPOSITING = 0 +OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_RENDERING = 1 +OpenXRInterface.PERF_SETTINGS_SUB_DOMAIN_THERMAL = 2 + +--- @alias OpenXRInterface.PerfSettingsNotificationLevel `OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_NORMAL` | `OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_WARNING` | `OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED` +OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_NORMAL = 0 +OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_WARNING = 1 +OpenXRInterface.PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED = 2 + +--- @alias OpenXRInterface.HandJointFlags `OpenXRInterface.HAND_JOINT_NONE` | `OpenXRInterface.HAND_JOINT_ORIENTATION_VALID` | `OpenXRInterface.HAND_JOINT_ORIENTATION_TRACKED` | `OpenXRInterface.HAND_JOINT_POSITION_VALID` | `OpenXRInterface.HAND_JOINT_POSITION_TRACKED` | `OpenXRInterface.HAND_JOINT_LINEAR_VELOCITY_VALID` | `OpenXRInterface.HAND_JOINT_ANGULAR_VELOCITY_VALID` +OpenXRInterface.HAND_JOINT_NONE = 0 +OpenXRInterface.HAND_JOINT_ORIENTATION_VALID = 1 +OpenXRInterface.HAND_JOINT_ORIENTATION_TRACKED = 2 +OpenXRInterface.HAND_JOINT_POSITION_VALID = 4 +OpenXRInterface.HAND_JOINT_POSITION_TRACKED = 8 +OpenXRInterface.HAND_JOINT_LINEAR_VELOCITY_VALID = 16 +OpenXRInterface.HAND_JOINT_ANGULAR_VELOCITY_VALID = 32 + +OpenXRInterface.session_begun = Signal() +OpenXRInterface.session_stopping = Signal() +OpenXRInterface.session_synchronized = Signal() +OpenXRInterface.session_focussed = Signal() +OpenXRInterface.session_visible = Signal() +OpenXRInterface.session_loss_pending = Signal() +OpenXRInterface.instance_exiting = Signal() +OpenXRInterface.pose_recentered = Signal() +OpenXRInterface.refresh_rate_changed = Signal() +OpenXRInterface.cpu_level_changed = Signal() +OpenXRInterface.gpu_level_changed = Signal() + +--- @return OpenXRInterface.SessionState +function OpenXRInterface:get_session_state() end + +--- @return float +function OpenXRInterface:get_display_refresh_rate() end + +--- @param refresh_rate float +function OpenXRInterface:set_display_refresh_rate(refresh_rate) end + +--- @return float +function OpenXRInterface:get_render_target_size_multiplier() end + +--- @param multiplier float +function OpenXRInterface:set_render_target_size_multiplier(multiplier) end + +--- @return bool +function OpenXRInterface:is_foveation_supported() end + +--- @return int +function OpenXRInterface:get_foveation_level() end + +--- @param foveation_level int +function OpenXRInterface:set_foveation_level(foveation_level) end + +--- @return bool +function OpenXRInterface:get_foveation_dynamic() end + +--- @param foveation_dynamic bool +function OpenXRInterface:set_foveation_dynamic(foveation_dynamic) end + +--- @param name String +--- @return bool +function OpenXRInterface:is_action_set_active(name) end + +--- @param name String +--- @param active bool +function OpenXRInterface:set_action_set_active(name, active) end + +--- @return Array +function OpenXRInterface:get_action_sets() end + +--- @return Array +function OpenXRInterface:get_available_display_refresh_rates() end + +--- @param hand OpenXRInterface.Hand +--- @param motion_range OpenXRInterface.HandMotionRange +function OpenXRInterface:set_motion_range(hand, motion_range) end + +--- @param hand OpenXRInterface.Hand +--- @return OpenXRInterface.HandMotionRange +function OpenXRInterface:get_motion_range(hand) end + +--- @param hand OpenXRInterface.Hand +--- @return OpenXRInterface.HandTrackedSource +function OpenXRInterface:get_hand_tracking_source(hand) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return OpenXRInterface.HandJointFlags +function OpenXRInterface:get_hand_joint_flags(hand, joint) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return Quaternion +function OpenXRInterface:get_hand_joint_rotation(hand, joint) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return Vector3 +function OpenXRInterface:get_hand_joint_position(hand, joint) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return float +function OpenXRInterface:get_hand_joint_radius(hand, joint) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return Vector3 +function OpenXRInterface:get_hand_joint_linear_velocity(hand, joint) end + +--- @param hand OpenXRInterface.Hand +--- @param joint OpenXRInterface.HandJoints +--- @return Vector3 +function OpenXRInterface:get_hand_joint_angular_velocity(hand, joint) end + +--- @return bool +function OpenXRInterface:is_hand_tracking_supported() end + +--- @return bool +function OpenXRInterface:is_hand_interaction_supported() end + +--- @return bool +function OpenXRInterface:is_eye_gaze_interaction_supported() end + +--- @return float +function OpenXRInterface:get_vrs_min_radius() end + +--- @param radius float +function OpenXRInterface:set_vrs_min_radius(radius) end + +--- @return float +function OpenXRInterface:get_vrs_strength() end + +--- @param strength float +function OpenXRInterface:set_vrs_strength(strength) end + +--- @param level OpenXRInterface.PerfSettingsLevel +function OpenXRInterface:set_cpu_level(level) end + +--- @param level OpenXRInterface.PerfSettingsLevel +function OpenXRInterface:set_gpu_level(level) end + + +----------------------------------------------------------- +-- OpenXRRenderModel +----------------------------------------------------------- + +--- @class OpenXRRenderModel: Node3D, { [string]: any } +--- @field render_model RID +OpenXRRenderModel = {} + +--- @return OpenXRRenderModel +function OpenXRRenderModel:new() end + +OpenXRRenderModel.render_model_top_level_path_changed = Signal() + +--- @return String +function OpenXRRenderModel:get_top_level_path() end + +--- @return RID +function OpenXRRenderModel:get_render_model() end + +--- @param render_model RID +function OpenXRRenderModel:set_render_model(render_model) end + + +----------------------------------------------------------- +-- OpenXRRenderModelExtension +----------------------------------------------------------- + +--- @class OpenXRRenderModelExtension: OpenXRExtensionWrapper, { [string]: any } +OpenXRRenderModelExtension = {} + +--- @return OpenXRRenderModelExtension +function OpenXRRenderModelExtension:new() end + +OpenXRRenderModelExtension.render_model_added = Signal() +OpenXRRenderModelExtension.render_model_removed = Signal() +OpenXRRenderModelExtension.render_model_top_level_path_changed = Signal() + +--- @return bool +function OpenXRRenderModelExtension:is_active() end + +--- @param render_model_id int +--- @return RID +function OpenXRRenderModelExtension:render_model_create(render_model_id) end + +--- @param render_model RID +function OpenXRRenderModelExtension:render_model_destroy(render_model) end + +--- @return Array[RID] +function OpenXRRenderModelExtension:render_model_get_all() end + +--- @param render_model RID +--- @return Node3D +function OpenXRRenderModelExtension:render_model_new_scene_instance(render_model) end + +--- @param render_model RID +--- @return PackedStringArray +function OpenXRRenderModelExtension:render_model_get_subaction_paths(render_model) end + +--- @param render_model RID +--- @return String +function OpenXRRenderModelExtension:render_model_get_top_level_path(render_model) end + +--- @param render_model RID +--- @return XRPose.TrackingConfidence +function OpenXRRenderModelExtension:render_model_get_confidence(render_model) end + +--- @param render_model RID +--- @return Transform3D +function OpenXRRenderModelExtension:render_model_get_root_transform(render_model) end + +--- @param render_model RID +--- @return int +function OpenXRRenderModelExtension:render_model_get_animatable_node_count(render_model) end + +--- @param render_model RID +--- @param index int +--- @return String +function OpenXRRenderModelExtension:render_model_get_animatable_node_name(render_model, index) end + +--- @param render_model RID +--- @param index int +--- @return bool +function OpenXRRenderModelExtension:render_model_is_animatable_node_visible(render_model, index) end + +--- @param render_model RID +--- @param index int +--- @return Transform3D +function OpenXRRenderModelExtension:render_model_get_animatable_node_transform(render_model, index) end + + +----------------------------------------------------------- +-- OpenXRRenderModelManager +----------------------------------------------------------- + +--- @class OpenXRRenderModelManager: Node3D, { [string]: any } +--- @field tracker int +--- @field make_local_to_pose String +OpenXRRenderModelManager = {} + +--- @return OpenXRRenderModelManager +function OpenXRRenderModelManager:new() end + +--- @alias OpenXRRenderModelManager.RenderModelTracker `OpenXRRenderModelManager.RENDER_MODEL_TRACKER_ANY` | `OpenXRRenderModelManager.RENDER_MODEL_TRACKER_NONE_SET` | `OpenXRRenderModelManager.RENDER_MODEL_TRACKER_LEFT_HAND` | `OpenXRRenderModelManager.RENDER_MODEL_TRACKER_RIGHT_HAND` +OpenXRRenderModelManager.RENDER_MODEL_TRACKER_ANY = 0 +OpenXRRenderModelManager.RENDER_MODEL_TRACKER_NONE_SET = 1 +OpenXRRenderModelManager.RENDER_MODEL_TRACKER_LEFT_HAND = 2 +OpenXRRenderModelManager.RENDER_MODEL_TRACKER_RIGHT_HAND = 3 + +OpenXRRenderModelManager.render_model_added = Signal() +OpenXRRenderModelManager.render_model_removed = Signal() + +--- @return OpenXRRenderModelManager.RenderModelTracker +function OpenXRRenderModelManager:get_tracker() end + +--- @param tracker OpenXRRenderModelManager.RenderModelTracker +function OpenXRRenderModelManager:set_tracker(tracker) end + +--- @return String +function OpenXRRenderModelManager:get_make_local_to_pose() end + +--- @param make_local_to_pose String +function OpenXRRenderModelManager:set_make_local_to_pose(make_local_to_pose) end + + +----------------------------------------------------------- +-- OpenXRVisibilityMask +----------------------------------------------------------- + +--- @class OpenXRVisibilityMask: VisualInstance3D, { [string]: any } +OpenXRVisibilityMask = {} + +--- @return OpenXRVisibilityMask +function OpenXRVisibilityMask:new() end + + +----------------------------------------------------------- +-- OptimizedTranslation +----------------------------------------------------------- + +--- @class OptimizedTranslation: Translation, { [string]: any } +OptimizedTranslation = {} + +--- @return OptimizedTranslation +function OptimizedTranslation:new() end + +--- @param from Translation +function OptimizedTranslation:generate(from) end + + +----------------------------------------------------------- +-- OptionButton +----------------------------------------------------------- + +--- @class OptionButton: Button, { [string]: any } +--- @field selected int +--- @field fit_to_longest_item bool +--- @field allow_reselect bool +--- @field item_count int +OptionButton = {} + +--- @return OptionButton +function OptionButton:new() end + +OptionButton.item_selected = Signal() +OptionButton.item_focused = Signal() + +--- @param label String +--- @param id int? Default: -1 +function OptionButton:add_item(label, id) end + +--- @param texture Texture2D +--- @param label String +--- @param id int? Default: -1 +function OptionButton:add_icon_item(texture, label, id) end + +--- @param idx int +--- @param text String +function OptionButton:set_item_text(idx, text) end + +--- @param idx int +--- @param texture Texture2D +function OptionButton:set_item_icon(idx, texture) end + +--- @param idx int +--- @param disabled bool +function OptionButton:set_item_disabled(idx, disabled) end + +--- @param idx int +--- @param id int +function OptionButton:set_item_id(idx, id) end + +--- @param idx int +--- @param metadata any +function OptionButton:set_item_metadata(idx, metadata) end + +--- @param idx int +--- @param tooltip String +function OptionButton:set_item_tooltip(idx, tooltip) end + +--- @param idx int +--- @param mode Node.AutoTranslateMode +function OptionButton:set_item_auto_translate_mode(idx, mode) end + +--- @param idx int +--- @return String +function OptionButton:get_item_text(idx) end + +--- @param idx int +--- @return Texture2D +function OptionButton:get_item_icon(idx) end + +--- @param idx int +--- @return int +function OptionButton:get_item_id(idx) end + +--- @param id int +--- @return int +function OptionButton:get_item_index(id) end + +--- @param idx int +--- @return any +function OptionButton:get_item_metadata(idx) end + +--- @param idx int +--- @return String +function OptionButton:get_item_tooltip(idx) end + +--- @param idx int +--- @return Node.AutoTranslateMode +function OptionButton:get_item_auto_translate_mode(idx) end + +--- @param idx int +--- @return bool +function OptionButton:is_item_disabled(idx) end + +--- @param idx int +--- @return bool +function OptionButton:is_item_separator(idx) end + +--- @param text String? Default: "" +function OptionButton:add_separator(text) end + +function OptionButton:clear() end + +--- @param idx int +function OptionButton:select(idx) end + +--- @return int +function OptionButton:get_selected() end + +--- @return int +function OptionButton:get_selected_id() end + +--- @return any +function OptionButton:get_selected_metadata() end + +--- @param idx int +function OptionButton:remove_item(idx) end + +--- @return PopupMenu +function OptionButton:get_popup() end + +function OptionButton:show_popup() end + +--- @param count int +function OptionButton:set_item_count(count) end + +--- @return int +function OptionButton:get_item_count() end + +--- @return bool +function OptionButton:has_selectable_items() end + +--- @param from_last bool? Default: false +--- @return int +function OptionButton:get_selectable_item(from_last) end + +--- @param fit bool +function OptionButton:set_fit_to_longest_item(fit) end + +--- @return bool +function OptionButton:is_fit_to_longest_item() end + +--- @param allow bool +function OptionButton:set_allow_reselect(allow) end + +--- @return bool +function OptionButton:get_allow_reselect() end + +--- @param disabled bool +function OptionButton:set_disable_shortcuts(disabled) end + + +----------------------------------------------------------- +-- PCKPacker +----------------------------------------------------------- + +--- @class PCKPacker: RefCounted, { [string]: any } +PCKPacker = {} + +--- @return PCKPacker +function PCKPacker:new() end + +--- @param pck_path String +--- @param alignment int? Default: 32 +--- @param key String? Default: "0000000000000000000000000000000000000000000000000000000000000000" +--- @param encrypt_directory bool? Default: false +--- @return Error +function PCKPacker:pck_start(pck_path, alignment, key, encrypt_directory) end + +--- @param target_path String +--- @param source_path String +--- @param encrypt bool? Default: false +--- @return Error +function PCKPacker:add_file(target_path, source_path, encrypt) end + +--- @param target_path String +--- @return Error +function PCKPacker:add_file_removal(target_path) end + +--- @param verbose bool? Default: false +--- @return Error +function PCKPacker:flush(verbose) end + + +----------------------------------------------------------- +-- PackedDataContainer +----------------------------------------------------------- + +--- @class PackedDataContainer: Resource, { [string]: any } +PackedDataContainer = {} + +--- @return PackedDataContainer +function PackedDataContainer:new() end + +--- @param value any +--- @return Error +function PackedDataContainer:pack(value) end + +--- @return int +function PackedDataContainer:size() end + + +----------------------------------------------------------- +-- PackedDataContainerRef +----------------------------------------------------------- + +--- @class PackedDataContainerRef: RefCounted, { [string]: any } +PackedDataContainerRef = {} + +--- @return int +function PackedDataContainerRef:size() end + + +----------------------------------------------------------- +-- PackedScene +----------------------------------------------------------- + +--- @class PackedScene: Resource, { [string]: any } +PackedScene = {} + +--- @return PackedScene +function PackedScene:new() end + +--- @alias PackedScene.GenEditState `PackedScene.GEN_EDIT_STATE_DISABLED` | `PackedScene.GEN_EDIT_STATE_INSTANCE` | `PackedScene.GEN_EDIT_STATE_MAIN` | `PackedScene.GEN_EDIT_STATE_MAIN_INHERITED` +PackedScene.GEN_EDIT_STATE_DISABLED = 0 +PackedScene.GEN_EDIT_STATE_INSTANCE = 1 +PackedScene.GEN_EDIT_STATE_MAIN = 2 +PackedScene.GEN_EDIT_STATE_MAIN_INHERITED = 3 + +--- @param path Node +--- @return Error +function PackedScene:pack(path) end + +--- @param edit_state PackedScene.GenEditState? Default: 0 +--- @return Node +function PackedScene:instantiate(edit_state) end + +--- @return bool +function PackedScene:can_instantiate() end + +--- @return SceneState +function PackedScene:get_state() end + + +----------------------------------------------------------- +-- PacketPeer +----------------------------------------------------------- + +--- @class PacketPeer: RefCounted, { [string]: any } +--- @field encode_buffer_max_size int +PacketPeer = {} + +--- @param allow_objects bool? Default: false +--- @return any +function PacketPeer:get_var(allow_objects) end + +--- @param var any +--- @param full_objects bool? Default: false +--- @return Error +function PacketPeer:put_var(var, full_objects) end + +--- @return PackedByteArray +function PacketPeer:get_packet() end + +--- @param buffer PackedByteArray +--- @return Error +function PacketPeer:put_packet(buffer) end + +--- @return Error +function PacketPeer:get_packet_error() end + +--- @return int +function PacketPeer:get_available_packet_count() end + +--- @return int +function PacketPeer:get_encode_buffer_max_size() end + +--- @param max_size int +function PacketPeer:set_encode_buffer_max_size(max_size) end + + +----------------------------------------------------------- +-- PacketPeerDTLS +----------------------------------------------------------- + +--- @class PacketPeerDTLS: PacketPeer, { [string]: any } +PacketPeerDTLS = {} + +--- @return PacketPeerDTLS +function PacketPeerDTLS:new() end + +--- @alias PacketPeerDTLS.Status `PacketPeerDTLS.STATUS_DISCONNECTED` | `PacketPeerDTLS.STATUS_HANDSHAKING` | `PacketPeerDTLS.STATUS_CONNECTED` | `PacketPeerDTLS.STATUS_ERROR` | `PacketPeerDTLS.STATUS_ERROR_HOSTNAME_MISMATCH` +PacketPeerDTLS.STATUS_DISCONNECTED = 0 +PacketPeerDTLS.STATUS_HANDSHAKING = 1 +PacketPeerDTLS.STATUS_CONNECTED = 2 +PacketPeerDTLS.STATUS_ERROR = 3 +PacketPeerDTLS.STATUS_ERROR_HOSTNAME_MISMATCH = 4 + +function PacketPeerDTLS:poll() end + +--- @param packet_peer PacketPeerUDP +--- @param hostname String +--- @param client_options TLSOptions? Default: null +--- @return Error +function PacketPeerDTLS:connect_to_peer(packet_peer, hostname, client_options) end + +--- @return PacketPeerDTLS.Status +function PacketPeerDTLS:get_status() end + +function PacketPeerDTLS:disconnect_from_peer() end + + +----------------------------------------------------------- +-- PacketPeerExtension +----------------------------------------------------------- + +--- @class PacketPeerExtension: PacketPeer, { [string]: any } +PacketPeerExtension = {} + +--- @return PacketPeerExtension +function PacketPeerExtension:new() end + +--- @param r_buffer const uint8_t ** +--- @param r_buffer_size int32_t* +--- @return Error +function PacketPeerExtension:_get_packet(r_buffer, r_buffer_size) end + +--- @param p_buffer const uint8_t* +--- @param p_buffer_size int +--- @return Error +function PacketPeerExtension:_put_packet(p_buffer, p_buffer_size) end + +--- @return int +function PacketPeerExtension:_get_available_packet_count() end + +--- @return int +function PacketPeerExtension:_get_max_packet_size() end + + +----------------------------------------------------------- +-- PacketPeerStream +----------------------------------------------------------- + +--- @class PacketPeerStream: PacketPeer, { [string]: any } +--- @field input_buffer_max_size int +--- @field output_buffer_max_size int +--- @field stream_peer StreamPeer +PacketPeerStream = {} + +--- @return PacketPeerStream +function PacketPeerStream:new() end + +--- @param peer StreamPeer +function PacketPeerStream:set_stream_peer(peer) end + +--- @return StreamPeer +function PacketPeerStream:get_stream_peer() end + +--- @param max_size_bytes int +function PacketPeerStream:set_input_buffer_max_size(max_size_bytes) end + +--- @param max_size_bytes int +function PacketPeerStream:set_output_buffer_max_size(max_size_bytes) end + +--- @return int +function PacketPeerStream:get_input_buffer_max_size() end + +--- @return int +function PacketPeerStream:get_output_buffer_max_size() end + + +----------------------------------------------------------- +-- PacketPeerUDP +----------------------------------------------------------- + +--- @class PacketPeerUDP: PacketPeer, { [string]: any } +PacketPeerUDP = {} + +--- @return PacketPeerUDP +function PacketPeerUDP:new() end + +--- @param port int +--- @param bind_address String? Default: "*" +--- @param recv_buf_size int? Default: 65536 +--- @return Error +function PacketPeerUDP:bind(port, bind_address, recv_buf_size) end + +function PacketPeerUDP:close() end + +--- @return Error +function PacketPeerUDP:wait() end + +--- @return bool +function PacketPeerUDP:is_bound() end + +--- @param host String +--- @param port int +--- @return Error +function PacketPeerUDP:connect_to_host(host, port) end + +--- @return bool +function PacketPeerUDP:is_socket_connected() end + +--- @return String +function PacketPeerUDP:get_packet_ip() end + +--- @return int +function PacketPeerUDP:get_packet_port() end + +--- @return int +function PacketPeerUDP:get_local_port() end + +--- @param host String +--- @param port int +--- @return Error +function PacketPeerUDP:set_dest_address(host, port) end + +--- @param enabled bool +function PacketPeerUDP:set_broadcast_enabled(enabled) end + +--- @param multicast_address String +--- @param interface_name String +--- @return Error +function PacketPeerUDP:join_multicast_group(multicast_address, interface_name) end + +--- @param multicast_address String +--- @param interface_name String +--- @return Error +function PacketPeerUDP:leave_multicast_group(multicast_address, interface_name) end + + +----------------------------------------------------------- +-- Panel +----------------------------------------------------------- + +--- @class Panel: Control, { [string]: any } +Panel = {} + +--- @return Panel +function Panel:new() end + + +----------------------------------------------------------- +-- PanelContainer +----------------------------------------------------------- + +--- @class PanelContainer: Container, { [string]: any } +PanelContainer = {} + +--- @return PanelContainer +function PanelContainer:new() end + + +----------------------------------------------------------- +-- PanoramaSkyMaterial +----------------------------------------------------------- + +--- @class PanoramaSkyMaterial: Material, { [string]: any } +--- @field panorama Texture2D +--- @field filter bool +--- @field energy_multiplier float +PanoramaSkyMaterial = {} + +--- @return PanoramaSkyMaterial +function PanoramaSkyMaterial:new() end + +--- @param texture Texture2D +function PanoramaSkyMaterial:set_panorama(texture) end + +--- @return Texture2D +function PanoramaSkyMaterial:get_panorama() end + +--- @param enabled bool +function PanoramaSkyMaterial:set_filtering_enabled(enabled) end + +--- @return bool +function PanoramaSkyMaterial:is_filtering_enabled() end + +--- @param multiplier float +function PanoramaSkyMaterial:set_energy_multiplier(multiplier) end + +--- @return float +function PanoramaSkyMaterial:get_energy_multiplier() end + + +----------------------------------------------------------- +-- Parallax2D +----------------------------------------------------------- + +--- @class Parallax2D: Node2D, { [string]: any } +--- @field scroll_scale Vector2 +--- @field scroll_offset Vector2 +--- @field repeat_size Vector2 +--- @field autoscroll Vector2 +--- @field repeat_times int +--- @field limit_begin Vector2 +--- @field limit_end Vector2 +--- @field follow_viewport bool +--- @field ignore_camera_scroll bool +--- @field screen_offset Vector2 +Parallax2D = {} + +--- @return Parallax2D +function Parallax2D:new() end + +--- @param scale Vector2 +function Parallax2D:set_scroll_scale(scale) end + +--- @return Vector2 +function Parallax2D:get_scroll_scale() end + +--- @param repeat_size Vector2 +function Parallax2D:set_repeat_size(repeat_size) end + +--- @return Vector2 +function Parallax2D:get_repeat_size() end + +--- @param repeat_times int +function Parallax2D:set_repeat_times(repeat_times) end + +--- @return int +function Parallax2D:get_repeat_times() end + +--- @param autoscroll Vector2 +function Parallax2D:set_autoscroll(autoscroll) end + +--- @return Vector2 +function Parallax2D:get_autoscroll() end + +--- @param offset Vector2 +function Parallax2D:set_scroll_offset(offset) end + +--- @return Vector2 +function Parallax2D:get_scroll_offset() end + +--- @param offset Vector2 +function Parallax2D:set_screen_offset(offset) end + +--- @return Vector2 +function Parallax2D:get_screen_offset() end + +--- @param offset Vector2 +function Parallax2D:set_limit_begin(offset) end + +--- @return Vector2 +function Parallax2D:get_limit_begin() end + +--- @param offset Vector2 +function Parallax2D:set_limit_end(offset) end + +--- @return Vector2 +function Parallax2D:get_limit_end() end + +--- @param follow bool +function Parallax2D:set_follow_viewport(follow) end + +--- @return bool +function Parallax2D:get_follow_viewport() end + +--- @param ignore bool +function Parallax2D:set_ignore_camera_scroll(ignore) end + +--- @return bool +function Parallax2D:is_ignore_camera_scroll() end + + +----------------------------------------------------------- +-- ParallaxBackground +----------------------------------------------------------- + +--- @class ParallaxBackground: CanvasLayer, { [string]: any } +--- @field scroll_offset Vector2 +--- @field scroll_base_offset Vector2 +--- @field scroll_base_scale Vector2 +--- @field scroll_limit_begin Vector2 +--- @field scroll_limit_end Vector2 +--- @field scroll_ignore_camera_zoom bool +ParallaxBackground = {} + +--- @return ParallaxBackground +function ParallaxBackground:new() end + +--- @param offset Vector2 +function ParallaxBackground:set_scroll_offset(offset) end + +--- @return Vector2 +function ParallaxBackground:get_scroll_offset() end + +--- @param offset Vector2 +function ParallaxBackground:set_scroll_base_offset(offset) end + +--- @return Vector2 +function ParallaxBackground:get_scroll_base_offset() end + +--- @param scale Vector2 +function ParallaxBackground:set_scroll_base_scale(scale) end + +--- @return Vector2 +function ParallaxBackground:get_scroll_base_scale() end + +--- @param offset Vector2 +function ParallaxBackground:set_limit_begin(offset) end + +--- @return Vector2 +function ParallaxBackground:get_limit_begin() end + +--- @param offset Vector2 +function ParallaxBackground:set_limit_end(offset) end + +--- @return Vector2 +function ParallaxBackground:get_limit_end() end + +--- @param ignore bool +function ParallaxBackground:set_ignore_camera_zoom(ignore) end + +--- @return bool +function ParallaxBackground:is_ignore_camera_zoom() end + + +----------------------------------------------------------- +-- ParallaxLayer +----------------------------------------------------------- + +--- @class ParallaxLayer: Node2D, { [string]: any } +--- @field motion_scale Vector2 +--- @field motion_offset Vector2 +--- @field motion_mirroring Vector2 +ParallaxLayer = {} + +--- @return ParallaxLayer +function ParallaxLayer:new() end + +--- @param scale Vector2 +function ParallaxLayer:set_motion_scale(scale) end + +--- @return Vector2 +function ParallaxLayer:get_motion_scale() end + +--- @param offset Vector2 +function ParallaxLayer:set_motion_offset(offset) end + +--- @return Vector2 +function ParallaxLayer:get_motion_offset() end + +--- @param mirror Vector2 +function ParallaxLayer:set_mirroring(mirror) end + +--- @return Vector2 +function ParallaxLayer:get_mirroring() end + + +----------------------------------------------------------- +-- ParticleProcessMaterial +----------------------------------------------------------- + +--- @class ParticleProcessMaterial: Material, { [string]: any } +--- @field lifetime_randomness float +--- @field particle_flag_align_y bool +--- @field particle_flag_rotate_y bool +--- @field particle_flag_disable_z bool +--- @field particle_flag_damping_as_friction bool +--- @field emission_shape_offset Vector3 +--- @field emission_shape_scale Vector3 +--- @field emission_shape int +--- @field emission_sphere_radius float +--- @field emission_box_extents Vector3 +--- @field emission_point_texture Texture2D +--- @field emission_normal_texture Texture2D +--- @field emission_color_texture Texture2D +--- @field emission_point_count int +--- @field emission_ring_axis Vector3 +--- @field emission_ring_height float +--- @field emission_ring_radius float +--- @field emission_ring_inner_radius float +--- @field emission_ring_cone_angle float +--- @field angle Vector2 +--- @field angle_min float +--- @field angle_max float +--- @field angle_curve CurveTexture +--- @field inherit_velocity_ratio float +--- @field velocity_pivot Vector3 +--- @field direction Vector3 +--- @field spread float +--- @field flatness float +--- @field initial_velocity Vector2 +--- @field initial_velocity_min float +--- @field initial_velocity_max float +--- @field angular_velocity Vector2 +--- @field angular_velocity_min float +--- @field angular_velocity_max float +--- @field angular_velocity_curve CurveTexture +--- @field directional_velocity Vector2 +--- @field directional_velocity_min float +--- @field directional_velocity_max float +--- @field directional_velocity_curve CurveXYZTexture +--- @field orbit_velocity Vector2 +--- @field orbit_velocity_min float +--- @field orbit_velocity_max float +--- @field orbit_velocity_curve CurveTexture | CurveXYZTexture +--- @field radial_velocity Vector2 +--- @field radial_velocity_min float +--- @field radial_velocity_max float +--- @field radial_velocity_curve CurveTexture +--- @field velocity_limit_curve CurveTexture +--- @field gravity Vector3 +--- @field linear_accel Vector2 +--- @field linear_accel_min float +--- @field linear_accel_max float +--- @field linear_accel_curve CurveTexture +--- @field radial_accel Vector2 +--- @field radial_accel_min float +--- @field radial_accel_max float +--- @field radial_accel_curve CurveTexture +--- @field tangential_accel Vector2 +--- @field tangential_accel_min float +--- @field tangential_accel_max float +--- @field tangential_accel_curve CurveTexture +--- @field damping Vector2 +--- @field damping_min float +--- @field damping_max float +--- @field damping_curve CurveTexture +--- @field attractor_interaction_enabled bool +--- @field scale Vector2 +--- @field scale_min float +--- @field scale_max float +--- @field scale_curve CurveTexture | CurveXYZTexture +--- @field scale_over_velocity Vector2 +--- @field scale_over_velocity_min float +--- @field scale_over_velocity_max float +--- @field scale_over_velocity_curve CurveTexture | CurveXYZTexture +--- @field color Color +--- @field color_ramp GradientTexture1D +--- @field color_initial_ramp GradientTexture1D +--- @field alpha_curve CurveTexture +--- @field emission_curve CurveTexture +--- @field hue_variation Vector2 +--- @field hue_variation_min float +--- @field hue_variation_max float +--- @field hue_variation_curve CurveTexture +--- @field anim_speed Vector2 +--- @field anim_speed_min float +--- @field anim_speed_max float +--- @field anim_speed_curve CurveTexture +--- @field anim_offset Vector2 +--- @field anim_offset_min float +--- @field anim_offset_max float +--- @field anim_offset_curve CurveTexture +--- @field turbulence_enabled bool +--- @field turbulence_noise_strength float +--- @field turbulence_noise_scale float +--- @field turbulence_noise_speed Vector3 +--- @field turbulence_noise_speed_random float +--- @field turbulence_influence Vector2 +--- @field turbulence_influence_min float +--- @field turbulence_influence_max float +--- @field turbulence_initial_displacement Vector2 +--- @field turbulence_initial_displacement_min float +--- @field turbulence_initial_displacement_max float +--- @field turbulence_influence_over_life CurveTexture +--- @field collision_mode int +--- @field collision_friction float +--- @field collision_bounce float +--- @field collision_use_scale bool +--- @field sub_emitter_mode int +--- @field sub_emitter_frequency float +--- @field sub_emitter_amount_at_end int +--- @field sub_emitter_amount_at_collision int +--- @field sub_emitter_amount_at_start int +--- @field sub_emitter_keep_velocity bool +ParticleProcessMaterial = {} + +--- @return ParticleProcessMaterial +function ParticleProcessMaterial:new() end + +--- @alias ParticleProcessMaterial.Parameter `ParticleProcessMaterial.PARAM_INITIAL_LINEAR_VELOCITY` | `ParticleProcessMaterial.PARAM_ANGULAR_VELOCITY` | `ParticleProcessMaterial.PARAM_ORBIT_VELOCITY` | `ParticleProcessMaterial.PARAM_LINEAR_ACCEL` | `ParticleProcessMaterial.PARAM_RADIAL_ACCEL` | `ParticleProcessMaterial.PARAM_TANGENTIAL_ACCEL` | `ParticleProcessMaterial.PARAM_DAMPING` | `ParticleProcessMaterial.PARAM_ANGLE` | `ParticleProcessMaterial.PARAM_SCALE` | `ParticleProcessMaterial.PARAM_HUE_VARIATION` | `ParticleProcessMaterial.PARAM_ANIM_SPEED` | `ParticleProcessMaterial.PARAM_ANIM_OFFSET` | `ParticleProcessMaterial.PARAM_RADIAL_VELOCITY` | `ParticleProcessMaterial.PARAM_DIRECTIONAL_VELOCITY` | `ParticleProcessMaterial.PARAM_SCALE_OVER_VELOCITY` | `ParticleProcessMaterial.PARAM_MAX` | `ParticleProcessMaterial.PARAM_TURB_VEL_INFLUENCE` | `ParticleProcessMaterial.PARAM_TURB_INIT_DISPLACEMENT` | `ParticleProcessMaterial.PARAM_TURB_INFLUENCE_OVER_LIFE` +ParticleProcessMaterial.PARAM_INITIAL_LINEAR_VELOCITY = 0 +ParticleProcessMaterial.PARAM_ANGULAR_VELOCITY = 1 +ParticleProcessMaterial.PARAM_ORBIT_VELOCITY = 2 +ParticleProcessMaterial.PARAM_LINEAR_ACCEL = 3 +ParticleProcessMaterial.PARAM_RADIAL_ACCEL = 4 +ParticleProcessMaterial.PARAM_TANGENTIAL_ACCEL = 5 +ParticleProcessMaterial.PARAM_DAMPING = 6 +ParticleProcessMaterial.PARAM_ANGLE = 7 +ParticleProcessMaterial.PARAM_SCALE = 8 +ParticleProcessMaterial.PARAM_HUE_VARIATION = 9 +ParticleProcessMaterial.PARAM_ANIM_SPEED = 10 +ParticleProcessMaterial.PARAM_ANIM_OFFSET = 11 +ParticleProcessMaterial.PARAM_RADIAL_VELOCITY = 15 +ParticleProcessMaterial.PARAM_DIRECTIONAL_VELOCITY = 16 +ParticleProcessMaterial.PARAM_SCALE_OVER_VELOCITY = 17 +ParticleProcessMaterial.PARAM_MAX = 18 +ParticleProcessMaterial.PARAM_TURB_VEL_INFLUENCE = 13 +ParticleProcessMaterial.PARAM_TURB_INIT_DISPLACEMENT = 14 +ParticleProcessMaterial.PARAM_TURB_INFLUENCE_OVER_LIFE = 12 + +--- @alias ParticleProcessMaterial.ParticleFlags `ParticleProcessMaterial.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY` | `ParticleProcessMaterial.PARTICLE_FLAG_ROTATE_Y` | `ParticleProcessMaterial.PARTICLE_FLAG_DISABLE_Z` | `ParticleProcessMaterial.PARTICLE_FLAG_DAMPING_AS_FRICTION` | `ParticleProcessMaterial.PARTICLE_FLAG_MAX` +ParticleProcessMaterial.PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0 +ParticleProcessMaterial.PARTICLE_FLAG_ROTATE_Y = 1 +ParticleProcessMaterial.PARTICLE_FLAG_DISABLE_Z = 2 +ParticleProcessMaterial.PARTICLE_FLAG_DAMPING_AS_FRICTION = 3 +ParticleProcessMaterial.PARTICLE_FLAG_MAX = 4 + +--- @alias ParticleProcessMaterial.EmissionShape `ParticleProcessMaterial.EMISSION_SHAPE_POINT` | `ParticleProcessMaterial.EMISSION_SHAPE_SPHERE` | `ParticleProcessMaterial.EMISSION_SHAPE_SPHERE_SURFACE` | `ParticleProcessMaterial.EMISSION_SHAPE_BOX` | `ParticleProcessMaterial.EMISSION_SHAPE_POINTS` | `ParticleProcessMaterial.EMISSION_SHAPE_DIRECTED_POINTS` | `ParticleProcessMaterial.EMISSION_SHAPE_RING` | `ParticleProcessMaterial.EMISSION_SHAPE_MAX` +ParticleProcessMaterial.EMISSION_SHAPE_POINT = 0 +ParticleProcessMaterial.EMISSION_SHAPE_SPHERE = 1 +ParticleProcessMaterial.EMISSION_SHAPE_SPHERE_SURFACE = 2 +ParticleProcessMaterial.EMISSION_SHAPE_BOX = 3 +ParticleProcessMaterial.EMISSION_SHAPE_POINTS = 4 +ParticleProcessMaterial.EMISSION_SHAPE_DIRECTED_POINTS = 5 +ParticleProcessMaterial.EMISSION_SHAPE_RING = 6 +ParticleProcessMaterial.EMISSION_SHAPE_MAX = 7 + +--- @alias ParticleProcessMaterial.SubEmitterMode `ParticleProcessMaterial.SUB_EMITTER_DISABLED` | `ParticleProcessMaterial.SUB_EMITTER_CONSTANT` | `ParticleProcessMaterial.SUB_EMITTER_AT_END` | `ParticleProcessMaterial.SUB_EMITTER_AT_COLLISION` | `ParticleProcessMaterial.SUB_EMITTER_AT_START` | `ParticleProcessMaterial.SUB_EMITTER_MAX` +ParticleProcessMaterial.SUB_EMITTER_DISABLED = 0 +ParticleProcessMaterial.SUB_EMITTER_CONSTANT = 1 +ParticleProcessMaterial.SUB_EMITTER_AT_END = 2 +ParticleProcessMaterial.SUB_EMITTER_AT_COLLISION = 3 +ParticleProcessMaterial.SUB_EMITTER_AT_START = 4 +ParticleProcessMaterial.SUB_EMITTER_MAX = 5 + +--- @alias ParticleProcessMaterial.CollisionMode `ParticleProcessMaterial.COLLISION_DISABLED` | `ParticleProcessMaterial.COLLISION_RIGID` | `ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT` | `ParticleProcessMaterial.COLLISION_MAX` +ParticleProcessMaterial.COLLISION_DISABLED = 0 +ParticleProcessMaterial.COLLISION_RIGID = 1 +ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT = 2 +ParticleProcessMaterial.COLLISION_MAX = 3 + +ParticleProcessMaterial.emission_shape_changed = Signal() + +--- @param degrees Vector3 +function ParticleProcessMaterial:set_direction(degrees) end + +--- @return Vector3 +function ParticleProcessMaterial:get_direction() end + +--- @param ratio float +function ParticleProcessMaterial:set_inherit_velocity_ratio(ratio) end + +--- @return float +function ParticleProcessMaterial:get_inherit_velocity_ratio() end + +--- @param degrees float +function ParticleProcessMaterial:set_spread(degrees) end + +--- @return float +function ParticleProcessMaterial:get_spread() end + +--- @param amount float +function ParticleProcessMaterial:set_flatness(amount) end + +--- @return float +function ParticleProcessMaterial:get_flatness() end + +--- @param param ParticleProcessMaterial.Parameter +--- @param value Vector2 +function ParticleProcessMaterial:set_param(param, value) end + +--- @param param ParticleProcessMaterial.Parameter +--- @return Vector2 +function ParticleProcessMaterial:get_param(param) end + +--- @param param ParticleProcessMaterial.Parameter +--- @param value float +function ParticleProcessMaterial:set_param_min(param, value) end + +--- @param param ParticleProcessMaterial.Parameter +--- @return float +function ParticleProcessMaterial:get_param_min(param) end + +--- @param param ParticleProcessMaterial.Parameter +--- @param value float +function ParticleProcessMaterial:set_param_max(param, value) end + +--- @param param ParticleProcessMaterial.Parameter +--- @return float +function ParticleProcessMaterial:get_param_max(param) end + +--- @param param ParticleProcessMaterial.Parameter +--- @param texture Texture2D +function ParticleProcessMaterial:set_param_texture(param, texture) end + +--- @param param ParticleProcessMaterial.Parameter +--- @return Texture2D +function ParticleProcessMaterial:get_param_texture(param) end + +--- @param color Color +function ParticleProcessMaterial:set_color(color) end + +--- @return Color +function ParticleProcessMaterial:get_color() end + +--- @param ramp Texture2D +function ParticleProcessMaterial:set_color_ramp(ramp) end + +--- @return Texture2D +function ParticleProcessMaterial:get_color_ramp() end + +--- @param curve Texture2D +function ParticleProcessMaterial:set_alpha_curve(curve) end + +--- @return Texture2D +function ParticleProcessMaterial:get_alpha_curve() end + +--- @param curve Texture2D +function ParticleProcessMaterial:set_emission_curve(curve) end + +--- @return Texture2D +function ParticleProcessMaterial:get_emission_curve() end + +--- @param ramp Texture2D +function ParticleProcessMaterial:set_color_initial_ramp(ramp) end + +--- @return Texture2D +function ParticleProcessMaterial:get_color_initial_ramp() end + +--- @param curve Texture2D +function ParticleProcessMaterial:set_velocity_limit_curve(curve) end + +--- @return Texture2D +function ParticleProcessMaterial:get_velocity_limit_curve() end + +--- @param particle_flag ParticleProcessMaterial.ParticleFlags +--- @param enable bool +function ParticleProcessMaterial:set_particle_flag(particle_flag, enable) end + +--- @param particle_flag ParticleProcessMaterial.ParticleFlags +--- @return bool +function ParticleProcessMaterial:get_particle_flag(particle_flag) end + +--- @param pivot Vector3 +function ParticleProcessMaterial:set_velocity_pivot(pivot) end + +--- @return Vector3 +function ParticleProcessMaterial:get_velocity_pivot() end + +--- @param shape ParticleProcessMaterial.EmissionShape +function ParticleProcessMaterial:set_emission_shape(shape) end + +--- @return ParticleProcessMaterial.EmissionShape +function ParticleProcessMaterial:get_emission_shape() end + +--- @param radius float +function ParticleProcessMaterial:set_emission_sphere_radius(radius) end + +--- @return float +function ParticleProcessMaterial:get_emission_sphere_radius() end + +--- @param extents Vector3 +function ParticleProcessMaterial:set_emission_box_extents(extents) end + +--- @return Vector3 +function ParticleProcessMaterial:get_emission_box_extents() end + +--- @param texture Texture2D +function ParticleProcessMaterial:set_emission_point_texture(texture) end + +--- @return Texture2D +function ParticleProcessMaterial:get_emission_point_texture() end + +--- @param texture Texture2D +function ParticleProcessMaterial:set_emission_normal_texture(texture) end + +--- @return Texture2D +function ParticleProcessMaterial:get_emission_normal_texture() end + +--- @param texture Texture2D +function ParticleProcessMaterial:set_emission_color_texture(texture) end + +--- @return Texture2D +function ParticleProcessMaterial:get_emission_color_texture() end + +--- @param point_count int +function ParticleProcessMaterial:set_emission_point_count(point_count) end + +--- @return int +function ParticleProcessMaterial:get_emission_point_count() end + +--- @param axis Vector3 +function ParticleProcessMaterial:set_emission_ring_axis(axis) end + +--- @return Vector3 +function ParticleProcessMaterial:get_emission_ring_axis() end + +--- @param height float +function ParticleProcessMaterial:set_emission_ring_height(height) end + +--- @return float +function ParticleProcessMaterial:get_emission_ring_height() end + +--- @param radius float +function ParticleProcessMaterial:set_emission_ring_radius(radius) end + +--- @return float +function ParticleProcessMaterial:get_emission_ring_radius() end + +--- @param inner_radius float +function ParticleProcessMaterial:set_emission_ring_inner_radius(inner_radius) end + +--- @return float +function ParticleProcessMaterial:get_emission_ring_inner_radius() end + +--- @param cone_angle float +function ParticleProcessMaterial:set_emission_ring_cone_angle(cone_angle) end + +--- @return float +function ParticleProcessMaterial:get_emission_ring_cone_angle() end + +--- @param emission_shape_offset Vector3 +function ParticleProcessMaterial:set_emission_shape_offset(emission_shape_offset) end + +--- @return Vector3 +function ParticleProcessMaterial:get_emission_shape_offset() end + +--- @param emission_shape_scale Vector3 +function ParticleProcessMaterial:set_emission_shape_scale(emission_shape_scale) end + +--- @return Vector3 +function ParticleProcessMaterial:get_emission_shape_scale() end + +--- @return bool +function ParticleProcessMaterial:get_turbulence_enabled() end + +--- @param turbulence_enabled bool +function ParticleProcessMaterial:set_turbulence_enabled(turbulence_enabled) end + +--- @return float +function ParticleProcessMaterial:get_turbulence_noise_strength() end + +--- @param turbulence_noise_strength float +function ParticleProcessMaterial:set_turbulence_noise_strength(turbulence_noise_strength) end + +--- @return float +function ParticleProcessMaterial:get_turbulence_noise_scale() end + +--- @param turbulence_noise_scale float +function ParticleProcessMaterial:set_turbulence_noise_scale(turbulence_noise_scale) end + +--- @return float +function ParticleProcessMaterial:get_turbulence_noise_speed_random() end + +--- @param turbulence_noise_speed_random float +function ParticleProcessMaterial:set_turbulence_noise_speed_random(turbulence_noise_speed_random) end + +--- @return Vector3 +function ParticleProcessMaterial:get_turbulence_noise_speed() end + +--- @param turbulence_noise_speed Vector3 +function ParticleProcessMaterial:set_turbulence_noise_speed(turbulence_noise_speed) end + +--- @return Vector3 +function ParticleProcessMaterial:get_gravity() end + +--- @param accel_vec Vector3 +function ParticleProcessMaterial:set_gravity(accel_vec) end + +--- @param randomness float +function ParticleProcessMaterial:set_lifetime_randomness(randomness) end + +--- @return float +function ParticleProcessMaterial:get_lifetime_randomness() end + +--- @return ParticleProcessMaterial.SubEmitterMode +function ParticleProcessMaterial:get_sub_emitter_mode() end + +--- @param mode ParticleProcessMaterial.SubEmitterMode +function ParticleProcessMaterial:set_sub_emitter_mode(mode) end + +--- @return float +function ParticleProcessMaterial:get_sub_emitter_frequency() end + +--- @param hz float +function ParticleProcessMaterial:set_sub_emitter_frequency(hz) end + +--- @return int +function ParticleProcessMaterial:get_sub_emitter_amount_at_end() end + +--- @param amount int +function ParticleProcessMaterial:set_sub_emitter_amount_at_end(amount) end + +--- @return int +function ParticleProcessMaterial:get_sub_emitter_amount_at_collision() end + +--- @param amount int +function ParticleProcessMaterial:set_sub_emitter_amount_at_collision(amount) end + +--- @return int +function ParticleProcessMaterial:get_sub_emitter_amount_at_start() end + +--- @param amount int +function ParticleProcessMaterial:set_sub_emitter_amount_at_start(amount) end + +--- @return bool +function ParticleProcessMaterial:get_sub_emitter_keep_velocity() end + +--- @param enable bool +function ParticleProcessMaterial:set_sub_emitter_keep_velocity(enable) end + +--- @param enabled bool +function ParticleProcessMaterial:set_attractor_interaction_enabled(enabled) end + +--- @return bool +function ParticleProcessMaterial:is_attractor_interaction_enabled() end + +--- @param mode ParticleProcessMaterial.CollisionMode +function ParticleProcessMaterial:set_collision_mode(mode) end + +--- @return ParticleProcessMaterial.CollisionMode +function ParticleProcessMaterial:get_collision_mode() end + +--- @param radius bool +function ParticleProcessMaterial:set_collision_use_scale(radius) end + +--- @return bool +function ParticleProcessMaterial:is_collision_using_scale() end + +--- @param friction float +function ParticleProcessMaterial:set_collision_friction(friction) end + +--- @return float +function ParticleProcessMaterial:get_collision_friction() end + +--- @param bounce float +function ParticleProcessMaterial:set_collision_bounce(bounce) end + +--- @return float +function ParticleProcessMaterial:get_collision_bounce() end + + +----------------------------------------------------------- +-- Path2D +----------------------------------------------------------- + +--- @class Path2D: Node2D, { [string]: any } +--- @field curve Curve2D +Path2D = {} + +--- @return Path2D +function Path2D:new() end + +--- @param curve Curve2D +function Path2D:set_curve(curve) end + +--- @return Curve2D +function Path2D:get_curve() end + + +----------------------------------------------------------- +-- Path3D +----------------------------------------------------------- + +--- @class Path3D: Node3D, { [string]: any } +--- @field curve Curve3D +--- @field debug_custom_color Color +Path3D = {} + +--- @return Path3D +function Path3D:new() end + +Path3D.curve_changed = Signal() +Path3D.debug_color_changed = Signal() + +--- @param curve Curve3D +function Path3D:set_curve(curve) end + +--- @return Curve3D +function Path3D:get_curve() end + +--- @param debug_custom_color Color +function Path3D:set_debug_custom_color(debug_custom_color) end + +--- @return Color +function Path3D:get_debug_custom_color() end + + +----------------------------------------------------------- +-- PathFollow2D +----------------------------------------------------------- + +--- @class PathFollow2D: Node2D, { [string]: any } +--- @field progress float +--- @field progress_ratio float +--- @field h_offset float +--- @field v_offset float +--- @field rotates bool +--- @field cubic_interp bool +--- @field loop bool +PathFollow2D = {} + +--- @return PathFollow2D +function PathFollow2D:new() end + +--- @param progress float +function PathFollow2D:set_progress(progress) end + +--- @return float +function PathFollow2D:get_progress() end + +--- @param h_offset float +function PathFollow2D:set_h_offset(h_offset) end + +--- @return float +function PathFollow2D:get_h_offset() end + +--- @param v_offset float +function PathFollow2D:set_v_offset(v_offset) end + +--- @return float +function PathFollow2D:get_v_offset() end + +--- @param ratio float +function PathFollow2D:set_progress_ratio(ratio) end + +--- @return float +function PathFollow2D:get_progress_ratio() end + +--- @param enabled bool +function PathFollow2D:set_rotates(enabled) end + +--- @return bool +function PathFollow2D:is_rotating() end + +--- @param enabled bool +function PathFollow2D:set_cubic_interpolation(enabled) end + +--- @return bool +function PathFollow2D:get_cubic_interpolation() end + +--- @param loop bool +function PathFollow2D:set_loop(loop) end + +--- @return bool +function PathFollow2D:has_loop() end + + +----------------------------------------------------------- +-- PathFollow3D +----------------------------------------------------------- + +--- @class PathFollow3D: Node3D, { [string]: any } +--- @field progress float +--- @field progress_ratio float +--- @field h_offset float +--- @field v_offset float +--- @field rotation_mode int +--- @field use_model_front bool +--- @field cubic_interp bool +--- @field loop bool +--- @field tilt_enabled bool +PathFollow3D = {} + +--- @return PathFollow3D +function PathFollow3D:new() end + +--- @alias PathFollow3D.RotationMode `PathFollow3D.ROTATION_NONE` | `PathFollow3D.ROTATION_Y` | `PathFollow3D.ROTATION_XY` | `PathFollow3D.ROTATION_XYZ` | `PathFollow3D.ROTATION_ORIENTED` +PathFollow3D.ROTATION_NONE = 0 +PathFollow3D.ROTATION_Y = 1 +PathFollow3D.ROTATION_XY = 2 +PathFollow3D.ROTATION_XYZ = 3 +PathFollow3D.ROTATION_ORIENTED = 4 + +--- @param progress float +function PathFollow3D:set_progress(progress) end + +--- @return float +function PathFollow3D:get_progress() end + +--- @param h_offset float +function PathFollow3D:set_h_offset(h_offset) end + +--- @return float +function PathFollow3D:get_h_offset() end + +--- @param v_offset float +function PathFollow3D:set_v_offset(v_offset) end + +--- @return float +function PathFollow3D:get_v_offset() end + +--- @param ratio float +function PathFollow3D:set_progress_ratio(ratio) end + +--- @return float +function PathFollow3D:get_progress_ratio() end + +--- @param rotation_mode PathFollow3D.RotationMode +function PathFollow3D:set_rotation_mode(rotation_mode) end + +--- @return PathFollow3D.RotationMode +function PathFollow3D:get_rotation_mode() end + +--- @param enabled bool +function PathFollow3D:set_cubic_interpolation(enabled) end + +--- @return bool +function PathFollow3D:get_cubic_interpolation() end + +--- @param enabled bool +function PathFollow3D:set_use_model_front(enabled) end + +--- @return bool +function PathFollow3D:is_using_model_front() end + +--- @param loop bool +function PathFollow3D:set_loop(loop) end + +--- @return bool +function PathFollow3D:has_loop() end + +--- @param enabled bool +function PathFollow3D:set_tilt_enabled(enabled) end + +--- @return bool +function PathFollow3D:is_tilt_enabled() end + +--- static +--- @param transform Transform3D +--- @param rotation_mode PathFollow3D.RotationMode +--- @return Transform3D +function PathFollow3D:correct_posture(transform, rotation_mode) end + + +----------------------------------------------------------- +-- Performance +----------------------------------------------------------- + +--- @class Performance: Object, { [string]: any } +Performance = {} + +--- @alias Performance.Monitor `Performance.TIME_FPS` | `Performance.TIME_PROCESS` | `Performance.TIME_PHYSICS_PROCESS` | `Performance.TIME_NAVIGATION_PROCESS` | `Performance.MEMORY_STATIC` | `Performance.MEMORY_STATIC_MAX` | `Performance.MEMORY_MESSAGE_BUFFER_MAX` | `Performance.OBJECT_COUNT` | `Performance.OBJECT_RESOURCE_COUNT` | `Performance.OBJECT_NODE_COUNT` | `Performance.OBJECT_ORPHAN_NODE_COUNT` | `Performance.RENDER_TOTAL_OBJECTS_IN_FRAME` | `Performance.RENDER_TOTAL_PRIMITIVES_IN_FRAME` | `Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME` | `Performance.RENDER_VIDEO_MEM_USED` | `Performance.RENDER_TEXTURE_MEM_USED` | `Performance.RENDER_BUFFER_MEM_USED` | `Performance.PHYSICS_2D_ACTIVE_OBJECTS` | `Performance.PHYSICS_2D_COLLISION_PAIRS` | `Performance.PHYSICS_2D_ISLAND_COUNT` | `Performance.PHYSICS_3D_ACTIVE_OBJECTS` | `Performance.PHYSICS_3D_COLLISION_PAIRS` | `Performance.PHYSICS_3D_ISLAND_COUNT` | `Performance.AUDIO_OUTPUT_LATENCY` | `Performance.NAVIGATION_ACTIVE_MAPS` | `Performance.NAVIGATION_REGION_COUNT` | `Performance.NAVIGATION_AGENT_COUNT` | `Performance.NAVIGATION_LINK_COUNT` | `Performance.NAVIGATION_POLYGON_COUNT` | `Performance.NAVIGATION_EDGE_COUNT` | `Performance.NAVIGATION_EDGE_MERGE_COUNT` | `Performance.NAVIGATION_EDGE_CONNECTION_COUNT` | `Performance.NAVIGATION_EDGE_FREE_COUNT` | `Performance.NAVIGATION_OBSTACLE_COUNT` | `Performance.PIPELINE_COMPILATIONS_CANVAS` | `Performance.PIPELINE_COMPILATIONS_MESH` | `Performance.PIPELINE_COMPILATIONS_SURFACE` | `Performance.PIPELINE_COMPILATIONS_DRAW` | `Performance.PIPELINE_COMPILATIONS_SPECIALIZATION` | `Performance.NAVIGATION_2D_ACTIVE_MAPS` | `Performance.NAVIGATION_2D_REGION_COUNT` | `Performance.NAVIGATION_2D_AGENT_COUNT` | `Performance.NAVIGATION_2D_LINK_COUNT` | `Performance.NAVIGATION_2D_POLYGON_COUNT` | `Performance.NAVIGATION_2D_EDGE_COUNT` | `Performance.NAVIGATION_2D_EDGE_MERGE_COUNT` | `Performance.NAVIGATION_2D_EDGE_CONNECTION_COUNT` | `Performance.NAVIGATION_2D_EDGE_FREE_COUNT` | `Performance.NAVIGATION_2D_OBSTACLE_COUNT` | `Performance.NAVIGATION_3D_ACTIVE_MAPS` | `Performance.NAVIGATION_3D_REGION_COUNT` | `Performance.NAVIGATION_3D_AGENT_COUNT` | `Performance.NAVIGATION_3D_LINK_COUNT` | `Performance.NAVIGATION_3D_POLYGON_COUNT` | `Performance.NAVIGATION_3D_EDGE_COUNT` | `Performance.NAVIGATION_3D_EDGE_MERGE_COUNT` | `Performance.NAVIGATION_3D_EDGE_CONNECTION_COUNT` | `Performance.NAVIGATION_3D_EDGE_FREE_COUNT` | `Performance.NAVIGATION_3D_OBSTACLE_COUNT` | `Performance.MONITOR_MAX` +Performance.TIME_FPS = 0 +Performance.TIME_PROCESS = 1 +Performance.TIME_PHYSICS_PROCESS = 2 +Performance.TIME_NAVIGATION_PROCESS = 3 +Performance.MEMORY_STATIC = 4 +Performance.MEMORY_STATIC_MAX = 5 +Performance.MEMORY_MESSAGE_BUFFER_MAX = 6 +Performance.OBJECT_COUNT = 7 +Performance.OBJECT_RESOURCE_COUNT = 8 +Performance.OBJECT_NODE_COUNT = 9 +Performance.OBJECT_ORPHAN_NODE_COUNT = 10 +Performance.RENDER_TOTAL_OBJECTS_IN_FRAME = 11 +Performance.RENDER_TOTAL_PRIMITIVES_IN_FRAME = 12 +Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME = 13 +Performance.RENDER_VIDEO_MEM_USED = 14 +Performance.RENDER_TEXTURE_MEM_USED = 15 +Performance.RENDER_BUFFER_MEM_USED = 16 +Performance.PHYSICS_2D_ACTIVE_OBJECTS = 17 +Performance.PHYSICS_2D_COLLISION_PAIRS = 18 +Performance.PHYSICS_2D_ISLAND_COUNT = 19 +Performance.PHYSICS_3D_ACTIVE_OBJECTS = 20 +Performance.PHYSICS_3D_COLLISION_PAIRS = 21 +Performance.PHYSICS_3D_ISLAND_COUNT = 22 +Performance.AUDIO_OUTPUT_LATENCY = 23 +Performance.NAVIGATION_ACTIVE_MAPS = 24 +Performance.NAVIGATION_REGION_COUNT = 25 +Performance.NAVIGATION_AGENT_COUNT = 26 +Performance.NAVIGATION_LINK_COUNT = 27 +Performance.NAVIGATION_POLYGON_COUNT = 28 +Performance.NAVIGATION_EDGE_COUNT = 29 +Performance.NAVIGATION_EDGE_MERGE_COUNT = 30 +Performance.NAVIGATION_EDGE_CONNECTION_COUNT = 31 +Performance.NAVIGATION_EDGE_FREE_COUNT = 32 +Performance.NAVIGATION_OBSTACLE_COUNT = 33 +Performance.PIPELINE_COMPILATIONS_CANVAS = 34 +Performance.PIPELINE_COMPILATIONS_MESH = 35 +Performance.PIPELINE_COMPILATIONS_SURFACE = 36 +Performance.PIPELINE_COMPILATIONS_DRAW = 37 +Performance.PIPELINE_COMPILATIONS_SPECIALIZATION = 38 +Performance.NAVIGATION_2D_ACTIVE_MAPS = 39 +Performance.NAVIGATION_2D_REGION_COUNT = 40 +Performance.NAVIGATION_2D_AGENT_COUNT = 41 +Performance.NAVIGATION_2D_LINK_COUNT = 42 +Performance.NAVIGATION_2D_POLYGON_COUNT = 43 +Performance.NAVIGATION_2D_EDGE_COUNT = 44 +Performance.NAVIGATION_2D_EDGE_MERGE_COUNT = 45 +Performance.NAVIGATION_2D_EDGE_CONNECTION_COUNT = 46 +Performance.NAVIGATION_2D_EDGE_FREE_COUNT = 47 +Performance.NAVIGATION_2D_OBSTACLE_COUNT = 48 +Performance.NAVIGATION_3D_ACTIVE_MAPS = 49 +Performance.NAVIGATION_3D_REGION_COUNT = 50 +Performance.NAVIGATION_3D_AGENT_COUNT = 51 +Performance.NAVIGATION_3D_LINK_COUNT = 52 +Performance.NAVIGATION_3D_POLYGON_COUNT = 53 +Performance.NAVIGATION_3D_EDGE_COUNT = 54 +Performance.NAVIGATION_3D_EDGE_MERGE_COUNT = 55 +Performance.NAVIGATION_3D_EDGE_CONNECTION_COUNT = 56 +Performance.NAVIGATION_3D_EDGE_FREE_COUNT = 57 +Performance.NAVIGATION_3D_OBSTACLE_COUNT = 58 +Performance.MONITOR_MAX = 59 + +--- @param monitor Performance.Monitor +--- @return float +function Performance:get_monitor(monitor) end + +--- @param id StringName +--- @param callable Callable +--- @param arguments Array? Default: [] +function Performance:add_custom_monitor(id, callable, arguments) end + +--- @param id StringName +function Performance:remove_custom_monitor(id) end + +--- @param id StringName +--- @return bool +function Performance:has_custom_monitor(id) end + +--- @param id StringName +--- @return any +function Performance:get_custom_monitor(id) end + +--- @return int +function Performance:get_monitor_modification_time() end + +--- @return Array[StringName] +function Performance:get_custom_monitor_names() end + + +----------------------------------------------------------- +-- PhysicalBone2D +----------------------------------------------------------- + +--- @class PhysicalBone2D: RigidBody2D, { [string]: any } +--- @field bone2d_nodepath NodePath +--- @field bone2d_index int +--- @field auto_configure_joint bool +--- @field simulate_physics bool +--- @field follow_bone_when_simulating bool +PhysicalBone2D = {} + +--- @return PhysicalBone2D +function PhysicalBone2D:new() end + +--- @return Joint2D +function PhysicalBone2D:get_joint() end + +--- @return bool +function PhysicalBone2D:get_auto_configure_joint() end + +--- @param auto_configure_joint bool +function PhysicalBone2D:set_auto_configure_joint(auto_configure_joint) end + +--- @param simulate_physics bool +function PhysicalBone2D:set_simulate_physics(simulate_physics) end + +--- @return bool +function PhysicalBone2D:get_simulate_physics() end + +--- @return bool +function PhysicalBone2D:is_simulating_physics() end + +--- @param nodepath NodePath +function PhysicalBone2D:set_bone2d_nodepath(nodepath) end + +--- @return NodePath +function PhysicalBone2D:get_bone2d_nodepath() end + +--- @param bone_index int +function PhysicalBone2D:set_bone2d_index(bone_index) end + +--- @return int +function PhysicalBone2D:get_bone2d_index() end + +--- @param follow_bone bool +function PhysicalBone2D:set_follow_bone_when_simulating(follow_bone) end + +--- @return bool +function PhysicalBone2D:get_follow_bone_when_simulating() end + + +----------------------------------------------------------- +-- PhysicalBone3D +----------------------------------------------------------- + +--- @class PhysicalBone3D: PhysicsBody3D, { [string]: any } +--- @field joint_type int +--- @field joint_offset Transform3D +--- @field joint_rotation Vector3 +--- @field body_offset Transform3D +--- @field mass float +--- @field friction float +--- @field bounce float +--- @field gravity_scale float +--- @field custom_integrator bool +--- @field linear_damp_mode int +--- @field linear_damp float +--- @field angular_damp_mode int +--- @field angular_damp float +--- @field linear_velocity Vector3 +--- @field angular_velocity Vector3 +--- @field can_sleep bool +PhysicalBone3D = {} + +--- @return PhysicalBone3D +function PhysicalBone3D:new() end + +--- @alias PhysicalBone3D.DampMode `PhysicalBone3D.DAMP_MODE_COMBINE` | `PhysicalBone3D.DAMP_MODE_REPLACE` +PhysicalBone3D.DAMP_MODE_COMBINE = 0 +PhysicalBone3D.DAMP_MODE_REPLACE = 1 + +--- @alias PhysicalBone3D.JointType `PhysicalBone3D.JOINT_TYPE_NONE` | `PhysicalBone3D.JOINT_TYPE_PIN` | `PhysicalBone3D.JOINT_TYPE_CONE` | `PhysicalBone3D.JOINT_TYPE_HINGE` | `PhysicalBone3D.JOINT_TYPE_SLIDER` | `PhysicalBone3D.JOINT_TYPE_6DOF` +PhysicalBone3D.JOINT_TYPE_NONE = 0 +PhysicalBone3D.JOINT_TYPE_PIN = 1 +PhysicalBone3D.JOINT_TYPE_CONE = 2 +PhysicalBone3D.JOINT_TYPE_HINGE = 3 +PhysicalBone3D.JOINT_TYPE_SLIDER = 4 +PhysicalBone3D.JOINT_TYPE_6DOF = 5 + +--- @param state PhysicsDirectBodyState3D +function PhysicalBone3D:_integrate_forces(state) end + +--- @param impulse Vector3 +function PhysicalBone3D:apply_central_impulse(impulse) end + +--- @param impulse Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicalBone3D:apply_impulse(impulse, position) end + +--- @param joint_type PhysicalBone3D.JointType +function PhysicalBone3D:set_joint_type(joint_type) end + +--- @return PhysicalBone3D.JointType +function PhysicalBone3D:get_joint_type() end + +--- @param offset Transform3D +function PhysicalBone3D:set_joint_offset(offset) end + +--- @return Transform3D +function PhysicalBone3D:get_joint_offset() end + +--- @param euler Vector3 +function PhysicalBone3D:set_joint_rotation(euler) end + +--- @return Vector3 +function PhysicalBone3D:get_joint_rotation() end + +--- @param offset Transform3D +function PhysicalBone3D:set_body_offset(offset) end + +--- @return Transform3D +function PhysicalBone3D:get_body_offset() end + +--- @return bool +function PhysicalBone3D:get_simulate_physics() end + +--- @return bool +function PhysicalBone3D:is_simulating_physics() end + +--- @return int +function PhysicalBone3D:get_bone_id() end + +--- @param mass float +function PhysicalBone3D:set_mass(mass) end + +--- @return float +function PhysicalBone3D:get_mass() end + +--- @param friction float +function PhysicalBone3D:set_friction(friction) end + +--- @return float +function PhysicalBone3D:get_friction() end + +--- @param bounce float +function PhysicalBone3D:set_bounce(bounce) end + +--- @return float +function PhysicalBone3D:get_bounce() end + +--- @param gravity_scale float +function PhysicalBone3D:set_gravity_scale(gravity_scale) end + +--- @return float +function PhysicalBone3D:get_gravity_scale() end + +--- @param linear_damp_mode PhysicalBone3D.DampMode +function PhysicalBone3D:set_linear_damp_mode(linear_damp_mode) end + +--- @return PhysicalBone3D.DampMode +function PhysicalBone3D:get_linear_damp_mode() end + +--- @param angular_damp_mode PhysicalBone3D.DampMode +function PhysicalBone3D:set_angular_damp_mode(angular_damp_mode) end + +--- @return PhysicalBone3D.DampMode +function PhysicalBone3D:get_angular_damp_mode() end + +--- @param linear_damp float +function PhysicalBone3D:set_linear_damp(linear_damp) end + +--- @return float +function PhysicalBone3D:get_linear_damp() end + +--- @param angular_damp float +function PhysicalBone3D:set_angular_damp(angular_damp) end + +--- @return float +function PhysicalBone3D:get_angular_damp() end + +--- @param linear_velocity Vector3 +function PhysicalBone3D:set_linear_velocity(linear_velocity) end + +--- @return Vector3 +function PhysicalBone3D:get_linear_velocity() end + +--- @param angular_velocity Vector3 +function PhysicalBone3D:set_angular_velocity(angular_velocity) end + +--- @return Vector3 +function PhysicalBone3D:get_angular_velocity() end + +--- @param enable bool +function PhysicalBone3D:set_use_custom_integrator(enable) end + +--- @return bool +function PhysicalBone3D:is_using_custom_integrator() end + +--- @param able_to_sleep bool +function PhysicalBone3D:set_can_sleep(able_to_sleep) end + +--- @return bool +function PhysicalBone3D:is_able_to_sleep() end + + +----------------------------------------------------------- +-- PhysicalBoneSimulator3D +----------------------------------------------------------- + +--- @class PhysicalBoneSimulator3D: SkeletonModifier3D, { [string]: any } +PhysicalBoneSimulator3D = {} + +--- @return PhysicalBoneSimulator3D +function PhysicalBoneSimulator3D:new() end + +--- @return bool +function PhysicalBoneSimulator3D:is_simulating_physics() end + +function PhysicalBoneSimulator3D:physical_bones_stop_simulation() end + +--- @param bones Array[StringName]? Default: [] +function PhysicalBoneSimulator3D:physical_bones_start_simulation(bones) end + +--- @param exception RID +function PhysicalBoneSimulator3D:physical_bones_add_collision_exception(exception) end + +--- @param exception RID +function PhysicalBoneSimulator3D:physical_bones_remove_collision_exception(exception) end + + +----------------------------------------------------------- +-- PhysicalSkyMaterial +----------------------------------------------------------- + +--- @class PhysicalSkyMaterial: Material, { [string]: any } +--- @field rayleigh_coefficient float +--- @field rayleigh_color Color +--- @field mie_coefficient float +--- @field mie_eccentricity float +--- @field mie_color Color +--- @field turbidity float +--- @field sun_disk_scale float +--- @field ground_color Color +--- @field energy_multiplier float +--- @field use_debanding bool +--- @field night_sky Texture2D +PhysicalSkyMaterial = {} + +--- @return PhysicalSkyMaterial +function PhysicalSkyMaterial:new() end + +--- @param rayleigh float +function PhysicalSkyMaterial:set_rayleigh_coefficient(rayleigh) end + +--- @return float +function PhysicalSkyMaterial:get_rayleigh_coefficient() end + +--- @param color Color +function PhysicalSkyMaterial:set_rayleigh_color(color) end + +--- @return Color +function PhysicalSkyMaterial:get_rayleigh_color() end + +--- @param mie float +function PhysicalSkyMaterial:set_mie_coefficient(mie) end + +--- @return float +function PhysicalSkyMaterial:get_mie_coefficient() end + +--- @param eccentricity float +function PhysicalSkyMaterial:set_mie_eccentricity(eccentricity) end + +--- @return float +function PhysicalSkyMaterial:get_mie_eccentricity() end + +--- @param color Color +function PhysicalSkyMaterial:set_mie_color(color) end + +--- @return Color +function PhysicalSkyMaterial:get_mie_color() end + +--- @param turbidity float +function PhysicalSkyMaterial:set_turbidity(turbidity) end + +--- @return float +function PhysicalSkyMaterial:get_turbidity() end + +--- @param scale float +function PhysicalSkyMaterial:set_sun_disk_scale(scale) end + +--- @return float +function PhysicalSkyMaterial:get_sun_disk_scale() end + +--- @param color Color +function PhysicalSkyMaterial:set_ground_color(color) end + +--- @return Color +function PhysicalSkyMaterial:get_ground_color() end + +--- @param multiplier float +function PhysicalSkyMaterial:set_energy_multiplier(multiplier) end + +--- @return float +function PhysicalSkyMaterial:get_energy_multiplier() end + +--- @param use_debanding bool +function PhysicalSkyMaterial:set_use_debanding(use_debanding) end + +--- @return bool +function PhysicalSkyMaterial:get_use_debanding() end + +--- @param night_sky Texture2D +function PhysicalSkyMaterial:set_night_sky(night_sky) end + +--- @return Texture2D +function PhysicalSkyMaterial:get_night_sky() end + + +----------------------------------------------------------- +-- PhysicsBody2D +----------------------------------------------------------- + +--- @class PhysicsBody2D: CollisionObject2D, { [string]: any } +PhysicsBody2D = {} + +--- @param motion Vector2 +--- @param test_only bool? Default: false +--- @param safe_margin float? Default: 0.08 +--- @param recovery_as_collision bool? Default: false +--- @return KinematicCollision2D +function PhysicsBody2D:move_and_collide(motion, test_only, safe_margin, recovery_as_collision) end + +--- @param from Transform2D +--- @param motion Vector2 +--- @param collision KinematicCollision2D? Default: null +--- @param safe_margin float? Default: 0.08 +--- @param recovery_as_collision bool? Default: false +--- @return bool +function PhysicsBody2D:test_move(from, motion, collision, safe_margin, recovery_as_collision) end + +--- @return Vector2 +function PhysicsBody2D:get_gravity() end + +--- @return Array[PhysicsBody2D] +function PhysicsBody2D:get_collision_exceptions() end + +--- @param body Node +function PhysicsBody2D:add_collision_exception_with(body) end + +--- @param body Node +function PhysicsBody2D:remove_collision_exception_with(body) end + + +----------------------------------------------------------- +-- PhysicsBody3D +----------------------------------------------------------- + +--- @class PhysicsBody3D: CollisionObject3D, { [string]: any } +--- @field axis_lock_linear_x bool +--- @field axis_lock_linear_y bool +--- @field axis_lock_linear_z bool +--- @field axis_lock_angular_x bool +--- @field axis_lock_angular_y bool +--- @field axis_lock_angular_z bool +PhysicsBody3D = {} + +--- @param motion Vector3 +--- @param test_only bool? Default: false +--- @param safe_margin float? Default: 0.001 +--- @param recovery_as_collision bool? Default: false +--- @param max_collisions int? Default: 1 +--- @return KinematicCollision3D +function PhysicsBody3D:move_and_collide(motion, test_only, safe_margin, recovery_as_collision, max_collisions) end + +--- @param from Transform3D +--- @param motion Vector3 +--- @param collision KinematicCollision3D? Default: null +--- @param safe_margin float? Default: 0.001 +--- @param recovery_as_collision bool? Default: false +--- @param max_collisions int? Default: 1 +--- @return bool +function PhysicsBody3D:test_move(from, motion, collision, safe_margin, recovery_as_collision, max_collisions) end + +--- @return Vector3 +function PhysicsBody3D:get_gravity() end + +--- @param axis PhysicsServer3D.BodyAxis +--- @param lock bool +function PhysicsBody3D:set_axis_lock(axis, lock) end + +--- @param axis PhysicsServer3D.BodyAxis +--- @return bool +function PhysicsBody3D:get_axis_lock(axis) end + +--- @return Array[PhysicsBody3D] +function PhysicsBody3D:get_collision_exceptions() end + +--- @param body Node +function PhysicsBody3D:add_collision_exception_with(body) end + +--- @param body Node +function PhysicsBody3D:remove_collision_exception_with(body) end + + +----------------------------------------------------------- +-- PhysicsDirectBodyState2D +----------------------------------------------------------- + +--- @class PhysicsDirectBodyState2D: Object, { [string]: any } +--- @field step float +--- @field inverse_mass float +--- @field inverse_inertia float +--- @field total_angular_damp float +--- @field total_linear_damp float +--- @field total_gravity Vector2 +--- @field center_of_mass Vector2 +--- @field center_of_mass_local Vector2 +--- @field angular_velocity float +--- @field linear_velocity Vector2 +--- @field sleeping bool +--- @field collision_layer int +--- @field collision_mask int +--- @field transform Transform2D +PhysicsDirectBodyState2D = {} + +--- @return Vector2 +function PhysicsDirectBodyState2D:get_total_gravity() end + +--- @return float +function PhysicsDirectBodyState2D:get_total_linear_damp() end + +--- @return float +function PhysicsDirectBodyState2D:get_total_angular_damp() end + +--- @return Vector2 +function PhysicsDirectBodyState2D:get_center_of_mass() end + +--- @return Vector2 +function PhysicsDirectBodyState2D:get_center_of_mass_local() end + +--- @return float +function PhysicsDirectBodyState2D:get_inverse_mass() end + +--- @return float +function PhysicsDirectBodyState2D:get_inverse_inertia() end + +--- @param velocity Vector2 +function PhysicsDirectBodyState2D:set_linear_velocity(velocity) end + +--- @return Vector2 +function PhysicsDirectBodyState2D:get_linear_velocity() end + +--- @param velocity float +function PhysicsDirectBodyState2D:set_angular_velocity(velocity) end + +--- @return float +function PhysicsDirectBodyState2D:get_angular_velocity() end + +--- @param transform Transform2D +function PhysicsDirectBodyState2D:set_transform(transform) end + +--- @return Transform2D +function PhysicsDirectBodyState2D:get_transform() end + +--- @param local_position Vector2 +--- @return Vector2 +function PhysicsDirectBodyState2D:get_velocity_at_local_position(local_position) end + +--- @param impulse Vector2 +function PhysicsDirectBodyState2D:apply_central_impulse(impulse) end + +--- @param impulse float +function PhysicsDirectBodyState2D:apply_torque_impulse(impulse) end + +--- @param impulse Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsDirectBodyState2D:apply_impulse(impulse, position) end + +--- @param force Vector2? Default: Vector2(0, 0) +function PhysicsDirectBodyState2D:apply_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsDirectBodyState2D:apply_force(force, position) end + +--- @param torque float +function PhysicsDirectBodyState2D:apply_torque(torque) end + +--- @param force Vector2? Default: Vector2(0, 0) +function PhysicsDirectBodyState2D:add_constant_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsDirectBodyState2D:add_constant_force(force, position) end + +--- @param torque float +function PhysicsDirectBodyState2D:add_constant_torque(torque) end + +--- @param force Vector2 +function PhysicsDirectBodyState2D:set_constant_force(force) end + +--- @return Vector2 +function PhysicsDirectBodyState2D:get_constant_force() end + +--- @param torque float +function PhysicsDirectBodyState2D:set_constant_torque(torque) end + +--- @return float +function PhysicsDirectBodyState2D:get_constant_torque() end + +--- @param enabled bool +function PhysicsDirectBodyState2D:set_sleep_state(enabled) end + +--- @return bool +function PhysicsDirectBodyState2D:is_sleeping() end + +--- @param layer int +function PhysicsDirectBodyState2D:set_collision_layer(layer) end + +--- @return int +function PhysicsDirectBodyState2D:get_collision_layer() end + +--- @param mask int +function PhysicsDirectBodyState2D:set_collision_mask(mask) end + +--- @return int +function PhysicsDirectBodyState2D:get_collision_mask() end + +--- @return int +function PhysicsDirectBodyState2D:get_contact_count() end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_local_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_local_normal(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2D:get_contact_local_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_local_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return RID +function PhysicsDirectBodyState2D:get_contact_collider(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_collider_position(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2D:get_contact_collider_id(contact_idx) end + +--- @param contact_idx int +--- @return Object +function PhysicsDirectBodyState2D:get_contact_collider_object(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2D:get_contact_collider_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_collider_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2D:get_contact_impulse(contact_idx) end + +--- @return float +function PhysicsDirectBodyState2D:get_step() end + +function PhysicsDirectBodyState2D:integrate_forces() end + +--- @return PhysicsDirectSpaceState2D +function PhysicsDirectBodyState2D:get_space_state() end + + +----------------------------------------------------------- +-- PhysicsDirectBodyState2DExtension +----------------------------------------------------------- + +--- @class PhysicsDirectBodyState2DExtension: PhysicsDirectBodyState2D, { [string]: any } +PhysicsDirectBodyState2DExtension = {} + +--- @return PhysicsDirectBodyState2DExtension +function PhysicsDirectBodyState2DExtension:new() end + +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_total_gravity() end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_total_linear_damp() end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_total_angular_damp() end + +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_center_of_mass() end + +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_center_of_mass_local() end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_inverse_mass() end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_inverse_inertia() end + +--- @param velocity Vector2 +function PhysicsDirectBodyState2DExtension:_set_linear_velocity(velocity) end + +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_linear_velocity() end + +--- @param velocity float +function PhysicsDirectBodyState2DExtension:_set_angular_velocity(velocity) end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_angular_velocity() end + +--- @param transform Transform2D +function PhysicsDirectBodyState2DExtension:_set_transform(transform) end + +--- @return Transform2D +function PhysicsDirectBodyState2DExtension:_get_transform() end + +--- @param local_position Vector2 +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_velocity_at_local_position(local_position) end + +--- @param impulse Vector2 +function PhysicsDirectBodyState2DExtension:_apply_central_impulse(impulse) end + +--- @param impulse Vector2 +--- @param position Vector2 +function PhysicsDirectBodyState2DExtension:_apply_impulse(impulse, position) end + +--- @param impulse float +function PhysicsDirectBodyState2DExtension:_apply_torque_impulse(impulse) end + +--- @param force Vector2 +function PhysicsDirectBodyState2DExtension:_apply_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2 +function PhysicsDirectBodyState2DExtension:_apply_force(force, position) end + +--- @param torque float +function PhysicsDirectBodyState2DExtension:_apply_torque(torque) end + +--- @param force Vector2 +function PhysicsDirectBodyState2DExtension:_add_constant_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2 +function PhysicsDirectBodyState2DExtension:_add_constant_force(force, position) end + +--- @param torque float +function PhysicsDirectBodyState2DExtension:_add_constant_torque(torque) end + +--- @param force Vector2 +function PhysicsDirectBodyState2DExtension:_set_constant_force(force) end + +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_constant_force() end + +--- @param torque float +function PhysicsDirectBodyState2DExtension:_set_constant_torque(torque) end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_constant_torque() end + +--- @param enabled bool +function PhysicsDirectBodyState2DExtension:_set_sleep_state(enabled) end + +--- @return bool +function PhysicsDirectBodyState2DExtension:_is_sleeping() end + +--- @param layer int +function PhysicsDirectBodyState2DExtension:_set_collision_layer(layer) end + +--- @return int +function PhysicsDirectBodyState2DExtension:_get_collision_layer() end + +--- @param mask int +function PhysicsDirectBodyState2DExtension:_set_collision_mask(mask) end + +--- @return int +function PhysicsDirectBodyState2DExtension:_get_collision_mask() end + +--- @return int +function PhysicsDirectBodyState2DExtension:_get_contact_count() end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_local_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_local_normal(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2DExtension:_get_contact_local_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_local_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return RID +function PhysicsDirectBodyState2DExtension:_get_contact_collider(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_collider_position(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2DExtension:_get_contact_collider_id(contact_idx) end + +--- @param contact_idx int +--- @return Object +function PhysicsDirectBodyState2DExtension:_get_contact_collider_object(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState2DExtension:_get_contact_collider_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_collider_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector2 +function PhysicsDirectBodyState2DExtension:_get_contact_impulse(contact_idx) end + +--- @return float +function PhysicsDirectBodyState2DExtension:_get_step() end + +function PhysicsDirectBodyState2DExtension:_integrate_forces() end + +--- @return PhysicsDirectSpaceState2D +function PhysicsDirectBodyState2DExtension:_get_space_state() end + + +----------------------------------------------------------- +-- PhysicsDirectBodyState3D +----------------------------------------------------------- + +--- @class PhysicsDirectBodyState3D: Object, { [string]: any } +--- @field step float +--- @field inverse_mass float +--- @field total_angular_damp float +--- @field total_linear_damp float +--- @field inverse_inertia Vector3 +--- @field inverse_inertia_tensor Basis +--- @field total_gravity Vector3 +--- @field center_of_mass Vector3 +--- @field center_of_mass_local Vector3 +--- @field principal_inertia_axes Basis +--- @field angular_velocity Vector3 +--- @field linear_velocity Vector3 +--- @field sleeping bool +--- @field collision_layer int +--- @field collision_mask int +--- @field transform Transform3D +PhysicsDirectBodyState3D = {} + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_total_gravity() end + +--- @return float +function PhysicsDirectBodyState3D:get_total_linear_damp() end + +--- @return float +function PhysicsDirectBodyState3D:get_total_angular_damp() end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_center_of_mass() end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_center_of_mass_local() end + +--- @return Basis +function PhysicsDirectBodyState3D:get_principal_inertia_axes() end + +--- @return float +function PhysicsDirectBodyState3D:get_inverse_mass() end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_inverse_inertia() end + +--- @return Basis +function PhysicsDirectBodyState3D:get_inverse_inertia_tensor() end + +--- @param velocity Vector3 +function PhysicsDirectBodyState3D:set_linear_velocity(velocity) end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_linear_velocity() end + +--- @param velocity Vector3 +function PhysicsDirectBodyState3D:set_angular_velocity(velocity) end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_angular_velocity() end + +--- @param transform Transform3D +function PhysicsDirectBodyState3D:set_transform(transform) end + +--- @return Transform3D +function PhysicsDirectBodyState3D:get_transform() end + +--- @param local_position Vector3 +--- @return Vector3 +function PhysicsDirectBodyState3D:get_velocity_at_local_position(local_position) end + +--- @param impulse Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:apply_central_impulse(impulse) end + +--- @param impulse Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:apply_impulse(impulse, position) end + +--- @param impulse Vector3 +function PhysicsDirectBodyState3D:apply_torque_impulse(impulse) end + +--- @param force Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:apply_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:apply_force(force, position) end + +--- @param torque Vector3 +function PhysicsDirectBodyState3D:apply_torque(torque) end + +--- @param force Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:add_constant_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsDirectBodyState3D:add_constant_force(force, position) end + +--- @param torque Vector3 +function PhysicsDirectBodyState3D:add_constant_torque(torque) end + +--- @param force Vector3 +function PhysicsDirectBodyState3D:set_constant_force(force) end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_constant_force() end + +--- @param torque Vector3 +function PhysicsDirectBodyState3D:set_constant_torque(torque) end + +--- @return Vector3 +function PhysicsDirectBodyState3D:get_constant_torque() end + +--- @param enabled bool +function PhysicsDirectBodyState3D:set_sleep_state(enabled) end + +--- @return bool +function PhysicsDirectBodyState3D:is_sleeping() end + +--- @param layer int +function PhysicsDirectBodyState3D:set_collision_layer(layer) end + +--- @return int +function PhysicsDirectBodyState3D:get_collision_layer() end + +--- @param mask int +function PhysicsDirectBodyState3D:set_collision_mask(mask) end + +--- @return int +function PhysicsDirectBodyState3D:get_collision_mask() end + +--- @return int +function PhysicsDirectBodyState3D:get_contact_count() end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_local_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_local_normal(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_impulse(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3D:get_contact_local_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_local_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return RID +function PhysicsDirectBodyState3D:get_contact_collider(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_collider_position(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3D:get_contact_collider_id(contact_idx) end + +--- @param contact_idx int +--- @return Object +function PhysicsDirectBodyState3D:get_contact_collider_object(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3D:get_contact_collider_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3D:get_contact_collider_velocity_at_position(contact_idx) end + +--- @return float +function PhysicsDirectBodyState3D:get_step() end + +function PhysicsDirectBodyState3D:integrate_forces() end + +--- @return PhysicsDirectSpaceState3D +function PhysicsDirectBodyState3D:get_space_state() end + + +----------------------------------------------------------- +-- PhysicsDirectBodyState3DExtension +----------------------------------------------------------- + +--- @class PhysicsDirectBodyState3DExtension: PhysicsDirectBodyState3D, { [string]: any } +PhysicsDirectBodyState3DExtension = {} + +--- @return PhysicsDirectBodyState3DExtension +function PhysicsDirectBodyState3DExtension:new() end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_total_gravity() end + +--- @return float +function PhysicsDirectBodyState3DExtension:_get_total_linear_damp() end + +--- @return float +function PhysicsDirectBodyState3DExtension:_get_total_angular_damp() end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_center_of_mass() end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_center_of_mass_local() end + +--- @return Basis +function PhysicsDirectBodyState3DExtension:_get_principal_inertia_axes() end + +--- @return float +function PhysicsDirectBodyState3DExtension:_get_inverse_mass() end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_inverse_inertia() end + +--- @return Basis +function PhysicsDirectBodyState3DExtension:_get_inverse_inertia_tensor() end + +--- @param velocity Vector3 +function PhysicsDirectBodyState3DExtension:_set_linear_velocity(velocity) end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_linear_velocity() end + +--- @param velocity Vector3 +function PhysicsDirectBodyState3DExtension:_set_angular_velocity(velocity) end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_angular_velocity() end + +--- @param transform Transform3D +function PhysicsDirectBodyState3DExtension:_set_transform(transform) end + +--- @return Transform3D +function PhysicsDirectBodyState3DExtension:_get_transform() end + +--- @param local_position Vector3 +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_velocity_at_local_position(local_position) end + +--- @param impulse Vector3 +function PhysicsDirectBodyState3DExtension:_apply_central_impulse(impulse) end + +--- @param impulse Vector3 +--- @param position Vector3 +function PhysicsDirectBodyState3DExtension:_apply_impulse(impulse, position) end + +--- @param impulse Vector3 +function PhysicsDirectBodyState3DExtension:_apply_torque_impulse(impulse) end + +--- @param force Vector3 +function PhysicsDirectBodyState3DExtension:_apply_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3 +function PhysicsDirectBodyState3DExtension:_apply_force(force, position) end + +--- @param torque Vector3 +function PhysicsDirectBodyState3DExtension:_apply_torque(torque) end + +--- @param force Vector3 +function PhysicsDirectBodyState3DExtension:_add_constant_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3 +function PhysicsDirectBodyState3DExtension:_add_constant_force(force, position) end + +--- @param torque Vector3 +function PhysicsDirectBodyState3DExtension:_add_constant_torque(torque) end + +--- @param force Vector3 +function PhysicsDirectBodyState3DExtension:_set_constant_force(force) end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_constant_force() end + +--- @param torque Vector3 +function PhysicsDirectBodyState3DExtension:_set_constant_torque(torque) end + +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_constant_torque() end + +--- @param enabled bool +function PhysicsDirectBodyState3DExtension:_set_sleep_state(enabled) end + +--- @return bool +function PhysicsDirectBodyState3DExtension:_is_sleeping() end + +--- @param layer int +function PhysicsDirectBodyState3DExtension:_set_collision_layer(layer) end + +--- @return int +function PhysicsDirectBodyState3DExtension:_get_collision_layer() end + +--- @param mask int +function PhysicsDirectBodyState3DExtension:_set_collision_mask(mask) end + +--- @return int +function PhysicsDirectBodyState3DExtension:_get_collision_mask() end + +--- @return int +function PhysicsDirectBodyState3DExtension:_get_contact_count() end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_local_position(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_local_normal(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_impulse(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3DExtension:_get_contact_local_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_local_velocity_at_position(contact_idx) end + +--- @param contact_idx int +--- @return RID +function PhysicsDirectBodyState3DExtension:_get_contact_collider(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_collider_position(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3DExtension:_get_contact_collider_id(contact_idx) end + +--- @param contact_idx int +--- @return Object +function PhysicsDirectBodyState3DExtension:_get_contact_collider_object(contact_idx) end + +--- @param contact_idx int +--- @return int +function PhysicsDirectBodyState3DExtension:_get_contact_collider_shape(contact_idx) end + +--- @param contact_idx int +--- @return Vector3 +function PhysicsDirectBodyState3DExtension:_get_contact_collider_velocity_at_position(contact_idx) end + +--- @return float +function PhysicsDirectBodyState3DExtension:_get_step() end + +function PhysicsDirectBodyState3DExtension:_integrate_forces() end + +--- @return PhysicsDirectSpaceState3D +function PhysicsDirectBodyState3DExtension:_get_space_state() end + + +----------------------------------------------------------- +-- PhysicsDirectSpaceState2D +----------------------------------------------------------- + +--- @class PhysicsDirectSpaceState2D: Object, { [string]: any } +PhysicsDirectSpaceState2D = {} + +--- @param parameters PhysicsPointQueryParameters2D +--- @param max_results int? Default: 32 +--- @return Array[Dictionary] +function PhysicsDirectSpaceState2D:intersect_point(parameters, max_results) end + +--- @param parameters PhysicsRayQueryParameters2D +--- @return Dictionary +function PhysicsDirectSpaceState2D:intersect_ray(parameters) end + +--- @param parameters PhysicsShapeQueryParameters2D +--- @param max_results int? Default: 32 +--- @return Array[Dictionary] +function PhysicsDirectSpaceState2D:intersect_shape(parameters, max_results) end + +--- @param parameters PhysicsShapeQueryParameters2D +--- @return PackedFloat32Array +function PhysicsDirectSpaceState2D:cast_motion(parameters) end + +--- @param parameters PhysicsShapeQueryParameters2D +--- @param max_results int? Default: 32 +--- @return Array[Vector2] +function PhysicsDirectSpaceState2D:collide_shape(parameters, max_results) end + +--- @param parameters PhysicsShapeQueryParameters2D +--- @return Dictionary +function PhysicsDirectSpaceState2D:get_rest_info(parameters) end + + +----------------------------------------------------------- +-- PhysicsDirectSpaceState2DExtension +----------------------------------------------------------- + +--- @class PhysicsDirectSpaceState2DExtension: PhysicsDirectSpaceState2D, { [string]: any } +PhysicsDirectSpaceState2DExtension = {} + +--- @return PhysicsDirectSpaceState2DExtension +function PhysicsDirectSpaceState2DExtension:new() end + +--- @param from Vector2 +--- @param to Vector2 +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param hit_from_inside bool +--- @param result PhysicsServer2DExtensionRayResult* +--- @return bool +function PhysicsDirectSpaceState2DExtension:_intersect_ray(from, to, collision_mask, collide_with_bodies, collide_with_areas, hit_from_inside, result) end + +--- @param position Vector2 +--- @param canvas_instance_id int +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param results PhysicsServer2DExtensionShapeResult* +--- @param max_results int +--- @return int +function PhysicsDirectSpaceState2DExtension:_intersect_point(position, canvas_instance_id, collision_mask, collide_with_bodies, collide_with_areas, results, max_results) end + +--- @param shape_rid RID +--- @param transform Transform2D +--- @param motion Vector2 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param result PhysicsServer2DExtensionShapeResult* +--- @param max_results int +--- @return int +function PhysicsDirectSpaceState2DExtension:_intersect_shape(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, result, max_results) end + +--- @param shape_rid RID +--- @param transform Transform2D +--- @param motion Vector2 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param closest_safe float* +--- @param closest_unsafe float* +--- @return bool +function PhysicsDirectSpaceState2DExtension:_cast_motion(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, closest_safe, closest_unsafe) end + +--- @param shape_rid RID +--- @param transform Transform2D +--- @param motion Vector2 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param results void* +--- @param max_results int +--- @param result_count int32_t* +--- @return bool +function PhysicsDirectSpaceState2DExtension:_collide_shape(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, results, max_results, result_count) end + +--- @param shape_rid RID +--- @param transform Transform2D +--- @param motion Vector2 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param rest_info PhysicsServer2DExtensionShapeRestInfo* +--- @return bool +function PhysicsDirectSpaceState2DExtension:_rest_info(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, rest_info) end + +--- @param body RID +--- @return bool +function PhysicsDirectSpaceState2DExtension:is_body_excluded_from_query(body) end + + +----------------------------------------------------------- +-- PhysicsDirectSpaceState3D +----------------------------------------------------------- + +--- @class PhysicsDirectSpaceState3D: Object, { [string]: any } +PhysicsDirectSpaceState3D = {} + +--- @param parameters PhysicsPointQueryParameters3D +--- @param max_results int? Default: 32 +--- @return Array[Dictionary] +function PhysicsDirectSpaceState3D:intersect_point(parameters, max_results) end + +--- @param parameters PhysicsRayQueryParameters3D +--- @return Dictionary +function PhysicsDirectSpaceState3D:intersect_ray(parameters) end + +--- @param parameters PhysicsShapeQueryParameters3D +--- @param max_results int? Default: 32 +--- @return Array[Dictionary] +function PhysicsDirectSpaceState3D:intersect_shape(parameters, max_results) end + +--- @param parameters PhysicsShapeQueryParameters3D +--- @return PackedFloat32Array +function PhysicsDirectSpaceState3D:cast_motion(parameters) end + +--- @param parameters PhysicsShapeQueryParameters3D +--- @param max_results int? Default: 32 +--- @return Array[Vector3] +function PhysicsDirectSpaceState3D:collide_shape(parameters, max_results) end + +--- @param parameters PhysicsShapeQueryParameters3D +--- @return Dictionary +function PhysicsDirectSpaceState3D:get_rest_info(parameters) end + + +----------------------------------------------------------- +-- PhysicsDirectSpaceState3DExtension +----------------------------------------------------------- + +--- @class PhysicsDirectSpaceState3DExtension: PhysicsDirectSpaceState3D, { [string]: any } +PhysicsDirectSpaceState3DExtension = {} + +--- @return PhysicsDirectSpaceState3DExtension +function PhysicsDirectSpaceState3DExtension:new() end + +--- @param from Vector3 +--- @param to Vector3 +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param hit_from_inside bool +--- @param hit_back_faces bool +--- @param pick_ray bool +--- @param result PhysicsServer3DExtensionRayResult* +--- @return bool +function PhysicsDirectSpaceState3DExtension:_intersect_ray(from, to, collision_mask, collide_with_bodies, collide_with_areas, hit_from_inside, hit_back_faces, pick_ray, result) end + +--- @param position Vector3 +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param results PhysicsServer3DExtensionShapeResult* +--- @param max_results int +--- @return int +function PhysicsDirectSpaceState3DExtension:_intersect_point(position, collision_mask, collide_with_bodies, collide_with_areas, results, max_results) end + +--- @param shape_rid RID +--- @param transform Transform3D +--- @param motion Vector3 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param result_count PhysicsServer3DExtensionShapeResult* +--- @param max_results int +--- @return int +function PhysicsDirectSpaceState3DExtension:_intersect_shape(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, result_count, max_results) end + +--- @param shape_rid RID +--- @param transform Transform3D +--- @param motion Vector3 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param closest_safe float* +--- @param closest_unsafe float* +--- @param info PhysicsServer3DExtensionShapeRestInfo* +--- @return bool +function PhysicsDirectSpaceState3DExtension:_cast_motion(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, closest_safe, closest_unsafe, info) end + +--- @param shape_rid RID +--- @param transform Transform3D +--- @param motion Vector3 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param results void* +--- @param max_results int +--- @param result_count int32_t* +--- @return bool +function PhysicsDirectSpaceState3DExtension:_collide_shape(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, results, max_results, result_count) end + +--- @param shape_rid RID +--- @param transform Transform3D +--- @param motion Vector3 +--- @param margin float +--- @param collision_mask int +--- @param collide_with_bodies bool +--- @param collide_with_areas bool +--- @param rest_info PhysicsServer3DExtensionShapeRestInfo* +--- @return bool +function PhysicsDirectSpaceState3DExtension:_rest_info(shape_rid, transform, motion, margin, collision_mask, collide_with_bodies, collide_with_areas, rest_info) end + +--- @param object RID +--- @param point Vector3 +--- @return Vector3 +function PhysicsDirectSpaceState3DExtension:_get_closest_point_to_object_volume(object, point) end + +--- @param body RID +--- @return bool +function PhysicsDirectSpaceState3DExtension:is_body_excluded_from_query(body) end + + +----------------------------------------------------------- +-- PhysicsMaterial +----------------------------------------------------------- + +--- @class PhysicsMaterial: Resource, { [string]: any } +--- @field friction float +--- @field rough bool +--- @field bounce float +--- @field absorbent bool +PhysicsMaterial = {} + +--- @return PhysicsMaterial +function PhysicsMaterial:new() end + +--- @param friction float +function PhysicsMaterial:set_friction(friction) end + +--- @return float +function PhysicsMaterial:get_friction() end + +--- @param rough bool +function PhysicsMaterial:set_rough(rough) end + +--- @return bool +function PhysicsMaterial:is_rough() end + +--- @param bounce float +function PhysicsMaterial:set_bounce(bounce) end + +--- @return float +function PhysicsMaterial:get_bounce() end + +--- @param absorbent bool +function PhysicsMaterial:set_absorbent(absorbent) end + +--- @return bool +function PhysicsMaterial:is_absorbent() end + + +----------------------------------------------------------- +-- PhysicsPointQueryParameters2D +----------------------------------------------------------- + +--- @class PhysicsPointQueryParameters2D: RefCounted, { [string]: any } +--- @field position Vector2 +--- @field canvas_instance_id int +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +PhysicsPointQueryParameters2D = {} + +--- @return PhysicsPointQueryParameters2D +function PhysicsPointQueryParameters2D:new() end + +--- @param position Vector2 +function PhysicsPointQueryParameters2D:set_position(position) end + +--- @return Vector2 +function PhysicsPointQueryParameters2D:get_position() end + +--- @param canvas_instance_id int +function PhysicsPointQueryParameters2D:set_canvas_instance_id(canvas_instance_id) end + +--- @return int +function PhysicsPointQueryParameters2D:get_canvas_instance_id() end + +--- @param collision_mask int +function PhysicsPointQueryParameters2D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsPointQueryParameters2D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsPointQueryParameters2D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsPointQueryParameters2D:get_exclude() end + +--- @param enable bool +function PhysicsPointQueryParameters2D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsPointQueryParameters2D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsPointQueryParameters2D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsPointQueryParameters2D:is_collide_with_areas_enabled() end + + +----------------------------------------------------------- +-- PhysicsPointQueryParameters3D +----------------------------------------------------------- + +--- @class PhysicsPointQueryParameters3D: RefCounted, { [string]: any } +--- @field position Vector3 +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +PhysicsPointQueryParameters3D = {} + +--- @return PhysicsPointQueryParameters3D +function PhysicsPointQueryParameters3D:new() end + +--- @param position Vector3 +function PhysicsPointQueryParameters3D:set_position(position) end + +--- @return Vector3 +function PhysicsPointQueryParameters3D:get_position() end + +--- @param collision_mask int +function PhysicsPointQueryParameters3D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsPointQueryParameters3D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsPointQueryParameters3D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsPointQueryParameters3D:get_exclude() end + +--- @param enable bool +function PhysicsPointQueryParameters3D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsPointQueryParameters3D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsPointQueryParameters3D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsPointQueryParameters3D:is_collide_with_areas_enabled() end + + +----------------------------------------------------------- +-- PhysicsRayQueryParameters2D +----------------------------------------------------------- + +--- @class PhysicsRayQueryParameters2D: RefCounted, { [string]: any } +--- @field from Vector2 +--- @field to Vector2 +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +--- @field hit_from_inside bool +PhysicsRayQueryParameters2D = {} + +--- @return PhysicsRayQueryParameters2D +function PhysicsRayQueryParameters2D:new() end + +--- static +--- @param from Vector2 +--- @param to Vector2 +--- @param collision_mask int? Default: 4294967295 +--- @param exclude Array[RID]? Default: Array[RID]([]) +--- @return PhysicsRayQueryParameters2D +function PhysicsRayQueryParameters2D:create(from, to, collision_mask, exclude) end + +--- @param from Vector2 +function PhysicsRayQueryParameters2D:set_from(from) end + +--- @return Vector2 +function PhysicsRayQueryParameters2D:get_from() end + +--- @param to Vector2 +function PhysicsRayQueryParameters2D:set_to(to) end + +--- @return Vector2 +function PhysicsRayQueryParameters2D:get_to() end + +--- @param collision_mask int +function PhysicsRayQueryParameters2D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsRayQueryParameters2D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsRayQueryParameters2D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsRayQueryParameters2D:get_exclude() end + +--- @param enable bool +function PhysicsRayQueryParameters2D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsRayQueryParameters2D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsRayQueryParameters2D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsRayQueryParameters2D:is_collide_with_areas_enabled() end + +--- @param enable bool +function PhysicsRayQueryParameters2D:set_hit_from_inside(enable) end + +--- @return bool +function PhysicsRayQueryParameters2D:is_hit_from_inside_enabled() end + + +----------------------------------------------------------- +-- PhysicsRayQueryParameters3D +----------------------------------------------------------- + +--- @class PhysicsRayQueryParameters3D: RefCounted, { [string]: any } +--- @field from Vector3 +--- @field to Vector3 +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +--- @field hit_from_inside bool +--- @field hit_back_faces bool +PhysicsRayQueryParameters3D = {} + +--- @return PhysicsRayQueryParameters3D +function PhysicsRayQueryParameters3D:new() end + +--- static +--- @param from Vector3 +--- @param to Vector3 +--- @param collision_mask int? Default: 4294967295 +--- @param exclude Array[RID]? Default: Array[RID]([]) +--- @return PhysicsRayQueryParameters3D +function PhysicsRayQueryParameters3D:create(from, to, collision_mask, exclude) end + +--- @param from Vector3 +function PhysicsRayQueryParameters3D:set_from(from) end + +--- @return Vector3 +function PhysicsRayQueryParameters3D:get_from() end + +--- @param to Vector3 +function PhysicsRayQueryParameters3D:set_to(to) end + +--- @return Vector3 +function PhysicsRayQueryParameters3D:get_to() end + +--- @param collision_mask int +function PhysicsRayQueryParameters3D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsRayQueryParameters3D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsRayQueryParameters3D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsRayQueryParameters3D:get_exclude() end + +--- @param enable bool +function PhysicsRayQueryParameters3D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsRayQueryParameters3D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsRayQueryParameters3D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsRayQueryParameters3D:is_collide_with_areas_enabled() end + +--- @param enable bool +function PhysicsRayQueryParameters3D:set_hit_from_inside(enable) end + +--- @return bool +function PhysicsRayQueryParameters3D:is_hit_from_inside_enabled() end + +--- @param enable bool +function PhysicsRayQueryParameters3D:set_hit_back_faces(enable) end + +--- @return bool +function PhysicsRayQueryParameters3D:is_hit_back_faces_enabled() end + + +----------------------------------------------------------- +-- PhysicsServer2D +----------------------------------------------------------- + +--- @class PhysicsServer2D: Object, { [string]: any } +PhysicsServer2D = {} + +--- @alias PhysicsServer2D.SpaceParameter `PhysicsServer2D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS` | `PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_SEPARATION` | `PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION` | `PhysicsServer2D.SPACE_PARAM_CONTACT_DEFAULT_BIAS` | `PhysicsServer2D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD` | `PhysicsServer2D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD` | `PhysicsServer2D.SPACE_PARAM_BODY_TIME_TO_SLEEP` | `PhysicsServer2D.SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS` | `PhysicsServer2D.SPACE_PARAM_SOLVER_ITERATIONS` +PhysicsServer2D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0 +PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_SEPARATION = 1 +PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2 +PhysicsServer2D.SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3 +PhysicsServer2D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4 +PhysicsServer2D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5 +PhysicsServer2D.SPACE_PARAM_BODY_TIME_TO_SLEEP = 6 +PhysicsServer2D.SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7 +PhysicsServer2D.SPACE_PARAM_SOLVER_ITERATIONS = 8 + +--- @alias PhysicsServer2D.ShapeType `PhysicsServer2D.SHAPE_WORLD_BOUNDARY` | `PhysicsServer2D.SHAPE_SEPARATION_RAY` | `PhysicsServer2D.SHAPE_SEGMENT` | `PhysicsServer2D.SHAPE_CIRCLE` | `PhysicsServer2D.SHAPE_RECTANGLE` | `PhysicsServer2D.SHAPE_CAPSULE` | `PhysicsServer2D.SHAPE_CONVEX_POLYGON` | `PhysicsServer2D.SHAPE_CONCAVE_POLYGON` | `PhysicsServer2D.SHAPE_CUSTOM` +PhysicsServer2D.SHAPE_WORLD_BOUNDARY = 0 +PhysicsServer2D.SHAPE_SEPARATION_RAY = 1 +PhysicsServer2D.SHAPE_SEGMENT = 2 +PhysicsServer2D.SHAPE_CIRCLE = 3 +PhysicsServer2D.SHAPE_RECTANGLE = 4 +PhysicsServer2D.SHAPE_CAPSULE = 5 +PhysicsServer2D.SHAPE_CONVEX_POLYGON = 6 +PhysicsServer2D.SHAPE_CONCAVE_POLYGON = 7 +PhysicsServer2D.SHAPE_CUSTOM = 8 + +--- @alias PhysicsServer2D.AreaParameter `PhysicsServer2D.AREA_PARAM_GRAVITY_OVERRIDE_MODE` | `PhysicsServer2D.AREA_PARAM_GRAVITY` | `PhysicsServer2D.AREA_PARAM_GRAVITY_VECTOR` | `PhysicsServer2D.AREA_PARAM_GRAVITY_IS_POINT` | `PhysicsServer2D.AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE` | `PhysicsServer2D.AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE` | `PhysicsServer2D.AREA_PARAM_LINEAR_DAMP` | `PhysicsServer2D.AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE` | `PhysicsServer2D.AREA_PARAM_ANGULAR_DAMP` | `PhysicsServer2D.AREA_PARAM_PRIORITY` +PhysicsServer2D.AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0 +PhysicsServer2D.AREA_PARAM_GRAVITY = 1 +PhysicsServer2D.AREA_PARAM_GRAVITY_VECTOR = 2 +PhysicsServer2D.AREA_PARAM_GRAVITY_IS_POINT = 3 +PhysicsServer2D.AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4 +PhysicsServer2D.AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5 +PhysicsServer2D.AREA_PARAM_LINEAR_DAMP = 6 +PhysicsServer2D.AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7 +PhysicsServer2D.AREA_PARAM_ANGULAR_DAMP = 8 +PhysicsServer2D.AREA_PARAM_PRIORITY = 9 + +--- @alias PhysicsServer2D.AreaSpaceOverrideMode `PhysicsServer2D.AREA_SPACE_OVERRIDE_DISABLED` | `PhysicsServer2D.AREA_SPACE_OVERRIDE_COMBINE` | `PhysicsServer2D.AREA_SPACE_OVERRIDE_COMBINE_REPLACE` | `PhysicsServer2D.AREA_SPACE_OVERRIDE_REPLACE` | `PhysicsServer2D.AREA_SPACE_OVERRIDE_REPLACE_COMBINE` +PhysicsServer2D.AREA_SPACE_OVERRIDE_DISABLED = 0 +PhysicsServer2D.AREA_SPACE_OVERRIDE_COMBINE = 1 +PhysicsServer2D.AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2 +PhysicsServer2D.AREA_SPACE_OVERRIDE_REPLACE = 3 +PhysicsServer2D.AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4 + +--- @alias PhysicsServer2D.BodyMode `PhysicsServer2D.BODY_MODE_STATIC` | `PhysicsServer2D.BODY_MODE_KINEMATIC` | `PhysicsServer2D.BODY_MODE_RIGID` | `PhysicsServer2D.BODY_MODE_RIGID_LINEAR` +PhysicsServer2D.BODY_MODE_STATIC = 0 +PhysicsServer2D.BODY_MODE_KINEMATIC = 1 +PhysicsServer2D.BODY_MODE_RIGID = 2 +PhysicsServer2D.BODY_MODE_RIGID_LINEAR = 3 + +--- @alias PhysicsServer2D.BodyParameter `PhysicsServer2D.BODY_PARAM_BOUNCE` | `PhysicsServer2D.BODY_PARAM_FRICTION` | `PhysicsServer2D.BODY_PARAM_MASS` | `PhysicsServer2D.BODY_PARAM_INERTIA` | `PhysicsServer2D.BODY_PARAM_CENTER_OF_MASS` | `PhysicsServer2D.BODY_PARAM_GRAVITY_SCALE` | `PhysicsServer2D.BODY_PARAM_LINEAR_DAMP_MODE` | `PhysicsServer2D.BODY_PARAM_ANGULAR_DAMP_MODE` | `PhysicsServer2D.BODY_PARAM_LINEAR_DAMP` | `PhysicsServer2D.BODY_PARAM_ANGULAR_DAMP` | `PhysicsServer2D.BODY_PARAM_MAX` +PhysicsServer2D.BODY_PARAM_BOUNCE = 0 +PhysicsServer2D.BODY_PARAM_FRICTION = 1 +PhysicsServer2D.BODY_PARAM_MASS = 2 +PhysicsServer2D.BODY_PARAM_INERTIA = 3 +PhysicsServer2D.BODY_PARAM_CENTER_OF_MASS = 4 +PhysicsServer2D.BODY_PARAM_GRAVITY_SCALE = 5 +PhysicsServer2D.BODY_PARAM_LINEAR_DAMP_MODE = 6 +PhysicsServer2D.BODY_PARAM_ANGULAR_DAMP_MODE = 7 +PhysicsServer2D.BODY_PARAM_LINEAR_DAMP = 8 +PhysicsServer2D.BODY_PARAM_ANGULAR_DAMP = 9 +PhysicsServer2D.BODY_PARAM_MAX = 10 + +--- @alias PhysicsServer2D.BodyDampMode `PhysicsServer2D.BODY_DAMP_MODE_COMBINE` | `PhysicsServer2D.BODY_DAMP_MODE_REPLACE` +PhysicsServer2D.BODY_DAMP_MODE_COMBINE = 0 +PhysicsServer2D.BODY_DAMP_MODE_REPLACE = 1 + +--- @alias PhysicsServer2D.BodyState `PhysicsServer2D.BODY_STATE_TRANSFORM` | `PhysicsServer2D.BODY_STATE_LINEAR_VELOCITY` | `PhysicsServer2D.BODY_STATE_ANGULAR_VELOCITY` | `PhysicsServer2D.BODY_STATE_SLEEPING` | `PhysicsServer2D.BODY_STATE_CAN_SLEEP` +PhysicsServer2D.BODY_STATE_TRANSFORM = 0 +PhysicsServer2D.BODY_STATE_LINEAR_VELOCITY = 1 +PhysicsServer2D.BODY_STATE_ANGULAR_VELOCITY = 2 +PhysicsServer2D.BODY_STATE_SLEEPING = 3 +PhysicsServer2D.BODY_STATE_CAN_SLEEP = 4 + +--- @alias PhysicsServer2D.JointType `PhysicsServer2D.JOINT_TYPE_PIN` | `PhysicsServer2D.JOINT_TYPE_GROOVE` | `PhysicsServer2D.JOINT_TYPE_DAMPED_SPRING` | `PhysicsServer2D.JOINT_TYPE_MAX` +PhysicsServer2D.JOINT_TYPE_PIN = 0 +PhysicsServer2D.JOINT_TYPE_GROOVE = 1 +PhysicsServer2D.JOINT_TYPE_DAMPED_SPRING = 2 +PhysicsServer2D.JOINT_TYPE_MAX = 3 + +--- @alias PhysicsServer2D.JointParam `PhysicsServer2D.JOINT_PARAM_BIAS` | `PhysicsServer2D.JOINT_PARAM_MAX_BIAS` | `PhysicsServer2D.JOINT_PARAM_MAX_FORCE` +PhysicsServer2D.JOINT_PARAM_BIAS = 0 +PhysicsServer2D.JOINT_PARAM_MAX_BIAS = 1 +PhysicsServer2D.JOINT_PARAM_MAX_FORCE = 2 + +--- @alias PhysicsServer2D.PinJointParam `PhysicsServer2D.PIN_JOINT_SOFTNESS` | `PhysicsServer2D.PIN_JOINT_LIMIT_UPPER` | `PhysicsServer2D.PIN_JOINT_LIMIT_LOWER` | `PhysicsServer2D.PIN_JOINT_MOTOR_TARGET_VELOCITY` +PhysicsServer2D.PIN_JOINT_SOFTNESS = 0 +PhysicsServer2D.PIN_JOINT_LIMIT_UPPER = 1 +PhysicsServer2D.PIN_JOINT_LIMIT_LOWER = 2 +PhysicsServer2D.PIN_JOINT_MOTOR_TARGET_VELOCITY = 3 + +--- @alias PhysicsServer2D.PinJointFlag `PhysicsServer2D.PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED` | `PhysicsServer2D.PIN_JOINT_FLAG_MOTOR_ENABLED` +PhysicsServer2D.PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED = 0 +PhysicsServer2D.PIN_JOINT_FLAG_MOTOR_ENABLED = 1 + +--- @alias PhysicsServer2D.DampedSpringParam `PhysicsServer2D.DAMPED_SPRING_REST_LENGTH` | `PhysicsServer2D.DAMPED_SPRING_STIFFNESS` | `PhysicsServer2D.DAMPED_SPRING_DAMPING` +PhysicsServer2D.DAMPED_SPRING_REST_LENGTH = 0 +PhysicsServer2D.DAMPED_SPRING_STIFFNESS = 1 +PhysicsServer2D.DAMPED_SPRING_DAMPING = 2 + +--- @alias PhysicsServer2D.CCDMode `PhysicsServer2D.CCD_MODE_DISABLED` | `PhysicsServer2D.CCD_MODE_CAST_RAY` | `PhysicsServer2D.CCD_MODE_CAST_SHAPE` +PhysicsServer2D.CCD_MODE_DISABLED = 0 +PhysicsServer2D.CCD_MODE_CAST_RAY = 1 +PhysicsServer2D.CCD_MODE_CAST_SHAPE = 2 + +--- @alias PhysicsServer2D.AreaBodyStatus `PhysicsServer2D.AREA_BODY_ADDED` | `PhysicsServer2D.AREA_BODY_REMOVED` +PhysicsServer2D.AREA_BODY_ADDED = 0 +PhysicsServer2D.AREA_BODY_REMOVED = 1 + +--- @alias PhysicsServer2D.ProcessInfo `PhysicsServer2D.INFO_ACTIVE_OBJECTS` | `PhysicsServer2D.INFO_COLLISION_PAIRS` | `PhysicsServer2D.INFO_ISLAND_COUNT` +PhysicsServer2D.INFO_ACTIVE_OBJECTS = 0 +PhysicsServer2D.INFO_COLLISION_PAIRS = 1 +PhysicsServer2D.INFO_ISLAND_COUNT = 2 + +--- @return RID +function PhysicsServer2D:world_boundary_shape_create() end + +--- @return RID +function PhysicsServer2D:separation_ray_shape_create() end + +--- @return RID +function PhysicsServer2D:segment_shape_create() end + +--- @return RID +function PhysicsServer2D:circle_shape_create() end + +--- @return RID +function PhysicsServer2D:rectangle_shape_create() end + +--- @return RID +function PhysicsServer2D:capsule_shape_create() end + +--- @return RID +function PhysicsServer2D:convex_polygon_shape_create() end + +--- @return RID +function PhysicsServer2D:concave_polygon_shape_create() end + +--- @param shape RID +--- @param data any +function PhysicsServer2D:shape_set_data(shape, data) end + +--- @param shape RID +--- @return PhysicsServer2D.ShapeType +function PhysicsServer2D:shape_get_type(shape) end + +--- @param shape RID +--- @return any +function PhysicsServer2D:shape_get_data(shape) end + +--- @return RID +function PhysicsServer2D:space_create() end + +--- @param space RID +--- @param active bool +function PhysicsServer2D:space_set_active(space, active) end + +--- @param space RID +--- @return bool +function PhysicsServer2D:space_is_active(space) end + +--- @param space RID +--- @param param PhysicsServer2D.SpaceParameter +--- @param value float +function PhysicsServer2D:space_set_param(space, param, value) end + +--- @param space RID +--- @param param PhysicsServer2D.SpaceParameter +--- @return float +function PhysicsServer2D:space_get_param(space, param) end + +--- @param space RID +--- @return PhysicsDirectSpaceState2D +function PhysicsServer2D:space_get_direct_state(space) end + +--- @return RID +function PhysicsServer2D:area_create() end + +--- @param area RID +--- @param space RID +function PhysicsServer2D:area_set_space(area, space) end + +--- @param area RID +--- @return RID +function PhysicsServer2D:area_get_space(area) end + +--- @param area RID +--- @param shape RID +--- @param transform Transform2D? Default: Transform2D(1, 0, 0, 1, 0, 0) +--- @param disabled bool? Default: false +function PhysicsServer2D:area_add_shape(area, shape, transform, disabled) end + +--- @param area RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer2D:area_set_shape(area, shape_idx, shape) end + +--- @param area RID +--- @param shape_idx int +--- @param transform Transform2D +function PhysicsServer2D:area_set_shape_transform(area, shape_idx, transform) end + +--- @param area RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer2D:area_set_shape_disabled(area, shape_idx, disabled) end + +--- @param area RID +--- @return int +function PhysicsServer2D:area_get_shape_count(area) end + +--- @param area RID +--- @param shape_idx int +--- @return RID +function PhysicsServer2D:area_get_shape(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +--- @return Transform2D +function PhysicsServer2D:area_get_shape_transform(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +function PhysicsServer2D:area_remove_shape(area, shape_idx) end + +--- @param area RID +function PhysicsServer2D:area_clear_shapes(area) end + +--- @param area RID +--- @param layer int +function PhysicsServer2D:area_set_collision_layer(area, layer) end + +--- @param area RID +--- @return int +function PhysicsServer2D:area_get_collision_layer(area) end + +--- @param area RID +--- @param mask int +function PhysicsServer2D:area_set_collision_mask(area, mask) end + +--- @param area RID +--- @return int +function PhysicsServer2D:area_get_collision_mask(area) end + +--- @param area RID +--- @param param PhysicsServer2D.AreaParameter +--- @param value any +function PhysicsServer2D:area_set_param(area, param, value) end + +--- @param area RID +--- @param transform Transform2D +function PhysicsServer2D:area_set_transform(area, transform) end + +--- @param area RID +--- @param param PhysicsServer2D.AreaParameter +--- @return any +function PhysicsServer2D:area_get_param(area, param) end + +--- @param area RID +--- @return Transform2D +function PhysicsServer2D:area_get_transform(area) end + +--- @param area RID +--- @param id int +function PhysicsServer2D:area_attach_object_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer2D:area_get_object_instance_id(area) end + +--- @param area RID +--- @param id int +function PhysicsServer2D:area_attach_canvas_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer2D:area_get_canvas_instance_id(area) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer2D:area_set_monitor_callback(area, callback) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer2D:area_set_area_monitor_callback(area, callback) end + +--- @param area RID +--- @param monitorable bool +function PhysicsServer2D:area_set_monitorable(area, monitorable) end + +--- @return RID +function PhysicsServer2D:body_create() end + +--- @param body RID +--- @param space RID +function PhysicsServer2D:body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer2D:body_get_space(body) end + +--- @param body RID +--- @param mode PhysicsServer2D.BodyMode +function PhysicsServer2D:body_set_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer2D.BodyMode +function PhysicsServer2D:body_get_mode(body) end + +--- @param body RID +--- @param shape RID +--- @param transform Transform2D? Default: Transform2D(1, 0, 0, 1, 0, 0) +--- @param disabled bool? Default: false +function PhysicsServer2D:body_add_shape(body, shape, transform, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer2D:body_set_shape(body, shape_idx, shape) end + +--- @param body RID +--- @param shape_idx int +--- @param transform Transform2D +function PhysicsServer2D:body_set_shape_transform(body, shape_idx, transform) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_shape_count(body) end + +--- @param body RID +--- @param shape_idx int +--- @return RID +function PhysicsServer2D:body_get_shape(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +--- @return Transform2D +function PhysicsServer2D:body_get_shape_transform(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +function PhysicsServer2D:body_remove_shape(body, shape_idx) end + +--- @param body RID +function PhysicsServer2D:body_clear_shapes(body) end + +--- @param body RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer2D:body_set_shape_disabled(body, shape_idx, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param enable bool +--- @param margin float +function PhysicsServer2D:body_set_shape_as_one_way_collision(body, shape_idx, enable, margin) end + +--- @param body RID +--- @param id int +function PhysicsServer2D:body_attach_object_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_object_instance_id(body) end + +--- @param body RID +--- @param id int +function PhysicsServer2D:body_attach_canvas_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_canvas_instance_id(body) end + +--- @param body RID +--- @param mode PhysicsServer2D.CCDMode +function PhysicsServer2D:body_set_continuous_collision_detection_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer2D.CCDMode +function PhysicsServer2D:body_get_continuous_collision_detection_mode(body) end + +--- @param body RID +--- @param layer int +function PhysicsServer2D:body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer2D:body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_collision_mask(body) end + +--- @param body RID +--- @param priority float +function PhysicsServer2D:body_set_collision_priority(body, priority) end + +--- @param body RID +--- @return float +function PhysicsServer2D:body_get_collision_priority(body) end + +--- @param body RID +--- @param param PhysicsServer2D.BodyParameter +--- @param value any +function PhysicsServer2D:body_set_param(body, param, value) end + +--- @param body RID +--- @param param PhysicsServer2D.BodyParameter +--- @return any +function PhysicsServer2D:body_get_param(body, param) end + +--- @param body RID +function PhysicsServer2D:body_reset_mass_properties(body) end + +--- @param body RID +--- @param state PhysicsServer2D.BodyState +--- @param value any +function PhysicsServer2D:body_set_state(body, state, value) end + +--- @param body RID +--- @param state PhysicsServer2D.BodyState +--- @return any +function PhysicsServer2D:body_get_state(body, state) end + +--- @param body RID +--- @param impulse Vector2 +function PhysicsServer2D:body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param impulse float +function PhysicsServer2D:body_apply_torque_impulse(body, impulse) end + +--- @param body RID +--- @param impulse Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsServer2D:body_apply_impulse(body, impulse, position) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2D:body_apply_central_force(body, force) end + +--- @param body RID +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsServer2D:body_apply_force(body, force, position) end + +--- @param body RID +--- @param torque float +function PhysicsServer2D:body_apply_torque(body, torque) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2D:body_add_constant_central_force(body, force) end + +--- @param body RID +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function PhysicsServer2D:body_add_constant_force(body, force, position) end + +--- @param body RID +--- @param torque float +function PhysicsServer2D:body_add_constant_torque(body, torque) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2D:body_set_constant_force(body, force) end + +--- @param body RID +--- @return Vector2 +function PhysicsServer2D:body_get_constant_force(body) end + +--- @param body RID +--- @param torque float +function PhysicsServer2D:body_set_constant_torque(body, torque) end + +--- @param body RID +--- @return float +function PhysicsServer2D:body_get_constant_torque(body) end + +--- @param body RID +--- @param axis_velocity Vector2 +function PhysicsServer2D:body_set_axis_velocity(body, axis_velocity) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer2D:body_add_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer2D:body_remove_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param amount int +function PhysicsServer2D:body_set_max_contacts_reported(body, amount) end + +--- @param body RID +--- @return int +function PhysicsServer2D:body_get_max_contacts_reported(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer2D:body_set_omit_force_integration(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer2D:body_is_omitting_force_integration(body) end + +--- @param body RID +--- @param callable Callable +function PhysicsServer2D:body_set_state_sync_callback(body, callable) end + +--- @param body RID +--- @param callable Callable +--- @param userdata any? Default: null +function PhysicsServer2D:body_set_force_integration_callback(body, callable, userdata) end + +--- @param body RID +--- @param parameters PhysicsTestMotionParameters2D +--- @param result PhysicsTestMotionResult2D? Default: null +--- @return bool +function PhysicsServer2D:body_test_motion(body, parameters, result) end + +--- @param body RID +--- @return PhysicsDirectBodyState2D +function PhysicsServer2D:body_get_direct_state(body) end + +--- @return RID +function PhysicsServer2D:joint_create() end + +--- @param joint RID +function PhysicsServer2D:joint_clear(joint) end + +--- @param joint RID +--- @param param PhysicsServer2D.JointParam +--- @param value float +function PhysicsServer2D:joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.JointParam +--- @return float +function PhysicsServer2D:joint_get_param(joint, param) end + +--- @param joint RID +--- @param disable bool +function PhysicsServer2D:joint_disable_collisions_between_bodies(joint, disable) end + +--- @param joint RID +--- @return bool +function PhysicsServer2D:joint_is_disabled_collisions_between_bodies(joint) end + +--- @param joint RID +--- @param anchor Vector2 +--- @param body_a RID +--- @param body_b RID? Default: RID() +function PhysicsServer2D:joint_make_pin(joint, anchor, body_a, body_b) end + +--- @param joint RID +--- @param groove1_a Vector2 +--- @param groove2_a Vector2 +--- @param anchor_b Vector2 +--- @param body_a RID? Default: RID() +--- @param body_b RID? Default: RID() +function PhysicsServer2D:joint_make_groove(joint, groove1_a, groove2_a, anchor_b, body_a, body_b) end + +--- @param joint RID +--- @param anchor_a Vector2 +--- @param anchor_b Vector2 +--- @param body_a RID +--- @param body_b RID? Default: RID() +function PhysicsServer2D:joint_make_damped_spring(joint, anchor_a, anchor_b, body_a, body_b) end + +--- @param joint RID +--- @param flag PhysicsServer2D.PinJointFlag +--- @param enabled bool +function PhysicsServer2D:pin_joint_set_flag(joint, flag, enabled) end + +--- @param joint RID +--- @param flag PhysicsServer2D.PinJointFlag +--- @return bool +function PhysicsServer2D:pin_joint_get_flag(joint, flag) end + +--- @param joint RID +--- @param param PhysicsServer2D.PinJointParam +--- @param value float +function PhysicsServer2D:pin_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.PinJointParam +--- @return float +function PhysicsServer2D:pin_joint_get_param(joint, param) end + +--- @param joint RID +--- @param param PhysicsServer2D.DampedSpringParam +--- @param value float +function PhysicsServer2D:damped_spring_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.DampedSpringParam +--- @return float +function PhysicsServer2D:damped_spring_joint_get_param(joint, param) end + +--- @param joint RID +--- @return PhysicsServer2D.JointType +function PhysicsServer2D:joint_get_type(joint) end + +--- @param rid RID +function PhysicsServer2D:free_rid(rid) end + +--- @param active bool +function PhysicsServer2D:set_active(active) end + +--- @param process_info PhysicsServer2D.ProcessInfo +--- @return int +function PhysicsServer2D:get_process_info(process_info) end + + +----------------------------------------------------------- +-- PhysicsServer2DExtension +----------------------------------------------------------- + +--- @class PhysicsServer2DExtension: PhysicsServer2D, { [string]: any } +PhysicsServer2DExtension = {} + +--- @return PhysicsServer2DExtension +function PhysicsServer2DExtension:new() end + +--- @return RID +function PhysicsServer2DExtension:_world_boundary_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_separation_ray_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_segment_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_circle_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_rectangle_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_capsule_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_convex_polygon_shape_create() end + +--- @return RID +function PhysicsServer2DExtension:_concave_polygon_shape_create() end + +--- @param shape RID +--- @param data any +function PhysicsServer2DExtension:_shape_set_data(shape, data) end + +--- @param shape RID +--- @param bias float +function PhysicsServer2DExtension:_shape_set_custom_solver_bias(shape, bias) end + +--- @param shape RID +--- @return PhysicsServer2D.ShapeType +function PhysicsServer2DExtension:_shape_get_type(shape) end + +--- @param shape RID +--- @return any +function PhysicsServer2DExtension:_shape_get_data(shape) end + +--- @param shape RID +--- @return float +function PhysicsServer2DExtension:_shape_get_custom_solver_bias(shape) end + +--- @param shape_A RID +--- @param xform_A Transform2D +--- @param motion_A Vector2 +--- @param shape_B RID +--- @param xform_B Transform2D +--- @param motion_B Vector2 +--- @param results void* +--- @param result_max int +--- @param result_count int32_t* +--- @return bool +function PhysicsServer2DExtension:_shape_collide(shape_A, xform_A, motion_A, shape_B, xform_B, motion_B, results, result_max, result_count) end + +--- @return RID +function PhysicsServer2DExtension:_space_create() end + +--- @param space RID +--- @param active bool +function PhysicsServer2DExtension:_space_set_active(space, active) end + +--- @param space RID +--- @return bool +function PhysicsServer2DExtension:_space_is_active(space) end + +--- @param space RID +--- @param param PhysicsServer2D.SpaceParameter +--- @param value float +function PhysicsServer2DExtension:_space_set_param(space, param, value) end + +--- @param space RID +--- @param param PhysicsServer2D.SpaceParameter +--- @return float +function PhysicsServer2DExtension:_space_get_param(space, param) end + +--- @param space RID +--- @return PhysicsDirectSpaceState2D +function PhysicsServer2DExtension:_space_get_direct_state(space) end + +--- @param space RID +--- @param max_contacts int +function PhysicsServer2DExtension:_space_set_debug_contacts(space, max_contacts) end + +--- @param space RID +--- @return PackedVector2Array +function PhysicsServer2DExtension:_space_get_contacts(space) end + +--- @param space RID +--- @return int +function PhysicsServer2DExtension:_space_get_contact_count(space) end + +--- @return RID +function PhysicsServer2DExtension:_area_create() end + +--- @param area RID +--- @param space RID +function PhysicsServer2DExtension:_area_set_space(area, space) end + +--- @param area RID +--- @return RID +function PhysicsServer2DExtension:_area_get_space(area) end + +--- @param area RID +--- @param shape RID +--- @param transform Transform2D +--- @param disabled bool +function PhysicsServer2DExtension:_area_add_shape(area, shape, transform, disabled) end + +--- @param area RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer2DExtension:_area_set_shape(area, shape_idx, shape) end + +--- @param area RID +--- @param shape_idx int +--- @param transform Transform2D +function PhysicsServer2DExtension:_area_set_shape_transform(area, shape_idx, transform) end + +--- @param area RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer2DExtension:_area_set_shape_disabled(area, shape_idx, disabled) end + +--- @param area RID +--- @return int +function PhysicsServer2DExtension:_area_get_shape_count(area) end + +--- @param area RID +--- @param shape_idx int +--- @return RID +function PhysicsServer2DExtension:_area_get_shape(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +--- @return Transform2D +function PhysicsServer2DExtension:_area_get_shape_transform(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +function PhysicsServer2DExtension:_area_remove_shape(area, shape_idx) end + +--- @param area RID +function PhysicsServer2DExtension:_area_clear_shapes(area) end + +--- @param area RID +--- @param id int +function PhysicsServer2DExtension:_area_attach_object_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer2DExtension:_area_get_object_instance_id(area) end + +--- @param area RID +--- @param id int +function PhysicsServer2DExtension:_area_attach_canvas_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer2DExtension:_area_get_canvas_instance_id(area) end + +--- @param area RID +--- @param param PhysicsServer2D.AreaParameter +--- @param value any +function PhysicsServer2DExtension:_area_set_param(area, param, value) end + +--- @param area RID +--- @param transform Transform2D +function PhysicsServer2DExtension:_area_set_transform(area, transform) end + +--- @param area RID +--- @param param PhysicsServer2D.AreaParameter +--- @return any +function PhysicsServer2DExtension:_area_get_param(area, param) end + +--- @param area RID +--- @return Transform2D +function PhysicsServer2DExtension:_area_get_transform(area) end + +--- @param area RID +--- @param layer int +function PhysicsServer2DExtension:_area_set_collision_layer(area, layer) end + +--- @param area RID +--- @return int +function PhysicsServer2DExtension:_area_get_collision_layer(area) end + +--- @param area RID +--- @param mask int +function PhysicsServer2DExtension:_area_set_collision_mask(area, mask) end + +--- @param area RID +--- @return int +function PhysicsServer2DExtension:_area_get_collision_mask(area) end + +--- @param area RID +--- @param monitorable bool +function PhysicsServer2DExtension:_area_set_monitorable(area, monitorable) end + +--- @param area RID +--- @param pickable bool +function PhysicsServer2DExtension:_area_set_pickable(area, pickable) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer2DExtension:_area_set_monitor_callback(area, callback) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer2DExtension:_area_set_area_monitor_callback(area, callback) end + +--- @return RID +function PhysicsServer2DExtension:_body_create() end + +--- @param body RID +--- @param space RID +function PhysicsServer2DExtension:_body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer2DExtension:_body_get_space(body) end + +--- @param body RID +--- @param mode PhysicsServer2D.BodyMode +function PhysicsServer2DExtension:_body_set_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer2D.BodyMode +function PhysicsServer2DExtension:_body_get_mode(body) end + +--- @param body RID +--- @param shape RID +--- @param transform Transform2D +--- @param disabled bool +function PhysicsServer2DExtension:_body_add_shape(body, shape, transform, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer2DExtension:_body_set_shape(body, shape_idx, shape) end + +--- @param body RID +--- @param shape_idx int +--- @param transform Transform2D +function PhysicsServer2DExtension:_body_set_shape_transform(body, shape_idx, transform) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_shape_count(body) end + +--- @param body RID +--- @param shape_idx int +--- @return RID +function PhysicsServer2DExtension:_body_get_shape(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +--- @return Transform2D +function PhysicsServer2DExtension:_body_get_shape_transform(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer2DExtension:_body_set_shape_disabled(body, shape_idx, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param enable bool +--- @param margin float +function PhysicsServer2DExtension:_body_set_shape_as_one_way_collision(body, shape_idx, enable, margin) end + +--- @param body RID +--- @param shape_idx int +function PhysicsServer2DExtension:_body_remove_shape(body, shape_idx) end + +--- @param body RID +function PhysicsServer2DExtension:_body_clear_shapes(body) end + +--- @param body RID +--- @param id int +function PhysicsServer2DExtension:_body_attach_object_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_object_instance_id(body) end + +--- @param body RID +--- @param id int +function PhysicsServer2DExtension:_body_attach_canvas_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_canvas_instance_id(body) end + +--- @param body RID +--- @param mode PhysicsServer2D.CCDMode +function PhysicsServer2DExtension:_body_set_continuous_collision_detection_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer2D.CCDMode +function PhysicsServer2DExtension:_body_get_continuous_collision_detection_mode(body) end + +--- @param body RID +--- @param layer int +function PhysicsServer2DExtension:_body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer2DExtension:_body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_collision_mask(body) end + +--- @param body RID +--- @param priority float +function PhysicsServer2DExtension:_body_set_collision_priority(body, priority) end + +--- @param body RID +--- @return float +function PhysicsServer2DExtension:_body_get_collision_priority(body) end + +--- @param body RID +--- @param param PhysicsServer2D.BodyParameter +--- @param value any +function PhysicsServer2DExtension:_body_set_param(body, param, value) end + +--- @param body RID +--- @param param PhysicsServer2D.BodyParameter +--- @return any +function PhysicsServer2DExtension:_body_get_param(body, param) end + +--- @param body RID +function PhysicsServer2DExtension:_body_reset_mass_properties(body) end + +--- @param body RID +--- @param state PhysicsServer2D.BodyState +--- @param value any +function PhysicsServer2DExtension:_body_set_state(body, state, value) end + +--- @param body RID +--- @param state PhysicsServer2D.BodyState +--- @return any +function PhysicsServer2DExtension:_body_get_state(body, state) end + +--- @param body RID +--- @param impulse Vector2 +function PhysicsServer2DExtension:_body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param impulse float +function PhysicsServer2DExtension:_body_apply_torque_impulse(body, impulse) end + +--- @param body RID +--- @param impulse Vector2 +--- @param position Vector2 +function PhysicsServer2DExtension:_body_apply_impulse(body, impulse, position) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2DExtension:_body_apply_central_force(body, force) end + +--- @param body RID +--- @param force Vector2 +--- @param position Vector2 +function PhysicsServer2DExtension:_body_apply_force(body, force, position) end + +--- @param body RID +--- @param torque float +function PhysicsServer2DExtension:_body_apply_torque(body, torque) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2DExtension:_body_add_constant_central_force(body, force) end + +--- @param body RID +--- @param force Vector2 +--- @param position Vector2 +function PhysicsServer2DExtension:_body_add_constant_force(body, force, position) end + +--- @param body RID +--- @param torque float +function PhysicsServer2DExtension:_body_add_constant_torque(body, torque) end + +--- @param body RID +--- @param force Vector2 +function PhysicsServer2DExtension:_body_set_constant_force(body, force) end + +--- @param body RID +--- @return Vector2 +function PhysicsServer2DExtension:_body_get_constant_force(body) end + +--- @param body RID +--- @param torque float +function PhysicsServer2DExtension:_body_set_constant_torque(body, torque) end + +--- @param body RID +--- @return float +function PhysicsServer2DExtension:_body_get_constant_torque(body) end + +--- @param body RID +--- @param axis_velocity Vector2 +function PhysicsServer2DExtension:_body_set_axis_velocity(body, axis_velocity) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer2DExtension:_body_add_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer2DExtension:_body_remove_collision_exception(body, excepted_body) end + +--- @param body RID +--- @return Array[RID] +function PhysicsServer2DExtension:_body_get_collision_exceptions(body) end + +--- @param body RID +--- @param amount int +function PhysicsServer2DExtension:_body_set_max_contacts_reported(body, amount) end + +--- @param body RID +--- @return int +function PhysicsServer2DExtension:_body_get_max_contacts_reported(body) end + +--- @param body RID +--- @param threshold float +function PhysicsServer2DExtension:_body_set_contacts_reported_depth_threshold(body, threshold) end + +--- @param body RID +--- @return float +function PhysicsServer2DExtension:_body_get_contacts_reported_depth_threshold(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer2DExtension:_body_set_omit_force_integration(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer2DExtension:_body_is_omitting_force_integration(body) end + +--- @param body RID +--- @param callable Callable +function PhysicsServer2DExtension:_body_set_state_sync_callback(body, callable) end + +--- @param body RID +--- @param callable Callable +--- @param userdata any +function PhysicsServer2DExtension:_body_set_force_integration_callback(body, callable, userdata) end + +--- @param body RID +--- @param body_shape int +--- @param shape RID +--- @param shape_xform Transform2D +--- @param motion Vector2 +--- @param results void* +--- @param result_max int +--- @param result_count int32_t* +--- @return bool +function PhysicsServer2DExtension:_body_collide_shape(body, body_shape, shape, shape_xform, motion, results, result_max, result_count) end + +--- @param body RID +--- @param pickable bool +function PhysicsServer2DExtension:_body_set_pickable(body, pickable) end + +--- @param body RID +--- @return PhysicsDirectBodyState2D +function PhysicsServer2DExtension:_body_get_direct_state(body) end + +--- @param body RID +--- @param from Transform2D +--- @param motion Vector2 +--- @param margin float +--- @param collide_separation_ray bool +--- @param recovery_as_collision bool +--- @param result PhysicsServer2DExtensionMotionResult* +--- @return bool +function PhysicsServer2DExtension:_body_test_motion(body, from, motion, margin, collide_separation_ray, recovery_as_collision, result) end + +--- @return RID +function PhysicsServer2DExtension:_joint_create() end + +--- @param joint RID +function PhysicsServer2DExtension:_joint_clear(joint) end + +--- @param joint RID +--- @param param PhysicsServer2D.JointParam +--- @param value float +function PhysicsServer2DExtension:_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.JointParam +--- @return float +function PhysicsServer2DExtension:_joint_get_param(joint, param) end + +--- @param joint RID +--- @param disable bool +function PhysicsServer2DExtension:_joint_disable_collisions_between_bodies(joint, disable) end + +--- @param joint RID +--- @return bool +function PhysicsServer2DExtension:_joint_is_disabled_collisions_between_bodies(joint) end + +--- @param joint RID +--- @param anchor Vector2 +--- @param body_a RID +--- @param body_b RID +function PhysicsServer2DExtension:_joint_make_pin(joint, anchor, body_a, body_b) end + +--- @param joint RID +--- @param a_groove1 Vector2 +--- @param a_groove2 Vector2 +--- @param b_anchor Vector2 +--- @param body_a RID +--- @param body_b RID +function PhysicsServer2DExtension:_joint_make_groove(joint, a_groove1, a_groove2, b_anchor, body_a, body_b) end + +--- @param joint RID +--- @param anchor_a Vector2 +--- @param anchor_b Vector2 +--- @param body_a RID +--- @param body_b RID +function PhysicsServer2DExtension:_joint_make_damped_spring(joint, anchor_a, anchor_b, body_a, body_b) end + +--- @param joint RID +--- @param flag PhysicsServer2D.PinJointFlag +--- @param enabled bool +function PhysicsServer2DExtension:_pin_joint_set_flag(joint, flag, enabled) end + +--- @param joint RID +--- @param flag PhysicsServer2D.PinJointFlag +--- @return bool +function PhysicsServer2DExtension:_pin_joint_get_flag(joint, flag) end + +--- @param joint RID +--- @param param PhysicsServer2D.PinJointParam +--- @param value float +function PhysicsServer2DExtension:_pin_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.PinJointParam +--- @return float +function PhysicsServer2DExtension:_pin_joint_get_param(joint, param) end + +--- @param joint RID +--- @param param PhysicsServer2D.DampedSpringParam +--- @param value float +function PhysicsServer2DExtension:_damped_spring_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer2D.DampedSpringParam +--- @return float +function PhysicsServer2DExtension:_damped_spring_joint_get_param(joint, param) end + +--- @param joint RID +--- @return PhysicsServer2D.JointType +function PhysicsServer2DExtension:_joint_get_type(joint) end + +--- @param rid RID +function PhysicsServer2DExtension:_free_rid(rid) end + +--- @param active bool +function PhysicsServer2DExtension:_set_active(active) end + +function PhysicsServer2DExtension:_init() end + +--- @param step float +function PhysicsServer2DExtension:_step(step) end + +function PhysicsServer2DExtension:_sync() end + +function PhysicsServer2DExtension:_flush_queries() end + +function PhysicsServer2DExtension:_end_sync() end + +function PhysicsServer2DExtension:_finish() end + +--- @return bool +function PhysicsServer2DExtension:_is_flushing_queries() end + +--- @param process_info PhysicsServer2D.ProcessInfo +--- @return int +function PhysicsServer2DExtension:_get_process_info(process_info) end + +--- @param body RID +--- @return bool +function PhysicsServer2DExtension:body_test_motion_is_excluding_body(body) end + +--- @param object int +--- @return bool +function PhysicsServer2DExtension:body_test_motion_is_excluding_object(object) end + + +----------------------------------------------------------- +-- PhysicsServer2DManager +----------------------------------------------------------- + +--- @class PhysicsServer2DManager: Object, { [string]: any } +PhysicsServer2DManager = {} + +--- @param name String +--- @param create_callback Callable +function PhysicsServer2DManager:register_server(name, create_callback) end + +--- @param name String +--- @param priority int +function PhysicsServer2DManager:set_default_server(name, priority) end + + +----------------------------------------------------------- +-- PhysicsServer3D +----------------------------------------------------------- + +--- @class PhysicsServer3D: Object, { [string]: any } +PhysicsServer3D = {} + +--- @alias PhysicsServer3D.JointType `PhysicsServer3D.JOINT_TYPE_PIN` | `PhysicsServer3D.JOINT_TYPE_HINGE` | `PhysicsServer3D.JOINT_TYPE_SLIDER` | `PhysicsServer3D.JOINT_TYPE_CONE_TWIST` | `PhysicsServer3D.JOINT_TYPE_6DOF` | `PhysicsServer3D.JOINT_TYPE_MAX` +PhysicsServer3D.JOINT_TYPE_PIN = 0 +PhysicsServer3D.JOINT_TYPE_HINGE = 1 +PhysicsServer3D.JOINT_TYPE_SLIDER = 2 +PhysicsServer3D.JOINT_TYPE_CONE_TWIST = 3 +PhysicsServer3D.JOINT_TYPE_6DOF = 4 +PhysicsServer3D.JOINT_TYPE_MAX = 5 + +--- @alias PhysicsServer3D.PinJointParam `PhysicsServer3D.PIN_JOINT_BIAS` | `PhysicsServer3D.PIN_JOINT_DAMPING` | `PhysicsServer3D.PIN_JOINT_IMPULSE_CLAMP` +PhysicsServer3D.PIN_JOINT_BIAS = 0 +PhysicsServer3D.PIN_JOINT_DAMPING = 1 +PhysicsServer3D.PIN_JOINT_IMPULSE_CLAMP = 2 + +--- @alias PhysicsServer3D.HingeJointParam `PhysicsServer3D.HINGE_JOINT_BIAS` | `PhysicsServer3D.HINGE_JOINT_LIMIT_UPPER` | `PhysicsServer3D.HINGE_JOINT_LIMIT_LOWER` | `PhysicsServer3D.HINGE_JOINT_LIMIT_BIAS` | `PhysicsServer3D.HINGE_JOINT_LIMIT_SOFTNESS` | `PhysicsServer3D.HINGE_JOINT_LIMIT_RELAXATION` | `PhysicsServer3D.HINGE_JOINT_MOTOR_TARGET_VELOCITY` | `PhysicsServer3D.HINGE_JOINT_MOTOR_MAX_IMPULSE` +PhysicsServer3D.HINGE_JOINT_BIAS = 0 +PhysicsServer3D.HINGE_JOINT_LIMIT_UPPER = 1 +PhysicsServer3D.HINGE_JOINT_LIMIT_LOWER = 2 +PhysicsServer3D.HINGE_JOINT_LIMIT_BIAS = 3 +PhysicsServer3D.HINGE_JOINT_LIMIT_SOFTNESS = 4 +PhysicsServer3D.HINGE_JOINT_LIMIT_RELAXATION = 5 +PhysicsServer3D.HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6 +PhysicsServer3D.HINGE_JOINT_MOTOR_MAX_IMPULSE = 7 + +--- @alias PhysicsServer3D.HingeJointFlag `PhysicsServer3D.HINGE_JOINT_FLAG_USE_LIMIT` | `PhysicsServer3D.HINGE_JOINT_FLAG_ENABLE_MOTOR` +PhysicsServer3D.HINGE_JOINT_FLAG_USE_LIMIT = 0 +PhysicsServer3D.HINGE_JOINT_FLAG_ENABLE_MOTOR = 1 + +--- @alias PhysicsServer3D.SliderJointParam `PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_UPPER` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_LOWER` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_UPPER` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_LOWER` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION` | `PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING` | `PhysicsServer3D.SLIDER_JOINT_MAX` +PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0 +PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1 +PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2 +PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3 +PhysicsServer3D.SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4 +PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5 +PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6 +PhysicsServer3D.SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7 +PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8 +PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9 +PhysicsServer3D.SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20 +PhysicsServer3D.SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21 +PhysicsServer3D.SLIDER_JOINT_MAX = 22 + +--- @alias PhysicsServer3D.ConeTwistJointParam `PhysicsServer3D.CONE_TWIST_JOINT_SWING_SPAN` | `PhysicsServer3D.CONE_TWIST_JOINT_TWIST_SPAN` | `PhysicsServer3D.CONE_TWIST_JOINT_BIAS` | `PhysicsServer3D.CONE_TWIST_JOINT_SOFTNESS` | `PhysicsServer3D.CONE_TWIST_JOINT_RELAXATION` +PhysicsServer3D.CONE_TWIST_JOINT_SWING_SPAN = 0 +PhysicsServer3D.CONE_TWIST_JOINT_TWIST_SPAN = 1 +PhysicsServer3D.CONE_TWIST_JOINT_BIAS = 2 +PhysicsServer3D.CONE_TWIST_JOINT_SOFTNESS = 3 +PhysicsServer3D.CONE_TWIST_JOINT_RELAXATION = 4 + +--- @alias PhysicsServer3D.G6DOFJointAxisParam `PhysicsServer3D.G6DOF_JOINT_LINEAR_LOWER_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_UPPER_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_RESTITUTION` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_DAMPING` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_STIFFNESS` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_DAMPING` | `PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_LOWER_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_UPPER_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_DAMPING` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_RESTITUTION` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_FORCE_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_ERP` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_DAMPING` | `PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT` | `PhysicsServer3D.G6DOF_JOINT_MAX` +PhysicsServer3D.G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0 +PhysicsServer3D.G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1 +PhysicsServer3D.G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2 +PhysicsServer3D.G6DOF_JOINT_LINEAR_RESTITUTION = 3 +PhysicsServer3D.G6DOF_JOINT_LINEAR_DAMPING = 4 +PhysicsServer3D.G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5 +PhysicsServer3D.G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6 +PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_STIFFNESS = 7 +PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_DAMPING = 8 +PhysicsServer3D.G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT = 9 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_DAMPING = 13 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_RESTITUTION = 14 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_ERP = 16 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS = 19 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_DAMPING = 20 +PhysicsServer3D.G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT = 21 +PhysicsServer3D.G6DOF_JOINT_MAX = 22 + +--- @alias PhysicsServer3D.G6DOFJointAxisFlag `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT` | `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING` | `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING` | `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_MOTOR` | `PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR` | `PhysicsServer3D.G6DOF_JOINT_FLAG_MAX` +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0 +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1 +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING = 2 +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING = 3 +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4 +PhysicsServer3D.G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5 +PhysicsServer3D.G6DOF_JOINT_FLAG_MAX = 6 + +--- @alias PhysicsServer3D.ShapeType `PhysicsServer3D.SHAPE_WORLD_BOUNDARY` | `PhysicsServer3D.SHAPE_SEPARATION_RAY` | `PhysicsServer3D.SHAPE_SPHERE` | `PhysicsServer3D.SHAPE_BOX` | `PhysicsServer3D.SHAPE_CAPSULE` | `PhysicsServer3D.SHAPE_CYLINDER` | `PhysicsServer3D.SHAPE_CONVEX_POLYGON` | `PhysicsServer3D.SHAPE_CONCAVE_POLYGON` | `PhysicsServer3D.SHAPE_HEIGHTMAP` | `PhysicsServer3D.SHAPE_SOFT_BODY` | `PhysicsServer3D.SHAPE_CUSTOM` +PhysicsServer3D.SHAPE_WORLD_BOUNDARY = 0 +PhysicsServer3D.SHAPE_SEPARATION_RAY = 1 +PhysicsServer3D.SHAPE_SPHERE = 2 +PhysicsServer3D.SHAPE_BOX = 3 +PhysicsServer3D.SHAPE_CAPSULE = 4 +PhysicsServer3D.SHAPE_CYLINDER = 5 +PhysicsServer3D.SHAPE_CONVEX_POLYGON = 6 +PhysicsServer3D.SHAPE_CONCAVE_POLYGON = 7 +PhysicsServer3D.SHAPE_HEIGHTMAP = 8 +PhysicsServer3D.SHAPE_SOFT_BODY = 9 +PhysicsServer3D.SHAPE_CUSTOM = 10 + +--- @alias PhysicsServer3D.AreaParameter `PhysicsServer3D.AREA_PARAM_GRAVITY_OVERRIDE_MODE` | `PhysicsServer3D.AREA_PARAM_GRAVITY` | `PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR` | `PhysicsServer3D.AREA_PARAM_GRAVITY_IS_POINT` | `PhysicsServer3D.AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE` | `PhysicsServer3D.AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE` | `PhysicsServer3D.AREA_PARAM_LINEAR_DAMP` | `PhysicsServer3D.AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE` | `PhysicsServer3D.AREA_PARAM_ANGULAR_DAMP` | `PhysicsServer3D.AREA_PARAM_PRIORITY` | `PhysicsServer3D.AREA_PARAM_WIND_FORCE_MAGNITUDE` | `PhysicsServer3D.AREA_PARAM_WIND_SOURCE` | `PhysicsServer3D.AREA_PARAM_WIND_DIRECTION` | `PhysicsServer3D.AREA_PARAM_WIND_ATTENUATION_FACTOR` +PhysicsServer3D.AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0 +PhysicsServer3D.AREA_PARAM_GRAVITY = 1 +PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR = 2 +PhysicsServer3D.AREA_PARAM_GRAVITY_IS_POINT = 3 +PhysicsServer3D.AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4 +PhysicsServer3D.AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5 +PhysicsServer3D.AREA_PARAM_LINEAR_DAMP = 6 +PhysicsServer3D.AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7 +PhysicsServer3D.AREA_PARAM_ANGULAR_DAMP = 8 +PhysicsServer3D.AREA_PARAM_PRIORITY = 9 +PhysicsServer3D.AREA_PARAM_WIND_FORCE_MAGNITUDE = 10 +PhysicsServer3D.AREA_PARAM_WIND_SOURCE = 11 +PhysicsServer3D.AREA_PARAM_WIND_DIRECTION = 12 +PhysicsServer3D.AREA_PARAM_WIND_ATTENUATION_FACTOR = 13 + +--- @alias PhysicsServer3D.AreaSpaceOverrideMode `PhysicsServer3D.AREA_SPACE_OVERRIDE_DISABLED` | `PhysicsServer3D.AREA_SPACE_OVERRIDE_COMBINE` | `PhysicsServer3D.AREA_SPACE_OVERRIDE_COMBINE_REPLACE` | `PhysicsServer3D.AREA_SPACE_OVERRIDE_REPLACE` | `PhysicsServer3D.AREA_SPACE_OVERRIDE_REPLACE_COMBINE` +PhysicsServer3D.AREA_SPACE_OVERRIDE_DISABLED = 0 +PhysicsServer3D.AREA_SPACE_OVERRIDE_COMBINE = 1 +PhysicsServer3D.AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2 +PhysicsServer3D.AREA_SPACE_OVERRIDE_REPLACE = 3 +PhysicsServer3D.AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4 + +--- @alias PhysicsServer3D.BodyMode `PhysicsServer3D.BODY_MODE_STATIC` | `PhysicsServer3D.BODY_MODE_KINEMATIC` | `PhysicsServer3D.BODY_MODE_RIGID` | `PhysicsServer3D.BODY_MODE_RIGID_LINEAR` +PhysicsServer3D.BODY_MODE_STATIC = 0 +PhysicsServer3D.BODY_MODE_KINEMATIC = 1 +PhysicsServer3D.BODY_MODE_RIGID = 2 +PhysicsServer3D.BODY_MODE_RIGID_LINEAR = 3 + +--- @alias PhysicsServer3D.BodyParameter `PhysicsServer3D.BODY_PARAM_BOUNCE` | `PhysicsServer3D.BODY_PARAM_FRICTION` | `PhysicsServer3D.BODY_PARAM_MASS` | `PhysicsServer3D.BODY_PARAM_INERTIA` | `PhysicsServer3D.BODY_PARAM_CENTER_OF_MASS` | `PhysicsServer3D.BODY_PARAM_GRAVITY_SCALE` | `PhysicsServer3D.BODY_PARAM_LINEAR_DAMP_MODE` | `PhysicsServer3D.BODY_PARAM_ANGULAR_DAMP_MODE` | `PhysicsServer3D.BODY_PARAM_LINEAR_DAMP` | `PhysicsServer3D.BODY_PARAM_ANGULAR_DAMP` | `PhysicsServer3D.BODY_PARAM_MAX` +PhysicsServer3D.BODY_PARAM_BOUNCE = 0 +PhysicsServer3D.BODY_PARAM_FRICTION = 1 +PhysicsServer3D.BODY_PARAM_MASS = 2 +PhysicsServer3D.BODY_PARAM_INERTIA = 3 +PhysicsServer3D.BODY_PARAM_CENTER_OF_MASS = 4 +PhysicsServer3D.BODY_PARAM_GRAVITY_SCALE = 5 +PhysicsServer3D.BODY_PARAM_LINEAR_DAMP_MODE = 6 +PhysicsServer3D.BODY_PARAM_ANGULAR_DAMP_MODE = 7 +PhysicsServer3D.BODY_PARAM_LINEAR_DAMP = 8 +PhysicsServer3D.BODY_PARAM_ANGULAR_DAMP = 9 +PhysicsServer3D.BODY_PARAM_MAX = 10 + +--- @alias PhysicsServer3D.BodyDampMode `PhysicsServer3D.BODY_DAMP_MODE_COMBINE` | `PhysicsServer3D.BODY_DAMP_MODE_REPLACE` +PhysicsServer3D.BODY_DAMP_MODE_COMBINE = 0 +PhysicsServer3D.BODY_DAMP_MODE_REPLACE = 1 + +--- @alias PhysicsServer3D.BodyState `PhysicsServer3D.BODY_STATE_TRANSFORM` | `PhysicsServer3D.BODY_STATE_LINEAR_VELOCITY` | `PhysicsServer3D.BODY_STATE_ANGULAR_VELOCITY` | `PhysicsServer3D.BODY_STATE_SLEEPING` | `PhysicsServer3D.BODY_STATE_CAN_SLEEP` +PhysicsServer3D.BODY_STATE_TRANSFORM = 0 +PhysicsServer3D.BODY_STATE_LINEAR_VELOCITY = 1 +PhysicsServer3D.BODY_STATE_ANGULAR_VELOCITY = 2 +PhysicsServer3D.BODY_STATE_SLEEPING = 3 +PhysicsServer3D.BODY_STATE_CAN_SLEEP = 4 + +--- @alias PhysicsServer3D.AreaBodyStatus `PhysicsServer3D.AREA_BODY_ADDED` | `PhysicsServer3D.AREA_BODY_REMOVED` +PhysicsServer3D.AREA_BODY_ADDED = 0 +PhysicsServer3D.AREA_BODY_REMOVED = 1 + +--- @alias PhysicsServer3D.ProcessInfo `PhysicsServer3D.INFO_ACTIVE_OBJECTS` | `PhysicsServer3D.INFO_COLLISION_PAIRS` | `PhysicsServer3D.INFO_ISLAND_COUNT` +PhysicsServer3D.INFO_ACTIVE_OBJECTS = 0 +PhysicsServer3D.INFO_COLLISION_PAIRS = 1 +PhysicsServer3D.INFO_ISLAND_COUNT = 2 + +--- @alias PhysicsServer3D.SpaceParameter `PhysicsServer3D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS` | `PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_SEPARATION` | `PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION` | `PhysicsServer3D.SPACE_PARAM_CONTACT_DEFAULT_BIAS` | `PhysicsServer3D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD` | `PhysicsServer3D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD` | `PhysicsServer3D.SPACE_PARAM_BODY_TIME_TO_SLEEP` | `PhysicsServer3D.SPACE_PARAM_SOLVER_ITERATIONS` +PhysicsServer3D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0 +PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_SEPARATION = 1 +PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2 +PhysicsServer3D.SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3 +PhysicsServer3D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4 +PhysicsServer3D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5 +PhysicsServer3D.SPACE_PARAM_BODY_TIME_TO_SLEEP = 6 +PhysicsServer3D.SPACE_PARAM_SOLVER_ITERATIONS = 7 + +--- @alias PhysicsServer3D.BodyAxis `PhysicsServer3D.BODY_AXIS_LINEAR_X` | `PhysicsServer3D.BODY_AXIS_LINEAR_Y` | `PhysicsServer3D.BODY_AXIS_LINEAR_Z` | `PhysicsServer3D.BODY_AXIS_ANGULAR_X` | `PhysicsServer3D.BODY_AXIS_ANGULAR_Y` | `PhysicsServer3D.BODY_AXIS_ANGULAR_Z` +PhysicsServer3D.BODY_AXIS_LINEAR_X = 1 +PhysicsServer3D.BODY_AXIS_LINEAR_Y = 2 +PhysicsServer3D.BODY_AXIS_LINEAR_Z = 4 +PhysicsServer3D.BODY_AXIS_ANGULAR_X = 8 +PhysicsServer3D.BODY_AXIS_ANGULAR_Y = 16 +PhysicsServer3D.BODY_AXIS_ANGULAR_Z = 32 + +--- @return RID +function PhysicsServer3D:world_boundary_shape_create() end + +--- @return RID +function PhysicsServer3D:separation_ray_shape_create() end + +--- @return RID +function PhysicsServer3D:sphere_shape_create() end + +--- @return RID +function PhysicsServer3D:box_shape_create() end + +--- @return RID +function PhysicsServer3D:capsule_shape_create() end + +--- @return RID +function PhysicsServer3D:cylinder_shape_create() end + +--- @return RID +function PhysicsServer3D:convex_polygon_shape_create() end + +--- @return RID +function PhysicsServer3D:concave_polygon_shape_create() end + +--- @return RID +function PhysicsServer3D:heightmap_shape_create() end + +--- @return RID +function PhysicsServer3D:custom_shape_create() end + +--- @param shape RID +--- @param data any +function PhysicsServer3D:shape_set_data(shape, data) end + +--- @param shape RID +--- @param margin float +function PhysicsServer3D:shape_set_margin(shape, margin) end + +--- @param shape RID +--- @return PhysicsServer3D.ShapeType +function PhysicsServer3D:shape_get_type(shape) end + +--- @param shape RID +--- @return any +function PhysicsServer3D:shape_get_data(shape) end + +--- @param shape RID +--- @return float +function PhysicsServer3D:shape_get_margin(shape) end + +--- @return RID +function PhysicsServer3D:space_create() end + +--- @param space RID +--- @param active bool +function PhysicsServer3D:space_set_active(space, active) end + +--- @param space RID +--- @return bool +function PhysicsServer3D:space_is_active(space) end + +--- @param space RID +--- @param param PhysicsServer3D.SpaceParameter +--- @param value float +function PhysicsServer3D:space_set_param(space, param, value) end + +--- @param space RID +--- @param param PhysicsServer3D.SpaceParameter +--- @return float +function PhysicsServer3D:space_get_param(space, param) end + +--- @param space RID +--- @return PhysicsDirectSpaceState3D +function PhysicsServer3D:space_get_direct_state(space) end + +--- @return RID +function PhysicsServer3D:area_create() end + +--- @param area RID +--- @param space RID +function PhysicsServer3D:area_set_space(area, space) end + +--- @param area RID +--- @return RID +function PhysicsServer3D:area_get_space(area) end + +--- @param area RID +--- @param shape RID +--- @param transform Transform3D? Default: Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +--- @param disabled bool? Default: false +function PhysicsServer3D:area_add_shape(area, shape, transform, disabled) end + +--- @param area RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer3D:area_set_shape(area, shape_idx, shape) end + +--- @param area RID +--- @param shape_idx int +--- @param transform Transform3D +function PhysicsServer3D:area_set_shape_transform(area, shape_idx, transform) end + +--- @param area RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer3D:area_set_shape_disabled(area, shape_idx, disabled) end + +--- @param area RID +--- @return int +function PhysicsServer3D:area_get_shape_count(area) end + +--- @param area RID +--- @param shape_idx int +--- @return RID +function PhysicsServer3D:area_get_shape(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +--- @return Transform3D +function PhysicsServer3D:area_get_shape_transform(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +function PhysicsServer3D:area_remove_shape(area, shape_idx) end + +--- @param area RID +function PhysicsServer3D:area_clear_shapes(area) end + +--- @param area RID +--- @param layer int +function PhysicsServer3D:area_set_collision_layer(area, layer) end + +--- @param area RID +--- @return int +function PhysicsServer3D:area_get_collision_layer(area) end + +--- @param area RID +--- @param mask int +function PhysicsServer3D:area_set_collision_mask(area, mask) end + +--- @param area RID +--- @return int +function PhysicsServer3D:area_get_collision_mask(area) end + +--- @param area RID +--- @param param PhysicsServer3D.AreaParameter +--- @param value any +function PhysicsServer3D:area_set_param(area, param, value) end + +--- @param area RID +--- @param transform Transform3D +function PhysicsServer3D:area_set_transform(area, transform) end + +--- @param area RID +--- @param param PhysicsServer3D.AreaParameter +--- @return any +function PhysicsServer3D:area_get_param(area, param) end + +--- @param area RID +--- @return Transform3D +function PhysicsServer3D:area_get_transform(area) end + +--- @param area RID +--- @param id int +function PhysicsServer3D:area_attach_object_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer3D:area_get_object_instance_id(area) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer3D:area_set_monitor_callback(area, callback) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer3D:area_set_area_monitor_callback(area, callback) end + +--- @param area RID +--- @param monitorable bool +function PhysicsServer3D:area_set_monitorable(area, monitorable) end + +--- @param area RID +--- @param enable bool +function PhysicsServer3D:area_set_ray_pickable(area, enable) end + +--- @return RID +function PhysicsServer3D:body_create() end + +--- @param body RID +--- @param space RID +function PhysicsServer3D:body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer3D:body_get_space(body) end + +--- @param body RID +--- @param mode PhysicsServer3D.BodyMode +function PhysicsServer3D:body_set_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer3D.BodyMode +function PhysicsServer3D:body_get_mode(body) end + +--- @param body RID +--- @param layer int +function PhysicsServer3D:body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer3D:body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer3D:body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer3D:body_get_collision_mask(body) end + +--- @param body RID +--- @param priority float +function PhysicsServer3D:body_set_collision_priority(body, priority) end + +--- @param body RID +--- @return float +function PhysicsServer3D:body_get_collision_priority(body) end + +--- @param body RID +--- @param shape RID +--- @param transform Transform3D? Default: Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +--- @param disabled bool? Default: false +function PhysicsServer3D:body_add_shape(body, shape, transform, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer3D:body_set_shape(body, shape_idx, shape) end + +--- @param body RID +--- @param shape_idx int +--- @param transform Transform3D +function PhysicsServer3D:body_set_shape_transform(body, shape_idx, transform) end + +--- @param body RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer3D:body_set_shape_disabled(body, shape_idx, disabled) end + +--- @param body RID +--- @return int +function PhysicsServer3D:body_get_shape_count(body) end + +--- @param body RID +--- @param shape_idx int +--- @return RID +function PhysicsServer3D:body_get_shape(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +--- @return Transform3D +function PhysicsServer3D:body_get_shape_transform(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +function PhysicsServer3D:body_remove_shape(body, shape_idx) end + +--- @param body RID +function PhysicsServer3D:body_clear_shapes(body) end + +--- @param body RID +--- @param id int +function PhysicsServer3D:body_attach_object_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer3D:body_get_object_instance_id(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3D:body_set_enable_continuous_collision_detection(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer3D:body_is_continuous_collision_detection_enabled(body) end + +--- @param body RID +--- @param param PhysicsServer3D.BodyParameter +--- @param value any +function PhysicsServer3D:body_set_param(body, param, value) end + +--- @param body RID +--- @param param PhysicsServer3D.BodyParameter +--- @return any +function PhysicsServer3D:body_get_param(body, param) end + +--- @param body RID +function PhysicsServer3D:body_reset_mass_properties(body) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @param value any +function PhysicsServer3D:body_set_state(body, state, value) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @return any +function PhysicsServer3D:body_get_state(body, state) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3D:body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param impulse Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsServer3D:body_apply_impulse(body, impulse, position) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3D:body_apply_torque_impulse(body, impulse) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3D:body_apply_central_force(body, force) end + +--- @param body RID +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsServer3D:body_apply_force(body, force, position) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3D:body_apply_torque(body, torque) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3D:body_add_constant_central_force(body, force) end + +--- @param body RID +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function PhysicsServer3D:body_add_constant_force(body, force, position) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3D:body_add_constant_torque(body, torque) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3D:body_set_constant_force(body, force) end + +--- @param body RID +--- @return Vector3 +function PhysicsServer3D:body_get_constant_force(body) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3D:body_set_constant_torque(body, torque) end + +--- @param body RID +--- @return Vector3 +function PhysicsServer3D:body_get_constant_torque(body) end + +--- @param body RID +--- @param axis_velocity Vector3 +function PhysicsServer3D:body_set_axis_velocity(body, axis_velocity) end + +--- @param body RID +--- @param axis PhysicsServer3D.BodyAxis +--- @param lock bool +function PhysicsServer3D:body_set_axis_lock(body, axis, lock) end + +--- @param body RID +--- @param axis PhysicsServer3D.BodyAxis +--- @return bool +function PhysicsServer3D:body_is_axis_locked(body, axis) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer3D:body_add_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer3D:body_remove_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param amount int +function PhysicsServer3D:body_set_max_contacts_reported(body, amount) end + +--- @param body RID +--- @return int +function PhysicsServer3D:body_get_max_contacts_reported(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3D:body_set_omit_force_integration(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer3D:body_is_omitting_force_integration(body) end + +--- @param body RID +--- @param callable Callable +function PhysicsServer3D:body_set_state_sync_callback(body, callable) end + +--- @param body RID +--- @param callable Callable +--- @param userdata any? Default: null +function PhysicsServer3D:body_set_force_integration_callback(body, callable, userdata) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3D:body_set_ray_pickable(body, enable) end + +--- @param body RID +--- @param parameters PhysicsTestMotionParameters3D +--- @param result PhysicsTestMotionResult3D? Default: null +--- @return bool +function PhysicsServer3D:body_test_motion(body, parameters, result) end + +--- @param body RID +--- @return PhysicsDirectBodyState3D +function PhysicsServer3D:body_get_direct_state(body) end + +--- @return RID +function PhysicsServer3D:soft_body_create() end + +--- @param body RID +--- @param rendering_server_handler PhysicsServer3DRenderingServerHandler +function PhysicsServer3D:soft_body_update_rendering_server(body, rendering_server_handler) end + +--- @param body RID +--- @param space RID +function PhysicsServer3D:soft_body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer3D:soft_body_get_space(body) end + +--- @param body RID +--- @param mesh RID +function PhysicsServer3D:soft_body_set_mesh(body, mesh) end + +--- @param body RID +--- @return AABB +function PhysicsServer3D:soft_body_get_bounds(body) end + +--- @param body RID +--- @param layer int +function PhysicsServer3D:soft_body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer3D:soft_body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer3D:soft_body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer3D:soft_body_get_collision_mask(body) end + +--- @param body RID +--- @param body_b RID +function PhysicsServer3D:soft_body_add_collision_exception(body, body_b) end + +--- @param body RID +--- @param body_b RID +function PhysicsServer3D:soft_body_remove_collision_exception(body, body_b) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @param variant any +function PhysicsServer3D:soft_body_set_state(body, state, variant) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @return any +function PhysicsServer3D:soft_body_get_state(body, state) end + +--- @param body RID +--- @param transform Transform3D +function PhysicsServer3D:soft_body_set_transform(body, transform) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3D:soft_body_set_ray_pickable(body, enable) end + +--- @param body RID +--- @param simulation_precision int +function PhysicsServer3D:soft_body_set_simulation_precision(body, simulation_precision) end + +--- @param body RID +--- @return int +function PhysicsServer3D:soft_body_get_simulation_precision(body) end + +--- @param body RID +--- @param total_mass float +function PhysicsServer3D:soft_body_set_total_mass(body, total_mass) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_total_mass(body) end + +--- @param body RID +--- @param stiffness float +function PhysicsServer3D:soft_body_set_linear_stiffness(body, stiffness) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_linear_stiffness(body) end + +--- @param body RID +--- @param shrinking_factor float +function PhysicsServer3D:soft_body_set_shrinking_factor(body, shrinking_factor) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_shrinking_factor(body) end + +--- @param body RID +--- @param pressure_coefficient float +function PhysicsServer3D:soft_body_set_pressure_coefficient(body, pressure_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_pressure_coefficient(body) end + +--- @param body RID +--- @param damping_coefficient float +function PhysicsServer3D:soft_body_set_damping_coefficient(body, damping_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_damping_coefficient(body) end + +--- @param body RID +--- @param drag_coefficient float +function PhysicsServer3D:soft_body_set_drag_coefficient(body, drag_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3D:soft_body_get_drag_coefficient(body) end + +--- @param body RID +--- @param point_index int +--- @param global_position Vector3 +function PhysicsServer3D:soft_body_move_point(body, point_index, global_position) end + +--- @param body RID +--- @param point_index int +--- @return Vector3 +function PhysicsServer3D:soft_body_get_point_global_position(body, point_index) end + +--- @param body RID +function PhysicsServer3D:soft_body_remove_all_pinned_points(body) end + +--- @param body RID +--- @param point_index int +--- @param pin bool +function PhysicsServer3D:soft_body_pin_point(body, point_index, pin) end + +--- @param body RID +--- @param point_index int +--- @return bool +function PhysicsServer3D:soft_body_is_point_pinned(body, point_index) end + +--- @param body RID +--- @param point_index int +--- @param impulse Vector3 +function PhysicsServer3D:soft_body_apply_point_impulse(body, point_index, impulse) end + +--- @param body RID +--- @param point_index int +--- @param force Vector3 +function PhysicsServer3D:soft_body_apply_point_force(body, point_index, force) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3D:soft_body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3D:soft_body_apply_central_force(body, force) end + +--- @return RID +function PhysicsServer3D:joint_create() end + +--- @param joint RID +function PhysicsServer3D:joint_clear(joint) end + +--- @param joint RID +--- @param body_A RID +--- @param local_A Vector3 +--- @param body_B RID +--- @param local_B Vector3 +function PhysicsServer3D:joint_make_pin(joint, body_A, local_A, body_B, local_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.PinJointParam +--- @param value float +function PhysicsServer3D:pin_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.PinJointParam +--- @return float +function PhysicsServer3D:pin_joint_get_param(joint, param) end + +--- @param joint RID +--- @param local_A Vector3 +function PhysicsServer3D:pin_joint_set_local_a(joint, local_A) end + +--- @param joint RID +--- @return Vector3 +function PhysicsServer3D:pin_joint_get_local_a(joint) end + +--- @param joint RID +--- @param local_B Vector3 +function PhysicsServer3D:pin_joint_set_local_b(joint, local_B) end + +--- @param joint RID +--- @return Vector3 +function PhysicsServer3D:pin_joint_get_local_b(joint) end + +--- @param joint RID +--- @param body_A RID +--- @param hinge_A Transform3D +--- @param body_B RID +--- @param hinge_B Transform3D +function PhysicsServer3D:joint_make_hinge(joint, body_A, hinge_A, body_B, hinge_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.HingeJointParam +--- @param value float +function PhysicsServer3D:hinge_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.HingeJointParam +--- @return float +function PhysicsServer3D:hinge_joint_get_param(joint, param) end + +--- @param joint RID +--- @param flag PhysicsServer3D.HingeJointFlag +--- @param enabled bool +function PhysicsServer3D:hinge_joint_set_flag(joint, flag, enabled) end + +--- @param joint RID +--- @param flag PhysicsServer3D.HingeJointFlag +--- @return bool +function PhysicsServer3D:hinge_joint_get_flag(joint, flag) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3D:joint_make_slider(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.SliderJointParam +--- @param value float +function PhysicsServer3D:slider_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.SliderJointParam +--- @return float +function PhysicsServer3D:slider_joint_get_param(joint, param) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3D:joint_make_cone_twist(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.ConeTwistJointParam +--- @param value float +function PhysicsServer3D:cone_twist_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.ConeTwistJointParam +--- @return float +function PhysicsServer3D:cone_twist_joint_get_param(joint, param) end + +--- @param joint RID +--- @return PhysicsServer3D.JointType +function PhysicsServer3D:joint_get_type(joint) end + +--- @param joint RID +--- @param priority int +function PhysicsServer3D:joint_set_solver_priority(joint, priority) end + +--- @param joint RID +--- @return int +function PhysicsServer3D:joint_get_solver_priority(joint) end + +--- @param joint RID +--- @param disable bool +function PhysicsServer3D:joint_disable_collisions_between_bodies(joint, disable) end + +--- @param joint RID +--- @return bool +function PhysicsServer3D:joint_is_disabled_collisions_between_bodies(joint) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3D:joint_make_generic_6dof(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param param PhysicsServer3D.G6DOFJointAxisParam +--- @param value float +function PhysicsServer3D:generic_6dof_joint_set_param(joint, axis, param, value) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param param PhysicsServer3D.G6DOFJointAxisParam +--- @return float +function PhysicsServer3D:generic_6dof_joint_get_param(joint, axis, param) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param flag PhysicsServer3D.G6DOFJointAxisFlag +--- @param enable bool +function PhysicsServer3D:generic_6dof_joint_set_flag(joint, axis, flag, enable) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param flag PhysicsServer3D.G6DOFJointAxisFlag +--- @return bool +function PhysicsServer3D:generic_6dof_joint_get_flag(joint, axis, flag) end + +--- @param rid RID +function PhysicsServer3D:free_rid(rid) end + +--- @param active bool +function PhysicsServer3D:set_active(active) end + +--- @param process_info PhysicsServer3D.ProcessInfo +--- @return int +function PhysicsServer3D:get_process_info(process_info) end + + +----------------------------------------------------------- +-- PhysicsServer3DExtension +----------------------------------------------------------- + +--- @class PhysicsServer3DExtension: PhysicsServer3D, { [string]: any } +PhysicsServer3DExtension = {} + +--- @return PhysicsServer3DExtension +function PhysicsServer3DExtension:new() end + +--- @return RID +function PhysicsServer3DExtension:_world_boundary_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_separation_ray_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_sphere_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_box_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_capsule_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_cylinder_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_convex_polygon_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_concave_polygon_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_heightmap_shape_create() end + +--- @return RID +function PhysicsServer3DExtension:_custom_shape_create() end + +--- @param shape RID +--- @param data any +function PhysicsServer3DExtension:_shape_set_data(shape, data) end + +--- @param shape RID +--- @param bias float +function PhysicsServer3DExtension:_shape_set_custom_solver_bias(shape, bias) end + +--- @param shape RID +--- @param margin float +function PhysicsServer3DExtension:_shape_set_margin(shape, margin) end + +--- @param shape RID +--- @return float +function PhysicsServer3DExtension:_shape_get_margin(shape) end + +--- @param shape RID +--- @return PhysicsServer3D.ShapeType +function PhysicsServer3DExtension:_shape_get_type(shape) end + +--- @param shape RID +--- @return any +function PhysicsServer3DExtension:_shape_get_data(shape) end + +--- @param shape RID +--- @return float +function PhysicsServer3DExtension:_shape_get_custom_solver_bias(shape) end + +--- @return RID +function PhysicsServer3DExtension:_space_create() end + +--- @param space RID +--- @param active bool +function PhysicsServer3DExtension:_space_set_active(space, active) end + +--- @param space RID +--- @return bool +function PhysicsServer3DExtension:_space_is_active(space) end + +--- @param space RID +--- @param param PhysicsServer3D.SpaceParameter +--- @param value float +function PhysicsServer3DExtension:_space_set_param(space, param, value) end + +--- @param space RID +--- @param param PhysicsServer3D.SpaceParameter +--- @return float +function PhysicsServer3DExtension:_space_get_param(space, param) end + +--- @param space RID +--- @return PhysicsDirectSpaceState3D +function PhysicsServer3DExtension:_space_get_direct_state(space) end + +--- @param space RID +--- @param max_contacts int +function PhysicsServer3DExtension:_space_set_debug_contacts(space, max_contacts) end + +--- @param space RID +--- @return PackedVector3Array +function PhysicsServer3DExtension:_space_get_contacts(space) end + +--- @param space RID +--- @return int +function PhysicsServer3DExtension:_space_get_contact_count(space) end + +--- @return RID +function PhysicsServer3DExtension:_area_create() end + +--- @param area RID +--- @param space RID +function PhysicsServer3DExtension:_area_set_space(area, space) end + +--- @param area RID +--- @return RID +function PhysicsServer3DExtension:_area_get_space(area) end + +--- @param area RID +--- @param shape RID +--- @param transform Transform3D +--- @param disabled bool +function PhysicsServer3DExtension:_area_add_shape(area, shape, transform, disabled) end + +--- @param area RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer3DExtension:_area_set_shape(area, shape_idx, shape) end + +--- @param area RID +--- @param shape_idx int +--- @param transform Transform3D +function PhysicsServer3DExtension:_area_set_shape_transform(area, shape_idx, transform) end + +--- @param area RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer3DExtension:_area_set_shape_disabled(area, shape_idx, disabled) end + +--- @param area RID +--- @return int +function PhysicsServer3DExtension:_area_get_shape_count(area) end + +--- @param area RID +--- @param shape_idx int +--- @return RID +function PhysicsServer3DExtension:_area_get_shape(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +--- @return Transform3D +function PhysicsServer3DExtension:_area_get_shape_transform(area, shape_idx) end + +--- @param area RID +--- @param shape_idx int +function PhysicsServer3DExtension:_area_remove_shape(area, shape_idx) end + +--- @param area RID +function PhysicsServer3DExtension:_area_clear_shapes(area) end + +--- @param area RID +--- @param id int +function PhysicsServer3DExtension:_area_attach_object_instance_id(area, id) end + +--- @param area RID +--- @return int +function PhysicsServer3DExtension:_area_get_object_instance_id(area) end + +--- @param area RID +--- @param param PhysicsServer3D.AreaParameter +--- @param value any +function PhysicsServer3DExtension:_area_set_param(area, param, value) end + +--- @param area RID +--- @param transform Transform3D +function PhysicsServer3DExtension:_area_set_transform(area, transform) end + +--- @param area RID +--- @param param PhysicsServer3D.AreaParameter +--- @return any +function PhysicsServer3DExtension:_area_get_param(area, param) end + +--- @param area RID +--- @return Transform3D +function PhysicsServer3DExtension:_area_get_transform(area) end + +--- @param area RID +--- @param layer int +function PhysicsServer3DExtension:_area_set_collision_layer(area, layer) end + +--- @param area RID +--- @return int +function PhysicsServer3DExtension:_area_get_collision_layer(area) end + +--- @param area RID +--- @param mask int +function PhysicsServer3DExtension:_area_set_collision_mask(area, mask) end + +--- @param area RID +--- @return int +function PhysicsServer3DExtension:_area_get_collision_mask(area) end + +--- @param area RID +--- @param monitorable bool +function PhysicsServer3DExtension:_area_set_monitorable(area, monitorable) end + +--- @param area RID +--- @param enable bool +function PhysicsServer3DExtension:_area_set_ray_pickable(area, enable) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer3DExtension:_area_set_monitor_callback(area, callback) end + +--- @param area RID +--- @param callback Callable +function PhysicsServer3DExtension:_area_set_area_monitor_callback(area, callback) end + +--- @return RID +function PhysicsServer3DExtension:_body_create() end + +--- @param body RID +--- @param space RID +function PhysicsServer3DExtension:_body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer3DExtension:_body_get_space(body) end + +--- @param body RID +--- @param mode PhysicsServer3D.BodyMode +function PhysicsServer3DExtension:_body_set_mode(body, mode) end + +--- @param body RID +--- @return PhysicsServer3D.BodyMode +function PhysicsServer3DExtension:_body_get_mode(body) end + +--- @param body RID +--- @param shape RID +--- @param transform Transform3D +--- @param disabled bool +function PhysicsServer3DExtension:_body_add_shape(body, shape, transform, disabled) end + +--- @param body RID +--- @param shape_idx int +--- @param shape RID +function PhysicsServer3DExtension:_body_set_shape(body, shape_idx, shape) end + +--- @param body RID +--- @param shape_idx int +--- @param transform Transform3D +function PhysicsServer3DExtension:_body_set_shape_transform(body, shape_idx, transform) end + +--- @param body RID +--- @param shape_idx int +--- @param disabled bool +function PhysicsServer3DExtension:_body_set_shape_disabled(body, shape_idx, disabled) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_shape_count(body) end + +--- @param body RID +--- @param shape_idx int +--- @return RID +function PhysicsServer3DExtension:_body_get_shape(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +--- @return Transform3D +function PhysicsServer3DExtension:_body_get_shape_transform(body, shape_idx) end + +--- @param body RID +--- @param shape_idx int +function PhysicsServer3DExtension:_body_remove_shape(body, shape_idx) end + +--- @param body RID +function PhysicsServer3DExtension:_body_clear_shapes(body) end + +--- @param body RID +--- @param id int +function PhysicsServer3DExtension:_body_attach_object_instance_id(body, id) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_object_instance_id(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3DExtension:_body_set_enable_continuous_collision_detection(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer3DExtension:_body_is_continuous_collision_detection_enabled(body) end + +--- @param body RID +--- @param layer int +function PhysicsServer3DExtension:_body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer3DExtension:_body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_collision_mask(body) end + +--- @param body RID +--- @param priority float +function PhysicsServer3DExtension:_body_set_collision_priority(body, priority) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_body_get_collision_priority(body) end + +--- @param body RID +--- @param flags int +function PhysicsServer3DExtension:_body_set_user_flags(body, flags) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_user_flags(body) end + +--- @param body RID +--- @param param PhysicsServer3D.BodyParameter +--- @param value any +function PhysicsServer3DExtension:_body_set_param(body, param, value) end + +--- @param body RID +--- @param param PhysicsServer3D.BodyParameter +--- @return any +function PhysicsServer3DExtension:_body_get_param(body, param) end + +--- @param body RID +function PhysicsServer3DExtension:_body_reset_mass_properties(body) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @param value any +function PhysicsServer3DExtension:_body_set_state(body, state, value) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @return any +function PhysicsServer3DExtension:_body_get_state(body, state) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3DExtension:_body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param impulse Vector3 +--- @param position Vector3 +function PhysicsServer3DExtension:_body_apply_impulse(body, impulse, position) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3DExtension:_body_apply_torque_impulse(body, impulse) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3DExtension:_body_apply_central_force(body, force) end + +--- @param body RID +--- @param force Vector3 +--- @param position Vector3 +function PhysicsServer3DExtension:_body_apply_force(body, force, position) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3DExtension:_body_apply_torque(body, torque) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3DExtension:_body_add_constant_central_force(body, force) end + +--- @param body RID +--- @param force Vector3 +--- @param position Vector3 +function PhysicsServer3DExtension:_body_add_constant_force(body, force, position) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3DExtension:_body_add_constant_torque(body, torque) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3DExtension:_body_set_constant_force(body, force) end + +--- @param body RID +--- @return Vector3 +function PhysicsServer3DExtension:_body_get_constant_force(body) end + +--- @param body RID +--- @param torque Vector3 +function PhysicsServer3DExtension:_body_set_constant_torque(body, torque) end + +--- @param body RID +--- @return Vector3 +function PhysicsServer3DExtension:_body_get_constant_torque(body) end + +--- @param body RID +--- @param axis_velocity Vector3 +function PhysicsServer3DExtension:_body_set_axis_velocity(body, axis_velocity) end + +--- @param body RID +--- @param axis PhysicsServer3D.BodyAxis +--- @param lock bool +function PhysicsServer3DExtension:_body_set_axis_lock(body, axis, lock) end + +--- @param body RID +--- @param axis PhysicsServer3D.BodyAxis +--- @return bool +function PhysicsServer3DExtension:_body_is_axis_locked(body, axis) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer3DExtension:_body_add_collision_exception(body, excepted_body) end + +--- @param body RID +--- @param excepted_body RID +function PhysicsServer3DExtension:_body_remove_collision_exception(body, excepted_body) end + +--- @param body RID +--- @return Array[RID] +function PhysicsServer3DExtension:_body_get_collision_exceptions(body) end + +--- @param body RID +--- @param amount int +function PhysicsServer3DExtension:_body_set_max_contacts_reported(body, amount) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_body_get_max_contacts_reported(body) end + +--- @param body RID +--- @param threshold float +function PhysicsServer3DExtension:_body_set_contacts_reported_depth_threshold(body, threshold) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_body_get_contacts_reported_depth_threshold(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3DExtension:_body_set_omit_force_integration(body, enable) end + +--- @param body RID +--- @return bool +function PhysicsServer3DExtension:_body_is_omitting_force_integration(body) end + +--- @param body RID +--- @param callable Callable +function PhysicsServer3DExtension:_body_set_state_sync_callback(body, callable) end + +--- @param body RID +--- @param callable Callable +--- @param userdata any +function PhysicsServer3DExtension:_body_set_force_integration_callback(body, callable, userdata) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3DExtension:_body_set_ray_pickable(body, enable) end + +--- @param body RID +--- @param from Transform3D +--- @param motion Vector3 +--- @param margin float +--- @param max_collisions int +--- @param collide_separation_ray bool +--- @param recovery_as_collision bool +--- @param result PhysicsServer3DExtensionMotionResult* +--- @return bool +function PhysicsServer3DExtension:_body_test_motion(body, from, motion, margin, max_collisions, collide_separation_ray, recovery_as_collision, result) end + +--- @param body RID +--- @return PhysicsDirectBodyState3D +function PhysicsServer3DExtension:_body_get_direct_state(body) end + +--- @return RID +function PhysicsServer3DExtension:_soft_body_create() end + +--- @param body RID +--- @param rendering_server_handler PhysicsServer3DRenderingServerHandler +function PhysicsServer3DExtension:_soft_body_update_rendering_server(body, rendering_server_handler) end + +--- @param body RID +--- @param space RID +function PhysicsServer3DExtension:_soft_body_set_space(body, space) end + +--- @param body RID +--- @return RID +function PhysicsServer3DExtension:_soft_body_get_space(body) end + +--- @param body RID +--- @param enable bool +function PhysicsServer3DExtension:_soft_body_set_ray_pickable(body, enable) end + +--- @param body RID +--- @param layer int +function PhysicsServer3DExtension:_soft_body_set_collision_layer(body, layer) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_soft_body_get_collision_layer(body) end + +--- @param body RID +--- @param mask int +function PhysicsServer3DExtension:_soft_body_set_collision_mask(body, mask) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_soft_body_get_collision_mask(body) end + +--- @param body RID +--- @param body_b RID +function PhysicsServer3DExtension:_soft_body_add_collision_exception(body, body_b) end + +--- @param body RID +--- @param body_b RID +function PhysicsServer3DExtension:_soft_body_remove_collision_exception(body, body_b) end + +--- @param body RID +--- @return Array[RID] +function PhysicsServer3DExtension:_soft_body_get_collision_exceptions(body) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @param variant any +function PhysicsServer3DExtension:_soft_body_set_state(body, state, variant) end + +--- @param body RID +--- @param state PhysicsServer3D.BodyState +--- @return any +function PhysicsServer3DExtension:_soft_body_get_state(body, state) end + +--- @param body RID +--- @param transform Transform3D +function PhysicsServer3DExtension:_soft_body_set_transform(body, transform) end + +--- @param body RID +--- @param simulation_precision int +function PhysicsServer3DExtension:_soft_body_set_simulation_precision(body, simulation_precision) end + +--- @param body RID +--- @return int +function PhysicsServer3DExtension:_soft_body_get_simulation_precision(body) end + +--- @param body RID +--- @param total_mass float +function PhysicsServer3DExtension:_soft_body_set_total_mass(body, total_mass) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_total_mass(body) end + +--- @param body RID +--- @param linear_stiffness float +function PhysicsServer3DExtension:_soft_body_set_linear_stiffness(body, linear_stiffness) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_linear_stiffness(body) end + +--- @param body RID +--- @param shrinking_factor float +function PhysicsServer3DExtension:_soft_body_set_shrinking_factor(body, shrinking_factor) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_shrinking_factor(body) end + +--- @param body RID +--- @param pressure_coefficient float +function PhysicsServer3DExtension:_soft_body_set_pressure_coefficient(body, pressure_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_pressure_coefficient(body) end + +--- @param body RID +--- @param damping_coefficient float +function PhysicsServer3DExtension:_soft_body_set_damping_coefficient(body, damping_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_damping_coefficient(body) end + +--- @param body RID +--- @param drag_coefficient float +function PhysicsServer3DExtension:_soft_body_set_drag_coefficient(body, drag_coefficient) end + +--- @param body RID +--- @return float +function PhysicsServer3DExtension:_soft_body_get_drag_coefficient(body) end + +--- @param body RID +--- @param mesh RID +function PhysicsServer3DExtension:_soft_body_set_mesh(body, mesh) end + +--- @param body RID +--- @return AABB +function PhysicsServer3DExtension:_soft_body_get_bounds(body) end + +--- @param body RID +--- @param point_index int +--- @param global_position Vector3 +function PhysicsServer3DExtension:_soft_body_move_point(body, point_index, global_position) end + +--- @param body RID +--- @param point_index int +--- @return Vector3 +function PhysicsServer3DExtension:_soft_body_get_point_global_position(body, point_index) end + +--- @param body RID +function PhysicsServer3DExtension:_soft_body_remove_all_pinned_points(body) end + +--- @param body RID +--- @param point_index int +--- @param pin bool +function PhysicsServer3DExtension:_soft_body_pin_point(body, point_index, pin) end + +--- @param body RID +--- @param point_index int +--- @return bool +function PhysicsServer3DExtension:_soft_body_is_point_pinned(body, point_index) end + +--- @param body RID +--- @param point_index int +--- @param impulse Vector3 +function PhysicsServer3DExtension:_soft_body_apply_point_impulse(body, point_index, impulse) end + +--- @param body RID +--- @param point_index int +--- @param force Vector3 +function PhysicsServer3DExtension:_soft_body_apply_point_force(body, point_index, force) end + +--- @param body RID +--- @param impulse Vector3 +function PhysicsServer3DExtension:_soft_body_apply_central_impulse(body, impulse) end + +--- @param body RID +--- @param force Vector3 +function PhysicsServer3DExtension:_soft_body_apply_central_force(body, force) end + +--- @return RID +function PhysicsServer3DExtension:_joint_create() end + +--- @param joint RID +function PhysicsServer3DExtension:_joint_clear(joint) end + +--- @param joint RID +--- @param body_A RID +--- @param local_A Vector3 +--- @param body_B RID +--- @param local_B Vector3 +function PhysicsServer3DExtension:_joint_make_pin(joint, body_A, local_A, body_B, local_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.PinJointParam +--- @param value float +function PhysicsServer3DExtension:_pin_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.PinJointParam +--- @return float +function PhysicsServer3DExtension:_pin_joint_get_param(joint, param) end + +--- @param joint RID +--- @param local_A Vector3 +function PhysicsServer3DExtension:_pin_joint_set_local_a(joint, local_A) end + +--- @param joint RID +--- @return Vector3 +function PhysicsServer3DExtension:_pin_joint_get_local_a(joint) end + +--- @param joint RID +--- @param local_B Vector3 +function PhysicsServer3DExtension:_pin_joint_set_local_b(joint, local_B) end + +--- @param joint RID +--- @return Vector3 +function PhysicsServer3DExtension:_pin_joint_get_local_b(joint) end + +--- @param joint RID +--- @param body_A RID +--- @param hinge_A Transform3D +--- @param body_B RID +--- @param hinge_B Transform3D +function PhysicsServer3DExtension:_joint_make_hinge(joint, body_A, hinge_A, body_B, hinge_B) end + +--- @param joint RID +--- @param body_A RID +--- @param pivot_A Vector3 +--- @param axis_A Vector3 +--- @param body_B RID +--- @param pivot_B Vector3 +--- @param axis_B Vector3 +function PhysicsServer3DExtension:_joint_make_hinge_simple(joint, body_A, pivot_A, axis_A, body_B, pivot_B, axis_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.HingeJointParam +--- @param value float +function PhysicsServer3DExtension:_hinge_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.HingeJointParam +--- @return float +function PhysicsServer3DExtension:_hinge_joint_get_param(joint, param) end + +--- @param joint RID +--- @param flag PhysicsServer3D.HingeJointFlag +--- @param enabled bool +function PhysicsServer3DExtension:_hinge_joint_set_flag(joint, flag, enabled) end + +--- @param joint RID +--- @param flag PhysicsServer3D.HingeJointFlag +--- @return bool +function PhysicsServer3DExtension:_hinge_joint_get_flag(joint, flag) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3DExtension:_joint_make_slider(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.SliderJointParam +--- @param value float +function PhysicsServer3DExtension:_slider_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.SliderJointParam +--- @return float +function PhysicsServer3DExtension:_slider_joint_get_param(joint, param) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3DExtension:_joint_make_cone_twist(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param param PhysicsServer3D.ConeTwistJointParam +--- @param value float +function PhysicsServer3DExtension:_cone_twist_joint_set_param(joint, param, value) end + +--- @param joint RID +--- @param param PhysicsServer3D.ConeTwistJointParam +--- @return float +function PhysicsServer3DExtension:_cone_twist_joint_get_param(joint, param) end + +--- @param joint RID +--- @param body_A RID +--- @param local_ref_A Transform3D +--- @param body_B RID +--- @param local_ref_B Transform3D +function PhysicsServer3DExtension:_joint_make_generic_6dof(joint, body_A, local_ref_A, body_B, local_ref_B) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param param PhysicsServer3D.G6DOFJointAxisParam +--- @param value float +function PhysicsServer3DExtension:_generic_6dof_joint_set_param(joint, axis, param, value) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param param PhysicsServer3D.G6DOFJointAxisParam +--- @return float +function PhysicsServer3DExtension:_generic_6dof_joint_get_param(joint, axis, param) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param flag PhysicsServer3D.G6DOFJointAxisFlag +--- @param enable bool +function PhysicsServer3DExtension:_generic_6dof_joint_set_flag(joint, axis, flag, enable) end + +--- @param joint RID +--- @param axis Vector3.Axis +--- @param flag PhysicsServer3D.G6DOFJointAxisFlag +--- @return bool +function PhysicsServer3DExtension:_generic_6dof_joint_get_flag(joint, axis, flag) end + +--- @param joint RID +--- @return PhysicsServer3D.JointType +function PhysicsServer3DExtension:_joint_get_type(joint) end + +--- @param joint RID +--- @param priority int +function PhysicsServer3DExtension:_joint_set_solver_priority(joint, priority) end + +--- @param joint RID +--- @return int +function PhysicsServer3DExtension:_joint_get_solver_priority(joint) end + +--- @param joint RID +--- @param disable bool +function PhysicsServer3DExtension:_joint_disable_collisions_between_bodies(joint, disable) end + +--- @param joint RID +--- @return bool +function PhysicsServer3DExtension:_joint_is_disabled_collisions_between_bodies(joint) end + +--- @param rid RID +function PhysicsServer3DExtension:_free_rid(rid) end + +--- @param active bool +function PhysicsServer3DExtension:_set_active(active) end + +function PhysicsServer3DExtension:_init() end + +--- @param step float +function PhysicsServer3DExtension:_step(step) end + +function PhysicsServer3DExtension:_sync() end + +function PhysicsServer3DExtension:_flush_queries() end + +function PhysicsServer3DExtension:_end_sync() end + +function PhysicsServer3DExtension:_finish() end + +--- @return bool +function PhysicsServer3DExtension:_is_flushing_queries() end + +--- @param process_info PhysicsServer3D.ProcessInfo +--- @return int +function PhysicsServer3DExtension:_get_process_info(process_info) end + +--- @param body RID +--- @return bool +function PhysicsServer3DExtension:body_test_motion_is_excluding_body(body) end + +--- @param object int +--- @return bool +function PhysicsServer3DExtension:body_test_motion_is_excluding_object(object) end + + +----------------------------------------------------------- +-- PhysicsServer3DManager +----------------------------------------------------------- + +--- @class PhysicsServer3DManager: Object, { [string]: any } +PhysicsServer3DManager = {} + +--- @param name String +--- @param create_callback Callable +function PhysicsServer3DManager:register_server(name, create_callback) end + +--- @param name String +--- @param priority int +function PhysicsServer3DManager:set_default_server(name, priority) end + + +----------------------------------------------------------- +-- PhysicsServer3DRenderingServerHandler +----------------------------------------------------------- + +--- @class PhysicsServer3DRenderingServerHandler: Object, { [string]: any } +PhysicsServer3DRenderingServerHandler = {} + +--- @return PhysicsServer3DRenderingServerHandler +function PhysicsServer3DRenderingServerHandler:new() end + +--- @param vertex_id int +--- @param vertex Vector3 +function PhysicsServer3DRenderingServerHandler:_set_vertex(vertex_id, vertex) end + +--- @param vertex_id int +--- @param normal Vector3 +function PhysicsServer3DRenderingServerHandler:_set_normal(vertex_id, normal) end + +--- @param aabb AABB +function PhysicsServer3DRenderingServerHandler:_set_aabb(aabb) end + +--- @param vertex_id int +--- @param vertex Vector3 +function PhysicsServer3DRenderingServerHandler:set_vertex(vertex_id, vertex) end + +--- @param vertex_id int +--- @param normal Vector3 +function PhysicsServer3DRenderingServerHandler:set_normal(vertex_id, normal) end + +--- @param aabb AABB +function PhysicsServer3DRenderingServerHandler:set_aabb(aabb) end + + +----------------------------------------------------------- +-- PhysicsShapeQueryParameters2D +----------------------------------------------------------- + +--- @class PhysicsShapeQueryParameters2D: RefCounted, { [string]: any } +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field margin float +--- @field motion Vector2 +--- @field shape Shape2D +--- @field shape_rid RID +--- @field transform Transform2D +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +PhysicsShapeQueryParameters2D = {} + +--- @return PhysicsShapeQueryParameters2D +function PhysicsShapeQueryParameters2D:new() end + +--- @param shape Resource +function PhysicsShapeQueryParameters2D:set_shape(shape) end + +--- @return Resource +function PhysicsShapeQueryParameters2D:get_shape() end + +--- @param shape RID +function PhysicsShapeQueryParameters2D:set_shape_rid(shape) end + +--- @return RID +function PhysicsShapeQueryParameters2D:get_shape_rid() end + +--- @param transform Transform2D +function PhysicsShapeQueryParameters2D:set_transform(transform) end + +--- @return Transform2D +function PhysicsShapeQueryParameters2D:get_transform() end + +--- @param motion Vector2 +function PhysicsShapeQueryParameters2D:set_motion(motion) end + +--- @return Vector2 +function PhysicsShapeQueryParameters2D:get_motion() end + +--- @param margin float +function PhysicsShapeQueryParameters2D:set_margin(margin) end + +--- @return float +function PhysicsShapeQueryParameters2D:get_margin() end + +--- @param collision_mask int +function PhysicsShapeQueryParameters2D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsShapeQueryParameters2D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsShapeQueryParameters2D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsShapeQueryParameters2D:get_exclude() end + +--- @param enable bool +function PhysicsShapeQueryParameters2D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsShapeQueryParameters2D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsShapeQueryParameters2D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsShapeQueryParameters2D:is_collide_with_areas_enabled() end + + +----------------------------------------------------------- +-- PhysicsShapeQueryParameters3D +----------------------------------------------------------- + +--- @class PhysicsShapeQueryParameters3D: RefCounted, { [string]: any } +--- @field collision_mask int +--- @field exclude Array[RID] +--- @field margin float +--- @field motion Vector3 +--- @field shape Shape3D +--- @field shape_rid RID +--- @field transform Transform3D +--- @field collide_with_bodies bool +--- @field collide_with_areas bool +PhysicsShapeQueryParameters3D = {} + +--- @return PhysicsShapeQueryParameters3D +function PhysicsShapeQueryParameters3D:new() end + +--- @param shape Resource +function PhysicsShapeQueryParameters3D:set_shape(shape) end + +--- @return Resource +function PhysicsShapeQueryParameters3D:get_shape() end + +--- @param shape RID +function PhysicsShapeQueryParameters3D:set_shape_rid(shape) end + +--- @return RID +function PhysicsShapeQueryParameters3D:get_shape_rid() end + +--- @param transform Transform3D +function PhysicsShapeQueryParameters3D:set_transform(transform) end + +--- @return Transform3D +function PhysicsShapeQueryParameters3D:get_transform() end + +--- @param motion Vector3 +function PhysicsShapeQueryParameters3D:set_motion(motion) end + +--- @return Vector3 +function PhysicsShapeQueryParameters3D:get_motion() end + +--- @param margin float +function PhysicsShapeQueryParameters3D:set_margin(margin) end + +--- @return float +function PhysicsShapeQueryParameters3D:get_margin() end + +--- @param collision_mask int +function PhysicsShapeQueryParameters3D:set_collision_mask(collision_mask) end + +--- @return int +function PhysicsShapeQueryParameters3D:get_collision_mask() end + +--- @param exclude Array[RID] +function PhysicsShapeQueryParameters3D:set_exclude(exclude) end + +--- @return Array[RID] +function PhysicsShapeQueryParameters3D:get_exclude() end + +--- @param enable bool +function PhysicsShapeQueryParameters3D:set_collide_with_bodies(enable) end + +--- @return bool +function PhysicsShapeQueryParameters3D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function PhysicsShapeQueryParameters3D:set_collide_with_areas(enable) end + +--- @return bool +function PhysicsShapeQueryParameters3D:is_collide_with_areas_enabled() end + + +----------------------------------------------------------- +-- PhysicsTestMotionParameters2D +----------------------------------------------------------- + +--- @class PhysicsTestMotionParameters2D: RefCounted, { [string]: any } +--- @field from Transform2D +--- @field motion Vector2 +--- @field margin float +--- @field collide_separation_ray bool +--- @field exclude_bodies Array[RID] +--- @field exclude_objects Array +--- @field recovery_as_collision bool +PhysicsTestMotionParameters2D = {} + +--- @return PhysicsTestMotionParameters2D +function PhysicsTestMotionParameters2D:new() end + +--- @return Transform2D +function PhysicsTestMotionParameters2D:get_from() end + +--- @param from Transform2D +function PhysicsTestMotionParameters2D:set_from(from) end + +--- @return Vector2 +function PhysicsTestMotionParameters2D:get_motion() end + +--- @param motion Vector2 +function PhysicsTestMotionParameters2D:set_motion(motion) end + +--- @return float +function PhysicsTestMotionParameters2D:get_margin() end + +--- @param margin float +function PhysicsTestMotionParameters2D:set_margin(margin) end + +--- @return bool +function PhysicsTestMotionParameters2D:is_collide_separation_ray_enabled() end + +--- @param enabled bool +function PhysicsTestMotionParameters2D:set_collide_separation_ray_enabled(enabled) end + +--- @return Array[RID] +function PhysicsTestMotionParameters2D:get_exclude_bodies() end + +--- @param exclude_list Array[RID] +function PhysicsTestMotionParameters2D:set_exclude_bodies(exclude_list) end + +--- @return Array[int] +function PhysicsTestMotionParameters2D:get_exclude_objects() end + +--- @param exclude_list Array[int] +function PhysicsTestMotionParameters2D:set_exclude_objects(exclude_list) end + +--- @return bool +function PhysicsTestMotionParameters2D:is_recovery_as_collision_enabled() end + +--- @param enabled bool +function PhysicsTestMotionParameters2D:set_recovery_as_collision_enabled(enabled) end + + +----------------------------------------------------------- +-- PhysicsTestMotionParameters3D +----------------------------------------------------------- + +--- @class PhysicsTestMotionParameters3D: RefCounted, { [string]: any } +--- @field from Transform3D +--- @field motion Vector3 +--- @field margin float +--- @field max_collisions int +--- @field collide_separation_ray bool +--- @field exclude_bodies Array[RID] +--- @field exclude_objects Array +--- @field recovery_as_collision bool +PhysicsTestMotionParameters3D = {} + +--- @return PhysicsTestMotionParameters3D +function PhysicsTestMotionParameters3D:new() end + +--- @return Transform3D +function PhysicsTestMotionParameters3D:get_from() end + +--- @param from Transform3D +function PhysicsTestMotionParameters3D:set_from(from) end + +--- @return Vector3 +function PhysicsTestMotionParameters3D:get_motion() end + +--- @param motion Vector3 +function PhysicsTestMotionParameters3D:set_motion(motion) end + +--- @return float +function PhysicsTestMotionParameters3D:get_margin() end + +--- @param margin float +function PhysicsTestMotionParameters3D:set_margin(margin) end + +--- @return int +function PhysicsTestMotionParameters3D:get_max_collisions() end + +--- @param max_collisions int +function PhysicsTestMotionParameters3D:set_max_collisions(max_collisions) end + +--- @return bool +function PhysicsTestMotionParameters3D:is_collide_separation_ray_enabled() end + +--- @param enabled bool +function PhysicsTestMotionParameters3D:set_collide_separation_ray_enabled(enabled) end + +--- @return Array[RID] +function PhysicsTestMotionParameters3D:get_exclude_bodies() end + +--- @param exclude_list Array[RID] +function PhysicsTestMotionParameters3D:set_exclude_bodies(exclude_list) end + +--- @return Array[int] +function PhysicsTestMotionParameters3D:get_exclude_objects() end + +--- @param exclude_list Array[int] +function PhysicsTestMotionParameters3D:set_exclude_objects(exclude_list) end + +--- @return bool +function PhysicsTestMotionParameters3D:is_recovery_as_collision_enabled() end + +--- @param enabled bool +function PhysicsTestMotionParameters3D:set_recovery_as_collision_enabled(enabled) end + + +----------------------------------------------------------- +-- PhysicsTestMotionResult2D +----------------------------------------------------------- + +--- @class PhysicsTestMotionResult2D: RefCounted, { [string]: any } +PhysicsTestMotionResult2D = {} + +--- @return PhysicsTestMotionResult2D +function PhysicsTestMotionResult2D:new() end + +--- @return Vector2 +function PhysicsTestMotionResult2D:get_travel() end + +--- @return Vector2 +function PhysicsTestMotionResult2D:get_remainder() end + +--- @return Vector2 +function PhysicsTestMotionResult2D:get_collision_point() end + +--- @return Vector2 +function PhysicsTestMotionResult2D:get_collision_normal() end + +--- @return Vector2 +function PhysicsTestMotionResult2D:get_collider_velocity() end + +--- @return int +function PhysicsTestMotionResult2D:get_collider_id() end + +--- @return RID +function PhysicsTestMotionResult2D:get_collider_rid() end + +--- @return Object +function PhysicsTestMotionResult2D:get_collider() end + +--- @return int +function PhysicsTestMotionResult2D:get_collider_shape() end + +--- @return int +function PhysicsTestMotionResult2D:get_collision_local_shape() end + +--- @return float +function PhysicsTestMotionResult2D:get_collision_depth() end + +--- @return float +function PhysicsTestMotionResult2D:get_collision_safe_fraction() end + +--- @return float +function PhysicsTestMotionResult2D:get_collision_unsafe_fraction() end + + +----------------------------------------------------------- +-- PhysicsTestMotionResult3D +----------------------------------------------------------- + +--- @class PhysicsTestMotionResult3D: RefCounted, { [string]: any } +PhysicsTestMotionResult3D = {} + +--- @return PhysicsTestMotionResult3D +function PhysicsTestMotionResult3D:new() end + +--- @return Vector3 +function PhysicsTestMotionResult3D:get_travel() end + +--- @return Vector3 +function PhysicsTestMotionResult3D:get_remainder() end + +--- @return float +function PhysicsTestMotionResult3D:get_collision_safe_fraction() end + +--- @return float +function PhysicsTestMotionResult3D:get_collision_unsafe_fraction() end + +--- @return int +function PhysicsTestMotionResult3D:get_collision_count() end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function PhysicsTestMotionResult3D:get_collision_point(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function PhysicsTestMotionResult3D:get_collision_normal(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Vector3 +function PhysicsTestMotionResult3D:get_collider_velocity(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return int +function PhysicsTestMotionResult3D:get_collider_id(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return RID +function PhysicsTestMotionResult3D:get_collider_rid(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return Object +function PhysicsTestMotionResult3D:get_collider(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return int +function PhysicsTestMotionResult3D:get_collider_shape(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return int +function PhysicsTestMotionResult3D:get_collision_local_shape(collision_index) end + +--- @param collision_index int? Default: 0 +--- @return float +function PhysicsTestMotionResult3D:get_collision_depth(collision_index) end + + +----------------------------------------------------------- +-- PinJoint2D +----------------------------------------------------------- + +--- @class PinJoint2D: Joint2D, { [string]: any } +--- @field softness float +--- @field angular_limit_enabled bool +--- @field angular_limit_lower float +--- @field angular_limit_upper float +--- @field motor_enabled bool +--- @field motor_target_velocity float +PinJoint2D = {} + +--- @return PinJoint2D +function PinJoint2D:new() end + +--- @param softness float +function PinJoint2D:set_softness(softness) end + +--- @return float +function PinJoint2D:get_softness() end + +--- @param angular_limit_lower float +function PinJoint2D:set_angular_limit_lower(angular_limit_lower) end + +--- @return float +function PinJoint2D:get_angular_limit_lower() end + +--- @param angular_limit_upper float +function PinJoint2D:set_angular_limit_upper(angular_limit_upper) end + +--- @return float +function PinJoint2D:get_angular_limit_upper() end + +--- @param motor_target_velocity float +function PinJoint2D:set_motor_target_velocity(motor_target_velocity) end + +--- @return float +function PinJoint2D:get_motor_target_velocity() end + +--- @param enabled bool +function PinJoint2D:set_motor_enabled(enabled) end + +--- @return bool +function PinJoint2D:is_motor_enabled() end + +--- @param enabled bool +function PinJoint2D:set_angular_limit_enabled(enabled) end + +--- @return bool +function PinJoint2D:is_angular_limit_enabled() end + + +----------------------------------------------------------- +-- PinJoint3D +----------------------------------------------------------- + +--- @class PinJoint3D: Joint3D, { [string]: any } +PinJoint3D = {} + +--- @return PinJoint3D +function PinJoint3D:new() end + +--- @alias PinJoint3D.Param `PinJoint3D.PARAM_BIAS` | `PinJoint3D.PARAM_DAMPING` | `PinJoint3D.PARAM_IMPULSE_CLAMP` +PinJoint3D.PARAM_BIAS = 0 +PinJoint3D.PARAM_DAMPING = 1 +PinJoint3D.PARAM_IMPULSE_CLAMP = 2 + +--- @param param PinJoint3D.Param +--- @param value float +function PinJoint3D:set_param(param, value) end + +--- @param param PinJoint3D.Param +--- @return float +function PinJoint3D:get_param(param) end + + +----------------------------------------------------------- +-- PlaceholderCubemap +----------------------------------------------------------- + +--- @class PlaceholderCubemap: PlaceholderTextureLayered, { [string]: any } +PlaceholderCubemap = {} + +--- @return PlaceholderCubemap +function PlaceholderCubemap:new() end + + +----------------------------------------------------------- +-- PlaceholderCubemapArray +----------------------------------------------------------- + +--- @class PlaceholderCubemapArray: PlaceholderTextureLayered, { [string]: any } +PlaceholderCubemapArray = {} + +--- @return PlaceholderCubemapArray +function PlaceholderCubemapArray:new() end + + +----------------------------------------------------------- +-- PlaceholderMaterial +----------------------------------------------------------- + +--- @class PlaceholderMaterial: Material, { [string]: any } +PlaceholderMaterial = {} + +--- @return PlaceholderMaterial +function PlaceholderMaterial:new() end + + +----------------------------------------------------------- +-- PlaceholderMesh +----------------------------------------------------------- + +--- @class PlaceholderMesh: Mesh, { [string]: any } +--- @field aabb AABB +PlaceholderMesh = {} + +--- @return PlaceholderMesh +function PlaceholderMesh:new() end + +--- @param aabb AABB +function PlaceholderMesh:set_aabb(aabb) end + + +----------------------------------------------------------- +-- PlaceholderTexture2D +----------------------------------------------------------- + +--- @class PlaceholderTexture2D: Texture2D, { [string]: any } +--- @field size Vector2 +PlaceholderTexture2D = {} + +--- @return PlaceholderTexture2D +function PlaceholderTexture2D:new() end + +--- @param size Vector2 +function PlaceholderTexture2D:set_size(size) end + + +----------------------------------------------------------- +-- PlaceholderTexture2DArray +----------------------------------------------------------- + +--- @class PlaceholderTexture2DArray: PlaceholderTextureLayered, { [string]: any } +PlaceholderTexture2DArray = {} + +--- @return PlaceholderTexture2DArray +function PlaceholderTexture2DArray:new() end + + +----------------------------------------------------------- +-- PlaceholderTexture3D +----------------------------------------------------------- + +--- @class PlaceholderTexture3D: Texture3D, { [string]: any } +--- @field size Vector3i +PlaceholderTexture3D = {} + +--- @return PlaceholderTexture3D +function PlaceholderTexture3D:new() end + +--- @param size Vector3i +function PlaceholderTexture3D:set_size(size) end + +--- @return Vector3i +function PlaceholderTexture3D:get_size() end + + +----------------------------------------------------------- +-- PlaceholderTextureLayered +----------------------------------------------------------- + +--- @class PlaceholderTextureLayered: TextureLayered, { [string]: any } +--- @field size Vector2i +--- @field layers int +PlaceholderTextureLayered = {} + +--- @param size Vector2i +function PlaceholderTextureLayered:set_size(size) end + +--- @return Vector2i +function PlaceholderTextureLayered:get_size() end + +--- @param layers int +function PlaceholderTextureLayered:set_layers(layers) end + + +----------------------------------------------------------- +-- PlaneMesh +----------------------------------------------------------- + +--- @class PlaneMesh: PrimitiveMesh, { [string]: any } +--- @field size Vector2 +--- @field subdivide_width int +--- @field subdivide_depth int +--- @field center_offset Vector3 +--- @field orientation int +PlaneMesh = {} + +--- @return PlaneMesh +function PlaneMesh:new() end + +--- @alias PlaneMesh.Orientation `PlaneMesh.FACE_X` | `PlaneMesh.FACE_Y` | `PlaneMesh.FACE_Z` +PlaneMesh.FACE_X = 0 +PlaneMesh.FACE_Y = 1 +PlaneMesh.FACE_Z = 2 + +--- @param size Vector2 +function PlaneMesh:set_size(size) end + +--- @return Vector2 +function PlaneMesh:get_size() end + +--- @param subdivide int +function PlaneMesh:set_subdivide_width(subdivide) end + +--- @return int +function PlaneMesh:get_subdivide_width() end + +--- @param subdivide int +function PlaneMesh:set_subdivide_depth(subdivide) end + +--- @return int +function PlaneMesh:get_subdivide_depth() end + +--- @param offset Vector3 +function PlaneMesh:set_center_offset(offset) end + +--- @return Vector3 +function PlaneMesh:get_center_offset() end + +--- @param orientation PlaneMesh.Orientation +function PlaneMesh:set_orientation(orientation) end + +--- @return PlaneMesh.Orientation +function PlaneMesh:get_orientation() end + + +----------------------------------------------------------- +-- PointLight2D +----------------------------------------------------------- + +--- @class PointLight2D: Light2D, { [string]: any } +--- @field texture Texture2D | -AnimatedTexture | -AtlasTexture | -CameraTexture | -CanvasTexture | -MeshTexture | -Texture2DRD | -ViewportTexture +--- @field offset Vector2 +--- @field texture_scale float +--- @field height float +PointLight2D = {} + +--- @return PointLight2D +function PointLight2D:new() end + +--- @param texture Texture2D +function PointLight2D:set_texture(texture) end + +--- @return Texture2D +function PointLight2D:get_texture() end + +--- @param texture_offset Vector2 +function PointLight2D:set_texture_offset(texture_offset) end + +--- @return Vector2 +function PointLight2D:get_texture_offset() end + +--- @param texture_scale float +function PointLight2D:set_texture_scale(texture_scale) end + +--- @return float +function PointLight2D:get_texture_scale() end + + +----------------------------------------------------------- +-- PointMesh +----------------------------------------------------------- + +--- @class PointMesh: PrimitiveMesh, { [string]: any } +PointMesh = {} + +--- @return PointMesh +function PointMesh:new() end + + +----------------------------------------------------------- +-- Polygon2D +----------------------------------------------------------- + +--- @class Polygon2D: Node2D, { [string]: any } +--- @field color Color +--- @field offset Vector2 +--- @field antialiased bool +--- @field texture Texture2D +--- @field texture_offset Vector2 +--- @field texture_scale Vector2 +--- @field texture_rotation float +--- @field skeleton NodePath +--- @field invert_enabled bool +--- @field invert_border float +--- @field polygon PackedVector2Array +--- @field uv PackedVector2Array +--- @field vertex_colors PackedColorArray +--- @field polygons Array +--- @field bones Array +--- @field internal_vertex_count int +Polygon2D = {} + +--- @return Polygon2D +function Polygon2D:new() end + +--- @param polygon PackedVector2Array +function Polygon2D:set_polygon(polygon) end + +--- @return PackedVector2Array +function Polygon2D:get_polygon() end + +--- @param uv PackedVector2Array +function Polygon2D:set_uv(uv) end + +--- @return PackedVector2Array +function Polygon2D:get_uv() end + +--- @param color Color +function Polygon2D:set_color(color) end + +--- @return Color +function Polygon2D:get_color() end + +--- @param polygons Array +function Polygon2D:set_polygons(polygons) end + +--- @return Array +function Polygon2D:get_polygons() end + +--- @param vertex_colors PackedColorArray +function Polygon2D:set_vertex_colors(vertex_colors) end + +--- @return PackedColorArray +function Polygon2D:get_vertex_colors() end + +--- @param texture Texture2D +function Polygon2D:set_texture(texture) end + +--- @return Texture2D +function Polygon2D:get_texture() end + +--- @param texture_offset Vector2 +function Polygon2D:set_texture_offset(texture_offset) end + +--- @return Vector2 +function Polygon2D:get_texture_offset() end + +--- @param texture_rotation float +function Polygon2D:set_texture_rotation(texture_rotation) end + +--- @return float +function Polygon2D:get_texture_rotation() end + +--- @param texture_scale Vector2 +function Polygon2D:set_texture_scale(texture_scale) end + +--- @return Vector2 +function Polygon2D:get_texture_scale() end + +--- @param invert bool +function Polygon2D:set_invert_enabled(invert) end + +--- @return bool +function Polygon2D:get_invert_enabled() end + +--- @param antialiased bool +function Polygon2D:set_antialiased(antialiased) end + +--- @return bool +function Polygon2D:get_antialiased() end + +--- @param invert_border float +function Polygon2D:set_invert_border(invert_border) end + +--- @return float +function Polygon2D:get_invert_border() end + +--- @param offset Vector2 +function Polygon2D:set_offset(offset) end + +--- @return Vector2 +function Polygon2D:get_offset() end + +--- @param path NodePath +--- @param weights PackedFloat32Array +function Polygon2D:add_bone(path, weights) end + +--- @return int +function Polygon2D:get_bone_count() end + +--- @param index int +--- @return NodePath +function Polygon2D:get_bone_path(index) end + +--- @param index int +--- @return PackedFloat32Array +function Polygon2D:get_bone_weights(index) end + +--- @param index int +function Polygon2D:erase_bone(index) end + +function Polygon2D:clear_bones() end + +--- @param index int +--- @param path NodePath +function Polygon2D:set_bone_path(index, path) end + +--- @param index int +--- @param weights PackedFloat32Array +function Polygon2D:set_bone_weights(index, weights) end + +--- @param skeleton NodePath +function Polygon2D:set_skeleton(skeleton) end + +--- @return NodePath +function Polygon2D:get_skeleton() end + +--- @param internal_vertex_count int +function Polygon2D:set_internal_vertex_count(internal_vertex_count) end + +--- @return int +function Polygon2D:get_internal_vertex_count() end + + +----------------------------------------------------------- +-- PolygonOccluder3D +----------------------------------------------------------- + +--- @class PolygonOccluder3D: Occluder3D, { [string]: any } +--- @field polygon PackedVector2Array +PolygonOccluder3D = {} + +--- @return PolygonOccluder3D +function PolygonOccluder3D:new() end + +--- @param polygon PackedVector2Array +function PolygonOccluder3D:set_polygon(polygon) end + +--- @return PackedVector2Array +function PolygonOccluder3D:get_polygon() end + + +----------------------------------------------------------- +-- PolygonPathFinder +----------------------------------------------------------- + +--- @class PolygonPathFinder: Resource, { [string]: any } +--- @field data Dictionary +PolygonPathFinder = {} + +--- @return PolygonPathFinder +function PolygonPathFinder:new() end + +--- @param points PackedVector2Array +--- @param connections PackedInt32Array +function PolygonPathFinder:setup(points, connections) end + +--- @param from Vector2 +--- @param to Vector2 +--- @return PackedVector2Array +function PolygonPathFinder:find_path(from, to) end + +--- @param from Vector2 +--- @param to Vector2 +--- @return PackedVector2Array +function PolygonPathFinder:get_intersections(from, to) end + +--- @param point Vector2 +--- @return Vector2 +function PolygonPathFinder:get_closest_point(point) end + +--- @param point Vector2 +--- @return bool +function PolygonPathFinder:is_point_inside(point) end + +--- @param idx int +--- @param penalty float +function PolygonPathFinder:set_point_penalty(idx, penalty) end + +--- @param idx int +--- @return float +function PolygonPathFinder:get_point_penalty(idx) end + +--- @return Rect2 +function PolygonPathFinder:get_bounds() end + + +----------------------------------------------------------- +-- Popup +----------------------------------------------------------- + +--- @class Popup: Window, { [string]: any } +Popup = {} + +--- @return Popup +function Popup:new() end + +Popup.popup_hide = Signal() + + +----------------------------------------------------------- +-- PopupMenu +----------------------------------------------------------- + +--- @class PopupMenu: Popup, { [string]: any } +--- @field hide_on_item_selection bool +--- @field hide_on_checkable_item_selection bool +--- @field hide_on_state_item_selection bool +--- @field submenu_popup_delay float +--- @field allow_search bool +--- @field system_menu_id int +--- @field prefer_native_menu bool +--- @field item_count int +PopupMenu = {} + +--- @return PopupMenu +function PopupMenu:new() end + +PopupMenu.id_pressed = Signal() +PopupMenu.id_focused = Signal() +PopupMenu.index_pressed = Signal() +PopupMenu.menu_changed = Signal() + +--- @param event InputEvent +--- @param for_global_only bool? Default: false +--- @return bool +function PopupMenu:activate_item_by_event(event, for_global_only) end + +--- @param enabled bool +function PopupMenu:set_prefer_native_menu(enabled) end + +--- @return bool +function PopupMenu:is_prefer_native_menu() end + +--- @return bool +function PopupMenu:is_native_menu() end + +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_item(label, id, accel) end + +--- @param texture Texture2D +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_icon_item(texture, label, id, accel) end + +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_check_item(label, id, accel) end + +--- @param texture Texture2D +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_icon_check_item(texture, label, id, accel) end + +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_radio_check_item(label, id, accel) end + +--- @param texture Texture2D +--- @param label String +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_icon_radio_check_item(texture, label, id, accel) end + +--- @param label String +--- @param max_states int +--- @param default_state int? Default: 0 +--- @param id int? Default: -1 +--- @param accel Key? Default: 0 +function PopupMenu:add_multistate_item(label, max_states, default_state, id, accel) end + +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +--- @param allow_echo bool? Default: false +function PopupMenu:add_shortcut(shortcut, id, global, allow_echo) end + +--- @param texture Texture2D +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +--- @param allow_echo bool? Default: false +function PopupMenu:add_icon_shortcut(texture, shortcut, id, global, allow_echo) end + +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +function PopupMenu:add_check_shortcut(shortcut, id, global) end + +--- @param texture Texture2D +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +function PopupMenu:add_icon_check_shortcut(texture, shortcut, id, global) end + +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +function PopupMenu:add_radio_check_shortcut(shortcut, id, global) end + +--- @param texture Texture2D +--- @param shortcut Shortcut +--- @param id int? Default: -1 +--- @param global bool? Default: false +function PopupMenu:add_icon_radio_check_shortcut(texture, shortcut, id, global) end + +--- @param label String +--- @param submenu String +--- @param id int? Default: -1 +function PopupMenu:add_submenu_item(label, submenu, id) end + +--- @param label String +--- @param submenu PopupMenu +--- @param id int? Default: -1 +function PopupMenu:add_submenu_node_item(label, submenu, id) end + +--- @param index int +--- @param text String +function PopupMenu:set_item_text(index, text) end + +--- @param index int +--- @param direction Control.TextDirection +function PopupMenu:set_item_text_direction(index, direction) end + +--- @param index int +--- @param language String +function PopupMenu:set_item_language(index, language) end + +--- @param index int +--- @param mode Node.AutoTranslateMode +function PopupMenu:set_item_auto_translate_mode(index, mode) end + +--- @param index int +--- @param icon Texture2D +function PopupMenu:set_item_icon(index, icon) end + +--- @param index int +--- @param width int +function PopupMenu:set_item_icon_max_width(index, width) end + +--- @param index int +--- @param modulate Color +function PopupMenu:set_item_icon_modulate(index, modulate) end + +--- @param index int +--- @param checked bool +function PopupMenu:set_item_checked(index, checked) end + +--- @param index int +--- @param id int +function PopupMenu:set_item_id(index, id) end + +--- @param index int +--- @param accel Key +function PopupMenu:set_item_accelerator(index, accel) end + +--- @param index int +--- @param metadata any +function PopupMenu:set_item_metadata(index, metadata) end + +--- @param index int +--- @param disabled bool +function PopupMenu:set_item_disabled(index, disabled) end + +--- @param index int +--- @param submenu String +function PopupMenu:set_item_submenu(index, submenu) end + +--- @param index int +--- @param submenu PopupMenu +function PopupMenu:set_item_submenu_node(index, submenu) end + +--- @param index int +--- @param enable bool +function PopupMenu:set_item_as_separator(index, enable) end + +--- @param index int +--- @param enable bool +function PopupMenu:set_item_as_checkable(index, enable) end + +--- @param index int +--- @param enable bool +function PopupMenu:set_item_as_radio_checkable(index, enable) end + +--- @param index int +--- @param tooltip String +function PopupMenu:set_item_tooltip(index, tooltip) end + +--- @param index int +--- @param shortcut Shortcut +--- @param global bool? Default: false +function PopupMenu:set_item_shortcut(index, shortcut, global) end + +--- @param index int +--- @param indent int +function PopupMenu:set_item_indent(index, indent) end + +--- @param index int +--- @param state int +function PopupMenu:set_item_multistate(index, state) end + +--- @param index int +--- @param max_states int +function PopupMenu:set_item_multistate_max(index, max_states) end + +--- @param index int +--- @param disabled bool +function PopupMenu:set_item_shortcut_disabled(index, disabled) end + +--- @param index int +function PopupMenu:toggle_item_checked(index) end + +--- @param index int +function PopupMenu:toggle_item_multistate(index) end + +--- @param index int +--- @return String +function PopupMenu:get_item_text(index) end + +--- @param index int +--- @return Control.TextDirection +function PopupMenu:get_item_text_direction(index) end + +--- @param index int +--- @return String +function PopupMenu:get_item_language(index) end + +--- @param index int +--- @return Node.AutoTranslateMode +function PopupMenu:get_item_auto_translate_mode(index) end + +--- @param index int +--- @return Texture2D +function PopupMenu:get_item_icon(index) end + +--- @param index int +--- @return int +function PopupMenu:get_item_icon_max_width(index) end + +--- @param index int +--- @return Color +function PopupMenu:get_item_icon_modulate(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_checked(index) end + +--- @param index int +--- @return int +function PopupMenu:get_item_id(index) end + +--- @param id int +--- @return int +function PopupMenu:get_item_index(id) end + +--- @param index int +--- @return Key +function PopupMenu:get_item_accelerator(index) end + +--- @param index int +--- @return any +function PopupMenu:get_item_metadata(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_disabled(index) end + +--- @param index int +--- @return String +function PopupMenu:get_item_submenu(index) end + +--- @param index int +--- @return PopupMenu +function PopupMenu:get_item_submenu_node(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_separator(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_checkable(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_radio_checkable(index) end + +--- @param index int +--- @return bool +function PopupMenu:is_item_shortcut_disabled(index) end + +--- @param index int +--- @return String +function PopupMenu:get_item_tooltip(index) end + +--- @param index int +--- @return Shortcut +function PopupMenu:get_item_shortcut(index) end + +--- @param index int +--- @return int +function PopupMenu:get_item_indent(index) end + +--- @param index int +--- @return int +function PopupMenu:get_item_multistate_max(index) end + +--- @param index int +--- @return int +function PopupMenu:get_item_multistate(index) end + +--- @param index int +function PopupMenu:set_focused_item(index) end + +--- @return int +function PopupMenu:get_focused_item() end + +--- @param count int +function PopupMenu:set_item_count(count) end + +--- @return int +function PopupMenu:get_item_count() end + +--- @param index int +function PopupMenu:scroll_to_item(index) end + +--- @param index int +function PopupMenu:remove_item(index) end + +--- @param label String? Default: "" +--- @param id int? Default: -1 +function PopupMenu:add_separator(label, id) end + +--- @param free_submenus bool? Default: false +function PopupMenu:clear(free_submenus) end + +--- @param enable bool +function PopupMenu:set_hide_on_item_selection(enable) end + +--- @return bool +function PopupMenu:is_hide_on_item_selection() end + +--- @param enable bool +function PopupMenu:set_hide_on_checkable_item_selection(enable) end + +--- @return bool +function PopupMenu:is_hide_on_checkable_item_selection() end + +--- @param enable bool +function PopupMenu:set_hide_on_state_item_selection(enable) end + +--- @return bool +function PopupMenu:is_hide_on_state_item_selection() end + +--- @param seconds float +function PopupMenu:set_submenu_popup_delay(seconds) end + +--- @return float +function PopupMenu:get_submenu_popup_delay() end + +--- @param allow bool +function PopupMenu:set_allow_search(allow) end + +--- @return bool +function PopupMenu:get_allow_search() end + +--- @return bool +function PopupMenu:is_system_menu() end + +--- @param system_menu_id NativeMenu.SystemMenus +function PopupMenu:set_system_menu(system_menu_id) end + +--- @return NativeMenu.SystemMenus +function PopupMenu:get_system_menu() end + + +----------------------------------------------------------- +-- PopupPanel +----------------------------------------------------------- + +--- @class PopupPanel: Popup, { [string]: any } +PopupPanel = {} + +--- @return PopupPanel +function PopupPanel:new() end + + +----------------------------------------------------------- +-- PortableCompressedTexture2D +----------------------------------------------------------- + +--- @class PortableCompressedTexture2D: Texture2D, { [string]: any } +--- @field size_override Vector2 +--- @field keep_compressed_buffer bool +PortableCompressedTexture2D = {} + +--- @return PortableCompressedTexture2D +function PortableCompressedTexture2D:new() end + +--- @alias PortableCompressedTexture2D.CompressionMode `PortableCompressedTexture2D.COMPRESSION_MODE_LOSSLESS` | `PortableCompressedTexture2D.COMPRESSION_MODE_LOSSY` | `PortableCompressedTexture2D.COMPRESSION_MODE_BASIS_UNIVERSAL` | `PortableCompressedTexture2D.COMPRESSION_MODE_S3TC` | `PortableCompressedTexture2D.COMPRESSION_MODE_ETC2` | `PortableCompressedTexture2D.COMPRESSION_MODE_BPTC` | `PortableCompressedTexture2D.COMPRESSION_MODE_ASTC` +PortableCompressedTexture2D.COMPRESSION_MODE_LOSSLESS = 0 +PortableCompressedTexture2D.COMPRESSION_MODE_LOSSY = 1 +PortableCompressedTexture2D.COMPRESSION_MODE_BASIS_UNIVERSAL = 2 +PortableCompressedTexture2D.COMPRESSION_MODE_S3TC = 3 +PortableCompressedTexture2D.COMPRESSION_MODE_ETC2 = 4 +PortableCompressedTexture2D.COMPRESSION_MODE_BPTC = 5 +PortableCompressedTexture2D.COMPRESSION_MODE_ASTC = 6 + +--- @param image Image +--- @param compression_mode PortableCompressedTexture2D.CompressionMode +--- @param normal_map bool? Default: false +--- @param lossy_quality float? Default: 0.8 +function PortableCompressedTexture2D:create_from_image(image, compression_mode, normal_map, lossy_quality) end + +--- @return Image.Format +function PortableCompressedTexture2D:get_format() end + +--- @return PortableCompressedTexture2D.CompressionMode +function PortableCompressedTexture2D:get_compression_mode() end + +--- @param size Vector2 +function PortableCompressedTexture2D:set_size_override(size) end + +--- @return Vector2 +function PortableCompressedTexture2D:get_size_override() end + +--- @param keep bool +function PortableCompressedTexture2D:set_keep_compressed_buffer(keep) end + +--- @return bool +function PortableCompressedTexture2D:is_keeping_compressed_buffer() end + +--- @param uastc_level int +--- @param rdo_quality_loss float +function PortableCompressedTexture2D:set_basisu_compressor_params(uastc_level, rdo_quality_loss) end + +--- static +--- @param keep bool +function PortableCompressedTexture2D:set_keep_all_compressed_buffers(keep) end + +--- static +--- @return bool +function PortableCompressedTexture2D:is_keeping_all_compressed_buffers() end + + +----------------------------------------------------------- +-- PrimitiveMesh +----------------------------------------------------------- + +--- @class PrimitiveMesh: Mesh, { [string]: any } +--- @field material BaseMaterial3D | ShaderMaterial +--- @field custom_aabb AABB +--- @field flip_faces bool +--- @field add_uv2 bool +--- @field uv2_padding float +PrimitiveMesh = {} + +--- @return PrimitiveMesh +function PrimitiveMesh:new() end + +--- @return Array +function PrimitiveMesh:_create_mesh_array() end + +--- @param material Material +function PrimitiveMesh:set_material(material) end + +--- @return Material +function PrimitiveMesh:get_material() end + +--- @return Array +function PrimitiveMesh:get_mesh_arrays() end + +--- @param aabb AABB +function PrimitiveMesh:set_custom_aabb(aabb) end + +--- @return AABB +function PrimitiveMesh:get_custom_aabb() end + +--- @param flip_faces bool +function PrimitiveMesh:set_flip_faces(flip_faces) end + +--- @return bool +function PrimitiveMesh:get_flip_faces() end + +--- @param add_uv2 bool +function PrimitiveMesh:set_add_uv2(add_uv2) end + +--- @return bool +function PrimitiveMesh:get_add_uv2() end + +--- @param uv2_padding float +function PrimitiveMesh:set_uv2_padding(uv2_padding) end + +--- @return float +function PrimitiveMesh:get_uv2_padding() end + +function PrimitiveMesh:request_update() end + + +----------------------------------------------------------- +-- PrismMesh +----------------------------------------------------------- + +--- @class PrismMesh: PrimitiveMesh, { [string]: any } +--- @field left_to_right float +--- @field size Vector3 +--- @field subdivide_width int +--- @field subdivide_height int +--- @field subdivide_depth int +PrismMesh = {} + +--- @return PrismMesh +function PrismMesh:new() end + +--- @param left_to_right float +function PrismMesh:set_left_to_right(left_to_right) end + +--- @return float +function PrismMesh:get_left_to_right() end + +--- @param size Vector3 +function PrismMesh:set_size(size) end + +--- @return Vector3 +function PrismMesh:get_size() end + +--- @param segments int +function PrismMesh:set_subdivide_width(segments) end + +--- @return int +function PrismMesh:get_subdivide_width() end + +--- @param segments int +function PrismMesh:set_subdivide_height(segments) end + +--- @return int +function PrismMesh:get_subdivide_height() end + +--- @param segments int +function PrismMesh:set_subdivide_depth(segments) end + +--- @return int +function PrismMesh:get_subdivide_depth() end + + +----------------------------------------------------------- +-- ProceduralSkyMaterial +----------------------------------------------------------- + +--- @class ProceduralSkyMaterial: Material, { [string]: any } +--- @field sky_top_color Color +--- @field sky_horizon_color Color +--- @field sky_curve float +--- @field sky_energy_multiplier float +--- @field sky_cover Texture2D +--- @field sky_cover_modulate Color +--- @field ground_bottom_color Color +--- @field ground_horizon_color Color +--- @field ground_curve float +--- @field ground_energy_multiplier float +--- @field sun_angle_max float +--- @field sun_curve float +--- @field use_debanding bool +--- @field energy_multiplier float +ProceduralSkyMaterial = {} + +--- @return ProceduralSkyMaterial +function ProceduralSkyMaterial:new() end + +--- @param color Color +function ProceduralSkyMaterial:set_sky_top_color(color) end + +--- @return Color +function ProceduralSkyMaterial:get_sky_top_color() end + +--- @param color Color +function ProceduralSkyMaterial:set_sky_horizon_color(color) end + +--- @return Color +function ProceduralSkyMaterial:get_sky_horizon_color() end + +--- @param curve float +function ProceduralSkyMaterial:set_sky_curve(curve) end + +--- @return float +function ProceduralSkyMaterial:get_sky_curve() end + +--- @param multiplier float +function ProceduralSkyMaterial:set_sky_energy_multiplier(multiplier) end + +--- @return float +function ProceduralSkyMaterial:get_sky_energy_multiplier() end + +--- @param sky_cover Texture2D +function ProceduralSkyMaterial:set_sky_cover(sky_cover) end + +--- @return Texture2D +function ProceduralSkyMaterial:get_sky_cover() end + +--- @param color Color +function ProceduralSkyMaterial:set_sky_cover_modulate(color) end + +--- @return Color +function ProceduralSkyMaterial:get_sky_cover_modulate() end + +--- @param color Color +function ProceduralSkyMaterial:set_ground_bottom_color(color) end + +--- @return Color +function ProceduralSkyMaterial:get_ground_bottom_color() end + +--- @param color Color +function ProceduralSkyMaterial:set_ground_horizon_color(color) end + +--- @return Color +function ProceduralSkyMaterial:get_ground_horizon_color() end + +--- @param curve float +function ProceduralSkyMaterial:set_ground_curve(curve) end + +--- @return float +function ProceduralSkyMaterial:get_ground_curve() end + +--- @param energy float +function ProceduralSkyMaterial:set_ground_energy_multiplier(energy) end + +--- @return float +function ProceduralSkyMaterial:get_ground_energy_multiplier() end + +--- @param degrees float +function ProceduralSkyMaterial:set_sun_angle_max(degrees) end + +--- @return float +function ProceduralSkyMaterial:get_sun_angle_max() end + +--- @param curve float +function ProceduralSkyMaterial:set_sun_curve(curve) end + +--- @return float +function ProceduralSkyMaterial:get_sun_curve() end + +--- @param use_debanding bool +function ProceduralSkyMaterial:set_use_debanding(use_debanding) end + +--- @return bool +function ProceduralSkyMaterial:get_use_debanding() end + +--- @param multiplier float +function ProceduralSkyMaterial:set_energy_multiplier(multiplier) end + +--- @return float +function ProceduralSkyMaterial:get_energy_multiplier() end + + +----------------------------------------------------------- +-- ProgressBar +----------------------------------------------------------- + +--- @class ProgressBar: Range, { [string]: any } +--- @field fill_mode int +--- @field show_percentage bool +--- @field indeterminate bool +--- @field editor_preview_indeterminate bool +ProgressBar = {} + +--- @return ProgressBar +function ProgressBar:new() end + +--- @alias ProgressBar.FillMode `ProgressBar.FILL_BEGIN_TO_END` | `ProgressBar.FILL_END_TO_BEGIN` | `ProgressBar.FILL_TOP_TO_BOTTOM` | `ProgressBar.FILL_BOTTOM_TO_TOP` +ProgressBar.FILL_BEGIN_TO_END = 0 +ProgressBar.FILL_END_TO_BEGIN = 1 +ProgressBar.FILL_TOP_TO_BOTTOM = 2 +ProgressBar.FILL_BOTTOM_TO_TOP = 3 + +--- @param mode int +function ProgressBar:set_fill_mode(mode) end + +--- @return int +function ProgressBar:get_fill_mode() end + +--- @param visible bool +function ProgressBar:set_show_percentage(visible) end + +--- @return bool +function ProgressBar:is_percentage_shown() end + +--- @param indeterminate bool +function ProgressBar:set_indeterminate(indeterminate) end + +--- @return bool +function ProgressBar:is_indeterminate() end + +--- @param preview_indeterminate bool +function ProgressBar:set_editor_preview_indeterminate(preview_indeterminate) end + +--- @return bool +function ProgressBar:is_editor_preview_indeterminate_enabled() end + + +----------------------------------------------------------- +-- ProjectSettings +----------------------------------------------------------- + +--- @class ProjectSettings: Object, { [string]: any } +ProjectSettings = {} + +ProjectSettings.settings_changed = Signal() + +--- @param name String +--- @return bool +function ProjectSettings:has_setting(name) end + +--- @param name String +--- @param value any +function ProjectSettings:set_setting(name, value) end + +--- @param name String +--- @param default_value any? Default: null +--- @return any +function ProjectSettings:get_setting(name, default_value) end + +--- @param name StringName +--- @return any +function ProjectSettings:get_setting_with_override(name) end + +--- @return Array[Dictionary] +function ProjectSettings:get_global_class_list() end + +--- @param name StringName +--- @param features PackedStringArray +--- @return any +function ProjectSettings:get_setting_with_override_and_custom_features(name, features) end + +--- @param name String +--- @param position int +function ProjectSettings:set_order(name, position) end + +--- @param name String +--- @return int +function ProjectSettings:get_order(name) end + +--- @param name String +--- @param value any +function ProjectSettings:set_initial_value(name, value) end + +--- @param name String +--- @param basic bool +function ProjectSettings:set_as_basic(name, basic) end + +--- @param name String +--- @param internal bool +function ProjectSettings:set_as_internal(name, internal) end + +--- @param hint Dictionary +function ProjectSettings:add_property_info(hint) end + +--- @param name String +--- @param restart bool +function ProjectSettings:set_restart_if_changed(name, restart) end + +--- @param name String +function ProjectSettings:clear(name) end + +--- @param path String +--- @return String +function ProjectSettings:localize_path(path) end + +--- @param path String +--- @return String +function ProjectSettings:globalize_path(path) end + +--- @return Error +function ProjectSettings:save() end + +--- @param pack String +--- @param replace_files bool? Default: true +--- @param offset int? Default: 0 +--- @return bool +function ProjectSettings:load_resource_pack(pack, replace_files, offset) end + +--- @param file String +--- @return Error +function ProjectSettings:save_custom(file) end + + +----------------------------------------------------------- +-- PropertyTweener +----------------------------------------------------------- + +--- @class PropertyTweener: Tweener, { [string]: any } +PropertyTweener = {} + +--- @return PropertyTweener +function PropertyTweener:new() end + +--- @param value any +--- @return PropertyTweener +function PropertyTweener:from(value) end + +--- @return PropertyTweener +function PropertyTweener:from_current() end + +--- @return PropertyTweener +function PropertyTweener:as_relative() end + +--- @param trans Tween.TransitionType +--- @return PropertyTweener +function PropertyTweener:set_trans(trans) end + +--- @param ease Tween.EaseType +--- @return PropertyTweener +function PropertyTweener:set_ease(ease) end + +--- @param interpolator_method Callable +--- @return PropertyTweener +function PropertyTweener:set_custom_interpolator(interpolator_method) end + +--- @param delay float +--- @return PropertyTweener +function PropertyTweener:set_delay(delay) end + + +----------------------------------------------------------- +-- QuadMesh +----------------------------------------------------------- + +--- @class QuadMesh: PlaneMesh, { [string]: any } +QuadMesh = {} + +--- @return QuadMesh +function QuadMesh:new() end + + +----------------------------------------------------------- +-- QuadOccluder3D +----------------------------------------------------------- + +--- @class QuadOccluder3D: Occluder3D, { [string]: any } +--- @field size Vector2 +QuadOccluder3D = {} + +--- @return QuadOccluder3D +function QuadOccluder3D:new() end + +--- @param size Vector2 +function QuadOccluder3D:set_size(size) end + +--- @return Vector2 +function QuadOccluder3D:get_size() end + + +----------------------------------------------------------- +-- RDAttachmentFormat +----------------------------------------------------------- + +--- @class RDAttachmentFormat: RefCounted, { [string]: any } +--- @field format int +--- @field samples int +--- @field usage_flags int +RDAttachmentFormat = {} + +--- @return RDAttachmentFormat +function RDAttachmentFormat:new() end + +--- @param p_member RenderingDevice.DataFormat +function RDAttachmentFormat:set_format(p_member) end + +--- @return RenderingDevice.DataFormat +function RDAttachmentFormat:get_format() end + +--- @param p_member RenderingDevice.TextureSamples +function RDAttachmentFormat:set_samples(p_member) end + +--- @return RenderingDevice.TextureSamples +function RDAttachmentFormat:get_samples() end + +--- @param p_member int +function RDAttachmentFormat:set_usage_flags(p_member) end + +--- @return int +function RDAttachmentFormat:get_usage_flags() end + + +----------------------------------------------------------- +-- RDFramebufferPass +----------------------------------------------------------- + +--- @class RDFramebufferPass: RefCounted, { [string]: any } +--- @field color_attachments PackedInt32Array +--- @field input_attachments PackedInt32Array +--- @field resolve_attachments PackedInt32Array +--- @field preserve_attachments PackedInt32Array +--- @field depth_attachment int +RDFramebufferPass = {} + +--- @return RDFramebufferPass +function RDFramebufferPass:new() end + +RDFramebufferPass.ATTACHMENT_UNUSED = -1 + +--- @param p_member PackedInt32Array +function RDFramebufferPass:set_color_attachments(p_member) end + +--- @return PackedInt32Array +function RDFramebufferPass:get_color_attachments() end + +--- @param p_member PackedInt32Array +function RDFramebufferPass:set_input_attachments(p_member) end + +--- @return PackedInt32Array +function RDFramebufferPass:get_input_attachments() end + +--- @param p_member PackedInt32Array +function RDFramebufferPass:set_resolve_attachments(p_member) end + +--- @return PackedInt32Array +function RDFramebufferPass:get_resolve_attachments() end + +--- @param p_member PackedInt32Array +function RDFramebufferPass:set_preserve_attachments(p_member) end + +--- @return PackedInt32Array +function RDFramebufferPass:get_preserve_attachments() end + +--- @param p_member int +function RDFramebufferPass:set_depth_attachment(p_member) end + +--- @return int +function RDFramebufferPass:get_depth_attachment() end + + +----------------------------------------------------------- +-- RDPipelineColorBlendState +----------------------------------------------------------- + +--- @class RDPipelineColorBlendState: RefCounted, { [string]: any } +--- @field enable_logic_op bool +--- @field logic_op int +--- @field blend_constant Color +--- @field attachments Array[RDPipelineColorBlendStateAttachment] +RDPipelineColorBlendState = {} + +--- @return RDPipelineColorBlendState +function RDPipelineColorBlendState:new() end + +--- @param p_member bool +function RDPipelineColorBlendState:set_enable_logic_op(p_member) end + +--- @return bool +function RDPipelineColorBlendState:get_enable_logic_op() end + +--- @param p_member RenderingDevice.LogicOperation +function RDPipelineColorBlendState:set_logic_op(p_member) end + +--- @return RenderingDevice.LogicOperation +function RDPipelineColorBlendState:get_logic_op() end + +--- @param p_member Color +function RDPipelineColorBlendState:set_blend_constant(p_member) end + +--- @return Color +function RDPipelineColorBlendState:get_blend_constant() end + +--- @param attachments Array[RDPipelineColorBlendStateAttachment] +function RDPipelineColorBlendState:set_attachments(attachments) end + +--- @return Array[RDPipelineColorBlendStateAttachment] +function RDPipelineColorBlendState:get_attachments() end + + +----------------------------------------------------------- +-- RDPipelineColorBlendStateAttachment +----------------------------------------------------------- + +--- @class RDPipelineColorBlendStateAttachment: RefCounted, { [string]: any } +--- @field enable_blend bool +--- @field src_color_blend_factor int +--- @field dst_color_blend_factor int +--- @field color_blend_op int +--- @field src_alpha_blend_factor int +--- @field dst_alpha_blend_factor int +--- @field alpha_blend_op int +--- @field write_r bool +--- @field write_g bool +--- @field write_b bool +--- @field write_a bool +RDPipelineColorBlendStateAttachment = {} + +--- @return RDPipelineColorBlendStateAttachment +function RDPipelineColorBlendStateAttachment:new() end + +function RDPipelineColorBlendStateAttachment:set_as_mix() end + +--- @param p_member bool +function RDPipelineColorBlendStateAttachment:set_enable_blend(p_member) end + +--- @return bool +function RDPipelineColorBlendStateAttachment:get_enable_blend() end + +--- @param p_member RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:set_src_color_blend_factor(p_member) end + +--- @return RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:get_src_color_blend_factor() end + +--- @param p_member RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:set_dst_color_blend_factor(p_member) end + +--- @return RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:get_dst_color_blend_factor() end + +--- @param p_member RenderingDevice.BlendOperation +function RDPipelineColorBlendStateAttachment:set_color_blend_op(p_member) end + +--- @return RenderingDevice.BlendOperation +function RDPipelineColorBlendStateAttachment:get_color_blend_op() end + +--- @param p_member RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:set_src_alpha_blend_factor(p_member) end + +--- @return RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:get_src_alpha_blend_factor() end + +--- @param p_member RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:set_dst_alpha_blend_factor(p_member) end + +--- @return RenderingDevice.BlendFactor +function RDPipelineColorBlendStateAttachment:get_dst_alpha_blend_factor() end + +--- @param p_member RenderingDevice.BlendOperation +function RDPipelineColorBlendStateAttachment:set_alpha_blend_op(p_member) end + +--- @return RenderingDevice.BlendOperation +function RDPipelineColorBlendStateAttachment:get_alpha_blend_op() end + +--- @param p_member bool +function RDPipelineColorBlendStateAttachment:set_write_r(p_member) end + +--- @return bool +function RDPipelineColorBlendStateAttachment:get_write_r() end + +--- @param p_member bool +function RDPipelineColorBlendStateAttachment:set_write_g(p_member) end + +--- @return bool +function RDPipelineColorBlendStateAttachment:get_write_g() end + +--- @param p_member bool +function RDPipelineColorBlendStateAttachment:set_write_b(p_member) end + +--- @return bool +function RDPipelineColorBlendStateAttachment:get_write_b() end + +--- @param p_member bool +function RDPipelineColorBlendStateAttachment:set_write_a(p_member) end + +--- @return bool +function RDPipelineColorBlendStateAttachment:get_write_a() end + + +----------------------------------------------------------- +-- RDPipelineDepthStencilState +----------------------------------------------------------- + +--- @class RDPipelineDepthStencilState: RefCounted, { [string]: any } +--- @field enable_depth_test bool +--- @field enable_depth_write bool +--- @field depth_compare_operator int +--- @field enable_depth_range bool +--- @field depth_range_min float +--- @field depth_range_max float +--- @field enable_stencil bool +--- @field front_op_fail int +--- @field front_op_pass int +--- @field front_op_depth_fail int +--- @field front_op_compare int +--- @field front_op_compare_mask int +--- @field front_op_write_mask int +--- @field front_op_reference int +--- @field back_op_fail int +--- @field back_op_pass int +--- @field back_op_depth_fail int +--- @field back_op_compare int +--- @field back_op_compare_mask int +--- @field back_op_write_mask int +--- @field back_op_reference int +RDPipelineDepthStencilState = {} + +--- @return RDPipelineDepthStencilState +function RDPipelineDepthStencilState:new() end + +--- @param p_member bool +function RDPipelineDepthStencilState:set_enable_depth_test(p_member) end + +--- @return bool +function RDPipelineDepthStencilState:get_enable_depth_test() end + +--- @param p_member bool +function RDPipelineDepthStencilState:set_enable_depth_write(p_member) end + +--- @return bool +function RDPipelineDepthStencilState:get_enable_depth_write() end + +--- @param p_member RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:set_depth_compare_operator(p_member) end + +--- @return RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:get_depth_compare_operator() end + +--- @param p_member bool +function RDPipelineDepthStencilState:set_enable_depth_range(p_member) end + +--- @return bool +function RDPipelineDepthStencilState:get_enable_depth_range() end + +--- @param p_member float +function RDPipelineDepthStencilState:set_depth_range_min(p_member) end + +--- @return float +function RDPipelineDepthStencilState:get_depth_range_min() end + +--- @param p_member float +function RDPipelineDepthStencilState:set_depth_range_max(p_member) end + +--- @return float +function RDPipelineDepthStencilState:get_depth_range_max() end + +--- @param p_member bool +function RDPipelineDepthStencilState:set_enable_stencil(p_member) end + +--- @return bool +function RDPipelineDepthStencilState:get_enable_stencil() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_front_op_fail(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_front_op_fail() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_front_op_pass(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_front_op_pass() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_front_op_depth_fail(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_front_op_depth_fail() end + +--- @param p_member RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:set_front_op_compare(p_member) end + +--- @return RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:get_front_op_compare() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_front_op_compare_mask(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_front_op_compare_mask() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_front_op_write_mask(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_front_op_write_mask() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_front_op_reference(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_front_op_reference() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_back_op_fail(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_back_op_fail() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_back_op_pass(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_back_op_pass() end + +--- @param p_member RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:set_back_op_depth_fail(p_member) end + +--- @return RenderingDevice.StencilOperation +function RDPipelineDepthStencilState:get_back_op_depth_fail() end + +--- @param p_member RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:set_back_op_compare(p_member) end + +--- @return RenderingDevice.CompareOperator +function RDPipelineDepthStencilState:get_back_op_compare() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_back_op_compare_mask(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_back_op_compare_mask() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_back_op_write_mask(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_back_op_write_mask() end + +--- @param p_member int +function RDPipelineDepthStencilState:set_back_op_reference(p_member) end + +--- @return int +function RDPipelineDepthStencilState:get_back_op_reference() end + + +----------------------------------------------------------- +-- RDPipelineMultisampleState +----------------------------------------------------------- + +--- @class RDPipelineMultisampleState: RefCounted, { [string]: any } +--- @field sample_count int +--- @field enable_sample_shading bool +--- @field min_sample_shading float +--- @field enable_alpha_to_coverage bool +--- @field enable_alpha_to_one bool +--- @field sample_masks Array[int] +RDPipelineMultisampleState = {} + +--- @return RDPipelineMultisampleState +function RDPipelineMultisampleState:new() end + +--- @param p_member RenderingDevice.TextureSamples +function RDPipelineMultisampleState:set_sample_count(p_member) end + +--- @return RenderingDevice.TextureSamples +function RDPipelineMultisampleState:get_sample_count() end + +--- @param p_member bool +function RDPipelineMultisampleState:set_enable_sample_shading(p_member) end + +--- @return bool +function RDPipelineMultisampleState:get_enable_sample_shading() end + +--- @param p_member float +function RDPipelineMultisampleState:set_min_sample_shading(p_member) end + +--- @return float +function RDPipelineMultisampleState:get_min_sample_shading() end + +--- @param p_member bool +function RDPipelineMultisampleState:set_enable_alpha_to_coverage(p_member) end + +--- @return bool +function RDPipelineMultisampleState:get_enable_alpha_to_coverage() end + +--- @param p_member bool +function RDPipelineMultisampleState:set_enable_alpha_to_one(p_member) end + +--- @return bool +function RDPipelineMultisampleState:get_enable_alpha_to_one() end + +--- @param masks Array[int] +function RDPipelineMultisampleState:set_sample_masks(masks) end + +--- @return Array[int] +function RDPipelineMultisampleState:get_sample_masks() end + + +----------------------------------------------------------- +-- RDPipelineRasterizationState +----------------------------------------------------------- + +--- @class RDPipelineRasterizationState: RefCounted, { [string]: any } +--- @field enable_depth_clamp bool +--- @field discard_primitives bool +--- @field wireframe bool +--- @field cull_mode int +--- @field front_face int +--- @field depth_bias_enabled bool +--- @field depth_bias_constant_factor float +--- @field depth_bias_clamp float +--- @field depth_bias_slope_factor float +--- @field line_width float +--- @field patch_control_points int +RDPipelineRasterizationState = {} + +--- @return RDPipelineRasterizationState +function RDPipelineRasterizationState:new() end + +--- @param p_member bool +function RDPipelineRasterizationState:set_enable_depth_clamp(p_member) end + +--- @return bool +function RDPipelineRasterizationState:get_enable_depth_clamp() end + +--- @param p_member bool +function RDPipelineRasterizationState:set_discard_primitives(p_member) end + +--- @return bool +function RDPipelineRasterizationState:get_discard_primitives() end + +--- @param p_member bool +function RDPipelineRasterizationState:set_wireframe(p_member) end + +--- @return bool +function RDPipelineRasterizationState:get_wireframe() end + +--- @param p_member RenderingDevice.PolygonCullMode +function RDPipelineRasterizationState:set_cull_mode(p_member) end + +--- @return RenderingDevice.PolygonCullMode +function RDPipelineRasterizationState:get_cull_mode() end + +--- @param p_member RenderingDevice.PolygonFrontFace +function RDPipelineRasterizationState:set_front_face(p_member) end + +--- @return RenderingDevice.PolygonFrontFace +function RDPipelineRasterizationState:get_front_face() end + +--- @param p_member bool +function RDPipelineRasterizationState:set_depth_bias_enabled(p_member) end + +--- @return bool +function RDPipelineRasterizationState:get_depth_bias_enabled() end + +--- @param p_member float +function RDPipelineRasterizationState:set_depth_bias_constant_factor(p_member) end + +--- @return float +function RDPipelineRasterizationState:get_depth_bias_constant_factor() end + +--- @param p_member float +function RDPipelineRasterizationState:set_depth_bias_clamp(p_member) end + +--- @return float +function RDPipelineRasterizationState:get_depth_bias_clamp() end + +--- @param p_member float +function RDPipelineRasterizationState:set_depth_bias_slope_factor(p_member) end + +--- @return float +function RDPipelineRasterizationState:get_depth_bias_slope_factor() end + +--- @param p_member float +function RDPipelineRasterizationState:set_line_width(p_member) end + +--- @return float +function RDPipelineRasterizationState:get_line_width() end + +--- @param p_member int +function RDPipelineRasterizationState:set_patch_control_points(p_member) end + +--- @return int +function RDPipelineRasterizationState:get_patch_control_points() end + + +----------------------------------------------------------- +-- RDPipelineSpecializationConstant +----------------------------------------------------------- + +--- @class RDPipelineSpecializationConstant: RefCounted, { [string]: any } +--- @field value any +--- @field constant_id int +RDPipelineSpecializationConstant = {} + +--- @return RDPipelineSpecializationConstant +function RDPipelineSpecializationConstant:new() end + +--- @param value any +function RDPipelineSpecializationConstant:set_value(value) end + +--- @return any +function RDPipelineSpecializationConstant:get_value() end + +--- @param constant_id int +function RDPipelineSpecializationConstant:set_constant_id(constant_id) end + +--- @return int +function RDPipelineSpecializationConstant:get_constant_id() end + + +----------------------------------------------------------- +-- RDSamplerState +----------------------------------------------------------- + +--- @class RDSamplerState: RefCounted, { [string]: any } +--- @field mag_filter int +--- @field min_filter int +--- @field mip_filter int +--- @field repeat_u int +--- @field repeat_v int +--- @field repeat_w int +--- @field lod_bias float +--- @field use_anisotropy bool +--- @field anisotropy_max float +--- @field enable_compare bool +--- @field compare_op int +--- @field min_lod float +--- @field max_lod float +--- @field border_color int +--- @field unnormalized_uvw bool +RDSamplerState = {} + +--- @return RDSamplerState +function RDSamplerState:new() end + +--- @param p_member RenderingDevice.SamplerFilter +function RDSamplerState:set_mag_filter(p_member) end + +--- @return RenderingDevice.SamplerFilter +function RDSamplerState:get_mag_filter() end + +--- @param p_member RenderingDevice.SamplerFilter +function RDSamplerState:set_min_filter(p_member) end + +--- @return RenderingDevice.SamplerFilter +function RDSamplerState:get_min_filter() end + +--- @param p_member RenderingDevice.SamplerFilter +function RDSamplerState:set_mip_filter(p_member) end + +--- @return RenderingDevice.SamplerFilter +function RDSamplerState:get_mip_filter() end + +--- @param p_member RenderingDevice.SamplerRepeatMode +function RDSamplerState:set_repeat_u(p_member) end + +--- @return RenderingDevice.SamplerRepeatMode +function RDSamplerState:get_repeat_u() end + +--- @param p_member RenderingDevice.SamplerRepeatMode +function RDSamplerState:set_repeat_v(p_member) end + +--- @return RenderingDevice.SamplerRepeatMode +function RDSamplerState:get_repeat_v() end + +--- @param p_member RenderingDevice.SamplerRepeatMode +function RDSamplerState:set_repeat_w(p_member) end + +--- @return RenderingDevice.SamplerRepeatMode +function RDSamplerState:get_repeat_w() end + +--- @param p_member float +function RDSamplerState:set_lod_bias(p_member) end + +--- @return float +function RDSamplerState:get_lod_bias() end + +--- @param p_member bool +function RDSamplerState:set_use_anisotropy(p_member) end + +--- @return bool +function RDSamplerState:get_use_anisotropy() end + +--- @param p_member float +function RDSamplerState:set_anisotropy_max(p_member) end + +--- @return float +function RDSamplerState:get_anisotropy_max() end + +--- @param p_member bool +function RDSamplerState:set_enable_compare(p_member) end + +--- @return bool +function RDSamplerState:get_enable_compare() end + +--- @param p_member RenderingDevice.CompareOperator +function RDSamplerState:set_compare_op(p_member) end + +--- @return RenderingDevice.CompareOperator +function RDSamplerState:get_compare_op() end + +--- @param p_member float +function RDSamplerState:set_min_lod(p_member) end + +--- @return float +function RDSamplerState:get_min_lod() end + +--- @param p_member float +function RDSamplerState:set_max_lod(p_member) end + +--- @return float +function RDSamplerState:get_max_lod() end + +--- @param p_member RenderingDevice.SamplerBorderColor +function RDSamplerState:set_border_color(p_member) end + +--- @return RenderingDevice.SamplerBorderColor +function RDSamplerState:get_border_color() end + +--- @param p_member bool +function RDSamplerState:set_unnormalized_uvw(p_member) end + +--- @return bool +function RDSamplerState:get_unnormalized_uvw() end + + +----------------------------------------------------------- +-- RDShaderFile +----------------------------------------------------------- + +--- @class RDShaderFile: Resource, { [string]: any } +--- @field base_error String +RDShaderFile = {} + +--- @return RDShaderFile +function RDShaderFile:new() end + +--- @param bytecode RDShaderSPIRV +--- @param version StringName? Default: &"" +function RDShaderFile:set_bytecode(bytecode, version) end + +--- @param version StringName? Default: &"" +--- @return RDShaderSPIRV +function RDShaderFile:get_spirv(version) end + +--- @return Array[StringName] +function RDShaderFile:get_version_list() end + +--- @param error String +function RDShaderFile:set_base_error(error) end + +--- @return String +function RDShaderFile:get_base_error() end + + +----------------------------------------------------------- +-- RDShaderSPIRV +----------------------------------------------------------- + +--- @class RDShaderSPIRV: Resource, { [string]: any } +--- @field bytecode_vertex PackedByteArray +--- @field bytecode_fragment PackedByteArray +--- @field bytecode_tesselation_control PackedByteArray +--- @field bytecode_tesselation_evaluation PackedByteArray +--- @field bytecode_compute PackedByteArray +--- @field compile_error_vertex String +--- @field compile_error_fragment String +--- @field compile_error_tesselation_control String +--- @field compile_error_tesselation_evaluation String +--- @field compile_error_compute String +RDShaderSPIRV = {} + +--- @return RDShaderSPIRV +function RDShaderSPIRV:new() end + +--- @param stage RenderingDevice.ShaderStage +--- @param bytecode PackedByteArray +function RDShaderSPIRV:set_stage_bytecode(stage, bytecode) end + +--- @param stage RenderingDevice.ShaderStage +--- @return PackedByteArray +function RDShaderSPIRV:get_stage_bytecode(stage) end + +--- @param stage RenderingDevice.ShaderStage +--- @param compile_error String +function RDShaderSPIRV:set_stage_compile_error(stage, compile_error) end + +--- @param stage RenderingDevice.ShaderStage +--- @return String +function RDShaderSPIRV:get_stage_compile_error(stage) end + + +----------------------------------------------------------- +-- RDShaderSource +----------------------------------------------------------- + +--- @class RDShaderSource: RefCounted, { [string]: any } +--- @field source_vertex String +--- @field source_fragment String +--- @field source_tesselation_control String +--- @field source_tesselation_evaluation String +--- @field source_compute String +--- @field language int +RDShaderSource = {} + +--- @return RDShaderSource +function RDShaderSource:new() end + +--- @param stage RenderingDevice.ShaderStage +--- @param source String +function RDShaderSource:set_stage_source(stage, source) end + +--- @param stage RenderingDevice.ShaderStage +--- @return String +function RDShaderSource:get_stage_source(stage) end + +--- @param language RenderingDevice.ShaderLanguage +function RDShaderSource:set_language(language) end + +--- @return RenderingDevice.ShaderLanguage +function RDShaderSource:get_language() end + + +----------------------------------------------------------- +-- RDTextureFormat +----------------------------------------------------------- + +--- @class RDTextureFormat: RefCounted, { [string]: any } +--- @field format int +--- @field width int +--- @field height int +--- @field depth int +--- @field array_layers int +--- @field mipmaps int +--- @field texture_type int +--- @field samples int +--- @field usage_bits int +--- @field is_resolve_buffer bool +--- @field is_discardable bool +RDTextureFormat = {} + +--- @return RDTextureFormat +function RDTextureFormat:new() end + +--- @param p_member RenderingDevice.DataFormat +function RDTextureFormat:set_format(p_member) end + +--- @return RenderingDevice.DataFormat +function RDTextureFormat:get_format() end + +--- @param p_member int +function RDTextureFormat:set_width(p_member) end + +--- @return int +function RDTextureFormat:get_width() end + +--- @param p_member int +function RDTextureFormat:set_height(p_member) end + +--- @return int +function RDTextureFormat:get_height() end + +--- @param p_member int +function RDTextureFormat:set_depth(p_member) end + +--- @return int +function RDTextureFormat:get_depth() end + +--- @param p_member int +function RDTextureFormat:set_array_layers(p_member) end + +--- @return int +function RDTextureFormat:get_array_layers() end + +--- @param p_member int +function RDTextureFormat:set_mipmaps(p_member) end + +--- @return int +function RDTextureFormat:get_mipmaps() end + +--- @param p_member RenderingDevice.TextureType +function RDTextureFormat:set_texture_type(p_member) end + +--- @return RenderingDevice.TextureType +function RDTextureFormat:get_texture_type() end + +--- @param p_member RenderingDevice.TextureSamples +function RDTextureFormat:set_samples(p_member) end + +--- @return RenderingDevice.TextureSamples +function RDTextureFormat:get_samples() end + +--- @param p_member RenderingDevice.TextureUsageBits +function RDTextureFormat:set_usage_bits(p_member) end + +--- @return RenderingDevice.TextureUsageBits +function RDTextureFormat:get_usage_bits() end + +--- @param p_member bool +function RDTextureFormat:set_is_resolve_buffer(p_member) end + +--- @return bool +function RDTextureFormat:get_is_resolve_buffer() end + +--- @param p_member bool +function RDTextureFormat:set_is_discardable(p_member) end + +--- @return bool +function RDTextureFormat:get_is_discardable() end + +--- @param format RenderingDevice.DataFormat +function RDTextureFormat:add_shareable_format(format) end + +--- @param format RenderingDevice.DataFormat +function RDTextureFormat:remove_shareable_format(format) end + + +----------------------------------------------------------- +-- RDTextureView +----------------------------------------------------------- + +--- @class RDTextureView: RefCounted, { [string]: any } +--- @field format_override int +--- @field swizzle_r int +--- @field swizzle_g int +--- @field swizzle_b int +--- @field swizzle_a int +RDTextureView = {} + +--- @return RDTextureView +function RDTextureView:new() end + +--- @param p_member RenderingDevice.DataFormat +function RDTextureView:set_format_override(p_member) end + +--- @return RenderingDevice.DataFormat +function RDTextureView:get_format_override() end + +--- @param p_member RenderingDevice.TextureSwizzle +function RDTextureView:set_swizzle_r(p_member) end + +--- @return RenderingDevice.TextureSwizzle +function RDTextureView:get_swizzle_r() end + +--- @param p_member RenderingDevice.TextureSwizzle +function RDTextureView:set_swizzle_g(p_member) end + +--- @return RenderingDevice.TextureSwizzle +function RDTextureView:get_swizzle_g() end + +--- @param p_member RenderingDevice.TextureSwizzle +function RDTextureView:set_swizzle_b(p_member) end + +--- @return RenderingDevice.TextureSwizzle +function RDTextureView:get_swizzle_b() end + +--- @param p_member RenderingDevice.TextureSwizzle +function RDTextureView:set_swizzle_a(p_member) end + +--- @return RenderingDevice.TextureSwizzle +function RDTextureView:get_swizzle_a() end + + +----------------------------------------------------------- +-- RDUniform +----------------------------------------------------------- + +--- @class RDUniform: RefCounted, { [string]: any } +--- @field uniform_type int +--- @field binding int +RDUniform = {} + +--- @return RDUniform +function RDUniform:new() end + +--- @param p_member RenderingDevice.UniformType +function RDUniform:set_uniform_type(p_member) end + +--- @return RenderingDevice.UniformType +function RDUniform:get_uniform_type() end + +--- @param p_member int +function RDUniform:set_binding(p_member) end + +--- @return int +function RDUniform:get_binding() end + +--- @param id RID +function RDUniform:add_id(id) end + +function RDUniform:clear_ids() end + +--- @return Array[RID] +function RDUniform:get_ids() end + + +----------------------------------------------------------- +-- RDVertexAttribute +----------------------------------------------------------- + +--- @class RDVertexAttribute: RefCounted, { [string]: any } +--- @field location int +--- @field offset int +--- @field format int +--- @field stride int +--- @field frequency int +RDVertexAttribute = {} + +--- @return RDVertexAttribute +function RDVertexAttribute:new() end + +--- @param p_member int +function RDVertexAttribute:set_location(p_member) end + +--- @return int +function RDVertexAttribute:get_location() end + +--- @param p_member int +function RDVertexAttribute:set_offset(p_member) end + +--- @return int +function RDVertexAttribute:get_offset() end + +--- @param p_member RenderingDevice.DataFormat +function RDVertexAttribute:set_format(p_member) end + +--- @return RenderingDevice.DataFormat +function RDVertexAttribute:get_format() end + +--- @param p_member int +function RDVertexAttribute:set_stride(p_member) end + +--- @return int +function RDVertexAttribute:get_stride() end + +--- @param p_member RenderingDevice.VertexFrequency +function RDVertexAttribute:set_frequency(p_member) end + +--- @return RenderingDevice.VertexFrequency +function RDVertexAttribute:get_frequency() end + + +----------------------------------------------------------- +-- RandomNumberGenerator +----------------------------------------------------------- + +--- @class RandomNumberGenerator: RefCounted, { [string]: any } +--- @field seed int +--- @field state int +RandomNumberGenerator = {} + +--- @return RandomNumberGenerator +function RandomNumberGenerator:new() end + +--- @param seed int +function RandomNumberGenerator:set_seed(seed) end + +--- @return int +function RandomNumberGenerator:get_seed() end + +--- @param state int +function RandomNumberGenerator:set_state(state) end + +--- @return int +function RandomNumberGenerator:get_state() end + +--- @return int +function RandomNumberGenerator:randi() end + +--- @return float +function RandomNumberGenerator:randf() end + +--- @param mean float? Default: 0.0 +--- @param deviation float? Default: 1.0 +--- @return float +function RandomNumberGenerator:randfn(mean, deviation) end + +--- @param from float +--- @param to float +--- @return float +function RandomNumberGenerator:randf_range(from, to) end + +--- @param from int +--- @param to int +--- @return int +function RandomNumberGenerator:randi_range(from, to) end + +--- @param weights PackedFloat32Array +--- @return int +function RandomNumberGenerator:rand_weighted(weights) end + +function RandomNumberGenerator:randomize() end + + +----------------------------------------------------------- +-- Range +----------------------------------------------------------- + +--- @class Range: Control, { [string]: any } +--- @field min_value float +--- @field max_value float +--- @field step float +--- @field page float +--- @field value float +--- @field ratio float +--- @field exp_edit bool +--- @field rounded bool +--- @field allow_greater bool +--- @field allow_lesser bool +Range = {} + +--- @return Range +function Range:new() end + +Range.value_changed = Signal() +Range.changed = Signal() + +--- @param new_value float +function Range:_value_changed(new_value) end + +--- @return float +function Range:get_value() end + +--- @return float +function Range:get_min() end + +--- @return float +function Range:get_max() end + +--- @return float +function Range:get_step() end + +--- @return float +function Range:get_page() end + +--- @return float +function Range:get_as_ratio() end + +--- @param value float +function Range:set_value(value) end + +--- @param value float +function Range:set_value_no_signal(value) end + +--- @param minimum float +function Range:set_min(minimum) end + +--- @param maximum float +function Range:set_max(maximum) end + +--- @param step float +function Range:set_step(step) end + +--- @param pagesize float +function Range:set_page(pagesize) end + +--- @param value float +function Range:set_as_ratio(value) end + +--- @param enabled bool +function Range:set_use_rounded_values(enabled) end + +--- @return bool +function Range:is_using_rounded_values() end + +--- @param enabled bool +function Range:set_exp_ratio(enabled) end + +--- @return bool +function Range:is_ratio_exp() end + +--- @param allow bool +function Range:set_allow_greater(allow) end + +--- @return bool +function Range:is_greater_allowed() end + +--- @param allow bool +function Range:set_allow_lesser(allow) end + +--- @return bool +function Range:is_lesser_allowed() end + +--- @param with Node +function Range:share(with) end + +function Range:unshare() end + + +----------------------------------------------------------- +-- RayCast2D +----------------------------------------------------------- + +--- @class RayCast2D: Node2D, { [string]: any } +--- @field enabled bool +--- @field exclude_parent bool +--- @field target_position Vector2 +--- @field collision_mask int +--- @field hit_from_inside bool +--- @field collide_with_areas bool +--- @field collide_with_bodies bool +RayCast2D = {} + +--- @return RayCast2D +function RayCast2D:new() end + +--- @param enabled bool +function RayCast2D:set_enabled(enabled) end + +--- @return bool +function RayCast2D:is_enabled() end + +--- @param local_point Vector2 +function RayCast2D:set_target_position(local_point) end + +--- @return Vector2 +function RayCast2D:get_target_position() end + +--- @return bool +function RayCast2D:is_colliding() end + +function RayCast2D:force_raycast_update() end + +--- @return Object +function RayCast2D:get_collider() end + +--- @return RID +function RayCast2D:get_collider_rid() end + +--- @return int +function RayCast2D:get_collider_shape() end + +--- @return Vector2 +function RayCast2D:get_collision_point() end + +--- @return Vector2 +function RayCast2D:get_collision_normal() end + +--- @param rid RID +function RayCast2D:add_exception_rid(rid) end + +--- @param node CollisionObject2D +function RayCast2D:add_exception(node) end + +--- @param rid RID +function RayCast2D:remove_exception_rid(rid) end + +--- @param node CollisionObject2D +function RayCast2D:remove_exception(node) end + +function RayCast2D:clear_exceptions() end + +--- @param mask int +function RayCast2D:set_collision_mask(mask) end + +--- @return int +function RayCast2D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function RayCast2D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function RayCast2D:get_collision_mask_value(layer_number) end + +--- @param mask bool +function RayCast2D:set_exclude_parent_body(mask) end + +--- @return bool +function RayCast2D:get_exclude_parent_body() end + +--- @param enable bool +function RayCast2D:set_collide_with_areas(enable) end + +--- @return bool +function RayCast2D:is_collide_with_areas_enabled() end + +--- @param enable bool +function RayCast2D:set_collide_with_bodies(enable) end + +--- @return bool +function RayCast2D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function RayCast2D:set_hit_from_inside(enable) end + +--- @return bool +function RayCast2D:is_hit_from_inside_enabled() end + + +----------------------------------------------------------- +-- RayCast3D +----------------------------------------------------------- + +--- @class RayCast3D: Node3D, { [string]: any } +--- @field enabled bool +--- @field exclude_parent bool +--- @field target_position Vector3 +--- @field collision_mask int +--- @field hit_from_inside bool +--- @field hit_back_faces bool +--- @field collide_with_areas bool +--- @field collide_with_bodies bool +--- @field debug_shape_custom_color Color +--- @field debug_shape_thickness int +RayCast3D = {} + +--- @return RayCast3D +function RayCast3D:new() end + +--- @param enabled bool +function RayCast3D:set_enabled(enabled) end + +--- @return bool +function RayCast3D:is_enabled() end + +--- @param local_point Vector3 +function RayCast3D:set_target_position(local_point) end + +--- @return Vector3 +function RayCast3D:get_target_position() end + +--- @return bool +function RayCast3D:is_colliding() end + +function RayCast3D:force_raycast_update() end + +--- @return Object +function RayCast3D:get_collider() end + +--- @return RID +function RayCast3D:get_collider_rid() end + +--- @return int +function RayCast3D:get_collider_shape() end + +--- @return Vector3 +function RayCast3D:get_collision_point() end + +--- @return Vector3 +function RayCast3D:get_collision_normal() end + +--- @return int +function RayCast3D:get_collision_face_index() end + +--- @param rid RID +function RayCast3D:add_exception_rid(rid) end + +--- @param node CollisionObject3D +function RayCast3D:add_exception(node) end + +--- @param rid RID +function RayCast3D:remove_exception_rid(rid) end + +--- @param node CollisionObject3D +function RayCast3D:remove_exception(node) end + +function RayCast3D:clear_exceptions() end + +--- @param mask int +function RayCast3D:set_collision_mask(mask) end + +--- @return int +function RayCast3D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function RayCast3D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function RayCast3D:get_collision_mask_value(layer_number) end + +--- @param mask bool +function RayCast3D:set_exclude_parent_body(mask) end + +--- @return bool +function RayCast3D:get_exclude_parent_body() end + +--- @param enable bool +function RayCast3D:set_collide_with_areas(enable) end + +--- @return bool +function RayCast3D:is_collide_with_areas_enabled() end + +--- @param enable bool +function RayCast3D:set_collide_with_bodies(enable) end + +--- @return bool +function RayCast3D:is_collide_with_bodies_enabled() end + +--- @param enable bool +function RayCast3D:set_hit_from_inside(enable) end + +--- @return bool +function RayCast3D:is_hit_from_inside_enabled() end + +--- @param enable bool +function RayCast3D:set_hit_back_faces(enable) end + +--- @return bool +function RayCast3D:is_hit_back_faces_enabled() end + +--- @param debug_shape_custom_color Color +function RayCast3D:set_debug_shape_custom_color(debug_shape_custom_color) end + +--- @return Color +function RayCast3D:get_debug_shape_custom_color() end + +--- @param debug_shape_thickness int +function RayCast3D:set_debug_shape_thickness(debug_shape_thickness) end + +--- @return int +function RayCast3D:get_debug_shape_thickness() end + + +----------------------------------------------------------- +-- RectangleShape2D +----------------------------------------------------------- + +--- @class RectangleShape2D: Shape2D, { [string]: any } +--- @field size Vector2 +RectangleShape2D = {} + +--- @return RectangleShape2D +function RectangleShape2D:new() end + +--- @param size Vector2 +function RectangleShape2D:set_size(size) end + +--- @return Vector2 +function RectangleShape2D:get_size() end + + +----------------------------------------------------------- +-- RefCounted +----------------------------------------------------------- + +--- @class RefCounted: Object, { [string]: any } +RefCounted = {} + +--- @return RefCounted +function RefCounted:new() end + +--- @return bool +function RefCounted:init_ref() end + +--- @return bool +function RefCounted:reference() end + +--- @return bool +function RefCounted:unreference() end + +--- @return int +function RefCounted:get_reference_count() end + + +----------------------------------------------------------- +-- ReferenceRect +----------------------------------------------------------- + +--- @class ReferenceRect: Control, { [string]: any } +--- @field border_color Color +--- @field border_width float +--- @field editor_only bool +ReferenceRect = {} + +--- @return ReferenceRect +function ReferenceRect:new() end + +--- @return Color +function ReferenceRect:get_border_color() end + +--- @param color Color +function ReferenceRect:set_border_color(color) end + +--- @return float +function ReferenceRect:get_border_width() end + +--- @param width float +function ReferenceRect:set_border_width(width) end + +--- @return bool +function ReferenceRect:get_editor_only() end + +--- @param enabled bool +function ReferenceRect:set_editor_only(enabled) end + + +----------------------------------------------------------- +-- ReflectionProbe +----------------------------------------------------------- + +--- @class ReflectionProbe: VisualInstance3D, { [string]: any } +--- @field update_mode int +--- @field intensity float +--- @field blend_distance float +--- @field max_distance float +--- @field size Vector3 +--- @field origin_offset Vector3 +--- @field box_projection bool +--- @field interior bool +--- @field enable_shadows bool +--- @field cull_mask int +--- @field reflection_mask int +--- @field mesh_lod_threshold float +--- @field ambient_mode int +--- @field ambient_color Color +--- @field ambient_color_energy float +ReflectionProbe = {} + +--- @return ReflectionProbe +function ReflectionProbe:new() end + +--- @alias ReflectionProbe.UpdateMode `ReflectionProbe.UPDATE_ONCE` | `ReflectionProbe.UPDATE_ALWAYS` +ReflectionProbe.UPDATE_ONCE = 0 +ReflectionProbe.UPDATE_ALWAYS = 1 + +--- @alias ReflectionProbe.AmbientMode `ReflectionProbe.AMBIENT_DISABLED` | `ReflectionProbe.AMBIENT_ENVIRONMENT` | `ReflectionProbe.AMBIENT_COLOR` +ReflectionProbe.AMBIENT_DISABLED = 0 +ReflectionProbe.AMBIENT_ENVIRONMENT = 1 +ReflectionProbe.AMBIENT_COLOR = 2 + +--- @param intensity float +function ReflectionProbe:set_intensity(intensity) end + +--- @return float +function ReflectionProbe:get_intensity() end + +--- @param blend_distance float +function ReflectionProbe:set_blend_distance(blend_distance) end + +--- @return float +function ReflectionProbe:get_blend_distance() end + +--- @param ambient ReflectionProbe.AmbientMode +function ReflectionProbe:set_ambient_mode(ambient) end + +--- @return ReflectionProbe.AmbientMode +function ReflectionProbe:get_ambient_mode() end + +--- @param ambient Color +function ReflectionProbe:set_ambient_color(ambient) end + +--- @return Color +function ReflectionProbe:get_ambient_color() end + +--- @param ambient_energy float +function ReflectionProbe:set_ambient_color_energy(ambient_energy) end + +--- @return float +function ReflectionProbe:get_ambient_color_energy() end + +--- @param max_distance float +function ReflectionProbe:set_max_distance(max_distance) end + +--- @return float +function ReflectionProbe:get_max_distance() end + +--- @param ratio float +function ReflectionProbe:set_mesh_lod_threshold(ratio) end + +--- @return float +function ReflectionProbe:get_mesh_lod_threshold() end + +--- @param size Vector3 +function ReflectionProbe:set_size(size) end + +--- @return Vector3 +function ReflectionProbe:get_size() end + +--- @param origin_offset Vector3 +function ReflectionProbe:set_origin_offset(origin_offset) end + +--- @return Vector3 +function ReflectionProbe:get_origin_offset() end + +--- @param enable bool +function ReflectionProbe:set_as_interior(enable) end + +--- @return bool +function ReflectionProbe:is_set_as_interior() end + +--- @param enable bool +function ReflectionProbe:set_enable_box_projection(enable) end + +--- @return bool +function ReflectionProbe:is_box_projection_enabled() end + +--- @param enable bool +function ReflectionProbe:set_enable_shadows(enable) end + +--- @return bool +function ReflectionProbe:are_shadows_enabled() end + +--- @param layers int +function ReflectionProbe:set_cull_mask(layers) end + +--- @return int +function ReflectionProbe:get_cull_mask() end + +--- @param layers int +function ReflectionProbe:set_reflection_mask(layers) end + +--- @return int +function ReflectionProbe:get_reflection_mask() end + +--- @param mode ReflectionProbe.UpdateMode +function ReflectionProbe:set_update_mode(mode) end + +--- @return ReflectionProbe.UpdateMode +function ReflectionProbe:get_update_mode() end + + +----------------------------------------------------------- +-- RegEx +----------------------------------------------------------- + +--- @class RegEx: RefCounted, { [string]: any } +RegEx = {} + +--- @return RegEx +function RegEx:new() end + +--- static +--- @param pattern String +--- @param show_error bool? Default: true +--- @return RegEx +function RegEx:create_from_string(pattern, show_error) end + +function RegEx:clear() end + +--- @param pattern String +--- @param show_error bool? Default: true +--- @return Error +function RegEx:compile(pattern, show_error) end + +--- @param subject String +--- @param offset int? Default: 0 +--- @param _end int? Default: -1 +--- @return RegExMatch +function RegEx:search(subject, offset, _end) end + +--- @param subject String +--- @param offset int? Default: 0 +--- @param _end int? Default: -1 +--- @return Array[RegExMatch] +function RegEx:search_all(subject, offset, _end) end + +--- @param subject String +--- @param replacement String +--- @param all bool? Default: false +--- @param offset int? Default: 0 +--- @param _end int? Default: -1 +--- @return String +function RegEx:sub(subject, replacement, all, offset, _end) end + +--- @return bool +function RegEx:is_valid() end + +--- @return String +function RegEx:get_pattern() end + +--- @return int +function RegEx:get_group_count() end + +--- @return PackedStringArray +function RegEx:get_names() end + + +----------------------------------------------------------- +-- RegExMatch +----------------------------------------------------------- + +--- @class RegExMatch: RefCounted, { [string]: any } +--- @field subject String +--- @field names Dictionary +--- @field strings Array +RegExMatch = {} + +--- @return RegExMatch +function RegExMatch:new() end + +--- @return String +function RegExMatch:get_subject() end + +--- @return int +function RegExMatch:get_group_count() end + +--- @return Dictionary +function RegExMatch:get_names() end + +--- @return PackedStringArray +function RegExMatch:get_strings() end + +--- @param name any? Default: 0 +--- @return String +function RegExMatch:get_string(name) end + +--- @param name any? Default: 0 +--- @return int +function RegExMatch:get_start(name) end + +--- @param name any? Default: 0 +--- @return int +function RegExMatch:get_end(name) end + + +----------------------------------------------------------- +-- RemoteTransform2D +----------------------------------------------------------- + +--- @class RemoteTransform2D: Node2D, { [string]: any } +--- @field remote_path NodePath +--- @field use_global_coordinates bool +--- @field update_position bool +--- @field update_rotation bool +--- @field update_scale bool +RemoteTransform2D = {} + +--- @return RemoteTransform2D +function RemoteTransform2D:new() end + +--- @param path NodePath +function RemoteTransform2D:set_remote_node(path) end + +--- @return NodePath +function RemoteTransform2D:get_remote_node() end + +function RemoteTransform2D:force_update_cache() end + +--- @param use_global_coordinates bool +function RemoteTransform2D:set_use_global_coordinates(use_global_coordinates) end + +--- @return bool +function RemoteTransform2D:get_use_global_coordinates() end + +--- @param update_remote_position bool +function RemoteTransform2D:set_update_position(update_remote_position) end + +--- @return bool +function RemoteTransform2D:get_update_position() end + +--- @param update_remote_rotation bool +function RemoteTransform2D:set_update_rotation(update_remote_rotation) end + +--- @return bool +function RemoteTransform2D:get_update_rotation() end + +--- @param update_remote_scale bool +function RemoteTransform2D:set_update_scale(update_remote_scale) end + +--- @return bool +function RemoteTransform2D:get_update_scale() end + + +----------------------------------------------------------- +-- RemoteTransform3D +----------------------------------------------------------- + +--- @class RemoteTransform3D: Node3D, { [string]: any } +--- @field remote_path NodePath +--- @field use_global_coordinates bool +--- @field update_position bool +--- @field update_rotation bool +--- @field update_scale bool +RemoteTransform3D = {} + +--- @return RemoteTransform3D +function RemoteTransform3D:new() end + +--- @param path NodePath +function RemoteTransform3D:set_remote_node(path) end + +--- @return NodePath +function RemoteTransform3D:get_remote_node() end + +function RemoteTransform3D:force_update_cache() end + +--- @param use_global_coordinates bool +function RemoteTransform3D:set_use_global_coordinates(use_global_coordinates) end + +--- @return bool +function RemoteTransform3D:get_use_global_coordinates() end + +--- @param update_remote_position bool +function RemoteTransform3D:set_update_position(update_remote_position) end + +--- @return bool +function RemoteTransform3D:get_update_position() end + +--- @param update_remote_rotation bool +function RemoteTransform3D:set_update_rotation(update_remote_rotation) end + +--- @return bool +function RemoteTransform3D:get_update_rotation() end + +--- @param update_remote_scale bool +function RemoteTransform3D:set_update_scale(update_remote_scale) end + +--- @return bool +function RemoteTransform3D:get_update_scale() end + + +----------------------------------------------------------- +-- RenderData +----------------------------------------------------------- + +--- @class RenderData: Object, { [string]: any } +RenderData = {} + +--- @return RenderSceneBuffers +function RenderData:get_render_scene_buffers() end + +--- @return RenderSceneData +function RenderData:get_render_scene_data() end + +--- @return RID +function RenderData:get_environment() end + +--- @return RID +function RenderData:get_camera_attributes() end + + +----------------------------------------------------------- +-- RenderDataExtension +----------------------------------------------------------- + +--- @class RenderDataExtension: RenderData, { [string]: any } +RenderDataExtension = {} + +--- @return RenderDataExtension +function RenderDataExtension:new() end + +--- @return RenderSceneBuffers +function RenderDataExtension:_get_render_scene_buffers() end + +--- @return RenderSceneData +function RenderDataExtension:_get_render_scene_data() end + +--- @return RID +function RenderDataExtension:_get_environment() end + +--- @return RID +function RenderDataExtension:_get_camera_attributes() end + + +----------------------------------------------------------- +-- RenderDataRD +----------------------------------------------------------- + +--- @class RenderDataRD: RenderData, { [string]: any } +RenderDataRD = {} + +--- @return RenderDataRD +function RenderDataRD:new() end + + +----------------------------------------------------------- +-- RenderSceneBuffers +----------------------------------------------------------- + +--- @class RenderSceneBuffers: RefCounted, { [string]: any } +RenderSceneBuffers = {} + +--- @param config RenderSceneBuffersConfiguration +function RenderSceneBuffers:configure(config) end + + +----------------------------------------------------------- +-- RenderSceneBuffersConfiguration +----------------------------------------------------------- + +--- @class RenderSceneBuffersConfiguration: RefCounted, { [string]: any } +--- @field render_target RID +--- @field internal_size Vector2i +--- @field target_size Vector2i +--- @field view_count int +--- @field scaling_3d_mode int +--- @field msaa_3d int +--- @field screen_space_aa int +--- @field fsr_sharpness bool +--- @field texture_mipmap_bias bool +--- @field anisotropic_filtering_level int +RenderSceneBuffersConfiguration = {} + +--- @return RenderSceneBuffersConfiguration +function RenderSceneBuffersConfiguration:new() end + +--- @return RID +function RenderSceneBuffersConfiguration:get_render_target() end + +--- @param render_target RID +function RenderSceneBuffersConfiguration:set_render_target(render_target) end + +--- @return Vector2i +function RenderSceneBuffersConfiguration:get_internal_size() end + +--- @param internal_size Vector2i +function RenderSceneBuffersConfiguration:set_internal_size(internal_size) end + +--- @return Vector2i +function RenderSceneBuffersConfiguration:get_target_size() end + +--- @param target_size Vector2i +function RenderSceneBuffersConfiguration:set_target_size(target_size) end + +--- @return int +function RenderSceneBuffersConfiguration:get_view_count() end + +--- @param view_count int +function RenderSceneBuffersConfiguration:set_view_count(view_count) end + +--- @return RenderingServer.ViewportScaling3DMode +function RenderSceneBuffersConfiguration:get_scaling_3d_mode() end + +--- @param scaling_3d_mode RenderingServer.ViewportScaling3DMode +function RenderSceneBuffersConfiguration:set_scaling_3d_mode(scaling_3d_mode) end + +--- @return RenderingServer.ViewportMSAA +function RenderSceneBuffersConfiguration:get_msaa_3d() end + +--- @param msaa_3d RenderingServer.ViewportMSAA +function RenderSceneBuffersConfiguration:set_msaa_3d(msaa_3d) end + +--- @return RenderingServer.ViewportScreenSpaceAA +function RenderSceneBuffersConfiguration:get_screen_space_aa() end + +--- @param screen_space_aa RenderingServer.ViewportScreenSpaceAA +function RenderSceneBuffersConfiguration:set_screen_space_aa(screen_space_aa) end + +--- @return float +function RenderSceneBuffersConfiguration:get_fsr_sharpness() end + +--- @param fsr_sharpness float +function RenderSceneBuffersConfiguration:set_fsr_sharpness(fsr_sharpness) end + +--- @return float +function RenderSceneBuffersConfiguration:get_texture_mipmap_bias() end + +--- @param texture_mipmap_bias float +function RenderSceneBuffersConfiguration:set_texture_mipmap_bias(texture_mipmap_bias) end + +--- @return RenderingServer.ViewportAnisotropicFiltering +function RenderSceneBuffersConfiguration:get_anisotropic_filtering_level() end + +--- @param anisotropic_filtering_level RenderingServer.ViewportAnisotropicFiltering +function RenderSceneBuffersConfiguration:set_anisotropic_filtering_level(anisotropic_filtering_level) end + + +----------------------------------------------------------- +-- RenderSceneBuffersExtension +----------------------------------------------------------- + +--- @class RenderSceneBuffersExtension: RenderSceneBuffers, { [string]: any } +RenderSceneBuffersExtension = {} + +--- @return RenderSceneBuffersExtension +function RenderSceneBuffersExtension:new() end + +--- @param config RenderSceneBuffersConfiguration +function RenderSceneBuffersExtension:_configure(config) end + +--- @param fsr_sharpness float +function RenderSceneBuffersExtension:_set_fsr_sharpness(fsr_sharpness) end + +--- @param texture_mipmap_bias float +function RenderSceneBuffersExtension:_set_texture_mipmap_bias(texture_mipmap_bias) end + +--- @param anisotropic_filtering_level int +function RenderSceneBuffersExtension:_set_anisotropic_filtering_level(anisotropic_filtering_level) end + +--- @param use_debanding bool +function RenderSceneBuffersExtension:_set_use_debanding(use_debanding) end + + +----------------------------------------------------------- +-- RenderSceneBuffersRD +----------------------------------------------------------- + +--- @class RenderSceneBuffersRD: RenderSceneBuffers, { [string]: any } +RenderSceneBuffersRD = {} + +--- @return RenderSceneBuffersRD +function RenderSceneBuffersRD:new() end + +--- @param context StringName +--- @param name StringName +--- @return bool +function RenderSceneBuffersRD:has_texture(context, name) end + +--- @param context StringName +--- @param name StringName +--- @param data_format RenderingDevice.DataFormat +--- @param usage_bits int +--- @param texture_samples RenderingDevice.TextureSamples +--- @param size Vector2i +--- @param layers int +--- @param mipmaps int +--- @param unique bool +--- @param discardable bool +--- @return RID +function RenderSceneBuffersRD:create_texture(context, name, data_format, usage_bits, texture_samples, size, layers, mipmaps, unique, discardable) end + +--- @param context StringName +--- @param name StringName +--- @param format RDTextureFormat +--- @param view RDTextureView +--- @param unique bool +--- @return RID +function RenderSceneBuffersRD:create_texture_from_format(context, name, format, view, unique) end + +--- @param context StringName +--- @param name StringName +--- @param view_name StringName +--- @param view RDTextureView +--- @return RID +function RenderSceneBuffersRD:create_texture_view(context, name, view_name, view) end + +--- @param context StringName +--- @param name StringName +--- @return RID +function RenderSceneBuffersRD:get_texture(context, name) end + +--- @param context StringName +--- @param name StringName +--- @return RDTextureFormat +function RenderSceneBuffersRD:get_texture_format(context, name) end + +--- @param context StringName +--- @param name StringName +--- @param layer int +--- @param mipmap int +--- @param layers int +--- @param mipmaps int +--- @return RID +function RenderSceneBuffersRD:get_texture_slice(context, name, layer, mipmap, layers, mipmaps) end + +--- @param context StringName +--- @param name StringName +--- @param layer int +--- @param mipmap int +--- @param layers int +--- @param mipmaps int +--- @param view RDTextureView +--- @return RID +function RenderSceneBuffersRD:get_texture_slice_view(context, name, layer, mipmap, layers, mipmaps, view) end + +--- @param context StringName +--- @param name StringName +--- @param mipmap int +--- @return Vector2i +function RenderSceneBuffersRD:get_texture_slice_size(context, name, mipmap) end + +--- @param context StringName +function RenderSceneBuffersRD:clear_context(context) end + +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_color_texture(msaa) end + +--- @param layer int +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_color_layer(layer, msaa) end + +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_depth_texture(msaa) end + +--- @param layer int +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_depth_layer(layer, msaa) end + +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_velocity_texture(msaa) end + +--- @param layer int +--- @param msaa bool? Default: false +--- @return RID +function RenderSceneBuffersRD:get_velocity_layer(layer, msaa) end + +--- @return RID +function RenderSceneBuffersRD:get_render_target() end + +--- @return int +function RenderSceneBuffersRD:get_view_count() end + +--- @return Vector2i +function RenderSceneBuffersRD:get_internal_size() end + +--- @return Vector2i +function RenderSceneBuffersRD:get_target_size() end + +--- @return RenderingServer.ViewportScaling3DMode +function RenderSceneBuffersRD:get_scaling_3d_mode() end + +--- @return float +function RenderSceneBuffersRD:get_fsr_sharpness() end + +--- @return RenderingServer.ViewportMSAA +function RenderSceneBuffersRD:get_msaa_3d() end + +--- @return RenderingDevice.TextureSamples +function RenderSceneBuffersRD:get_texture_samples() end + +--- @return RenderingServer.ViewportScreenSpaceAA +function RenderSceneBuffersRD:get_screen_space_aa() end + +--- @return bool +function RenderSceneBuffersRD:get_use_taa() end + +--- @return bool +function RenderSceneBuffersRD:get_use_debanding() end + + +----------------------------------------------------------- +-- RenderSceneData +----------------------------------------------------------- + +--- @class RenderSceneData: Object, { [string]: any } +RenderSceneData = {} + +--- @return Transform3D +function RenderSceneData:get_cam_transform() end + +--- @return Projection +function RenderSceneData:get_cam_projection() end + +--- @return int +function RenderSceneData:get_view_count() end + +--- @param view int +--- @return Vector3 +function RenderSceneData:get_view_eye_offset(view) end + +--- @param view int +--- @return Projection +function RenderSceneData:get_view_projection(view) end + +--- @return RID +function RenderSceneData:get_uniform_buffer() end + + +----------------------------------------------------------- +-- RenderSceneDataExtension +----------------------------------------------------------- + +--- @class RenderSceneDataExtension: RenderSceneData, { [string]: any } +RenderSceneDataExtension = {} + +--- @return RenderSceneDataExtension +function RenderSceneDataExtension:new() end + +--- @return Transform3D +function RenderSceneDataExtension:_get_cam_transform() end + +--- @return Projection +function RenderSceneDataExtension:_get_cam_projection() end + +--- @return int +function RenderSceneDataExtension:_get_view_count() end + +--- @param view int +--- @return Vector3 +function RenderSceneDataExtension:_get_view_eye_offset(view) end + +--- @param view int +--- @return Projection +function RenderSceneDataExtension:_get_view_projection(view) end + +--- @return RID +function RenderSceneDataExtension:_get_uniform_buffer() end + + +----------------------------------------------------------- +-- RenderSceneDataRD +----------------------------------------------------------- + +--- @class RenderSceneDataRD: RenderSceneData, { [string]: any } +RenderSceneDataRD = {} + +--- @return RenderSceneDataRD +function RenderSceneDataRD:new() end + + +----------------------------------------------------------- +-- RenderingDevice +----------------------------------------------------------- + +--- @class RenderingDevice: Object, { [string]: any } +RenderingDevice = {} + +RenderingDevice.INVALID_ID = -1 +RenderingDevice.INVALID_FORMAT_ID = -1 + +--- @alias RenderingDevice.DeviceType `RenderingDevice.DEVICE_TYPE_OTHER` | `RenderingDevice.DEVICE_TYPE_INTEGRATED_GPU` | `RenderingDevice.DEVICE_TYPE_DISCRETE_GPU` | `RenderingDevice.DEVICE_TYPE_VIRTUAL_GPU` | `RenderingDevice.DEVICE_TYPE_CPU` | `RenderingDevice.DEVICE_TYPE_MAX` +RenderingDevice.DEVICE_TYPE_OTHER = 0 +RenderingDevice.DEVICE_TYPE_INTEGRATED_GPU = 1 +RenderingDevice.DEVICE_TYPE_DISCRETE_GPU = 2 +RenderingDevice.DEVICE_TYPE_VIRTUAL_GPU = 3 +RenderingDevice.DEVICE_TYPE_CPU = 4 +RenderingDevice.DEVICE_TYPE_MAX = 5 + +--- @alias RenderingDevice.DriverResource `RenderingDevice.DRIVER_RESOURCE_LOGICAL_DEVICE` | `RenderingDevice.DRIVER_RESOURCE_PHYSICAL_DEVICE` | `RenderingDevice.DRIVER_RESOURCE_TOPMOST_OBJECT` | `RenderingDevice.DRIVER_RESOURCE_COMMAND_QUEUE` | `RenderingDevice.DRIVER_RESOURCE_QUEUE_FAMILY` | `RenderingDevice.DRIVER_RESOURCE_TEXTURE` | `RenderingDevice.DRIVER_RESOURCE_TEXTURE_VIEW` | `RenderingDevice.DRIVER_RESOURCE_TEXTURE_DATA_FORMAT` | `RenderingDevice.DRIVER_RESOURCE_SAMPLER` | `RenderingDevice.DRIVER_RESOURCE_UNIFORM_SET` | `RenderingDevice.DRIVER_RESOURCE_BUFFER` | `RenderingDevice.DRIVER_RESOURCE_COMPUTE_PIPELINE` | `RenderingDevice.DRIVER_RESOURCE_RENDER_PIPELINE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_DEVICE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_INSTANCE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_QUEUE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_QUEUE_FAMILY_INDEX` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE_VIEW` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE_NATIVE_TEXTURE_FORMAT` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_SAMPLER` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_DESCRIPTOR_SET` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_BUFFER` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_COMPUTE_PIPELINE` | `RenderingDevice.DRIVER_RESOURCE_VULKAN_RENDER_PIPELINE` +RenderingDevice.DRIVER_RESOURCE_LOGICAL_DEVICE = 0 +RenderingDevice.DRIVER_RESOURCE_PHYSICAL_DEVICE = 1 +RenderingDevice.DRIVER_RESOURCE_TOPMOST_OBJECT = 2 +RenderingDevice.DRIVER_RESOURCE_COMMAND_QUEUE = 3 +RenderingDevice.DRIVER_RESOURCE_QUEUE_FAMILY = 4 +RenderingDevice.DRIVER_RESOURCE_TEXTURE = 5 +RenderingDevice.DRIVER_RESOURCE_TEXTURE_VIEW = 6 +RenderingDevice.DRIVER_RESOURCE_TEXTURE_DATA_FORMAT = 7 +RenderingDevice.DRIVER_RESOURCE_SAMPLER = 8 +RenderingDevice.DRIVER_RESOURCE_UNIFORM_SET = 9 +RenderingDevice.DRIVER_RESOURCE_BUFFER = 10 +RenderingDevice.DRIVER_RESOURCE_COMPUTE_PIPELINE = 11 +RenderingDevice.DRIVER_RESOURCE_RENDER_PIPELINE = 12 +RenderingDevice.DRIVER_RESOURCE_VULKAN_DEVICE = 0 +RenderingDevice.DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE = 1 +RenderingDevice.DRIVER_RESOURCE_VULKAN_INSTANCE = 2 +RenderingDevice.DRIVER_RESOURCE_VULKAN_QUEUE = 3 +RenderingDevice.DRIVER_RESOURCE_VULKAN_QUEUE_FAMILY_INDEX = 4 +RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE = 5 +RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE_VIEW = 6 +RenderingDevice.DRIVER_RESOURCE_VULKAN_IMAGE_NATIVE_TEXTURE_FORMAT = 7 +RenderingDevice.DRIVER_RESOURCE_VULKAN_SAMPLER = 8 +RenderingDevice.DRIVER_RESOURCE_VULKAN_DESCRIPTOR_SET = 9 +RenderingDevice.DRIVER_RESOURCE_VULKAN_BUFFER = 10 +RenderingDevice.DRIVER_RESOURCE_VULKAN_COMPUTE_PIPELINE = 11 +RenderingDevice.DRIVER_RESOURCE_VULKAN_RENDER_PIPELINE = 12 + +--- @alias RenderingDevice.DataFormat `RenderingDevice.DATA_FORMAT_R4G4_UNORM_PACK8` | `RenderingDevice.DATA_FORMAT_R4G4B4A4_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_B4G4R4A4_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_R5G6B5_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_B5G6R5_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_R5G5B5A1_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_B5G5R5A1_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_A1R5G5B5_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_R8_UNORM` | `RenderingDevice.DATA_FORMAT_R8_SNORM` | `RenderingDevice.DATA_FORMAT_R8_USCALED` | `RenderingDevice.DATA_FORMAT_R8_SSCALED` | `RenderingDevice.DATA_FORMAT_R8_UINT` | `RenderingDevice.DATA_FORMAT_R8_SINT` | `RenderingDevice.DATA_FORMAT_R8_SRGB` | `RenderingDevice.DATA_FORMAT_R8G8_UNORM` | `RenderingDevice.DATA_FORMAT_R8G8_SNORM` | `RenderingDevice.DATA_FORMAT_R8G8_USCALED` | `RenderingDevice.DATA_FORMAT_R8G8_SSCALED` | `RenderingDevice.DATA_FORMAT_R8G8_UINT` | `RenderingDevice.DATA_FORMAT_R8G8_SINT` | `RenderingDevice.DATA_FORMAT_R8G8_SRGB` | `RenderingDevice.DATA_FORMAT_R8G8B8_UNORM` | `RenderingDevice.DATA_FORMAT_R8G8B8_SNORM` | `RenderingDevice.DATA_FORMAT_R8G8B8_USCALED` | `RenderingDevice.DATA_FORMAT_R8G8B8_SSCALED` | `RenderingDevice.DATA_FORMAT_R8G8B8_UINT` | `RenderingDevice.DATA_FORMAT_R8G8B8_SINT` | `RenderingDevice.DATA_FORMAT_R8G8B8_SRGB` | `RenderingDevice.DATA_FORMAT_B8G8R8_UNORM` | `RenderingDevice.DATA_FORMAT_B8G8R8_SNORM` | `RenderingDevice.DATA_FORMAT_B8G8R8_USCALED` | `RenderingDevice.DATA_FORMAT_B8G8R8_SSCALED` | `RenderingDevice.DATA_FORMAT_B8G8R8_UINT` | `RenderingDevice.DATA_FORMAT_B8G8R8_SINT` | `RenderingDevice.DATA_FORMAT_B8G8R8_SRGB` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_UNORM` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_SNORM` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_USCALED` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_SSCALED` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_UINT` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_SINT` | `RenderingDevice.DATA_FORMAT_R8G8B8A8_SRGB` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_UNORM` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_SNORM` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_USCALED` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_SSCALED` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_UINT` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_SINT` | `RenderingDevice.DATA_FORMAT_B8G8R8A8_SRGB` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_UNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_SNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_USCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_SSCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_UINT_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_SINT_PACK32` | `RenderingDevice.DATA_FORMAT_A8B8G8R8_SRGB_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_UNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_SNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_USCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_SSCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_UINT_PACK32` | `RenderingDevice.DATA_FORMAT_A2R10G10B10_SINT_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_UNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_SNORM_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_USCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_SSCALED_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_UINT_PACK32` | `RenderingDevice.DATA_FORMAT_A2B10G10R10_SINT_PACK32` | `RenderingDevice.DATA_FORMAT_R16_UNORM` | `RenderingDevice.DATA_FORMAT_R16_SNORM` | `RenderingDevice.DATA_FORMAT_R16_USCALED` | `RenderingDevice.DATA_FORMAT_R16_SSCALED` | `RenderingDevice.DATA_FORMAT_R16_UINT` | `RenderingDevice.DATA_FORMAT_R16_SINT` | `RenderingDevice.DATA_FORMAT_R16_SFLOAT` | `RenderingDevice.DATA_FORMAT_R16G16_UNORM` | `RenderingDevice.DATA_FORMAT_R16G16_SNORM` | `RenderingDevice.DATA_FORMAT_R16G16_USCALED` | `RenderingDevice.DATA_FORMAT_R16G16_SSCALED` | `RenderingDevice.DATA_FORMAT_R16G16_UINT` | `RenderingDevice.DATA_FORMAT_R16G16_SINT` | `RenderingDevice.DATA_FORMAT_R16G16_SFLOAT` | `RenderingDevice.DATA_FORMAT_R16G16B16_UNORM` | `RenderingDevice.DATA_FORMAT_R16G16B16_SNORM` | `RenderingDevice.DATA_FORMAT_R16G16B16_USCALED` | `RenderingDevice.DATA_FORMAT_R16G16B16_SSCALED` | `RenderingDevice.DATA_FORMAT_R16G16B16_UINT` | `RenderingDevice.DATA_FORMAT_R16G16B16_SINT` | `RenderingDevice.DATA_FORMAT_R16G16B16_SFLOAT` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_UNORM` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_SNORM` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_USCALED` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_SSCALED` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_UINT` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_SINT` | `RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT` | `RenderingDevice.DATA_FORMAT_R32_UINT` | `RenderingDevice.DATA_FORMAT_R32_SINT` | `RenderingDevice.DATA_FORMAT_R32_SFLOAT` | `RenderingDevice.DATA_FORMAT_R32G32_UINT` | `RenderingDevice.DATA_FORMAT_R32G32_SINT` | `RenderingDevice.DATA_FORMAT_R32G32_SFLOAT` | `RenderingDevice.DATA_FORMAT_R32G32B32_UINT` | `RenderingDevice.DATA_FORMAT_R32G32B32_SINT` | `RenderingDevice.DATA_FORMAT_R32G32B32_SFLOAT` | `RenderingDevice.DATA_FORMAT_R32G32B32A32_UINT` | `RenderingDevice.DATA_FORMAT_R32G32B32A32_SINT` | `RenderingDevice.DATA_FORMAT_R32G32B32A32_SFLOAT` | `RenderingDevice.DATA_FORMAT_R64_UINT` | `RenderingDevice.DATA_FORMAT_R64_SINT` | `RenderingDevice.DATA_FORMAT_R64_SFLOAT` | `RenderingDevice.DATA_FORMAT_R64G64_UINT` | `RenderingDevice.DATA_FORMAT_R64G64_SINT` | `RenderingDevice.DATA_FORMAT_R64G64_SFLOAT` | `RenderingDevice.DATA_FORMAT_R64G64B64_UINT` | `RenderingDevice.DATA_FORMAT_R64G64B64_SINT` | `RenderingDevice.DATA_FORMAT_R64G64B64_SFLOAT` | `RenderingDevice.DATA_FORMAT_R64G64B64A64_UINT` | `RenderingDevice.DATA_FORMAT_R64G64B64A64_SINT` | `RenderingDevice.DATA_FORMAT_R64G64B64A64_SFLOAT` | `RenderingDevice.DATA_FORMAT_B10G11R11_UFLOAT_PACK32` | `RenderingDevice.DATA_FORMAT_E5B9G9R9_UFLOAT_PACK32` | `RenderingDevice.DATA_FORMAT_D16_UNORM` | `RenderingDevice.DATA_FORMAT_X8_D24_UNORM_PACK32` | `RenderingDevice.DATA_FORMAT_D32_SFLOAT` | `RenderingDevice.DATA_FORMAT_S8_UINT` | `RenderingDevice.DATA_FORMAT_D16_UNORM_S8_UINT` | `RenderingDevice.DATA_FORMAT_D24_UNORM_S8_UINT` | `RenderingDevice.DATA_FORMAT_D32_SFLOAT_S8_UINT` | `RenderingDevice.DATA_FORMAT_BC1_RGB_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC1_RGB_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_BC1_RGBA_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC1_RGBA_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_BC2_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC2_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_BC3_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC3_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_BC4_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC4_SNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC5_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC5_SNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC6H_UFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_BC6H_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_BC7_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_BC7_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_EAC_R11_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_EAC_R11_SNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_EAC_R11G11_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_EAC_R11G11_SNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_4x4_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_4x4_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x4_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x4_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x5_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x5_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x5_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x5_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x6_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x6_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x5_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x5_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x6_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x6_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x8_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x8_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x5_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x5_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x6_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x6_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x8_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x8_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x10_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x10_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x10_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x10_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x12_UNORM_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x12_SRGB_BLOCK` | `RenderingDevice.DATA_FORMAT_G8B8G8R8_422_UNORM` | `RenderingDevice.DATA_FORMAT_B8G8R8G8_422_UNORM` | `RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_420_UNORM` | `RenderingDevice.DATA_FORMAT_G8_B8R8_2PLANE_420_UNORM` | `RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_422_UNORM` | `RenderingDevice.DATA_FORMAT_G8_B8R8_2PLANE_422_UNORM` | `RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_444_UNORM` | `RenderingDevice.DATA_FORMAT_R10X6_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_R10X6G10X6_UNORM_2PACK16` | `RenderingDevice.DATA_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_R12X4_UNORM_PACK16` | `RenderingDevice.DATA_FORMAT_R12X4G12X4_UNORM_2PACK16` | `RenderingDevice.DATA_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16` | `RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16` | `RenderingDevice.DATA_FORMAT_G16B16G16R16_422_UNORM` | `RenderingDevice.DATA_FORMAT_B16G16R16G16_422_UNORM` | `RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_420_UNORM` | `RenderingDevice.DATA_FORMAT_G16_B16R16_2PLANE_420_UNORM` | `RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_422_UNORM` | `RenderingDevice.DATA_FORMAT_G16_B16R16_2PLANE_422_UNORM` | `RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_444_UNORM` | `RenderingDevice.DATA_FORMAT_ASTC_4x4_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x4_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_5x5_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x5_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_6x6_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x5_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x6_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x5_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x6_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x8_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_10x10_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x10_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_ASTC_12x12_SFLOAT_BLOCK` | `RenderingDevice.DATA_FORMAT_MAX` +RenderingDevice.DATA_FORMAT_R4G4_UNORM_PACK8 = 0 +RenderingDevice.DATA_FORMAT_R4G4B4A4_UNORM_PACK16 = 1 +RenderingDevice.DATA_FORMAT_B4G4R4A4_UNORM_PACK16 = 2 +RenderingDevice.DATA_FORMAT_R5G6B5_UNORM_PACK16 = 3 +RenderingDevice.DATA_FORMAT_B5G6R5_UNORM_PACK16 = 4 +RenderingDevice.DATA_FORMAT_R5G5B5A1_UNORM_PACK16 = 5 +RenderingDevice.DATA_FORMAT_B5G5R5A1_UNORM_PACK16 = 6 +RenderingDevice.DATA_FORMAT_A1R5G5B5_UNORM_PACK16 = 7 +RenderingDevice.DATA_FORMAT_R8_UNORM = 8 +RenderingDevice.DATA_FORMAT_R8_SNORM = 9 +RenderingDevice.DATA_FORMAT_R8_USCALED = 10 +RenderingDevice.DATA_FORMAT_R8_SSCALED = 11 +RenderingDevice.DATA_FORMAT_R8_UINT = 12 +RenderingDevice.DATA_FORMAT_R8_SINT = 13 +RenderingDevice.DATA_FORMAT_R8_SRGB = 14 +RenderingDevice.DATA_FORMAT_R8G8_UNORM = 15 +RenderingDevice.DATA_FORMAT_R8G8_SNORM = 16 +RenderingDevice.DATA_FORMAT_R8G8_USCALED = 17 +RenderingDevice.DATA_FORMAT_R8G8_SSCALED = 18 +RenderingDevice.DATA_FORMAT_R8G8_UINT = 19 +RenderingDevice.DATA_FORMAT_R8G8_SINT = 20 +RenderingDevice.DATA_FORMAT_R8G8_SRGB = 21 +RenderingDevice.DATA_FORMAT_R8G8B8_UNORM = 22 +RenderingDevice.DATA_FORMAT_R8G8B8_SNORM = 23 +RenderingDevice.DATA_FORMAT_R8G8B8_USCALED = 24 +RenderingDevice.DATA_FORMAT_R8G8B8_SSCALED = 25 +RenderingDevice.DATA_FORMAT_R8G8B8_UINT = 26 +RenderingDevice.DATA_FORMAT_R8G8B8_SINT = 27 +RenderingDevice.DATA_FORMAT_R8G8B8_SRGB = 28 +RenderingDevice.DATA_FORMAT_B8G8R8_UNORM = 29 +RenderingDevice.DATA_FORMAT_B8G8R8_SNORM = 30 +RenderingDevice.DATA_FORMAT_B8G8R8_USCALED = 31 +RenderingDevice.DATA_FORMAT_B8G8R8_SSCALED = 32 +RenderingDevice.DATA_FORMAT_B8G8R8_UINT = 33 +RenderingDevice.DATA_FORMAT_B8G8R8_SINT = 34 +RenderingDevice.DATA_FORMAT_B8G8R8_SRGB = 35 +RenderingDevice.DATA_FORMAT_R8G8B8A8_UNORM = 36 +RenderingDevice.DATA_FORMAT_R8G8B8A8_SNORM = 37 +RenderingDevice.DATA_FORMAT_R8G8B8A8_USCALED = 38 +RenderingDevice.DATA_FORMAT_R8G8B8A8_SSCALED = 39 +RenderingDevice.DATA_FORMAT_R8G8B8A8_UINT = 40 +RenderingDevice.DATA_FORMAT_R8G8B8A8_SINT = 41 +RenderingDevice.DATA_FORMAT_R8G8B8A8_SRGB = 42 +RenderingDevice.DATA_FORMAT_B8G8R8A8_UNORM = 43 +RenderingDevice.DATA_FORMAT_B8G8R8A8_SNORM = 44 +RenderingDevice.DATA_FORMAT_B8G8R8A8_USCALED = 45 +RenderingDevice.DATA_FORMAT_B8G8R8A8_SSCALED = 46 +RenderingDevice.DATA_FORMAT_B8G8R8A8_UINT = 47 +RenderingDevice.DATA_FORMAT_B8G8R8A8_SINT = 48 +RenderingDevice.DATA_FORMAT_B8G8R8A8_SRGB = 49 +RenderingDevice.DATA_FORMAT_A8B8G8R8_UNORM_PACK32 = 50 +RenderingDevice.DATA_FORMAT_A8B8G8R8_SNORM_PACK32 = 51 +RenderingDevice.DATA_FORMAT_A8B8G8R8_USCALED_PACK32 = 52 +RenderingDevice.DATA_FORMAT_A8B8G8R8_SSCALED_PACK32 = 53 +RenderingDevice.DATA_FORMAT_A8B8G8R8_UINT_PACK32 = 54 +RenderingDevice.DATA_FORMAT_A8B8G8R8_SINT_PACK32 = 55 +RenderingDevice.DATA_FORMAT_A8B8G8R8_SRGB_PACK32 = 56 +RenderingDevice.DATA_FORMAT_A2R10G10B10_UNORM_PACK32 = 57 +RenderingDevice.DATA_FORMAT_A2R10G10B10_SNORM_PACK32 = 58 +RenderingDevice.DATA_FORMAT_A2R10G10B10_USCALED_PACK32 = 59 +RenderingDevice.DATA_FORMAT_A2R10G10B10_SSCALED_PACK32 = 60 +RenderingDevice.DATA_FORMAT_A2R10G10B10_UINT_PACK32 = 61 +RenderingDevice.DATA_FORMAT_A2R10G10B10_SINT_PACK32 = 62 +RenderingDevice.DATA_FORMAT_A2B10G10R10_UNORM_PACK32 = 63 +RenderingDevice.DATA_FORMAT_A2B10G10R10_SNORM_PACK32 = 64 +RenderingDevice.DATA_FORMAT_A2B10G10R10_USCALED_PACK32 = 65 +RenderingDevice.DATA_FORMAT_A2B10G10R10_SSCALED_PACK32 = 66 +RenderingDevice.DATA_FORMAT_A2B10G10R10_UINT_PACK32 = 67 +RenderingDevice.DATA_FORMAT_A2B10G10R10_SINT_PACK32 = 68 +RenderingDevice.DATA_FORMAT_R16_UNORM = 69 +RenderingDevice.DATA_FORMAT_R16_SNORM = 70 +RenderingDevice.DATA_FORMAT_R16_USCALED = 71 +RenderingDevice.DATA_FORMAT_R16_SSCALED = 72 +RenderingDevice.DATA_FORMAT_R16_UINT = 73 +RenderingDevice.DATA_FORMAT_R16_SINT = 74 +RenderingDevice.DATA_FORMAT_R16_SFLOAT = 75 +RenderingDevice.DATA_FORMAT_R16G16_UNORM = 76 +RenderingDevice.DATA_FORMAT_R16G16_SNORM = 77 +RenderingDevice.DATA_FORMAT_R16G16_USCALED = 78 +RenderingDevice.DATA_FORMAT_R16G16_SSCALED = 79 +RenderingDevice.DATA_FORMAT_R16G16_UINT = 80 +RenderingDevice.DATA_FORMAT_R16G16_SINT = 81 +RenderingDevice.DATA_FORMAT_R16G16_SFLOAT = 82 +RenderingDevice.DATA_FORMAT_R16G16B16_UNORM = 83 +RenderingDevice.DATA_FORMAT_R16G16B16_SNORM = 84 +RenderingDevice.DATA_FORMAT_R16G16B16_USCALED = 85 +RenderingDevice.DATA_FORMAT_R16G16B16_SSCALED = 86 +RenderingDevice.DATA_FORMAT_R16G16B16_UINT = 87 +RenderingDevice.DATA_FORMAT_R16G16B16_SINT = 88 +RenderingDevice.DATA_FORMAT_R16G16B16_SFLOAT = 89 +RenderingDevice.DATA_FORMAT_R16G16B16A16_UNORM = 90 +RenderingDevice.DATA_FORMAT_R16G16B16A16_SNORM = 91 +RenderingDevice.DATA_FORMAT_R16G16B16A16_USCALED = 92 +RenderingDevice.DATA_FORMAT_R16G16B16A16_SSCALED = 93 +RenderingDevice.DATA_FORMAT_R16G16B16A16_UINT = 94 +RenderingDevice.DATA_FORMAT_R16G16B16A16_SINT = 95 +RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT = 96 +RenderingDevice.DATA_FORMAT_R32_UINT = 97 +RenderingDevice.DATA_FORMAT_R32_SINT = 98 +RenderingDevice.DATA_FORMAT_R32_SFLOAT = 99 +RenderingDevice.DATA_FORMAT_R32G32_UINT = 100 +RenderingDevice.DATA_FORMAT_R32G32_SINT = 101 +RenderingDevice.DATA_FORMAT_R32G32_SFLOAT = 102 +RenderingDevice.DATA_FORMAT_R32G32B32_UINT = 103 +RenderingDevice.DATA_FORMAT_R32G32B32_SINT = 104 +RenderingDevice.DATA_FORMAT_R32G32B32_SFLOAT = 105 +RenderingDevice.DATA_FORMAT_R32G32B32A32_UINT = 106 +RenderingDevice.DATA_FORMAT_R32G32B32A32_SINT = 107 +RenderingDevice.DATA_FORMAT_R32G32B32A32_SFLOAT = 108 +RenderingDevice.DATA_FORMAT_R64_UINT = 109 +RenderingDevice.DATA_FORMAT_R64_SINT = 110 +RenderingDevice.DATA_FORMAT_R64_SFLOAT = 111 +RenderingDevice.DATA_FORMAT_R64G64_UINT = 112 +RenderingDevice.DATA_FORMAT_R64G64_SINT = 113 +RenderingDevice.DATA_FORMAT_R64G64_SFLOAT = 114 +RenderingDevice.DATA_FORMAT_R64G64B64_UINT = 115 +RenderingDevice.DATA_FORMAT_R64G64B64_SINT = 116 +RenderingDevice.DATA_FORMAT_R64G64B64_SFLOAT = 117 +RenderingDevice.DATA_FORMAT_R64G64B64A64_UINT = 118 +RenderingDevice.DATA_FORMAT_R64G64B64A64_SINT = 119 +RenderingDevice.DATA_FORMAT_R64G64B64A64_SFLOAT = 120 +RenderingDevice.DATA_FORMAT_B10G11R11_UFLOAT_PACK32 = 121 +RenderingDevice.DATA_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 122 +RenderingDevice.DATA_FORMAT_D16_UNORM = 123 +RenderingDevice.DATA_FORMAT_X8_D24_UNORM_PACK32 = 124 +RenderingDevice.DATA_FORMAT_D32_SFLOAT = 125 +RenderingDevice.DATA_FORMAT_S8_UINT = 126 +RenderingDevice.DATA_FORMAT_D16_UNORM_S8_UINT = 127 +RenderingDevice.DATA_FORMAT_D24_UNORM_S8_UINT = 128 +RenderingDevice.DATA_FORMAT_D32_SFLOAT_S8_UINT = 129 +RenderingDevice.DATA_FORMAT_BC1_RGB_UNORM_BLOCK = 130 +RenderingDevice.DATA_FORMAT_BC1_RGB_SRGB_BLOCK = 131 +RenderingDevice.DATA_FORMAT_BC1_RGBA_UNORM_BLOCK = 132 +RenderingDevice.DATA_FORMAT_BC1_RGBA_SRGB_BLOCK = 133 +RenderingDevice.DATA_FORMAT_BC2_UNORM_BLOCK = 134 +RenderingDevice.DATA_FORMAT_BC2_SRGB_BLOCK = 135 +RenderingDevice.DATA_FORMAT_BC3_UNORM_BLOCK = 136 +RenderingDevice.DATA_FORMAT_BC3_SRGB_BLOCK = 137 +RenderingDevice.DATA_FORMAT_BC4_UNORM_BLOCK = 138 +RenderingDevice.DATA_FORMAT_BC4_SNORM_BLOCK = 139 +RenderingDevice.DATA_FORMAT_BC5_UNORM_BLOCK = 140 +RenderingDevice.DATA_FORMAT_BC5_SNORM_BLOCK = 141 +RenderingDevice.DATA_FORMAT_BC6H_UFLOAT_BLOCK = 142 +RenderingDevice.DATA_FORMAT_BC6H_SFLOAT_BLOCK = 143 +RenderingDevice.DATA_FORMAT_BC7_UNORM_BLOCK = 144 +RenderingDevice.DATA_FORMAT_BC7_SRGB_BLOCK = 145 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 146 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 147 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 148 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 149 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 150 +RenderingDevice.DATA_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 151 +RenderingDevice.DATA_FORMAT_EAC_R11_UNORM_BLOCK = 152 +RenderingDevice.DATA_FORMAT_EAC_R11_SNORM_BLOCK = 153 +RenderingDevice.DATA_FORMAT_EAC_R11G11_UNORM_BLOCK = 154 +RenderingDevice.DATA_FORMAT_EAC_R11G11_SNORM_BLOCK = 155 +RenderingDevice.DATA_FORMAT_ASTC_4x4_UNORM_BLOCK = 156 +RenderingDevice.DATA_FORMAT_ASTC_4x4_SRGB_BLOCK = 157 +RenderingDevice.DATA_FORMAT_ASTC_5x4_UNORM_BLOCK = 158 +RenderingDevice.DATA_FORMAT_ASTC_5x4_SRGB_BLOCK = 159 +RenderingDevice.DATA_FORMAT_ASTC_5x5_UNORM_BLOCK = 160 +RenderingDevice.DATA_FORMAT_ASTC_5x5_SRGB_BLOCK = 161 +RenderingDevice.DATA_FORMAT_ASTC_6x5_UNORM_BLOCK = 162 +RenderingDevice.DATA_FORMAT_ASTC_6x5_SRGB_BLOCK = 163 +RenderingDevice.DATA_FORMAT_ASTC_6x6_UNORM_BLOCK = 164 +RenderingDevice.DATA_FORMAT_ASTC_6x6_SRGB_BLOCK = 165 +RenderingDevice.DATA_FORMAT_ASTC_8x5_UNORM_BLOCK = 166 +RenderingDevice.DATA_FORMAT_ASTC_8x5_SRGB_BLOCK = 167 +RenderingDevice.DATA_FORMAT_ASTC_8x6_UNORM_BLOCK = 168 +RenderingDevice.DATA_FORMAT_ASTC_8x6_SRGB_BLOCK = 169 +RenderingDevice.DATA_FORMAT_ASTC_8x8_UNORM_BLOCK = 170 +RenderingDevice.DATA_FORMAT_ASTC_8x8_SRGB_BLOCK = 171 +RenderingDevice.DATA_FORMAT_ASTC_10x5_UNORM_BLOCK = 172 +RenderingDevice.DATA_FORMAT_ASTC_10x5_SRGB_BLOCK = 173 +RenderingDevice.DATA_FORMAT_ASTC_10x6_UNORM_BLOCK = 174 +RenderingDevice.DATA_FORMAT_ASTC_10x6_SRGB_BLOCK = 175 +RenderingDevice.DATA_FORMAT_ASTC_10x8_UNORM_BLOCK = 176 +RenderingDevice.DATA_FORMAT_ASTC_10x8_SRGB_BLOCK = 177 +RenderingDevice.DATA_FORMAT_ASTC_10x10_UNORM_BLOCK = 178 +RenderingDevice.DATA_FORMAT_ASTC_10x10_SRGB_BLOCK = 179 +RenderingDevice.DATA_FORMAT_ASTC_12x10_UNORM_BLOCK = 180 +RenderingDevice.DATA_FORMAT_ASTC_12x10_SRGB_BLOCK = 181 +RenderingDevice.DATA_FORMAT_ASTC_12x12_UNORM_BLOCK = 182 +RenderingDevice.DATA_FORMAT_ASTC_12x12_SRGB_BLOCK = 183 +RenderingDevice.DATA_FORMAT_G8B8G8R8_422_UNORM = 184 +RenderingDevice.DATA_FORMAT_B8G8R8G8_422_UNORM = 185 +RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 186 +RenderingDevice.DATA_FORMAT_G8_B8R8_2PLANE_420_UNORM = 187 +RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 188 +RenderingDevice.DATA_FORMAT_G8_B8R8_2PLANE_422_UNORM = 189 +RenderingDevice.DATA_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 190 +RenderingDevice.DATA_FORMAT_R10X6_UNORM_PACK16 = 191 +RenderingDevice.DATA_FORMAT_R10X6G10X6_UNORM_2PACK16 = 192 +RenderingDevice.DATA_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 193 +RenderingDevice.DATA_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 194 +RenderingDevice.DATA_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 195 +RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 196 +RenderingDevice.DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 197 +RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 198 +RenderingDevice.DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 199 +RenderingDevice.DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 200 +RenderingDevice.DATA_FORMAT_R12X4_UNORM_PACK16 = 201 +RenderingDevice.DATA_FORMAT_R12X4G12X4_UNORM_2PACK16 = 202 +RenderingDevice.DATA_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 203 +RenderingDevice.DATA_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 204 +RenderingDevice.DATA_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 205 +RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 206 +RenderingDevice.DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 207 +RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 208 +RenderingDevice.DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 209 +RenderingDevice.DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 210 +RenderingDevice.DATA_FORMAT_G16B16G16R16_422_UNORM = 211 +RenderingDevice.DATA_FORMAT_B16G16R16G16_422_UNORM = 212 +RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 213 +RenderingDevice.DATA_FORMAT_G16_B16R16_2PLANE_420_UNORM = 214 +RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 215 +RenderingDevice.DATA_FORMAT_G16_B16R16_2PLANE_422_UNORM = 216 +RenderingDevice.DATA_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 217 +RenderingDevice.DATA_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 218 +RenderingDevice.DATA_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 219 +RenderingDevice.DATA_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 220 +RenderingDevice.DATA_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 221 +RenderingDevice.DATA_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 222 +RenderingDevice.DATA_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 223 +RenderingDevice.DATA_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 224 +RenderingDevice.DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 225 +RenderingDevice.DATA_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 226 +RenderingDevice.DATA_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 227 +RenderingDevice.DATA_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 228 +RenderingDevice.DATA_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 229 +RenderingDevice.DATA_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 230 +RenderingDevice.DATA_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 231 +RenderingDevice.DATA_FORMAT_MAX = 232 + +--- @alias RenderingDevice.BarrierMask `RenderingDevice.BARRIER_MASK_VERTEX` | `RenderingDevice.BARRIER_MASK_FRAGMENT` | `RenderingDevice.BARRIER_MASK_COMPUTE` | `RenderingDevice.BARRIER_MASK_TRANSFER` | `RenderingDevice.BARRIER_MASK_RASTER` | `RenderingDevice.BARRIER_MASK_ALL_BARRIERS` | `RenderingDevice.BARRIER_MASK_NO_BARRIER` +RenderingDevice.BARRIER_MASK_VERTEX = 1 +RenderingDevice.BARRIER_MASK_FRAGMENT = 8 +RenderingDevice.BARRIER_MASK_COMPUTE = 2 +RenderingDevice.BARRIER_MASK_TRANSFER = 4 +RenderingDevice.BARRIER_MASK_RASTER = 9 +RenderingDevice.BARRIER_MASK_ALL_BARRIERS = 32767 +RenderingDevice.BARRIER_MASK_NO_BARRIER = 32768 + +--- @alias RenderingDevice.TextureType `RenderingDevice.TEXTURE_TYPE_1D` | `RenderingDevice.TEXTURE_TYPE_2D` | `RenderingDevice.TEXTURE_TYPE_3D` | `RenderingDevice.TEXTURE_TYPE_CUBE` | `RenderingDevice.TEXTURE_TYPE_1D_ARRAY` | `RenderingDevice.TEXTURE_TYPE_2D_ARRAY` | `RenderingDevice.TEXTURE_TYPE_CUBE_ARRAY` | `RenderingDevice.TEXTURE_TYPE_MAX` +RenderingDevice.TEXTURE_TYPE_1D = 0 +RenderingDevice.TEXTURE_TYPE_2D = 1 +RenderingDevice.TEXTURE_TYPE_3D = 2 +RenderingDevice.TEXTURE_TYPE_CUBE = 3 +RenderingDevice.TEXTURE_TYPE_1D_ARRAY = 4 +RenderingDevice.TEXTURE_TYPE_2D_ARRAY = 5 +RenderingDevice.TEXTURE_TYPE_CUBE_ARRAY = 6 +RenderingDevice.TEXTURE_TYPE_MAX = 7 + +--- @alias RenderingDevice.TextureSamples `RenderingDevice.TEXTURE_SAMPLES_1` | `RenderingDevice.TEXTURE_SAMPLES_2` | `RenderingDevice.TEXTURE_SAMPLES_4` | `RenderingDevice.TEXTURE_SAMPLES_8` | `RenderingDevice.TEXTURE_SAMPLES_16` | `RenderingDevice.TEXTURE_SAMPLES_32` | `RenderingDevice.TEXTURE_SAMPLES_64` | `RenderingDevice.TEXTURE_SAMPLES_MAX` +RenderingDevice.TEXTURE_SAMPLES_1 = 0 +RenderingDevice.TEXTURE_SAMPLES_2 = 1 +RenderingDevice.TEXTURE_SAMPLES_4 = 2 +RenderingDevice.TEXTURE_SAMPLES_8 = 3 +RenderingDevice.TEXTURE_SAMPLES_16 = 4 +RenderingDevice.TEXTURE_SAMPLES_32 = 5 +RenderingDevice.TEXTURE_SAMPLES_64 = 6 +RenderingDevice.TEXTURE_SAMPLES_MAX = 7 + +--- @alias RenderingDevice.TextureUsageBits `RenderingDevice.TEXTURE_USAGE_SAMPLING_BIT` | `RenderingDevice.TEXTURE_USAGE_COLOR_ATTACHMENT_BIT` | `RenderingDevice.TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT` | `RenderingDevice.TEXTURE_USAGE_STORAGE_BIT` | `RenderingDevice.TEXTURE_USAGE_STORAGE_ATOMIC_BIT` | `RenderingDevice.TEXTURE_USAGE_CPU_READ_BIT` | `RenderingDevice.TEXTURE_USAGE_CAN_UPDATE_BIT` | `RenderingDevice.TEXTURE_USAGE_CAN_COPY_FROM_BIT` | `RenderingDevice.TEXTURE_USAGE_CAN_COPY_TO_BIT` | `RenderingDevice.TEXTURE_USAGE_INPUT_ATTACHMENT_BIT` +RenderingDevice.TEXTURE_USAGE_SAMPLING_BIT = 1 +RenderingDevice.TEXTURE_USAGE_COLOR_ATTACHMENT_BIT = 2 +RenderingDevice.TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 4 +RenderingDevice.TEXTURE_USAGE_STORAGE_BIT = 8 +RenderingDevice.TEXTURE_USAGE_STORAGE_ATOMIC_BIT = 16 +RenderingDevice.TEXTURE_USAGE_CPU_READ_BIT = 32 +RenderingDevice.TEXTURE_USAGE_CAN_UPDATE_BIT = 64 +RenderingDevice.TEXTURE_USAGE_CAN_COPY_FROM_BIT = 128 +RenderingDevice.TEXTURE_USAGE_CAN_COPY_TO_BIT = 256 +RenderingDevice.TEXTURE_USAGE_INPUT_ATTACHMENT_BIT = 512 + +--- @alias RenderingDevice.TextureSwizzle `RenderingDevice.TEXTURE_SWIZZLE_IDENTITY` | `RenderingDevice.TEXTURE_SWIZZLE_ZERO` | `RenderingDevice.TEXTURE_SWIZZLE_ONE` | `RenderingDevice.TEXTURE_SWIZZLE_R` | `RenderingDevice.TEXTURE_SWIZZLE_G` | `RenderingDevice.TEXTURE_SWIZZLE_B` | `RenderingDevice.TEXTURE_SWIZZLE_A` | `RenderingDevice.TEXTURE_SWIZZLE_MAX` +RenderingDevice.TEXTURE_SWIZZLE_IDENTITY = 0 +RenderingDevice.TEXTURE_SWIZZLE_ZERO = 1 +RenderingDevice.TEXTURE_SWIZZLE_ONE = 2 +RenderingDevice.TEXTURE_SWIZZLE_R = 3 +RenderingDevice.TEXTURE_SWIZZLE_G = 4 +RenderingDevice.TEXTURE_SWIZZLE_B = 5 +RenderingDevice.TEXTURE_SWIZZLE_A = 6 +RenderingDevice.TEXTURE_SWIZZLE_MAX = 7 + +--- @alias RenderingDevice.TextureSliceType `RenderingDevice.TEXTURE_SLICE_2D` | `RenderingDevice.TEXTURE_SLICE_CUBEMAP` | `RenderingDevice.TEXTURE_SLICE_3D` +RenderingDevice.TEXTURE_SLICE_2D = 0 +RenderingDevice.TEXTURE_SLICE_CUBEMAP = 1 +RenderingDevice.TEXTURE_SLICE_3D = 2 + +--- @alias RenderingDevice.SamplerFilter `RenderingDevice.SAMPLER_FILTER_NEAREST` | `RenderingDevice.SAMPLER_FILTER_LINEAR` +RenderingDevice.SAMPLER_FILTER_NEAREST = 0 +RenderingDevice.SAMPLER_FILTER_LINEAR = 1 + +--- @alias RenderingDevice.SamplerRepeatMode `RenderingDevice.SAMPLER_REPEAT_MODE_REPEAT` | `RenderingDevice.SAMPLER_REPEAT_MODE_MIRRORED_REPEAT` | `RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE` | `RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER` | `RenderingDevice.SAMPLER_REPEAT_MODE_MIRROR_CLAMP_TO_EDGE` | `RenderingDevice.SAMPLER_REPEAT_MODE_MAX` +RenderingDevice.SAMPLER_REPEAT_MODE_REPEAT = 0 +RenderingDevice.SAMPLER_REPEAT_MODE_MIRRORED_REPEAT = 1 +RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE = 2 +RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER = 3 +RenderingDevice.SAMPLER_REPEAT_MODE_MIRROR_CLAMP_TO_EDGE = 4 +RenderingDevice.SAMPLER_REPEAT_MODE_MAX = 5 + +--- @alias RenderingDevice.SamplerBorderColor `RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK` | `RenderingDevice.SAMPLER_BORDER_COLOR_INT_TRANSPARENT_BLACK` | `RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_BLACK` | `RenderingDevice.SAMPLER_BORDER_COLOR_INT_OPAQUE_BLACK` | `RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_WHITE` | `RenderingDevice.SAMPLER_BORDER_COLOR_INT_OPAQUE_WHITE` | `RenderingDevice.SAMPLER_BORDER_COLOR_MAX` +RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0 +RenderingDevice.SAMPLER_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1 +RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2 +RenderingDevice.SAMPLER_BORDER_COLOR_INT_OPAQUE_BLACK = 3 +RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4 +RenderingDevice.SAMPLER_BORDER_COLOR_INT_OPAQUE_WHITE = 5 +RenderingDevice.SAMPLER_BORDER_COLOR_MAX = 6 + +--- @alias RenderingDevice.VertexFrequency `RenderingDevice.VERTEX_FREQUENCY_VERTEX` | `RenderingDevice.VERTEX_FREQUENCY_INSTANCE` +RenderingDevice.VERTEX_FREQUENCY_VERTEX = 0 +RenderingDevice.VERTEX_FREQUENCY_INSTANCE = 1 + +--- @alias RenderingDevice.IndexBufferFormat `RenderingDevice.INDEX_BUFFER_FORMAT_UINT16` | `RenderingDevice.INDEX_BUFFER_FORMAT_UINT32` +RenderingDevice.INDEX_BUFFER_FORMAT_UINT16 = 0 +RenderingDevice.INDEX_BUFFER_FORMAT_UINT32 = 1 + +--- @alias RenderingDevice.StorageBufferUsage `RenderingDevice.STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT` +RenderingDevice.STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT = 1 + +--- @alias RenderingDevice.BufferCreationBits `RenderingDevice.BUFFER_CREATION_DEVICE_ADDRESS_BIT` | `RenderingDevice.BUFFER_CREATION_AS_STORAGE_BIT` +RenderingDevice.BUFFER_CREATION_DEVICE_ADDRESS_BIT = 1 +RenderingDevice.BUFFER_CREATION_AS_STORAGE_BIT = 2 + +--- @alias RenderingDevice.UniformType `RenderingDevice.UNIFORM_TYPE_SAMPLER` | `RenderingDevice.UNIFORM_TYPE_SAMPLER_WITH_TEXTURE` | `RenderingDevice.UNIFORM_TYPE_TEXTURE` | `RenderingDevice.UNIFORM_TYPE_IMAGE` | `RenderingDevice.UNIFORM_TYPE_TEXTURE_BUFFER` | `RenderingDevice.UNIFORM_TYPE_SAMPLER_WITH_TEXTURE_BUFFER` | `RenderingDevice.UNIFORM_TYPE_IMAGE_BUFFER` | `RenderingDevice.UNIFORM_TYPE_UNIFORM_BUFFER` | `RenderingDevice.UNIFORM_TYPE_STORAGE_BUFFER` | `RenderingDevice.UNIFORM_TYPE_INPUT_ATTACHMENT` | `RenderingDevice.UNIFORM_TYPE_MAX` +RenderingDevice.UNIFORM_TYPE_SAMPLER = 0 +RenderingDevice.UNIFORM_TYPE_SAMPLER_WITH_TEXTURE = 1 +RenderingDevice.UNIFORM_TYPE_TEXTURE = 2 +RenderingDevice.UNIFORM_TYPE_IMAGE = 3 +RenderingDevice.UNIFORM_TYPE_TEXTURE_BUFFER = 4 +RenderingDevice.UNIFORM_TYPE_SAMPLER_WITH_TEXTURE_BUFFER = 5 +RenderingDevice.UNIFORM_TYPE_IMAGE_BUFFER = 6 +RenderingDevice.UNIFORM_TYPE_UNIFORM_BUFFER = 7 +RenderingDevice.UNIFORM_TYPE_STORAGE_BUFFER = 8 +RenderingDevice.UNIFORM_TYPE_INPUT_ATTACHMENT = 9 +RenderingDevice.UNIFORM_TYPE_MAX = 10 + +--- @alias RenderingDevice.RenderPrimitive `RenderingDevice.RENDER_PRIMITIVE_POINTS` | `RenderingDevice.RENDER_PRIMITIVE_LINES` | `RenderingDevice.RENDER_PRIMITIVE_LINES_WITH_ADJACENCY` | `RenderingDevice.RENDER_PRIMITIVE_LINESTRIPS` | `RenderingDevice.RENDER_PRIMITIVE_LINESTRIPS_WITH_ADJACENCY` | `RenderingDevice.RENDER_PRIMITIVE_TRIANGLES` | `RenderingDevice.RENDER_PRIMITIVE_TRIANGLES_WITH_ADJACENCY` | `RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS` | `RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_AJACENCY` | `RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_RESTART_INDEX` | `RenderingDevice.RENDER_PRIMITIVE_TESSELATION_PATCH` | `RenderingDevice.RENDER_PRIMITIVE_MAX` +RenderingDevice.RENDER_PRIMITIVE_POINTS = 0 +RenderingDevice.RENDER_PRIMITIVE_LINES = 1 +RenderingDevice.RENDER_PRIMITIVE_LINES_WITH_ADJACENCY = 2 +RenderingDevice.RENDER_PRIMITIVE_LINESTRIPS = 3 +RenderingDevice.RENDER_PRIMITIVE_LINESTRIPS_WITH_ADJACENCY = 4 +RenderingDevice.RENDER_PRIMITIVE_TRIANGLES = 5 +RenderingDevice.RENDER_PRIMITIVE_TRIANGLES_WITH_ADJACENCY = 6 +RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS = 7 +RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_AJACENCY = 8 +RenderingDevice.RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_RESTART_INDEX = 9 +RenderingDevice.RENDER_PRIMITIVE_TESSELATION_PATCH = 10 +RenderingDevice.RENDER_PRIMITIVE_MAX = 11 + +--- @alias RenderingDevice.PolygonCullMode `RenderingDevice.POLYGON_CULL_DISABLED` | `RenderingDevice.POLYGON_CULL_FRONT` | `RenderingDevice.POLYGON_CULL_BACK` +RenderingDevice.POLYGON_CULL_DISABLED = 0 +RenderingDevice.POLYGON_CULL_FRONT = 1 +RenderingDevice.POLYGON_CULL_BACK = 2 + +--- @alias RenderingDevice.PolygonFrontFace `RenderingDevice.POLYGON_FRONT_FACE_CLOCKWISE` | `RenderingDevice.POLYGON_FRONT_FACE_COUNTER_CLOCKWISE` +RenderingDevice.POLYGON_FRONT_FACE_CLOCKWISE = 0 +RenderingDevice.POLYGON_FRONT_FACE_COUNTER_CLOCKWISE = 1 + +--- @alias RenderingDevice.StencilOperation `RenderingDevice.STENCIL_OP_KEEP` | `RenderingDevice.STENCIL_OP_ZERO` | `RenderingDevice.STENCIL_OP_REPLACE` | `RenderingDevice.STENCIL_OP_INCREMENT_AND_CLAMP` | `RenderingDevice.STENCIL_OP_DECREMENT_AND_CLAMP` | `RenderingDevice.STENCIL_OP_INVERT` | `RenderingDevice.STENCIL_OP_INCREMENT_AND_WRAP` | `RenderingDevice.STENCIL_OP_DECREMENT_AND_WRAP` | `RenderingDevice.STENCIL_OP_MAX` +RenderingDevice.STENCIL_OP_KEEP = 0 +RenderingDevice.STENCIL_OP_ZERO = 1 +RenderingDevice.STENCIL_OP_REPLACE = 2 +RenderingDevice.STENCIL_OP_INCREMENT_AND_CLAMP = 3 +RenderingDevice.STENCIL_OP_DECREMENT_AND_CLAMP = 4 +RenderingDevice.STENCIL_OP_INVERT = 5 +RenderingDevice.STENCIL_OP_INCREMENT_AND_WRAP = 6 +RenderingDevice.STENCIL_OP_DECREMENT_AND_WRAP = 7 +RenderingDevice.STENCIL_OP_MAX = 8 + +--- @alias RenderingDevice.CompareOperator `RenderingDevice.COMPARE_OP_NEVER` | `RenderingDevice.COMPARE_OP_LESS` | `RenderingDevice.COMPARE_OP_EQUAL` | `RenderingDevice.COMPARE_OP_LESS_OR_EQUAL` | `RenderingDevice.COMPARE_OP_GREATER` | `RenderingDevice.COMPARE_OP_NOT_EQUAL` | `RenderingDevice.COMPARE_OP_GREATER_OR_EQUAL` | `RenderingDevice.COMPARE_OP_ALWAYS` | `RenderingDevice.COMPARE_OP_MAX` +RenderingDevice.COMPARE_OP_NEVER = 0 +RenderingDevice.COMPARE_OP_LESS = 1 +RenderingDevice.COMPARE_OP_EQUAL = 2 +RenderingDevice.COMPARE_OP_LESS_OR_EQUAL = 3 +RenderingDevice.COMPARE_OP_GREATER = 4 +RenderingDevice.COMPARE_OP_NOT_EQUAL = 5 +RenderingDevice.COMPARE_OP_GREATER_OR_EQUAL = 6 +RenderingDevice.COMPARE_OP_ALWAYS = 7 +RenderingDevice.COMPARE_OP_MAX = 8 + +--- @alias RenderingDevice.LogicOperation `RenderingDevice.LOGIC_OP_CLEAR` | `RenderingDevice.LOGIC_OP_AND` | `RenderingDevice.LOGIC_OP_AND_REVERSE` | `RenderingDevice.LOGIC_OP_COPY` | `RenderingDevice.LOGIC_OP_AND_INVERTED` | `RenderingDevice.LOGIC_OP_NO_OP` | `RenderingDevice.LOGIC_OP_XOR` | `RenderingDevice.LOGIC_OP_OR` | `RenderingDevice.LOGIC_OP_NOR` | `RenderingDevice.LOGIC_OP_EQUIVALENT` | `RenderingDevice.LOGIC_OP_INVERT` | `RenderingDevice.LOGIC_OP_OR_REVERSE` | `RenderingDevice.LOGIC_OP_COPY_INVERTED` | `RenderingDevice.LOGIC_OP_OR_INVERTED` | `RenderingDevice.LOGIC_OP_NAND` | `RenderingDevice.LOGIC_OP_SET` | `RenderingDevice.LOGIC_OP_MAX` +RenderingDevice.LOGIC_OP_CLEAR = 0 +RenderingDevice.LOGIC_OP_AND = 1 +RenderingDevice.LOGIC_OP_AND_REVERSE = 2 +RenderingDevice.LOGIC_OP_COPY = 3 +RenderingDevice.LOGIC_OP_AND_INVERTED = 4 +RenderingDevice.LOGIC_OP_NO_OP = 5 +RenderingDevice.LOGIC_OP_XOR = 6 +RenderingDevice.LOGIC_OP_OR = 7 +RenderingDevice.LOGIC_OP_NOR = 8 +RenderingDevice.LOGIC_OP_EQUIVALENT = 9 +RenderingDevice.LOGIC_OP_INVERT = 10 +RenderingDevice.LOGIC_OP_OR_REVERSE = 11 +RenderingDevice.LOGIC_OP_COPY_INVERTED = 12 +RenderingDevice.LOGIC_OP_OR_INVERTED = 13 +RenderingDevice.LOGIC_OP_NAND = 14 +RenderingDevice.LOGIC_OP_SET = 15 +RenderingDevice.LOGIC_OP_MAX = 16 + +--- @alias RenderingDevice.BlendFactor `RenderingDevice.BLEND_FACTOR_ZERO` | `RenderingDevice.BLEND_FACTOR_ONE` | `RenderingDevice.BLEND_FACTOR_SRC_COLOR` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_COLOR` | `RenderingDevice.BLEND_FACTOR_DST_COLOR` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_DST_COLOR` | `RenderingDevice.BLEND_FACTOR_SRC_ALPHA` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA` | `RenderingDevice.BLEND_FACTOR_DST_ALPHA` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_DST_ALPHA` | `RenderingDevice.BLEND_FACTOR_CONSTANT_COLOR` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR` | `RenderingDevice.BLEND_FACTOR_CONSTANT_ALPHA` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA` | `RenderingDevice.BLEND_FACTOR_SRC_ALPHA_SATURATE` | `RenderingDevice.BLEND_FACTOR_SRC1_COLOR` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR` | `RenderingDevice.BLEND_FACTOR_SRC1_ALPHA` | `RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA` | `RenderingDevice.BLEND_FACTOR_MAX` +RenderingDevice.BLEND_FACTOR_ZERO = 0 +RenderingDevice.BLEND_FACTOR_ONE = 1 +RenderingDevice.BLEND_FACTOR_SRC_COLOR = 2 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3 +RenderingDevice.BLEND_FACTOR_DST_COLOR = 4 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5 +RenderingDevice.BLEND_FACTOR_SRC_ALPHA = 6 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7 +RenderingDevice.BLEND_FACTOR_DST_ALPHA = 8 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9 +RenderingDevice.BLEND_FACTOR_CONSTANT_COLOR = 10 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11 +RenderingDevice.BLEND_FACTOR_CONSTANT_ALPHA = 12 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13 +RenderingDevice.BLEND_FACTOR_SRC_ALPHA_SATURATE = 14 +RenderingDevice.BLEND_FACTOR_SRC1_COLOR = 15 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16 +RenderingDevice.BLEND_FACTOR_SRC1_ALPHA = 17 +RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18 +RenderingDevice.BLEND_FACTOR_MAX = 19 + +--- @alias RenderingDevice.BlendOperation `RenderingDevice.BLEND_OP_ADD` | `RenderingDevice.BLEND_OP_SUBTRACT` | `RenderingDevice.BLEND_OP_REVERSE_SUBTRACT` | `RenderingDevice.BLEND_OP_MINIMUM` | `RenderingDevice.BLEND_OP_MAXIMUM` | `RenderingDevice.BLEND_OP_MAX` +RenderingDevice.BLEND_OP_ADD = 0 +RenderingDevice.BLEND_OP_SUBTRACT = 1 +RenderingDevice.BLEND_OP_REVERSE_SUBTRACT = 2 +RenderingDevice.BLEND_OP_MINIMUM = 3 +RenderingDevice.BLEND_OP_MAXIMUM = 4 +RenderingDevice.BLEND_OP_MAX = 5 + +--- @alias RenderingDevice.PipelineDynamicStateFlags `RenderingDevice.DYNAMIC_STATE_LINE_WIDTH` | `RenderingDevice.DYNAMIC_STATE_DEPTH_BIAS` | `RenderingDevice.DYNAMIC_STATE_BLEND_CONSTANTS` | `RenderingDevice.DYNAMIC_STATE_DEPTH_BOUNDS` | `RenderingDevice.DYNAMIC_STATE_STENCIL_COMPARE_MASK` | `RenderingDevice.DYNAMIC_STATE_STENCIL_WRITE_MASK` | `RenderingDevice.DYNAMIC_STATE_STENCIL_REFERENCE` +RenderingDevice.DYNAMIC_STATE_LINE_WIDTH = 1 +RenderingDevice.DYNAMIC_STATE_DEPTH_BIAS = 2 +RenderingDevice.DYNAMIC_STATE_BLEND_CONSTANTS = 4 +RenderingDevice.DYNAMIC_STATE_DEPTH_BOUNDS = 8 +RenderingDevice.DYNAMIC_STATE_STENCIL_COMPARE_MASK = 16 +RenderingDevice.DYNAMIC_STATE_STENCIL_WRITE_MASK = 32 +RenderingDevice.DYNAMIC_STATE_STENCIL_REFERENCE = 64 + +--- @alias RenderingDevice.InitialAction `RenderingDevice.INITIAL_ACTION_LOAD` | `RenderingDevice.INITIAL_ACTION_CLEAR` | `RenderingDevice.INITIAL_ACTION_DISCARD` | `RenderingDevice.INITIAL_ACTION_MAX` | `RenderingDevice.INITIAL_ACTION_CLEAR_REGION` | `RenderingDevice.INITIAL_ACTION_CLEAR_REGION_CONTINUE` | `RenderingDevice.INITIAL_ACTION_KEEP` | `RenderingDevice.INITIAL_ACTION_DROP` | `RenderingDevice.INITIAL_ACTION_CONTINUE` +RenderingDevice.INITIAL_ACTION_LOAD = 0 +RenderingDevice.INITIAL_ACTION_CLEAR = 1 +RenderingDevice.INITIAL_ACTION_DISCARD = 2 +RenderingDevice.INITIAL_ACTION_MAX = 3 +RenderingDevice.INITIAL_ACTION_CLEAR_REGION = 1 +RenderingDevice.INITIAL_ACTION_CLEAR_REGION_CONTINUE = 1 +RenderingDevice.INITIAL_ACTION_KEEP = 0 +RenderingDevice.INITIAL_ACTION_DROP = 2 +RenderingDevice.INITIAL_ACTION_CONTINUE = 0 + +--- @alias RenderingDevice.FinalAction `RenderingDevice.FINAL_ACTION_STORE` | `RenderingDevice.FINAL_ACTION_DISCARD` | `RenderingDevice.FINAL_ACTION_MAX` | `RenderingDevice.FINAL_ACTION_READ` | `RenderingDevice.FINAL_ACTION_CONTINUE` +RenderingDevice.FINAL_ACTION_STORE = 0 +RenderingDevice.FINAL_ACTION_DISCARD = 1 +RenderingDevice.FINAL_ACTION_MAX = 2 +RenderingDevice.FINAL_ACTION_READ = 0 +RenderingDevice.FINAL_ACTION_CONTINUE = 0 + +--- @alias RenderingDevice.ShaderStage `RenderingDevice.SHADER_STAGE_VERTEX` | `RenderingDevice.SHADER_STAGE_FRAGMENT` | `RenderingDevice.SHADER_STAGE_TESSELATION_CONTROL` | `RenderingDevice.SHADER_STAGE_TESSELATION_EVALUATION` | `RenderingDevice.SHADER_STAGE_COMPUTE` | `RenderingDevice.SHADER_STAGE_MAX` | `RenderingDevice.SHADER_STAGE_VERTEX_BIT` | `RenderingDevice.SHADER_STAGE_FRAGMENT_BIT` | `RenderingDevice.SHADER_STAGE_TESSELATION_CONTROL_BIT` | `RenderingDevice.SHADER_STAGE_TESSELATION_EVALUATION_BIT` | `RenderingDevice.SHADER_STAGE_COMPUTE_BIT` +RenderingDevice.SHADER_STAGE_VERTEX = 0 +RenderingDevice.SHADER_STAGE_FRAGMENT = 1 +RenderingDevice.SHADER_STAGE_TESSELATION_CONTROL = 2 +RenderingDevice.SHADER_STAGE_TESSELATION_EVALUATION = 3 +RenderingDevice.SHADER_STAGE_COMPUTE = 4 +RenderingDevice.SHADER_STAGE_MAX = 5 +RenderingDevice.SHADER_STAGE_VERTEX_BIT = 1 +RenderingDevice.SHADER_STAGE_FRAGMENT_BIT = 2 +RenderingDevice.SHADER_STAGE_TESSELATION_CONTROL_BIT = 4 +RenderingDevice.SHADER_STAGE_TESSELATION_EVALUATION_BIT = 8 +RenderingDevice.SHADER_STAGE_COMPUTE_BIT = 16 + +--- @alias RenderingDevice.ShaderLanguage `RenderingDevice.SHADER_LANGUAGE_GLSL` | `RenderingDevice.SHADER_LANGUAGE_HLSL` +RenderingDevice.SHADER_LANGUAGE_GLSL = 0 +RenderingDevice.SHADER_LANGUAGE_HLSL = 1 + +--- @alias RenderingDevice.PipelineSpecializationConstantType `RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_BOOL` | `RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_INT` | `RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_FLOAT` +RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_BOOL = 0 +RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_INT = 1 +RenderingDevice.PIPELINE_SPECIALIZATION_CONSTANT_TYPE_FLOAT = 2 + +--- @alias RenderingDevice.Features `RenderingDevice.SUPPORTS_METALFX_SPATIAL` | `RenderingDevice.SUPPORTS_METALFX_TEMPORAL` | `RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS` | `RenderingDevice.SUPPORTS_IMAGE_ATOMIC_32_BIT` +RenderingDevice.SUPPORTS_METALFX_SPATIAL = 3 +RenderingDevice.SUPPORTS_METALFX_TEMPORAL = 4 +RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS = 6 +RenderingDevice.SUPPORTS_IMAGE_ATOMIC_32_BIT = 7 + +--- @alias RenderingDevice.Limit `RenderingDevice.LIMIT_MAX_BOUND_UNIFORM_SETS` | `RenderingDevice.LIMIT_MAX_FRAMEBUFFER_COLOR_ATTACHMENTS` | `RenderingDevice.LIMIT_MAX_TEXTURES_PER_UNIFORM_SET` | `RenderingDevice.LIMIT_MAX_SAMPLERS_PER_UNIFORM_SET` | `RenderingDevice.LIMIT_MAX_STORAGE_BUFFERS_PER_UNIFORM_SET` | `RenderingDevice.LIMIT_MAX_STORAGE_IMAGES_PER_UNIFORM_SET` | `RenderingDevice.LIMIT_MAX_UNIFORM_BUFFERS_PER_UNIFORM_SET` | `RenderingDevice.LIMIT_MAX_DRAW_INDEXED_INDEX` | `RenderingDevice.LIMIT_MAX_FRAMEBUFFER_HEIGHT` | `RenderingDevice.LIMIT_MAX_FRAMEBUFFER_WIDTH` | `RenderingDevice.LIMIT_MAX_TEXTURE_ARRAY_LAYERS` | `RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_1D` | `RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_2D` | `RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_3D` | `RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_CUBE` | `RenderingDevice.LIMIT_MAX_TEXTURES_PER_SHADER_STAGE` | `RenderingDevice.LIMIT_MAX_SAMPLERS_PER_SHADER_STAGE` | `RenderingDevice.LIMIT_MAX_STORAGE_BUFFERS_PER_SHADER_STAGE` | `RenderingDevice.LIMIT_MAX_STORAGE_IMAGES_PER_SHADER_STAGE` | `RenderingDevice.LIMIT_MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE` | `RenderingDevice.LIMIT_MAX_PUSH_CONSTANT_SIZE` | `RenderingDevice.LIMIT_MAX_UNIFORM_BUFFER_SIZE` | `RenderingDevice.LIMIT_MAX_VERTEX_INPUT_ATTRIBUTE_OFFSET` | `RenderingDevice.LIMIT_MAX_VERTEX_INPUT_ATTRIBUTES` | `RenderingDevice.LIMIT_MAX_VERTEX_INPUT_BINDINGS` | `RenderingDevice.LIMIT_MAX_VERTEX_INPUT_BINDING_STRIDE` | `RenderingDevice.LIMIT_MIN_UNIFORM_BUFFER_OFFSET_ALIGNMENT` | `RenderingDevice.LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_X` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Y` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Z` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_INVOCATIONS` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_X` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Y` | `RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Z` | `RenderingDevice.LIMIT_MAX_VIEWPORT_DIMENSIONS_X` | `RenderingDevice.LIMIT_MAX_VIEWPORT_DIMENSIONS_Y` | `RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE` | `RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MAX_SCALE` +RenderingDevice.LIMIT_MAX_BOUND_UNIFORM_SETS = 0 +RenderingDevice.LIMIT_MAX_FRAMEBUFFER_COLOR_ATTACHMENTS = 1 +RenderingDevice.LIMIT_MAX_TEXTURES_PER_UNIFORM_SET = 2 +RenderingDevice.LIMIT_MAX_SAMPLERS_PER_UNIFORM_SET = 3 +RenderingDevice.LIMIT_MAX_STORAGE_BUFFERS_PER_UNIFORM_SET = 4 +RenderingDevice.LIMIT_MAX_STORAGE_IMAGES_PER_UNIFORM_SET = 5 +RenderingDevice.LIMIT_MAX_UNIFORM_BUFFERS_PER_UNIFORM_SET = 6 +RenderingDevice.LIMIT_MAX_DRAW_INDEXED_INDEX = 7 +RenderingDevice.LIMIT_MAX_FRAMEBUFFER_HEIGHT = 8 +RenderingDevice.LIMIT_MAX_FRAMEBUFFER_WIDTH = 9 +RenderingDevice.LIMIT_MAX_TEXTURE_ARRAY_LAYERS = 10 +RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_1D = 11 +RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_2D = 12 +RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_3D = 13 +RenderingDevice.LIMIT_MAX_TEXTURE_SIZE_CUBE = 14 +RenderingDevice.LIMIT_MAX_TEXTURES_PER_SHADER_STAGE = 15 +RenderingDevice.LIMIT_MAX_SAMPLERS_PER_SHADER_STAGE = 16 +RenderingDevice.LIMIT_MAX_STORAGE_BUFFERS_PER_SHADER_STAGE = 17 +RenderingDevice.LIMIT_MAX_STORAGE_IMAGES_PER_SHADER_STAGE = 18 +RenderingDevice.LIMIT_MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE = 19 +RenderingDevice.LIMIT_MAX_PUSH_CONSTANT_SIZE = 20 +RenderingDevice.LIMIT_MAX_UNIFORM_BUFFER_SIZE = 21 +RenderingDevice.LIMIT_MAX_VERTEX_INPUT_ATTRIBUTE_OFFSET = 22 +RenderingDevice.LIMIT_MAX_VERTEX_INPUT_ATTRIBUTES = 23 +RenderingDevice.LIMIT_MAX_VERTEX_INPUT_BINDINGS = 24 +RenderingDevice.LIMIT_MAX_VERTEX_INPUT_BINDING_STRIDE = 25 +RenderingDevice.LIMIT_MIN_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 26 +RenderingDevice.LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE = 27 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_X = 28 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Y = 29 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Z = 30 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_INVOCATIONS = 31 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_X = 32 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Y = 33 +RenderingDevice.LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Z = 34 +RenderingDevice.LIMIT_MAX_VIEWPORT_DIMENSIONS_X = 35 +RenderingDevice.LIMIT_MAX_VIEWPORT_DIMENSIONS_Y = 36 +RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE = 46 +RenderingDevice.LIMIT_METALFX_TEMPORAL_SCALER_MAX_SCALE = 47 + +--- @alias RenderingDevice.MemoryType `RenderingDevice.MEMORY_TEXTURES` | `RenderingDevice.MEMORY_BUFFERS` | `RenderingDevice.MEMORY_TOTAL` +RenderingDevice.MEMORY_TEXTURES = 0 +RenderingDevice.MEMORY_BUFFERS = 1 +RenderingDevice.MEMORY_TOTAL = 2 + +--- @alias RenderingDevice.BreadcrumbMarker `RenderingDevice.NONE` | `RenderingDevice.REFLECTION_PROBES` | `RenderingDevice.SKY_PASS` | `RenderingDevice.LIGHTMAPPER_PASS` | `RenderingDevice.SHADOW_PASS_DIRECTIONAL` | `RenderingDevice.SHADOW_PASS_CUBE` | `RenderingDevice.OPAQUE_PASS` | `RenderingDevice.ALPHA_PASS` | `RenderingDevice.TRANSPARENT_PASS` | `RenderingDevice.POST_PROCESSING_PASS` | `RenderingDevice.BLIT_PASS` | `RenderingDevice.UI_PASS` | `RenderingDevice.DEBUG_PASS` +RenderingDevice.NONE = 0 +RenderingDevice.REFLECTION_PROBES = 65536 +RenderingDevice.SKY_PASS = 131072 +RenderingDevice.LIGHTMAPPER_PASS = 196608 +RenderingDevice.SHADOW_PASS_DIRECTIONAL = 262144 +RenderingDevice.SHADOW_PASS_CUBE = 327680 +RenderingDevice.OPAQUE_PASS = 393216 +RenderingDevice.ALPHA_PASS = 458752 +RenderingDevice.TRANSPARENT_PASS = 524288 +RenderingDevice.POST_PROCESSING_PASS = 589824 +RenderingDevice.BLIT_PASS = 655360 +RenderingDevice.UI_PASS = 720896 +RenderingDevice.DEBUG_PASS = 786432 + +--- @alias RenderingDevice.DrawFlags `RenderingDevice.DRAW_DEFAULT_ALL` | `RenderingDevice.DRAW_CLEAR_COLOR_0` | `RenderingDevice.DRAW_CLEAR_COLOR_1` | `RenderingDevice.DRAW_CLEAR_COLOR_2` | `RenderingDevice.DRAW_CLEAR_COLOR_3` | `RenderingDevice.DRAW_CLEAR_COLOR_4` | `RenderingDevice.DRAW_CLEAR_COLOR_5` | `RenderingDevice.DRAW_CLEAR_COLOR_6` | `RenderingDevice.DRAW_CLEAR_COLOR_7` | `RenderingDevice.DRAW_CLEAR_COLOR_MASK` | `RenderingDevice.DRAW_CLEAR_COLOR_ALL` | `RenderingDevice.DRAW_IGNORE_COLOR_0` | `RenderingDevice.DRAW_IGNORE_COLOR_1` | `RenderingDevice.DRAW_IGNORE_COLOR_2` | `RenderingDevice.DRAW_IGNORE_COLOR_3` | `RenderingDevice.DRAW_IGNORE_COLOR_4` | `RenderingDevice.DRAW_IGNORE_COLOR_5` | `RenderingDevice.DRAW_IGNORE_COLOR_6` | `RenderingDevice.DRAW_IGNORE_COLOR_7` | `RenderingDevice.DRAW_IGNORE_COLOR_MASK` | `RenderingDevice.DRAW_IGNORE_COLOR_ALL` | `RenderingDevice.DRAW_CLEAR_DEPTH` | `RenderingDevice.DRAW_IGNORE_DEPTH` | `RenderingDevice.DRAW_CLEAR_STENCIL` | `RenderingDevice.DRAW_IGNORE_STENCIL` | `RenderingDevice.DRAW_CLEAR_ALL` | `RenderingDevice.DRAW_IGNORE_ALL` +RenderingDevice.DRAW_DEFAULT_ALL = 0 +RenderingDevice.DRAW_CLEAR_COLOR_0 = 1 +RenderingDevice.DRAW_CLEAR_COLOR_1 = 2 +RenderingDevice.DRAW_CLEAR_COLOR_2 = 4 +RenderingDevice.DRAW_CLEAR_COLOR_3 = 8 +RenderingDevice.DRAW_CLEAR_COLOR_4 = 16 +RenderingDevice.DRAW_CLEAR_COLOR_5 = 32 +RenderingDevice.DRAW_CLEAR_COLOR_6 = 64 +RenderingDevice.DRAW_CLEAR_COLOR_7 = 128 +RenderingDevice.DRAW_CLEAR_COLOR_MASK = 255 +RenderingDevice.DRAW_CLEAR_COLOR_ALL = 255 +RenderingDevice.DRAW_IGNORE_COLOR_0 = 256 +RenderingDevice.DRAW_IGNORE_COLOR_1 = 512 +RenderingDevice.DRAW_IGNORE_COLOR_2 = 1024 +RenderingDevice.DRAW_IGNORE_COLOR_3 = 2048 +RenderingDevice.DRAW_IGNORE_COLOR_4 = 4096 +RenderingDevice.DRAW_IGNORE_COLOR_5 = 8192 +RenderingDevice.DRAW_IGNORE_COLOR_6 = 16384 +RenderingDevice.DRAW_IGNORE_COLOR_7 = 32768 +RenderingDevice.DRAW_IGNORE_COLOR_MASK = 65280 +RenderingDevice.DRAW_IGNORE_COLOR_ALL = 65280 +RenderingDevice.DRAW_CLEAR_DEPTH = 65536 +RenderingDevice.DRAW_IGNORE_DEPTH = 131072 +RenderingDevice.DRAW_CLEAR_STENCIL = 262144 +RenderingDevice.DRAW_IGNORE_STENCIL = 524288 +RenderingDevice.DRAW_CLEAR_ALL = 327935 +RenderingDevice.DRAW_IGNORE_ALL = 720640 + +--- @param format RDTextureFormat +--- @param view RDTextureView +--- @param data Array[PackedByteArray]? Default: [] +--- @return RID +function RenderingDevice:texture_create(format, view, data) end + +--- @param view RDTextureView +--- @param with_texture RID +--- @return RID +function RenderingDevice:texture_create_shared(view, with_texture) end + +--- @param view RDTextureView +--- @param with_texture RID +--- @param layer int +--- @param mipmap int +--- @param mipmaps int? Default: 1 +--- @param slice_type RenderingDevice.TextureSliceType? Default: 0 +--- @return RID +function RenderingDevice:texture_create_shared_from_slice(view, with_texture, layer, mipmap, mipmaps, slice_type) end + +--- @param type RenderingDevice.TextureType +--- @param format RenderingDevice.DataFormat +--- @param samples RenderingDevice.TextureSamples +--- @param usage_flags RenderingDevice.TextureUsageBits +--- @param image int +--- @param width int +--- @param height int +--- @param depth int +--- @param layers int +--- @param mipmaps int? Default: 1 +--- @return RID +function RenderingDevice:texture_create_from_extension(type, format, samples, usage_flags, image, width, height, depth, layers, mipmaps) end + +--- @param texture RID +--- @param layer int +--- @param data PackedByteArray +--- @return Error +function RenderingDevice:texture_update(texture, layer, data) end + +--- @param texture RID +--- @param layer int +--- @return PackedByteArray +function RenderingDevice:texture_get_data(texture, layer) end + +--- @param texture RID +--- @param layer int +--- @param callback Callable +--- @return Error +function RenderingDevice:texture_get_data_async(texture, layer, callback) end + +--- @param format RenderingDevice.DataFormat +--- @param usage_flags RenderingDevice.TextureUsageBits +--- @return bool +function RenderingDevice:texture_is_format_supported_for_usage(format, usage_flags) end + +--- @param texture RID +--- @return bool +function RenderingDevice:texture_is_shared(texture) end + +--- @param texture RID +--- @return bool +function RenderingDevice:texture_is_valid(texture) end + +--- @param texture RID +--- @param discardable bool +function RenderingDevice:texture_set_discardable(texture, discardable) end + +--- @param texture RID +--- @return bool +function RenderingDevice:texture_is_discardable(texture) end + +--- @param from_texture RID +--- @param to_texture RID +--- @param from_pos Vector3 +--- @param to_pos Vector3 +--- @param size Vector3 +--- @param src_mipmap int +--- @param dst_mipmap int +--- @param src_layer int +--- @param dst_layer int +--- @return Error +function RenderingDevice:texture_copy(from_texture, to_texture, from_pos, to_pos, size, src_mipmap, dst_mipmap, src_layer, dst_layer) end + +--- @param texture RID +--- @param color Color +--- @param base_mipmap int +--- @param mipmap_count int +--- @param base_layer int +--- @param layer_count int +--- @return Error +function RenderingDevice:texture_clear(texture, color, base_mipmap, mipmap_count, base_layer, layer_count) end + +--- @param from_texture RID +--- @param to_texture RID +--- @return Error +function RenderingDevice:texture_resolve_multisample(from_texture, to_texture) end + +--- @param texture RID +--- @return RDTextureFormat +function RenderingDevice:texture_get_format(texture) end + +--- @param texture RID +--- @return int +function RenderingDevice:texture_get_native_handle(texture) end + +--- @param attachments Array[RDAttachmentFormat] +--- @param view_count int? Default: 1 +--- @return int +function RenderingDevice:framebuffer_format_create(attachments, view_count) end + +--- @param attachments Array[RDAttachmentFormat] +--- @param passes Array[RDFramebufferPass] +--- @param view_count int? Default: 1 +--- @return int +function RenderingDevice:framebuffer_format_create_multipass(attachments, passes, view_count) end + +--- @param samples RenderingDevice.TextureSamples? Default: 0 +--- @return int +function RenderingDevice:framebuffer_format_create_empty(samples) end + +--- @param format int +--- @param render_pass int? Default: 0 +--- @return RenderingDevice.TextureSamples +function RenderingDevice:framebuffer_format_get_texture_samples(format, render_pass) end + +--- @param textures Array[RID] +--- @param validate_with_format int? Default: -1 +--- @param view_count int? Default: 1 +--- @return RID +function RenderingDevice:framebuffer_create(textures, validate_with_format, view_count) end + +--- @param textures Array[RID] +--- @param passes Array[RDFramebufferPass] +--- @param validate_with_format int? Default: -1 +--- @param view_count int? Default: 1 +--- @return RID +function RenderingDevice:framebuffer_create_multipass(textures, passes, validate_with_format, view_count) end + +--- @param size Vector2i +--- @param samples RenderingDevice.TextureSamples? Default: 0 +--- @param validate_with_format int? Default: -1 +--- @return RID +function RenderingDevice:framebuffer_create_empty(size, samples, validate_with_format) end + +--- @param framebuffer RID +--- @return int +function RenderingDevice:framebuffer_get_format(framebuffer) end + +--- @param framebuffer RID +--- @return bool +function RenderingDevice:framebuffer_is_valid(framebuffer) end + +--- @param state RDSamplerState +--- @return RID +function RenderingDevice:sampler_create(state) end + +--- @param format RenderingDevice.DataFormat +--- @param sampler_filter RenderingDevice.SamplerFilter +--- @return bool +function RenderingDevice:sampler_is_format_supported_for_filter(format, sampler_filter) end + +--- @param size_bytes int +--- @param data PackedByteArray? Default: PackedByteArray() +--- @param creation_bits RenderingDevice.BufferCreationBits? Default: 0 +--- @return RID +function RenderingDevice:vertex_buffer_create(size_bytes, data, creation_bits) end + +--- @param vertex_descriptions Array[RDVertexAttribute] +--- @return int +function RenderingDevice:vertex_format_create(vertex_descriptions) end + +--- @param vertex_count int +--- @param vertex_format int +--- @param src_buffers Array[RID] +--- @param offsets PackedInt64Array? Default: PackedInt64Array() +--- @return RID +function RenderingDevice:vertex_array_create(vertex_count, vertex_format, src_buffers, offsets) end + +--- @param size_indices int +--- @param format RenderingDevice.IndexBufferFormat +--- @param data PackedByteArray? Default: PackedByteArray() +--- @param use_restart_indices bool? Default: false +--- @param creation_bits RenderingDevice.BufferCreationBits? Default: 0 +--- @return RID +function RenderingDevice:index_buffer_create(size_indices, format, data, use_restart_indices, creation_bits) end + +--- @param index_buffer RID +--- @param index_offset int +--- @param index_count int +--- @return RID +function RenderingDevice:index_array_create(index_buffer, index_offset, index_count) end + +--- @param shader_source RDShaderSource +--- @param allow_cache bool? Default: true +--- @return RDShaderSPIRV +function RenderingDevice:shader_compile_spirv_from_source(shader_source, allow_cache) end + +--- @param spirv_data RDShaderSPIRV +--- @param name String? Default: "" +--- @return PackedByteArray +function RenderingDevice:shader_compile_binary_from_spirv(spirv_data, name) end + +--- @param spirv_data RDShaderSPIRV +--- @param name String? Default: "" +--- @return RID +function RenderingDevice:shader_create_from_spirv(spirv_data, name) end + +--- @param binary_data PackedByteArray +--- @param placeholder_rid RID? Default: RID() +--- @return RID +function RenderingDevice:shader_create_from_bytecode(binary_data, placeholder_rid) end + +--- @return RID +function RenderingDevice:shader_create_placeholder() end + +--- @param shader RID +--- @return int +function RenderingDevice:shader_get_vertex_input_attribute_mask(shader) end + +--- @param size_bytes int +--- @param data PackedByteArray? Default: PackedByteArray() +--- @param creation_bits RenderingDevice.BufferCreationBits? Default: 0 +--- @return RID +function RenderingDevice:uniform_buffer_create(size_bytes, data, creation_bits) end + +--- @param size_bytes int +--- @param data PackedByteArray? Default: PackedByteArray() +--- @param usage RenderingDevice.StorageBufferUsage? Default: 0 +--- @param creation_bits RenderingDevice.BufferCreationBits? Default: 0 +--- @return RID +function RenderingDevice:storage_buffer_create(size_bytes, data, usage, creation_bits) end + +--- @param size_bytes int +--- @param format RenderingDevice.DataFormat +--- @param data PackedByteArray? Default: PackedByteArray() +--- @return RID +function RenderingDevice:texture_buffer_create(size_bytes, format, data) end + +--- @param uniforms Array[RDUniform] +--- @param shader RID +--- @param shader_set int +--- @return RID +function RenderingDevice:uniform_set_create(uniforms, shader, shader_set) end + +--- @param uniform_set RID +--- @return bool +function RenderingDevice:uniform_set_is_valid(uniform_set) end + +--- @param src_buffer RID +--- @param dst_buffer RID +--- @param src_offset int +--- @param dst_offset int +--- @param size int +--- @return Error +function RenderingDevice:buffer_copy(src_buffer, dst_buffer, src_offset, dst_offset, size) end + +--- @param buffer RID +--- @param offset int +--- @param size_bytes int +--- @param data PackedByteArray +--- @return Error +function RenderingDevice:buffer_update(buffer, offset, size_bytes, data) end + +--- @param buffer RID +--- @param offset int +--- @param size_bytes int +--- @return Error +function RenderingDevice:buffer_clear(buffer, offset, size_bytes) end + +--- @param buffer RID +--- @param offset_bytes int? Default: 0 +--- @param size_bytes int? Default: 0 +--- @return PackedByteArray +function RenderingDevice:buffer_get_data(buffer, offset_bytes, size_bytes) end + +--- @param buffer RID +--- @param callback Callable +--- @param offset_bytes int? Default: 0 +--- @param size_bytes int? Default: 0 +--- @return Error +function RenderingDevice:buffer_get_data_async(buffer, callback, offset_bytes, size_bytes) end + +--- @param buffer RID +--- @return int +function RenderingDevice:buffer_get_device_address(buffer) end + +--- @param shader RID +--- @param framebuffer_format int +--- @param vertex_format int +--- @param primitive RenderingDevice.RenderPrimitive +--- @param rasterization_state RDPipelineRasterizationState +--- @param multisample_state RDPipelineMultisampleState +--- @param stencil_state RDPipelineDepthStencilState +--- @param color_blend_state RDPipelineColorBlendState +--- @param dynamic_state_flags RenderingDevice.PipelineDynamicStateFlags? Default: 0 +--- @param for_render_pass int? Default: 0 +--- @param specialization_constants Array[RDPipelineSpecializationConstant]? Default: Array[RDPipelineSpecializationConstant]([]) +--- @return RID +function RenderingDevice:render_pipeline_create(shader, framebuffer_format, vertex_format, primitive, rasterization_state, multisample_state, stencil_state, color_blend_state, dynamic_state_flags, for_render_pass, specialization_constants) end + +--- @param render_pipeline RID +--- @return bool +function RenderingDevice:render_pipeline_is_valid(render_pipeline) end + +--- @param shader RID +--- @param specialization_constants Array[RDPipelineSpecializationConstant]? Default: Array[RDPipelineSpecializationConstant]([]) +--- @return RID +function RenderingDevice:compute_pipeline_create(shader, specialization_constants) end + +--- @param compute_pipeline RID +--- @return bool +function RenderingDevice:compute_pipeline_is_valid(compute_pipeline) end + +--- @param screen int? Default: 0 +--- @return int +function RenderingDevice:screen_get_width(screen) end + +--- @param screen int? Default: 0 +--- @return int +function RenderingDevice:screen_get_height(screen) end + +--- @param screen int? Default: 0 +--- @return int +function RenderingDevice:screen_get_framebuffer_format(screen) end + +--- @param screen int? Default: 0 +--- @param clear_color Color? Default: Color(0, 0, 0, 1) +--- @return int +function RenderingDevice:draw_list_begin_for_screen(screen, clear_color) end + +--- @param framebuffer RID +--- @param draw_flags RenderingDevice.DrawFlags? Default: 0 +--- @param clear_color_values PackedColorArray? Default: PackedColorArray() +--- @param clear_depth_value float? Default: 1.0 +--- @param clear_stencil_value int? Default: 0 +--- @param region Rect2? Default: Rect2(0, 0, 0, 0) +--- @param breadcrumb int? Default: 0 +--- @return int +function RenderingDevice:draw_list_begin(framebuffer, draw_flags, clear_color_values, clear_depth_value, clear_stencil_value, region, breadcrumb) end + +--- @param framebuffer RID +--- @param splits int +--- @param initial_color_action RenderingDevice.InitialAction +--- @param final_color_action RenderingDevice.FinalAction +--- @param initial_depth_action RenderingDevice.InitialAction +--- @param final_depth_action RenderingDevice.FinalAction +--- @param clear_color_values PackedColorArray? Default: PackedColorArray() +--- @param clear_depth float? Default: 1.0 +--- @param clear_stencil int? Default: 0 +--- @param region Rect2? Default: Rect2(0, 0, 0, 0) +--- @param storage_textures Array[RID]? Default: Array[RID]([]) +--- @return PackedInt64Array +function RenderingDevice:draw_list_begin_split(framebuffer, splits, initial_color_action, final_color_action, initial_depth_action, final_depth_action, clear_color_values, clear_depth, clear_stencil, region, storage_textures) end + +--- @param draw_list int +--- @param color Color +function RenderingDevice:draw_list_set_blend_constants(draw_list, color) end + +--- @param draw_list int +--- @param render_pipeline RID +function RenderingDevice:draw_list_bind_render_pipeline(draw_list, render_pipeline) end + +--- @param draw_list int +--- @param uniform_set RID +--- @param set_index int +function RenderingDevice:draw_list_bind_uniform_set(draw_list, uniform_set, set_index) end + +--- @param draw_list int +--- @param vertex_array RID +function RenderingDevice:draw_list_bind_vertex_array(draw_list, vertex_array) end + +--- @param draw_list int +--- @param index_array RID +function RenderingDevice:draw_list_bind_index_array(draw_list, index_array) end + +--- @param draw_list int +--- @param buffer PackedByteArray +--- @param size_bytes int +function RenderingDevice:draw_list_set_push_constant(draw_list, buffer, size_bytes) end + +--- @param draw_list int +--- @param use_indices bool +--- @param instances int +--- @param procedural_vertex_count int? Default: 0 +function RenderingDevice:draw_list_draw(draw_list, use_indices, instances, procedural_vertex_count) end + +--- @param draw_list int +--- @param use_indices bool +--- @param buffer RID +--- @param offset int? Default: 0 +--- @param draw_count int? Default: 1 +--- @param stride int? Default: 0 +function RenderingDevice:draw_list_draw_indirect(draw_list, use_indices, buffer, offset, draw_count, stride) end + +--- @param draw_list int +--- @param rect Rect2? Default: Rect2(0, 0, 0, 0) +function RenderingDevice:draw_list_enable_scissor(draw_list, rect) end + +--- @param draw_list int +function RenderingDevice:draw_list_disable_scissor(draw_list) end + +--- @return int +function RenderingDevice:draw_list_switch_to_next_pass() end + +--- @param splits int +--- @return PackedInt64Array +function RenderingDevice:draw_list_switch_to_next_pass_split(splits) end + +function RenderingDevice:draw_list_end() end + +--- @return int +function RenderingDevice:compute_list_begin() end + +--- @param compute_list int +--- @param compute_pipeline RID +function RenderingDevice:compute_list_bind_compute_pipeline(compute_list, compute_pipeline) end + +--- @param compute_list int +--- @param buffer PackedByteArray +--- @param size_bytes int +function RenderingDevice:compute_list_set_push_constant(compute_list, buffer, size_bytes) end + +--- @param compute_list int +--- @param uniform_set RID +--- @param set_index int +function RenderingDevice:compute_list_bind_uniform_set(compute_list, uniform_set, set_index) end + +--- @param compute_list int +--- @param x_groups int +--- @param y_groups int +--- @param z_groups int +function RenderingDevice:compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) end + +--- @param compute_list int +--- @param buffer RID +--- @param offset int +function RenderingDevice:compute_list_dispatch_indirect(compute_list, buffer, offset) end + +--- @param compute_list int +function RenderingDevice:compute_list_add_barrier(compute_list) end + +function RenderingDevice:compute_list_end() end + +--- @param rid RID +function RenderingDevice:free_rid(rid) end + +--- @param name String +function RenderingDevice:capture_timestamp(name) end + +--- @return int +function RenderingDevice:get_captured_timestamps_count() end + +--- @return int +function RenderingDevice:get_captured_timestamps_frame() end + +--- @param index int +--- @return int +function RenderingDevice:get_captured_timestamp_gpu_time(index) end + +--- @param index int +--- @return int +function RenderingDevice:get_captured_timestamp_cpu_time(index) end + +--- @param index int +--- @return String +function RenderingDevice:get_captured_timestamp_name(index) end + +--- @param feature RenderingDevice.Features +--- @return bool +function RenderingDevice:has_feature(feature) end + +--- @param limit RenderingDevice.Limit +--- @return int +function RenderingDevice:limit_get(limit) end + +--- @return int +function RenderingDevice:get_frame_delay() end + +function RenderingDevice:submit() end + +function RenderingDevice:sync() end + +--- @param from RenderingDevice.BarrierMask? Default: 32767 +--- @param to RenderingDevice.BarrierMask? Default: 32767 +function RenderingDevice:barrier(from, to) end + +function RenderingDevice:full_barrier() end + +--- @return RenderingDevice +function RenderingDevice:create_local_device() end + +--- @param id RID +--- @param name String +function RenderingDevice:set_resource_name(id, name) end + +--- @param name String +--- @param color Color +function RenderingDevice:draw_command_begin_label(name, color) end + +--- @param name String +--- @param color Color +function RenderingDevice:draw_command_insert_label(name, color) end + +function RenderingDevice:draw_command_end_label() end + +--- @return String +function RenderingDevice:get_device_vendor_name() end + +--- @return String +function RenderingDevice:get_device_name() end + +--- @return String +function RenderingDevice:get_device_pipeline_cache_uuid() end + +--- @param type RenderingDevice.MemoryType +--- @return int +function RenderingDevice:get_memory_usage(type) end + +--- @param resource RenderingDevice.DriverResource +--- @param rid RID +--- @param index int +--- @return int +function RenderingDevice:get_driver_resource(resource, rid, index) end + +--- @return String +function RenderingDevice:get_perf_report() end + +--- @return String +function RenderingDevice:get_driver_and_device_memory_report() end + +--- @param type_index int +--- @return String +function RenderingDevice:get_tracked_object_name(type_index) end + +--- @return int +function RenderingDevice:get_tracked_object_type_count() end + +--- @return int +function RenderingDevice:get_driver_total_memory() end + +--- @return int +function RenderingDevice:get_driver_allocation_count() end + +--- @param type int +--- @return int +function RenderingDevice:get_driver_memory_by_object_type(type) end + +--- @param type int +--- @return int +function RenderingDevice:get_driver_allocs_by_object_type(type) end + +--- @return int +function RenderingDevice:get_device_total_memory() end + +--- @return int +function RenderingDevice:get_device_allocation_count() end + +--- @param type int +--- @return int +function RenderingDevice:get_device_memory_by_object_type(type) end + +--- @param type int +--- @return int +function RenderingDevice:get_device_allocs_by_object_type(type) end + + +----------------------------------------------------------- +-- RenderingServer +----------------------------------------------------------- + +--- @class RenderingServer: Object, { [string]: any } +--- @field render_loop_enabled bool +RenderingServer = {} + +RenderingServer.NO_INDEX_ARRAY = -1 +RenderingServer.ARRAY_WEIGHTS_SIZE = 4 +RenderingServer.CANVAS_ITEM_Z_MIN = -4096 +RenderingServer.CANVAS_ITEM_Z_MAX = 4096 +RenderingServer.CANVAS_LAYER_MIN = -2147483648 +RenderingServer.CANVAS_LAYER_MAX = 2147483647 +RenderingServer.MAX_GLOW_LEVELS = 7 +RenderingServer.MAX_CURSORS = 8 +RenderingServer.MAX_2D_DIRECTIONAL_LIGHTS = 8 +RenderingServer.MAX_MESH_SURFACES = 256 +RenderingServer.MATERIAL_RENDER_PRIORITY_MIN = -128 +RenderingServer.MATERIAL_RENDER_PRIORITY_MAX = 127 +RenderingServer.ARRAY_CUSTOM_COUNT = 4 +RenderingServer.PARTICLES_EMIT_FLAG_POSITION = 1 +RenderingServer.PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2 +RenderingServer.PARTICLES_EMIT_FLAG_VELOCITY = 4 +RenderingServer.PARTICLES_EMIT_FLAG_COLOR = 8 +RenderingServer.PARTICLES_EMIT_FLAG_CUSTOM = 16 + +--- @alias RenderingServer.TextureType `RenderingServer.TEXTURE_TYPE_2D` | `RenderingServer.TEXTURE_TYPE_LAYERED` | `RenderingServer.TEXTURE_TYPE_3D` +RenderingServer.TEXTURE_TYPE_2D = 0 +RenderingServer.TEXTURE_TYPE_LAYERED = 1 +RenderingServer.TEXTURE_TYPE_3D = 2 + +--- @alias RenderingServer.TextureLayeredType `RenderingServer.TEXTURE_LAYERED_2D_ARRAY` | `RenderingServer.TEXTURE_LAYERED_CUBEMAP` | `RenderingServer.TEXTURE_LAYERED_CUBEMAP_ARRAY` +RenderingServer.TEXTURE_LAYERED_2D_ARRAY = 0 +RenderingServer.TEXTURE_LAYERED_CUBEMAP = 1 +RenderingServer.TEXTURE_LAYERED_CUBEMAP_ARRAY = 2 + +--- @alias RenderingServer.CubeMapLayer `RenderingServer.CUBEMAP_LAYER_LEFT` | `RenderingServer.CUBEMAP_LAYER_RIGHT` | `RenderingServer.CUBEMAP_LAYER_BOTTOM` | `RenderingServer.CUBEMAP_LAYER_TOP` | `RenderingServer.CUBEMAP_LAYER_FRONT` | `RenderingServer.CUBEMAP_LAYER_BACK` +RenderingServer.CUBEMAP_LAYER_LEFT = 0 +RenderingServer.CUBEMAP_LAYER_RIGHT = 1 +RenderingServer.CUBEMAP_LAYER_BOTTOM = 2 +RenderingServer.CUBEMAP_LAYER_TOP = 3 +RenderingServer.CUBEMAP_LAYER_FRONT = 4 +RenderingServer.CUBEMAP_LAYER_BACK = 5 + +--- @alias RenderingServer.ShaderMode `RenderingServer.SHADER_SPATIAL` | `RenderingServer.SHADER_CANVAS_ITEM` | `RenderingServer.SHADER_PARTICLES` | `RenderingServer.SHADER_SKY` | `RenderingServer.SHADER_FOG` | `RenderingServer.SHADER_MAX` +RenderingServer.SHADER_SPATIAL = 0 +RenderingServer.SHADER_CANVAS_ITEM = 1 +RenderingServer.SHADER_PARTICLES = 2 +RenderingServer.SHADER_SKY = 3 +RenderingServer.SHADER_FOG = 4 +RenderingServer.SHADER_MAX = 5 + +--- @alias RenderingServer.ArrayType `RenderingServer.ARRAY_VERTEX` | `RenderingServer.ARRAY_NORMAL` | `RenderingServer.ARRAY_TANGENT` | `RenderingServer.ARRAY_COLOR` | `RenderingServer.ARRAY_TEX_UV` | `RenderingServer.ARRAY_TEX_UV2` | `RenderingServer.ARRAY_CUSTOM0` | `RenderingServer.ARRAY_CUSTOM1` | `RenderingServer.ARRAY_CUSTOM2` | `RenderingServer.ARRAY_CUSTOM3` | `RenderingServer.ARRAY_BONES` | `RenderingServer.ARRAY_WEIGHTS` | `RenderingServer.ARRAY_INDEX` | `RenderingServer.ARRAY_MAX` +RenderingServer.ARRAY_VERTEX = 0 +RenderingServer.ARRAY_NORMAL = 1 +RenderingServer.ARRAY_TANGENT = 2 +RenderingServer.ARRAY_COLOR = 3 +RenderingServer.ARRAY_TEX_UV = 4 +RenderingServer.ARRAY_TEX_UV2 = 5 +RenderingServer.ARRAY_CUSTOM0 = 6 +RenderingServer.ARRAY_CUSTOM1 = 7 +RenderingServer.ARRAY_CUSTOM2 = 8 +RenderingServer.ARRAY_CUSTOM3 = 9 +RenderingServer.ARRAY_BONES = 10 +RenderingServer.ARRAY_WEIGHTS = 11 +RenderingServer.ARRAY_INDEX = 12 +RenderingServer.ARRAY_MAX = 13 + +--- @alias RenderingServer.ArrayCustomFormat `RenderingServer.ARRAY_CUSTOM_RGBA8_UNORM` | `RenderingServer.ARRAY_CUSTOM_RGBA8_SNORM` | `RenderingServer.ARRAY_CUSTOM_RG_HALF` | `RenderingServer.ARRAY_CUSTOM_RGBA_HALF` | `RenderingServer.ARRAY_CUSTOM_R_FLOAT` | `RenderingServer.ARRAY_CUSTOM_RG_FLOAT` | `RenderingServer.ARRAY_CUSTOM_RGB_FLOAT` | `RenderingServer.ARRAY_CUSTOM_RGBA_FLOAT` | `RenderingServer.ARRAY_CUSTOM_MAX` +RenderingServer.ARRAY_CUSTOM_RGBA8_UNORM = 0 +RenderingServer.ARRAY_CUSTOM_RGBA8_SNORM = 1 +RenderingServer.ARRAY_CUSTOM_RG_HALF = 2 +RenderingServer.ARRAY_CUSTOM_RGBA_HALF = 3 +RenderingServer.ARRAY_CUSTOM_R_FLOAT = 4 +RenderingServer.ARRAY_CUSTOM_RG_FLOAT = 5 +RenderingServer.ARRAY_CUSTOM_RGB_FLOAT = 6 +RenderingServer.ARRAY_CUSTOM_RGBA_FLOAT = 7 +RenderingServer.ARRAY_CUSTOM_MAX = 8 + +--- @alias RenderingServer.ArrayFormat `RenderingServer.ARRAY_FORMAT_VERTEX` | `RenderingServer.ARRAY_FORMAT_NORMAL` | `RenderingServer.ARRAY_FORMAT_TANGENT` | `RenderingServer.ARRAY_FORMAT_COLOR` | `RenderingServer.ARRAY_FORMAT_TEX_UV` | `RenderingServer.ARRAY_FORMAT_TEX_UV2` | `RenderingServer.ARRAY_FORMAT_CUSTOM0` | `RenderingServer.ARRAY_FORMAT_CUSTOM1` | `RenderingServer.ARRAY_FORMAT_CUSTOM2` | `RenderingServer.ARRAY_FORMAT_CUSTOM3` | `RenderingServer.ARRAY_FORMAT_BONES` | `RenderingServer.ARRAY_FORMAT_WEIGHTS` | `RenderingServer.ARRAY_FORMAT_INDEX` | `RenderingServer.ARRAY_FORMAT_BLEND_SHAPE_MASK` | `RenderingServer.ARRAY_FORMAT_CUSTOM_BASE` | `RenderingServer.ARRAY_FORMAT_CUSTOM_BITS` | `RenderingServer.ARRAY_FORMAT_CUSTOM0_SHIFT` | `RenderingServer.ARRAY_FORMAT_CUSTOM1_SHIFT` | `RenderingServer.ARRAY_FORMAT_CUSTOM2_SHIFT` | `RenderingServer.ARRAY_FORMAT_CUSTOM3_SHIFT` | `RenderingServer.ARRAY_FORMAT_CUSTOM_MASK` | `RenderingServer.ARRAY_COMPRESS_FLAGS_BASE` | `RenderingServer.ARRAY_FLAG_USE_2D_VERTICES` | `RenderingServer.ARRAY_FLAG_USE_DYNAMIC_UPDATE` | `RenderingServer.ARRAY_FLAG_USE_8_BONE_WEIGHTS` | `RenderingServer.ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY` | `RenderingServer.ARRAY_FLAG_COMPRESS_ATTRIBUTES` | `RenderingServer.ARRAY_FLAG_FORMAT_VERSION_BASE` | `RenderingServer.ARRAY_FLAG_FORMAT_VERSION_SHIFT` | `RenderingServer.ARRAY_FLAG_FORMAT_VERSION_1` | `RenderingServer.ARRAY_FLAG_FORMAT_VERSION_2` | `RenderingServer.ARRAY_FLAG_FORMAT_CURRENT_VERSION` | `RenderingServer.ARRAY_FLAG_FORMAT_VERSION_MASK` +RenderingServer.ARRAY_FORMAT_VERTEX = 1 +RenderingServer.ARRAY_FORMAT_NORMAL = 2 +RenderingServer.ARRAY_FORMAT_TANGENT = 4 +RenderingServer.ARRAY_FORMAT_COLOR = 8 +RenderingServer.ARRAY_FORMAT_TEX_UV = 16 +RenderingServer.ARRAY_FORMAT_TEX_UV2 = 32 +RenderingServer.ARRAY_FORMAT_CUSTOM0 = 64 +RenderingServer.ARRAY_FORMAT_CUSTOM1 = 128 +RenderingServer.ARRAY_FORMAT_CUSTOM2 = 256 +RenderingServer.ARRAY_FORMAT_CUSTOM3 = 512 +RenderingServer.ARRAY_FORMAT_BONES = 1024 +RenderingServer.ARRAY_FORMAT_WEIGHTS = 2048 +RenderingServer.ARRAY_FORMAT_INDEX = 4096 +RenderingServer.ARRAY_FORMAT_BLEND_SHAPE_MASK = 7 +RenderingServer.ARRAY_FORMAT_CUSTOM_BASE = 13 +RenderingServer.ARRAY_FORMAT_CUSTOM_BITS = 3 +RenderingServer.ARRAY_FORMAT_CUSTOM0_SHIFT = 13 +RenderingServer.ARRAY_FORMAT_CUSTOM1_SHIFT = 16 +RenderingServer.ARRAY_FORMAT_CUSTOM2_SHIFT = 19 +RenderingServer.ARRAY_FORMAT_CUSTOM3_SHIFT = 22 +RenderingServer.ARRAY_FORMAT_CUSTOM_MASK = 7 +RenderingServer.ARRAY_COMPRESS_FLAGS_BASE = 25 +RenderingServer.ARRAY_FLAG_USE_2D_VERTICES = 33554432 +RenderingServer.ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864 +RenderingServer.ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728 +RenderingServer.ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456 +RenderingServer.ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912 +RenderingServer.ARRAY_FLAG_FORMAT_VERSION_BASE = 35 +RenderingServer.ARRAY_FLAG_FORMAT_VERSION_SHIFT = 35 +RenderingServer.ARRAY_FLAG_FORMAT_VERSION_1 = 0 +RenderingServer.ARRAY_FLAG_FORMAT_VERSION_2 = 34359738368 +RenderingServer.ARRAY_FLAG_FORMAT_CURRENT_VERSION = 34359738368 +RenderingServer.ARRAY_FLAG_FORMAT_VERSION_MASK = 255 + +--- @alias RenderingServer.PrimitiveType `RenderingServer.PRIMITIVE_POINTS` | `RenderingServer.PRIMITIVE_LINES` | `RenderingServer.PRIMITIVE_LINE_STRIP` | `RenderingServer.PRIMITIVE_TRIANGLES` | `RenderingServer.PRIMITIVE_TRIANGLE_STRIP` | `RenderingServer.PRIMITIVE_MAX` +RenderingServer.PRIMITIVE_POINTS = 0 +RenderingServer.PRIMITIVE_LINES = 1 +RenderingServer.PRIMITIVE_LINE_STRIP = 2 +RenderingServer.PRIMITIVE_TRIANGLES = 3 +RenderingServer.PRIMITIVE_TRIANGLE_STRIP = 4 +RenderingServer.PRIMITIVE_MAX = 5 + +--- @alias RenderingServer.BlendShapeMode `RenderingServer.BLEND_SHAPE_MODE_NORMALIZED` | `RenderingServer.BLEND_SHAPE_MODE_RELATIVE` +RenderingServer.BLEND_SHAPE_MODE_NORMALIZED = 0 +RenderingServer.BLEND_SHAPE_MODE_RELATIVE = 1 + +--- @alias RenderingServer.MultimeshTransformFormat `RenderingServer.MULTIMESH_TRANSFORM_2D` | `RenderingServer.MULTIMESH_TRANSFORM_3D` +RenderingServer.MULTIMESH_TRANSFORM_2D = 0 +RenderingServer.MULTIMESH_TRANSFORM_3D = 1 + +--- @alias RenderingServer.MultimeshPhysicsInterpolationQuality `RenderingServer.MULTIMESH_INTERP_QUALITY_FAST` | `RenderingServer.MULTIMESH_INTERP_QUALITY_HIGH` +RenderingServer.MULTIMESH_INTERP_QUALITY_FAST = 0 +RenderingServer.MULTIMESH_INTERP_QUALITY_HIGH = 1 + +--- @alias RenderingServer.LightProjectorFilter `RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST` | `RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR` | `RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS` | `RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS` | `RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC` | `RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC` +RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST = 0 +RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR = 1 +RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS = 2 +RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS = 3 +RenderingServer.LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4 +RenderingServer.LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5 + +--- @alias RenderingServer.LightType `RenderingServer.LIGHT_DIRECTIONAL` | `RenderingServer.LIGHT_OMNI` | `RenderingServer.LIGHT_SPOT` +RenderingServer.LIGHT_DIRECTIONAL = 0 +RenderingServer.LIGHT_OMNI = 1 +RenderingServer.LIGHT_SPOT = 2 + +--- @alias RenderingServer.LightParam `RenderingServer.LIGHT_PARAM_ENERGY` | `RenderingServer.LIGHT_PARAM_INDIRECT_ENERGY` | `RenderingServer.LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY` | `RenderingServer.LIGHT_PARAM_SPECULAR` | `RenderingServer.LIGHT_PARAM_RANGE` | `RenderingServer.LIGHT_PARAM_SIZE` | `RenderingServer.LIGHT_PARAM_ATTENUATION` | `RenderingServer.LIGHT_PARAM_SPOT_ANGLE` | `RenderingServer.LIGHT_PARAM_SPOT_ATTENUATION` | `RenderingServer.LIGHT_PARAM_SHADOW_MAX_DISTANCE` | `RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET` | `RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET` | `RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET` | `RenderingServer.LIGHT_PARAM_SHADOW_FADE_START` | `RenderingServer.LIGHT_PARAM_SHADOW_NORMAL_BIAS` | `RenderingServer.LIGHT_PARAM_SHADOW_BIAS` | `RenderingServer.LIGHT_PARAM_SHADOW_PANCAKE_SIZE` | `RenderingServer.LIGHT_PARAM_SHADOW_OPACITY` | `RenderingServer.LIGHT_PARAM_SHADOW_BLUR` | `RenderingServer.LIGHT_PARAM_TRANSMITTANCE_BIAS` | `RenderingServer.LIGHT_PARAM_INTENSITY` | `RenderingServer.LIGHT_PARAM_MAX` +RenderingServer.LIGHT_PARAM_ENERGY = 0 +RenderingServer.LIGHT_PARAM_INDIRECT_ENERGY = 1 +RenderingServer.LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY = 2 +RenderingServer.LIGHT_PARAM_SPECULAR = 3 +RenderingServer.LIGHT_PARAM_RANGE = 4 +RenderingServer.LIGHT_PARAM_SIZE = 5 +RenderingServer.LIGHT_PARAM_ATTENUATION = 6 +RenderingServer.LIGHT_PARAM_SPOT_ANGLE = 7 +RenderingServer.LIGHT_PARAM_SPOT_ATTENUATION = 8 +RenderingServer.LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9 +RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10 +RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11 +RenderingServer.LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12 +RenderingServer.LIGHT_PARAM_SHADOW_FADE_START = 13 +RenderingServer.LIGHT_PARAM_SHADOW_NORMAL_BIAS = 14 +RenderingServer.LIGHT_PARAM_SHADOW_BIAS = 15 +RenderingServer.LIGHT_PARAM_SHADOW_PANCAKE_SIZE = 16 +RenderingServer.LIGHT_PARAM_SHADOW_OPACITY = 17 +RenderingServer.LIGHT_PARAM_SHADOW_BLUR = 18 +RenderingServer.LIGHT_PARAM_TRANSMITTANCE_BIAS = 19 +RenderingServer.LIGHT_PARAM_INTENSITY = 20 +RenderingServer.LIGHT_PARAM_MAX = 21 + +--- @alias RenderingServer.LightBakeMode `RenderingServer.LIGHT_BAKE_DISABLED` | `RenderingServer.LIGHT_BAKE_STATIC` | `RenderingServer.LIGHT_BAKE_DYNAMIC` +RenderingServer.LIGHT_BAKE_DISABLED = 0 +RenderingServer.LIGHT_BAKE_STATIC = 1 +RenderingServer.LIGHT_BAKE_DYNAMIC = 2 + +--- @alias RenderingServer.LightOmniShadowMode `RenderingServer.LIGHT_OMNI_SHADOW_DUAL_PARABOLOID` | `RenderingServer.LIGHT_OMNI_SHADOW_CUBE` +RenderingServer.LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0 +RenderingServer.LIGHT_OMNI_SHADOW_CUBE = 1 + +--- @alias RenderingServer.LightDirectionalShadowMode `RenderingServer.LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL` | `RenderingServer.LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS` | `RenderingServer.LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS` +RenderingServer.LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0 +RenderingServer.LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1 +RenderingServer.LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2 + +--- @alias RenderingServer.LightDirectionalSkyMode `RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY` | `RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY` | `RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY` +RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY = 0 +RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY = 1 +RenderingServer.LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY = 2 + +--- @alias RenderingServer.ShadowQuality `RenderingServer.SHADOW_QUALITY_HARD` | `RenderingServer.SHADOW_QUALITY_SOFT_VERY_LOW` | `RenderingServer.SHADOW_QUALITY_SOFT_LOW` | `RenderingServer.SHADOW_QUALITY_SOFT_MEDIUM` | `RenderingServer.SHADOW_QUALITY_SOFT_HIGH` | `RenderingServer.SHADOW_QUALITY_SOFT_ULTRA` | `RenderingServer.SHADOW_QUALITY_MAX` +RenderingServer.SHADOW_QUALITY_HARD = 0 +RenderingServer.SHADOW_QUALITY_SOFT_VERY_LOW = 1 +RenderingServer.SHADOW_QUALITY_SOFT_LOW = 2 +RenderingServer.SHADOW_QUALITY_SOFT_MEDIUM = 3 +RenderingServer.SHADOW_QUALITY_SOFT_HIGH = 4 +RenderingServer.SHADOW_QUALITY_SOFT_ULTRA = 5 +RenderingServer.SHADOW_QUALITY_MAX = 6 + +--- @alias RenderingServer.ReflectionProbeUpdateMode `RenderingServer.REFLECTION_PROBE_UPDATE_ONCE` | `RenderingServer.REFLECTION_PROBE_UPDATE_ALWAYS` +RenderingServer.REFLECTION_PROBE_UPDATE_ONCE = 0 +RenderingServer.REFLECTION_PROBE_UPDATE_ALWAYS = 1 + +--- @alias RenderingServer.ReflectionProbeAmbientMode `RenderingServer.REFLECTION_PROBE_AMBIENT_DISABLED` | `RenderingServer.REFLECTION_PROBE_AMBIENT_ENVIRONMENT` | `RenderingServer.REFLECTION_PROBE_AMBIENT_COLOR` +RenderingServer.REFLECTION_PROBE_AMBIENT_DISABLED = 0 +RenderingServer.REFLECTION_PROBE_AMBIENT_ENVIRONMENT = 1 +RenderingServer.REFLECTION_PROBE_AMBIENT_COLOR = 2 + +--- @alias RenderingServer.DecalTexture `RenderingServer.DECAL_TEXTURE_ALBEDO` | `RenderingServer.DECAL_TEXTURE_NORMAL` | `RenderingServer.DECAL_TEXTURE_ORM` | `RenderingServer.DECAL_TEXTURE_EMISSION` | `RenderingServer.DECAL_TEXTURE_MAX` +RenderingServer.DECAL_TEXTURE_ALBEDO = 0 +RenderingServer.DECAL_TEXTURE_NORMAL = 1 +RenderingServer.DECAL_TEXTURE_ORM = 2 +RenderingServer.DECAL_TEXTURE_EMISSION = 3 +RenderingServer.DECAL_TEXTURE_MAX = 4 + +--- @alias RenderingServer.DecalFilter `RenderingServer.DECAL_FILTER_NEAREST` | `RenderingServer.DECAL_FILTER_LINEAR` | `RenderingServer.DECAL_FILTER_NEAREST_MIPMAPS` | `RenderingServer.DECAL_FILTER_LINEAR_MIPMAPS` | `RenderingServer.DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC` | `RenderingServer.DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC` +RenderingServer.DECAL_FILTER_NEAREST = 0 +RenderingServer.DECAL_FILTER_LINEAR = 1 +RenderingServer.DECAL_FILTER_NEAREST_MIPMAPS = 2 +RenderingServer.DECAL_FILTER_LINEAR_MIPMAPS = 3 +RenderingServer.DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4 +RenderingServer.DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5 + +--- @alias RenderingServer.VoxelGIQuality `RenderingServer.VOXEL_GI_QUALITY_LOW` | `RenderingServer.VOXEL_GI_QUALITY_HIGH` +RenderingServer.VOXEL_GI_QUALITY_LOW = 0 +RenderingServer.VOXEL_GI_QUALITY_HIGH = 1 + +--- @alias RenderingServer.ParticlesMode `RenderingServer.PARTICLES_MODE_2D` | `RenderingServer.PARTICLES_MODE_3D` +RenderingServer.PARTICLES_MODE_2D = 0 +RenderingServer.PARTICLES_MODE_3D = 1 + +--- @alias RenderingServer.ParticlesTransformAlign `RenderingServer.PARTICLES_TRANSFORM_ALIGN_DISABLED` | `RenderingServer.PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD` | `RenderingServer.PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY` | `RenderingServer.PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY` +RenderingServer.PARTICLES_TRANSFORM_ALIGN_DISABLED = 0 +RenderingServer.PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD = 1 +RenderingServer.PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY = 2 +RenderingServer.PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3 + +--- @alias RenderingServer.ParticlesDrawOrder `RenderingServer.PARTICLES_DRAW_ORDER_INDEX` | `RenderingServer.PARTICLES_DRAW_ORDER_LIFETIME` | `RenderingServer.PARTICLES_DRAW_ORDER_REVERSE_LIFETIME` | `RenderingServer.PARTICLES_DRAW_ORDER_VIEW_DEPTH` +RenderingServer.PARTICLES_DRAW_ORDER_INDEX = 0 +RenderingServer.PARTICLES_DRAW_ORDER_LIFETIME = 1 +RenderingServer.PARTICLES_DRAW_ORDER_REVERSE_LIFETIME = 2 +RenderingServer.PARTICLES_DRAW_ORDER_VIEW_DEPTH = 3 + +--- @alias RenderingServer.ParticlesCollisionType `RenderingServer.PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT` | `RenderingServer.PARTICLES_COLLISION_TYPE_BOX_ATTRACT` | `RenderingServer.PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT` | `RenderingServer.PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE` | `RenderingServer.PARTICLES_COLLISION_TYPE_BOX_COLLIDE` | `RenderingServer.PARTICLES_COLLISION_TYPE_SDF_COLLIDE` | `RenderingServer.PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE` +RenderingServer.PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT = 0 +RenderingServer.PARTICLES_COLLISION_TYPE_BOX_ATTRACT = 1 +RenderingServer.PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT = 2 +RenderingServer.PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE = 3 +RenderingServer.PARTICLES_COLLISION_TYPE_BOX_COLLIDE = 4 +RenderingServer.PARTICLES_COLLISION_TYPE_SDF_COLLIDE = 5 +RenderingServer.PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE = 6 + +--- @alias RenderingServer.ParticlesCollisionHeightfieldResolution `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192` | `RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX` +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256 = 0 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512 = 1 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024 = 2 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048 = 3 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096 = 4 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192 = 5 +RenderingServer.PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX = 6 + +--- @alias RenderingServer.FogVolumeShape `RenderingServer.FOG_VOLUME_SHAPE_ELLIPSOID` | `RenderingServer.FOG_VOLUME_SHAPE_CONE` | `RenderingServer.FOG_VOLUME_SHAPE_CYLINDER` | `RenderingServer.FOG_VOLUME_SHAPE_BOX` | `RenderingServer.FOG_VOLUME_SHAPE_WORLD` | `RenderingServer.FOG_VOLUME_SHAPE_MAX` +RenderingServer.FOG_VOLUME_SHAPE_ELLIPSOID = 0 +RenderingServer.FOG_VOLUME_SHAPE_CONE = 1 +RenderingServer.FOG_VOLUME_SHAPE_CYLINDER = 2 +RenderingServer.FOG_VOLUME_SHAPE_BOX = 3 +RenderingServer.FOG_VOLUME_SHAPE_WORLD = 4 +RenderingServer.FOG_VOLUME_SHAPE_MAX = 5 + +--- @alias RenderingServer.ViewportScaling3DMode `RenderingServer.VIEWPORT_SCALING_3D_MODE_BILINEAR` | `RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR` | `RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR2` | `RenderingServer.VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL` | `RenderingServer.VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL` | `RenderingServer.VIEWPORT_SCALING_3D_MODE_MAX` +RenderingServer.VIEWPORT_SCALING_3D_MODE_BILINEAR = 0 +RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR = 1 +RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR2 = 2 +RenderingServer.VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL = 3 +RenderingServer.VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL = 4 +RenderingServer.VIEWPORT_SCALING_3D_MODE_MAX = 5 + +--- @alias RenderingServer.ViewportUpdateMode `RenderingServer.VIEWPORT_UPDATE_DISABLED` | `RenderingServer.VIEWPORT_UPDATE_ONCE` | `RenderingServer.VIEWPORT_UPDATE_WHEN_VISIBLE` | `RenderingServer.VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE` | `RenderingServer.VIEWPORT_UPDATE_ALWAYS` +RenderingServer.VIEWPORT_UPDATE_DISABLED = 0 +RenderingServer.VIEWPORT_UPDATE_ONCE = 1 +RenderingServer.VIEWPORT_UPDATE_WHEN_VISIBLE = 2 +RenderingServer.VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE = 3 +RenderingServer.VIEWPORT_UPDATE_ALWAYS = 4 + +--- @alias RenderingServer.ViewportClearMode `RenderingServer.VIEWPORT_CLEAR_ALWAYS` | `RenderingServer.VIEWPORT_CLEAR_NEVER` | `RenderingServer.VIEWPORT_CLEAR_ONLY_NEXT_FRAME` +RenderingServer.VIEWPORT_CLEAR_ALWAYS = 0 +RenderingServer.VIEWPORT_CLEAR_NEVER = 1 +RenderingServer.VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2 + +--- @alias RenderingServer.ViewportEnvironmentMode `RenderingServer.VIEWPORT_ENVIRONMENT_DISABLED` | `RenderingServer.VIEWPORT_ENVIRONMENT_ENABLED` | `RenderingServer.VIEWPORT_ENVIRONMENT_INHERIT` | `RenderingServer.VIEWPORT_ENVIRONMENT_MAX` +RenderingServer.VIEWPORT_ENVIRONMENT_DISABLED = 0 +RenderingServer.VIEWPORT_ENVIRONMENT_ENABLED = 1 +RenderingServer.VIEWPORT_ENVIRONMENT_INHERIT = 2 +RenderingServer.VIEWPORT_ENVIRONMENT_MAX = 3 + +--- @alias RenderingServer.ViewportSDFOversize `RenderingServer.VIEWPORT_SDF_OVERSIZE_100_PERCENT` | `RenderingServer.VIEWPORT_SDF_OVERSIZE_120_PERCENT` | `RenderingServer.VIEWPORT_SDF_OVERSIZE_150_PERCENT` | `RenderingServer.VIEWPORT_SDF_OVERSIZE_200_PERCENT` | `RenderingServer.VIEWPORT_SDF_OVERSIZE_MAX` +RenderingServer.VIEWPORT_SDF_OVERSIZE_100_PERCENT = 0 +RenderingServer.VIEWPORT_SDF_OVERSIZE_120_PERCENT = 1 +RenderingServer.VIEWPORT_SDF_OVERSIZE_150_PERCENT = 2 +RenderingServer.VIEWPORT_SDF_OVERSIZE_200_PERCENT = 3 +RenderingServer.VIEWPORT_SDF_OVERSIZE_MAX = 4 + +--- @alias RenderingServer.ViewportSDFScale `RenderingServer.VIEWPORT_SDF_SCALE_100_PERCENT` | `RenderingServer.VIEWPORT_SDF_SCALE_50_PERCENT` | `RenderingServer.VIEWPORT_SDF_SCALE_25_PERCENT` | `RenderingServer.VIEWPORT_SDF_SCALE_MAX` +RenderingServer.VIEWPORT_SDF_SCALE_100_PERCENT = 0 +RenderingServer.VIEWPORT_SDF_SCALE_50_PERCENT = 1 +RenderingServer.VIEWPORT_SDF_SCALE_25_PERCENT = 2 +RenderingServer.VIEWPORT_SDF_SCALE_MAX = 3 + +--- @alias RenderingServer.ViewportMSAA `RenderingServer.VIEWPORT_MSAA_DISABLED` | `RenderingServer.VIEWPORT_MSAA_2X` | `RenderingServer.VIEWPORT_MSAA_4X` | `RenderingServer.VIEWPORT_MSAA_8X` | `RenderingServer.VIEWPORT_MSAA_MAX` +RenderingServer.VIEWPORT_MSAA_DISABLED = 0 +RenderingServer.VIEWPORT_MSAA_2X = 1 +RenderingServer.VIEWPORT_MSAA_4X = 2 +RenderingServer.VIEWPORT_MSAA_8X = 3 +RenderingServer.VIEWPORT_MSAA_MAX = 4 + +--- @alias RenderingServer.ViewportAnisotropicFiltering `RenderingServer.VIEWPORT_ANISOTROPY_DISABLED` | `RenderingServer.VIEWPORT_ANISOTROPY_2X` | `RenderingServer.VIEWPORT_ANISOTROPY_4X` | `RenderingServer.VIEWPORT_ANISOTROPY_8X` | `RenderingServer.VIEWPORT_ANISOTROPY_16X` | `RenderingServer.VIEWPORT_ANISOTROPY_MAX` +RenderingServer.VIEWPORT_ANISOTROPY_DISABLED = 0 +RenderingServer.VIEWPORT_ANISOTROPY_2X = 1 +RenderingServer.VIEWPORT_ANISOTROPY_4X = 2 +RenderingServer.VIEWPORT_ANISOTROPY_8X = 3 +RenderingServer.VIEWPORT_ANISOTROPY_16X = 4 +RenderingServer.VIEWPORT_ANISOTROPY_MAX = 5 + +--- @alias RenderingServer.ViewportScreenSpaceAA `RenderingServer.VIEWPORT_SCREEN_SPACE_AA_DISABLED` | `RenderingServer.VIEWPORT_SCREEN_SPACE_AA_FXAA` | `RenderingServer.VIEWPORT_SCREEN_SPACE_AA_SMAA` | `RenderingServer.VIEWPORT_SCREEN_SPACE_AA_MAX` +RenderingServer.VIEWPORT_SCREEN_SPACE_AA_DISABLED = 0 +RenderingServer.VIEWPORT_SCREEN_SPACE_AA_FXAA = 1 +RenderingServer.VIEWPORT_SCREEN_SPACE_AA_SMAA = 2 +RenderingServer.VIEWPORT_SCREEN_SPACE_AA_MAX = 3 + +--- @alias RenderingServer.ViewportOcclusionCullingBuildQuality `RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW` | `RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM` | `RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH` +RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0 +RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1 +RenderingServer.VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2 + +--- @alias RenderingServer.ViewportRenderInfo `RenderingServer.VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME` | `RenderingServer.VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME` | `RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME` | `RenderingServer.VIEWPORT_RENDER_INFO_MAX` +RenderingServer.VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0 +RenderingServer.VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME = 1 +RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 2 +RenderingServer.VIEWPORT_RENDER_INFO_MAX = 3 + +--- @alias RenderingServer.ViewportRenderInfoType `RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE` | `RenderingServer.VIEWPORT_RENDER_INFO_TYPE_SHADOW` | `RenderingServer.VIEWPORT_RENDER_INFO_TYPE_CANVAS` | `RenderingServer.VIEWPORT_RENDER_INFO_TYPE_MAX` +RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE = 0 +RenderingServer.VIEWPORT_RENDER_INFO_TYPE_SHADOW = 1 +RenderingServer.VIEWPORT_RENDER_INFO_TYPE_CANVAS = 2 +RenderingServer.VIEWPORT_RENDER_INFO_TYPE_MAX = 3 + +--- @alias RenderingServer.ViewportDebugDraw `RenderingServer.VIEWPORT_DEBUG_DRAW_DISABLED` | `RenderingServer.VIEWPORT_DEBUG_DRAW_UNSHADED` | `RenderingServer.VIEWPORT_DEBUG_DRAW_LIGHTING` | `RenderingServer.VIEWPORT_DEBUG_DRAW_OVERDRAW` | `RenderingServer.VIEWPORT_DEBUG_DRAW_WIREFRAME` | `RenderingServer.VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER` | `RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO` | `RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING` | `RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SSAO` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SSIL` | `RenderingServer.VIEWPORT_DEBUG_DRAW_PSSM_SPLITS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_DECAL_ATLAS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SDFGI` | `RenderingServer.VIEWPORT_DEBUG_DRAW_SDFGI_PROBES` | `RenderingServer.VIEWPORT_DEBUG_DRAW_GI_BUFFER` | `RenderingServer.VIEWPORT_DEBUG_DRAW_DISABLE_LOD` | `RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES` | `RenderingServer.VIEWPORT_DEBUG_DRAW_OCCLUDERS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_MOTION_VECTORS` | `RenderingServer.VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER` +RenderingServer.VIEWPORT_DEBUG_DRAW_DISABLED = 0 +RenderingServer.VIEWPORT_DEBUG_DRAW_UNSHADED = 1 +RenderingServer.VIEWPORT_DEBUG_DRAW_LIGHTING = 2 +RenderingServer.VIEWPORT_DEBUG_DRAW_OVERDRAW = 3 +RenderingServer.VIEWPORT_DEBUG_DRAW_WIREFRAME = 4 +RenderingServer.VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER = 5 +RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO = 6 +RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING = 7 +RenderingServer.VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION = 8 +RenderingServer.VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS = 9 +RenderingServer.VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10 +RenderingServer.VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE = 11 +RenderingServer.VIEWPORT_DEBUG_DRAW_SSAO = 12 +RenderingServer.VIEWPORT_DEBUG_DRAW_SSIL = 13 +RenderingServer.VIEWPORT_DEBUG_DRAW_PSSM_SPLITS = 14 +RenderingServer.VIEWPORT_DEBUG_DRAW_DECAL_ATLAS = 15 +RenderingServer.VIEWPORT_DEBUG_DRAW_SDFGI = 16 +RenderingServer.VIEWPORT_DEBUG_DRAW_SDFGI_PROBES = 17 +RenderingServer.VIEWPORT_DEBUG_DRAW_GI_BUFFER = 18 +RenderingServer.VIEWPORT_DEBUG_DRAW_DISABLE_LOD = 19 +RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20 +RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21 +RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS = 22 +RenderingServer.VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23 +RenderingServer.VIEWPORT_DEBUG_DRAW_OCCLUDERS = 24 +RenderingServer.VIEWPORT_DEBUG_DRAW_MOTION_VECTORS = 25 +RenderingServer.VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER = 26 + +--- @alias RenderingServer.ViewportVRSMode `RenderingServer.VIEWPORT_VRS_DISABLED` | `RenderingServer.VIEWPORT_VRS_TEXTURE` | `RenderingServer.VIEWPORT_VRS_XR` | `RenderingServer.VIEWPORT_VRS_MAX` +RenderingServer.VIEWPORT_VRS_DISABLED = 0 +RenderingServer.VIEWPORT_VRS_TEXTURE = 1 +RenderingServer.VIEWPORT_VRS_XR = 2 +RenderingServer.VIEWPORT_VRS_MAX = 3 + +--- @alias RenderingServer.ViewportVRSUpdateMode `RenderingServer.VIEWPORT_VRS_UPDATE_DISABLED` | `RenderingServer.VIEWPORT_VRS_UPDATE_ONCE` | `RenderingServer.VIEWPORT_VRS_UPDATE_ALWAYS` | `RenderingServer.VIEWPORT_VRS_UPDATE_MAX` +RenderingServer.VIEWPORT_VRS_UPDATE_DISABLED = 0 +RenderingServer.VIEWPORT_VRS_UPDATE_ONCE = 1 +RenderingServer.VIEWPORT_VRS_UPDATE_ALWAYS = 2 +RenderingServer.VIEWPORT_VRS_UPDATE_MAX = 3 + +--- @alias RenderingServer.SkyMode `RenderingServer.SKY_MODE_AUTOMATIC` | `RenderingServer.SKY_MODE_QUALITY` | `RenderingServer.SKY_MODE_INCREMENTAL` | `RenderingServer.SKY_MODE_REALTIME` +RenderingServer.SKY_MODE_AUTOMATIC = 0 +RenderingServer.SKY_MODE_QUALITY = 1 +RenderingServer.SKY_MODE_INCREMENTAL = 2 +RenderingServer.SKY_MODE_REALTIME = 3 + +--- @alias RenderingServer.CompositorEffectFlags `RenderingServer.COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR` | `RenderingServer.COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH` | `RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS` | `RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS` | `RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR` +RenderingServer.COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR = 1 +RenderingServer.COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH = 2 +RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS = 4 +RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS = 8 +RenderingServer.COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR = 16 + +--- @alias RenderingServer.CompositorEffectCallbackType `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE` | `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE` | `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY` | `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT` | `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT` | `RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY` +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE = 0 +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE = 1 +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY = 2 +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT = 3 +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT = 4 +RenderingServer.COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY = -1 + +--- @alias RenderingServer.EnvironmentBG `RenderingServer.ENV_BG_CLEAR_COLOR` | `RenderingServer.ENV_BG_COLOR` | `RenderingServer.ENV_BG_SKY` | `RenderingServer.ENV_BG_CANVAS` | `RenderingServer.ENV_BG_KEEP` | `RenderingServer.ENV_BG_CAMERA_FEED` | `RenderingServer.ENV_BG_MAX` +RenderingServer.ENV_BG_CLEAR_COLOR = 0 +RenderingServer.ENV_BG_COLOR = 1 +RenderingServer.ENV_BG_SKY = 2 +RenderingServer.ENV_BG_CANVAS = 3 +RenderingServer.ENV_BG_KEEP = 4 +RenderingServer.ENV_BG_CAMERA_FEED = 5 +RenderingServer.ENV_BG_MAX = 6 + +--- @alias RenderingServer.EnvironmentAmbientSource `RenderingServer.ENV_AMBIENT_SOURCE_BG` | `RenderingServer.ENV_AMBIENT_SOURCE_DISABLED` | `RenderingServer.ENV_AMBIENT_SOURCE_COLOR` | `RenderingServer.ENV_AMBIENT_SOURCE_SKY` +RenderingServer.ENV_AMBIENT_SOURCE_BG = 0 +RenderingServer.ENV_AMBIENT_SOURCE_DISABLED = 1 +RenderingServer.ENV_AMBIENT_SOURCE_COLOR = 2 +RenderingServer.ENV_AMBIENT_SOURCE_SKY = 3 + +--- @alias RenderingServer.EnvironmentReflectionSource `RenderingServer.ENV_REFLECTION_SOURCE_BG` | `RenderingServer.ENV_REFLECTION_SOURCE_DISABLED` | `RenderingServer.ENV_REFLECTION_SOURCE_SKY` +RenderingServer.ENV_REFLECTION_SOURCE_BG = 0 +RenderingServer.ENV_REFLECTION_SOURCE_DISABLED = 1 +RenderingServer.ENV_REFLECTION_SOURCE_SKY = 2 + +--- @alias RenderingServer.EnvironmentGlowBlendMode `RenderingServer.ENV_GLOW_BLEND_MODE_ADDITIVE` | `RenderingServer.ENV_GLOW_BLEND_MODE_SCREEN` | `RenderingServer.ENV_GLOW_BLEND_MODE_SOFTLIGHT` | `RenderingServer.ENV_GLOW_BLEND_MODE_REPLACE` | `RenderingServer.ENV_GLOW_BLEND_MODE_MIX` +RenderingServer.ENV_GLOW_BLEND_MODE_ADDITIVE = 0 +RenderingServer.ENV_GLOW_BLEND_MODE_SCREEN = 1 +RenderingServer.ENV_GLOW_BLEND_MODE_SOFTLIGHT = 2 +RenderingServer.ENV_GLOW_BLEND_MODE_REPLACE = 3 +RenderingServer.ENV_GLOW_BLEND_MODE_MIX = 4 + +--- @alias RenderingServer.EnvironmentFogMode `RenderingServer.ENV_FOG_MODE_EXPONENTIAL` | `RenderingServer.ENV_FOG_MODE_DEPTH` +RenderingServer.ENV_FOG_MODE_EXPONENTIAL = 0 +RenderingServer.ENV_FOG_MODE_DEPTH = 1 + +--- @alias RenderingServer.EnvironmentToneMapper `RenderingServer.ENV_TONE_MAPPER_LINEAR` | `RenderingServer.ENV_TONE_MAPPER_REINHARD` | `RenderingServer.ENV_TONE_MAPPER_FILMIC` | `RenderingServer.ENV_TONE_MAPPER_ACES` | `RenderingServer.ENV_TONE_MAPPER_AGX` +RenderingServer.ENV_TONE_MAPPER_LINEAR = 0 +RenderingServer.ENV_TONE_MAPPER_REINHARD = 1 +RenderingServer.ENV_TONE_MAPPER_FILMIC = 2 +RenderingServer.ENV_TONE_MAPPER_ACES = 3 +RenderingServer.ENV_TONE_MAPPER_AGX = 4 + +--- @alias RenderingServer.EnvironmentSSRRoughnessQuality `RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_DISABLED` | `RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_LOW` | `RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_MEDIUM` | `RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_HIGH` +RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_DISABLED = 0 +RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_LOW = 1 +RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_MEDIUM = 2 +RenderingServer.ENV_SSR_ROUGHNESS_QUALITY_HIGH = 3 + +--- @alias RenderingServer.EnvironmentSSAOQuality `RenderingServer.ENV_SSAO_QUALITY_VERY_LOW` | `RenderingServer.ENV_SSAO_QUALITY_LOW` | `RenderingServer.ENV_SSAO_QUALITY_MEDIUM` | `RenderingServer.ENV_SSAO_QUALITY_HIGH` | `RenderingServer.ENV_SSAO_QUALITY_ULTRA` +RenderingServer.ENV_SSAO_QUALITY_VERY_LOW = 0 +RenderingServer.ENV_SSAO_QUALITY_LOW = 1 +RenderingServer.ENV_SSAO_QUALITY_MEDIUM = 2 +RenderingServer.ENV_SSAO_QUALITY_HIGH = 3 +RenderingServer.ENV_SSAO_QUALITY_ULTRA = 4 + +--- @alias RenderingServer.EnvironmentSSILQuality `RenderingServer.ENV_SSIL_QUALITY_VERY_LOW` | `RenderingServer.ENV_SSIL_QUALITY_LOW` | `RenderingServer.ENV_SSIL_QUALITY_MEDIUM` | `RenderingServer.ENV_SSIL_QUALITY_HIGH` | `RenderingServer.ENV_SSIL_QUALITY_ULTRA` +RenderingServer.ENV_SSIL_QUALITY_VERY_LOW = 0 +RenderingServer.ENV_SSIL_QUALITY_LOW = 1 +RenderingServer.ENV_SSIL_QUALITY_MEDIUM = 2 +RenderingServer.ENV_SSIL_QUALITY_HIGH = 3 +RenderingServer.ENV_SSIL_QUALITY_ULTRA = 4 + +--- @alias RenderingServer.EnvironmentSDFGIYScale `RenderingServer.ENV_SDFGI_Y_SCALE_50_PERCENT` | `RenderingServer.ENV_SDFGI_Y_SCALE_75_PERCENT` | `RenderingServer.ENV_SDFGI_Y_SCALE_100_PERCENT` +RenderingServer.ENV_SDFGI_Y_SCALE_50_PERCENT = 0 +RenderingServer.ENV_SDFGI_Y_SCALE_75_PERCENT = 1 +RenderingServer.ENV_SDFGI_Y_SCALE_100_PERCENT = 2 + +--- @alias RenderingServer.EnvironmentSDFGIRayCount `RenderingServer.ENV_SDFGI_RAY_COUNT_4` | `RenderingServer.ENV_SDFGI_RAY_COUNT_8` | `RenderingServer.ENV_SDFGI_RAY_COUNT_16` | `RenderingServer.ENV_SDFGI_RAY_COUNT_32` | `RenderingServer.ENV_SDFGI_RAY_COUNT_64` | `RenderingServer.ENV_SDFGI_RAY_COUNT_96` | `RenderingServer.ENV_SDFGI_RAY_COUNT_128` | `RenderingServer.ENV_SDFGI_RAY_COUNT_MAX` +RenderingServer.ENV_SDFGI_RAY_COUNT_4 = 0 +RenderingServer.ENV_SDFGI_RAY_COUNT_8 = 1 +RenderingServer.ENV_SDFGI_RAY_COUNT_16 = 2 +RenderingServer.ENV_SDFGI_RAY_COUNT_32 = 3 +RenderingServer.ENV_SDFGI_RAY_COUNT_64 = 4 +RenderingServer.ENV_SDFGI_RAY_COUNT_96 = 5 +RenderingServer.ENV_SDFGI_RAY_COUNT_128 = 6 +RenderingServer.ENV_SDFGI_RAY_COUNT_MAX = 7 + +--- @alias RenderingServer.EnvironmentSDFGIFramesToConverge `RenderingServer.ENV_SDFGI_CONVERGE_IN_5_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_IN_10_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_IN_15_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_IN_20_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_IN_25_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_IN_30_FRAMES` | `RenderingServer.ENV_SDFGI_CONVERGE_MAX` +RenderingServer.ENV_SDFGI_CONVERGE_IN_5_FRAMES = 0 +RenderingServer.ENV_SDFGI_CONVERGE_IN_10_FRAMES = 1 +RenderingServer.ENV_SDFGI_CONVERGE_IN_15_FRAMES = 2 +RenderingServer.ENV_SDFGI_CONVERGE_IN_20_FRAMES = 3 +RenderingServer.ENV_SDFGI_CONVERGE_IN_25_FRAMES = 4 +RenderingServer.ENV_SDFGI_CONVERGE_IN_30_FRAMES = 5 +RenderingServer.ENV_SDFGI_CONVERGE_MAX = 6 + +--- @alias RenderingServer.EnvironmentSDFGIFramesToUpdateLight `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME` | `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES` | `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES` | `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES` | `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES` | `RenderingServer.ENV_SDFGI_UPDATE_LIGHT_MAX` +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME = 0 +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES = 1 +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES = 2 +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES = 3 +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES = 4 +RenderingServer.ENV_SDFGI_UPDATE_LIGHT_MAX = 5 + +--- @alias RenderingServer.SubSurfaceScatteringQuality `RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_DISABLED` | `RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_LOW` | `RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_MEDIUM` | `RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_HIGH` +RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_DISABLED = 0 +RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_LOW = 1 +RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_MEDIUM = 2 +RenderingServer.SUB_SURFACE_SCATTERING_QUALITY_HIGH = 3 + +--- @alias RenderingServer.DOFBokehShape `RenderingServer.DOF_BOKEH_BOX` | `RenderingServer.DOF_BOKEH_HEXAGON` | `RenderingServer.DOF_BOKEH_CIRCLE` +RenderingServer.DOF_BOKEH_BOX = 0 +RenderingServer.DOF_BOKEH_HEXAGON = 1 +RenderingServer.DOF_BOKEH_CIRCLE = 2 + +--- @alias RenderingServer.DOFBlurQuality `RenderingServer.DOF_BLUR_QUALITY_VERY_LOW` | `RenderingServer.DOF_BLUR_QUALITY_LOW` | `RenderingServer.DOF_BLUR_QUALITY_MEDIUM` | `RenderingServer.DOF_BLUR_QUALITY_HIGH` +RenderingServer.DOF_BLUR_QUALITY_VERY_LOW = 0 +RenderingServer.DOF_BLUR_QUALITY_LOW = 1 +RenderingServer.DOF_BLUR_QUALITY_MEDIUM = 2 +RenderingServer.DOF_BLUR_QUALITY_HIGH = 3 + +--- @alias RenderingServer.InstanceType `RenderingServer.INSTANCE_NONE` | `RenderingServer.INSTANCE_MESH` | `RenderingServer.INSTANCE_MULTIMESH` | `RenderingServer.INSTANCE_PARTICLES` | `RenderingServer.INSTANCE_PARTICLES_COLLISION` | `RenderingServer.INSTANCE_LIGHT` | `RenderingServer.INSTANCE_REFLECTION_PROBE` | `RenderingServer.INSTANCE_DECAL` | `RenderingServer.INSTANCE_VOXEL_GI` | `RenderingServer.INSTANCE_LIGHTMAP` | `RenderingServer.INSTANCE_OCCLUDER` | `RenderingServer.INSTANCE_VISIBLITY_NOTIFIER` | `RenderingServer.INSTANCE_FOG_VOLUME` | `RenderingServer.INSTANCE_MAX` | `RenderingServer.INSTANCE_GEOMETRY_MASK` +RenderingServer.INSTANCE_NONE = 0 +RenderingServer.INSTANCE_MESH = 1 +RenderingServer.INSTANCE_MULTIMESH = 2 +RenderingServer.INSTANCE_PARTICLES = 3 +RenderingServer.INSTANCE_PARTICLES_COLLISION = 4 +RenderingServer.INSTANCE_LIGHT = 5 +RenderingServer.INSTANCE_REFLECTION_PROBE = 6 +RenderingServer.INSTANCE_DECAL = 7 +RenderingServer.INSTANCE_VOXEL_GI = 8 +RenderingServer.INSTANCE_LIGHTMAP = 9 +RenderingServer.INSTANCE_OCCLUDER = 10 +RenderingServer.INSTANCE_VISIBLITY_NOTIFIER = 11 +RenderingServer.INSTANCE_FOG_VOLUME = 12 +RenderingServer.INSTANCE_MAX = 13 +RenderingServer.INSTANCE_GEOMETRY_MASK = 14 + +--- @alias RenderingServer.InstanceFlags `RenderingServer.INSTANCE_FLAG_USE_BAKED_LIGHT` | `RenderingServer.INSTANCE_FLAG_USE_DYNAMIC_GI` | `RenderingServer.INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE` | `RenderingServer.INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING` | `RenderingServer.INSTANCE_FLAG_MAX` +RenderingServer.INSTANCE_FLAG_USE_BAKED_LIGHT = 0 +RenderingServer.INSTANCE_FLAG_USE_DYNAMIC_GI = 1 +RenderingServer.INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 2 +RenderingServer.INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING = 3 +RenderingServer.INSTANCE_FLAG_MAX = 4 + +--- @alias RenderingServer.ShadowCastingSetting `RenderingServer.SHADOW_CASTING_SETTING_OFF` | `RenderingServer.SHADOW_CASTING_SETTING_ON` | `RenderingServer.SHADOW_CASTING_SETTING_DOUBLE_SIDED` | `RenderingServer.SHADOW_CASTING_SETTING_SHADOWS_ONLY` +RenderingServer.SHADOW_CASTING_SETTING_OFF = 0 +RenderingServer.SHADOW_CASTING_SETTING_ON = 1 +RenderingServer.SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2 +RenderingServer.SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3 + +--- @alias RenderingServer.VisibilityRangeFadeMode `RenderingServer.VISIBILITY_RANGE_FADE_DISABLED` | `RenderingServer.VISIBILITY_RANGE_FADE_SELF` | `RenderingServer.VISIBILITY_RANGE_FADE_DEPENDENCIES` +RenderingServer.VISIBILITY_RANGE_FADE_DISABLED = 0 +RenderingServer.VISIBILITY_RANGE_FADE_SELF = 1 +RenderingServer.VISIBILITY_RANGE_FADE_DEPENDENCIES = 2 + +--- @alias RenderingServer.BakeChannels `RenderingServer.BAKE_CHANNEL_ALBEDO_ALPHA` | `RenderingServer.BAKE_CHANNEL_NORMAL` | `RenderingServer.BAKE_CHANNEL_ORM` | `RenderingServer.BAKE_CHANNEL_EMISSION` +RenderingServer.BAKE_CHANNEL_ALBEDO_ALPHA = 0 +RenderingServer.BAKE_CHANNEL_NORMAL = 1 +RenderingServer.BAKE_CHANNEL_ORM = 2 +RenderingServer.BAKE_CHANNEL_EMISSION = 3 + +--- @alias RenderingServer.CanvasTextureChannel `RenderingServer.CANVAS_TEXTURE_CHANNEL_DIFFUSE` | `RenderingServer.CANVAS_TEXTURE_CHANNEL_NORMAL` | `RenderingServer.CANVAS_TEXTURE_CHANNEL_SPECULAR` +RenderingServer.CANVAS_TEXTURE_CHANNEL_DIFFUSE = 0 +RenderingServer.CANVAS_TEXTURE_CHANNEL_NORMAL = 1 +RenderingServer.CANVAS_TEXTURE_CHANNEL_SPECULAR = 2 + +--- @alias RenderingServer.NinePatchAxisMode `RenderingServer.NINE_PATCH_STRETCH` | `RenderingServer.NINE_PATCH_TILE` | `RenderingServer.NINE_PATCH_TILE_FIT` +RenderingServer.NINE_PATCH_STRETCH = 0 +RenderingServer.NINE_PATCH_TILE = 1 +RenderingServer.NINE_PATCH_TILE_FIT = 2 + +--- @alias RenderingServer.CanvasItemTextureFilter `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_DEFAULT` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC` | `RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_MAX` +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_DEFAULT = 0 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 1 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 2 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6 +RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_MAX = 7 + +--- @alias RenderingServer.CanvasItemTextureRepeat `RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT` | `RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_DISABLED` | `RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_ENABLED` | `RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_MIRROR` | `RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_MAX` +RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT = 0 +RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 1 +RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 2 +RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 3 +RenderingServer.CANVAS_ITEM_TEXTURE_REPEAT_MAX = 4 + +--- @alias RenderingServer.CanvasGroupMode `RenderingServer.CANVAS_GROUP_MODE_DISABLED` | `RenderingServer.CANVAS_GROUP_MODE_CLIP_ONLY` | `RenderingServer.CANVAS_GROUP_MODE_CLIP_AND_DRAW` | `RenderingServer.CANVAS_GROUP_MODE_TRANSPARENT` +RenderingServer.CANVAS_GROUP_MODE_DISABLED = 0 +RenderingServer.CANVAS_GROUP_MODE_CLIP_ONLY = 1 +RenderingServer.CANVAS_GROUP_MODE_CLIP_AND_DRAW = 2 +RenderingServer.CANVAS_GROUP_MODE_TRANSPARENT = 3 + +--- @alias RenderingServer.CanvasLightMode `RenderingServer.CANVAS_LIGHT_MODE_POINT` | `RenderingServer.CANVAS_LIGHT_MODE_DIRECTIONAL` +RenderingServer.CANVAS_LIGHT_MODE_POINT = 0 +RenderingServer.CANVAS_LIGHT_MODE_DIRECTIONAL = 1 + +--- @alias RenderingServer.CanvasLightBlendMode `RenderingServer.CANVAS_LIGHT_BLEND_MODE_ADD` | `RenderingServer.CANVAS_LIGHT_BLEND_MODE_SUB` | `RenderingServer.CANVAS_LIGHT_BLEND_MODE_MIX` +RenderingServer.CANVAS_LIGHT_BLEND_MODE_ADD = 0 +RenderingServer.CANVAS_LIGHT_BLEND_MODE_SUB = 1 +RenderingServer.CANVAS_LIGHT_BLEND_MODE_MIX = 2 + +--- @alias RenderingServer.CanvasLightShadowFilter `RenderingServer.CANVAS_LIGHT_FILTER_NONE` | `RenderingServer.CANVAS_LIGHT_FILTER_PCF5` | `RenderingServer.CANVAS_LIGHT_FILTER_PCF13` | `RenderingServer.CANVAS_LIGHT_FILTER_MAX` +RenderingServer.CANVAS_LIGHT_FILTER_NONE = 0 +RenderingServer.CANVAS_LIGHT_FILTER_PCF5 = 1 +RenderingServer.CANVAS_LIGHT_FILTER_PCF13 = 2 +RenderingServer.CANVAS_LIGHT_FILTER_MAX = 3 + +--- @alias RenderingServer.CanvasOccluderPolygonCullMode `RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_DISABLED` | `RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE` | `RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE` +RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0 +RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1 +RenderingServer.CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2 + +--- @alias RenderingServer.GlobalShaderParameterType `RenderingServer.GLOBAL_VAR_TYPE_BOOL` | `RenderingServer.GLOBAL_VAR_TYPE_BVEC2` | `RenderingServer.GLOBAL_VAR_TYPE_BVEC3` | `RenderingServer.GLOBAL_VAR_TYPE_BVEC4` | `RenderingServer.GLOBAL_VAR_TYPE_INT` | `RenderingServer.GLOBAL_VAR_TYPE_IVEC2` | `RenderingServer.GLOBAL_VAR_TYPE_IVEC3` | `RenderingServer.GLOBAL_VAR_TYPE_IVEC4` | `RenderingServer.GLOBAL_VAR_TYPE_RECT2I` | `RenderingServer.GLOBAL_VAR_TYPE_UINT` | `RenderingServer.GLOBAL_VAR_TYPE_UVEC2` | `RenderingServer.GLOBAL_VAR_TYPE_UVEC3` | `RenderingServer.GLOBAL_VAR_TYPE_UVEC4` | `RenderingServer.GLOBAL_VAR_TYPE_FLOAT` | `RenderingServer.GLOBAL_VAR_TYPE_VEC2` | `RenderingServer.GLOBAL_VAR_TYPE_VEC3` | `RenderingServer.GLOBAL_VAR_TYPE_VEC4` | `RenderingServer.GLOBAL_VAR_TYPE_COLOR` | `RenderingServer.GLOBAL_VAR_TYPE_RECT2` | `RenderingServer.GLOBAL_VAR_TYPE_MAT2` | `RenderingServer.GLOBAL_VAR_TYPE_MAT3` | `RenderingServer.GLOBAL_VAR_TYPE_MAT4` | `RenderingServer.GLOBAL_VAR_TYPE_TRANSFORM_2D` | `RenderingServer.GLOBAL_VAR_TYPE_TRANSFORM` | `RenderingServer.GLOBAL_VAR_TYPE_SAMPLER2D` | `RenderingServer.GLOBAL_VAR_TYPE_SAMPLER2DARRAY` | `RenderingServer.GLOBAL_VAR_TYPE_SAMPLER3D` | `RenderingServer.GLOBAL_VAR_TYPE_SAMPLERCUBE` | `RenderingServer.GLOBAL_VAR_TYPE_SAMPLEREXT` | `RenderingServer.GLOBAL_VAR_TYPE_MAX` +RenderingServer.GLOBAL_VAR_TYPE_BOOL = 0 +RenderingServer.GLOBAL_VAR_TYPE_BVEC2 = 1 +RenderingServer.GLOBAL_VAR_TYPE_BVEC3 = 2 +RenderingServer.GLOBAL_VAR_TYPE_BVEC4 = 3 +RenderingServer.GLOBAL_VAR_TYPE_INT = 4 +RenderingServer.GLOBAL_VAR_TYPE_IVEC2 = 5 +RenderingServer.GLOBAL_VAR_TYPE_IVEC3 = 6 +RenderingServer.GLOBAL_VAR_TYPE_IVEC4 = 7 +RenderingServer.GLOBAL_VAR_TYPE_RECT2I = 8 +RenderingServer.GLOBAL_VAR_TYPE_UINT = 9 +RenderingServer.GLOBAL_VAR_TYPE_UVEC2 = 10 +RenderingServer.GLOBAL_VAR_TYPE_UVEC3 = 11 +RenderingServer.GLOBAL_VAR_TYPE_UVEC4 = 12 +RenderingServer.GLOBAL_VAR_TYPE_FLOAT = 13 +RenderingServer.GLOBAL_VAR_TYPE_VEC2 = 14 +RenderingServer.GLOBAL_VAR_TYPE_VEC3 = 15 +RenderingServer.GLOBAL_VAR_TYPE_VEC4 = 16 +RenderingServer.GLOBAL_VAR_TYPE_COLOR = 17 +RenderingServer.GLOBAL_VAR_TYPE_RECT2 = 18 +RenderingServer.GLOBAL_VAR_TYPE_MAT2 = 19 +RenderingServer.GLOBAL_VAR_TYPE_MAT3 = 20 +RenderingServer.GLOBAL_VAR_TYPE_MAT4 = 21 +RenderingServer.GLOBAL_VAR_TYPE_TRANSFORM_2D = 22 +RenderingServer.GLOBAL_VAR_TYPE_TRANSFORM = 23 +RenderingServer.GLOBAL_VAR_TYPE_SAMPLER2D = 24 +RenderingServer.GLOBAL_VAR_TYPE_SAMPLER2DARRAY = 25 +RenderingServer.GLOBAL_VAR_TYPE_SAMPLER3D = 26 +RenderingServer.GLOBAL_VAR_TYPE_SAMPLERCUBE = 27 +RenderingServer.GLOBAL_VAR_TYPE_SAMPLEREXT = 28 +RenderingServer.GLOBAL_VAR_TYPE_MAX = 29 + +--- @alias RenderingServer.RenderingInfo `RenderingServer.RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME` | `RenderingServer.RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME` | `RenderingServer.RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME` | `RenderingServer.RENDERING_INFO_TEXTURE_MEM_USED` | `RenderingServer.RENDERING_INFO_BUFFER_MEM_USED` | `RenderingServer.RENDERING_INFO_VIDEO_MEM_USED` | `RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS` | `RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_MESH` | `RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE` | `RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW` | `RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION` +RenderingServer.RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME = 0 +RenderingServer.RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME = 1 +RenderingServer.RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME = 2 +RenderingServer.RENDERING_INFO_TEXTURE_MEM_USED = 3 +RenderingServer.RENDERING_INFO_BUFFER_MEM_USED = 4 +RenderingServer.RENDERING_INFO_VIDEO_MEM_USED = 5 +RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS = 6 +RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_MESH = 7 +RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE = 8 +RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW = 9 +RenderingServer.RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION = 10 + +--- @alias RenderingServer.PipelineSource `RenderingServer.PIPELINE_SOURCE_CANVAS` | `RenderingServer.PIPELINE_SOURCE_MESH` | `RenderingServer.PIPELINE_SOURCE_SURFACE` | `RenderingServer.PIPELINE_SOURCE_DRAW` | `RenderingServer.PIPELINE_SOURCE_SPECIALIZATION` | `RenderingServer.PIPELINE_SOURCE_MAX` +RenderingServer.PIPELINE_SOURCE_CANVAS = 0 +RenderingServer.PIPELINE_SOURCE_MESH = 1 +RenderingServer.PIPELINE_SOURCE_SURFACE = 2 +RenderingServer.PIPELINE_SOURCE_DRAW = 3 +RenderingServer.PIPELINE_SOURCE_SPECIALIZATION = 4 +RenderingServer.PIPELINE_SOURCE_MAX = 5 + +--- @alias RenderingServer.Features `RenderingServer.FEATURE_SHADERS` | `RenderingServer.FEATURE_MULTITHREADED` +RenderingServer.FEATURE_SHADERS = 0 +RenderingServer.FEATURE_MULTITHREADED = 1 + +RenderingServer.frame_pre_draw = Signal() +RenderingServer.frame_post_draw = Signal() + +--- @param image Image +--- @return RID +function RenderingServer:texture_2d_create(image) end + +--- @param layers Array[Image] +--- @param layered_type RenderingServer.TextureLayeredType +--- @return RID +function RenderingServer:texture_2d_layered_create(layers, layered_type) end + +--- @param format Image.Format +--- @param width int +--- @param height int +--- @param depth int +--- @param mipmaps bool +--- @param data Array[Image] +--- @return RID +function RenderingServer:texture_3d_create(format, width, height, depth, mipmaps, data) end + +--- @param base RID +--- @return RID +function RenderingServer:texture_proxy_create(base) end + +--- @param type RenderingServer.TextureType +--- @param format Image.Format +--- @param native_handle int +--- @param width int +--- @param height int +--- @param depth int +--- @param layers int? Default: 1 +--- @param layered_type RenderingServer.TextureLayeredType? Default: 0 +--- @return RID +function RenderingServer:texture_create_from_native_handle(type, format, native_handle, width, height, depth, layers, layered_type) end + +--- @param texture RID +--- @param image Image +--- @param layer int +function RenderingServer:texture_2d_update(texture, image, layer) end + +--- @param texture RID +--- @param data Array[Image] +function RenderingServer:texture_3d_update(texture, data) end + +--- @param texture RID +--- @param proxy_to RID +function RenderingServer:texture_proxy_update(texture, proxy_to) end + +--- @return RID +function RenderingServer:texture_2d_placeholder_create() end + +--- @param layered_type RenderingServer.TextureLayeredType +--- @return RID +function RenderingServer:texture_2d_layered_placeholder_create(layered_type) end + +--- @return RID +function RenderingServer:texture_3d_placeholder_create() end + +--- @param texture RID +--- @return Image +function RenderingServer:texture_2d_get(texture) end + +--- @param texture RID +--- @param layer int +--- @return Image +function RenderingServer:texture_2d_layer_get(texture, layer) end + +--- @param texture RID +--- @return Array[Image] +function RenderingServer:texture_3d_get(texture) end + +--- @param texture RID +--- @param by_texture RID +function RenderingServer:texture_replace(texture, by_texture) end + +--- @param texture RID +--- @param width int +--- @param height int +function RenderingServer:texture_set_size_override(texture, width, height) end + +--- @param texture RID +--- @param path String +function RenderingServer:texture_set_path(texture, path) end + +--- @param texture RID +--- @return String +function RenderingServer:texture_get_path(texture) end + +--- @param texture RID +--- @return Image.Format +function RenderingServer:texture_get_format(texture) end + +--- @param texture RID +--- @param enable bool +function RenderingServer:texture_set_force_redraw_if_visible(texture, enable) end + +--- @param rd_texture RID +--- @param layer_type RenderingServer.TextureLayeredType? Default: 0 +--- @return RID +function RenderingServer:texture_rd_create(rd_texture, layer_type) end + +--- @param texture RID +--- @param srgb bool? Default: false +--- @return RID +function RenderingServer:texture_get_rd_texture(texture, srgb) end + +--- @param texture RID +--- @param srgb bool? Default: false +--- @return int +function RenderingServer:texture_get_native_handle(texture, srgb) end + +--- @return RID +function RenderingServer:shader_create() end + +--- @param shader RID +--- @param code String +function RenderingServer:shader_set_code(shader, code) end + +--- @param shader RID +--- @param path String +function RenderingServer:shader_set_path_hint(shader, path) end + +--- @param shader RID +--- @return String +function RenderingServer:shader_get_code(shader) end + +--- @param shader RID +--- @return Array[Dictionary] +function RenderingServer:get_shader_parameter_list(shader) end + +--- @param shader RID +--- @param name StringName +--- @return any +function RenderingServer:shader_get_parameter_default(shader, name) end + +--- @param shader RID +--- @param name StringName +--- @param texture RID +--- @param index int? Default: 0 +function RenderingServer:shader_set_default_texture_parameter(shader, name, texture, index) end + +--- @param shader RID +--- @param name StringName +--- @param index int? Default: 0 +--- @return RID +function RenderingServer:shader_get_default_texture_parameter(shader, name, index) end + +--- @return RID +function RenderingServer:material_create() end + +--- @param shader_material RID +--- @param shader RID +function RenderingServer:material_set_shader(shader_material, shader) end + +--- @param material RID +--- @param parameter StringName +--- @param value any +function RenderingServer:material_set_param(material, parameter, value) end + +--- @param material RID +--- @param parameter StringName +--- @return any +function RenderingServer:material_get_param(material, parameter) end + +--- @param material RID +--- @param priority int +function RenderingServer:material_set_render_priority(material, priority) end + +--- @param material RID +--- @param next_material RID +function RenderingServer:material_set_next_pass(material, next_material) end + +--- @param surfaces Array[Dictionary] +--- @param blend_shape_count int? Default: 0 +--- @return RID +function RenderingServer:mesh_create_from_surfaces(surfaces, blend_shape_count) end + +--- @return RID +function RenderingServer:mesh_create() end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @param array_index int +--- @return int +function RenderingServer:mesh_surface_get_format_offset(format, vertex_count, array_index) end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @return int +function RenderingServer:mesh_surface_get_format_vertex_stride(format, vertex_count) end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @return int +function RenderingServer:mesh_surface_get_format_normal_tangent_stride(format, vertex_count) end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @return int +function RenderingServer:mesh_surface_get_format_attribute_stride(format, vertex_count) end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @return int +function RenderingServer:mesh_surface_get_format_skin_stride(format, vertex_count) end + +--- @param format RenderingServer.ArrayFormat +--- @param vertex_count int +--- @return int +function RenderingServer:mesh_surface_get_format_index_stride(format, vertex_count) end + +--- @param mesh RID +--- @param surface Dictionary +function RenderingServer:mesh_add_surface(mesh, surface) end + +--- @param mesh RID +--- @param primitive RenderingServer.PrimitiveType +--- @param arrays Array +--- @param blend_shapes Array? Default: [] +--- @param lods Dictionary? Default: {} +--- @param compress_format RenderingServer.ArrayFormat? Default: 0 +function RenderingServer:mesh_add_surface_from_arrays(mesh, primitive, arrays, blend_shapes, lods, compress_format) end + +--- @param mesh RID +--- @return int +function RenderingServer:mesh_get_blend_shape_count(mesh) end + +--- @param mesh RID +--- @param mode RenderingServer.BlendShapeMode +function RenderingServer:mesh_set_blend_shape_mode(mesh, mode) end + +--- @param mesh RID +--- @return RenderingServer.BlendShapeMode +function RenderingServer:mesh_get_blend_shape_mode(mesh) end + +--- @param mesh RID +--- @param surface int +--- @param material RID +function RenderingServer:mesh_surface_set_material(mesh, surface, material) end + +--- @param mesh RID +--- @param surface int +--- @return RID +function RenderingServer:mesh_surface_get_material(mesh, surface) end + +--- @param mesh RID +--- @param surface int +--- @return Dictionary +function RenderingServer:mesh_get_surface(mesh, surface) end + +--- @param mesh RID +--- @param surface int +--- @return Array +function RenderingServer:mesh_surface_get_arrays(mesh, surface) end + +--- @param mesh RID +--- @param surface int +--- @return Array[Array] +function RenderingServer:mesh_surface_get_blend_shape_arrays(mesh, surface) end + +--- @param mesh RID +--- @return int +function RenderingServer:mesh_get_surface_count(mesh) end + +--- @param mesh RID +--- @param aabb AABB +function RenderingServer:mesh_set_custom_aabb(mesh, aabb) end + +--- @param mesh RID +--- @return AABB +function RenderingServer:mesh_get_custom_aabb(mesh) end + +--- @param mesh RID +--- @param surface int +function RenderingServer:mesh_surface_remove(mesh, surface) end + +--- @param mesh RID +function RenderingServer:mesh_clear(mesh) end + +--- @param mesh RID +--- @param surface int +--- @param offset int +--- @param data PackedByteArray +function RenderingServer:mesh_surface_update_vertex_region(mesh, surface, offset, data) end + +--- @param mesh RID +--- @param surface int +--- @param offset int +--- @param data PackedByteArray +function RenderingServer:mesh_surface_update_attribute_region(mesh, surface, offset, data) end + +--- @param mesh RID +--- @param surface int +--- @param offset int +--- @param data PackedByteArray +function RenderingServer:mesh_surface_update_skin_region(mesh, surface, offset, data) end + +--- @param mesh RID +--- @param surface int +--- @param offset int +--- @param data PackedByteArray +function RenderingServer:mesh_surface_update_index_region(mesh, surface, offset, data) end + +--- @param mesh RID +--- @param shadow_mesh RID +function RenderingServer:mesh_set_shadow_mesh(mesh, shadow_mesh) end + +--- @return RID +function RenderingServer:multimesh_create() end + +--- @param multimesh RID +--- @param instances int +--- @param transform_format RenderingServer.MultimeshTransformFormat +--- @param color_format bool? Default: false +--- @param custom_data_format bool? Default: false +--- @param use_indirect bool? Default: false +function RenderingServer:multimesh_allocate_data(multimesh, instances, transform_format, color_format, custom_data_format, use_indirect) end + +--- @param multimesh RID +--- @return int +function RenderingServer:multimesh_get_instance_count(multimesh) end + +--- @param multimesh RID +--- @param mesh RID +function RenderingServer:multimesh_set_mesh(multimesh, mesh) end + +--- @param multimesh RID +--- @param index int +--- @param transform Transform3D +function RenderingServer:multimesh_instance_set_transform(multimesh, index, transform) end + +--- @param multimesh RID +--- @param index int +--- @param transform Transform2D +function RenderingServer:multimesh_instance_set_transform_2d(multimesh, index, transform) end + +--- @param multimesh RID +--- @param index int +--- @param color Color +function RenderingServer:multimesh_instance_set_color(multimesh, index, color) end + +--- @param multimesh RID +--- @param index int +--- @param custom_data Color +function RenderingServer:multimesh_instance_set_custom_data(multimesh, index, custom_data) end + +--- @param multimesh RID +--- @return RID +function RenderingServer:multimesh_get_mesh(multimesh) end + +--- @param multimesh RID +--- @return AABB +function RenderingServer:multimesh_get_aabb(multimesh) end + +--- @param multimesh RID +--- @param aabb AABB +function RenderingServer:multimesh_set_custom_aabb(multimesh, aabb) end + +--- @param multimesh RID +--- @return AABB +function RenderingServer:multimesh_get_custom_aabb(multimesh) end + +--- @param multimesh RID +--- @param index int +--- @return Transform3D +function RenderingServer:multimesh_instance_get_transform(multimesh, index) end + +--- @param multimesh RID +--- @param index int +--- @return Transform2D +function RenderingServer:multimesh_instance_get_transform_2d(multimesh, index) end + +--- @param multimesh RID +--- @param index int +--- @return Color +function RenderingServer:multimesh_instance_get_color(multimesh, index) end + +--- @param multimesh RID +--- @param index int +--- @return Color +function RenderingServer:multimesh_instance_get_custom_data(multimesh, index) end + +--- @param multimesh RID +--- @param visible int +function RenderingServer:multimesh_set_visible_instances(multimesh, visible) end + +--- @param multimesh RID +--- @return int +function RenderingServer:multimesh_get_visible_instances(multimesh) end + +--- @param multimesh RID +--- @param buffer PackedFloat32Array +function RenderingServer:multimesh_set_buffer(multimesh, buffer) end + +--- @param multimesh RID +--- @return RID +function RenderingServer:multimesh_get_command_buffer_rd_rid(multimesh) end + +--- @param multimesh RID +--- @return RID +function RenderingServer:multimesh_get_buffer_rd_rid(multimesh) end + +--- @param multimesh RID +--- @return PackedFloat32Array +function RenderingServer:multimesh_get_buffer(multimesh) end + +--- @param multimesh RID +--- @param buffer PackedFloat32Array +--- @param buffer_previous PackedFloat32Array +function RenderingServer:multimesh_set_buffer_interpolated(multimesh, buffer, buffer_previous) end + +--- @param multimesh RID +--- @param interpolated bool +function RenderingServer:multimesh_set_physics_interpolated(multimesh, interpolated) end + +--- @param multimesh RID +--- @param quality RenderingServer.MultimeshPhysicsInterpolationQuality +function RenderingServer:multimesh_set_physics_interpolation_quality(multimesh, quality) end + +--- @param multimesh RID +--- @param index int +function RenderingServer:multimesh_instance_reset_physics_interpolation(multimesh, index) end + +--- @return RID +function RenderingServer:skeleton_create() end + +--- @param skeleton RID +--- @param bones int +--- @param is_2d_skeleton bool? Default: false +function RenderingServer:skeleton_allocate_data(skeleton, bones, is_2d_skeleton) end + +--- @param skeleton RID +--- @return int +function RenderingServer:skeleton_get_bone_count(skeleton) end + +--- @param skeleton RID +--- @param bone int +--- @param transform Transform3D +function RenderingServer:skeleton_bone_set_transform(skeleton, bone, transform) end + +--- @param skeleton RID +--- @param bone int +--- @return Transform3D +function RenderingServer:skeleton_bone_get_transform(skeleton, bone) end + +--- @param skeleton RID +--- @param bone int +--- @param transform Transform2D +function RenderingServer:skeleton_bone_set_transform_2d(skeleton, bone, transform) end + +--- @param skeleton RID +--- @param bone int +--- @return Transform2D +function RenderingServer:skeleton_bone_get_transform_2d(skeleton, bone) end + +--- @param skeleton RID +--- @param base_transform Transform2D +function RenderingServer:skeleton_set_base_transform_2d(skeleton, base_transform) end + +--- @return RID +function RenderingServer:directional_light_create() end + +--- @return RID +function RenderingServer:omni_light_create() end + +--- @return RID +function RenderingServer:spot_light_create() end + +--- @param light RID +--- @param color Color +function RenderingServer:light_set_color(light, color) end + +--- @param light RID +--- @param param RenderingServer.LightParam +--- @param value float +function RenderingServer:light_set_param(light, param, value) end + +--- @param light RID +--- @param enabled bool +function RenderingServer:light_set_shadow(light, enabled) end + +--- @param light RID +--- @param texture RID +function RenderingServer:light_set_projector(light, texture) end + +--- @param light RID +--- @param enable bool +function RenderingServer:light_set_negative(light, enable) end + +--- @param light RID +--- @param mask int +function RenderingServer:light_set_cull_mask(light, mask) end + +--- @param decal RID +--- @param enabled bool +--- @param begin float +--- @param shadow float +--- @param length float +function RenderingServer:light_set_distance_fade(decal, enabled, begin, shadow, length) end + +--- @param light RID +--- @param enabled bool +function RenderingServer:light_set_reverse_cull_face_mode(light, enabled) end + +--- @param light RID +--- @param mask int +function RenderingServer:light_set_shadow_caster_mask(light, mask) end + +--- @param light RID +--- @param bake_mode RenderingServer.LightBakeMode +function RenderingServer:light_set_bake_mode(light, bake_mode) end + +--- @param light RID +--- @param cascade int +function RenderingServer:light_set_max_sdfgi_cascade(light, cascade) end + +--- @param light RID +--- @param mode RenderingServer.LightOmniShadowMode +function RenderingServer:light_omni_set_shadow_mode(light, mode) end + +--- @param light RID +--- @param mode RenderingServer.LightDirectionalShadowMode +function RenderingServer:light_directional_set_shadow_mode(light, mode) end + +--- @param light RID +--- @param enable bool +function RenderingServer:light_directional_set_blend_splits(light, enable) end + +--- @param light RID +--- @param mode RenderingServer.LightDirectionalSkyMode +function RenderingServer:light_directional_set_sky_mode(light, mode) end + +--- @param filter RenderingServer.LightProjectorFilter +function RenderingServer:light_projectors_set_filter(filter) end + +--- @param enable bool +function RenderingServer:lightmaps_set_bicubic_filter(enable) end + +--- @param quality RenderingServer.ShadowQuality +function RenderingServer:positional_soft_shadow_filter_set_quality(quality) end + +--- @param quality RenderingServer.ShadowQuality +function RenderingServer:directional_soft_shadow_filter_set_quality(quality) end + +--- @param size int +--- @param is_16bits bool +function RenderingServer:directional_shadow_atlas_set_size(size, is_16bits) end + +--- @return RID +function RenderingServer:reflection_probe_create() end + +--- @param probe RID +--- @param mode RenderingServer.ReflectionProbeUpdateMode +function RenderingServer:reflection_probe_set_update_mode(probe, mode) end + +--- @param probe RID +--- @param intensity float +function RenderingServer:reflection_probe_set_intensity(probe, intensity) end + +--- @param probe RID +--- @param blend_distance float +function RenderingServer:reflection_probe_set_blend_distance(probe, blend_distance) end + +--- @param probe RID +--- @param mode RenderingServer.ReflectionProbeAmbientMode +function RenderingServer:reflection_probe_set_ambient_mode(probe, mode) end + +--- @param probe RID +--- @param color Color +function RenderingServer:reflection_probe_set_ambient_color(probe, color) end + +--- @param probe RID +--- @param energy float +function RenderingServer:reflection_probe_set_ambient_energy(probe, energy) end + +--- @param probe RID +--- @param distance float +function RenderingServer:reflection_probe_set_max_distance(probe, distance) end + +--- @param probe RID +--- @param size Vector3 +function RenderingServer:reflection_probe_set_size(probe, size) end + +--- @param probe RID +--- @param offset Vector3 +function RenderingServer:reflection_probe_set_origin_offset(probe, offset) end + +--- @param probe RID +--- @param enable bool +function RenderingServer:reflection_probe_set_as_interior(probe, enable) end + +--- @param probe RID +--- @param enable bool +function RenderingServer:reflection_probe_set_enable_box_projection(probe, enable) end + +--- @param probe RID +--- @param enable bool +function RenderingServer:reflection_probe_set_enable_shadows(probe, enable) end + +--- @param probe RID +--- @param layers int +function RenderingServer:reflection_probe_set_cull_mask(probe, layers) end + +--- @param probe RID +--- @param layers int +function RenderingServer:reflection_probe_set_reflection_mask(probe, layers) end + +--- @param probe RID +--- @param resolution int +function RenderingServer:reflection_probe_set_resolution(probe, resolution) end + +--- @param probe RID +--- @param pixels float +function RenderingServer:reflection_probe_set_mesh_lod_threshold(probe, pixels) end + +--- @return RID +function RenderingServer:decal_create() end + +--- @param decal RID +--- @param size Vector3 +function RenderingServer:decal_set_size(decal, size) end + +--- @param decal RID +--- @param type RenderingServer.DecalTexture +--- @param texture RID +function RenderingServer:decal_set_texture(decal, type, texture) end + +--- @param decal RID +--- @param energy float +function RenderingServer:decal_set_emission_energy(decal, energy) end + +--- @param decal RID +--- @param albedo_mix float +function RenderingServer:decal_set_albedo_mix(decal, albedo_mix) end + +--- @param decal RID +--- @param color Color +function RenderingServer:decal_set_modulate(decal, color) end + +--- @param decal RID +--- @param mask int +function RenderingServer:decal_set_cull_mask(decal, mask) end + +--- @param decal RID +--- @param enabled bool +--- @param begin float +--- @param length float +function RenderingServer:decal_set_distance_fade(decal, enabled, begin, length) end + +--- @param decal RID +--- @param above float +--- @param below float +function RenderingServer:decal_set_fade(decal, above, below) end + +--- @param decal RID +--- @param fade float +function RenderingServer:decal_set_normal_fade(decal, fade) end + +--- @param filter RenderingServer.DecalFilter +function RenderingServer:decals_set_filter(filter) end + +--- @param half_resolution bool +function RenderingServer:gi_set_use_half_resolution(half_resolution) end + +--- @return RID +function RenderingServer:voxel_gi_create() end + +--- @param voxel_gi RID +--- @param to_cell_xform Transform3D +--- @param aabb AABB +--- @param octree_size Vector3i +--- @param octree_cells PackedByteArray +--- @param data_cells PackedByteArray +--- @param distance_field PackedByteArray +--- @param level_counts PackedInt32Array +function RenderingServer:voxel_gi_allocate_data(voxel_gi, to_cell_xform, aabb, octree_size, octree_cells, data_cells, distance_field, level_counts) end + +--- @param voxel_gi RID +--- @return Vector3i +function RenderingServer:voxel_gi_get_octree_size(voxel_gi) end + +--- @param voxel_gi RID +--- @return PackedByteArray +function RenderingServer:voxel_gi_get_octree_cells(voxel_gi) end + +--- @param voxel_gi RID +--- @return PackedByteArray +function RenderingServer:voxel_gi_get_data_cells(voxel_gi) end + +--- @param voxel_gi RID +--- @return PackedByteArray +function RenderingServer:voxel_gi_get_distance_field(voxel_gi) end + +--- @param voxel_gi RID +--- @return PackedInt32Array +function RenderingServer:voxel_gi_get_level_counts(voxel_gi) end + +--- @param voxel_gi RID +--- @return Transform3D +function RenderingServer:voxel_gi_get_to_cell_xform(voxel_gi) end + +--- @param voxel_gi RID +--- @param range float +function RenderingServer:voxel_gi_set_dynamic_range(voxel_gi, range) end + +--- @param voxel_gi RID +--- @param amount float +function RenderingServer:voxel_gi_set_propagation(voxel_gi, amount) end + +--- @param voxel_gi RID +--- @param energy float +function RenderingServer:voxel_gi_set_energy(voxel_gi, energy) end + +--- @param voxel_gi RID +--- @param baked_exposure float +function RenderingServer:voxel_gi_set_baked_exposure_normalization(voxel_gi, baked_exposure) end + +--- @param voxel_gi RID +--- @param bias float +function RenderingServer:voxel_gi_set_bias(voxel_gi, bias) end + +--- @param voxel_gi RID +--- @param bias float +function RenderingServer:voxel_gi_set_normal_bias(voxel_gi, bias) end + +--- @param voxel_gi RID +--- @param enable bool +function RenderingServer:voxel_gi_set_interior(voxel_gi, enable) end + +--- @param voxel_gi RID +--- @param enable bool +function RenderingServer:voxel_gi_set_use_two_bounces(voxel_gi, enable) end + +--- @param quality RenderingServer.VoxelGIQuality +function RenderingServer:voxel_gi_set_quality(quality) end + +--- @return RID +function RenderingServer:lightmap_create() end + +--- @param lightmap RID +--- @param light RID +--- @param uses_sh bool +function RenderingServer:lightmap_set_textures(lightmap, light, uses_sh) end + +--- @param lightmap RID +--- @param bounds AABB +function RenderingServer:lightmap_set_probe_bounds(lightmap, bounds) end + +--- @param lightmap RID +--- @param interior bool +function RenderingServer:lightmap_set_probe_interior(lightmap, interior) end + +--- @param lightmap RID +--- @param points PackedVector3Array +--- @param point_sh PackedColorArray +--- @param tetrahedra PackedInt32Array +--- @param bsp_tree PackedInt32Array +function RenderingServer:lightmap_set_probe_capture_data(lightmap, points, point_sh, tetrahedra, bsp_tree) end + +--- @param lightmap RID +--- @return PackedVector3Array +function RenderingServer:lightmap_get_probe_capture_points(lightmap) end + +--- @param lightmap RID +--- @return PackedColorArray +function RenderingServer:lightmap_get_probe_capture_sh(lightmap) end + +--- @param lightmap RID +--- @return PackedInt32Array +function RenderingServer:lightmap_get_probe_capture_tetrahedra(lightmap) end + +--- @param lightmap RID +--- @return PackedInt32Array +function RenderingServer:lightmap_get_probe_capture_bsp_tree(lightmap) end + +--- @param lightmap RID +--- @param baked_exposure float +function RenderingServer:lightmap_set_baked_exposure_normalization(lightmap, baked_exposure) end + +--- @param speed float +function RenderingServer:lightmap_set_probe_capture_update_speed(speed) end + +--- @return RID +function RenderingServer:particles_create() end + +--- @param particles RID +--- @param mode RenderingServer.ParticlesMode +function RenderingServer:particles_set_mode(particles, mode) end + +--- @param particles RID +--- @param emitting bool +function RenderingServer:particles_set_emitting(particles, emitting) end + +--- @param particles RID +--- @return bool +function RenderingServer:particles_get_emitting(particles) end + +--- @param particles RID +--- @param amount int +function RenderingServer:particles_set_amount(particles, amount) end + +--- @param particles RID +--- @param ratio float +function RenderingServer:particles_set_amount_ratio(particles, ratio) end + +--- @param particles RID +--- @param lifetime float +function RenderingServer:particles_set_lifetime(particles, lifetime) end + +--- @param particles RID +--- @param one_shot bool +function RenderingServer:particles_set_one_shot(particles, one_shot) end + +--- @param particles RID +--- @param time float +function RenderingServer:particles_set_pre_process_time(particles, time) end + +--- @param particles RID +--- @param time float +function RenderingServer:particles_request_process_time(particles, time) end + +--- @param particles RID +--- @param ratio float +function RenderingServer:particles_set_explosiveness_ratio(particles, ratio) end + +--- @param particles RID +--- @param ratio float +function RenderingServer:particles_set_randomness_ratio(particles, ratio) end + +--- @param particles RID +--- @param factor float +function RenderingServer:particles_set_interp_to_end(particles, factor) end + +--- @param particles RID +--- @param velocity Vector3 +function RenderingServer:particles_set_emitter_velocity(particles, velocity) end + +--- @param particles RID +--- @param aabb AABB +function RenderingServer:particles_set_custom_aabb(particles, aabb) end + +--- @param particles RID +--- @param scale float +function RenderingServer:particles_set_speed_scale(particles, scale) end + +--- @param particles RID +--- @param enable bool +function RenderingServer:particles_set_use_local_coordinates(particles, enable) end + +--- @param particles RID +--- @param material RID +function RenderingServer:particles_set_process_material(particles, material) end + +--- @param particles RID +--- @param fps int +function RenderingServer:particles_set_fixed_fps(particles, fps) end + +--- @param particles RID +--- @param enable bool +function RenderingServer:particles_set_interpolate(particles, enable) end + +--- @param particles RID +--- @param enable bool +function RenderingServer:particles_set_fractional_delta(particles, enable) end + +--- @param particles RID +--- @param size float +function RenderingServer:particles_set_collision_base_size(particles, size) end + +--- @param particles RID +--- @param align RenderingServer.ParticlesTransformAlign +function RenderingServer:particles_set_transform_align(particles, align) end + +--- @param particles RID +--- @param enable bool +--- @param length_sec float +function RenderingServer:particles_set_trails(particles, enable, length_sec) end + +--- @param particles RID +--- @param bind_poses Array[Transform3D] +function RenderingServer:particles_set_trail_bind_poses(particles, bind_poses) end + +--- @param particles RID +--- @return bool +function RenderingServer:particles_is_inactive(particles) end + +--- @param particles RID +function RenderingServer:particles_request_process(particles) end + +--- @param particles RID +function RenderingServer:particles_restart(particles) end + +--- @param particles RID +--- @param subemitter_particles RID +function RenderingServer:particles_set_subemitter(particles, subemitter_particles) end + +--- @param particles RID +--- @param transform Transform3D +--- @param velocity Vector3 +--- @param color Color +--- @param custom Color +--- @param emit_flags int +function RenderingServer:particles_emit(particles, transform, velocity, color, custom, emit_flags) end + +--- @param particles RID +--- @param order RenderingServer.ParticlesDrawOrder +function RenderingServer:particles_set_draw_order(particles, order) end + +--- @param particles RID +--- @param count int +function RenderingServer:particles_set_draw_passes(particles, count) end + +--- @param particles RID +--- @param pass int +--- @param mesh RID +function RenderingServer:particles_set_draw_pass_mesh(particles, pass, mesh) end + +--- @param particles RID +--- @return AABB +function RenderingServer:particles_get_current_aabb(particles) end + +--- @param particles RID +--- @param transform Transform3D +function RenderingServer:particles_set_emission_transform(particles, transform) end + +--- @return RID +function RenderingServer:particles_collision_create() end + +--- @param particles_collision RID +--- @param type RenderingServer.ParticlesCollisionType +function RenderingServer:particles_collision_set_collision_type(particles_collision, type) end + +--- @param particles_collision RID +--- @param mask int +function RenderingServer:particles_collision_set_cull_mask(particles_collision, mask) end + +--- @param particles_collision RID +--- @param radius float +function RenderingServer:particles_collision_set_sphere_radius(particles_collision, radius) end + +--- @param particles_collision RID +--- @param extents Vector3 +function RenderingServer:particles_collision_set_box_extents(particles_collision, extents) end + +--- @param particles_collision RID +--- @param strength float +function RenderingServer:particles_collision_set_attractor_strength(particles_collision, strength) end + +--- @param particles_collision RID +--- @param amount float +function RenderingServer:particles_collision_set_attractor_directionality(particles_collision, amount) end + +--- @param particles_collision RID +--- @param curve float +function RenderingServer:particles_collision_set_attractor_attenuation(particles_collision, curve) end + +--- @param particles_collision RID +--- @param texture RID +function RenderingServer:particles_collision_set_field_texture(particles_collision, texture) end + +--- @param particles_collision RID +function RenderingServer:particles_collision_height_field_update(particles_collision) end + +--- @param particles_collision RID +--- @param resolution RenderingServer.ParticlesCollisionHeightfieldResolution +function RenderingServer:particles_collision_set_height_field_resolution(particles_collision, resolution) end + +--- @param particles_collision RID +--- @param mask int +function RenderingServer:particles_collision_set_height_field_mask(particles_collision, mask) end + +--- @return RID +function RenderingServer:fog_volume_create() end + +--- @param fog_volume RID +--- @param shape RenderingServer.FogVolumeShape +function RenderingServer:fog_volume_set_shape(fog_volume, shape) end + +--- @param fog_volume RID +--- @param size Vector3 +function RenderingServer:fog_volume_set_size(fog_volume, size) end + +--- @param fog_volume RID +--- @param material RID +function RenderingServer:fog_volume_set_material(fog_volume, material) end + +--- @return RID +function RenderingServer:visibility_notifier_create() end + +--- @param notifier RID +--- @param aabb AABB +function RenderingServer:visibility_notifier_set_aabb(notifier, aabb) end + +--- @param notifier RID +--- @param enter_callable Callable +--- @param exit_callable Callable +function RenderingServer:visibility_notifier_set_callbacks(notifier, enter_callable, exit_callable) end + +--- @return RID +function RenderingServer:occluder_create() end + +--- @param occluder RID +--- @param vertices PackedVector3Array +--- @param indices PackedInt32Array +function RenderingServer:occluder_set_mesh(occluder, vertices, indices) end + +--- @return RID +function RenderingServer:camera_create() end + +--- @param camera RID +--- @param fovy_degrees float +--- @param z_near float +--- @param z_far float +function RenderingServer:camera_set_perspective(camera, fovy_degrees, z_near, z_far) end + +--- @param camera RID +--- @param size float +--- @param z_near float +--- @param z_far float +function RenderingServer:camera_set_orthogonal(camera, size, z_near, z_far) end + +--- @param camera RID +--- @param size float +--- @param offset Vector2 +--- @param z_near float +--- @param z_far float +function RenderingServer:camera_set_frustum(camera, size, offset, z_near, z_far) end + +--- @param camera RID +--- @param transform Transform3D +function RenderingServer:camera_set_transform(camera, transform) end + +--- @param camera RID +--- @param layers int +function RenderingServer:camera_set_cull_mask(camera, layers) end + +--- @param camera RID +--- @param env RID +function RenderingServer:camera_set_environment(camera, env) end + +--- @param camera RID +--- @param effects RID +function RenderingServer:camera_set_camera_attributes(camera, effects) end + +--- @param camera RID +--- @param compositor RID +function RenderingServer:camera_set_compositor(camera, compositor) end + +--- @param camera RID +--- @param enable bool +function RenderingServer:camera_set_use_vertical_aspect(camera, enable) end + +--- @return RID +function RenderingServer:viewport_create() end + +--- @param viewport RID +--- @param use_xr bool +function RenderingServer:viewport_set_use_xr(viewport, use_xr) end + +--- @param viewport RID +--- @param width int +--- @param height int +function RenderingServer:viewport_set_size(viewport, width, height) end + +--- @param viewport RID +--- @param active bool +function RenderingServer:viewport_set_active(viewport, active) end + +--- @param viewport RID +--- @param parent_viewport RID +function RenderingServer:viewport_set_parent_viewport(viewport, parent_viewport) end + +--- @param viewport RID +--- @param rect Rect2? Default: Rect2(0, 0, 0, 0) +--- @param screen int? Default: 0 +function RenderingServer:viewport_attach_to_screen(viewport, rect, screen) end + +--- @param viewport RID +--- @param enabled bool +function RenderingServer:viewport_set_render_direct_to_screen(viewport, enabled) end + +--- @param viewport RID +--- @param canvas_cull_mask int +function RenderingServer:viewport_set_canvas_cull_mask(viewport, canvas_cull_mask) end + +--- @param viewport RID +--- @param scaling_3d_mode RenderingServer.ViewportScaling3DMode +function RenderingServer:viewport_set_scaling_3d_mode(viewport, scaling_3d_mode) end + +--- @param viewport RID +--- @param scale float +function RenderingServer:viewport_set_scaling_3d_scale(viewport, scale) end + +--- @param viewport RID +--- @param sharpness float +function RenderingServer:viewport_set_fsr_sharpness(viewport, sharpness) end + +--- @param viewport RID +--- @param mipmap_bias float +function RenderingServer:viewport_set_texture_mipmap_bias(viewport, mipmap_bias) end + +--- @param viewport RID +--- @param anisotropic_filtering_level RenderingServer.ViewportAnisotropicFiltering +function RenderingServer:viewport_set_anisotropic_filtering_level(viewport, anisotropic_filtering_level) end + +--- @param viewport RID +--- @param update_mode RenderingServer.ViewportUpdateMode +function RenderingServer:viewport_set_update_mode(viewport, update_mode) end + +--- @param viewport RID +--- @return RenderingServer.ViewportUpdateMode +function RenderingServer:viewport_get_update_mode(viewport) end + +--- @param viewport RID +--- @param clear_mode RenderingServer.ViewportClearMode +function RenderingServer:viewport_set_clear_mode(viewport, clear_mode) end + +--- @param viewport RID +--- @return RID +function RenderingServer:viewport_get_render_target(viewport) end + +--- @param viewport RID +--- @return RID +function RenderingServer:viewport_get_texture(viewport) end + +--- @param viewport RID +--- @param disable bool +function RenderingServer:viewport_set_disable_3d(viewport, disable) end + +--- @param viewport RID +--- @param disable bool +function RenderingServer:viewport_set_disable_2d(viewport, disable) end + +--- @param viewport RID +--- @param mode RenderingServer.ViewportEnvironmentMode +function RenderingServer:viewport_set_environment_mode(viewport, mode) end + +--- @param viewport RID +--- @param camera RID +function RenderingServer:viewport_attach_camera(viewport, camera) end + +--- @param viewport RID +--- @param scenario RID +function RenderingServer:viewport_set_scenario(viewport, scenario) end + +--- @param viewport RID +--- @param canvas RID +function RenderingServer:viewport_attach_canvas(viewport, canvas) end + +--- @param viewport RID +--- @param canvas RID +function RenderingServer:viewport_remove_canvas(viewport, canvas) end + +--- @param viewport RID +--- @param enabled bool +function RenderingServer:viewport_set_snap_2d_transforms_to_pixel(viewport, enabled) end + +--- @param viewport RID +--- @param enabled bool +function RenderingServer:viewport_set_snap_2d_vertices_to_pixel(viewport, enabled) end + +--- @param viewport RID +--- @param filter RenderingServer.CanvasItemTextureFilter +function RenderingServer:viewport_set_default_canvas_item_texture_filter(viewport, filter) end + +--- @param viewport RID +--- @param _repeat RenderingServer.CanvasItemTextureRepeat +function RenderingServer:viewport_set_default_canvas_item_texture_repeat(viewport, _repeat) end + +--- @param viewport RID +--- @param canvas RID +--- @param offset Transform2D +function RenderingServer:viewport_set_canvas_transform(viewport, canvas, offset) end + +--- @param viewport RID +--- @param canvas RID +--- @param layer int +--- @param sublayer int +function RenderingServer:viewport_set_canvas_stacking(viewport, canvas, layer, sublayer) end + +--- @param viewport RID +--- @param enabled bool +function RenderingServer:viewport_set_transparent_background(viewport, enabled) end + +--- @param viewport RID +--- @param transform Transform2D +function RenderingServer:viewport_set_global_canvas_transform(viewport, transform) end + +--- @param viewport RID +--- @param oversize RenderingServer.ViewportSDFOversize +--- @param scale RenderingServer.ViewportSDFScale +function RenderingServer:viewport_set_sdf_oversize_and_scale(viewport, oversize, scale) end + +--- @param viewport RID +--- @param size int +--- @param use_16_bits bool? Default: false +function RenderingServer:viewport_set_positional_shadow_atlas_size(viewport, size, use_16_bits) end + +--- @param viewport RID +--- @param quadrant int +--- @param subdivision int +function RenderingServer:viewport_set_positional_shadow_atlas_quadrant_subdivision(viewport, quadrant, subdivision) end + +--- @param viewport RID +--- @param msaa RenderingServer.ViewportMSAA +function RenderingServer:viewport_set_msaa_3d(viewport, msaa) end + +--- @param viewport RID +--- @param msaa RenderingServer.ViewportMSAA +function RenderingServer:viewport_set_msaa_2d(viewport, msaa) end + +--- @param viewport RID +--- @param enabled bool +function RenderingServer:viewport_set_use_hdr_2d(viewport, enabled) end + +--- @param viewport RID +--- @param mode RenderingServer.ViewportScreenSpaceAA +function RenderingServer:viewport_set_screen_space_aa(viewport, mode) end + +--- @param viewport RID +--- @param enable bool +function RenderingServer:viewport_set_use_taa(viewport, enable) end + +--- @param viewport RID +--- @param enable bool +function RenderingServer:viewport_set_use_debanding(viewport, enable) end + +--- @param viewport RID +--- @param enable bool +function RenderingServer:viewport_set_use_occlusion_culling(viewport, enable) end + +--- @param rays_per_thread int +function RenderingServer:viewport_set_occlusion_rays_per_thread(rays_per_thread) end + +--- @param quality RenderingServer.ViewportOcclusionCullingBuildQuality +function RenderingServer:viewport_set_occlusion_culling_build_quality(quality) end + +--- @param viewport RID +--- @param type RenderingServer.ViewportRenderInfoType +--- @param info RenderingServer.ViewportRenderInfo +--- @return int +function RenderingServer:viewport_get_render_info(viewport, type, info) end + +--- @param viewport RID +--- @param draw RenderingServer.ViewportDebugDraw +function RenderingServer:viewport_set_debug_draw(viewport, draw) end + +--- @param viewport RID +--- @param enable bool +function RenderingServer:viewport_set_measure_render_time(viewport, enable) end + +--- @param viewport RID +--- @return float +function RenderingServer:viewport_get_measured_render_time_cpu(viewport) end + +--- @param viewport RID +--- @return float +function RenderingServer:viewport_get_measured_render_time_gpu(viewport) end + +--- @param viewport RID +--- @param mode RenderingServer.ViewportVRSMode +function RenderingServer:viewport_set_vrs_mode(viewport, mode) end + +--- @param viewport RID +--- @param mode RenderingServer.ViewportVRSUpdateMode +function RenderingServer:viewport_set_vrs_update_mode(viewport, mode) end + +--- @param viewport RID +--- @param texture RID +function RenderingServer:viewport_set_vrs_texture(viewport, texture) end + +--- @return RID +function RenderingServer:sky_create() end + +--- @param sky RID +--- @param radiance_size int +function RenderingServer:sky_set_radiance_size(sky, radiance_size) end + +--- @param sky RID +--- @param mode RenderingServer.SkyMode +function RenderingServer:sky_set_mode(sky, mode) end + +--- @param sky RID +--- @param material RID +function RenderingServer:sky_set_material(sky, material) end + +--- @param sky RID +--- @param energy float +--- @param bake_irradiance bool +--- @param size Vector2i +--- @return Image +function RenderingServer:sky_bake_panorama(sky, energy, bake_irradiance, size) end + +--- @return RID +function RenderingServer:compositor_effect_create() end + +--- @param effect RID +--- @param enabled bool +function RenderingServer:compositor_effect_set_enabled(effect, enabled) end + +--- @param effect RID +--- @param callback_type RenderingServer.CompositorEffectCallbackType +--- @param callback Callable +function RenderingServer:compositor_effect_set_callback(effect, callback_type, callback) end + +--- @param effect RID +--- @param flag RenderingServer.CompositorEffectFlags +--- @param set bool +function RenderingServer:compositor_effect_set_flag(effect, flag, set) end + +--- @return RID +function RenderingServer:compositor_create() end + +--- @param compositor RID +--- @param effects Array[RID] +function RenderingServer:compositor_set_compositor_effects(compositor, effects) end + +--- @return RID +function RenderingServer:environment_create() end + +--- @param env RID +--- @param bg RenderingServer.EnvironmentBG +function RenderingServer:environment_set_background(env, bg) end + +--- @param env RID +--- @param id int +function RenderingServer:environment_set_camera_id(env, id) end + +--- @param env RID +--- @param sky RID +function RenderingServer:environment_set_sky(env, sky) end + +--- @param env RID +--- @param scale float +function RenderingServer:environment_set_sky_custom_fov(env, scale) end + +--- @param env RID +--- @param orientation Basis +function RenderingServer:environment_set_sky_orientation(env, orientation) end + +--- @param env RID +--- @param color Color +function RenderingServer:environment_set_bg_color(env, color) end + +--- @param env RID +--- @param multiplier float +--- @param exposure_value float +function RenderingServer:environment_set_bg_energy(env, multiplier, exposure_value) end + +--- @param env RID +--- @param max_layer int +function RenderingServer:environment_set_canvas_max_layer(env, max_layer) end + +--- @param env RID +--- @param color Color +--- @param ambient RenderingServer.EnvironmentAmbientSource? Default: 0 +--- @param energy float? Default: 1.0 +--- @param sky_contribution float? Default: 0.0 +--- @param reflection_source RenderingServer.EnvironmentReflectionSource? Default: 0 +function RenderingServer:environment_set_ambient_light(env, color, ambient, energy, sky_contribution, reflection_source) end + +--- @param env RID +--- @param enable bool +--- @param levels PackedFloat32Array +--- @param intensity float +--- @param strength float +--- @param mix float +--- @param bloom_threshold float +--- @param blend_mode RenderingServer.EnvironmentGlowBlendMode +--- @param hdr_bleed_threshold float +--- @param hdr_bleed_scale float +--- @param hdr_luminance_cap float +--- @param glow_map_strength float +--- @param glow_map RID +function RenderingServer:environment_set_glow(env, enable, levels, intensity, strength, mix, bloom_threshold, blend_mode, hdr_bleed_threshold, hdr_bleed_scale, hdr_luminance_cap, glow_map_strength, glow_map) end + +--- @param env RID +--- @param tone_mapper RenderingServer.EnvironmentToneMapper +--- @param exposure float +--- @param white float +function RenderingServer:environment_set_tonemap(env, tone_mapper, exposure, white) end + +--- @param env RID +--- @param enable bool +--- @param brightness float +--- @param contrast float +--- @param saturation float +--- @param use_1d_color_correction bool +--- @param color_correction RID +function RenderingServer:environment_set_adjustment(env, enable, brightness, contrast, saturation, use_1d_color_correction, color_correction) end + +--- @param env RID +--- @param enable bool +--- @param max_steps int +--- @param fade_in float +--- @param fade_out float +--- @param depth_tolerance float +function RenderingServer:environment_set_ssr(env, enable, max_steps, fade_in, fade_out, depth_tolerance) end + +--- @param env RID +--- @param enable bool +--- @param radius float +--- @param intensity float +--- @param power float +--- @param detail float +--- @param horizon float +--- @param sharpness float +--- @param light_affect float +--- @param ao_channel_affect float +function RenderingServer:environment_set_ssao(env, enable, radius, intensity, power, detail, horizon, sharpness, light_affect, ao_channel_affect) end + +--- @param env RID +--- @param enable bool +--- @param light_color Color +--- @param light_energy float +--- @param sun_scatter float +--- @param density float +--- @param height float +--- @param height_density float +--- @param aerial_perspective float +--- @param sky_affect float +--- @param fog_mode RenderingServer.EnvironmentFogMode? Default: 0 +function RenderingServer:environment_set_fog(env, enable, light_color, light_energy, sun_scatter, density, height, height_density, aerial_perspective, sky_affect, fog_mode) end + +--- @param env RID +--- @param curve float +--- @param begin float +--- @param _end float +function RenderingServer:environment_set_fog_depth(env, curve, begin, _end) end + +--- @param env RID +--- @param enable bool +--- @param cascades int +--- @param min_cell_size float +--- @param y_scale RenderingServer.EnvironmentSDFGIYScale +--- @param use_occlusion bool +--- @param bounce_feedback float +--- @param read_sky bool +--- @param energy float +--- @param normal_bias float +--- @param probe_bias float +function RenderingServer:environment_set_sdfgi(env, enable, cascades, min_cell_size, y_scale, use_occlusion, bounce_feedback, read_sky, energy, normal_bias, probe_bias) end + +--- @param env RID +--- @param enable bool +--- @param density float +--- @param albedo Color +--- @param emission Color +--- @param emission_energy float +--- @param anisotropy float +--- @param length float +--- @param p_detail_spread float +--- @param gi_inject float +--- @param temporal_reprojection bool +--- @param temporal_reprojection_amount float +--- @param ambient_inject float +--- @param sky_affect float +function RenderingServer:environment_set_volumetric_fog(env, enable, density, albedo, emission, emission_energy, anisotropy, length, p_detail_spread, gi_inject, temporal_reprojection, temporal_reprojection_amount, ambient_inject, sky_affect) end + +--- @param enable bool +function RenderingServer:environment_glow_set_use_bicubic_upscale(enable) end + +--- @param quality RenderingServer.EnvironmentSSRRoughnessQuality +function RenderingServer:environment_set_ssr_roughness_quality(quality) end + +--- @param quality RenderingServer.EnvironmentSSAOQuality +--- @param half_size bool +--- @param adaptive_target float +--- @param blur_passes int +--- @param fadeout_from float +--- @param fadeout_to float +function RenderingServer:environment_set_ssao_quality(quality, half_size, adaptive_target, blur_passes, fadeout_from, fadeout_to) end + +--- @param quality RenderingServer.EnvironmentSSILQuality +--- @param half_size bool +--- @param adaptive_target float +--- @param blur_passes int +--- @param fadeout_from float +--- @param fadeout_to float +function RenderingServer:environment_set_ssil_quality(quality, half_size, adaptive_target, blur_passes, fadeout_from, fadeout_to) end + +--- @param ray_count RenderingServer.EnvironmentSDFGIRayCount +function RenderingServer:environment_set_sdfgi_ray_count(ray_count) end + +--- @param frames RenderingServer.EnvironmentSDFGIFramesToConverge +function RenderingServer:environment_set_sdfgi_frames_to_converge(frames) end + +--- @param frames RenderingServer.EnvironmentSDFGIFramesToUpdateLight +function RenderingServer:environment_set_sdfgi_frames_to_update_light(frames) end + +--- @param size int +--- @param depth int +function RenderingServer:environment_set_volumetric_fog_volume_size(size, depth) end + +--- @param active bool +function RenderingServer:environment_set_volumetric_fog_filter_active(active) end + +--- @param environment RID +--- @param bake_irradiance bool +--- @param size Vector2i +--- @return Image +function RenderingServer:environment_bake_panorama(environment, bake_irradiance, size) end + +--- @param enable bool +--- @param amount float +--- @param limit float +function RenderingServer:screen_space_roughness_limiter_set_active(enable, amount, limit) end + +--- @param quality RenderingServer.SubSurfaceScatteringQuality +function RenderingServer:sub_surface_scattering_set_quality(quality) end + +--- @param scale float +--- @param depth_scale float +function RenderingServer:sub_surface_scattering_set_scale(scale, depth_scale) end + +--- @return RID +function RenderingServer:camera_attributes_create() end + +--- @param quality RenderingServer.DOFBlurQuality +--- @param use_jitter bool +function RenderingServer:camera_attributes_set_dof_blur_quality(quality, use_jitter) end + +--- @param shape RenderingServer.DOFBokehShape +function RenderingServer:camera_attributes_set_dof_blur_bokeh_shape(shape) end + +--- @param camera_attributes RID +--- @param far_enable bool +--- @param far_distance float +--- @param far_transition float +--- @param near_enable bool +--- @param near_distance float +--- @param near_transition float +--- @param amount float +function RenderingServer:camera_attributes_set_dof_blur(camera_attributes, far_enable, far_distance, far_transition, near_enable, near_distance, near_transition, amount) end + +--- @param camera_attributes RID +--- @param multiplier float +--- @param normalization float +function RenderingServer:camera_attributes_set_exposure(camera_attributes, multiplier, normalization) end + +--- @param camera_attributes RID +--- @param enable bool +--- @param min_sensitivity float +--- @param max_sensitivity float +--- @param speed float +--- @param scale float +function RenderingServer:camera_attributes_set_auto_exposure(camera_attributes, enable, min_sensitivity, max_sensitivity, speed, scale) end + +--- @return RID +function RenderingServer:scenario_create() end + +--- @param scenario RID +--- @param environment RID +function RenderingServer:scenario_set_environment(scenario, environment) end + +--- @param scenario RID +--- @param environment RID +function RenderingServer:scenario_set_fallback_environment(scenario, environment) end + +--- @param scenario RID +--- @param effects RID +function RenderingServer:scenario_set_camera_attributes(scenario, effects) end + +--- @param scenario RID +--- @param compositor RID +function RenderingServer:scenario_set_compositor(scenario, compositor) end + +--- @param base RID +--- @param scenario RID +--- @return RID +function RenderingServer:instance_create2(base, scenario) end + +--- @return RID +function RenderingServer:instance_create() end + +--- @param instance RID +--- @param base RID +function RenderingServer:instance_set_base(instance, base) end + +--- @param instance RID +--- @param scenario RID +function RenderingServer:instance_set_scenario(instance, scenario) end + +--- @param instance RID +--- @param mask int +function RenderingServer:instance_set_layer_mask(instance, mask) end + +--- @param instance RID +--- @param sorting_offset float +--- @param use_aabb_center bool +function RenderingServer:instance_set_pivot_data(instance, sorting_offset, use_aabb_center) end + +--- @param instance RID +--- @param transform Transform3D +function RenderingServer:instance_set_transform(instance, transform) end + +--- @param instance RID +--- @param id int +function RenderingServer:instance_attach_object_instance_id(instance, id) end + +--- @param instance RID +--- @param shape int +--- @param weight float +function RenderingServer:instance_set_blend_shape_weight(instance, shape, weight) end + +--- @param instance RID +--- @param surface int +--- @param material RID +function RenderingServer:instance_set_surface_override_material(instance, surface, material) end + +--- @param instance RID +--- @param visible bool +function RenderingServer:instance_set_visible(instance, visible) end + +--- @param instance RID +--- @param transparency float +function RenderingServer:instance_geometry_set_transparency(instance, transparency) end + +--- @param instance RID +function RenderingServer:instance_teleport(instance) end + +--- @param instance RID +--- @param aabb AABB +function RenderingServer:instance_set_custom_aabb(instance, aabb) end + +--- @param instance RID +--- @param skeleton RID +function RenderingServer:instance_attach_skeleton(instance, skeleton) end + +--- @param instance RID +--- @param margin float +function RenderingServer:instance_set_extra_visibility_margin(instance, margin) end + +--- @param instance RID +--- @param parent RID +function RenderingServer:instance_set_visibility_parent(instance, parent) end + +--- @param instance RID +--- @param enabled bool +function RenderingServer:instance_set_ignore_culling(instance, enabled) end + +--- @param instance RID +--- @param flag RenderingServer.InstanceFlags +--- @param enabled bool +function RenderingServer:instance_geometry_set_flag(instance, flag, enabled) end + +--- @param instance RID +--- @param shadow_casting_setting RenderingServer.ShadowCastingSetting +function RenderingServer:instance_geometry_set_cast_shadows_setting(instance, shadow_casting_setting) end + +--- @param instance RID +--- @param material RID +function RenderingServer:instance_geometry_set_material_override(instance, material) end + +--- @param instance RID +--- @param material RID +function RenderingServer:instance_geometry_set_material_overlay(instance, material) end + +--- @param instance RID +--- @param min float +--- @param max float +--- @param min_margin float +--- @param max_margin float +--- @param fade_mode RenderingServer.VisibilityRangeFadeMode +function RenderingServer:instance_geometry_set_visibility_range(instance, min, max, min_margin, max_margin, fade_mode) end + +--- @param instance RID +--- @param lightmap RID +--- @param lightmap_uv_scale Rect2 +--- @param lightmap_slice int +function RenderingServer:instance_geometry_set_lightmap(instance, lightmap, lightmap_uv_scale, lightmap_slice) end + +--- @param instance RID +--- @param lod_bias float +function RenderingServer:instance_geometry_set_lod_bias(instance, lod_bias) end + +--- @param instance RID +--- @param parameter StringName +--- @param value any +function RenderingServer:instance_geometry_set_shader_parameter(instance, parameter, value) end + +--- @param instance RID +--- @param parameter StringName +--- @return any +function RenderingServer:instance_geometry_get_shader_parameter(instance, parameter) end + +--- @param instance RID +--- @param parameter StringName +--- @return any +function RenderingServer:instance_geometry_get_shader_parameter_default_value(instance, parameter) end + +--- @param instance RID +--- @return Array[Dictionary] +function RenderingServer:instance_geometry_get_shader_parameter_list(instance) end + +--- @param aabb AABB +--- @param scenario RID? Default: RID() +--- @return PackedInt64Array +function RenderingServer:instances_cull_aabb(aabb, scenario) end + +--- @param from Vector3 +--- @param to Vector3 +--- @param scenario RID? Default: RID() +--- @return PackedInt64Array +function RenderingServer:instances_cull_ray(from, to, scenario) end + +--- @param convex Array[Plane] +--- @param scenario RID? Default: RID() +--- @return PackedInt64Array +function RenderingServer:instances_cull_convex(convex, scenario) end + +--- @param base RID +--- @param material_overrides Array[RID] +--- @param image_size Vector2i +--- @return Array[Image] +function RenderingServer:bake_render_uv2(base, material_overrides, image_size) end + +--- @return RID +function RenderingServer:canvas_create() end + +--- @param canvas RID +--- @param item RID +--- @param mirroring Vector2 +function RenderingServer:canvas_set_item_mirroring(canvas, item, mirroring) end + +--- @param item RID +--- @param repeat_size Vector2 +--- @param repeat_times int +function RenderingServer:canvas_set_item_repeat(item, repeat_size, repeat_times) end + +--- @param canvas RID +--- @param color Color +function RenderingServer:canvas_set_modulate(canvas, color) end + +--- @param disable bool +function RenderingServer:canvas_set_disable_scale(disable) end + +--- @return RID +function RenderingServer:canvas_texture_create() end + +--- @param canvas_texture RID +--- @param channel RenderingServer.CanvasTextureChannel +--- @param texture RID +function RenderingServer:canvas_texture_set_channel(canvas_texture, channel, texture) end + +--- @param canvas_texture RID +--- @param base_color Color +--- @param shininess float +function RenderingServer:canvas_texture_set_shading_parameters(canvas_texture, base_color, shininess) end + +--- @param canvas_texture RID +--- @param filter RenderingServer.CanvasItemTextureFilter +function RenderingServer:canvas_texture_set_texture_filter(canvas_texture, filter) end + +--- @param canvas_texture RID +--- @param _repeat RenderingServer.CanvasItemTextureRepeat +function RenderingServer:canvas_texture_set_texture_repeat(canvas_texture, _repeat) end + +--- @return RID +function RenderingServer:canvas_item_create() end + +--- @param item RID +--- @param parent RID +function RenderingServer:canvas_item_set_parent(item, parent) end + +--- @param item RID +--- @param filter RenderingServer.CanvasItemTextureFilter +function RenderingServer:canvas_item_set_default_texture_filter(item, filter) end + +--- @param item RID +--- @param _repeat RenderingServer.CanvasItemTextureRepeat +function RenderingServer:canvas_item_set_default_texture_repeat(item, _repeat) end + +--- @param item RID +--- @param visible bool +function RenderingServer:canvas_item_set_visible(item, visible) end + +--- @param item RID +--- @param mask int +function RenderingServer:canvas_item_set_light_mask(item, mask) end + +--- @param item RID +--- @param visibility_layer int +function RenderingServer:canvas_item_set_visibility_layer(item, visibility_layer) end + +--- @param item RID +--- @param transform Transform2D +function RenderingServer:canvas_item_set_transform(item, transform) end + +--- @param item RID +--- @param clip bool +function RenderingServer:canvas_item_set_clip(item, clip) end + +--- @param item RID +--- @param enabled bool +function RenderingServer:canvas_item_set_distance_field_mode(item, enabled) end + +--- @param item RID +--- @param use_custom_rect bool +--- @param rect Rect2? Default: Rect2(0, 0, 0, 0) +function RenderingServer:canvas_item_set_custom_rect(item, use_custom_rect, rect) end + +--- @param item RID +--- @param color Color +function RenderingServer:canvas_item_set_modulate(item, color) end + +--- @param item RID +--- @param color Color +function RenderingServer:canvas_item_set_self_modulate(item, color) end + +--- @param item RID +--- @param enabled bool +function RenderingServer:canvas_item_set_draw_behind_parent(item, enabled) end + +--- @param item RID +--- @param interpolated bool +function RenderingServer:canvas_item_set_interpolated(item, interpolated) end + +--- @param item RID +function RenderingServer:canvas_item_reset_physics_interpolation(item) end + +--- @param item RID +--- @param transform Transform2D +function RenderingServer:canvas_item_transform_physics_interpolation(item, transform) end + +--- @param item RID +--- @param from Vector2 +--- @param to Vector2 +--- @param color Color +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function RenderingServer:canvas_item_add_line(item, from, to, color, width, antialiased) end + +--- @param item RID +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function RenderingServer:canvas_item_add_polyline(item, points, colors, width, antialiased) end + +--- @param item RID +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param width float? Default: -1.0 +--- @param antialiased bool? Default: false +function RenderingServer:canvas_item_add_multiline(item, points, colors, width, antialiased) end + +--- @param item RID +--- @param rect Rect2 +--- @param color Color +--- @param antialiased bool? Default: false +function RenderingServer:canvas_item_add_rect(item, rect, color, antialiased) end + +--- @param item RID +--- @param pos Vector2 +--- @param radius float +--- @param color Color +--- @param antialiased bool? Default: false +function RenderingServer:canvas_item_add_circle(item, pos, radius, color, antialiased) end + +--- @param item RID +--- @param rect Rect2 +--- @param texture RID +--- @param tile bool? Default: false +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +function RenderingServer:canvas_item_add_texture_rect(item, rect, texture, tile, modulate, transpose) end + +--- @param item RID +--- @param rect Rect2 +--- @param texture RID +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param outline_size int? Default: 0 +--- @param px_range float? Default: 1.0 +--- @param scale float? Default: 1.0 +function RenderingServer:canvas_item_add_msdf_texture_rect_region(item, rect, texture, src_rect, modulate, outline_size, px_range, scale) end + +--- @param item RID +--- @param rect Rect2 +--- @param texture RID +--- @param src_rect Rect2 +--- @param modulate Color +function RenderingServer:canvas_item_add_lcd_texture_rect_region(item, rect, texture, src_rect, modulate) end + +--- @param item RID +--- @param rect Rect2 +--- @param texture RID +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +--- @param clip_uv bool? Default: true +function RenderingServer:canvas_item_add_texture_rect_region(item, rect, texture, src_rect, modulate, transpose, clip_uv) end + +--- @param item RID +--- @param rect Rect2 +--- @param source Rect2 +--- @param texture RID +--- @param topleft Vector2 +--- @param bottomright Vector2 +--- @param x_axis_mode RenderingServer.NinePatchAxisMode? Default: 0 +--- @param y_axis_mode RenderingServer.NinePatchAxisMode? Default: 0 +--- @param draw_center bool? Default: true +--- @param modulate Color? Default: Color(1, 1, 1, 1) +function RenderingServer:canvas_item_add_nine_patch(item, rect, source, texture, topleft, bottomright, x_axis_mode, y_axis_mode, draw_center, modulate) end + +--- @param item RID +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param uvs PackedVector2Array +--- @param texture RID +function RenderingServer:canvas_item_add_primitive(item, points, colors, uvs, texture) end + +--- @param item RID +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param uvs PackedVector2Array? Default: PackedVector2Array() +--- @param texture RID? Default: RID() +function RenderingServer:canvas_item_add_polygon(item, points, colors, uvs, texture) end + +--- @param item RID +--- @param indices PackedInt32Array +--- @param points PackedVector2Array +--- @param colors PackedColorArray +--- @param uvs PackedVector2Array? Default: PackedVector2Array() +--- @param bones PackedInt32Array? Default: PackedInt32Array() +--- @param weights PackedFloat32Array? Default: PackedFloat32Array() +--- @param texture RID? Default: RID() +--- @param count int? Default: -1 +function RenderingServer:canvas_item_add_triangle_array(item, indices, points, colors, uvs, bones, weights, texture, count) end + +--- @param item RID +--- @param mesh RID +--- @param transform Transform2D? Default: Transform2D(1, 0, 0, 1, 0, 0) +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param texture RID? Default: RID() +function RenderingServer:canvas_item_add_mesh(item, mesh, transform, modulate, texture) end + +--- @param item RID +--- @param mesh RID +--- @param texture RID? Default: RID() +function RenderingServer:canvas_item_add_multimesh(item, mesh, texture) end + +--- @param item RID +--- @param particles RID +--- @param texture RID +function RenderingServer:canvas_item_add_particles(item, particles, texture) end + +--- @param item RID +--- @param transform Transform2D +function RenderingServer:canvas_item_add_set_transform(item, transform) end + +--- @param item RID +--- @param ignore bool +function RenderingServer:canvas_item_add_clip_ignore(item, ignore) end + +--- @param item RID +--- @param animation_length float +--- @param slice_begin float +--- @param slice_end float +--- @param offset float? Default: 0.0 +function RenderingServer:canvas_item_add_animation_slice(item, animation_length, slice_begin, slice_end, offset) end + +--- @param item RID +--- @param enabled bool +function RenderingServer:canvas_item_set_sort_children_by_y(item, enabled) end + +--- @param item RID +--- @param z_index int +function RenderingServer:canvas_item_set_z_index(item, z_index) end + +--- @param item RID +--- @param enabled bool +function RenderingServer:canvas_item_set_z_as_relative_to_parent(item, enabled) end + +--- @param item RID +--- @param enabled bool +--- @param rect Rect2 +function RenderingServer:canvas_item_set_copy_to_backbuffer(item, enabled, rect) end + +--- @param item RID +--- @param skeleton RID +function RenderingServer:canvas_item_attach_skeleton(item, skeleton) end + +--- @param item RID +function RenderingServer:canvas_item_clear(item) end + +--- @param item RID +--- @param index int +function RenderingServer:canvas_item_set_draw_index(item, index) end + +--- @param item RID +--- @param material RID +function RenderingServer:canvas_item_set_material(item, material) end + +--- @param item RID +--- @param enabled bool +function RenderingServer:canvas_item_set_use_parent_material(item, enabled) end + +--- @param instance RID +--- @param parameter StringName +--- @param value any +function RenderingServer:canvas_item_set_instance_shader_parameter(instance, parameter, value) end + +--- @param instance RID +--- @param parameter StringName +--- @return any +function RenderingServer:canvas_item_get_instance_shader_parameter(instance, parameter) end + +--- @param instance RID +--- @param parameter StringName +--- @return any +function RenderingServer:canvas_item_get_instance_shader_parameter_default_value(instance, parameter) end + +--- @param instance RID +--- @return Array[Dictionary] +function RenderingServer:canvas_item_get_instance_shader_parameter_list(instance) end + +--- @param item RID +--- @param enable bool +--- @param area Rect2 +--- @param enter_callable Callable +--- @param exit_callable Callable +function RenderingServer:canvas_item_set_visibility_notifier(item, enable, area, enter_callable, exit_callable) end + +--- @param item RID +--- @param mode RenderingServer.CanvasGroupMode +--- @param clear_margin float? Default: 5.0 +--- @param fit_empty bool? Default: false +--- @param fit_margin float? Default: 0.0 +--- @param blur_mipmaps bool? Default: false +function RenderingServer:canvas_item_set_canvas_group_mode(item, mode, clear_margin, fit_empty, fit_margin, blur_mipmaps) end + +--- @param item RID +--- @return Rect2 +function RenderingServer:debug_canvas_item_get_rect(item) end + +--- @return RID +function RenderingServer:canvas_light_create() end + +--- @param light RID +--- @param canvas RID +function RenderingServer:canvas_light_attach_to_canvas(light, canvas) end + +--- @param light RID +--- @param enabled bool +function RenderingServer:canvas_light_set_enabled(light, enabled) end + +--- @param light RID +--- @param scale float +function RenderingServer:canvas_light_set_texture_scale(light, scale) end + +--- @param light RID +--- @param transform Transform2D +function RenderingServer:canvas_light_set_transform(light, transform) end + +--- @param light RID +--- @param texture RID +function RenderingServer:canvas_light_set_texture(light, texture) end + +--- @param light RID +--- @param offset Vector2 +function RenderingServer:canvas_light_set_texture_offset(light, offset) end + +--- @param light RID +--- @param color Color +function RenderingServer:canvas_light_set_color(light, color) end + +--- @param light RID +--- @param height float +function RenderingServer:canvas_light_set_height(light, height) end + +--- @param light RID +--- @param energy float +function RenderingServer:canvas_light_set_energy(light, energy) end + +--- @param light RID +--- @param min_z int +--- @param max_z int +function RenderingServer:canvas_light_set_z_range(light, min_z, max_z) end + +--- @param light RID +--- @param min_layer int +--- @param max_layer int +function RenderingServer:canvas_light_set_layer_range(light, min_layer, max_layer) end + +--- @param light RID +--- @param mask int +function RenderingServer:canvas_light_set_item_cull_mask(light, mask) end + +--- @param light RID +--- @param mask int +function RenderingServer:canvas_light_set_item_shadow_cull_mask(light, mask) end + +--- @param light RID +--- @param mode RenderingServer.CanvasLightMode +function RenderingServer:canvas_light_set_mode(light, mode) end + +--- @param light RID +--- @param enabled bool +function RenderingServer:canvas_light_set_shadow_enabled(light, enabled) end + +--- @param light RID +--- @param filter RenderingServer.CanvasLightShadowFilter +function RenderingServer:canvas_light_set_shadow_filter(light, filter) end + +--- @param light RID +--- @param color Color +function RenderingServer:canvas_light_set_shadow_color(light, color) end + +--- @param light RID +--- @param smooth float +function RenderingServer:canvas_light_set_shadow_smooth(light, smooth) end + +--- @param light RID +--- @param mode RenderingServer.CanvasLightBlendMode +function RenderingServer:canvas_light_set_blend_mode(light, mode) end + +--- @param light RID +--- @param interpolated bool +function RenderingServer:canvas_light_set_interpolated(light, interpolated) end + +--- @param light RID +function RenderingServer:canvas_light_reset_physics_interpolation(light) end + +--- @param light RID +--- @param transform Transform2D +function RenderingServer:canvas_light_transform_physics_interpolation(light, transform) end + +--- @return RID +function RenderingServer:canvas_light_occluder_create() end + +--- @param occluder RID +--- @param canvas RID +function RenderingServer:canvas_light_occluder_attach_to_canvas(occluder, canvas) end + +--- @param occluder RID +--- @param enabled bool +function RenderingServer:canvas_light_occluder_set_enabled(occluder, enabled) end + +--- @param occluder RID +--- @param polygon RID +function RenderingServer:canvas_light_occluder_set_polygon(occluder, polygon) end + +--- @param occluder RID +--- @param enable bool +function RenderingServer:canvas_light_occluder_set_as_sdf_collision(occluder, enable) end + +--- @param occluder RID +--- @param transform Transform2D +function RenderingServer:canvas_light_occluder_set_transform(occluder, transform) end + +--- @param occluder RID +--- @param mask int +function RenderingServer:canvas_light_occluder_set_light_mask(occluder, mask) end + +--- @param occluder RID +--- @param interpolated bool +function RenderingServer:canvas_light_occluder_set_interpolated(occluder, interpolated) end + +--- @param occluder RID +function RenderingServer:canvas_light_occluder_reset_physics_interpolation(occluder) end + +--- @param occluder RID +--- @param transform Transform2D +function RenderingServer:canvas_light_occluder_transform_physics_interpolation(occluder, transform) end + +--- @return RID +function RenderingServer:canvas_occluder_polygon_create() end + +--- @param occluder_polygon RID +--- @param shape PackedVector2Array +--- @param closed bool +function RenderingServer:canvas_occluder_polygon_set_shape(occluder_polygon, shape, closed) end + +--- @param occluder_polygon RID +--- @param mode RenderingServer.CanvasOccluderPolygonCullMode +function RenderingServer:canvas_occluder_polygon_set_cull_mode(occluder_polygon, mode) end + +--- @param size int +function RenderingServer:canvas_set_shadow_texture_size(size) end + +--- @param name StringName +--- @param type RenderingServer.GlobalShaderParameterType +--- @param default_value any +function RenderingServer:global_shader_parameter_add(name, type, default_value) end + +--- @param name StringName +function RenderingServer:global_shader_parameter_remove(name) end + +--- @return Array[StringName] +function RenderingServer:global_shader_parameter_get_list() end + +--- @param name StringName +--- @param value any +function RenderingServer:global_shader_parameter_set(name, value) end + +--- @param name StringName +--- @param value any +function RenderingServer:global_shader_parameter_set_override(name, value) end + +--- @param name StringName +--- @return any +function RenderingServer:global_shader_parameter_get(name) end + +--- @param name StringName +--- @return RenderingServer.GlobalShaderParameterType +function RenderingServer:global_shader_parameter_get_type(name) end + +--- @param rid RID +function RenderingServer:free_rid(rid) end + +--- @param callable Callable +function RenderingServer:request_frame_drawn_callback(callable) end + +--- @return bool +function RenderingServer:has_changed() end + +--- @param info RenderingServer.RenderingInfo +--- @return int +function RenderingServer:get_rendering_info(info) end + +--- @return String +function RenderingServer:get_video_adapter_name() end + +--- @return String +function RenderingServer:get_video_adapter_vendor() end + +--- @return RenderingDevice.DeviceType +function RenderingServer:get_video_adapter_type() end + +--- @return String +function RenderingServer:get_video_adapter_api_version() end + +--- @return String +function RenderingServer:get_current_rendering_driver_name() end + +--- @return String +function RenderingServer:get_current_rendering_method() end + +--- @param latitudes int +--- @param longitudes int +--- @param radius float +--- @return RID +function RenderingServer:make_sphere_mesh(latitudes, longitudes, radius) end + +--- @return RID +function RenderingServer:get_test_cube() end + +--- @return RID +function RenderingServer:get_test_texture() end + +--- @return RID +function RenderingServer:get_white_texture() end + +--- @param image Image +--- @param color Color +--- @param scale bool +--- @param use_filter bool? Default: true +function RenderingServer:set_boot_image(image, color, scale, use_filter) end + +--- @return Color +function RenderingServer:get_default_clear_color() end + +--- @param color Color +function RenderingServer:set_default_clear_color(color) end + +--- @param feature String +--- @return bool +function RenderingServer:has_os_feature(feature) end + +--- @param generate bool +function RenderingServer:set_debug_generate_wireframes(generate) end + +--- @return bool +function RenderingServer:is_render_loop_enabled() end + +--- @param enabled bool +function RenderingServer:set_render_loop_enabled(enabled) end + +--- @return float +function RenderingServer:get_frame_setup_time_cpu() end + +function RenderingServer:force_sync() end + +--- @param swap_buffers bool? Default: true +--- @param frame_step float? Default: 0.0 +function RenderingServer:force_draw(swap_buffers, frame_step) end + +--- @return RenderingDevice +function RenderingServer:get_rendering_device() end + +--- @return RenderingDevice +function RenderingServer:create_local_rendering_device() end + +--- @return bool +function RenderingServer:is_on_render_thread() end + +--- @param callable Callable +function RenderingServer:call_on_render_thread(callable) end + +--- @param feature RenderingServer.Features +--- @return bool +function RenderingServer:has_feature(feature) end + + +----------------------------------------------------------- +-- Resource +----------------------------------------------------------- + +--- @class Resource: RefCounted, { [string]: any } +--- @field resource_local_to_scene bool +--- @field resource_path String +--- @field resource_name String +--- @field resource_scene_unique_id String +Resource = {} + +--- @return Resource +function Resource:new() end + +--- @alias Resource.DeepDuplicateMode `Resource.DEEP_DUPLICATE_NONE` | `Resource.DEEP_DUPLICATE_INTERNAL` | `Resource.DEEP_DUPLICATE_ALL` +Resource.DEEP_DUPLICATE_NONE = 0 +Resource.DEEP_DUPLICATE_INTERNAL = 1 +Resource.DEEP_DUPLICATE_ALL = 2 + +Resource.changed = Signal() +Resource.setup_local_to_scene_requested = Signal() + +function Resource:_setup_local_to_scene() end + +--- @return RID +function Resource:_get_rid() end + +function Resource:_reset_state() end + +--- @param path String +function Resource:_set_path_cache(path) end + +--- @param path String +function Resource:set_path(path) end + +--- @param path String +function Resource:take_over_path(path) end + +--- @return String +function Resource:get_path() end + +--- @param path String +function Resource:set_path_cache(path) end + +--- @param name String +function Resource:set_name(name) end + +--- @return String +function Resource:get_name() end + +--- @return RID +function Resource:get_rid() end + +--- @param enable bool +function Resource:set_local_to_scene(enable) end + +--- @return bool +function Resource:is_local_to_scene() end + +--- @return Node +function Resource:get_local_scene() end + +function Resource:setup_local_to_scene() end + +function Resource:reset_state() end + +--- @param path String +--- @param id String +function Resource:set_id_for_path(path, id) end + +--- @param path String +--- @return String +function Resource:get_id_for_path(path) end + +--- @return bool +function Resource:is_built_in() end + +--- static +--- @return String +function Resource:generate_scene_unique_id() end + +--- @param id String +function Resource:set_scene_unique_id(id) end + +--- @return String +function Resource:get_scene_unique_id() end + +function Resource:emit_changed() end + +--- @param deep bool? Default: false +--- @return Resource +function Resource:duplicate(deep) end + +--- @param deep_subresources_mode Resource.DeepDuplicateMode? Default: 1 +--- @return Resource +function Resource:duplicate_deep(deep_subresources_mode) end + + +----------------------------------------------------------- +-- ResourceFormatLoader +----------------------------------------------------------- + +--- @class ResourceFormatLoader: RefCounted, { [string]: any } +ResourceFormatLoader = {} + +--- @return ResourceFormatLoader +function ResourceFormatLoader:new() end + +--- @alias ResourceFormatLoader.CacheMode `ResourceFormatLoader.CACHE_MODE_IGNORE` | `ResourceFormatLoader.CACHE_MODE_REUSE` | `ResourceFormatLoader.CACHE_MODE_REPLACE` | `ResourceFormatLoader.CACHE_MODE_IGNORE_DEEP` | `ResourceFormatLoader.CACHE_MODE_REPLACE_DEEP` +ResourceFormatLoader.CACHE_MODE_IGNORE = 0 +ResourceFormatLoader.CACHE_MODE_REUSE = 1 +ResourceFormatLoader.CACHE_MODE_REPLACE = 2 +ResourceFormatLoader.CACHE_MODE_IGNORE_DEEP = 3 +ResourceFormatLoader.CACHE_MODE_REPLACE_DEEP = 4 + +--- @return PackedStringArray +function ResourceFormatLoader:_get_recognized_extensions() end + +--- @param path String +--- @param type StringName +--- @return bool +function ResourceFormatLoader:_recognize_path(path, type) end + +--- @param type StringName +--- @return bool +function ResourceFormatLoader:_handles_type(type) end + +--- @param path String +--- @return String +function ResourceFormatLoader:_get_resource_type(path) end + +--- @param path String +--- @return String +function ResourceFormatLoader:_get_resource_script_class(path) end + +--- @param path String +--- @return int +function ResourceFormatLoader:_get_resource_uid(path) end + +--- @param path String +--- @param add_types bool +--- @return PackedStringArray +function ResourceFormatLoader:_get_dependencies(path, add_types) end + +--- @param path String +--- @param renames Dictionary +--- @return Error +function ResourceFormatLoader:_rename_dependencies(path, renames) end + +--- @param path String +--- @return bool +function ResourceFormatLoader:_exists(path) end + +--- @param path String +--- @return PackedStringArray +function ResourceFormatLoader:_get_classes_used(path) end + +--- @param path String +--- @param original_path String +--- @param use_sub_threads bool +--- @param cache_mode int +--- @return any +function ResourceFormatLoader:_load(path, original_path, use_sub_threads, cache_mode) end + + +----------------------------------------------------------- +-- ResourceFormatSaver +----------------------------------------------------------- + +--- @class ResourceFormatSaver: RefCounted, { [string]: any } +ResourceFormatSaver = {} + +--- @return ResourceFormatSaver +function ResourceFormatSaver:new() end + +--- @param resource Resource +--- @param path String +--- @param flags int +--- @return Error +function ResourceFormatSaver:_save(resource, path, flags) end + +--- @param path String +--- @param uid int +--- @return Error +function ResourceFormatSaver:_set_uid(path, uid) end + +--- @param resource Resource +--- @return bool +function ResourceFormatSaver:_recognize(resource) end + +--- @param resource Resource +--- @return PackedStringArray +function ResourceFormatSaver:_get_recognized_extensions(resource) end + +--- @param resource Resource +--- @param path String +--- @return bool +function ResourceFormatSaver:_recognize_path(resource, path) end + + +----------------------------------------------------------- +-- ResourceImporter +----------------------------------------------------------- + +--- @class ResourceImporter: RefCounted, { [string]: any } +ResourceImporter = {} + +--- @alias ResourceImporter.ImportOrder `ResourceImporter.IMPORT_ORDER_DEFAULT` | `ResourceImporter.IMPORT_ORDER_SCENE` +ResourceImporter.IMPORT_ORDER_DEFAULT = 0 +ResourceImporter.IMPORT_ORDER_SCENE = 100 + +--- @param path String +--- @return PackedStringArray +function ResourceImporter:_get_build_dependencies(path) end + + +----------------------------------------------------------- +-- ResourceImporterBMFont +----------------------------------------------------------- + +--- @class ResourceImporterBMFont: ResourceImporter, { [string]: any } +ResourceImporterBMFont = {} + +--- @return ResourceImporterBMFont +function ResourceImporterBMFont:new() end + + +----------------------------------------------------------- +-- ResourceImporterBitMap +----------------------------------------------------------- + +--- @class ResourceImporterBitMap: ResourceImporter, { [string]: any } +ResourceImporterBitMap = {} + +--- @return ResourceImporterBitMap +function ResourceImporterBitMap:new() end + + +----------------------------------------------------------- +-- ResourceImporterCSVTranslation +----------------------------------------------------------- + +--- @class ResourceImporterCSVTranslation: ResourceImporter, { [string]: any } +ResourceImporterCSVTranslation = {} + +--- @return ResourceImporterCSVTranslation +function ResourceImporterCSVTranslation:new() end + + +----------------------------------------------------------- +-- ResourceImporterDynamicFont +----------------------------------------------------------- + +--- @class ResourceImporterDynamicFont: ResourceImporter, { [string]: any } +ResourceImporterDynamicFont = {} + +--- @return ResourceImporterDynamicFont +function ResourceImporterDynamicFont:new() end + + +----------------------------------------------------------- +-- ResourceImporterImage +----------------------------------------------------------- + +--- @class ResourceImporterImage: ResourceImporter, { [string]: any } +ResourceImporterImage = {} + +--- @return ResourceImporterImage +function ResourceImporterImage:new() end + + +----------------------------------------------------------- +-- ResourceImporterImageFont +----------------------------------------------------------- + +--- @class ResourceImporterImageFont: ResourceImporter, { [string]: any } +ResourceImporterImageFont = {} + +--- @return ResourceImporterImageFont +function ResourceImporterImageFont:new() end + + +----------------------------------------------------------- +-- ResourceImporterLayeredTexture +----------------------------------------------------------- + +--- @class ResourceImporterLayeredTexture: ResourceImporter, { [string]: any } +ResourceImporterLayeredTexture = {} + +--- @return ResourceImporterLayeredTexture +function ResourceImporterLayeredTexture:new() end + + +----------------------------------------------------------- +-- ResourceImporterMP3 +----------------------------------------------------------- + +--- @class ResourceImporterMP3: ResourceImporter, { [string]: any } +ResourceImporterMP3 = {} + +--- @return ResourceImporterMP3 +function ResourceImporterMP3:new() end + + +----------------------------------------------------------- +-- ResourceImporterOBJ +----------------------------------------------------------- + +--- @class ResourceImporterOBJ: ResourceImporter, { [string]: any } +ResourceImporterOBJ = {} + +--- @return ResourceImporterOBJ +function ResourceImporterOBJ:new() end + + +----------------------------------------------------------- +-- ResourceImporterOggVorbis +----------------------------------------------------------- + +--- @class ResourceImporterOggVorbis: ResourceImporter, { [string]: any } +ResourceImporterOggVorbis = {} + +--- @return ResourceImporterOggVorbis +function ResourceImporterOggVorbis:new() end + +--- static +--- @param stream_data PackedByteArray +--- @return AudioStreamOggVorbis +function ResourceImporterOggVorbis:load_from_buffer(stream_data) end + +--- static +--- @param path String +--- @return AudioStreamOggVorbis +function ResourceImporterOggVorbis:load_from_file(path) end + + +----------------------------------------------------------- +-- ResourceImporterSVG +----------------------------------------------------------- + +--- @class ResourceImporterSVG: ResourceImporter, { [string]: any } +ResourceImporterSVG = {} + +--- @return ResourceImporterSVG +function ResourceImporterSVG:new() end + + +----------------------------------------------------------- +-- ResourceImporterScene +----------------------------------------------------------- + +--- @class ResourceImporterScene: ResourceImporter, { [string]: any } +ResourceImporterScene = {} + +--- @return ResourceImporterScene +function ResourceImporterScene:new() end + + +----------------------------------------------------------- +-- ResourceImporterShaderFile +----------------------------------------------------------- + +--- @class ResourceImporterShaderFile: ResourceImporter, { [string]: any } +ResourceImporterShaderFile = {} + +--- @return ResourceImporterShaderFile +function ResourceImporterShaderFile:new() end + + +----------------------------------------------------------- +-- ResourceImporterTexture +----------------------------------------------------------- + +--- @class ResourceImporterTexture: ResourceImporter, { [string]: any } +ResourceImporterTexture = {} + +--- @return ResourceImporterTexture +function ResourceImporterTexture:new() end + + +----------------------------------------------------------- +-- ResourceImporterTextureAtlas +----------------------------------------------------------- + +--- @class ResourceImporterTextureAtlas: ResourceImporter, { [string]: any } +ResourceImporterTextureAtlas = {} + +--- @return ResourceImporterTextureAtlas +function ResourceImporterTextureAtlas:new() end + + +----------------------------------------------------------- +-- ResourceImporterWAV +----------------------------------------------------------- + +--- @class ResourceImporterWAV: ResourceImporter, { [string]: any } +ResourceImporterWAV = {} + +--- @return ResourceImporterWAV +function ResourceImporterWAV:new() end + + +----------------------------------------------------------- +-- ResourceLoader +----------------------------------------------------------- + +--- @class ResourceLoader: Object, { [string]: any } +ResourceLoader = {} + +--- @alias ResourceLoader.ThreadLoadStatus `ResourceLoader.THREAD_LOAD_INVALID_RESOURCE` | `ResourceLoader.THREAD_LOAD_IN_PROGRESS` | `ResourceLoader.THREAD_LOAD_FAILED` | `ResourceLoader.THREAD_LOAD_LOADED` +ResourceLoader.THREAD_LOAD_INVALID_RESOURCE = 0 +ResourceLoader.THREAD_LOAD_IN_PROGRESS = 1 +ResourceLoader.THREAD_LOAD_FAILED = 2 +ResourceLoader.THREAD_LOAD_LOADED = 3 + +--- @alias ResourceLoader.CacheMode `ResourceLoader.CACHE_MODE_IGNORE` | `ResourceLoader.CACHE_MODE_REUSE` | `ResourceLoader.CACHE_MODE_REPLACE` | `ResourceLoader.CACHE_MODE_IGNORE_DEEP` | `ResourceLoader.CACHE_MODE_REPLACE_DEEP` +ResourceLoader.CACHE_MODE_IGNORE = 0 +ResourceLoader.CACHE_MODE_REUSE = 1 +ResourceLoader.CACHE_MODE_REPLACE = 2 +ResourceLoader.CACHE_MODE_IGNORE_DEEP = 3 +ResourceLoader.CACHE_MODE_REPLACE_DEEP = 4 + +--- @param path String +--- @param type_hint String? Default: "" +--- @param use_sub_threads bool? Default: false +--- @param cache_mode ResourceLoader.CacheMode? Default: 1 +--- @return Error +function ResourceLoader:load_threaded_request(path, type_hint, use_sub_threads, cache_mode) end + +--- @param path String +--- @param progress Array? Default: [] +--- @return ResourceLoader.ThreadLoadStatus +function ResourceLoader:load_threaded_get_status(path, progress) end + +--- @param path String +--- @return Resource +function ResourceLoader:load_threaded_get(path) end + +--- @param path String +--- @param type_hint String? Default: "" +--- @param cache_mode ResourceLoader.CacheMode? Default: 1 +--- @return Resource +function ResourceLoader:load(path, type_hint, cache_mode) end + +--- @param type String +--- @return PackedStringArray +function ResourceLoader:get_recognized_extensions_for_type(type) end + +--- @param format_loader ResourceFormatLoader +--- @param at_front bool? Default: false +function ResourceLoader:add_resource_format_loader(format_loader, at_front) end + +--- @param format_loader ResourceFormatLoader +function ResourceLoader:remove_resource_format_loader(format_loader) end + +--- @param abort bool +function ResourceLoader:set_abort_on_missing_resources(abort) end + +--- @param path String +--- @return PackedStringArray +function ResourceLoader:get_dependencies(path) end + +--- @param path String +--- @return bool +function ResourceLoader:has_cached(path) end + +--- @param path String +--- @return Resource +function ResourceLoader:get_cached_ref(path) end + +--- @param path String +--- @param type_hint String? Default: "" +--- @return bool +function ResourceLoader:exists(path, type_hint) end + +--- @param path String +--- @return int +function ResourceLoader:get_resource_uid(path) end + +--- @param directory_path String +--- @return PackedStringArray +function ResourceLoader:list_directory(directory_path) end + + +----------------------------------------------------------- +-- ResourcePreloader +----------------------------------------------------------- + +--- @class ResourcePreloader: Node, { [string]: any } +--- @field resources Array +ResourcePreloader = {} + +--- @return ResourcePreloader +function ResourcePreloader:new() end + +--- @param name StringName +--- @param resource Resource +function ResourcePreloader:add_resource(name, resource) end + +--- @param name StringName +function ResourcePreloader:remove_resource(name) end + +--- @param name StringName +--- @param newname StringName +function ResourcePreloader:rename_resource(name, newname) end + +--- @param name StringName +--- @return bool +function ResourcePreloader:has_resource(name) end + +--- @param name StringName +--- @return Resource +function ResourcePreloader:get_resource(name) end + +--- @return PackedStringArray +function ResourcePreloader:get_resource_list() end + + +----------------------------------------------------------- +-- ResourceSaver +----------------------------------------------------------- + +--- @class ResourceSaver: Object, { [string]: any } +ResourceSaver = {} + +--- @alias ResourceSaver.SaverFlags `ResourceSaver.FLAG_NONE` | `ResourceSaver.FLAG_RELATIVE_PATHS` | `ResourceSaver.FLAG_BUNDLE_RESOURCES` | `ResourceSaver.FLAG_CHANGE_PATH` | `ResourceSaver.FLAG_OMIT_EDITOR_PROPERTIES` | `ResourceSaver.FLAG_SAVE_BIG_ENDIAN` | `ResourceSaver.FLAG_COMPRESS` | `ResourceSaver.FLAG_REPLACE_SUBRESOURCE_PATHS` +ResourceSaver.FLAG_NONE = 0 +ResourceSaver.FLAG_RELATIVE_PATHS = 1 +ResourceSaver.FLAG_BUNDLE_RESOURCES = 2 +ResourceSaver.FLAG_CHANGE_PATH = 4 +ResourceSaver.FLAG_OMIT_EDITOR_PROPERTIES = 8 +ResourceSaver.FLAG_SAVE_BIG_ENDIAN = 16 +ResourceSaver.FLAG_COMPRESS = 32 +ResourceSaver.FLAG_REPLACE_SUBRESOURCE_PATHS = 64 + +--- @param resource Resource +--- @param path String? Default: "" +--- @param flags ResourceSaver.SaverFlags? Default: 0 +--- @return Error +function ResourceSaver:save(resource, path, flags) end + +--- @param resource String +--- @param uid int +--- @return Error +function ResourceSaver:set_uid(resource, uid) end + +--- @param type Resource +--- @return PackedStringArray +function ResourceSaver:get_recognized_extensions(type) end + +--- @param format_saver ResourceFormatSaver +--- @param at_front bool? Default: false +function ResourceSaver:add_resource_format_saver(format_saver, at_front) end + +--- @param format_saver ResourceFormatSaver +function ResourceSaver:remove_resource_format_saver(format_saver) end + +--- @param path String +--- @param generate bool? Default: false +--- @return int +function ResourceSaver:get_resource_id_for_path(path, generate) end + + +----------------------------------------------------------- +-- ResourceUID +----------------------------------------------------------- + +--- @class ResourceUID: Object, { [string]: any } +ResourceUID = {} + +ResourceUID.INVALID_ID = -1 + +--- @param id int +--- @return String +function ResourceUID:id_to_text(id) end + +--- @param text_id String +--- @return int +function ResourceUID:text_to_id(text_id) end + +--- @return int +function ResourceUID:create_id() end + +--- @param path String +--- @return int +function ResourceUID:create_id_for_path(path) end + +--- @param id int +--- @return bool +function ResourceUID:has_id(id) end + +--- @param id int +--- @param path String +function ResourceUID:add_id(id, path) end + +--- @param id int +--- @param path String +function ResourceUID:set_id(id, path) end + +--- @param id int +--- @return String +function ResourceUID:get_id_path(id) end + +--- @param id int +function ResourceUID:remove_id(id) end + +--- static +--- @param uid String +--- @return String +function ResourceUID:uid_to_path(uid) end + +--- static +--- @param path String +--- @return String +function ResourceUID:path_to_uid(path) end + +--- static +--- @param path_or_uid String +--- @return String +function ResourceUID:ensure_path(path_or_uid) end + + +----------------------------------------------------------- +-- RetargetModifier3D +----------------------------------------------------------- + +--- @class RetargetModifier3D: SkeletonModifier3D, { [string]: any } +--- @field profile SkeletonProfile +--- @field use_global_pose bool +--- @field enable int +RetargetModifier3D = {} + +--- @return RetargetModifier3D +function RetargetModifier3D:new() end + +--- @alias RetargetModifier3D.TransformFlag `RetargetModifier3D.TRANSFORM_FLAG_POSITION` | `RetargetModifier3D.TRANSFORM_FLAG_ROTATION` | `RetargetModifier3D.TRANSFORM_FLAG_SCALE` | `RetargetModifier3D.TRANSFORM_FLAG_ALL` +RetargetModifier3D.TRANSFORM_FLAG_POSITION = 1 +RetargetModifier3D.TRANSFORM_FLAG_ROTATION = 2 +RetargetModifier3D.TRANSFORM_FLAG_SCALE = 4 +RetargetModifier3D.TRANSFORM_FLAG_ALL = 7 + +--- @param profile SkeletonProfile +function RetargetModifier3D:set_profile(profile) end + +--- @return SkeletonProfile +function RetargetModifier3D:get_profile() end + +--- @param use_global_pose bool +function RetargetModifier3D:set_use_global_pose(use_global_pose) end + +--- @return bool +function RetargetModifier3D:is_using_global_pose() end + +--- @param enable_flags RetargetModifier3D.TransformFlag +function RetargetModifier3D:set_enable_flags(enable_flags) end + +--- @return RetargetModifier3D.TransformFlag +function RetargetModifier3D:get_enable_flags() end + +--- @param enabled bool +function RetargetModifier3D:set_position_enabled(enabled) end + +--- @return bool +function RetargetModifier3D:is_position_enabled() end + +--- @param enabled bool +function RetargetModifier3D:set_rotation_enabled(enabled) end + +--- @return bool +function RetargetModifier3D:is_rotation_enabled() end + +--- @param enabled bool +function RetargetModifier3D:set_scale_enabled(enabled) end + +--- @return bool +function RetargetModifier3D:is_scale_enabled() end + + +----------------------------------------------------------- +-- RibbonTrailMesh +----------------------------------------------------------- + +--- @class RibbonTrailMesh: PrimitiveMesh, { [string]: any } +--- @field shape int +--- @field size float +--- @field sections int +--- @field section_length float +--- @field section_segments int +--- @field curve Curve +RibbonTrailMesh = {} + +--- @return RibbonTrailMesh +function RibbonTrailMesh:new() end + +--- @alias RibbonTrailMesh.Shape `RibbonTrailMesh.SHAPE_FLAT` | `RibbonTrailMesh.SHAPE_CROSS` +RibbonTrailMesh.SHAPE_FLAT = 0 +RibbonTrailMesh.SHAPE_CROSS = 1 + +--- @param size float +function RibbonTrailMesh:set_size(size) end + +--- @return float +function RibbonTrailMesh:get_size() end + +--- @param sections int +function RibbonTrailMesh:set_sections(sections) end + +--- @return int +function RibbonTrailMesh:get_sections() end + +--- @param section_length float +function RibbonTrailMesh:set_section_length(section_length) end + +--- @return float +function RibbonTrailMesh:get_section_length() end + +--- @param section_segments int +function RibbonTrailMesh:set_section_segments(section_segments) end + +--- @return int +function RibbonTrailMesh:get_section_segments() end + +--- @param curve Curve +function RibbonTrailMesh:set_curve(curve) end + +--- @return Curve +function RibbonTrailMesh:get_curve() end + +--- @param shape RibbonTrailMesh.Shape +function RibbonTrailMesh:set_shape(shape) end + +--- @return RibbonTrailMesh.Shape +function RibbonTrailMesh:get_shape() end + + +----------------------------------------------------------- +-- RichTextEffect +----------------------------------------------------------- + +--- @class RichTextEffect: Resource, { [string]: any } +RichTextEffect = {} + +--- @return RichTextEffect +function RichTextEffect:new() end + +--- @param char_fx CharFXTransform +--- @return bool +function RichTextEffect:_process_custom_fx(char_fx) end + + +----------------------------------------------------------- +-- RichTextLabel +----------------------------------------------------------- + +--- @class RichTextLabel: Control, { [string]: any } +--- @field bbcode_enabled bool +--- @field text String +--- @field fit_content bool +--- @field scroll_active bool +--- @field scroll_following bool +--- @field scroll_following_visible_characters bool +--- @field autowrap_mode int +--- @field autowrap_trim_flags int +--- @field tab_size int +--- @field context_menu_enabled bool +--- @field shortcut_keys_enabled bool +--- @field horizontal_alignment int +--- @field vertical_alignment int +--- @field justification_flags int +--- @field tab_stops PackedFloat32Array +--- @field custom_effects Array[24/17:RichTextEffect] +--- @field meta_underlined bool +--- @field hint_underlined bool +--- @field threaded bool +--- @field progress_bar_delay int +--- @field selection_enabled bool +--- @field deselect_on_focus_loss_enabled bool +--- @field drag_and_drop_selection_enabled bool +--- @field visible_characters int +--- @field visible_characters_behavior int +--- @field visible_ratio float +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +RichTextLabel = {} + +--- @return RichTextLabel +function RichTextLabel:new() end + +--- @alias RichTextLabel.ListType `RichTextLabel.LIST_NUMBERS` | `RichTextLabel.LIST_LETTERS` | `RichTextLabel.LIST_ROMAN` | `RichTextLabel.LIST_DOTS` +RichTextLabel.LIST_NUMBERS = 0 +RichTextLabel.LIST_LETTERS = 1 +RichTextLabel.LIST_ROMAN = 2 +RichTextLabel.LIST_DOTS = 3 + +--- @alias RichTextLabel.MenuItems `RichTextLabel.MENU_COPY` | `RichTextLabel.MENU_SELECT_ALL` | `RichTextLabel.MENU_MAX` +RichTextLabel.MENU_COPY = 0 +RichTextLabel.MENU_SELECT_ALL = 1 +RichTextLabel.MENU_MAX = 2 + +--- @alias RichTextLabel.MetaUnderline `RichTextLabel.META_UNDERLINE_NEVER` | `RichTextLabel.META_UNDERLINE_ALWAYS` | `RichTextLabel.META_UNDERLINE_ON_HOVER` +RichTextLabel.META_UNDERLINE_NEVER = 0 +RichTextLabel.META_UNDERLINE_ALWAYS = 1 +RichTextLabel.META_UNDERLINE_ON_HOVER = 2 + +--- @alias RichTextLabel.ImageUpdateMask `RichTextLabel.UPDATE_TEXTURE` | `RichTextLabel.UPDATE_SIZE` | `RichTextLabel.UPDATE_COLOR` | `RichTextLabel.UPDATE_ALIGNMENT` | `RichTextLabel.UPDATE_REGION` | `RichTextLabel.UPDATE_PAD` | `RichTextLabel.UPDATE_TOOLTIP` | `RichTextLabel.UPDATE_WIDTH_IN_PERCENT` +RichTextLabel.UPDATE_TEXTURE = 1 +RichTextLabel.UPDATE_SIZE = 2 +RichTextLabel.UPDATE_COLOR = 4 +RichTextLabel.UPDATE_ALIGNMENT = 8 +RichTextLabel.UPDATE_REGION = 16 +RichTextLabel.UPDATE_PAD = 32 +RichTextLabel.UPDATE_TOOLTIP = 64 +RichTextLabel.UPDATE_WIDTH_IN_PERCENT = 128 + +RichTextLabel.meta_clicked = Signal() +RichTextLabel.meta_hover_started = Signal() +RichTextLabel.meta_hover_ended = Signal() +RichTextLabel.finished = Signal() + +--- @return String +function RichTextLabel:get_parsed_text() end + +--- @param text String +function RichTextLabel:add_text(text) end + +--- @param text String +function RichTextLabel:set_text(text) end + +--- @param width int? Default: 90 +--- @param height int? Default: 2 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param alignment HorizontalAlignment? Default: 1 +--- @param width_in_percent bool? Default: true +--- @param height_in_percent bool? Default: false +function RichTextLabel:add_hr(width, height, color, alignment, width_in_percent, height_in_percent) end + +--- @param image Texture2D +--- @param width int? Default: 0 +--- @param height int? Default: 0 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param inline_align InlineAlignment? Default: 5 +--- @param region Rect2? Default: Rect2(0, 0, 0, 0) +--- @param key any? Default: null +--- @param pad bool? Default: false +--- @param tooltip String? Default: "" +--- @param width_in_percent bool? Default: false +--- @param height_in_percent bool? Default: false +--- @param alt_text String? Default: "" +function RichTextLabel:add_image(image, width, height, color, inline_align, region, key, pad, tooltip, width_in_percent, height_in_percent, alt_text) end + +--- @param key any +--- @param mask RichTextLabel.ImageUpdateMask +--- @param image Texture2D +--- @param width int? Default: 0 +--- @param height int? Default: 0 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param inline_align InlineAlignment? Default: 5 +--- @param region Rect2? Default: Rect2(0, 0, 0, 0) +--- @param pad bool? Default: false +--- @param tooltip String? Default: "" +--- @param width_in_percent bool? Default: false +--- @param height_in_percent bool? Default: false +function RichTextLabel:update_image(key, mask, image, width, height, color, inline_align, region, pad, tooltip, width_in_percent, height_in_percent) end + +function RichTextLabel:newline() end + +--- @param paragraph int +--- @param no_invalidate bool? Default: false +--- @return bool +function RichTextLabel:remove_paragraph(paragraph, no_invalidate) end + +--- @param paragraph int +--- @return bool +function RichTextLabel:invalidate_paragraph(paragraph) end + +--- @param font Font +--- @param font_size int? Default: 0 +function RichTextLabel:push_font(font, font_size) end + +--- @param font_size int +function RichTextLabel:push_font_size(font_size) end + +function RichTextLabel:push_normal() end + +function RichTextLabel:push_bold() end + +function RichTextLabel:push_bold_italics() end + +function RichTextLabel:push_italics() end + +function RichTextLabel:push_mono() end + +--- @param color Color +function RichTextLabel:push_color(color) end + +--- @param outline_size int +function RichTextLabel:push_outline_size(outline_size) end + +--- @param color Color +function RichTextLabel:push_outline_color(color) end + +--- @param alignment HorizontalAlignment +--- @param base_direction Control.TextDirection? Default: 0 +--- @param language String? Default: "" +--- @param st_parser TextServer.StructuredTextParser? Default: 0 +--- @param justification_flags TextServer.JustificationFlag? Default: 163 +--- @param tab_stops PackedFloat32Array? Default: PackedFloat32Array() +function RichTextLabel:push_paragraph(alignment, base_direction, language, st_parser, justification_flags, tab_stops) end + +--- @param level int +function RichTextLabel:push_indent(level) end + +--- @param level int +--- @param type RichTextLabel.ListType +--- @param capitalize bool +--- @param bullet String? Default: "•" +function RichTextLabel:push_list(level, type, capitalize, bullet) end + +--- @param data any +--- @param underline_mode RichTextLabel.MetaUnderline? Default: 1 +--- @param tooltip String? Default: "" +function RichTextLabel:push_meta(data, underline_mode, tooltip) end + +--- @param description String +function RichTextLabel:push_hint(description) end + +--- @param language String +function RichTextLabel:push_language(language) end + +--- @param color Color? Default: Color(0, 0, 0, 0) +function RichTextLabel:push_underline(color) end + +--- @param color Color? Default: Color(0, 0, 0, 0) +function RichTextLabel:push_strikethrough(color) end + +--- @param columns int +--- @param inline_align InlineAlignment? Default: 0 +--- @param align_to_row int? Default: -1 +--- @param name String? Default: "" +function RichTextLabel:push_table(columns, inline_align, align_to_row, name) end + +--- @param string String +--- @param font Font +--- @param size int +--- @param dropcap_margins Rect2? Default: Rect2(0, 0, 0, 0) +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param outline_size int? Default: 0 +--- @param outline_color Color? Default: Color(0, 0, 0, 0) +function RichTextLabel:push_dropcap(string, font, size, dropcap_margins, color, outline_size, outline_color) end + +--- @param column int +--- @param expand bool +--- @param ratio int? Default: 1 +--- @param shrink bool? Default: true +function RichTextLabel:set_table_column_expand(column, expand, ratio, shrink) end + +--- @param column int +--- @param name String +function RichTextLabel:set_table_column_name(column, name) end + +--- @param odd_row_bg Color +--- @param even_row_bg Color +function RichTextLabel:set_cell_row_background_color(odd_row_bg, even_row_bg) end + +--- @param color Color +function RichTextLabel:set_cell_border_color(color) end + +--- @param min_size Vector2 +--- @param max_size Vector2 +function RichTextLabel:set_cell_size_override(min_size, max_size) end + +--- @param padding Rect2 +function RichTextLabel:set_cell_padding(padding) end + +function RichTextLabel:push_cell() end + +--- @param fgcolor Color +function RichTextLabel:push_fgcolor(fgcolor) end + +--- @param bgcolor Color +function RichTextLabel:push_bgcolor(bgcolor) end + +--- @param effect RichTextEffect +--- @param env Dictionary +function RichTextLabel:push_customfx(effect, env) end + +function RichTextLabel:push_context() end + +function RichTextLabel:pop_context() end + +function RichTextLabel:pop() end + +function RichTextLabel:pop_all() end + +function RichTextLabel:clear() end + +--- @param parser TextServer.StructuredTextParser +function RichTextLabel:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function RichTextLabel:get_structured_text_bidi_override() end + +--- @param args Array +function RichTextLabel:set_structured_text_bidi_override_options(args) end + +--- @return Array +function RichTextLabel:get_structured_text_bidi_override_options() end + +--- @param direction Control.TextDirection +function RichTextLabel:set_text_direction(direction) end + +--- @return Control.TextDirection +function RichTextLabel:get_text_direction() end + +--- @param language String +function RichTextLabel:set_language(language) end + +--- @return String +function RichTextLabel:get_language() end + +--- @param alignment HorizontalAlignment +function RichTextLabel:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function RichTextLabel:get_horizontal_alignment() end + +--- @param alignment VerticalAlignment +function RichTextLabel:set_vertical_alignment(alignment) end + +--- @return VerticalAlignment +function RichTextLabel:get_vertical_alignment() end + +--- @param justification_flags TextServer.JustificationFlag +function RichTextLabel:set_justification_flags(justification_flags) end + +--- @return TextServer.JustificationFlag +function RichTextLabel:get_justification_flags() end + +--- @param tab_stops PackedFloat32Array +function RichTextLabel:set_tab_stops(tab_stops) end + +--- @return PackedFloat32Array +function RichTextLabel:get_tab_stops() end + +--- @param autowrap_mode TextServer.AutowrapMode +function RichTextLabel:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function RichTextLabel:get_autowrap_mode() end + +--- @param autowrap_trim_flags TextServer.LineBreakFlag +function RichTextLabel:set_autowrap_trim_flags(autowrap_trim_flags) end + +--- @return TextServer.LineBreakFlag +function RichTextLabel:get_autowrap_trim_flags() end + +--- @param enable bool +function RichTextLabel:set_meta_underline(enable) end + +--- @return bool +function RichTextLabel:is_meta_underlined() end + +--- @param enable bool +function RichTextLabel:set_hint_underline(enable) end + +--- @return bool +function RichTextLabel:is_hint_underlined() end + +--- @param active bool +function RichTextLabel:set_scroll_active(active) end + +--- @return bool +function RichTextLabel:is_scroll_active() end + +--- @param follow bool +function RichTextLabel:set_scroll_follow_visible_characters(follow) end + +--- @return bool +function RichTextLabel:is_scroll_following_visible_characters() end + +--- @param follow bool +function RichTextLabel:set_scroll_follow(follow) end + +--- @return bool +function RichTextLabel:is_scroll_following() end + +--- @return VScrollBar +function RichTextLabel:get_v_scroll_bar() end + +--- @param line int +function RichTextLabel:scroll_to_line(line) end + +--- @param paragraph int +function RichTextLabel:scroll_to_paragraph(paragraph) end + +function RichTextLabel:scroll_to_selection() end + +--- @param spaces int +function RichTextLabel:set_tab_size(spaces) end + +--- @return int +function RichTextLabel:get_tab_size() end + +--- @param enabled bool +function RichTextLabel:set_fit_content(enabled) end + +--- @return bool +function RichTextLabel:is_fit_content_enabled() end + +--- @param enabled bool +function RichTextLabel:set_selection_enabled(enabled) end + +--- @return bool +function RichTextLabel:is_selection_enabled() end + +--- @param enabled bool +function RichTextLabel:set_context_menu_enabled(enabled) end + +--- @return bool +function RichTextLabel:is_context_menu_enabled() end + +--- @param enabled bool +function RichTextLabel:set_shortcut_keys_enabled(enabled) end + +--- @return bool +function RichTextLabel:is_shortcut_keys_enabled() end + +--- @param enable bool +function RichTextLabel:set_deselect_on_focus_loss_enabled(enable) end + +--- @return bool +function RichTextLabel:is_deselect_on_focus_loss_enabled() end + +--- @param enable bool +function RichTextLabel:set_drag_and_drop_selection_enabled(enable) end + +--- @return bool +function RichTextLabel:is_drag_and_drop_selection_enabled() end + +--- @return int +function RichTextLabel:get_selection_from() end + +--- @return int +function RichTextLabel:get_selection_to() end + +--- @return float +function RichTextLabel:get_selection_line_offset() end + +function RichTextLabel:select_all() end + +--- @return String +function RichTextLabel:get_selected_text() end + +function RichTextLabel:deselect() end + +--- @param bbcode String +function RichTextLabel:parse_bbcode(bbcode) end + +--- @param bbcode String +function RichTextLabel:append_text(bbcode) end + +--- @return String +function RichTextLabel:get_text() end + +--- @return bool +function RichTextLabel:is_ready() end + +--- @return bool +function RichTextLabel:is_finished() end + +--- @param threaded bool +function RichTextLabel:set_threaded(threaded) end + +--- @return bool +function RichTextLabel:is_threaded() end + +--- @param delay_ms int +function RichTextLabel:set_progress_bar_delay(delay_ms) end + +--- @return int +function RichTextLabel:get_progress_bar_delay() end + +--- @param amount int +function RichTextLabel:set_visible_characters(amount) end + +--- @return int +function RichTextLabel:get_visible_characters() end + +--- @return TextServer.VisibleCharactersBehavior +function RichTextLabel:get_visible_characters_behavior() end + +--- @param behavior TextServer.VisibleCharactersBehavior +function RichTextLabel:set_visible_characters_behavior(behavior) end + +--- @param ratio float +function RichTextLabel:set_visible_ratio(ratio) end + +--- @return float +function RichTextLabel:get_visible_ratio() end + +--- @param character int +--- @return int +function RichTextLabel:get_character_line(character) end + +--- @param character int +--- @return int +function RichTextLabel:get_character_paragraph(character) end + +--- @return int +function RichTextLabel:get_total_character_count() end + +--- @param enable bool +function RichTextLabel:set_use_bbcode(enable) end + +--- @return bool +function RichTextLabel:is_using_bbcode() end + +--- @return int +function RichTextLabel:get_line_count() end + +--- @param line int +--- @return Vector2i +function RichTextLabel:get_line_range(line) end + +--- @return int +function RichTextLabel:get_visible_line_count() end + +--- @return int +function RichTextLabel:get_paragraph_count() end + +--- @return int +function RichTextLabel:get_visible_paragraph_count() end + +--- @return int +function RichTextLabel:get_content_height() end + +--- @return int +function RichTextLabel:get_content_width() end + +--- @param line int +--- @return int +function RichTextLabel:get_line_height(line) end + +--- @param line int +--- @return int +function RichTextLabel:get_line_width(line) end + +--- @return Rect2i +function RichTextLabel:get_visible_content_rect() end + +--- @param line int +--- @return float +function RichTextLabel:get_line_offset(line) end + +--- @param paragraph int +--- @return float +function RichTextLabel:get_paragraph_offset(paragraph) end + +--- @param expressions PackedStringArray +--- @return Dictionary +function RichTextLabel:parse_expressions_for_values(expressions) end + +--- @param effects Array +function RichTextLabel:set_effects(effects) end + +--- @return Array +function RichTextLabel:get_effects() end + +--- @param effect any +function RichTextLabel:install_effect(effect) end + +function RichTextLabel:reload_effects() end + +--- @return PopupMenu +function RichTextLabel:get_menu() end + +--- @return bool +function RichTextLabel:is_menu_visible() end + +--- @param option int +function RichTextLabel:menu_option(option) end + + +----------------------------------------------------------- +-- RigidBody2D +----------------------------------------------------------- + +--- @class RigidBody2D: PhysicsBody2D, { [string]: any } +--- @field mass float +--- @field physics_material_override PhysicsMaterial +--- @field gravity_scale float +--- @field center_of_mass_mode int +--- @field center_of_mass Vector2 +--- @field inertia float +--- @field sleeping bool +--- @field can_sleep bool +--- @field lock_rotation bool +--- @field freeze bool +--- @field freeze_mode int +--- @field custom_integrator bool +--- @field continuous_cd int +--- @field contact_monitor bool +--- @field max_contacts_reported int +--- @field linear_velocity Vector2 +--- @field linear_damp_mode int +--- @field linear_damp float +--- @field angular_velocity float +--- @field angular_damp_mode int +--- @field angular_damp float +--- @field constant_force Vector2 +--- @field constant_torque float +RigidBody2D = {} + +--- @return RigidBody2D +function RigidBody2D:new() end + +--- @alias RigidBody2D.FreezeMode `RigidBody2D.FREEZE_MODE_STATIC` | `RigidBody2D.FREEZE_MODE_KINEMATIC` +RigidBody2D.FREEZE_MODE_STATIC = 0 +RigidBody2D.FREEZE_MODE_KINEMATIC = 1 + +--- @alias RigidBody2D.CenterOfMassMode `RigidBody2D.CENTER_OF_MASS_MODE_AUTO` | `RigidBody2D.CENTER_OF_MASS_MODE_CUSTOM` +RigidBody2D.CENTER_OF_MASS_MODE_AUTO = 0 +RigidBody2D.CENTER_OF_MASS_MODE_CUSTOM = 1 + +--- @alias RigidBody2D.DampMode `RigidBody2D.DAMP_MODE_COMBINE` | `RigidBody2D.DAMP_MODE_REPLACE` +RigidBody2D.DAMP_MODE_COMBINE = 0 +RigidBody2D.DAMP_MODE_REPLACE = 1 + +--- @alias RigidBody2D.CCDMode `RigidBody2D.CCD_MODE_DISABLED` | `RigidBody2D.CCD_MODE_CAST_RAY` | `RigidBody2D.CCD_MODE_CAST_SHAPE` +RigidBody2D.CCD_MODE_DISABLED = 0 +RigidBody2D.CCD_MODE_CAST_RAY = 1 +RigidBody2D.CCD_MODE_CAST_SHAPE = 2 + +RigidBody2D.body_shape_entered = Signal() +RigidBody2D.body_shape_exited = Signal() +RigidBody2D.body_entered = Signal() +RigidBody2D.body_exited = Signal() +RigidBody2D.sleeping_state_changed = Signal() + +--- @param state PhysicsDirectBodyState2D +function RigidBody2D:_integrate_forces(state) end + +--- @param mass float +function RigidBody2D:set_mass(mass) end + +--- @return float +function RigidBody2D:get_mass() end + +--- @return float +function RigidBody2D:get_inertia() end + +--- @param inertia float +function RigidBody2D:set_inertia(inertia) end + +--- @param mode RigidBody2D.CenterOfMassMode +function RigidBody2D:set_center_of_mass_mode(mode) end + +--- @return RigidBody2D.CenterOfMassMode +function RigidBody2D:get_center_of_mass_mode() end + +--- @param center_of_mass Vector2 +function RigidBody2D:set_center_of_mass(center_of_mass) end + +--- @return Vector2 +function RigidBody2D:get_center_of_mass() end + +--- @param physics_material_override PhysicsMaterial +function RigidBody2D:set_physics_material_override(physics_material_override) end + +--- @return PhysicsMaterial +function RigidBody2D:get_physics_material_override() end + +--- @param gravity_scale float +function RigidBody2D:set_gravity_scale(gravity_scale) end + +--- @return float +function RigidBody2D:get_gravity_scale() end + +--- @param linear_damp_mode RigidBody2D.DampMode +function RigidBody2D:set_linear_damp_mode(linear_damp_mode) end + +--- @return RigidBody2D.DampMode +function RigidBody2D:get_linear_damp_mode() end + +--- @param angular_damp_mode RigidBody2D.DampMode +function RigidBody2D:set_angular_damp_mode(angular_damp_mode) end + +--- @return RigidBody2D.DampMode +function RigidBody2D:get_angular_damp_mode() end + +--- @param linear_damp float +function RigidBody2D:set_linear_damp(linear_damp) end + +--- @return float +function RigidBody2D:get_linear_damp() end + +--- @param angular_damp float +function RigidBody2D:set_angular_damp(angular_damp) end + +--- @return float +function RigidBody2D:get_angular_damp() end + +--- @param linear_velocity Vector2 +function RigidBody2D:set_linear_velocity(linear_velocity) end + +--- @return Vector2 +function RigidBody2D:get_linear_velocity() end + +--- @param angular_velocity float +function RigidBody2D:set_angular_velocity(angular_velocity) end + +--- @return float +function RigidBody2D:get_angular_velocity() end + +--- @param amount int +function RigidBody2D:set_max_contacts_reported(amount) end + +--- @return int +function RigidBody2D:get_max_contacts_reported() end + +--- @return int +function RigidBody2D:get_contact_count() end + +--- @param enable bool +function RigidBody2D:set_use_custom_integrator(enable) end + +--- @return bool +function RigidBody2D:is_using_custom_integrator() end + +--- @param enabled bool +function RigidBody2D:set_contact_monitor(enabled) end + +--- @return bool +function RigidBody2D:is_contact_monitor_enabled() end + +--- @param mode RigidBody2D.CCDMode +function RigidBody2D:set_continuous_collision_detection_mode(mode) end + +--- @return RigidBody2D.CCDMode +function RigidBody2D:get_continuous_collision_detection_mode() end + +--- @param axis_velocity Vector2 +function RigidBody2D:set_axis_velocity(axis_velocity) end + +--- @param impulse Vector2? Default: Vector2(0, 0) +function RigidBody2D:apply_central_impulse(impulse) end + +--- @param impulse Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function RigidBody2D:apply_impulse(impulse, position) end + +--- @param torque float +function RigidBody2D:apply_torque_impulse(torque) end + +--- @param force Vector2 +function RigidBody2D:apply_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function RigidBody2D:apply_force(force, position) end + +--- @param torque float +function RigidBody2D:apply_torque(torque) end + +--- @param force Vector2 +function RigidBody2D:add_constant_central_force(force) end + +--- @param force Vector2 +--- @param position Vector2? Default: Vector2(0, 0) +function RigidBody2D:add_constant_force(force, position) end + +--- @param torque float +function RigidBody2D:add_constant_torque(torque) end + +--- @param force Vector2 +function RigidBody2D:set_constant_force(force) end + +--- @return Vector2 +function RigidBody2D:get_constant_force() end + +--- @param torque float +function RigidBody2D:set_constant_torque(torque) end + +--- @return float +function RigidBody2D:get_constant_torque() end + +--- @param sleeping bool +function RigidBody2D:set_sleeping(sleeping) end + +--- @return bool +function RigidBody2D:is_sleeping() end + +--- @param able_to_sleep bool +function RigidBody2D:set_can_sleep(able_to_sleep) end + +--- @return bool +function RigidBody2D:is_able_to_sleep() end + +--- @param lock_rotation bool +function RigidBody2D:set_lock_rotation_enabled(lock_rotation) end + +--- @return bool +function RigidBody2D:is_lock_rotation_enabled() end + +--- @param freeze_mode bool +function RigidBody2D:set_freeze_enabled(freeze_mode) end + +--- @return bool +function RigidBody2D:is_freeze_enabled() end + +--- @param freeze_mode RigidBody2D.FreezeMode +function RigidBody2D:set_freeze_mode(freeze_mode) end + +--- @return RigidBody2D.FreezeMode +function RigidBody2D:get_freeze_mode() end + +--- @return Array[Node2D] +function RigidBody2D:get_colliding_bodies() end + + +----------------------------------------------------------- +-- RigidBody3D +----------------------------------------------------------- + +--- @class RigidBody3D: PhysicsBody3D, { [string]: any } +--- @field mass float +--- @field physics_material_override PhysicsMaterial +--- @field gravity_scale float +--- @field center_of_mass_mode int +--- @field center_of_mass Vector3 +--- @field inertia Vector3 +--- @field sleeping bool +--- @field can_sleep bool +--- @field lock_rotation bool +--- @field freeze bool +--- @field freeze_mode int +--- @field custom_integrator bool +--- @field continuous_cd bool +--- @field contact_monitor bool +--- @field max_contacts_reported int +--- @field linear_velocity Vector3 +--- @field linear_damp_mode int +--- @field linear_damp float +--- @field angular_velocity Vector3 +--- @field angular_damp_mode int +--- @field angular_damp float +--- @field constant_force Vector3 +--- @field constant_torque Vector3 +RigidBody3D = {} + +--- @return RigidBody3D +function RigidBody3D:new() end + +--- @alias RigidBody3D.FreezeMode `RigidBody3D.FREEZE_MODE_STATIC` | `RigidBody3D.FREEZE_MODE_KINEMATIC` +RigidBody3D.FREEZE_MODE_STATIC = 0 +RigidBody3D.FREEZE_MODE_KINEMATIC = 1 + +--- @alias RigidBody3D.CenterOfMassMode `RigidBody3D.CENTER_OF_MASS_MODE_AUTO` | `RigidBody3D.CENTER_OF_MASS_MODE_CUSTOM` +RigidBody3D.CENTER_OF_MASS_MODE_AUTO = 0 +RigidBody3D.CENTER_OF_MASS_MODE_CUSTOM = 1 + +--- @alias RigidBody3D.DampMode `RigidBody3D.DAMP_MODE_COMBINE` | `RigidBody3D.DAMP_MODE_REPLACE` +RigidBody3D.DAMP_MODE_COMBINE = 0 +RigidBody3D.DAMP_MODE_REPLACE = 1 + +RigidBody3D.body_shape_entered = Signal() +RigidBody3D.body_shape_exited = Signal() +RigidBody3D.body_entered = Signal() +RigidBody3D.body_exited = Signal() +RigidBody3D.sleeping_state_changed = Signal() + +--- @param state PhysicsDirectBodyState3D +function RigidBody3D:_integrate_forces(state) end + +--- @param mass float +function RigidBody3D:set_mass(mass) end + +--- @return float +function RigidBody3D:get_mass() end + +--- @param inertia Vector3 +function RigidBody3D:set_inertia(inertia) end + +--- @return Vector3 +function RigidBody3D:get_inertia() end + +--- @param mode RigidBody3D.CenterOfMassMode +function RigidBody3D:set_center_of_mass_mode(mode) end + +--- @return RigidBody3D.CenterOfMassMode +function RigidBody3D:get_center_of_mass_mode() end + +--- @param center_of_mass Vector3 +function RigidBody3D:set_center_of_mass(center_of_mass) end + +--- @return Vector3 +function RigidBody3D:get_center_of_mass() end + +--- @param physics_material_override PhysicsMaterial +function RigidBody3D:set_physics_material_override(physics_material_override) end + +--- @return PhysicsMaterial +function RigidBody3D:get_physics_material_override() end + +--- @param linear_velocity Vector3 +function RigidBody3D:set_linear_velocity(linear_velocity) end + +--- @return Vector3 +function RigidBody3D:get_linear_velocity() end + +--- @param angular_velocity Vector3 +function RigidBody3D:set_angular_velocity(angular_velocity) end + +--- @return Vector3 +function RigidBody3D:get_angular_velocity() end + +--- @return Basis +function RigidBody3D:get_inverse_inertia_tensor() end + +--- @param gravity_scale float +function RigidBody3D:set_gravity_scale(gravity_scale) end + +--- @return float +function RigidBody3D:get_gravity_scale() end + +--- @param linear_damp_mode RigidBody3D.DampMode +function RigidBody3D:set_linear_damp_mode(linear_damp_mode) end + +--- @return RigidBody3D.DampMode +function RigidBody3D:get_linear_damp_mode() end + +--- @param angular_damp_mode RigidBody3D.DampMode +function RigidBody3D:set_angular_damp_mode(angular_damp_mode) end + +--- @return RigidBody3D.DampMode +function RigidBody3D:get_angular_damp_mode() end + +--- @param linear_damp float +function RigidBody3D:set_linear_damp(linear_damp) end + +--- @return float +function RigidBody3D:get_linear_damp() end + +--- @param angular_damp float +function RigidBody3D:set_angular_damp(angular_damp) end + +--- @return float +function RigidBody3D:get_angular_damp() end + +--- @param amount int +function RigidBody3D:set_max_contacts_reported(amount) end + +--- @return int +function RigidBody3D:get_max_contacts_reported() end + +--- @return int +function RigidBody3D:get_contact_count() end + +--- @param enable bool +function RigidBody3D:set_use_custom_integrator(enable) end + +--- @return bool +function RigidBody3D:is_using_custom_integrator() end + +--- @param enabled bool +function RigidBody3D:set_contact_monitor(enabled) end + +--- @return bool +function RigidBody3D:is_contact_monitor_enabled() end + +--- @param enable bool +function RigidBody3D:set_use_continuous_collision_detection(enable) end + +--- @return bool +function RigidBody3D:is_using_continuous_collision_detection() end + +--- @param axis_velocity Vector3 +function RigidBody3D:set_axis_velocity(axis_velocity) end + +--- @param impulse Vector3 +function RigidBody3D:apply_central_impulse(impulse) end + +--- @param impulse Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function RigidBody3D:apply_impulse(impulse, position) end + +--- @param impulse Vector3 +function RigidBody3D:apply_torque_impulse(impulse) end + +--- @param force Vector3 +function RigidBody3D:apply_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function RigidBody3D:apply_force(force, position) end + +--- @param torque Vector3 +function RigidBody3D:apply_torque(torque) end + +--- @param force Vector3 +function RigidBody3D:add_constant_central_force(force) end + +--- @param force Vector3 +--- @param position Vector3? Default: Vector3(0, 0, 0) +function RigidBody3D:add_constant_force(force, position) end + +--- @param torque Vector3 +function RigidBody3D:add_constant_torque(torque) end + +--- @param force Vector3 +function RigidBody3D:set_constant_force(force) end + +--- @return Vector3 +function RigidBody3D:get_constant_force() end + +--- @param torque Vector3 +function RigidBody3D:set_constant_torque(torque) end + +--- @return Vector3 +function RigidBody3D:get_constant_torque() end + +--- @param sleeping bool +function RigidBody3D:set_sleeping(sleeping) end + +--- @return bool +function RigidBody3D:is_sleeping() end + +--- @param able_to_sleep bool +function RigidBody3D:set_can_sleep(able_to_sleep) end + +--- @return bool +function RigidBody3D:is_able_to_sleep() end + +--- @param lock_rotation bool +function RigidBody3D:set_lock_rotation_enabled(lock_rotation) end + +--- @return bool +function RigidBody3D:is_lock_rotation_enabled() end + +--- @param freeze_mode bool +function RigidBody3D:set_freeze_enabled(freeze_mode) end + +--- @return bool +function RigidBody3D:is_freeze_enabled() end + +--- @param freeze_mode RigidBody3D.FreezeMode +function RigidBody3D:set_freeze_mode(freeze_mode) end + +--- @return RigidBody3D.FreezeMode +function RigidBody3D:get_freeze_mode() end + +--- @return Array[Node3D] +function RigidBody3D:get_colliding_bodies() end + + +----------------------------------------------------------- +-- RootMotionView +----------------------------------------------------------- + +--- @class RootMotionView: VisualInstance3D, { [string]: any } +--- @field animation_path NodePath +--- @field color Color +--- @field cell_size float +--- @field radius float +--- @field zero_y bool +RootMotionView = {} + +--- @return RootMotionView +function RootMotionView:new() end + +--- @param path NodePath +function RootMotionView:set_animation_path(path) end + +--- @return NodePath +function RootMotionView:get_animation_path() end + +--- @param color Color +function RootMotionView:set_color(color) end + +--- @return Color +function RootMotionView:get_color() end + +--- @param size float +function RootMotionView:set_cell_size(size) end + +--- @return float +function RootMotionView:get_cell_size() end + +--- @param size float +function RootMotionView:set_radius(size) end + +--- @return float +function RootMotionView:get_radius() end + +--- @param enable bool +function RootMotionView:set_zero_y(enable) end + +--- @return bool +function RootMotionView:get_zero_y() end + + +----------------------------------------------------------- +-- SceneMultiplayer +----------------------------------------------------------- + +--- @class SceneMultiplayer: MultiplayerAPI, { [string]: any } +--- @field root_path NodePath +--- @field auth_callback Callable +--- @field auth_timeout float +--- @field allow_object_decoding bool +--- @field refuse_new_connections bool +--- @field server_relay bool +--- @field max_sync_packet_size int +--- @field max_delta_packet_size int +SceneMultiplayer = {} + +--- @return SceneMultiplayer +function SceneMultiplayer:new() end + +SceneMultiplayer.peer_authenticating = Signal() +SceneMultiplayer.peer_authentication_failed = Signal() +SceneMultiplayer.peer_packet = Signal() + +--- @param path NodePath +function SceneMultiplayer:set_root_path(path) end + +--- @return NodePath +function SceneMultiplayer:get_root_path() end + +function SceneMultiplayer:clear() end + +--- @param id int +function SceneMultiplayer:disconnect_peer(id) end + +--- @return PackedInt32Array +function SceneMultiplayer:get_authenticating_peers() end + +--- @param id int +--- @param data PackedByteArray +--- @return Error +function SceneMultiplayer:send_auth(id, data) end + +--- @param id int +--- @return Error +function SceneMultiplayer:complete_auth(id) end + +--- @param callback Callable +function SceneMultiplayer:set_auth_callback(callback) end + +--- @return Callable +function SceneMultiplayer:get_auth_callback() end + +--- @param timeout float +function SceneMultiplayer:set_auth_timeout(timeout) end + +--- @return float +function SceneMultiplayer:get_auth_timeout() end + +--- @param refuse bool +function SceneMultiplayer:set_refuse_new_connections(refuse) end + +--- @return bool +function SceneMultiplayer:is_refusing_new_connections() end + +--- @param enable bool +function SceneMultiplayer:set_allow_object_decoding(enable) end + +--- @return bool +function SceneMultiplayer:is_object_decoding_allowed() end + +--- @param enabled bool +function SceneMultiplayer:set_server_relay_enabled(enabled) end + +--- @return bool +function SceneMultiplayer:is_server_relay_enabled() end + +--- @param bytes PackedByteArray +--- @param id int? Default: 0 +--- @param mode MultiplayerPeer.TransferMode? Default: 2 +--- @param channel int? Default: 0 +--- @return Error +function SceneMultiplayer:send_bytes(bytes, id, mode, channel) end + +--- @return int +function SceneMultiplayer:get_max_sync_packet_size() end + +--- @param size int +function SceneMultiplayer:set_max_sync_packet_size(size) end + +--- @return int +function SceneMultiplayer:get_max_delta_packet_size() end + +--- @param size int +function SceneMultiplayer:set_max_delta_packet_size(size) end + + +----------------------------------------------------------- +-- SceneReplicationConfig +----------------------------------------------------------- + +--- @class SceneReplicationConfig: Resource, { [string]: any } +SceneReplicationConfig = {} + +--- @return SceneReplicationConfig +function SceneReplicationConfig:new() end + +--- @alias SceneReplicationConfig.ReplicationMode `SceneReplicationConfig.REPLICATION_MODE_NEVER` | `SceneReplicationConfig.REPLICATION_MODE_ALWAYS` | `SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE` +SceneReplicationConfig.REPLICATION_MODE_NEVER = 0 +SceneReplicationConfig.REPLICATION_MODE_ALWAYS = 1 +SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE = 2 + +--- @return Array[NodePath] +function SceneReplicationConfig:get_properties() end + +--- @param path NodePath +--- @param index int? Default: -1 +function SceneReplicationConfig:add_property(path, index) end + +--- @param path NodePath +--- @return bool +function SceneReplicationConfig:has_property(path) end + +--- @param path NodePath +function SceneReplicationConfig:remove_property(path) end + +--- @param path NodePath +--- @return int +function SceneReplicationConfig:property_get_index(path) end + +--- @param path NodePath +--- @return bool +function SceneReplicationConfig:property_get_spawn(path) end + +--- @param path NodePath +--- @param enabled bool +function SceneReplicationConfig:property_set_spawn(path, enabled) end + +--- @param path NodePath +--- @return SceneReplicationConfig.ReplicationMode +function SceneReplicationConfig:property_get_replication_mode(path) end + +--- @param path NodePath +--- @param mode SceneReplicationConfig.ReplicationMode +function SceneReplicationConfig:property_set_replication_mode(path, mode) end + +--- @param path NodePath +--- @return bool +function SceneReplicationConfig:property_get_sync(path) end + +--- @param path NodePath +--- @param enabled bool +function SceneReplicationConfig:property_set_sync(path, enabled) end + +--- @param path NodePath +--- @return bool +function SceneReplicationConfig:property_get_watch(path) end + +--- @param path NodePath +--- @param enabled bool +function SceneReplicationConfig:property_set_watch(path, enabled) end + + +----------------------------------------------------------- +-- SceneState +----------------------------------------------------------- + +--- @class SceneState: RefCounted, { [string]: any } +SceneState = {} + +--- @alias SceneState.GenEditState `SceneState.GEN_EDIT_STATE_DISABLED` | `SceneState.GEN_EDIT_STATE_INSTANCE` | `SceneState.GEN_EDIT_STATE_MAIN` | `SceneState.GEN_EDIT_STATE_MAIN_INHERITED` +SceneState.GEN_EDIT_STATE_DISABLED = 0 +SceneState.GEN_EDIT_STATE_INSTANCE = 1 +SceneState.GEN_EDIT_STATE_MAIN = 2 +SceneState.GEN_EDIT_STATE_MAIN_INHERITED = 3 + +--- @return String +function SceneState:get_path() end + +--- @return SceneState +function SceneState:get_base_scene_state() end + +--- @return int +function SceneState:get_node_count() end + +--- @param idx int +--- @return StringName +function SceneState:get_node_type(idx) end + +--- @param idx int +--- @return StringName +function SceneState:get_node_name(idx) end + +--- @param idx int +--- @param for_parent bool? Default: false +--- @return NodePath +function SceneState:get_node_path(idx, for_parent) end + +--- @param idx int +--- @return NodePath +function SceneState:get_node_owner_path(idx) end + +--- @param idx int +--- @return bool +function SceneState:is_node_instance_placeholder(idx) end + +--- @param idx int +--- @return String +function SceneState:get_node_instance_placeholder(idx) end + +--- @param idx int +--- @return PackedScene +function SceneState:get_node_instance(idx) end + +--- @param idx int +--- @return PackedStringArray +function SceneState:get_node_groups(idx) end + +--- @param idx int +--- @return int +function SceneState:get_node_index(idx) end + +--- @param idx int +--- @return int +function SceneState:get_node_property_count(idx) end + +--- @param idx int +--- @param prop_idx int +--- @return StringName +function SceneState:get_node_property_name(idx, prop_idx) end + +--- @param idx int +--- @param prop_idx int +--- @return any +function SceneState:get_node_property_value(idx, prop_idx) end + +--- @return int +function SceneState:get_connection_count() end + +--- @param idx int +--- @return NodePath +function SceneState:get_connection_source(idx) end + +--- @param idx int +--- @return StringName +function SceneState:get_connection_signal(idx) end + +--- @param idx int +--- @return NodePath +function SceneState:get_connection_target(idx) end + +--- @param idx int +--- @return StringName +function SceneState:get_connection_method(idx) end + +--- @param idx int +--- @return int +function SceneState:get_connection_flags(idx) end + +--- @param idx int +--- @return Array +function SceneState:get_connection_binds(idx) end + +--- @param idx int +--- @return int +function SceneState:get_connection_unbinds(idx) end + + +----------------------------------------------------------- +-- SceneTree +----------------------------------------------------------- + +--- @class SceneTree: MainLoop, { [string]: any } +--- @field auto_accept_quit bool +--- @field quit_on_go_back bool +--- @field debug_collisions_hint bool +--- @field debug_paths_hint bool +--- @field debug_navigation_hint bool +--- @field paused bool +--- @field edited_scene_root Node +--- @field current_scene Node +--- @field root Node +--- @field multiplayer_poll bool +--- @field physics_interpolation bool +SceneTree = {} + +--- @return SceneTree +function SceneTree:new() end + +--- @alias SceneTree.GroupCallFlags `SceneTree.GROUP_CALL_DEFAULT` | `SceneTree.GROUP_CALL_REVERSE` | `SceneTree.GROUP_CALL_DEFERRED` | `SceneTree.GROUP_CALL_UNIQUE` +SceneTree.GROUP_CALL_DEFAULT = 0 +SceneTree.GROUP_CALL_REVERSE = 1 +SceneTree.GROUP_CALL_DEFERRED = 2 +SceneTree.GROUP_CALL_UNIQUE = 4 + +SceneTree.tree_changed = Signal() +SceneTree.scene_changed = Signal() +SceneTree.tree_process_mode_changed = Signal() +SceneTree.node_added = Signal() +SceneTree.node_removed = Signal() +SceneTree.node_renamed = Signal() +SceneTree.node_configuration_warning_changed = Signal() +SceneTree.process_frame = Signal() +SceneTree.physics_frame = Signal() + +--- @return Window +function SceneTree:get_root() end + +--- @param name StringName +--- @return bool +function SceneTree:has_group(name) end + +--- @return bool +function SceneTree:is_accessibility_enabled() end + +--- @return bool +function SceneTree:is_accessibility_supported() end + +--- @return bool +function SceneTree:is_auto_accept_quit() end + +--- @param enabled bool +function SceneTree:set_auto_accept_quit(enabled) end + +--- @return bool +function SceneTree:is_quit_on_go_back() end + +--- @param enabled bool +function SceneTree:set_quit_on_go_back(enabled) end + +--- @param enable bool +function SceneTree:set_debug_collisions_hint(enable) end + +--- @return bool +function SceneTree:is_debugging_collisions_hint() end + +--- @param enable bool +function SceneTree:set_debug_paths_hint(enable) end + +--- @return bool +function SceneTree:is_debugging_paths_hint() end + +--- @param enable bool +function SceneTree:set_debug_navigation_hint(enable) end + +--- @return bool +function SceneTree:is_debugging_navigation_hint() end + +--- @param scene Node +function SceneTree:set_edited_scene_root(scene) end + +--- @return Node +function SceneTree:get_edited_scene_root() end + +--- @param enable bool +function SceneTree:set_pause(enable) end + +--- @return bool +function SceneTree:is_paused() end + +--- @param time_sec float +--- @param process_always bool? Default: true +--- @param process_in_physics bool? Default: false +--- @param ignore_time_scale bool? Default: false +--- @return SceneTreeTimer +function SceneTree:create_timer(time_sec, process_always, process_in_physics, ignore_time_scale) end + +--- @return Tween +function SceneTree:create_tween() end + +--- @return Array[Tween] +function SceneTree:get_processed_tweens() end + +--- @return int +function SceneTree:get_node_count() end + +--- @return int +function SceneTree:get_frame() end + +--- @param exit_code int? Default: 0 +function SceneTree:quit(exit_code) end + +--- @param enabled bool +function SceneTree:set_physics_interpolation_enabled(enabled) end + +--- @return bool +function SceneTree:is_physics_interpolation_enabled() end + +--- @param obj Object +function SceneTree:queue_delete(obj) end + +--- @param flags int +--- @param group StringName +--- @param method StringName +function SceneTree:call_group_flags(flags, group, method, ...) end + +--- @param call_flags int +--- @param group StringName +--- @param notification int +function SceneTree:notify_group_flags(call_flags, group, notification) end + +--- @param call_flags int +--- @param group StringName +--- @param property String +--- @param value any +function SceneTree:set_group_flags(call_flags, group, property, value) end + +--- @param group StringName +--- @param method StringName +function SceneTree:call_group(group, method, ...) end + +--- @param group StringName +--- @param notification int +function SceneTree:notify_group(group, notification) end + +--- @param group StringName +--- @param property String +--- @param value any +function SceneTree:set_group(group, property, value) end + +--- @param group StringName +--- @return Array[Node] +function SceneTree:get_nodes_in_group(group) end + +--- @param group StringName +--- @return Node +function SceneTree:get_first_node_in_group(group) end + +--- @param group StringName +--- @return int +function SceneTree:get_node_count_in_group(group) end + +--- @param child_node Node +function SceneTree:set_current_scene(child_node) end + +--- @return Node +function SceneTree:get_current_scene() end + +--- @param path String +--- @return Error +function SceneTree:change_scene_to_file(path) end + +--- @param packed_scene PackedScene +--- @return Error +function SceneTree:change_scene_to_packed(packed_scene) end + +--- @return Error +function SceneTree:reload_current_scene() end + +function SceneTree:unload_current_scene() end + +--- @param multiplayer MultiplayerAPI +--- @param root_path NodePath? Default: NodePath("") +function SceneTree:set_multiplayer(multiplayer, root_path) end + +--- @param for_path NodePath? Default: NodePath("") +--- @return MultiplayerAPI +function SceneTree:get_multiplayer(for_path) end + +--- @param enabled bool +function SceneTree:set_multiplayer_poll_enabled(enabled) end + +--- @return bool +function SceneTree:is_multiplayer_poll_enabled() end + + +----------------------------------------------------------- +-- SceneTreeTimer +----------------------------------------------------------- + +--- @class SceneTreeTimer: RefCounted, { [string]: any } +--- @field time_left float +SceneTreeTimer = {} + +SceneTreeTimer.timeout = Signal() + +--- @param time float +function SceneTreeTimer:set_time_left(time) end + +--- @return float +function SceneTreeTimer:get_time_left() end + + +----------------------------------------------------------- +-- Script +----------------------------------------------------------- + +--- @class Script: Resource, { [string]: any } +--- @field source_code String +Script = {} + +--- @return bool +function Script:can_instantiate() end + +--- @param base_object Object +--- @return bool +function Script:instance_has(base_object) end + +--- @return bool +function Script:has_source_code() end + +--- @return String +function Script:get_source_code() end + +--- @param source String +function Script:set_source_code(source) end + +--- @param keep_state bool? Default: false +--- @return Error +function Script:reload(keep_state) end + +--- @return Script +function Script:get_base_script() end + +--- @return StringName +function Script:get_instance_base_type() end + +--- @return StringName +function Script:get_global_name() end + +--- @param signal_name StringName +--- @return bool +function Script:has_script_signal(signal_name) end + +--- @return Array[Dictionary] +function Script:get_script_property_list() end + +--- @return Array[Dictionary] +function Script:get_script_method_list() end + +--- @return Array[Dictionary] +function Script:get_script_signal_list() end + +--- @return Dictionary +function Script:get_script_constant_map() end + +--- @param property StringName +--- @return any +function Script:get_property_default_value(property) end + +--- @return bool +function Script:is_tool() end + +--- @return bool +function Script:is_abstract() end + +--- @return any +function Script:get_rpc_config() end + + +----------------------------------------------------------- +-- ScriptBacktrace +----------------------------------------------------------- + +--- @class ScriptBacktrace: RefCounted, { [string]: any } +ScriptBacktrace = {} + +--- @return ScriptBacktrace +function ScriptBacktrace:new() end + +--- @return String +function ScriptBacktrace:get_language_name() end + +--- @return bool +function ScriptBacktrace:is_empty() end + +--- @return int +function ScriptBacktrace:get_frame_count() end + +--- @param index int +--- @return String +function ScriptBacktrace:get_frame_function(index) end + +--- @param index int +--- @return String +function ScriptBacktrace:get_frame_file(index) end + +--- @param index int +--- @return int +function ScriptBacktrace:get_frame_line(index) end + +--- @return int +function ScriptBacktrace:get_global_variable_count() end + +--- @param variable_index int +--- @return String +function ScriptBacktrace:get_global_variable_name(variable_index) end + +--- @param variable_index int +--- @return any +function ScriptBacktrace:get_global_variable_value(variable_index) end + +--- @param frame_index int +--- @return int +function ScriptBacktrace:get_local_variable_count(frame_index) end + +--- @param frame_index int +--- @param variable_index int +--- @return String +function ScriptBacktrace:get_local_variable_name(frame_index, variable_index) end + +--- @param frame_index int +--- @param variable_index int +--- @return any +function ScriptBacktrace:get_local_variable_value(frame_index, variable_index) end + +--- @param frame_index int +--- @return int +function ScriptBacktrace:get_member_variable_count(frame_index) end + +--- @param frame_index int +--- @param variable_index int +--- @return String +function ScriptBacktrace:get_member_variable_name(frame_index, variable_index) end + +--- @param frame_index int +--- @param variable_index int +--- @return any +function ScriptBacktrace:get_member_variable_value(frame_index, variable_index) end + +--- @param indent_all int? Default: 0 +--- @param indent_frames int? Default: 4 +--- @return String +function ScriptBacktrace:format(indent_all, indent_frames) end + + +----------------------------------------------------------- +-- ScriptCreateDialog +----------------------------------------------------------- + +--- @class ScriptCreateDialog: ConfirmationDialog, { [string]: any } +ScriptCreateDialog = {} + +--- @return ScriptCreateDialog +function ScriptCreateDialog:new() end + +ScriptCreateDialog.script_created = Signal() + +--- @param inherits String +--- @param path String +--- @param built_in_enabled bool? Default: true +--- @param load_enabled bool? Default: true +function ScriptCreateDialog:config(inherits, path, built_in_enabled, load_enabled) end + + +----------------------------------------------------------- +-- ScriptEditor +----------------------------------------------------------- + +--- @class ScriptEditor: PanelContainer, { [string]: any } +ScriptEditor = {} + +ScriptEditor.editor_script_changed = Signal() +ScriptEditor.script_close = Signal() + +--- @return ScriptEditorBase +function ScriptEditor:get_current_editor() end + +--- @return Array[ScriptEditorBase] +function ScriptEditor:get_open_script_editors() end + +--- @return PackedStringArray +function ScriptEditor:get_breakpoints() end + +--- @param syntax_highlighter EditorSyntaxHighlighter +function ScriptEditor:register_syntax_highlighter(syntax_highlighter) end + +--- @param syntax_highlighter EditorSyntaxHighlighter +function ScriptEditor:unregister_syntax_highlighter(syntax_highlighter) end + +--- @param line_number int +function ScriptEditor:goto_line(line_number) end + +--- @return Script +function ScriptEditor:get_current_script() end + +--- @return Array[Script] +function ScriptEditor:get_open_scripts() end + +--- @param base_name String +--- @param base_path String +function ScriptEditor:open_script_create_dialog(base_name, base_path) end + +--- @param topic String +function ScriptEditor:goto_help(topic) end + +--- @param script Script +function ScriptEditor:update_docs_from_script(script) end + +--- @param script Script +function ScriptEditor:clear_docs_from_script(script) end + + +----------------------------------------------------------- +-- ScriptEditorBase +----------------------------------------------------------- + +--- @class ScriptEditorBase: VBoxContainer, { [string]: any } +ScriptEditorBase = {} + +ScriptEditorBase.name_changed = Signal() +ScriptEditorBase.edited_script_changed = Signal() +ScriptEditorBase.request_help = Signal() +ScriptEditorBase.request_open_script_at_line = Signal() +ScriptEditorBase.request_save_history = Signal() +ScriptEditorBase.request_save_previous_state = Signal() +ScriptEditorBase.go_to_help = Signal() +ScriptEditorBase.search_in_files_requested = Signal() +ScriptEditorBase.replace_in_files_requested = Signal() +ScriptEditorBase.go_to_method = Signal() + +--- @return Control +function ScriptEditorBase:get_base_editor() end + +--- @param highlighter EditorSyntaxHighlighter +function ScriptEditorBase:add_syntax_highlighter(highlighter) end + + +----------------------------------------------------------- +-- ScriptExtension +----------------------------------------------------------- + +--- @class ScriptExtension: Script, { [string]: any } +ScriptExtension = {} + +--- @return ScriptExtension +function ScriptExtension:new() end + +--- @return bool +function ScriptExtension:_editor_can_reload_from_file() end + +--- @param placeholder void* +function ScriptExtension:_placeholder_erased(placeholder) end + +--- @return bool +function ScriptExtension:_can_instantiate() end + +--- @return Script +function ScriptExtension:_get_base_script() end + +--- @return StringName +function ScriptExtension:_get_global_name() end + +--- @param script Script +--- @return bool +function ScriptExtension:_inherits_script(script) end + +--- @return StringName +function ScriptExtension:_get_instance_base_type() end + +--- @param for_object Object +--- @return void* +function ScriptExtension:_instance_create(for_object) end + +--- @param for_object Object +--- @return void* +function ScriptExtension:_placeholder_instance_create(for_object) end + +--- @param object Object +--- @return bool +function ScriptExtension:_instance_has(object) end + +--- @return bool +function ScriptExtension:_has_source_code() end + +--- @return String +function ScriptExtension:_get_source_code() end + +--- @param code String +function ScriptExtension:_set_source_code(code) end + +--- @param keep_state bool +--- @return Error +function ScriptExtension:_reload(keep_state) end + +--- @return StringName +function ScriptExtension:_get_doc_class_name() end + +--- @return Array[Dictionary] +function ScriptExtension:_get_documentation() end + +--- @return String +function ScriptExtension:_get_class_icon_path() end + +--- @param method StringName +--- @return bool +function ScriptExtension:_has_method(method) end + +--- @param method StringName +--- @return bool +function ScriptExtension:_has_static_method(method) end + +--- @param method StringName +--- @return any +function ScriptExtension:_get_script_method_argument_count(method) end + +--- @param method StringName +--- @return Dictionary +function ScriptExtension:_get_method_info(method) end + +--- @return bool +function ScriptExtension:_is_tool() end + +--- @return bool +function ScriptExtension:_is_valid() end + +--- @return bool +function ScriptExtension:_is_abstract() end + +--- @return ScriptLanguage +function ScriptExtension:_get_language() end + +--- @param signal StringName +--- @return bool +function ScriptExtension:_has_script_signal(signal) end + +--- @return Array[Dictionary] +function ScriptExtension:_get_script_signal_list() end + +--- @param property StringName +--- @return bool +function ScriptExtension:_has_property_default_value(property) end + +--- @param property StringName +--- @return any +function ScriptExtension:_get_property_default_value(property) end + +function ScriptExtension:_update_exports() end + +--- @return Array[Dictionary] +function ScriptExtension:_get_script_method_list() end + +--- @return Array[Dictionary] +function ScriptExtension:_get_script_property_list() end + +--- @param member StringName +--- @return int +function ScriptExtension:_get_member_line(member) end + +--- @return Dictionary +function ScriptExtension:_get_constants() end + +--- @return Array[StringName] +function ScriptExtension:_get_members() end + +--- @return bool +function ScriptExtension:_is_placeholder_fallback_enabled() end + +--- @return any +function ScriptExtension:_get_rpc_config() end + + +----------------------------------------------------------- +-- ScriptLanguage +----------------------------------------------------------- + +--- @class ScriptLanguage: Object, { [string]: any } +ScriptLanguage = {} + +--- @alias ScriptLanguage.ScriptNameCasing `ScriptLanguage.SCRIPT_NAME_CASING_AUTO` | `ScriptLanguage.SCRIPT_NAME_CASING_PASCAL_CASE` | `ScriptLanguage.SCRIPT_NAME_CASING_SNAKE_CASE` | `ScriptLanguage.SCRIPT_NAME_CASING_KEBAB_CASE` | `ScriptLanguage.SCRIPT_NAME_CASING_CAMEL_CASE` +ScriptLanguage.SCRIPT_NAME_CASING_AUTO = 0 +ScriptLanguage.SCRIPT_NAME_CASING_PASCAL_CASE = 1 +ScriptLanguage.SCRIPT_NAME_CASING_SNAKE_CASE = 2 +ScriptLanguage.SCRIPT_NAME_CASING_KEBAB_CASE = 3 +ScriptLanguage.SCRIPT_NAME_CASING_CAMEL_CASE = 4 + + +----------------------------------------------------------- +-- ScriptLanguageExtension +----------------------------------------------------------- + +--- @class ScriptLanguageExtension: ScriptLanguage, { [string]: any } +ScriptLanguageExtension = {} + +--- @return ScriptLanguageExtension +function ScriptLanguageExtension:new() end + +--- @alias ScriptLanguageExtension.LookupResultType `ScriptLanguageExtension.LOOKUP_RESULT_SCRIPT_LOCATION` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_CONSTANT` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_PROPERTY` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_METHOD` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_SIGNAL` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_ENUM` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE` | `ScriptLanguageExtension.LOOKUP_RESULT_CLASS_ANNOTATION` | `ScriptLanguageExtension.LOOKUP_RESULT_LOCAL_CONSTANT` | `ScriptLanguageExtension.LOOKUP_RESULT_LOCAL_VARIABLE` | `ScriptLanguageExtension.LOOKUP_RESULT_MAX` +ScriptLanguageExtension.LOOKUP_RESULT_SCRIPT_LOCATION = 0 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS = 1 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_CONSTANT = 2 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_PROPERTY = 3 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_METHOD = 4 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_SIGNAL = 5 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_ENUM = 6 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE = 7 +ScriptLanguageExtension.LOOKUP_RESULT_CLASS_ANNOTATION = 8 +ScriptLanguageExtension.LOOKUP_RESULT_LOCAL_CONSTANT = 9 +ScriptLanguageExtension.LOOKUP_RESULT_LOCAL_VARIABLE = 10 +ScriptLanguageExtension.LOOKUP_RESULT_MAX = 11 + +--- @alias ScriptLanguageExtension.CodeCompletionLocation `ScriptLanguageExtension.LOCATION_LOCAL` | `ScriptLanguageExtension.LOCATION_PARENT_MASK` | `ScriptLanguageExtension.LOCATION_OTHER_USER_CODE` | `ScriptLanguageExtension.LOCATION_OTHER` +ScriptLanguageExtension.LOCATION_LOCAL = 0 +ScriptLanguageExtension.LOCATION_PARENT_MASK = 256 +ScriptLanguageExtension.LOCATION_OTHER_USER_CODE = 512 +ScriptLanguageExtension.LOCATION_OTHER = 1024 + +--- @alias ScriptLanguageExtension.CodeCompletionKind `ScriptLanguageExtension.CODE_COMPLETION_KIND_CLASS` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_FUNCTION` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_SIGNAL` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_VARIABLE` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_MEMBER` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_ENUM` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_CONSTANT` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_NODE_PATH` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_FILE_PATH` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_PLAIN_TEXT` | `ScriptLanguageExtension.CODE_COMPLETION_KIND_MAX` +ScriptLanguageExtension.CODE_COMPLETION_KIND_CLASS = 0 +ScriptLanguageExtension.CODE_COMPLETION_KIND_FUNCTION = 1 +ScriptLanguageExtension.CODE_COMPLETION_KIND_SIGNAL = 2 +ScriptLanguageExtension.CODE_COMPLETION_KIND_VARIABLE = 3 +ScriptLanguageExtension.CODE_COMPLETION_KIND_MEMBER = 4 +ScriptLanguageExtension.CODE_COMPLETION_KIND_ENUM = 5 +ScriptLanguageExtension.CODE_COMPLETION_KIND_CONSTANT = 6 +ScriptLanguageExtension.CODE_COMPLETION_KIND_NODE_PATH = 7 +ScriptLanguageExtension.CODE_COMPLETION_KIND_FILE_PATH = 8 +ScriptLanguageExtension.CODE_COMPLETION_KIND_PLAIN_TEXT = 9 +ScriptLanguageExtension.CODE_COMPLETION_KIND_MAX = 10 + +--- @return String +function ScriptLanguageExtension:_get_name() end + +function ScriptLanguageExtension:_init() end + +--- @return String +function ScriptLanguageExtension:_get_type() end + +--- @return String +function ScriptLanguageExtension:_get_extension() end + +function ScriptLanguageExtension:_finish() end + +--- @return PackedStringArray +function ScriptLanguageExtension:_get_reserved_words() end + +--- @param keyword String +--- @return bool +function ScriptLanguageExtension:_is_control_flow_keyword(keyword) end + +--- @return PackedStringArray +function ScriptLanguageExtension:_get_comment_delimiters() end + +--- @return PackedStringArray +function ScriptLanguageExtension:_get_doc_comment_delimiters() end + +--- @return PackedStringArray +function ScriptLanguageExtension:_get_string_delimiters() end + +--- @param template String +--- @param class_name String +--- @param base_class_name String +--- @return Script +function ScriptLanguageExtension:_make_template(template, class_name, base_class_name) end + +--- @param object StringName +--- @return Array[Dictionary] +function ScriptLanguageExtension:_get_built_in_templates(object) end + +--- @return bool +function ScriptLanguageExtension:_is_using_templates() end + +--- @param script String +--- @param path String +--- @param validate_functions bool +--- @param validate_errors bool +--- @param validate_warnings bool +--- @param validate_safe_lines bool +--- @return Dictionary +function ScriptLanguageExtension:_validate(script, path, validate_functions, validate_errors, validate_warnings, validate_safe_lines) end + +--- @param path String +--- @return String +function ScriptLanguageExtension:_validate_path(path) end + +--- @return Object +function ScriptLanguageExtension:_create_script() end + +--- @return bool +function ScriptLanguageExtension:_has_named_classes() end + +--- @return bool +function ScriptLanguageExtension:_supports_builtin_mode() end + +--- @return bool +function ScriptLanguageExtension:_supports_documentation() end + +--- @return bool +function ScriptLanguageExtension:_can_inherit_from_file() end + +--- @param _function String +--- @param code String +--- @return int +function ScriptLanguageExtension:_find_function(_function, code) end + +--- @param class_name String +--- @param function_name String +--- @param function_args PackedStringArray +--- @return String +function ScriptLanguageExtension:_make_function(class_name, function_name, function_args) end + +--- @return bool +function ScriptLanguageExtension:_can_make_function() end + +--- @param script Script +--- @param line int +--- @param column int +--- @return Error +function ScriptLanguageExtension:_open_in_external_editor(script, line, column) end + +--- @return bool +function ScriptLanguageExtension:_overrides_external_editor() end + +--- @return ScriptLanguage.ScriptNameCasing +function ScriptLanguageExtension:_preferred_file_name_casing() end + +--- @param code String +--- @param path String +--- @param owner Object +--- @return Dictionary +function ScriptLanguageExtension:_complete_code(code, path, owner) end + +--- @param code String +--- @param symbol String +--- @param path String +--- @param owner Object +--- @return Dictionary +function ScriptLanguageExtension:_lookup_code(code, symbol, path, owner) end + +--- @param code String +--- @param from_line int +--- @param to_line int +--- @return String +function ScriptLanguageExtension:_auto_indent_code(code, from_line, to_line) end + +--- @param name StringName +--- @param value any +function ScriptLanguageExtension:_add_global_constant(name, value) end + +--- @param name StringName +--- @param value any +function ScriptLanguageExtension:_add_named_global_constant(name, value) end + +--- @param name StringName +function ScriptLanguageExtension:_remove_named_global_constant(name) end + +function ScriptLanguageExtension:_thread_enter() end + +function ScriptLanguageExtension:_thread_exit() end + +--- @return String +function ScriptLanguageExtension:_debug_get_error() end + +--- @return int +function ScriptLanguageExtension:_debug_get_stack_level_count() end + +--- @param level int +--- @return int +function ScriptLanguageExtension:_debug_get_stack_level_line(level) end + +--- @param level int +--- @return String +function ScriptLanguageExtension:_debug_get_stack_level_function(level) end + +--- @param level int +--- @return String +function ScriptLanguageExtension:_debug_get_stack_level_source(level) end + +--- @param level int +--- @param max_subitems int +--- @param max_depth int +--- @return Dictionary +function ScriptLanguageExtension:_debug_get_stack_level_locals(level, max_subitems, max_depth) end + +--- @param level int +--- @param max_subitems int +--- @param max_depth int +--- @return Dictionary +function ScriptLanguageExtension:_debug_get_stack_level_members(level, max_subitems, max_depth) end + +--- @param level int +--- @return void* +function ScriptLanguageExtension:_debug_get_stack_level_instance(level) end + +--- @param max_subitems int +--- @param max_depth int +--- @return Dictionary +function ScriptLanguageExtension:_debug_get_globals(max_subitems, max_depth) end + +--- @param level int +--- @param expression String +--- @param max_subitems int +--- @param max_depth int +--- @return String +function ScriptLanguageExtension:_debug_parse_stack_level_expression(level, expression, max_subitems, max_depth) end + +--- @return Array[Dictionary] +function ScriptLanguageExtension:_debug_get_current_stack_info() end + +function ScriptLanguageExtension:_reload_all_scripts() end + +--- @param scripts Array +--- @param soft_reload bool +function ScriptLanguageExtension:_reload_scripts(scripts, soft_reload) end + +--- @param script Script +--- @param soft_reload bool +function ScriptLanguageExtension:_reload_tool_script(script, soft_reload) end + +--- @return PackedStringArray +function ScriptLanguageExtension:_get_recognized_extensions() end + +--- @return Array[Dictionary] +function ScriptLanguageExtension:_get_public_functions() end + +--- @return Dictionary +function ScriptLanguageExtension:_get_public_constants() end + +--- @return Array[Dictionary] +function ScriptLanguageExtension:_get_public_annotations() end + +function ScriptLanguageExtension:_profiling_start() end + +function ScriptLanguageExtension:_profiling_stop() end + +--- @param enable bool +function ScriptLanguageExtension:_profiling_set_save_native_calls(enable) end + +--- @param info_array ScriptLanguageExtensionProfilingInfo* +--- @param info_max int +--- @return int +function ScriptLanguageExtension:_profiling_get_accumulated_data(info_array, info_max) end + +--- @param info_array ScriptLanguageExtensionProfilingInfo* +--- @param info_max int +--- @return int +function ScriptLanguageExtension:_profiling_get_frame_data(info_array, info_max) end + +function ScriptLanguageExtension:_frame() end + +--- @param type String +--- @return bool +function ScriptLanguageExtension:_handles_global_class_type(type) end + +--- @param path String +--- @return Dictionary +function ScriptLanguageExtension:_get_global_class_name(path) end + + +----------------------------------------------------------- +-- ScrollBar +----------------------------------------------------------- + +--- @class ScrollBar: Range, { [string]: any } +--- @field custom_step float +ScrollBar = {} + +ScrollBar.scrolling = Signal() + +--- @param step float +function ScrollBar:set_custom_step(step) end + +--- @return float +function ScrollBar:get_custom_step() end + + +----------------------------------------------------------- +-- ScrollContainer +----------------------------------------------------------- + +--- @class ScrollContainer: Container, { [string]: any } +--- @field follow_focus bool +--- @field draw_focus_border bool +--- @field scroll_horizontal int +--- @field scroll_vertical int +--- @field scroll_horizontal_custom_step float +--- @field scroll_vertical_custom_step float +--- @field horizontal_scroll_mode int +--- @field vertical_scroll_mode int +--- @field scroll_deadzone int +ScrollContainer = {} + +--- @return ScrollContainer +function ScrollContainer:new() end + +--- @alias ScrollContainer.ScrollMode `ScrollContainer.SCROLL_MODE_DISABLED` | `ScrollContainer.SCROLL_MODE_AUTO` | `ScrollContainer.SCROLL_MODE_SHOW_ALWAYS` | `ScrollContainer.SCROLL_MODE_SHOW_NEVER` | `ScrollContainer.SCROLL_MODE_RESERVE` +ScrollContainer.SCROLL_MODE_DISABLED = 0 +ScrollContainer.SCROLL_MODE_AUTO = 1 +ScrollContainer.SCROLL_MODE_SHOW_ALWAYS = 2 +ScrollContainer.SCROLL_MODE_SHOW_NEVER = 3 +ScrollContainer.SCROLL_MODE_RESERVE = 4 + +ScrollContainer.scroll_started = Signal() +ScrollContainer.scroll_ended = Signal() + +--- @param value int +function ScrollContainer:set_h_scroll(value) end + +--- @return int +function ScrollContainer:get_h_scroll() end + +--- @param value int +function ScrollContainer:set_v_scroll(value) end + +--- @return int +function ScrollContainer:get_v_scroll() end + +--- @param value float +function ScrollContainer:set_horizontal_custom_step(value) end + +--- @return float +function ScrollContainer:get_horizontal_custom_step() end + +--- @param value float +function ScrollContainer:set_vertical_custom_step(value) end + +--- @return float +function ScrollContainer:get_vertical_custom_step() end + +--- @param enable ScrollContainer.ScrollMode +function ScrollContainer:set_horizontal_scroll_mode(enable) end + +--- @return ScrollContainer.ScrollMode +function ScrollContainer:get_horizontal_scroll_mode() end + +--- @param enable ScrollContainer.ScrollMode +function ScrollContainer:set_vertical_scroll_mode(enable) end + +--- @return ScrollContainer.ScrollMode +function ScrollContainer:get_vertical_scroll_mode() end + +--- @param deadzone int +function ScrollContainer:set_deadzone(deadzone) end + +--- @return int +function ScrollContainer:get_deadzone() end + +--- @param enabled bool +function ScrollContainer:set_follow_focus(enabled) end + +--- @return bool +function ScrollContainer:is_following_focus() end + +--- @return HScrollBar +function ScrollContainer:get_h_scroll_bar() end + +--- @return VScrollBar +function ScrollContainer:get_v_scroll_bar() end + +--- @param control Control +function ScrollContainer:ensure_control_visible(control) end + +--- @param draw bool +function ScrollContainer:set_draw_focus_border(draw) end + +--- @return bool +function ScrollContainer:get_draw_focus_border() end + + +----------------------------------------------------------- +-- SegmentShape2D +----------------------------------------------------------- + +--- @class SegmentShape2D: Shape2D, { [string]: any } +--- @field a Vector2 +--- @field b Vector2 +SegmentShape2D = {} + +--- @return SegmentShape2D +function SegmentShape2D:new() end + +--- @param a Vector2 +function SegmentShape2D:set_a(a) end + +--- @return Vector2 +function SegmentShape2D:get_a() end + +--- @param b Vector2 +function SegmentShape2D:set_b(b) end + +--- @return Vector2 +function SegmentShape2D:get_b() end + + +----------------------------------------------------------- +-- Semaphore +----------------------------------------------------------- + +--- @class Semaphore: RefCounted, { [string]: any } +Semaphore = {} + +--- @return Semaphore +function Semaphore:new() end + +function Semaphore:wait() end + +--- @return bool +function Semaphore:try_wait() end + +--- @param count int? Default: 1 +function Semaphore:post(count) end + + +----------------------------------------------------------- +-- SeparationRayShape2D +----------------------------------------------------------- + +--- @class SeparationRayShape2D: Shape2D, { [string]: any } +--- @field length float +--- @field slide_on_slope bool +SeparationRayShape2D = {} + +--- @return SeparationRayShape2D +function SeparationRayShape2D:new() end + +--- @param length float +function SeparationRayShape2D:set_length(length) end + +--- @return float +function SeparationRayShape2D:get_length() end + +--- @param active bool +function SeparationRayShape2D:set_slide_on_slope(active) end + +--- @return bool +function SeparationRayShape2D:get_slide_on_slope() end + + +----------------------------------------------------------- +-- SeparationRayShape3D +----------------------------------------------------------- + +--- @class SeparationRayShape3D: Shape3D, { [string]: any } +--- @field length float +--- @field slide_on_slope bool +SeparationRayShape3D = {} + +--- @return SeparationRayShape3D +function SeparationRayShape3D:new() end + +--- @param length float +function SeparationRayShape3D:set_length(length) end + +--- @return float +function SeparationRayShape3D:get_length() end + +--- @param active bool +function SeparationRayShape3D:set_slide_on_slope(active) end + +--- @return bool +function SeparationRayShape3D:get_slide_on_slope() end + + +----------------------------------------------------------- +-- Separator +----------------------------------------------------------- + +--- @class Separator: Control, { [string]: any } +Separator = {} + + +----------------------------------------------------------- +-- Shader +----------------------------------------------------------- + +--- @class Shader: Resource, { [string]: any } +--- @field code String +Shader = {} + +--- @return Shader +function Shader:new() end + +--- @alias Shader.Mode `Shader.MODE_SPATIAL` | `Shader.MODE_CANVAS_ITEM` | `Shader.MODE_PARTICLES` | `Shader.MODE_SKY` | `Shader.MODE_FOG` +Shader.MODE_SPATIAL = 0 +Shader.MODE_CANVAS_ITEM = 1 +Shader.MODE_PARTICLES = 2 +Shader.MODE_SKY = 3 +Shader.MODE_FOG = 4 + +--- @return Shader.Mode +function Shader:get_mode() end + +--- @param code String +function Shader:set_code(code) end + +--- @return String +function Shader:get_code() end + +--- @param name StringName +--- @param texture Texture +--- @param index int? Default: 0 +function Shader:set_default_texture_parameter(name, texture, index) end + +--- @param name StringName +--- @param index int? Default: 0 +--- @return Texture +function Shader:get_default_texture_parameter(name, index) end + +--- @param get_groups bool? Default: false +--- @return Array +function Shader:get_shader_uniform_list(get_groups) end + +function Shader:inspect_native_shader_code() end + + +----------------------------------------------------------- +-- ShaderGlobalsOverride +----------------------------------------------------------- + +--- @class ShaderGlobalsOverride: Node, { [string]: any } +ShaderGlobalsOverride = {} + +--- @return ShaderGlobalsOverride +function ShaderGlobalsOverride:new() end + + +----------------------------------------------------------- +-- ShaderInclude +----------------------------------------------------------- + +--- @class ShaderInclude: Resource, { [string]: any } +--- @field code String +ShaderInclude = {} + +--- @return ShaderInclude +function ShaderInclude:new() end + +--- @param code String +function ShaderInclude:set_code(code) end + +--- @return String +function ShaderInclude:get_code() end + + +----------------------------------------------------------- +-- ShaderIncludeDB +----------------------------------------------------------- + +--- @class ShaderIncludeDB: Object, { [string]: any } +ShaderIncludeDB = {} + +--- @return ShaderIncludeDB +function ShaderIncludeDB:new() end + +--- static +--- @return PackedStringArray +function ShaderIncludeDB:list_built_in_include_files() end + +--- static +--- @param filename String +--- @return bool +function ShaderIncludeDB:has_built_in_include_file(filename) end + +--- static +--- @param filename String +--- @return String +function ShaderIncludeDB:get_built_in_include_file(filename) end + + +----------------------------------------------------------- +-- ShaderMaterial +----------------------------------------------------------- + +--- @class ShaderMaterial: Material, { [string]: any } +--- @field shader Shader +ShaderMaterial = {} + +--- @return ShaderMaterial +function ShaderMaterial:new() end + +--- @param shader Shader +function ShaderMaterial:set_shader(shader) end + +--- @return Shader +function ShaderMaterial:get_shader() end + +--- @param param StringName +--- @param value any +function ShaderMaterial:set_shader_parameter(param, value) end + +--- @param param StringName +--- @return any +function ShaderMaterial:get_shader_parameter(param) end + + +----------------------------------------------------------- +-- Shape2D +----------------------------------------------------------- + +--- @class Shape2D: Resource, { [string]: any } +--- @field custom_solver_bias float +Shape2D = {} + +--- @param bias float +function Shape2D:set_custom_solver_bias(bias) end + +--- @return float +function Shape2D:get_custom_solver_bias() end + +--- @param local_xform Transform2D +--- @param with_shape Shape2D +--- @param shape_xform Transform2D +--- @return bool +function Shape2D:collide(local_xform, with_shape, shape_xform) end + +--- @param local_xform Transform2D +--- @param local_motion Vector2 +--- @param with_shape Shape2D +--- @param shape_xform Transform2D +--- @param shape_motion Vector2 +--- @return bool +function Shape2D:collide_with_motion(local_xform, local_motion, with_shape, shape_xform, shape_motion) end + +--- @param local_xform Transform2D +--- @param with_shape Shape2D +--- @param shape_xform Transform2D +--- @return PackedVector2Array +function Shape2D:collide_and_get_contacts(local_xform, with_shape, shape_xform) end + +--- @param local_xform Transform2D +--- @param local_motion Vector2 +--- @param with_shape Shape2D +--- @param shape_xform Transform2D +--- @param shape_motion Vector2 +--- @return PackedVector2Array +function Shape2D:collide_with_motion_and_get_contacts(local_xform, local_motion, with_shape, shape_xform, shape_motion) end + +--- @param canvas_item RID +--- @param color Color +function Shape2D:draw(canvas_item, color) end + +--- @return Rect2 +function Shape2D:get_rect() end + + +----------------------------------------------------------- +-- Shape3D +----------------------------------------------------------- + +--- @class Shape3D: Resource, { [string]: any } +--- @field custom_solver_bias float +--- @field margin float +Shape3D = {} + +--- @param bias float +function Shape3D:set_custom_solver_bias(bias) end + +--- @return float +function Shape3D:get_custom_solver_bias() end + +--- @param margin float +function Shape3D:set_margin(margin) end + +--- @return float +function Shape3D:get_margin() end + +--- @return ArrayMesh +function Shape3D:get_debug_mesh() end + + +----------------------------------------------------------- +-- ShapeCast2D +----------------------------------------------------------- + +--- @class ShapeCast2D: Node2D, { [string]: any } +--- @field enabled bool +--- @field shape Shape2D +--- @field exclude_parent bool +--- @field target_position Vector2 +--- @field margin float +--- @field max_results int +--- @field collision_mask int +--- @field collision_result Array +--- @field collide_with_areas bool +--- @field collide_with_bodies bool +ShapeCast2D = {} + +--- @return ShapeCast2D +function ShapeCast2D:new() end + +--- @param enabled bool +function ShapeCast2D:set_enabled(enabled) end + +--- @return bool +function ShapeCast2D:is_enabled() end + +--- @param shape Shape2D +function ShapeCast2D:set_shape(shape) end + +--- @return Shape2D +function ShapeCast2D:get_shape() end + +--- @param local_point Vector2 +function ShapeCast2D:set_target_position(local_point) end + +--- @return Vector2 +function ShapeCast2D:get_target_position() end + +--- @param margin float +function ShapeCast2D:set_margin(margin) end + +--- @return float +function ShapeCast2D:get_margin() end + +--- @param max_results int +function ShapeCast2D:set_max_results(max_results) end + +--- @return int +function ShapeCast2D:get_max_results() end + +--- @return bool +function ShapeCast2D:is_colliding() end + +--- @return int +function ShapeCast2D:get_collision_count() end + +function ShapeCast2D:force_shapecast_update() end + +--- @param index int +--- @return Object +function ShapeCast2D:get_collider(index) end + +--- @param index int +--- @return RID +function ShapeCast2D:get_collider_rid(index) end + +--- @param index int +--- @return int +function ShapeCast2D:get_collider_shape(index) end + +--- @param index int +--- @return Vector2 +function ShapeCast2D:get_collision_point(index) end + +--- @param index int +--- @return Vector2 +function ShapeCast2D:get_collision_normal(index) end + +--- @return float +function ShapeCast2D:get_closest_collision_safe_fraction() end + +--- @return float +function ShapeCast2D:get_closest_collision_unsafe_fraction() end + +--- @param rid RID +function ShapeCast2D:add_exception_rid(rid) end + +--- @param node CollisionObject2D +function ShapeCast2D:add_exception(node) end + +--- @param rid RID +function ShapeCast2D:remove_exception_rid(rid) end + +--- @param node CollisionObject2D +function ShapeCast2D:remove_exception(node) end + +function ShapeCast2D:clear_exceptions() end + +--- @param mask int +function ShapeCast2D:set_collision_mask(mask) end + +--- @return int +function ShapeCast2D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function ShapeCast2D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function ShapeCast2D:get_collision_mask_value(layer_number) end + +--- @param mask bool +function ShapeCast2D:set_exclude_parent_body(mask) end + +--- @return bool +function ShapeCast2D:get_exclude_parent_body() end + +--- @param enable bool +function ShapeCast2D:set_collide_with_areas(enable) end + +--- @return bool +function ShapeCast2D:is_collide_with_areas_enabled() end + +--- @param enable bool +function ShapeCast2D:set_collide_with_bodies(enable) end + +--- @return bool +function ShapeCast2D:is_collide_with_bodies_enabled() end + +--- @return Array +function ShapeCast2D:get_collision_result() end + + +----------------------------------------------------------- +-- ShapeCast3D +----------------------------------------------------------- + +--- @class ShapeCast3D: Node3D, { [string]: any } +--- @field enabled bool +--- @field shape Shape3D +--- @field exclude_parent bool +--- @field target_position Vector3 +--- @field margin float +--- @field max_results int +--- @field collision_mask int +--- @field collision_result Array +--- @field collide_with_areas bool +--- @field collide_with_bodies bool +--- @field debug_shape_custom_color Color +ShapeCast3D = {} + +--- @return ShapeCast3D +function ShapeCast3D:new() end + +--- @param resource Resource +function ShapeCast3D:resource_changed(resource) end + +--- @param enabled bool +function ShapeCast3D:set_enabled(enabled) end + +--- @return bool +function ShapeCast3D:is_enabled() end + +--- @param shape Shape3D +function ShapeCast3D:set_shape(shape) end + +--- @return Shape3D +function ShapeCast3D:get_shape() end + +--- @param local_point Vector3 +function ShapeCast3D:set_target_position(local_point) end + +--- @return Vector3 +function ShapeCast3D:get_target_position() end + +--- @param margin float +function ShapeCast3D:set_margin(margin) end + +--- @return float +function ShapeCast3D:get_margin() end + +--- @param max_results int +function ShapeCast3D:set_max_results(max_results) end + +--- @return int +function ShapeCast3D:get_max_results() end + +--- @return bool +function ShapeCast3D:is_colliding() end + +--- @return int +function ShapeCast3D:get_collision_count() end + +function ShapeCast3D:force_shapecast_update() end + +--- @param index int +--- @return Object +function ShapeCast3D:get_collider(index) end + +--- @param index int +--- @return RID +function ShapeCast3D:get_collider_rid(index) end + +--- @param index int +--- @return int +function ShapeCast3D:get_collider_shape(index) end + +--- @param index int +--- @return Vector3 +function ShapeCast3D:get_collision_point(index) end + +--- @param index int +--- @return Vector3 +function ShapeCast3D:get_collision_normal(index) end + +--- @return float +function ShapeCast3D:get_closest_collision_safe_fraction() end + +--- @return float +function ShapeCast3D:get_closest_collision_unsafe_fraction() end + +--- @param rid RID +function ShapeCast3D:add_exception_rid(rid) end + +--- @param node CollisionObject3D +function ShapeCast3D:add_exception(node) end + +--- @param rid RID +function ShapeCast3D:remove_exception_rid(rid) end + +--- @param node CollisionObject3D +function ShapeCast3D:remove_exception(node) end + +function ShapeCast3D:clear_exceptions() end + +--- @param mask int +function ShapeCast3D:set_collision_mask(mask) end + +--- @return int +function ShapeCast3D:get_collision_mask() end + +--- @param layer_number int +--- @param value bool +function ShapeCast3D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function ShapeCast3D:get_collision_mask_value(layer_number) end + +--- @param mask bool +function ShapeCast3D:set_exclude_parent_body(mask) end + +--- @return bool +function ShapeCast3D:get_exclude_parent_body() end + +--- @param enable bool +function ShapeCast3D:set_collide_with_areas(enable) end + +--- @return bool +function ShapeCast3D:is_collide_with_areas_enabled() end + +--- @param enable bool +function ShapeCast3D:set_collide_with_bodies(enable) end + +--- @return bool +function ShapeCast3D:is_collide_with_bodies_enabled() end + +--- @return Array +function ShapeCast3D:get_collision_result() end + +--- @param debug_shape_custom_color Color +function ShapeCast3D:set_debug_shape_custom_color(debug_shape_custom_color) end + +--- @return Color +function ShapeCast3D:get_debug_shape_custom_color() end + + +----------------------------------------------------------- +-- Shortcut +----------------------------------------------------------- + +--- @class Shortcut: Resource, { [string]: any } +--- @field events Array[24/17:InputEvent] +Shortcut = {} + +--- @return Shortcut +function Shortcut:new() end + +--- @param events Array +function Shortcut:set_events(events) end + +--- @return Array +function Shortcut:get_events() end + +--- @return bool +function Shortcut:has_valid_event() end + +--- @param event InputEvent +--- @return bool +function Shortcut:matches_event(event) end + +--- @return String +function Shortcut:get_as_text() end + + +----------------------------------------------------------- +-- Skeleton2D +----------------------------------------------------------- + +--- @class Skeleton2D: Node2D, { [string]: any } +Skeleton2D = {} + +--- @return Skeleton2D +function Skeleton2D:new() end + +Skeleton2D.bone_setup_changed = Signal() + +--- @return int +function Skeleton2D:get_bone_count() end + +--- @param idx int +--- @return Bone2D +function Skeleton2D:get_bone(idx) end + +--- @return RID +function Skeleton2D:get_skeleton() end + +--- @param modification_stack SkeletonModificationStack2D +function Skeleton2D:set_modification_stack(modification_stack) end + +--- @return SkeletonModificationStack2D +function Skeleton2D:get_modification_stack() end + +--- @param delta float +--- @param execution_mode int +function Skeleton2D:execute_modifications(delta, execution_mode) end + +--- @param bone_idx int +--- @param override_pose Transform2D +--- @param strength float +--- @param persistent bool +function Skeleton2D:set_bone_local_pose_override(bone_idx, override_pose, strength, persistent) end + +--- @param bone_idx int +--- @return Transform2D +function Skeleton2D:get_bone_local_pose_override(bone_idx) end + + +----------------------------------------------------------- +-- Skeleton3D +----------------------------------------------------------- + +--- @class Skeleton3D: Node3D, { [string]: any } +--- @field motion_scale float +--- @field show_rest_only bool +--- @field modifier_callback_mode_process int +--- @field animate_physical_bones bool +Skeleton3D = {} + +--- @return Skeleton3D +function Skeleton3D:new() end + +Skeleton3D.NOTIFICATION_UPDATE_SKELETON = 50 + +--- @alias Skeleton3D.ModifierCallbackModeProcess `Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_PHYSICS` | `Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_IDLE` | `Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_MANUAL` +Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_PHYSICS = 0 +Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_IDLE = 1 +Skeleton3D.MODIFIER_CALLBACK_MODE_PROCESS_MANUAL = 2 + +Skeleton3D.rest_updated = Signal() +Skeleton3D.pose_updated = Signal() +Skeleton3D.skeleton_updated = Signal() +Skeleton3D.bone_enabled_changed = Signal() +Skeleton3D.bone_list_changed = Signal() +Skeleton3D.show_rest_only_changed = Signal() + +--- @param name String +--- @return int +function Skeleton3D:add_bone(name) end + +--- @param name String +--- @return int +function Skeleton3D:find_bone(name) end + +--- @param bone_idx int +--- @return String +function Skeleton3D:get_bone_name(bone_idx) end + +--- @param bone_idx int +--- @param name String +function Skeleton3D:set_bone_name(bone_idx, name) end + +--- @param bone_idx int +--- @param key StringName +--- @return any +function Skeleton3D:get_bone_meta(bone_idx, key) end + +--- @param bone_idx int +--- @return Array[StringName] +function Skeleton3D:get_bone_meta_list(bone_idx) end + +--- @param bone_idx int +--- @param key StringName +--- @return bool +function Skeleton3D:has_bone_meta(bone_idx, key) end + +--- @param bone_idx int +--- @param key StringName +--- @param value any +function Skeleton3D:set_bone_meta(bone_idx, key, value) end + +--- @return StringName +function Skeleton3D:get_concatenated_bone_names() end + +--- @param bone_idx int +--- @return int +function Skeleton3D:get_bone_parent(bone_idx) end + +--- @param bone_idx int +--- @param parent_idx int +function Skeleton3D:set_bone_parent(bone_idx, parent_idx) end + +--- @return int +function Skeleton3D:get_bone_count() end + +--- @return int +function Skeleton3D:get_version() end + +--- @param bone_idx int +function Skeleton3D:unparent_bone_and_rest(bone_idx) end + +--- @param bone_idx int +--- @return PackedInt32Array +function Skeleton3D:get_bone_children(bone_idx) end + +--- @return PackedInt32Array +function Skeleton3D:get_parentless_bones() end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_rest(bone_idx) end + +--- @param bone_idx int +--- @param rest Transform3D +function Skeleton3D:set_bone_rest(bone_idx, rest) end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_global_rest(bone_idx) end + +--- @return Skin +function Skeleton3D:create_skin_from_rest_transforms() end + +--- @param skin Skin +--- @return SkinReference +function Skeleton3D:register_skin(skin) end + +function Skeleton3D:localize_rests() end + +function Skeleton3D:clear_bones() end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_pose(bone_idx) end + +--- @param bone_idx int +--- @param pose Transform3D +function Skeleton3D:set_bone_pose(bone_idx, pose) end + +--- @param bone_idx int +--- @param position Vector3 +function Skeleton3D:set_bone_pose_position(bone_idx, position) end + +--- @param bone_idx int +--- @param rotation Quaternion +function Skeleton3D:set_bone_pose_rotation(bone_idx, rotation) end + +--- @param bone_idx int +--- @param scale Vector3 +function Skeleton3D:set_bone_pose_scale(bone_idx, scale) end + +--- @param bone_idx int +--- @return Vector3 +function Skeleton3D:get_bone_pose_position(bone_idx) end + +--- @param bone_idx int +--- @return Quaternion +function Skeleton3D:get_bone_pose_rotation(bone_idx) end + +--- @param bone_idx int +--- @return Vector3 +function Skeleton3D:get_bone_pose_scale(bone_idx) end + +--- @param bone_idx int +function Skeleton3D:reset_bone_pose(bone_idx) end + +function Skeleton3D:reset_bone_poses() end + +--- @param bone_idx int +--- @return bool +function Skeleton3D:is_bone_enabled(bone_idx) end + +--- @param bone_idx int +--- @param enabled bool? Default: true +function Skeleton3D:set_bone_enabled(bone_idx, enabled) end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_global_pose(bone_idx) end + +--- @param bone_idx int +--- @param pose Transform3D +function Skeleton3D:set_bone_global_pose(bone_idx, pose) end + +function Skeleton3D:force_update_all_bone_transforms() end + +--- @param bone_idx int +function Skeleton3D:force_update_bone_child_transform(bone_idx) end + +--- @param motion_scale float +function Skeleton3D:set_motion_scale(motion_scale) end + +--- @return float +function Skeleton3D:get_motion_scale() end + +--- @param enabled bool +function Skeleton3D:set_show_rest_only(enabled) end + +--- @return bool +function Skeleton3D:is_show_rest_only() end + +--- @param mode Skeleton3D.ModifierCallbackModeProcess +function Skeleton3D:set_modifier_callback_mode_process(mode) end + +--- @return Skeleton3D.ModifierCallbackModeProcess +function Skeleton3D:get_modifier_callback_mode_process() end + +--- @param delta float +function Skeleton3D:advance(delta) end + +function Skeleton3D:clear_bones_global_pose_override() end + +--- @param bone_idx int +--- @param pose Transform3D +--- @param amount float +--- @param persistent bool? Default: false +function Skeleton3D:set_bone_global_pose_override(bone_idx, pose, amount, persistent) end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_global_pose_override(bone_idx) end + +--- @param bone_idx int +--- @return Transform3D +function Skeleton3D:get_bone_global_pose_no_override(bone_idx) end + +--- @param enabled bool +function Skeleton3D:set_animate_physical_bones(enabled) end + +--- @return bool +function Skeleton3D:get_animate_physical_bones() end + +function Skeleton3D:physical_bones_stop_simulation() end + +--- @param bones Array[StringName]? Default: [] +function Skeleton3D:physical_bones_start_simulation(bones) end + +--- @param exception RID +function Skeleton3D:physical_bones_add_collision_exception(exception) end + +--- @param exception RID +function Skeleton3D:physical_bones_remove_collision_exception(exception) end + + +----------------------------------------------------------- +-- SkeletonIK3D +----------------------------------------------------------- + +--- @class SkeletonIK3D: SkeletonModifier3D, { [string]: any } +--- @field root_bone StringName +--- @field tip_bone StringName +--- @field target Transform3D +--- @field override_tip_basis bool +--- @field use_magnet bool +--- @field magnet Vector3 +--- @field target_node NodePath +--- @field min_distance float +--- @field max_iterations int +--- @field interpolation float +SkeletonIK3D = {} + +--- @return SkeletonIK3D +function SkeletonIK3D:new() end + +--- @param root_bone StringName +function SkeletonIK3D:set_root_bone(root_bone) end + +--- @return StringName +function SkeletonIK3D:get_root_bone() end + +--- @param tip_bone StringName +function SkeletonIK3D:set_tip_bone(tip_bone) end + +--- @return StringName +function SkeletonIK3D:get_tip_bone() end + +--- @param target Transform3D +function SkeletonIK3D:set_target_transform(target) end + +--- @return Transform3D +function SkeletonIK3D:get_target_transform() end + +--- @param node NodePath +function SkeletonIK3D:set_target_node(node) end + +--- @return NodePath +function SkeletonIK3D:get_target_node() end + +--- @param override bool +function SkeletonIK3D:set_override_tip_basis(override) end + +--- @return bool +function SkeletonIK3D:is_override_tip_basis() end + +--- @param use bool +function SkeletonIK3D:set_use_magnet(use) end + +--- @return bool +function SkeletonIK3D:is_using_magnet() end + +--- @param local_position Vector3 +function SkeletonIK3D:set_magnet_position(local_position) end + +--- @return Vector3 +function SkeletonIK3D:get_magnet_position() end + +--- @return Skeleton3D +function SkeletonIK3D:get_parent_skeleton() end + +--- @return bool +function SkeletonIK3D:is_running() end + +--- @param min_distance float +function SkeletonIK3D:set_min_distance(min_distance) end + +--- @return float +function SkeletonIK3D:get_min_distance() end + +--- @param iterations int +function SkeletonIK3D:set_max_iterations(iterations) end + +--- @return int +function SkeletonIK3D:get_max_iterations() end + +--- @param one_time bool? Default: false +function SkeletonIK3D:start(one_time) end + +function SkeletonIK3D:stop() end + +--- @param interpolation float +function SkeletonIK3D:set_interpolation(interpolation) end + +--- @return float +function SkeletonIK3D:get_interpolation() end + + +----------------------------------------------------------- +-- SkeletonModification2D +----------------------------------------------------------- + +--- @class SkeletonModification2D: Resource, { [string]: any } +--- @field enabled bool +--- @field execution_mode int +SkeletonModification2D = {} + +--- @return SkeletonModification2D +function SkeletonModification2D:new() end + +--- @param delta float +function SkeletonModification2D:_execute(delta) end + +--- @param modification_stack SkeletonModificationStack2D +function SkeletonModification2D:_setup_modification(modification_stack) end + +function SkeletonModification2D:_draw_editor_gizmo() end + +--- @param enabled bool +function SkeletonModification2D:set_enabled(enabled) end + +--- @return bool +function SkeletonModification2D:get_enabled() end + +--- @return SkeletonModificationStack2D +function SkeletonModification2D:get_modification_stack() end + +--- @param is_setup bool +function SkeletonModification2D:set_is_setup(is_setup) end + +--- @return bool +function SkeletonModification2D:get_is_setup() end + +--- @param execution_mode int +function SkeletonModification2D:set_execution_mode(execution_mode) end + +--- @return int +function SkeletonModification2D:get_execution_mode() end + +--- @param angle float +--- @param min float +--- @param max float +--- @param invert bool +--- @return float +function SkeletonModification2D:clamp_angle(angle, min, max, invert) end + +--- @param draw_gizmo bool +function SkeletonModification2D:set_editor_draw_gizmo(draw_gizmo) end + +--- @return bool +function SkeletonModification2D:get_editor_draw_gizmo() end + + +----------------------------------------------------------- +-- SkeletonModification2DCCDIK +----------------------------------------------------------- + +--- @class SkeletonModification2DCCDIK: SkeletonModification2D, { [string]: any } +--- @field target_nodepath NodePath +--- @field tip_nodepath NodePath +--- @field ccdik_data_chain_length int +SkeletonModification2DCCDIK = {} + +--- @return SkeletonModification2DCCDIK +function SkeletonModification2DCCDIK:new() end + +--- @param target_nodepath NodePath +function SkeletonModification2DCCDIK:set_target_node(target_nodepath) end + +--- @return NodePath +function SkeletonModification2DCCDIK:get_target_node() end + +--- @param tip_nodepath NodePath +function SkeletonModification2DCCDIK:set_tip_node(tip_nodepath) end + +--- @return NodePath +function SkeletonModification2DCCDIK:get_tip_node() end + +--- @param length int +function SkeletonModification2DCCDIK:set_ccdik_data_chain_length(length) end + +--- @return int +function SkeletonModification2DCCDIK:get_ccdik_data_chain_length() end + +--- @param joint_idx int +--- @param bone2d_nodepath NodePath +function SkeletonModification2DCCDIK:set_ccdik_joint_bone2d_node(joint_idx, bone2d_nodepath) end + +--- @param joint_idx int +--- @return NodePath +function SkeletonModification2DCCDIK:get_ccdik_joint_bone2d_node(joint_idx) end + +--- @param joint_idx int +--- @param bone_idx int +function SkeletonModification2DCCDIK:set_ccdik_joint_bone_index(joint_idx, bone_idx) end + +--- @param joint_idx int +--- @return int +function SkeletonModification2DCCDIK:get_ccdik_joint_bone_index(joint_idx) end + +--- @param joint_idx int +--- @param rotate_from_joint bool +function SkeletonModification2DCCDIK:set_ccdik_joint_rotate_from_joint(joint_idx, rotate_from_joint) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DCCDIK:get_ccdik_joint_rotate_from_joint(joint_idx) end + +--- @param joint_idx int +--- @param enable_constraint bool +function SkeletonModification2DCCDIK:set_ccdik_joint_enable_constraint(joint_idx, enable_constraint) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DCCDIK:get_ccdik_joint_enable_constraint(joint_idx) end + +--- @param joint_idx int +--- @param angle_min float +function SkeletonModification2DCCDIK:set_ccdik_joint_constraint_angle_min(joint_idx, angle_min) end + +--- @param joint_idx int +--- @return float +function SkeletonModification2DCCDIK:get_ccdik_joint_constraint_angle_min(joint_idx) end + +--- @param joint_idx int +--- @param angle_max float +function SkeletonModification2DCCDIK:set_ccdik_joint_constraint_angle_max(joint_idx, angle_max) end + +--- @param joint_idx int +--- @return float +function SkeletonModification2DCCDIK:get_ccdik_joint_constraint_angle_max(joint_idx) end + +--- @param joint_idx int +--- @param invert bool +function SkeletonModification2DCCDIK:set_ccdik_joint_constraint_angle_invert(joint_idx, invert) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DCCDIK:get_ccdik_joint_constraint_angle_invert(joint_idx) end + + +----------------------------------------------------------- +-- SkeletonModification2DFABRIK +----------------------------------------------------------- + +--- @class SkeletonModification2DFABRIK: SkeletonModification2D, { [string]: any } +--- @field target_nodepath NodePath +--- @field fabrik_data_chain_length int +SkeletonModification2DFABRIK = {} + +--- @return SkeletonModification2DFABRIK +function SkeletonModification2DFABRIK:new() end + +--- @param target_nodepath NodePath +function SkeletonModification2DFABRIK:set_target_node(target_nodepath) end + +--- @return NodePath +function SkeletonModification2DFABRIK:get_target_node() end + +--- @param length int +function SkeletonModification2DFABRIK:set_fabrik_data_chain_length(length) end + +--- @return int +function SkeletonModification2DFABRIK:get_fabrik_data_chain_length() end + +--- @param joint_idx int +--- @param bone2d_nodepath NodePath +function SkeletonModification2DFABRIK:set_fabrik_joint_bone2d_node(joint_idx, bone2d_nodepath) end + +--- @param joint_idx int +--- @return NodePath +function SkeletonModification2DFABRIK:get_fabrik_joint_bone2d_node(joint_idx) end + +--- @param joint_idx int +--- @param bone_idx int +function SkeletonModification2DFABRIK:set_fabrik_joint_bone_index(joint_idx, bone_idx) end + +--- @param joint_idx int +--- @return int +function SkeletonModification2DFABRIK:get_fabrik_joint_bone_index(joint_idx) end + +--- @param joint_idx int +--- @param magnet_position Vector2 +function SkeletonModification2DFABRIK:set_fabrik_joint_magnet_position(joint_idx, magnet_position) end + +--- @param joint_idx int +--- @return Vector2 +function SkeletonModification2DFABRIK:get_fabrik_joint_magnet_position(joint_idx) end + +--- @param joint_idx int +--- @param use_target_rotation bool +function SkeletonModification2DFABRIK:set_fabrik_joint_use_target_rotation(joint_idx, use_target_rotation) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DFABRIK:get_fabrik_joint_use_target_rotation(joint_idx) end + + +----------------------------------------------------------- +-- SkeletonModification2DJiggle +----------------------------------------------------------- + +--- @class SkeletonModification2DJiggle: SkeletonModification2D, { [string]: any } +--- @field target_nodepath NodePath +--- @field jiggle_data_chain_length int +--- @field stiffness float +--- @field mass float +--- @field damping float +--- @field use_gravity bool +--- @field gravity Vector2 +SkeletonModification2DJiggle = {} + +--- @return SkeletonModification2DJiggle +function SkeletonModification2DJiggle:new() end + +--- @param target_nodepath NodePath +function SkeletonModification2DJiggle:set_target_node(target_nodepath) end + +--- @return NodePath +function SkeletonModification2DJiggle:get_target_node() end + +--- @param length int +function SkeletonModification2DJiggle:set_jiggle_data_chain_length(length) end + +--- @return int +function SkeletonModification2DJiggle:get_jiggle_data_chain_length() end + +--- @param stiffness float +function SkeletonModification2DJiggle:set_stiffness(stiffness) end + +--- @return float +function SkeletonModification2DJiggle:get_stiffness() end + +--- @param mass float +function SkeletonModification2DJiggle:set_mass(mass) end + +--- @return float +function SkeletonModification2DJiggle:get_mass() end + +--- @param damping float +function SkeletonModification2DJiggle:set_damping(damping) end + +--- @return float +function SkeletonModification2DJiggle:get_damping() end + +--- @param use_gravity bool +function SkeletonModification2DJiggle:set_use_gravity(use_gravity) end + +--- @return bool +function SkeletonModification2DJiggle:get_use_gravity() end + +--- @param gravity Vector2 +function SkeletonModification2DJiggle:set_gravity(gravity) end + +--- @return Vector2 +function SkeletonModification2DJiggle:get_gravity() end + +--- @param use_colliders bool +function SkeletonModification2DJiggle:set_use_colliders(use_colliders) end + +--- @return bool +function SkeletonModification2DJiggle:get_use_colliders() end + +--- @param collision_mask int +function SkeletonModification2DJiggle:set_collision_mask(collision_mask) end + +--- @return int +function SkeletonModification2DJiggle:get_collision_mask() end + +--- @param joint_idx int +--- @param bone2d_node NodePath +function SkeletonModification2DJiggle:set_jiggle_joint_bone2d_node(joint_idx, bone2d_node) end + +--- @param joint_idx int +--- @return NodePath +function SkeletonModification2DJiggle:get_jiggle_joint_bone2d_node(joint_idx) end + +--- @param joint_idx int +--- @param bone_idx int +function SkeletonModification2DJiggle:set_jiggle_joint_bone_index(joint_idx, bone_idx) end + +--- @param joint_idx int +--- @return int +function SkeletonModification2DJiggle:get_jiggle_joint_bone_index(joint_idx) end + +--- @param joint_idx int +--- @param override bool +function SkeletonModification2DJiggle:set_jiggle_joint_override(joint_idx, override) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DJiggle:get_jiggle_joint_override(joint_idx) end + +--- @param joint_idx int +--- @param stiffness float +function SkeletonModification2DJiggle:set_jiggle_joint_stiffness(joint_idx, stiffness) end + +--- @param joint_idx int +--- @return float +function SkeletonModification2DJiggle:get_jiggle_joint_stiffness(joint_idx) end + +--- @param joint_idx int +--- @param mass float +function SkeletonModification2DJiggle:set_jiggle_joint_mass(joint_idx, mass) end + +--- @param joint_idx int +--- @return float +function SkeletonModification2DJiggle:get_jiggle_joint_mass(joint_idx) end + +--- @param joint_idx int +--- @param damping float +function SkeletonModification2DJiggle:set_jiggle_joint_damping(joint_idx, damping) end + +--- @param joint_idx int +--- @return float +function SkeletonModification2DJiggle:get_jiggle_joint_damping(joint_idx) end + +--- @param joint_idx int +--- @param use_gravity bool +function SkeletonModification2DJiggle:set_jiggle_joint_use_gravity(joint_idx, use_gravity) end + +--- @param joint_idx int +--- @return bool +function SkeletonModification2DJiggle:get_jiggle_joint_use_gravity(joint_idx) end + +--- @param joint_idx int +--- @param gravity Vector2 +function SkeletonModification2DJiggle:set_jiggle_joint_gravity(joint_idx, gravity) end + +--- @param joint_idx int +--- @return Vector2 +function SkeletonModification2DJiggle:get_jiggle_joint_gravity(joint_idx) end + + +----------------------------------------------------------- +-- SkeletonModification2DLookAt +----------------------------------------------------------- + +--- @class SkeletonModification2DLookAt: SkeletonModification2D, { [string]: any } +--- @field bone_index int +--- @field bone2d_node NodePath +--- @field target_nodepath NodePath +SkeletonModification2DLookAt = {} + +--- @return SkeletonModification2DLookAt +function SkeletonModification2DLookAt:new() end + +--- @param bone2d_nodepath NodePath +function SkeletonModification2DLookAt:set_bone2d_node(bone2d_nodepath) end + +--- @return NodePath +function SkeletonModification2DLookAt:get_bone2d_node() end + +--- @param bone_idx int +function SkeletonModification2DLookAt:set_bone_index(bone_idx) end + +--- @return int +function SkeletonModification2DLookAt:get_bone_index() end + +--- @param target_nodepath NodePath +function SkeletonModification2DLookAt:set_target_node(target_nodepath) end + +--- @return NodePath +function SkeletonModification2DLookAt:get_target_node() end + +--- @param rotation float +function SkeletonModification2DLookAt:set_additional_rotation(rotation) end + +--- @return float +function SkeletonModification2DLookAt:get_additional_rotation() end + +--- @param enable_constraint bool +function SkeletonModification2DLookAt:set_enable_constraint(enable_constraint) end + +--- @return bool +function SkeletonModification2DLookAt:get_enable_constraint() end + +--- @param angle_min float +function SkeletonModification2DLookAt:set_constraint_angle_min(angle_min) end + +--- @return float +function SkeletonModification2DLookAt:get_constraint_angle_min() end + +--- @param angle_max float +function SkeletonModification2DLookAt:set_constraint_angle_max(angle_max) end + +--- @return float +function SkeletonModification2DLookAt:get_constraint_angle_max() end + +--- @param invert bool +function SkeletonModification2DLookAt:set_constraint_angle_invert(invert) end + +--- @return bool +function SkeletonModification2DLookAt:get_constraint_angle_invert() end + + +----------------------------------------------------------- +-- SkeletonModification2DPhysicalBones +----------------------------------------------------------- + +--- @class SkeletonModification2DPhysicalBones: SkeletonModification2D, { [string]: any } +--- @field physical_bone_chain_length int +SkeletonModification2DPhysicalBones = {} + +--- @return SkeletonModification2DPhysicalBones +function SkeletonModification2DPhysicalBones:new() end + +--- @param length int +function SkeletonModification2DPhysicalBones:set_physical_bone_chain_length(length) end + +--- @return int +function SkeletonModification2DPhysicalBones:get_physical_bone_chain_length() end + +--- @param joint_idx int +--- @param physicalbone2d_node NodePath +function SkeletonModification2DPhysicalBones:set_physical_bone_node(joint_idx, physicalbone2d_node) end + +--- @param joint_idx int +--- @return NodePath +function SkeletonModification2DPhysicalBones:get_physical_bone_node(joint_idx) end + +function SkeletonModification2DPhysicalBones:fetch_physical_bones() end + +--- @param bones Array[StringName]? Default: [] +function SkeletonModification2DPhysicalBones:start_simulation(bones) end + +--- @param bones Array[StringName]? Default: [] +function SkeletonModification2DPhysicalBones:stop_simulation(bones) end + + +----------------------------------------------------------- +-- SkeletonModification2DStackHolder +----------------------------------------------------------- + +--- @class SkeletonModification2DStackHolder: SkeletonModification2D, { [string]: any } +SkeletonModification2DStackHolder = {} + +--- @return SkeletonModification2DStackHolder +function SkeletonModification2DStackHolder:new() end + +--- @param held_modification_stack SkeletonModificationStack2D +function SkeletonModification2DStackHolder:set_held_modification_stack(held_modification_stack) end + +--- @return SkeletonModificationStack2D +function SkeletonModification2DStackHolder:get_held_modification_stack() end + + +----------------------------------------------------------- +-- SkeletonModification2DTwoBoneIK +----------------------------------------------------------- + +--- @class SkeletonModification2DTwoBoneIK: SkeletonModification2D, { [string]: any } +--- @field target_nodepath NodePath +--- @field target_minimum_distance float +--- @field target_maximum_distance float +--- @field flip_bend_direction bool +SkeletonModification2DTwoBoneIK = {} + +--- @return SkeletonModification2DTwoBoneIK +function SkeletonModification2DTwoBoneIK:new() end + +--- @param target_nodepath NodePath +function SkeletonModification2DTwoBoneIK:set_target_node(target_nodepath) end + +--- @return NodePath +function SkeletonModification2DTwoBoneIK:get_target_node() end + +--- @param minimum_distance float +function SkeletonModification2DTwoBoneIK:set_target_minimum_distance(minimum_distance) end + +--- @return float +function SkeletonModification2DTwoBoneIK:get_target_minimum_distance() end + +--- @param maximum_distance float +function SkeletonModification2DTwoBoneIK:set_target_maximum_distance(maximum_distance) end + +--- @return float +function SkeletonModification2DTwoBoneIK:get_target_maximum_distance() end + +--- @param flip_direction bool +function SkeletonModification2DTwoBoneIK:set_flip_bend_direction(flip_direction) end + +--- @return bool +function SkeletonModification2DTwoBoneIK:get_flip_bend_direction() end + +--- @param bone2d_node NodePath +function SkeletonModification2DTwoBoneIK:set_joint_one_bone2d_node(bone2d_node) end + +--- @return NodePath +function SkeletonModification2DTwoBoneIK:get_joint_one_bone2d_node() end + +--- @param bone_idx int +function SkeletonModification2DTwoBoneIK:set_joint_one_bone_idx(bone_idx) end + +--- @return int +function SkeletonModification2DTwoBoneIK:get_joint_one_bone_idx() end + +--- @param bone2d_node NodePath +function SkeletonModification2DTwoBoneIK:set_joint_two_bone2d_node(bone2d_node) end + +--- @return NodePath +function SkeletonModification2DTwoBoneIK:get_joint_two_bone2d_node() end + +--- @param bone_idx int +function SkeletonModification2DTwoBoneIK:set_joint_two_bone_idx(bone_idx) end + +--- @return int +function SkeletonModification2DTwoBoneIK:get_joint_two_bone_idx() end + + +----------------------------------------------------------- +-- SkeletonModificationStack2D +----------------------------------------------------------- + +--- @class SkeletonModificationStack2D: Resource, { [string]: any } +--- @field enabled bool +--- @field strength float +--- @field modification_count int +SkeletonModificationStack2D = {} + +--- @return SkeletonModificationStack2D +function SkeletonModificationStack2D:new() end + +function SkeletonModificationStack2D:setup() end + +--- @param delta float +--- @param execution_mode int +function SkeletonModificationStack2D:execute(delta, execution_mode) end + +--- @param enabled bool +function SkeletonModificationStack2D:enable_all_modifications(enabled) end + +--- @param mod_idx int +--- @return SkeletonModification2D +function SkeletonModificationStack2D:get_modification(mod_idx) end + +--- @param modification SkeletonModification2D +function SkeletonModificationStack2D:add_modification(modification) end + +--- @param mod_idx int +function SkeletonModificationStack2D:delete_modification(mod_idx) end + +--- @param mod_idx int +--- @param modification SkeletonModification2D +function SkeletonModificationStack2D:set_modification(mod_idx, modification) end + +--- @param count int +function SkeletonModificationStack2D:set_modification_count(count) end + +--- @return int +function SkeletonModificationStack2D:get_modification_count() end + +--- @return bool +function SkeletonModificationStack2D:get_is_setup() end + +--- @param enabled bool +function SkeletonModificationStack2D:set_enabled(enabled) end + +--- @return bool +function SkeletonModificationStack2D:get_enabled() end + +--- @param strength float +function SkeletonModificationStack2D:set_strength(strength) end + +--- @return float +function SkeletonModificationStack2D:get_strength() end + +--- @return Skeleton2D +function SkeletonModificationStack2D:get_skeleton() end + + +----------------------------------------------------------- +-- SkeletonModifier3D +----------------------------------------------------------- + +--- @class SkeletonModifier3D: Node3D, { [string]: any } +--- @field active bool +--- @field influence float +SkeletonModifier3D = {} + +--- @return SkeletonModifier3D +function SkeletonModifier3D:new() end + +--- @alias SkeletonModifier3D.BoneAxis `SkeletonModifier3D.BONE_AXIS_PLUS_X` | `SkeletonModifier3D.BONE_AXIS_MINUS_X` | `SkeletonModifier3D.BONE_AXIS_PLUS_Y` | `SkeletonModifier3D.BONE_AXIS_MINUS_Y` | `SkeletonModifier3D.BONE_AXIS_PLUS_Z` | `SkeletonModifier3D.BONE_AXIS_MINUS_Z` +SkeletonModifier3D.BONE_AXIS_PLUS_X = 0 +SkeletonModifier3D.BONE_AXIS_MINUS_X = 1 +SkeletonModifier3D.BONE_AXIS_PLUS_Y = 2 +SkeletonModifier3D.BONE_AXIS_MINUS_Y = 3 +SkeletonModifier3D.BONE_AXIS_PLUS_Z = 4 +SkeletonModifier3D.BONE_AXIS_MINUS_Z = 5 + +SkeletonModifier3D.modification_processed = Signal() + +--- @param delta float +function SkeletonModifier3D:_process_modification_with_delta(delta) end + +function SkeletonModifier3D:_process_modification() end + +--- @param old_skeleton Skeleton3D +--- @param new_skeleton Skeleton3D +function SkeletonModifier3D:_skeleton_changed(old_skeleton, new_skeleton) end + +function SkeletonModifier3D:_validate_bone_names() end + +--- @return Skeleton3D +function SkeletonModifier3D:get_skeleton() end + +--- @param active bool +function SkeletonModifier3D:set_active(active) end + +--- @return bool +function SkeletonModifier3D:is_active() end + +--- @param influence float +function SkeletonModifier3D:set_influence(influence) end + +--- @return float +function SkeletonModifier3D:get_influence() end + + +----------------------------------------------------------- +-- SkeletonProfile +----------------------------------------------------------- + +--- @class SkeletonProfile: Resource, { [string]: any } +--- @field root_bone StringName +--- @field scale_base_bone StringName +--- @field group_size int +--- @field bone_size int +SkeletonProfile = {} + +--- @return SkeletonProfile +function SkeletonProfile:new() end + +--- @alias SkeletonProfile.TailDirection `SkeletonProfile.TAIL_DIRECTION_AVERAGE_CHILDREN` | `SkeletonProfile.TAIL_DIRECTION_SPECIFIC_CHILD` | `SkeletonProfile.TAIL_DIRECTION_END` +SkeletonProfile.TAIL_DIRECTION_AVERAGE_CHILDREN = 0 +SkeletonProfile.TAIL_DIRECTION_SPECIFIC_CHILD = 1 +SkeletonProfile.TAIL_DIRECTION_END = 2 + +SkeletonProfile.profile_updated = Signal() + +--- @param bone_name StringName +function SkeletonProfile:set_root_bone(bone_name) end + +--- @return StringName +function SkeletonProfile:get_root_bone() end + +--- @param bone_name StringName +function SkeletonProfile:set_scale_base_bone(bone_name) end + +--- @return StringName +function SkeletonProfile:get_scale_base_bone() end + +--- @param size int +function SkeletonProfile:set_group_size(size) end + +--- @return int +function SkeletonProfile:get_group_size() end + +--- @param group_idx int +--- @return StringName +function SkeletonProfile:get_group_name(group_idx) end + +--- @param group_idx int +--- @param group_name StringName +function SkeletonProfile:set_group_name(group_idx, group_name) end + +--- @param group_idx int +--- @return Texture2D +function SkeletonProfile:get_texture(group_idx) end + +--- @param group_idx int +--- @param texture Texture2D +function SkeletonProfile:set_texture(group_idx, texture) end + +--- @param size int +function SkeletonProfile:set_bone_size(size) end + +--- @return int +function SkeletonProfile:get_bone_size() end + +--- @param bone_name StringName +--- @return int +function SkeletonProfile:find_bone(bone_name) end + +--- @param bone_idx int +--- @return StringName +function SkeletonProfile:get_bone_name(bone_idx) end + +--- @param bone_idx int +--- @param bone_name StringName +function SkeletonProfile:set_bone_name(bone_idx, bone_name) end + +--- @param bone_idx int +--- @return StringName +function SkeletonProfile:get_bone_parent(bone_idx) end + +--- @param bone_idx int +--- @param bone_parent StringName +function SkeletonProfile:set_bone_parent(bone_idx, bone_parent) end + +--- @param bone_idx int +--- @return SkeletonProfile.TailDirection +function SkeletonProfile:get_tail_direction(bone_idx) end + +--- @param bone_idx int +--- @param tail_direction SkeletonProfile.TailDirection +function SkeletonProfile:set_tail_direction(bone_idx, tail_direction) end + +--- @param bone_idx int +--- @return StringName +function SkeletonProfile:get_bone_tail(bone_idx) end + +--- @param bone_idx int +--- @param bone_tail StringName +function SkeletonProfile:set_bone_tail(bone_idx, bone_tail) end + +--- @param bone_idx int +--- @return Transform3D +function SkeletonProfile:get_reference_pose(bone_idx) end + +--- @param bone_idx int +--- @param bone_name Transform3D +function SkeletonProfile:set_reference_pose(bone_idx, bone_name) end + +--- @param bone_idx int +--- @return Vector2 +function SkeletonProfile:get_handle_offset(bone_idx) end + +--- @param bone_idx int +--- @param handle_offset Vector2 +function SkeletonProfile:set_handle_offset(bone_idx, handle_offset) end + +--- @param bone_idx int +--- @return StringName +function SkeletonProfile:get_group(bone_idx) end + +--- @param bone_idx int +--- @param group StringName +function SkeletonProfile:set_group(bone_idx, group) end + +--- @param bone_idx int +--- @return bool +function SkeletonProfile:is_required(bone_idx) end + +--- @param bone_idx int +--- @param required bool +function SkeletonProfile:set_required(bone_idx, required) end + + +----------------------------------------------------------- +-- SkeletonProfileHumanoid +----------------------------------------------------------- + +--- @class SkeletonProfileHumanoid: SkeletonProfile, { [string]: any } +SkeletonProfileHumanoid = {} + +--- @return SkeletonProfileHumanoid +function SkeletonProfileHumanoid:new() end + + +----------------------------------------------------------- +-- Skin +----------------------------------------------------------- + +--- @class Skin: Resource, { [string]: any } +Skin = {} + +--- @return Skin +function Skin:new() end + +--- @param bind_count int +function Skin:set_bind_count(bind_count) end + +--- @return int +function Skin:get_bind_count() end + +--- @param bone int +--- @param pose Transform3D +function Skin:add_bind(bone, pose) end + +--- @param name String +--- @param pose Transform3D +function Skin:add_named_bind(name, pose) end + +--- @param bind_index int +--- @param pose Transform3D +function Skin:set_bind_pose(bind_index, pose) end + +--- @param bind_index int +--- @return Transform3D +function Skin:get_bind_pose(bind_index) end + +--- @param bind_index int +--- @param name StringName +function Skin:set_bind_name(bind_index, name) end + +--- @param bind_index int +--- @return StringName +function Skin:get_bind_name(bind_index) end + +--- @param bind_index int +--- @param bone int +function Skin:set_bind_bone(bind_index, bone) end + +--- @param bind_index int +--- @return int +function Skin:get_bind_bone(bind_index) end + +function Skin:clear_binds() end + + +----------------------------------------------------------- +-- SkinReference +----------------------------------------------------------- + +--- @class SkinReference: RefCounted, { [string]: any } +SkinReference = {} + +--- @return RID +function SkinReference:get_skeleton() end + +--- @return Skin +function SkinReference:get_skin() end + + +----------------------------------------------------------- +-- Sky +----------------------------------------------------------- + +--- @class Sky: Resource, { [string]: any } +--- @field sky_material PanoramaSkyMaterial | ProceduralSkyMaterial | PhysicalSkyMaterial | ShaderMaterial +--- @field process_mode int +--- @field radiance_size int +Sky = {} + +--- @return Sky +function Sky:new() end + +--- @alias Sky.RadianceSize `Sky.RADIANCE_SIZE_32` | `Sky.RADIANCE_SIZE_64` | `Sky.RADIANCE_SIZE_128` | `Sky.RADIANCE_SIZE_256` | `Sky.RADIANCE_SIZE_512` | `Sky.RADIANCE_SIZE_1024` | `Sky.RADIANCE_SIZE_2048` | `Sky.RADIANCE_SIZE_MAX` +Sky.RADIANCE_SIZE_32 = 0 +Sky.RADIANCE_SIZE_64 = 1 +Sky.RADIANCE_SIZE_128 = 2 +Sky.RADIANCE_SIZE_256 = 3 +Sky.RADIANCE_SIZE_512 = 4 +Sky.RADIANCE_SIZE_1024 = 5 +Sky.RADIANCE_SIZE_2048 = 6 +Sky.RADIANCE_SIZE_MAX = 7 + +--- @alias Sky.ProcessMode `Sky.PROCESS_MODE_AUTOMATIC` | `Sky.PROCESS_MODE_QUALITY` | `Sky.PROCESS_MODE_INCREMENTAL` | `Sky.PROCESS_MODE_REALTIME` +Sky.PROCESS_MODE_AUTOMATIC = 0 +Sky.PROCESS_MODE_QUALITY = 1 +Sky.PROCESS_MODE_INCREMENTAL = 2 +Sky.PROCESS_MODE_REALTIME = 3 + +--- @param size Sky.RadianceSize +function Sky:set_radiance_size(size) end + +--- @return Sky.RadianceSize +function Sky:get_radiance_size() end + +--- @param mode Sky.ProcessMode +function Sky:set_process_mode(mode) end + +--- @return Sky.ProcessMode +function Sky:get_process_mode() end + +--- @param material Material +function Sky:set_material(material) end + +--- @return Material +function Sky:get_material() end + + +----------------------------------------------------------- +-- Slider +----------------------------------------------------------- + +--- @class Slider: Range, { [string]: any } +--- @field editable bool +--- @field scrollable bool +--- @field tick_count int +--- @field ticks_on_borders bool +--- @field ticks_position int +Slider = {} + +--- @alias Slider.TickPosition `Slider.TICK_POSITION_BOTTOM_RIGHT` | `Slider.TICK_POSITION_TOP_LEFT` | `Slider.TICK_POSITION_BOTH` | `Slider.TICK_POSITION_CENTER` +Slider.TICK_POSITION_BOTTOM_RIGHT = 0 +Slider.TICK_POSITION_TOP_LEFT = 1 +Slider.TICK_POSITION_BOTH = 2 +Slider.TICK_POSITION_CENTER = 3 + +Slider.drag_started = Signal() +Slider.drag_ended = Signal() + +--- @param count int +function Slider:set_ticks(count) end + +--- @return int +function Slider:get_ticks() end + +--- @return bool +function Slider:get_ticks_on_borders() end + +--- @param ticks_on_border bool +function Slider:set_ticks_on_borders(ticks_on_border) end + +--- @return Slider.TickPosition +function Slider:get_ticks_position() end + +--- @param ticks_on_border Slider.TickPosition +function Slider:set_ticks_position(ticks_on_border) end + +--- @param editable bool +function Slider:set_editable(editable) end + +--- @return bool +function Slider:is_editable() end + +--- @param scrollable bool +function Slider:set_scrollable(scrollable) end + +--- @return bool +function Slider:is_scrollable() end + + +----------------------------------------------------------- +-- SliderJoint3D +----------------------------------------------------------- + +--- @class SliderJoint3D: Joint3D, { [string]: any } +SliderJoint3D = {} + +--- @return SliderJoint3D +function SliderJoint3D:new() end + +--- @alias SliderJoint3D.Param `SliderJoint3D.PARAM_LINEAR_LIMIT_UPPER` | `SliderJoint3D.PARAM_LINEAR_LIMIT_LOWER` | `SliderJoint3D.PARAM_LINEAR_LIMIT_SOFTNESS` | `SliderJoint3D.PARAM_LINEAR_LIMIT_RESTITUTION` | `SliderJoint3D.PARAM_LINEAR_LIMIT_DAMPING` | `SliderJoint3D.PARAM_LINEAR_MOTION_SOFTNESS` | `SliderJoint3D.PARAM_LINEAR_MOTION_RESTITUTION` | `SliderJoint3D.PARAM_LINEAR_MOTION_DAMPING` | `SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_SOFTNESS` | `SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_RESTITUTION` | `SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_DAMPING` | `SliderJoint3D.PARAM_ANGULAR_LIMIT_UPPER` | `SliderJoint3D.PARAM_ANGULAR_LIMIT_LOWER` | `SliderJoint3D.PARAM_ANGULAR_LIMIT_SOFTNESS` | `SliderJoint3D.PARAM_ANGULAR_LIMIT_RESTITUTION` | `SliderJoint3D.PARAM_ANGULAR_LIMIT_DAMPING` | `SliderJoint3D.PARAM_ANGULAR_MOTION_SOFTNESS` | `SliderJoint3D.PARAM_ANGULAR_MOTION_RESTITUTION` | `SliderJoint3D.PARAM_ANGULAR_MOTION_DAMPING` | `SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_SOFTNESS` | `SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_RESTITUTION` | `SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_DAMPING` | `SliderJoint3D.PARAM_MAX` +SliderJoint3D.PARAM_LINEAR_LIMIT_UPPER = 0 +SliderJoint3D.PARAM_LINEAR_LIMIT_LOWER = 1 +SliderJoint3D.PARAM_LINEAR_LIMIT_SOFTNESS = 2 +SliderJoint3D.PARAM_LINEAR_LIMIT_RESTITUTION = 3 +SliderJoint3D.PARAM_LINEAR_LIMIT_DAMPING = 4 +SliderJoint3D.PARAM_LINEAR_MOTION_SOFTNESS = 5 +SliderJoint3D.PARAM_LINEAR_MOTION_RESTITUTION = 6 +SliderJoint3D.PARAM_LINEAR_MOTION_DAMPING = 7 +SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_SOFTNESS = 8 +SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_RESTITUTION = 9 +SliderJoint3D.PARAM_LINEAR_ORTHOGONAL_DAMPING = 10 +SliderJoint3D.PARAM_ANGULAR_LIMIT_UPPER = 11 +SliderJoint3D.PARAM_ANGULAR_LIMIT_LOWER = 12 +SliderJoint3D.PARAM_ANGULAR_LIMIT_SOFTNESS = 13 +SliderJoint3D.PARAM_ANGULAR_LIMIT_RESTITUTION = 14 +SliderJoint3D.PARAM_ANGULAR_LIMIT_DAMPING = 15 +SliderJoint3D.PARAM_ANGULAR_MOTION_SOFTNESS = 16 +SliderJoint3D.PARAM_ANGULAR_MOTION_RESTITUTION = 17 +SliderJoint3D.PARAM_ANGULAR_MOTION_DAMPING = 18 +SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_SOFTNESS = 19 +SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_RESTITUTION = 20 +SliderJoint3D.PARAM_ANGULAR_ORTHOGONAL_DAMPING = 21 +SliderJoint3D.PARAM_MAX = 22 + +--- @param param SliderJoint3D.Param +--- @param value float +function SliderJoint3D:set_param(param, value) end + +--- @param param SliderJoint3D.Param +--- @return float +function SliderJoint3D:get_param(param) end + + +----------------------------------------------------------- +-- SoftBody3D +----------------------------------------------------------- + +--- @class SoftBody3D: MeshInstance3D, { [string]: any } +--- @field collision_layer int +--- @field collision_mask int +--- @field parent_collision_ignore NodePath +--- @field simulation_precision int +--- @field total_mass float +--- @field linear_stiffness float +--- @field shrinking_factor float +--- @field pressure_coefficient float +--- @field damping_coefficient float +--- @field drag_coefficient float +--- @field ray_pickable bool +--- @field disable_mode int +SoftBody3D = {} + +--- @return SoftBody3D +function SoftBody3D:new() end + +--- @alias SoftBody3D.DisableMode `SoftBody3D.DISABLE_MODE_REMOVE` | `SoftBody3D.DISABLE_MODE_KEEP_ACTIVE` +SoftBody3D.DISABLE_MODE_REMOVE = 0 +SoftBody3D.DISABLE_MODE_KEEP_ACTIVE = 1 + +--- @return RID +function SoftBody3D:get_physics_rid() end + +--- @param collision_mask int +function SoftBody3D:set_collision_mask(collision_mask) end + +--- @return int +function SoftBody3D:get_collision_mask() end + +--- @param collision_layer int +function SoftBody3D:set_collision_layer(collision_layer) end + +--- @return int +function SoftBody3D:get_collision_layer() end + +--- @param layer_number int +--- @param value bool +function SoftBody3D:set_collision_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function SoftBody3D:get_collision_mask_value(layer_number) end + +--- @param layer_number int +--- @param value bool +function SoftBody3D:set_collision_layer_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function SoftBody3D:get_collision_layer_value(layer_number) end + +--- @param parent_collision_ignore NodePath +function SoftBody3D:set_parent_collision_ignore(parent_collision_ignore) end + +--- @return NodePath +function SoftBody3D:get_parent_collision_ignore() end + +--- @param mode SoftBody3D.DisableMode +function SoftBody3D:set_disable_mode(mode) end + +--- @return SoftBody3D.DisableMode +function SoftBody3D:get_disable_mode() end + +--- @return Array[PhysicsBody3D] +function SoftBody3D:get_collision_exceptions() end + +--- @param body Node +function SoftBody3D:add_collision_exception_with(body) end + +--- @param body Node +function SoftBody3D:remove_collision_exception_with(body) end + +--- @param simulation_precision int +function SoftBody3D:set_simulation_precision(simulation_precision) end + +--- @return int +function SoftBody3D:get_simulation_precision() end + +--- @param mass float +function SoftBody3D:set_total_mass(mass) end + +--- @return float +function SoftBody3D:get_total_mass() end + +--- @param linear_stiffness float +function SoftBody3D:set_linear_stiffness(linear_stiffness) end + +--- @return float +function SoftBody3D:get_linear_stiffness() end + +--- @param shrinking_factor float +function SoftBody3D:set_shrinking_factor(shrinking_factor) end + +--- @return float +function SoftBody3D:get_shrinking_factor() end + +--- @param pressure_coefficient float +function SoftBody3D:set_pressure_coefficient(pressure_coefficient) end + +--- @return float +function SoftBody3D:get_pressure_coefficient() end + +--- @param damping_coefficient float +function SoftBody3D:set_damping_coefficient(damping_coefficient) end + +--- @return float +function SoftBody3D:get_damping_coefficient() end + +--- @param drag_coefficient float +function SoftBody3D:set_drag_coefficient(drag_coefficient) end + +--- @return float +function SoftBody3D:get_drag_coefficient() end + +--- @param point_index int +--- @return Vector3 +function SoftBody3D:get_point_transform(point_index) end + +--- @param point_index int +--- @param impulse Vector3 +function SoftBody3D:apply_impulse(point_index, impulse) end + +--- @param point_index int +--- @param force Vector3 +function SoftBody3D:apply_force(point_index, force) end + +--- @param impulse Vector3 +function SoftBody3D:apply_central_impulse(impulse) end + +--- @param force Vector3 +function SoftBody3D:apply_central_force(force) end + +--- @param point_index int +--- @param pinned bool +--- @param attachment_path NodePath? Default: NodePath("") +--- @param insert_at int? Default: -1 +function SoftBody3D:set_point_pinned(point_index, pinned, attachment_path, insert_at) end + +--- @param point_index int +--- @return bool +function SoftBody3D:is_point_pinned(point_index) end + +--- @param ray_pickable bool +function SoftBody3D:set_ray_pickable(ray_pickable) end + +--- @return bool +function SoftBody3D:is_ray_pickable() end + + +----------------------------------------------------------- +-- SphereMesh +----------------------------------------------------------- + +--- @class SphereMesh: PrimitiveMesh, { [string]: any } +--- @field radius float +--- @field height float +--- @field radial_segments int +--- @field rings int +--- @field is_hemisphere bool +SphereMesh = {} + +--- @return SphereMesh +function SphereMesh:new() end + +--- @param radius float +function SphereMesh:set_radius(radius) end + +--- @return float +function SphereMesh:get_radius() end + +--- @param height float +function SphereMesh:set_height(height) end + +--- @return float +function SphereMesh:get_height() end + +--- @param radial_segments int +function SphereMesh:set_radial_segments(radial_segments) end + +--- @return int +function SphereMesh:get_radial_segments() end + +--- @param rings int +function SphereMesh:set_rings(rings) end + +--- @return int +function SphereMesh:get_rings() end + +--- @param is_hemisphere bool +function SphereMesh:set_is_hemisphere(is_hemisphere) end + +--- @return bool +function SphereMesh:get_is_hemisphere() end + + +----------------------------------------------------------- +-- SphereOccluder3D +----------------------------------------------------------- + +--- @class SphereOccluder3D: Occluder3D, { [string]: any } +--- @field radius float +SphereOccluder3D = {} + +--- @return SphereOccluder3D +function SphereOccluder3D:new() end + +--- @param radius float +function SphereOccluder3D:set_radius(radius) end + +--- @return float +function SphereOccluder3D:get_radius() end + + +----------------------------------------------------------- +-- SphereShape3D +----------------------------------------------------------- + +--- @class SphereShape3D: Shape3D, { [string]: any } +--- @field radius float +SphereShape3D = {} + +--- @return SphereShape3D +function SphereShape3D:new() end + +--- @param radius float +function SphereShape3D:set_radius(radius) end + +--- @return float +function SphereShape3D:get_radius() end + + +----------------------------------------------------------- +-- SpinBox +----------------------------------------------------------- + +--- @class SpinBox: Range, { [string]: any } +--- @field alignment int +--- @field editable bool +--- @field update_on_text_changed bool +--- @field prefix String +--- @field suffix String +--- @field custom_arrow_step float +--- @field select_all_on_focus bool +SpinBox = {} + +--- @return SpinBox +function SpinBox:new() end + +--- @param alignment HorizontalAlignment +function SpinBox:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function SpinBox:get_horizontal_alignment() end + +--- @param suffix String +function SpinBox:set_suffix(suffix) end + +--- @return String +function SpinBox:get_suffix() end + +--- @param prefix String +function SpinBox:set_prefix(prefix) end + +--- @return String +function SpinBox:get_prefix() end + +--- @param enabled bool +function SpinBox:set_editable(enabled) end + +--- @param arrow_step float +function SpinBox:set_custom_arrow_step(arrow_step) end + +--- @return float +function SpinBox:get_custom_arrow_step() end + +--- @return bool +function SpinBox:is_editable() end + +--- @param enabled bool +function SpinBox:set_update_on_text_changed(enabled) end + +--- @return bool +function SpinBox:get_update_on_text_changed() end + +--- @param enabled bool +function SpinBox:set_select_all_on_focus(enabled) end + +--- @return bool +function SpinBox:is_select_all_on_focus() end + +function SpinBox:apply() end + +--- @return LineEdit +function SpinBox:get_line_edit() end + + +----------------------------------------------------------- +-- SplitContainer +----------------------------------------------------------- + +--- @class SplitContainer: Container, { [string]: any } +--- @field split_offset int +--- @field collapsed bool +--- @field dragging_enabled bool +--- @field dragger_visibility int +--- @field vertical bool +--- @field touch_dragger_enabled bool +--- @field drag_area_margin_begin int +--- @field drag_area_margin_end int +--- @field drag_area_offset int +--- @field drag_area_highlight_in_editor bool +SplitContainer = {} + +--- @return SplitContainer +function SplitContainer:new() end + +--- @alias SplitContainer.DraggerVisibility `SplitContainer.DRAGGER_VISIBLE` | `SplitContainer.DRAGGER_HIDDEN` | `SplitContainer.DRAGGER_HIDDEN_COLLAPSED` +SplitContainer.DRAGGER_VISIBLE = 0 +SplitContainer.DRAGGER_HIDDEN = 1 +SplitContainer.DRAGGER_HIDDEN_COLLAPSED = 2 + +SplitContainer.dragged = Signal() +SplitContainer.drag_started = Signal() +SplitContainer.drag_ended = Signal() + +--- @param offset int +function SplitContainer:set_split_offset(offset) end + +--- @return int +function SplitContainer:get_split_offset() end + +function SplitContainer:clamp_split_offset() end + +--- @param collapsed bool +function SplitContainer:set_collapsed(collapsed) end + +--- @return bool +function SplitContainer:is_collapsed() end + +--- @param mode SplitContainer.DraggerVisibility +function SplitContainer:set_dragger_visibility(mode) end + +--- @return SplitContainer.DraggerVisibility +function SplitContainer:get_dragger_visibility() end + +--- @param vertical bool +function SplitContainer:set_vertical(vertical) end + +--- @return bool +function SplitContainer:is_vertical() end + +--- @param dragging_enabled bool +function SplitContainer:set_dragging_enabled(dragging_enabled) end + +--- @return bool +function SplitContainer:is_dragging_enabled() end + +--- @param margin int +function SplitContainer:set_drag_area_margin_begin(margin) end + +--- @return int +function SplitContainer:get_drag_area_margin_begin() end + +--- @param margin int +function SplitContainer:set_drag_area_margin_end(margin) end + +--- @return int +function SplitContainer:get_drag_area_margin_end() end + +--- @param offset int +function SplitContainer:set_drag_area_offset(offset) end + +--- @return int +function SplitContainer:get_drag_area_offset() end + +--- @param drag_area_highlight_in_editor bool +function SplitContainer:set_drag_area_highlight_in_editor(drag_area_highlight_in_editor) end + +--- @return bool +function SplitContainer:is_drag_area_highlight_in_editor_enabled() end + +--- @return Control +function SplitContainer:get_drag_area_control() end + +--- @param enabled bool +function SplitContainer:set_touch_dragger_enabled(enabled) end + +--- @return bool +function SplitContainer:is_touch_dragger_enabled() end + + +----------------------------------------------------------- +-- SpotLight3D +----------------------------------------------------------- + +--- @class SpotLight3D: Light3D, { [string]: any } +--- @field spot_range float +--- @field spot_attenuation float +--- @field spot_angle float +--- @field spot_angle_attenuation float +SpotLight3D = {} + +--- @return SpotLight3D +function SpotLight3D:new() end + + +----------------------------------------------------------- +-- SpringArm3D +----------------------------------------------------------- + +--- @class SpringArm3D: Node3D, { [string]: any } +--- @field collision_mask int +--- @field shape Shape3D +--- @field spring_length float +--- @field margin float +SpringArm3D = {} + +--- @return SpringArm3D +function SpringArm3D:new() end + +--- @return float +function SpringArm3D:get_hit_length() end + +--- @param length float +function SpringArm3D:set_length(length) end + +--- @return float +function SpringArm3D:get_length() end + +--- @param shape Shape3D +function SpringArm3D:set_shape(shape) end + +--- @return Shape3D +function SpringArm3D:get_shape() end + +--- @param RID RID +function SpringArm3D:add_excluded_object(RID) end + +--- @param RID RID +--- @return bool +function SpringArm3D:remove_excluded_object(RID) end + +function SpringArm3D:clear_excluded_objects() end + +--- @param mask int +function SpringArm3D:set_collision_mask(mask) end + +--- @return int +function SpringArm3D:get_collision_mask() end + +--- @param margin float +function SpringArm3D:set_margin(margin) end + +--- @return float +function SpringArm3D:get_margin() end + + +----------------------------------------------------------- +-- SpringBoneCollision3D +----------------------------------------------------------- + +--- @class SpringBoneCollision3D: Node3D, { [string]: any } +--- @field bone_name StringName +--- @field bone int +--- @field position_offset Vector3 +--- @field rotation_offset Quaternion +SpringBoneCollision3D = {} + +--- @return SpringBoneCollision3D +function SpringBoneCollision3D:new() end + +--- @return Skeleton3D +function SpringBoneCollision3D:get_skeleton() end + +--- @param bone_name String +function SpringBoneCollision3D:set_bone_name(bone_name) end + +--- @return String +function SpringBoneCollision3D:get_bone_name() end + +--- @param bone int +function SpringBoneCollision3D:set_bone(bone) end + +--- @return int +function SpringBoneCollision3D:get_bone() end + +--- @param offset Vector3 +function SpringBoneCollision3D:set_position_offset(offset) end + +--- @return Vector3 +function SpringBoneCollision3D:get_position_offset() end + +--- @param offset Quaternion +function SpringBoneCollision3D:set_rotation_offset(offset) end + +--- @return Quaternion +function SpringBoneCollision3D:get_rotation_offset() end + + +----------------------------------------------------------- +-- SpringBoneCollisionCapsule3D +----------------------------------------------------------- + +--- @class SpringBoneCollisionCapsule3D: SpringBoneCollision3D, { [string]: any } +--- @field radius float +--- @field height float +--- @field mid_height float +--- @field inside bool +SpringBoneCollisionCapsule3D = {} + +--- @return SpringBoneCollisionCapsule3D +function SpringBoneCollisionCapsule3D:new() end + +--- @param radius float +function SpringBoneCollisionCapsule3D:set_radius(radius) end + +--- @return float +function SpringBoneCollisionCapsule3D:get_radius() end + +--- @param height float +function SpringBoneCollisionCapsule3D:set_height(height) end + +--- @return float +function SpringBoneCollisionCapsule3D:get_height() end + +--- @param mid_height float +function SpringBoneCollisionCapsule3D:set_mid_height(mid_height) end + +--- @return float +function SpringBoneCollisionCapsule3D:get_mid_height() end + +--- @param enabled bool +function SpringBoneCollisionCapsule3D:set_inside(enabled) end + +--- @return bool +function SpringBoneCollisionCapsule3D:is_inside() end + + +----------------------------------------------------------- +-- SpringBoneCollisionPlane3D +----------------------------------------------------------- + +--- @class SpringBoneCollisionPlane3D: SpringBoneCollision3D, { [string]: any } +SpringBoneCollisionPlane3D = {} + +--- @return SpringBoneCollisionPlane3D +function SpringBoneCollisionPlane3D:new() end + + +----------------------------------------------------------- +-- SpringBoneCollisionSphere3D +----------------------------------------------------------- + +--- @class SpringBoneCollisionSphere3D: SpringBoneCollision3D, { [string]: any } +--- @field radius float +--- @field inside bool +SpringBoneCollisionSphere3D = {} + +--- @return SpringBoneCollisionSphere3D +function SpringBoneCollisionSphere3D:new() end + +--- @param radius float +function SpringBoneCollisionSphere3D:set_radius(radius) end + +--- @return float +function SpringBoneCollisionSphere3D:get_radius() end + +--- @param enabled bool +function SpringBoneCollisionSphere3D:set_inside(enabled) end + +--- @return bool +function SpringBoneCollisionSphere3D:is_inside() end + + +----------------------------------------------------------- +-- SpringBoneSimulator3D +----------------------------------------------------------- + +--- @class SpringBoneSimulator3D: SkeletonModifier3D, { [string]: any } +--- @field external_force Vector3 +--- @field setting_count int +SpringBoneSimulator3D = {} + +--- @return SpringBoneSimulator3D +function SpringBoneSimulator3D:new() end + +--- @alias SpringBoneSimulator3D.BoneDirection `SpringBoneSimulator3D.BONE_DIRECTION_PLUS_X` | `SpringBoneSimulator3D.BONE_DIRECTION_MINUS_X` | `SpringBoneSimulator3D.BONE_DIRECTION_PLUS_Y` | `SpringBoneSimulator3D.BONE_DIRECTION_MINUS_Y` | `SpringBoneSimulator3D.BONE_DIRECTION_PLUS_Z` | `SpringBoneSimulator3D.BONE_DIRECTION_MINUS_Z` | `SpringBoneSimulator3D.BONE_DIRECTION_FROM_PARENT` +SpringBoneSimulator3D.BONE_DIRECTION_PLUS_X = 0 +SpringBoneSimulator3D.BONE_DIRECTION_MINUS_X = 1 +SpringBoneSimulator3D.BONE_DIRECTION_PLUS_Y = 2 +SpringBoneSimulator3D.BONE_DIRECTION_MINUS_Y = 3 +SpringBoneSimulator3D.BONE_DIRECTION_PLUS_Z = 4 +SpringBoneSimulator3D.BONE_DIRECTION_MINUS_Z = 5 +SpringBoneSimulator3D.BONE_DIRECTION_FROM_PARENT = 6 + +--- @alias SpringBoneSimulator3D.CenterFrom `SpringBoneSimulator3D.CENTER_FROM_WORLD_ORIGIN` | `SpringBoneSimulator3D.CENTER_FROM_NODE` | `SpringBoneSimulator3D.CENTER_FROM_BONE` +SpringBoneSimulator3D.CENTER_FROM_WORLD_ORIGIN = 0 +SpringBoneSimulator3D.CENTER_FROM_NODE = 1 +SpringBoneSimulator3D.CENTER_FROM_BONE = 2 + +--- @alias SpringBoneSimulator3D.RotationAxis `SpringBoneSimulator3D.ROTATION_AXIS_X` | `SpringBoneSimulator3D.ROTATION_AXIS_Y` | `SpringBoneSimulator3D.ROTATION_AXIS_Z` | `SpringBoneSimulator3D.ROTATION_AXIS_ALL` | `SpringBoneSimulator3D.ROTATION_AXIS_CUSTOM` +SpringBoneSimulator3D.ROTATION_AXIS_X = 0 +SpringBoneSimulator3D.ROTATION_AXIS_Y = 1 +SpringBoneSimulator3D.ROTATION_AXIS_Z = 2 +SpringBoneSimulator3D.ROTATION_AXIS_ALL = 3 +SpringBoneSimulator3D.ROTATION_AXIS_CUSTOM = 4 + +--- @param index int +--- @param bone_name String +function SpringBoneSimulator3D:set_root_bone_name(index, bone_name) end + +--- @param index int +--- @return String +function SpringBoneSimulator3D:get_root_bone_name(index) end + +--- @param index int +--- @param bone int +function SpringBoneSimulator3D:set_root_bone(index, bone) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_root_bone(index) end + +--- @param index int +--- @param bone_name String +function SpringBoneSimulator3D:set_end_bone_name(index, bone_name) end + +--- @param index int +--- @return String +function SpringBoneSimulator3D:get_end_bone_name(index) end + +--- @param index int +--- @param bone int +function SpringBoneSimulator3D:set_end_bone(index, bone) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_end_bone(index) end + +--- @param index int +--- @param enabled bool +function SpringBoneSimulator3D:set_extend_end_bone(index, enabled) end + +--- @param index int +--- @return bool +function SpringBoneSimulator3D:is_end_bone_extended(index) end + +--- @param index int +--- @param bone_direction SpringBoneSimulator3D.BoneDirection +function SpringBoneSimulator3D:set_end_bone_direction(index, bone_direction) end + +--- @param index int +--- @return SpringBoneSimulator3D.BoneDirection +function SpringBoneSimulator3D:get_end_bone_direction(index) end + +--- @param index int +--- @param length float +function SpringBoneSimulator3D:set_end_bone_length(index, length) end + +--- @param index int +--- @return float +function SpringBoneSimulator3D:get_end_bone_length(index) end + +--- @param index int +--- @param center_from SpringBoneSimulator3D.CenterFrom +function SpringBoneSimulator3D:set_center_from(index, center_from) end + +--- @param index int +--- @return SpringBoneSimulator3D.CenterFrom +function SpringBoneSimulator3D:get_center_from(index) end + +--- @param index int +--- @param node_path NodePath +function SpringBoneSimulator3D:set_center_node(index, node_path) end + +--- @param index int +--- @return NodePath +function SpringBoneSimulator3D:get_center_node(index) end + +--- @param index int +--- @param bone_name String +function SpringBoneSimulator3D:set_center_bone_name(index, bone_name) end + +--- @param index int +--- @return String +function SpringBoneSimulator3D:get_center_bone_name(index) end + +--- @param index int +--- @param bone int +function SpringBoneSimulator3D:set_center_bone(index, bone) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_center_bone(index) end + +--- @param index int +--- @param radius float +function SpringBoneSimulator3D:set_radius(index, radius) end + +--- @param index int +--- @return float +function SpringBoneSimulator3D:get_radius(index) end + +--- @param index int +--- @param axis SpringBoneSimulator3D.RotationAxis +function SpringBoneSimulator3D:set_rotation_axis(index, axis) end + +--- @param index int +--- @return SpringBoneSimulator3D.RotationAxis +function SpringBoneSimulator3D:get_rotation_axis(index) end + +--- @param index int +--- @param vector Vector3 +function SpringBoneSimulator3D:set_rotation_axis_vector(index, vector) end + +--- @param index int +--- @return Vector3 +function SpringBoneSimulator3D:get_rotation_axis_vector(index) end + +--- @param index int +--- @param curve Curve +function SpringBoneSimulator3D:set_radius_damping_curve(index, curve) end + +--- @param index int +--- @return Curve +function SpringBoneSimulator3D:get_radius_damping_curve(index) end + +--- @param index int +--- @param stiffness float +function SpringBoneSimulator3D:set_stiffness(index, stiffness) end + +--- @param index int +--- @return float +function SpringBoneSimulator3D:get_stiffness(index) end + +--- @param index int +--- @param curve Curve +function SpringBoneSimulator3D:set_stiffness_damping_curve(index, curve) end + +--- @param index int +--- @return Curve +function SpringBoneSimulator3D:get_stiffness_damping_curve(index) end + +--- @param index int +--- @param drag float +function SpringBoneSimulator3D:set_drag(index, drag) end + +--- @param index int +--- @return float +function SpringBoneSimulator3D:get_drag(index) end + +--- @param index int +--- @param curve Curve +function SpringBoneSimulator3D:set_drag_damping_curve(index, curve) end + +--- @param index int +--- @return Curve +function SpringBoneSimulator3D:get_drag_damping_curve(index) end + +--- @param index int +--- @param gravity float +function SpringBoneSimulator3D:set_gravity(index, gravity) end + +--- @param index int +--- @return float +function SpringBoneSimulator3D:get_gravity(index) end + +--- @param index int +--- @param curve Curve +function SpringBoneSimulator3D:set_gravity_damping_curve(index, curve) end + +--- @param index int +--- @return Curve +function SpringBoneSimulator3D:get_gravity_damping_curve(index) end + +--- @param index int +--- @param gravity_direction Vector3 +function SpringBoneSimulator3D:set_gravity_direction(index, gravity_direction) end + +--- @param index int +--- @return Vector3 +function SpringBoneSimulator3D:get_gravity_direction(index) end + +--- @param count int +function SpringBoneSimulator3D:set_setting_count(count) end + +--- @return int +function SpringBoneSimulator3D:get_setting_count() end + +function SpringBoneSimulator3D:clear_settings() end + +--- @param index int +--- @param enabled bool +function SpringBoneSimulator3D:set_individual_config(index, enabled) end + +--- @param index int +--- @return bool +function SpringBoneSimulator3D:is_config_individual(index) end + +--- @param index int +--- @param joint int +--- @return String +function SpringBoneSimulator3D:get_joint_bone_name(index, joint) end + +--- @param index int +--- @param joint int +--- @return int +function SpringBoneSimulator3D:get_joint_bone(index, joint) end + +--- @param index int +--- @param joint int +--- @param axis SpringBoneSimulator3D.RotationAxis +function SpringBoneSimulator3D:set_joint_rotation_axis(index, joint, axis) end + +--- @param index int +--- @param joint int +--- @return SpringBoneSimulator3D.RotationAxis +function SpringBoneSimulator3D:get_joint_rotation_axis(index, joint) end + +--- @param index int +--- @param joint int +--- @param vector Vector3 +function SpringBoneSimulator3D:set_joint_rotation_axis_vector(index, joint, vector) end + +--- @param index int +--- @param joint int +--- @return Vector3 +function SpringBoneSimulator3D:get_joint_rotation_axis_vector(index, joint) end + +--- @param index int +--- @param joint int +--- @param radius float +function SpringBoneSimulator3D:set_joint_radius(index, joint, radius) end + +--- @param index int +--- @param joint int +--- @return float +function SpringBoneSimulator3D:get_joint_radius(index, joint) end + +--- @param index int +--- @param joint int +--- @param stiffness float +function SpringBoneSimulator3D:set_joint_stiffness(index, joint, stiffness) end + +--- @param index int +--- @param joint int +--- @return float +function SpringBoneSimulator3D:get_joint_stiffness(index, joint) end + +--- @param index int +--- @param joint int +--- @param drag float +function SpringBoneSimulator3D:set_joint_drag(index, joint, drag) end + +--- @param index int +--- @param joint int +--- @return float +function SpringBoneSimulator3D:get_joint_drag(index, joint) end + +--- @param index int +--- @param joint int +--- @param gravity float +function SpringBoneSimulator3D:set_joint_gravity(index, joint, gravity) end + +--- @param index int +--- @param joint int +--- @return float +function SpringBoneSimulator3D:get_joint_gravity(index, joint) end + +--- @param index int +--- @param joint int +--- @param gravity_direction Vector3 +function SpringBoneSimulator3D:set_joint_gravity_direction(index, joint, gravity_direction) end + +--- @param index int +--- @param joint int +--- @return Vector3 +function SpringBoneSimulator3D:get_joint_gravity_direction(index, joint) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_joint_count(index) end + +--- @param index int +--- @param enabled bool +function SpringBoneSimulator3D:set_enable_all_child_collisions(index, enabled) end + +--- @param index int +--- @return bool +function SpringBoneSimulator3D:are_all_child_collisions_enabled(index) end + +--- @param index int +--- @param collision int +--- @param node_path NodePath +function SpringBoneSimulator3D:set_exclude_collision_path(index, collision, node_path) end + +--- @param index int +--- @param collision int +--- @return NodePath +function SpringBoneSimulator3D:get_exclude_collision_path(index, collision) end + +--- @param index int +--- @param count int +function SpringBoneSimulator3D:set_exclude_collision_count(index, count) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_exclude_collision_count(index) end + +--- @param index int +function SpringBoneSimulator3D:clear_exclude_collisions(index) end + +--- @param index int +--- @param collision int +--- @param node_path NodePath +function SpringBoneSimulator3D:set_collision_path(index, collision, node_path) end + +--- @param index int +--- @param collision int +--- @return NodePath +function SpringBoneSimulator3D:get_collision_path(index, collision) end + +--- @param index int +--- @param count int +function SpringBoneSimulator3D:set_collision_count(index, count) end + +--- @param index int +--- @return int +function SpringBoneSimulator3D:get_collision_count(index) end + +--- @param index int +function SpringBoneSimulator3D:clear_collisions(index) end + +--- @param force Vector3 +function SpringBoneSimulator3D:set_external_force(force) end + +--- @return Vector3 +function SpringBoneSimulator3D:get_external_force() end + +function SpringBoneSimulator3D:reset() end + + +----------------------------------------------------------- +-- Sprite2D +----------------------------------------------------------- + +--- @class Sprite2D: Node2D, { [string]: any } +--- @field texture Texture2D +--- @field centered bool +--- @field offset Vector2 +--- @field flip_h bool +--- @field flip_v bool +--- @field hframes int +--- @field vframes int +--- @field frame int +--- @field frame_coords Vector2i +--- @field region_enabled bool +--- @field region_rect Rect2 +--- @field region_filter_clip_enabled bool +Sprite2D = {} + +--- @return Sprite2D +function Sprite2D:new() end + +Sprite2D.frame_changed = Signal() +Sprite2D.texture_changed = Signal() + +--- @param texture Texture2D +function Sprite2D:set_texture(texture) end + +--- @return Texture2D +function Sprite2D:get_texture() end + +--- @param centered bool +function Sprite2D:set_centered(centered) end + +--- @return bool +function Sprite2D:is_centered() end + +--- @param offset Vector2 +function Sprite2D:set_offset(offset) end + +--- @return Vector2 +function Sprite2D:get_offset() end + +--- @param flip_h bool +function Sprite2D:set_flip_h(flip_h) end + +--- @return bool +function Sprite2D:is_flipped_h() end + +--- @param flip_v bool +function Sprite2D:set_flip_v(flip_v) end + +--- @return bool +function Sprite2D:is_flipped_v() end + +--- @param enabled bool +function Sprite2D:set_region_enabled(enabled) end + +--- @return bool +function Sprite2D:is_region_enabled() end + +--- @param pos Vector2 +--- @return bool +function Sprite2D:is_pixel_opaque(pos) end + +--- @param rect Rect2 +function Sprite2D:set_region_rect(rect) end + +--- @return Rect2 +function Sprite2D:get_region_rect() end + +--- @param enabled bool +function Sprite2D:set_region_filter_clip_enabled(enabled) end + +--- @return bool +function Sprite2D:is_region_filter_clip_enabled() end + +--- @param frame int +function Sprite2D:set_frame(frame) end + +--- @return int +function Sprite2D:get_frame() end + +--- @param coords Vector2i +function Sprite2D:set_frame_coords(coords) end + +--- @return Vector2i +function Sprite2D:get_frame_coords() end + +--- @param vframes int +function Sprite2D:set_vframes(vframes) end + +--- @return int +function Sprite2D:get_vframes() end + +--- @param hframes int +function Sprite2D:set_hframes(hframes) end + +--- @return int +function Sprite2D:get_hframes() end + +--- @return Rect2 +function Sprite2D:get_rect() end + + +----------------------------------------------------------- +-- Sprite3D +----------------------------------------------------------- + +--- @class Sprite3D: SpriteBase3D, { [string]: any } +--- @field texture Texture2D +--- @field hframes int +--- @field vframes int +--- @field frame int +--- @field frame_coords Vector2i +--- @field region_enabled bool +--- @field region_rect Rect2 +Sprite3D = {} + +--- @return Sprite3D +function Sprite3D:new() end + +Sprite3D.frame_changed = Signal() +Sprite3D.texture_changed = Signal() + +--- @param texture Texture2D +function Sprite3D:set_texture(texture) end + +--- @return Texture2D +function Sprite3D:get_texture() end + +--- @param enabled bool +function Sprite3D:set_region_enabled(enabled) end + +--- @return bool +function Sprite3D:is_region_enabled() end + +--- @param rect Rect2 +function Sprite3D:set_region_rect(rect) end + +--- @return Rect2 +function Sprite3D:get_region_rect() end + +--- @param frame int +function Sprite3D:set_frame(frame) end + +--- @return int +function Sprite3D:get_frame() end + +--- @param coords Vector2i +function Sprite3D:set_frame_coords(coords) end + +--- @return Vector2i +function Sprite3D:get_frame_coords() end + +--- @param vframes int +function Sprite3D:set_vframes(vframes) end + +--- @return int +function Sprite3D:get_vframes() end + +--- @param hframes int +function Sprite3D:set_hframes(hframes) end + +--- @return int +function Sprite3D:get_hframes() end + + +----------------------------------------------------------- +-- SpriteBase3D +----------------------------------------------------------- + +--- @class SpriteBase3D: GeometryInstance3D, { [string]: any } +--- @field centered bool +--- @field offset Vector2 +--- @field flip_h bool +--- @field flip_v bool +--- @field modulate Color +--- @field pixel_size float +--- @field axis int +--- @field billboard int +--- @field transparent bool +--- @field shaded bool +--- @field double_sided bool +--- @field no_depth_test bool +--- @field fixed_size bool +--- @field alpha_cut int +--- @field alpha_scissor_threshold float +--- @field alpha_hash_scale float +--- @field alpha_antialiasing_mode int +--- @field alpha_antialiasing_edge float +--- @field texture_filter int +--- @field render_priority int +SpriteBase3D = {} + +--- @alias SpriteBase3D.DrawFlags `SpriteBase3D.FLAG_TRANSPARENT` | `SpriteBase3D.FLAG_SHADED` | `SpriteBase3D.FLAG_DOUBLE_SIDED` | `SpriteBase3D.FLAG_DISABLE_DEPTH_TEST` | `SpriteBase3D.FLAG_FIXED_SIZE` | `SpriteBase3D.FLAG_MAX` +SpriteBase3D.FLAG_TRANSPARENT = 0 +SpriteBase3D.FLAG_SHADED = 1 +SpriteBase3D.FLAG_DOUBLE_SIDED = 2 +SpriteBase3D.FLAG_DISABLE_DEPTH_TEST = 3 +SpriteBase3D.FLAG_FIXED_SIZE = 4 +SpriteBase3D.FLAG_MAX = 5 + +--- @alias SpriteBase3D.AlphaCutMode `SpriteBase3D.ALPHA_CUT_DISABLED` | `SpriteBase3D.ALPHA_CUT_DISCARD` | `SpriteBase3D.ALPHA_CUT_OPAQUE_PREPASS` | `SpriteBase3D.ALPHA_CUT_HASH` +SpriteBase3D.ALPHA_CUT_DISABLED = 0 +SpriteBase3D.ALPHA_CUT_DISCARD = 1 +SpriteBase3D.ALPHA_CUT_OPAQUE_PREPASS = 2 +SpriteBase3D.ALPHA_CUT_HASH = 3 + +--- @param centered bool +function SpriteBase3D:set_centered(centered) end + +--- @return bool +function SpriteBase3D:is_centered() end + +--- @param offset Vector2 +function SpriteBase3D:set_offset(offset) end + +--- @return Vector2 +function SpriteBase3D:get_offset() end + +--- @param flip_h bool +function SpriteBase3D:set_flip_h(flip_h) end + +--- @return bool +function SpriteBase3D:is_flipped_h() end + +--- @param flip_v bool +function SpriteBase3D:set_flip_v(flip_v) end + +--- @return bool +function SpriteBase3D:is_flipped_v() end + +--- @param modulate Color +function SpriteBase3D:set_modulate(modulate) end + +--- @return Color +function SpriteBase3D:get_modulate() end + +--- @param priority int +function SpriteBase3D:set_render_priority(priority) end + +--- @return int +function SpriteBase3D:get_render_priority() end + +--- @param pixel_size float +function SpriteBase3D:set_pixel_size(pixel_size) end + +--- @return float +function SpriteBase3D:get_pixel_size() end + +--- @param axis Vector3.Axis +function SpriteBase3D:set_axis(axis) end + +--- @return Vector3.Axis +function SpriteBase3D:get_axis() end + +--- @param flag SpriteBase3D.DrawFlags +--- @param enabled bool +function SpriteBase3D:set_draw_flag(flag, enabled) end + +--- @param flag SpriteBase3D.DrawFlags +--- @return bool +function SpriteBase3D:get_draw_flag(flag) end + +--- @param mode SpriteBase3D.AlphaCutMode +function SpriteBase3D:set_alpha_cut_mode(mode) end + +--- @return SpriteBase3D.AlphaCutMode +function SpriteBase3D:get_alpha_cut_mode() end + +--- @param threshold float +function SpriteBase3D:set_alpha_scissor_threshold(threshold) end + +--- @return float +function SpriteBase3D:get_alpha_scissor_threshold() end + +--- @param threshold float +function SpriteBase3D:set_alpha_hash_scale(threshold) end + +--- @return float +function SpriteBase3D:get_alpha_hash_scale() end + +--- @param alpha_aa BaseMaterial3D.AlphaAntiAliasing +function SpriteBase3D:set_alpha_antialiasing(alpha_aa) end + +--- @return BaseMaterial3D.AlphaAntiAliasing +function SpriteBase3D:get_alpha_antialiasing() end + +--- @param edge float +function SpriteBase3D:set_alpha_antialiasing_edge(edge) end + +--- @return float +function SpriteBase3D:get_alpha_antialiasing_edge() end + +--- @param mode BaseMaterial3D.BillboardMode +function SpriteBase3D:set_billboard_mode(mode) end + +--- @return BaseMaterial3D.BillboardMode +function SpriteBase3D:get_billboard_mode() end + +--- @param mode BaseMaterial3D.TextureFilter +function SpriteBase3D:set_texture_filter(mode) end + +--- @return BaseMaterial3D.TextureFilter +function SpriteBase3D:get_texture_filter() end + +--- @return Rect2 +function SpriteBase3D:get_item_rect() end + +--- @return TriangleMesh +function SpriteBase3D:generate_triangle_mesh() end + + +----------------------------------------------------------- +-- SpriteFrames +----------------------------------------------------------- + +--- @class SpriteFrames: Resource, { [string]: any } +--- @field animations Array +SpriteFrames = {} + +--- @return SpriteFrames +function SpriteFrames:new() end + +--- @param anim StringName +function SpriteFrames:add_animation(anim) end + +--- @param anim StringName +--- @return bool +function SpriteFrames:has_animation(anim) end + +--- @param anim_from StringName +--- @param anim_to StringName +function SpriteFrames:duplicate_animation(anim_from, anim_to) end + +--- @param anim StringName +function SpriteFrames:remove_animation(anim) end + +--- @param anim StringName +--- @param newname StringName +function SpriteFrames:rename_animation(anim, newname) end + +--- @return PackedStringArray +function SpriteFrames:get_animation_names() end + +--- @param anim StringName +--- @param fps float +function SpriteFrames:set_animation_speed(anim, fps) end + +--- @param anim StringName +--- @return float +function SpriteFrames:get_animation_speed(anim) end + +--- @param anim StringName +--- @param loop bool +function SpriteFrames:set_animation_loop(anim, loop) end + +--- @param anim StringName +--- @return bool +function SpriteFrames:get_animation_loop(anim) end + +--- @param anim StringName +--- @param texture Texture2D +--- @param duration float? Default: 1.0 +--- @param at_position int? Default: -1 +function SpriteFrames:add_frame(anim, texture, duration, at_position) end + +--- @param anim StringName +--- @param idx int +--- @param texture Texture2D +--- @param duration float? Default: 1.0 +function SpriteFrames:set_frame(anim, idx, texture, duration) end + +--- @param anim StringName +--- @param idx int +function SpriteFrames:remove_frame(anim, idx) end + +--- @param anim StringName +--- @return int +function SpriteFrames:get_frame_count(anim) end + +--- @param anim StringName +--- @param idx int +--- @return Texture2D +function SpriteFrames:get_frame_texture(anim, idx) end + +--- @param anim StringName +--- @param idx int +--- @return float +function SpriteFrames:get_frame_duration(anim, idx) end + +--- @param anim StringName +function SpriteFrames:clear(anim) end + +function SpriteFrames:clear_all() end + + +----------------------------------------------------------- +-- StandardMaterial3D +----------------------------------------------------------- + +--- @class StandardMaterial3D: BaseMaterial3D, { [string]: any } +StandardMaterial3D = {} + +--- @return StandardMaterial3D +function StandardMaterial3D:new() end + + +----------------------------------------------------------- +-- StaticBody2D +----------------------------------------------------------- + +--- @class StaticBody2D: PhysicsBody2D, { [string]: any } +--- @field physics_material_override PhysicsMaterial +--- @field constant_linear_velocity Vector2 +--- @field constant_angular_velocity float +StaticBody2D = {} + +--- @return StaticBody2D +function StaticBody2D:new() end + +--- @param vel Vector2 +function StaticBody2D:set_constant_linear_velocity(vel) end + +--- @param vel float +function StaticBody2D:set_constant_angular_velocity(vel) end + +--- @return Vector2 +function StaticBody2D:get_constant_linear_velocity() end + +--- @return float +function StaticBody2D:get_constant_angular_velocity() end + +--- @param physics_material_override PhysicsMaterial +function StaticBody2D:set_physics_material_override(physics_material_override) end + +--- @return PhysicsMaterial +function StaticBody2D:get_physics_material_override() end + + +----------------------------------------------------------- +-- StaticBody3D +----------------------------------------------------------- + +--- @class StaticBody3D: PhysicsBody3D, { [string]: any } +--- @field physics_material_override PhysicsMaterial +--- @field constant_linear_velocity Vector3 +--- @field constant_angular_velocity Vector3 +StaticBody3D = {} + +--- @return StaticBody3D +function StaticBody3D:new() end + +--- @param vel Vector3 +function StaticBody3D:set_constant_linear_velocity(vel) end + +--- @param vel Vector3 +function StaticBody3D:set_constant_angular_velocity(vel) end + +--- @return Vector3 +function StaticBody3D:get_constant_linear_velocity() end + +--- @return Vector3 +function StaticBody3D:get_constant_angular_velocity() end + +--- @param physics_material_override PhysicsMaterial +function StaticBody3D:set_physics_material_override(physics_material_override) end + +--- @return PhysicsMaterial +function StaticBody3D:get_physics_material_override() end + + +----------------------------------------------------------- +-- StatusIndicator +----------------------------------------------------------- + +--- @class StatusIndicator: Node, { [string]: any } +--- @field tooltip String +--- @field icon Texture2D +--- @field menu NodePath +--- @field visible bool +StatusIndicator = {} + +--- @return StatusIndicator +function StatusIndicator:new() end + +StatusIndicator.pressed = Signal() + +--- @param tooltip String +function StatusIndicator:set_tooltip(tooltip) end + +--- @return String +function StatusIndicator:get_tooltip() end + +--- @param texture Texture2D +function StatusIndicator:set_icon(texture) end + +--- @return Texture2D +function StatusIndicator:get_icon() end + +--- @param visible bool +function StatusIndicator:set_visible(visible) end + +--- @return bool +function StatusIndicator:is_visible() end + +--- @param menu NodePath +function StatusIndicator:set_menu(menu) end + +--- @return NodePath +function StatusIndicator:get_menu() end + +--- @return Rect2 +function StatusIndicator:get_rect() end + + +----------------------------------------------------------- +-- StreamPeer +----------------------------------------------------------- + +--- @class StreamPeer: RefCounted, { [string]: any } +--- @field big_endian bool +StreamPeer = {} + +--- @param data PackedByteArray +--- @return Error +function StreamPeer:put_data(data) end + +--- @param data PackedByteArray +--- @return Array +function StreamPeer:put_partial_data(data) end + +--- @param bytes int +--- @return Array +function StreamPeer:get_data(bytes) end + +--- @param bytes int +--- @return Array +function StreamPeer:get_partial_data(bytes) end + +--- @return int +function StreamPeer:get_available_bytes() end + +--- @param enable bool +function StreamPeer:set_big_endian(enable) end + +--- @return bool +function StreamPeer:is_big_endian_enabled() end + +--- @param value int +function StreamPeer:put_8(value) end + +--- @param value int +function StreamPeer:put_u8(value) end + +--- @param value int +function StreamPeer:put_16(value) end + +--- @param value int +function StreamPeer:put_u16(value) end + +--- @param value int +function StreamPeer:put_32(value) end + +--- @param value int +function StreamPeer:put_u32(value) end + +--- @param value int +function StreamPeer:put_64(value) end + +--- @param value int +function StreamPeer:put_u64(value) end + +--- @param value float +function StreamPeer:put_half(value) end + +--- @param value float +function StreamPeer:put_float(value) end + +--- @param value float +function StreamPeer:put_double(value) end + +--- @param value String +function StreamPeer:put_string(value) end + +--- @param value String +function StreamPeer:put_utf8_string(value) end + +--- @param value any +--- @param full_objects bool? Default: false +function StreamPeer:put_var(value, full_objects) end + +--- @return int +function StreamPeer:get_8() end + +--- @return int +function StreamPeer:get_u8() end + +--- @return int +function StreamPeer:get_16() end + +--- @return int +function StreamPeer:get_u16() end + +--- @return int +function StreamPeer:get_32() end + +--- @return int +function StreamPeer:get_u32() end + +--- @return int +function StreamPeer:get_64() end + +--- @return int +function StreamPeer:get_u64() end + +--- @return float +function StreamPeer:get_half() end + +--- @return float +function StreamPeer:get_float() end + +--- @return float +function StreamPeer:get_double() end + +--- @param bytes int? Default: -1 +--- @return String +function StreamPeer:get_string(bytes) end + +--- @param bytes int? Default: -1 +--- @return String +function StreamPeer:get_utf8_string(bytes) end + +--- @param allow_objects bool? Default: false +--- @return any +function StreamPeer:get_var(allow_objects) end + + +----------------------------------------------------------- +-- StreamPeerBuffer +----------------------------------------------------------- + +--- @class StreamPeerBuffer: StreamPeer, { [string]: any } +--- @field data_array PackedByteArray +StreamPeerBuffer = {} + +--- @return StreamPeerBuffer +function StreamPeerBuffer:new() end + +--- @param position int +function StreamPeerBuffer:seek(position) end + +--- @return int +function StreamPeerBuffer:get_size() end + +--- @return int +function StreamPeerBuffer:get_position() end + +--- @param size int +function StreamPeerBuffer:resize(size) end + +--- @param data PackedByteArray +function StreamPeerBuffer:set_data_array(data) end + +--- @return PackedByteArray +function StreamPeerBuffer:get_data_array() end + +function StreamPeerBuffer:clear() end + +--- @return StreamPeerBuffer +function StreamPeerBuffer:duplicate() end + + +----------------------------------------------------------- +-- StreamPeerExtension +----------------------------------------------------------- + +--- @class StreamPeerExtension: StreamPeer, { [string]: any } +StreamPeerExtension = {} + +--- @return StreamPeerExtension +function StreamPeerExtension:new() end + +--- @param r_buffer uint8_t* +--- @param r_bytes int +--- @param r_received int32_t* +--- @return Error +function StreamPeerExtension:_get_data(r_buffer, r_bytes, r_received) end + +--- @param r_buffer uint8_t* +--- @param r_bytes int +--- @param r_received int32_t* +--- @return Error +function StreamPeerExtension:_get_partial_data(r_buffer, r_bytes, r_received) end + +--- @param p_data const uint8_t* +--- @param p_bytes int +--- @param r_sent int32_t* +--- @return Error +function StreamPeerExtension:_put_data(p_data, p_bytes, r_sent) end + +--- @param p_data const uint8_t* +--- @param p_bytes int +--- @param r_sent int32_t* +--- @return Error +function StreamPeerExtension:_put_partial_data(p_data, p_bytes, r_sent) end + +--- @return int +function StreamPeerExtension:_get_available_bytes() end + + +----------------------------------------------------------- +-- StreamPeerGZIP +----------------------------------------------------------- + +--- @class StreamPeerGZIP: StreamPeer, { [string]: any } +StreamPeerGZIP = {} + +--- @return StreamPeerGZIP +function StreamPeerGZIP:new() end + +--- @param use_deflate bool? Default: false +--- @param buffer_size int? Default: 65535 +--- @return Error +function StreamPeerGZIP:start_compression(use_deflate, buffer_size) end + +--- @param use_deflate bool? Default: false +--- @param buffer_size int? Default: 65535 +--- @return Error +function StreamPeerGZIP:start_decompression(use_deflate, buffer_size) end + +--- @return Error +function StreamPeerGZIP:finish() end + +function StreamPeerGZIP:clear() end + + +----------------------------------------------------------- +-- StreamPeerTCP +----------------------------------------------------------- + +--- @class StreamPeerTCP: StreamPeer, { [string]: any } +StreamPeerTCP = {} + +--- @return StreamPeerTCP +function StreamPeerTCP:new() end + +--- @alias StreamPeerTCP.Status `StreamPeerTCP.STATUS_NONE` | `StreamPeerTCP.STATUS_CONNECTING` | `StreamPeerTCP.STATUS_CONNECTED` | `StreamPeerTCP.STATUS_ERROR` +StreamPeerTCP.STATUS_NONE = 0 +StreamPeerTCP.STATUS_CONNECTING = 1 +StreamPeerTCP.STATUS_CONNECTED = 2 +StreamPeerTCP.STATUS_ERROR = 3 + +--- @param port int +--- @param host String? Default: "*" +--- @return Error +function StreamPeerTCP:bind(port, host) end + +--- @param host String +--- @param port int +--- @return Error +function StreamPeerTCP:connect_to_host(host, port) end + +--- @return Error +function StreamPeerTCP:poll() end + +--- @return StreamPeerTCP.Status +function StreamPeerTCP:get_status() end + +--- @return String +function StreamPeerTCP:get_connected_host() end + +--- @return int +function StreamPeerTCP:get_connected_port() end + +--- @return int +function StreamPeerTCP:get_local_port() end + +function StreamPeerTCP:disconnect_from_host() end + +--- @param enabled bool +function StreamPeerTCP:set_no_delay(enabled) end + + +----------------------------------------------------------- +-- StreamPeerTLS +----------------------------------------------------------- + +--- @class StreamPeerTLS: StreamPeer, { [string]: any } +StreamPeerTLS = {} + +--- @return StreamPeerTLS +function StreamPeerTLS:new() end + +--- @alias StreamPeerTLS.Status `StreamPeerTLS.STATUS_DISCONNECTED` | `StreamPeerTLS.STATUS_HANDSHAKING` | `StreamPeerTLS.STATUS_CONNECTED` | `StreamPeerTLS.STATUS_ERROR` | `StreamPeerTLS.STATUS_ERROR_HOSTNAME_MISMATCH` +StreamPeerTLS.STATUS_DISCONNECTED = 0 +StreamPeerTLS.STATUS_HANDSHAKING = 1 +StreamPeerTLS.STATUS_CONNECTED = 2 +StreamPeerTLS.STATUS_ERROR = 3 +StreamPeerTLS.STATUS_ERROR_HOSTNAME_MISMATCH = 4 + +function StreamPeerTLS:poll() end + +--- @param stream StreamPeer +--- @param server_options TLSOptions +--- @return Error +function StreamPeerTLS:accept_stream(stream, server_options) end + +--- @param stream StreamPeer +--- @param common_name String +--- @param client_options TLSOptions? Default: null +--- @return Error +function StreamPeerTLS:connect_to_stream(stream, common_name, client_options) end + +--- @return StreamPeerTLS.Status +function StreamPeerTLS:get_status() end + +--- @return StreamPeer +function StreamPeerTLS:get_stream() end + +function StreamPeerTLS:disconnect_from_stream() end + + +----------------------------------------------------------- +-- StyleBox +----------------------------------------------------------- + +--- @class StyleBox: Resource, { [string]: any } +--- @field content_margin_left float +--- @field content_margin_top float +--- @field content_margin_right float +--- @field content_margin_bottom float +StyleBox = {} + +--- @return StyleBox +function StyleBox:new() end + +--- @param to_canvas_item RID +--- @param rect Rect2 +function StyleBox:_draw(to_canvas_item, rect) end + +--- @param rect Rect2 +--- @return Rect2 +function StyleBox:_get_draw_rect(rect) end + +--- @return Vector2 +function StyleBox:_get_minimum_size() end + +--- @param point Vector2 +--- @param rect Rect2 +--- @return bool +function StyleBox:_test_mask(point, rect) end + +--- @return Vector2 +function StyleBox:get_minimum_size() end + +--- @param margin Side +--- @param offset float +function StyleBox:set_content_margin(margin, offset) end + +--- @param offset float +function StyleBox:set_content_margin_all(offset) end + +--- @param margin Side +--- @return float +function StyleBox:get_content_margin(margin) end + +--- @param margin Side +--- @return float +function StyleBox:get_margin(margin) end + +--- @return Vector2 +function StyleBox:get_offset() end + +--- @param canvas_item RID +--- @param rect Rect2 +function StyleBox:draw(canvas_item, rect) end + +--- @return CanvasItem +function StyleBox:get_current_item_drawn() end + +--- @param point Vector2 +--- @param rect Rect2 +--- @return bool +function StyleBox:test_mask(point, rect) end + + +----------------------------------------------------------- +-- StyleBoxEmpty +----------------------------------------------------------- + +--- @class StyleBoxEmpty: StyleBox, { [string]: any } +StyleBoxEmpty = {} + +--- @return StyleBoxEmpty +function StyleBoxEmpty:new() end + + +----------------------------------------------------------- +-- StyleBoxFlat +----------------------------------------------------------- + +--- @class StyleBoxFlat: StyleBox, { [string]: any } +--- @field bg_color Color +--- @field draw_center bool +--- @field skew Vector2 +--- @field border_width_left int +--- @field border_width_top int +--- @field border_width_right int +--- @field border_width_bottom int +--- @field border_color Color +--- @field border_blend bool +--- @field corner_radius_top_left int +--- @field corner_radius_top_right int +--- @field corner_radius_bottom_right int +--- @field corner_radius_bottom_left int +--- @field corner_detail int +--- @field expand_margin_left float +--- @field expand_margin_top float +--- @field expand_margin_right float +--- @field expand_margin_bottom float +--- @field shadow_color Color +--- @field shadow_size int +--- @field shadow_offset Vector2 +--- @field anti_aliasing bool +--- @field anti_aliasing_size float +StyleBoxFlat = {} + +--- @return StyleBoxFlat +function StyleBoxFlat:new() end + +--- @param color Color +function StyleBoxFlat:set_bg_color(color) end + +--- @return Color +function StyleBoxFlat:get_bg_color() end + +--- @param color Color +function StyleBoxFlat:set_border_color(color) end + +--- @return Color +function StyleBoxFlat:get_border_color() end + +--- @param width int +function StyleBoxFlat:set_border_width_all(width) end + +--- @return int +function StyleBoxFlat:get_border_width_min() end + +--- @param margin Side +--- @param width int +function StyleBoxFlat:set_border_width(margin, width) end + +--- @param margin Side +--- @return int +function StyleBoxFlat:get_border_width(margin) end + +--- @param blend bool +function StyleBoxFlat:set_border_blend(blend) end + +--- @return bool +function StyleBoxFlat:get_border_blend() end + +--- @param radius int +function StyleBoxFlat:set_corner_radius_all(radius) end + +--- @param corner Corner +--- @param radius int +function StyleBoxFlat:set_corner_radius(corner, radius) end + +--- @param corner Corner +--- @return int +function StyleBoxFlat:get_corner_radius(corner) end + +--- @param margin Side +--- @param size float +function StyleBoxFlat:set_expand_margin(margin, size) end + +--- @param size float +function StyleBoxFlat:set_expand_margin_all(size) end + +--- @param margin Side +--- @return float +function StyleBoxFlat:get_expand_margin(margin) end + +--- @param draw_center bool +function StyleBoxFlat:set_draw_center(draw_center) end + +--- @return bool +function StyleBoxFlat:is_draw_center_enabled() end + +--- @param skew Vector2 +function StyleBoxFlat:set_skew(skew) end + +--- @return Vector2 +function StyleBoxFlat:get_skew() end + +--- @param color Color +function StyleBoxFlat:set_shadow_color(color) end + +--- @return Color +function StyleBoxFlat:get_shadow_color() end + +--- @param size int +function StyleBoxFlat:set_shadow_size(size) end + +--- @return int +function StyleBoxFlat:get_shadow_size() end + +--- @param offset Vector2 +function StyleBoxFlat:set_shadow_offset(offset) end + +--- @return Vector2 +function StyleBoxFlat:get_shadow_offset() end + +--- @param anti_aliased bool +function StyleBoxFlat:set_anti_aliased(anti_aliased) end + +--- @return bool +function StyleBoxFlat:is_anti_aliased() end + +--- @param size float +function StyleBoxFlat:set_aa_size(size) end + +--- @return float +function StyleBoxFlat:get_aa_size() end + +--- @param detail int +function StyleBoxFlat:set_corner_detail(detail) end + +--- @return int +function StyleBoxFlat:get_corner_detail() end + + +----------------------------------------------------------- +-- StyleBoxLine +----------------------------------------------------------- + +--- @class StyleBoxLine: StyleBox, { [string]: any } +--- @field color Color +--- @field grow_begin float +--- @field grow_end float +--- @field thickness int +--- @field vertical bool +StyleBoxLine = {} + +--- @return StyleBoxLine +function StyleBoxLine:new() end + +--- @param color Color +function StyleBoxLine:set_color(color) end + +--- @return Color +function StyleBoxLine:get_color() end + +--- @param thickness int +function StyleBoxLine:set_thickness(thickness) end + +--- @return int +function StyleBoxLine:get_thickness() end + +--- @param offset float +function StyleBoxLine:set_grow_begin(offset) end + +--- @return float +function StyleBoxLine:get_grow_begin() end + +--- @param offset float +function StyleBoxLine:set_grow_end(offset) end + +--- @return float +function StyleBoxLine:get_grow_end() end + +--- @param vertical bool +function StyleBoxLine:set_vertical(vertical) end + +--- @return bool +function StyleBoxLine:is_vertical() end + + +----------------------------------------------------------- +-- StyleBoxTexture +----------------------------------------------------------- + +--- @class StyleBoxTexture: StyleBox, { [string]: any } +--- @field texture Texture2D +--- @field texture_margin_left float +--- @field texture_margin_top float +--- @field texture_margin_right float +--- @field texture_margin_bottom float +--- @field expand_margin_left float +--- @field expand_margin_top float +--- @field expand_margin_right float +--- @field expand_margin_bottom float +--- @field axis_stretch_horizontal int +--- @field axis_stretch_vertical int +--- @field region_rect Rect2 +--- @field modulate_color Color +--- @field draw_center bool +StyleBoxTexture = {} + +--- @return StyleBoxTexture +function StyleBoxTexture:new() end + +--- @alias StyleBoxTexture.AxisStretchMode `StyleBoxTexture.AXIS_STRETCH_MODE_STRETCH` | `StyleBoxTexture.AXIS_STRETCH_MODE_TILE` | `StyleBoxTexture.AXIS_STRETCH_MODE_TILE_FIT` +StyleBoxTexture.AXIS_STRETCH_MODE_STRETCH = 0 +StyleBoxTexture.AXIS_STRETCH_MODE_TILE = 1 +StyleBoxTexture.AXIS_STRETCH_MODE_TILE_FIT = 2 + +--- @param texture Texture2D +function StyleBoxTexture:set_texture(texture) end + +--- @return Texture2D +function StyleBoxTexture:get_texture() end + +--- @param margin Side +--- @param size float +function StyleBoxTexture:set_texture_margin(margin, size) end + +--- @param size float +function StyleBoxTexture:set_texture_margin_all(size) end + +--- @param margin Side +--- @return float +function StyleBoxTexture:get_texture_margin(margin) end + +--- @param margin Side +--- @param size float +function StyleBoxTexture:set_expand_margin(margin, size) end + +--- @param size float +function StyleBoxTexture:set_expand_margin_all(size) end + +--- @param margin Side +--- @return float +function StyleBoxTexture:get_expand_margin(margin) end + +--- @param region Rect2 +function StyleBoxTexture:set_region_rect(region) end + +--- @return Rect2 +function StyleBoxTexture:get_region_rect() end + +--- @param enable bool +function StyleBoxTexture:set_draw_center(enable) end + +--- @return bool +function StyleBoxTexture:is_draw_center_enabled() end + +--- @param color Color +function StyleBoxTexture:set_modulate(color) end + +--- @return Color +function StyleBoxTexture:get_modulate() end + +--- @param mode StyleBoxTexture.AxisStretchMode +function StyleBoxTexture:set_h_axis_stretch_mode(mode) end + +--- @return StyleBoxTexture.AxisStretchMode +function StyleBoxTexture:get_h_axis_stretch_mode() end + +--- @param mode StyleBoxTexture.AxisStretchMode +function StyleBoxTexture:set_v_axis_stretch_mode(mode) end + +--- @return StyleBoxTexture.AxisStretchMode +function StyleBoxTexture:get_v_axis_stretch_mode() end + + +----------------------------------------------------------- +-- SubViewport +----------------------------------------------------------- + +--- @class SubViewport: Viewport, { [string]: any } +--- @field size Vector2i +--- @field size_2d_override Vector2i +--- @field size_2d_override_stretch bool +--- @field render_target_clear_mode int +--- @field render_target_update_mode int +SubViewport = {} + +--- @return SubViewport +function SubViewport:new() end + +--- @alias SubViewport.ClearMode `SubViewport.CLEAR_MODE_ALWAYS` | `SubViewport.CLEAR_MODE_NEVER` | `SubViewport.CLEAR_MODE_ONCE` +SubViewport.CLEAR_MODE_ALWAYS = 0 +SubViewport.CLEAR_MODE_NEVER = 1 +SubViewport.CLEAR_MODE_ONCE = 2 + +--- @alias SubViewport.UpdateMode `SubViewport.UPDATE_DISABLED` | `SubViewport.UPDATE_ONCE` | `SubViewport.UPDATE_WHEN_VISIBLE` | `SubViewport.UPDATE_WHEN_PARENT_VISIBLE` | `SubViewport.UPDATE_ALWAYS` +SubViewport.UPDATE_DISABLED = 0 +SubViewport.UPDATE_ONCE = 1 +SubViewport.UPDATE_WHEN_VISIBLE = 2 +SubViewport.UPDATE_WHEN_PARENT_VISIBLE = 3 +SubViewport.UPDATE_ALWAYS = 4 + +--- @param size Vector2i +function SubViewport:set_size(size) end + +--- @return Vector2i +function SubViewport:get_size() end + +--- @param size Vector2i +function SubViewport:set_size_2d_override(size) end + +--- @return Vector2i +function SubViewport:get_size_2d_override() end + +--- @param enable bool +function SubViewport:set_size_2d_override_stretch(enable) end + +--- @return bool +function SubViewport:is_size_2d_override_stretch_enabled() end + +--- @param mode SubViewport.UpdateMode +function SubViewport:set_update_mode(mode) end + +--- @return SubViewport.UpdateMode +function SubViewport:get_update_mode() end + +--- @param mode SubViewport.ClearMode +function SubViewport:set_clear_mode(mode) end + +--- @return SubViewport.ClearMode +function SubViewport:get_clear_mode() end + + +----------------------------------------------------------- +-- SubViewportContainer +----------------------------------------------------------- + +--- @class SubViewportContainer: Container, { [string]: any } +--- @field stretch bool +--- @field stretch_shrink int +--- @field mouse_target bool +SubViewportContainer = {} + +--- @return SubViewportContainer +function SubViewportContainer:new() end + +--- @param event InputEvent +--- @return bool +function SubViewportContainer:_propagate_input_event(event) end + +--- @param enable bool +function SubViewportContainer:set_stretch(enable) end + +--- @return bool +function SubViewportContainer:is_stretch_enabled() end + +--- @param amount int +function SubViewportContainer:set_stretch_shrink(amount) end + +--- @return int +function SubViewportContainer:get_stretch_shrink() end + +--- @param amount bool +function SubViewportContainer:set_mouse_target(amount) end + +--- @return bool +function SubViewportContainer:is_mouse_target_enabled() end + + +----------------------------------------------------------- +-- SubtweenTweener +----------------------------------------------------------- + +--- @class SubtweenTweener: Tweener, { [string]: any } +SubtweenTweener = {} + +--- @return SubtweenTweener +function SubtweenTweener:new() end + +--- @param delay float +--- @return SubtweenTweener +function SubtweenTweener:set_delay(delay) end + + +----------------------------------------------------------- +-- SurfaceTool +----------------------------------------------------------- + +--- @class SurfaceTool: RefCounted, { [string]: any } +SurfaceTool = {} + +--- @return SurfaceTool +function SurfaceTool:new() end + +--- @alias SurfaceTool.CustomFormat `SurfaceTool.CUSTOM_RGBA8_UNORM` | `SurfaceTool.CUSTOM_RGBA8_SNORM` | `SurfaceTool.CUSTOM_RG_HALF` | `SurfaceTool.CUSTOM_RGBA_HALF` | `SurfaceTool.CUSTOM_R_FLOAT` | `SurfaceTool.CUSTOM_RG_FLOAT` | `SurfaceTool.CUSTOM_RGB_FLOAT` | `SurfaceTool.CUSTOM_RGBA_FLOAT` | `SurfaceTool.CUSTOM_MAX` +SurfaceTool.CUSTOM_RGBA8_UNORM = 0 +SurfaceTool.CUSTOM_RGBA8_SNORM = 1 +SurfaceTool.CUSTOM_RG_HALF = 2 +SurfaceTool.CUSTOM_RGBA_HALF = 3 +SurfaceTool.CUSTOM_R_FLOAT = 4 +SurfaceTool.CUSTOM_RG_FLOAT = 5 +SurfaceTool.CUSTOM_RGB_FLOAT = 6 +SurfaceTool.CUSTOM_RGBA_FLOAT = 7 +SurfaceTool.CUSTOM_MAX = 8 + +--- @alias SurfaceTool.SkinWeightCount `SurfaceTool.SKIN_4_WEIGHTS` | `SurfaceTool.SKIN_8_WEIGHTS` +SurfaceTool.SKIN_4_WEIGHTS = 0 +SurfaceTool.SKIN_8_WEIGHTS = 1 + +--- @param count SurfaceTool.SkinWeightCount +function SurfaceTool:set_skin_weight_count(count) end + +--- @return SurfaceTool.SkinWeightCount +function SurfaceTool:get_skin_weight_count() end + +--- @param channel_index int +--- @param format SurfaceTool.CustomFormat +function SurfaceTool:set_custom_format(channel_index, format) end + +--- @param channel_index int +--- @return SurfaceTool.CustomFormat +function SurfaceTool:get_custom_format(channel_index) end + +--- @param primitive Mesh.PrimitiveType +function SurfaceTool:begin(primitive) end + +--- @param vertex Vector3 +function SurfaceTool:add_vertex(vertex) end + +--- @param color Color +function SurfaceTool:set_color(color) end + +--- @param normal Vector3 +function SurfaceTool:set_normal(normal) end + +--- @param tangent Plane +function SurfaceTool:set_tangent(tangent) end + +--- @param uv Vector2 +function SurfaceTool:set_uv(uv) end + +--- @param uv2 Vector2 +function SurfaceTool:set_uv2(uv2) end + +--- @param bones PackedInt32Array +function SurfaceTool:set_bones(bones) end + +--- @param weights PackedFloat32Array +function SurfaceTool:set_weights(weights) end + +--- @param channel_index int +--- @param custom_color Color +function SurfaceTool:set_custom(channel_index, custom_color) end + +--- @param index int +function SurfaceTool:set_smooth_group(index) end + +--- @param vertices PackedVector3Array +--- @param uvs PackedVector2Array? Default: PackedVector2Array() +--- @param colors PackedColorArray? Default: PackedColorArray() +--- @param uv2s PackedVector2Array? Default: PackedVector2Array() +--- @param normals PackedVector3Array? Default: PackedVector3Array() +--- @param tangents Array[Plane]? Default: Array[Plane]([]) +function SurfaceTool:add_triangle_fan(vertices, uvs, colors, uv2s, normals, tangents) end + +--- @param index int +function SurfaceTool:add_index(index) end + +function SurfaceTool:index() end + +function SurfaceTool:deindex() end + +--- @param flip bool? Default: false +function SurfaceTool:generate_normals(flip) end + +function SurfaceTool:generate_tangents() end + +function SurfaceTool:optimize_indices_for_cache() end + +--- @return AABB +function SurfaceTool:get_aabb() end + +--- @param nd_threshold float +--- @param target_index_count int? Default: 3 +--- @return PackedInt32Array +function SurfaceTool:generate_lod(nd_threshold, target_index_count) end + +--- @param material Material +function SurfaceTool:set_material(material) end + +--- @return Mesh.PrimitiveType +function SurfaceTool:get_primitive_type() end + +function SurfaceTool:clear() end + +--- @param existing Mesh +--- @param surface int +function SurfaceTool:create_from(existing, surface) end + +--- @param arrays Array +--- @param primitive_type Mesh.PrimitiveType? Default: 3 +function SurfaceTool:create_from_arrays(arrays, primitive_type) end + +--- @param existing Mesh +--- @param surface int +--- @param blend_shape String +function SurfaceTool:create_from_blend_shape(existing, surface, blend_shape) end + +--- @param existing Mesh +--- @param surface int +--- @param transform Transform3D +function SurfaceTool:append_from(existing, surface, transform) end + +--- @param existing ArrayMesh? Default: null +--- @param flags int? Default: 0 +--- @return ArrayMesh +function SurfaceTool:commit(existing, flags) end + +--- @return Array +function SurfaceTool:commit_to_arrays() end + + +----------------------------------------------------------- +-- SyntaxHighlighter +----------------------------------------------------------- + +--- @class SyntaxHighlighter: Resource, { [string]: any } +SyntaxHighlighter = {} + +--- @return SyntaxHighlighter +function SyntaxHighlighter:new() end + +--- @param line int +--- @return Dictionary +function SyntaxHighlighter:_get_line_syntax_highlighting(line) end + +function SyntaxHighlighter:_clear_highlighting_cache() end + +function SyntaxHighlighter:_update_cache() end + +--- @param line int +--- @return Dictionary +function SyntaxHighlighter:get_line_syntax_highlighting(line) end + +function SyntaxHighlighter:update_cache() end + +function SyntaxHighlighter:clear_highlighting_cache() end + +--- @return TextEdit +function SyntaxHighlighter:get_text_edit() end + + +----------------------------------------------------------- +-- SystemFont +----------------------------------------------------------- + +--- @class SystemFont: Font, { [string]: any } +--- @field font_names PackedStringArray +--- @field font_italic bool +--- @field font_weight int +--- @field font_stretch int +--- @field antialiasing int +--- @field generate_mipmaps bool +--- @field disable_embedded_bitmaps bool +--- @field allow_system_fallback bool +--- @field force_autohinter bool +--- @field modulate_color_glyphs bool +--- @field hinting int +--- @field subpixel_positioning int +--- @field keep_rounding_remainders bool +--- @field multichannel_signed_distance_field bool +--- @field msdf_pixel_range int +--- @field msdf_size int +--- @field oversampling float +SystemFont = {} + +--- @return SystemFont +function SystemFont:new() end + +--- @param antialiasing TextServer.FontAntialiasing +function SystemFont:set_antialiasing(antialiasing) end + +--- @return TextServer.FontAntialiasing +function SystemFont:get_antialiasing() end + +--- @param disable_embedded_bitmaps bool +function SystemFont:set_disable_embedded_bitmaps(disable_embedded_bitmaps) end + +--- @return bool +function SystemFont:get_disable_embedded_bitmaps() end + +--- @param generate_mipmaps bool +function SystemFont:set_generate_mipmaps(generate_mipmaps) end + +--- @return bool +function SystemFont:get_generate_mipmaps() end + +--- @param allow_system_fallback bool +function SystemFont:set_allow_system_fallback(allow_system_fallback) end + +--- @return bool +function SystemFont:is_allow_system_fallback() end + +--- @param force_autohinter bool +function SystemFont:set_force_autohinter(force_autohinter) end + +--- @return bool +function SystemFont:is_force_autohinter() end + +--- @param modulate bool +function SystemFont:set_modulate_color_glyphs(modulate) end + +--- @return bool +function SystemFont:is_modulate_color_glyphs() end + +--- @param hinting TextServer.Hinting +function SystemFont:set_hinting(hinting) end + +--- @return TextServer.Hinting +function SystemFont:get_hinting() end + +--- @param subpixel_positioning TextServer.SubpixelPositioning +function SystemFont:set_subpixel_positioning(subpixel_positioning) end + +--- @return TextServer.SubpixelPositioning +function SystemFont:get_subpixel_positioning() end + +--- @param keep_rounding_remainders bool +function SystemFont:set_keep_rounding_remainders(keep_rounding_remainders) end + +--- @return bool +function SystemFont:get_keep_rounding_remainders() end + +--- @param msdf bool +function SystemFont:set_multichannel_signed_distance_field(msdf) end + +--- @return bool +function SystemFont:is_multichannel_signed_distance_field() end + +--- @param msdf_pixel_range int +function SystemFont:set_msdf_pixel_range(msdf_pixel_range) end + +--- @return int +function SystemFont:get_msdf_pixel_range() end + +--- @param msdf_size int +function SystemFont:set_msdf_size(msdf_size) end + +--- @return int +function SystemFont:get_msdf_size() end + +--- @param oversampling float +function SystemFont:set_oversampling(oversampling) end + +--- @return float +function SystemFont:get_oversampling() end + +--- @return PackedStringArray +function SystemFont:get_font_names() end + +--- @param names PackedStringArray +function SystemFont:set_font_names(names) end + +--- @return bool +function SystemFont:get_font_italic() end + +--- @param italic bool +function SystemFont:set_font_italic(italic) end + +--- @param weight int +function SystemFont:set_font_weight(weight) end + +--- @param stretch int +function SystemFont:set_font_stretch(stretch) end + + +----------------------------------------------------------- +-- TCPServer +----------------------------------------------------------- + +--- @class TCPServer: RefCounted, { [string]: any } +TCPServer = {} + +--- @return TCPServer +function TCPServer:new() end + +--- @param port int +--- @param bind_address String? Default: "*" +--- @return Error +function TCPServer:listen(port, bind_address) end + +--- @return bool +function TCPServer:is_connection_available() end + +--- @return bool +function TCPServer:is_listening() end + +--- @return int +function TCPServer:get_local_port() end + +--- @return StreamPeerTCP +function TCPServer:take_connection() end + +function TCPServer:stop() end + + +----------------------------------------------------------- +-- TLSOptions +----------------------------------------------------------- + +--- @class TLSOptions: RefCounted, { [string]: any } +TLSOptions = {} + +--- static +--- @param trusted_chain X509Certificate? Default: null +--- @param common_name_override String? Default: "" +--- @return TLSOptions +function TLSOptions:client(trusted_chain, common_name_override) end + +--- static +--- @param trusted_chain X509Certificate? Default: null +--- @return TLSOptions +function TLSOptions:client_unsafe(trusted_chain) end + +--- static +--- @param key CryptoKey +--- @param certificate X509Certificate +--- @return TLSOptions +function TLSOptions:server(key, certificate) end + +--- @return bool +function TLSOptions:is_server() end + +--- @return bool +function TLSOptions:is_unsafe_client() end + +--- @return String +function TLSOptions:get_common_name_override() end + +--- @return X509Certificate +function TLSOptions:get_trusted_ca_chain() end + +--- @return CryptoKey +function TLSOptions:get_private_key() end + +--- @return X509Certificate +function TLSOptions:get_own_certificate() end + + +----------------------------------------------------------- +-- TabBar +----------------------------------------------------------- + +--- @class TabBar: Control, { [string]: any } +--- @field current_tab int +--- @field tab_alignment int +--- @field clip_tabs bool +--- @field close_with_middle_mouse bool +--- @field tab_close_display_policy int +--- @field max_tab_width int +--- @field scrolling_enabled bool +--- @field drag_to_rearrange_enabled bool +--- @field tabs_rearrange_group int +--- @field scroll_to_selected bool +--- @field select_with_rmb bool +--- @field deselect_enabled bool +--- @field tab_count int +TabBar = {} + +--- @return TabBar +function TabBar:new() end + +--- @alias TabBar.AlignmentMode `TabBar.ALIGNMENT_LEFT` | `TabBar.ALIGNMENT_CENTER` | `TabBar.ALIGNMENT_RIGHT` | `TabBar.ALIGNMENT_MAX` +TabBar.ALIGNMENT_LEFT = 0 +TabBar.ALIGNMENT_CENTER = 1 +TabBar.ALIGNMENT_RIGHT = 2 +TabBar.ALIGNMENT_MAX = 3 + +--- @alias TabBar.CloseButtonDisplayPolicy `TabBar.CLOSE_BUTTON_SHOW_NEVER` | `TabBar.CLOSE_BUTTON_SHOW_ACTIVE_ONLY` | `TabBar.CLOSE_BUTTON_SHOW_ALWAYS` | `TabBar.CLOSE_BUTTON_MAX` +TabBar.CLOSE_BUTTON_SHOW_NEVER = 0 +TabBar.CLOSE_BUTTON_SHOW_ACTIVE_ONLY = 1 +TabBar.CLOSE_BUTTON_SHOW_ALWAYS = 2 +TabBar.CLOSE_BUTTON_MAX = 3 + +TabBar.tab_selected = Signal() +TabBar.tab_changed = Signal() +TabBar.tab_clicked = Signal() +TabBar.tab_rmb_clicked = Signal() +TabBar.tab_close_pressed = Signal() +TabBar.tab_button_pressed = Signal() +TabBar.tab_hovered = Signal() +TabBar.active_tab_rearranged = Signal() + +--- @param count int +function TabBar:set_tab_count(count) end + +--- @return int +function TabBar:get_tab_count() end + +--- @param tab_idx int +function TabBar:set_current_tab(tab_idx) end + +--- @return int +function TabBar:get_current_tab() end + +--- @return int +function TabBar:get_previous_tab() end + +--- @return bool +function TabBar:select_previous_available() end + +--- @return bool +function TabBar:select_next_available() end + +--- @param tab_idx int +--- @param title String +function TabBar:set_tab_title(tab_idx, title) end + +--- @param tab_idx int +--- @return String +function TabBar:get_tab_title(tab_idx) end + +--- @param tab_idx int +--- @param tooltip String +function TabBar:set_tab_tooltip(tab_idx, tooltip) end + +--- @param tab_idx int +--- @return String +function TabBar:get_tab_tooltip(tab_idx) end + +--- @param tab_idx int +--- @param direction Control.TextDirection +function TabBar:set_tab_text_direction(tab_idx, direction) end + +--- @param tab_idx int +--- @return Control.TextDirection +function TabBar:get_tab_text_direction(tab_idx) end + +--- @param tab_idx int +--- @param language String +function TabBar:set_tab_language(tab_idx, language) end + +--- @param tab_idx int +--- @return String +function TabBar:get_tab_language(tab_idx) end + +--- @param tab_idx int +--- @param icon Texture2D +function TabBar:set_tab_icon(tab_idx, icon) end + +--- @param tab_idx int +--- @return Texture2D +function TabBar:get_tab_icon(tab_idx) end + +--- @param tab_idx int +--- @param width int +function TabBar:set_tab_icon_max_width(tab_idx, width) end + +--- @param tab_idx int +--- @return int +function TabBar:get_tab_icon_max_width(tab_idx) end + +--- @param tab_idx int +--- @param icon Texture2D +function TabBar:set_tab_button_icon(tab_idx, icon) end + +--- @param tab_idx int +--- @return Texture2D +function TabBar:get_tab_button_icon(tab_idx) end + +--- @param tab_idx int +--- @param disabled bool +function TabBar:set_tab_disabled(tab_idx, disabled) end + +--- @param tab_idx int +--- @return bool +function TabBar:is_tab_disabled(tab_idx) end + +--- @param tab_idx int +--- @param hidden bool +function TabBar:set_tab_hidden(tab_idx, hidden) end + +--- @param tab_idx int +--- @return bool +function TabBar:is_tab_hidden(tab_idx) end + +--- @param tab_idx int +--- @param metadata any +function TabBar:set_tab_metadata(tab_idx, metadata) end + +--- @param tab_idx int +--- @return any +function TabBar:get_tab_metadata(tab_idx) end + +--- @param tab_idx int +function TabBar:remove_tab(tab_idx) end + +--- @param title String? Default: "" +--- @param icon Texture2D? Default: null +function TabBar:add_tab(title, icon) end + +--- @param point Vector2 +--- @return int +function TabBar:get_tab_idx_at_point(point) end + +--- @param alignment TabBar.AlignmentMode +function TabBar:set_tab_alignment(alignment) end + +--- @return TabBar.AlignmentMode +function TabBar:get_tab_alignment() end + +--- @param clip_tabs bool +function TabBar:set_clip_tabs(clip_tabs) end + +--- @return bool +function TabBar:get_clip_tabs() end + +--- @return int +function TabBar:get_tab_offset() end + +--- @return bool +function TabBar:get_offset_buttons_visible() end + +--- @param idx int +function TabBar:ensure_tab_visible(idx) end + +--- @param tab_idx int +--- @return Rect2 +function TabBar:get_tab_rect(tab_idx) end + +--- @param from int +--- @param to int +function TabBar:move_tab(from, to) end + +--- @param enabled bool +function TabBar:set_close_with_middle_mouse(enabled) end + +--- @return bool +function TabBar:get_close_with_middle_mouse() end + +--- @param policy TabBar.CloseButtonDisplayPolicy +function TabBar:set_tab_close_display_policy(policy) end + +--- @return TabBar.CloseButtonDisplayPolicy +function TabBar:get_tab_close_display_policy() end + +--- @param width int +function TabBar:set_max_tab_width(width) end + +--- @return int +function TabBar:get_max_tab_width() end + +--- @param enabled bool +function TabBar:set_scrolling_enabled(enabled) end + +--- @return bool +function TabBar:get_scrolling_enabled() end + +--- @param enabled bool +function TabBar:set_drag_to_rearrange_enabled(enabled) end + +--- @return bool +function TabBar:get_drag_to_rearrange_enabled() end + +--- @param group_id int +function TabBar:set_tabs_rearrange_group(group_id) end + +--- @return int +function TabBar:get_tabs_rearrange_group() end + +--- @param enabled bool +function TabBar:set_scroll_to_selected(enabled) end + +--- @return bool +function TabBar:get_scroll_to_selected() end + +--- @param enabled bool +function TabBar:set_select_with_rmb(enabled) end + +--- @return bool +function TabBar:get_select_with_rmb() end + +--- @param enabled bool +function TabBar:set_deselect_enabled(enabled) end + +--- @return bool +function TabBar:get_deselect_enabled() end + +function TabBar:clear_tabs() end + + +----------------------------------------------------------- +-- TabContainer +----------------------------------------------------------- + +--- @class TabContainer: Container, { [string]: any } +--- @field tab_alignment int +--- @field current_tab int +--- @field tabs_position int +--- @field clip_tabs bool +--- @field tabs_visible bool +--- @field all_tabs_in_front bool +--- @field drag_to_rearrange_enabled bool +--- @field tabs_rearrange_group int +--- @field use_hidden_tabs_for_min_size bool +--- @field tab_focus_mode int +--- @field deselect_enabled bool +TabContainer = {} + +--- @return TabContainer +function TabContainer:new() end + +--- @alias TabContainer.TabPosition `TabContainer.POSITION_TOP` | `TabContainer.POSITION_BOTTOM` | `TabContainer.POSITION_MAX` +TabContainer.POSITION_TOP = 0 +TabContainer.POSITION_BOTTOM = 1 +TabContainer.POSITION_MAX = 2 + +TabContainer.active_tab_rearranged = Signal() +TabContainer.tab_changed = Signal() +TabContainer.tab_clicked = Signal() +TabContainer.tab_hovered = Signal() +TabContainer.tab_selected = Signal() +TabContainer.tab_button_pressed = Signal() +TabContainer.pre_popup_pressed = Signal() + +--- @return int +function TabContainer:get_tab_count() end + +--- @param tab_idx int +function TabContainer:set_current_tab(tab_idx) end + +--- @return int +function TabContainer:get_current_tab() end + +--- @return int +function TabContainer:get_previous_tab() end + +--- @return bool +function TabContainer:select_previous_available() end + +--- @return bool +function TabContainer:select_next_available() end + +--- @return Control +function TabContainer:get_current_tab_control() end + +--- @return TabBar +function TabContainer:get_tab_bar() end + +--- @param tab_idx int +--- @return Control +function TabContainer:get_tab_control(tab_idx) end + +--- @param alignment TabBar.AlignmentMode +function TabContainer:set_tab_alignment(alignment) end + +--- @return TabBar.AlignmentMode +function TabContainer:get_tab_alignment() end + +--- @param tabs_position TabContainer.TabPosition +function TabContainer:set_tabs_position(tabs_position) end + +--- @return TabContainer.TabPosition +function TabContainer:get_tabs_position() end + +--- @param clip_tabs bool +function TabContainer:set_clip_tabs(clip_tabs) end + +--- @return bool +function TabContainer:get_clip_tabs() end + +--- @param visible bool +function TabContainer:set_tabs_visible(visible) end + +--- @return bool +function TabContainer:are_tabs_visible() end + +--- @param is_front bool +function TabContainer:set_all_tabs_in_front(is_front) end + +--- @return bool +function TabContainer:is_all_tabs_in_front() end + +--- @param tab_idx int +--- @param title String +function TabContainer:set_tab_title(tab_idx, title) end + +--- @param tab_idx int +--- @return String +function TabContainer:get_tab_title(tab_idx) end + +--- @param tab_idx int +--- @param tooltip String +function TabContainer:set_tab_tooltip(tab_idx, tooltip) end + +--- @param tab_idx int +--- @return String +function TabContainer:get_tab_tooltip(tab_idx) end + +--- @param tab_idx int +--- @param icon Texture2D +function TabContainer:set_tab_icon(tab_idx, icon) end + +--- @param tab_idx int +--- @return Texture2D +function TabContainer:get_tab_icon(tab_idx) end + +--- @param tab_idx int +--- @param width int +function TabContainer:set_tab_icon_max_width(tab_idx, width) end + +--- @param tab_idx int +--- @return int +function TabContainer:get_tab_icon_max_width(tab_idx) end + +--- @param tab_idx int +--- @param disabled bool +function TabContainer:set_tab_disabled(tab_idx, disabled) end + +--- @param tab_idx int +--- @return bool +function TabContainer:is_tab_disabled(tab_idx) end + +--- @param tab_idx int +--- @param hidden bool +function TabContainer:set_tab_hidden(tab_idx, hidden) end + +--- @param tab_idx int +--- @return bool +function TabContainer:is_tab_hidden(tab_idx) end + +--- @param tab_idx int +--- @param metadata any +function TabContainer:set_tab_metadata(tab_idx, metadata) end + +--- @param tab_idx int +--- @return any +function TabContainer:get_tab_metadata(tab_idx) end + +--- @param tab_idx int +--- @param icon Texture2D +function TabContainer:set_tab_button_icon(tab_idx, icon) end + +--- @param tab_idx int +--- @return Texture2D +function TabContainer:get_tab_button_icon(tab_idx) end + +--- @param point Vector2 +--- @return int +function TabContainer:get_tab_idx_at_point(point) end + +--- @param control Control +--- @return int +function TabContainer:get_tab_idx_from_control(control) end + +--- @param popup Node +function TabContainer:set_popup(popup) end + +--- @return Popup +function TabContainer:get_popup() end + +--- @param enabled bool +function TabContainer:set_drag_to_rearrange_enabled(enabled) end + +--- @return bool +function TabContainer:get_drag_to_rearrange_enabled() end + +--- @param group_id int +function TabContainer:set_tabs_rearrange_group(group_id) end + +--- @return int +function TabContainer:get_tabs_rearrange_group() end + +--- @param enabled bool +function TabContainer:set_use_hidden_tabs_for_min_size(enabled) end + +--- @return bool +function TabContainer:get_use_hidden_tabs_for_min_size() end + +--- @param focus_mode Control.FocusMode +function TabContainer:set_tab_focus_mode(focus_mode) end + +--- @return Control.FocusMode +function TabContainer:get_tab_focus_mode() end + +--- @param enabled bool +function TabContainer:set_deselect_enabled(enabled) end + +--- @return bool +function TabContainer:get_deselect_enabled() end + + +----------------------------------------------------------- +-- TextEdit +----------------------------------------------------------- + +--- @class TextEdit: Control, { [string]: any } +--- @field text String +--- @field placeholder_text String +--- @field editable bool +--- @field context_menu_enabled bool +--- @field emoji_menu_enabled bool +--- @field backspace_deletes_composite_character_enabled bool +--- @field shortcut_keys_enabled bool +--- @field selecting_enabled bool +--- @field deselect_on_focus_loss_enabled bool +--- @field drag_and_drop_selection_enabled bool +--- @field virtual_keyboard_enabled bool +--- @field virtual_keyboard_show_on_focus bool +--- @field middle_mouse_paste_enabled bool +--- @field empty_selection_clipboard_enabled bool +--- @field wrap_mode int +--- @field autowrap_mode int +--- @field indent_wrapped_lines bool +--- @field tab_input_mode bool +--- @field scroll_smooth bool +--- @field scroll_v_scroll_speed float +--- @field scroll_past_end_of_file bool +--- @field scroll_vertical float +--- @field scroll_horizontal int +--- @field scroll_fit_content_height bool +--- @field scroll_fit_content_width bool +--- @field minimap_draw bool +--- @field minimap_width int +--- @field caret_type int +--- @field caret_blink bool +--- @field caret_blink_interval float +--- @field caret_draw_when_editable_disabled bool +--- @field caret_move_on_right_click bool +--- @field caret_mid_grapheme bool +--- @field caret_multiple bool +--- @field use_default_word_separators bool +--- @field use_custom_word_separators bool +--- @field custom_word_separators String +--- @field syntax_highlighter SyntaxHighlighter +--- @field highlight_all_occurrences bool +--- @field highlight_current_line bool +--- @field draw_control_chars bool +--- @field draw_tabs bool +--- @field draw_spaces bool +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +TextEdit = {} + +--- @return TextEdit +function TextEdit:new() end + +--- @alias TextEdit.MenuItems `TextEdit.MENU_CUT` | `TextEdit.MENU_COPY` | `TextEdit.MENU_PASTE` | `TextEdit.MENU_CLEAR` | `TextEdit.MENU_SELECT_ALL` | `TextEdit.MENU_UNDO` | `TextEdit.MENU_REDO` | `TextEdit.MENU_SUBMENU_TEXT_DIR` | `TextEdit.MENU_DIR_INHERITED` | `TextEdit.MENU_DIR_AUTO` | `TextEdit.MENU_DIR_LTR` | `TextEdit.MENU_DIR_RTL` | `TextEdit.MENU_DISPLAY_UCC` | `TextEdit.MENU_SUBMENU_INSERT_UCC` | `TextEdit.MENU_INSERT_LRM` | `TextEdit.MENU_INSERT_RLM` | `TextEdit.MENU_INSERT_LRE` | `TextEdit.MENU_INSERT_RLE` | `TextEdit.MENU_INSERT_LRO` | `TextEdit.MENU_INSERT_RLO` | `TextEdit.MENU_INSERT_PDF` | `TextEdit.MENU_INSERT_ALM` | `TextEdit.MENU_INSERT_LRI` | `TextEdit.MENU_INSERT_RLI` | `TextEdit.MENU_INSERT_FSI` | `TextEdit.MENU_INSERT_PDI` | `TextEdit.MENU_INSERT_ZWJ` | `TextEdit.MENU_INSERT_ZWNJ` | `TextEdit.MENU_INSERT_WJ` | `TextEdit.MENU_INSERT_SHY` | `TextEdit.MENU_EMOJI_AND_SYMBOL` | `TextEdit.MENU_MAX` +TextEdit.MENU_CUT = 0 +TextEdit.MENU_COPY = 1 +TextEdit.MENU_PASTE = 2 +TextEdit.MENU_CLEAR = 3 +TextEdit.MENU_SELECT_ALL = 4 +TextEdit.MENU_UNDO = 5 +TextEdit.MENU_REDO = 6 +TextEdit.MENU_SUBMENU_TEXT_DIR = 7 +TextEdit.MENU_DIR_INHERITED = 8 +TextEdit.MENU_DIR_AUTO = 9 +TextEdit.MENU_DIR_LTR = 10 +TextEdit.MENU_DIR_RTL = 11 +TextEdit.MENU_DISPLAY_UCC = 12 +TextEdit.MENU_SUBMENU_INSERT_UCC = 13 +TextEdit.MENU_INSERT_LRM = 14 +TextEdit.MENU_INSERT_RLM = 15 +TextEdit.MENU_INSERT_LRE = 16 +TextEdit.MENU_INSERT_RLE = 17 +TextEdit.MENU_INSERT_LRO = 18 +TextEdit.MENU_INSERT_RLO = 19 +TextEdit.MENU_INSERT_PDF = 20 +TextEdit.MENU_INSERT_ALM = 21 +TextEdit.MENU_INSERT_LRI = 22 +TextEdit.MENU_INSERT_RLI = 23 +TextEdit.MENU_INSERT_FSI = 24 +TextEdit.MENU_INSERT_PDI = 25 +TextEdit.MENU_INSERT_ZWJ = 26 +TextEdit.MENU_INSERT_ZWNJ = 27 +TextEdit.MENU_INSERT_WJ = 28 +TextEdit.MENU_INSERT_SHY = 29 +TextEdit.MENU_EMOJI_AND_SYMBOL = 30 +TextEdit.MENU_MAX = 31 + +--- @alias TextEdit.EditAction `TextEdit.ACTION_NONE` | `TextEdit.ACTION_TYPING` | `TextEdit.ACTION_BACKSPACE` | `TextEdit.ACTION_DELETE` +TextEdit.ACTION_NONE = 0 +TextEdit.ACTION_TYPING = 1 +TextEdit.ACTION_BACKSPACE = 2 +TextEdit.ACTION_DELETE = 3 + +--- @alias TextEdit.SearchFlags `TextEdit.SEARCH_MATCH_CASE` | `TextEdit.SEARCH_WHOLE_WORDS` | `TextEdit.SEARCH_BACKWARDS` +TextEdit.SEARCH_MATCH_CASE = 1 +TextEdit.SEARCH_WHOLE_WORDS = 2 +TextEdit.SEARCH_BACKWARDS = 4 + +--- @alias TextEdit.CaretType `TextEdit.CARET_TYPE_LINE` | `TextEdit.CARET_TYPE_BLOCK` +TextEdit.CARET_TYPE_LINE = 0 +TextEdit.CARET_TYPE_BLOCK = 1 + +--- @alias TextEdit.SelectionMode `TextEdit.SELECTION_MODE_NONE` | `TextEdit.SELECTION_MODE_SHIFT` | `TextEdit.SELECTION_MODE_POINTER` | `TextEdit.SELECTION_MODE_WORD` | `TextEdit.SELECTION_MODE_LINE` +TextEdit.SELECTION_MODE_NONE = 0 +TextEdit.SELECTION_MODE_SHIFT = 1 +TextEdit.SELECTION_MODE_POINTER = 2 +TextEdit.SELECTION_MODE_WORD = 3 +TextEdit.SELECTION_MODE_LINE = 4 + +--- @alias TextEdit.LineWrappingMode `TextEdit.LINE_WRAPPING_NONE` | `TextEdit.LINE_WRAPPING_BOUNDARY` +TextEdit.LINE_WRAPPING_NONE = 0 +TextEdit.LINE_WRAPPING_BOUNDARY = 1 + +--- @alias TextEdit.GutterType `TextEdit.GUTTER_TYPE_STRING` | `TextEdit.GUTTER_TYPE_ICON` | `TextEdit.GUTTER_TYPE_CUSTOM` +TextEdit.GUTTER_TYPE_STRING = 0 +TextEdit.GUTTER_TYPE_ICON = 1 +TextEdit.GUTTER_TYPE_CUSTOM = 2 + +TextEdit.text_set = Signal() +TextEdit.text_changed = Signal() +TextEdit.lines_edited_from = Signal() +TextEdit.caret_changed = Signal() +TextEdit.gutter_clicked = Signal() +TextEdit.gutter_added = Signal() +TextEdit.gutter_removed = Signal() + +--- @param unicode_char int +--- @param caret_index int +function TextEdit:_handle_unicode_input(unicode_char, caret_index) end + +--- @param caret_index int +function TextEdit:_backspace(caret_index) end + +--- @param caret_index int +function TextEdit:_cut(caret_index) end + +--- @param caret_index int +function TextEdit:_copy(caret_index) end + +--- @param caret_index int +function TextEdit:_paste(caret_index) end + +--- @param caret_index int +function TextEdit:_paste_primary_clipboard(caret_index) end + +--- @return bool +function TextEdit:has_ime_text() end + +function TextEdit:cancel_ime() end + +function TextEdit:apply_ime() end + +--- @param enabled bool +function TextEdit:set_editable(enabled) end + +--- @return bool +function TextEdit:is_editable() end + +--- @param direction Control.TextDirection +function TextEdit:set_text_direction(direction) end + +--- @return Control.TextDirection +function TextEdit:get_text_direction() end + +--- @param language String +function TextEdit:set_language(language) end + +--- @return String +function TextEdit:get_language() end + +--- @param parser TextServer.StructuredTextParser +function TextEdit:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function TextEdit:get_structured_text_bidi_override() end + +--- @param args Array +function TextEdit:set_structured_text_bidi_override_options(args) end + +--- @return Array +function TextEdit:get_structured_text_bidi_override_options() end + +--- @param size int +function TextEdit:set_tab_size(size) end + +--- @return int +function TextEdit:get_tab_size() end + +--- @param enabled bool +function TextEdit:set_indent_wrapped_lines(enabled) end + +--- @return bool +function TextEdit:is_indent_wrapped_lines() end + +--- @param enabled bool +function TextEdit:set_tab_input_mode(enabled) end + +--- @return bool +function TextEdit:get_tab_input_mode() end + +--- @param enabled bool +function TextEdit:set_overtype_mode_enabled(enabled) end + +--- @return bool +function TextEdit:is_overtype_mode_enabled() end + +--- @param enabled bool +function TextEdit:set_context_menu_enabled(enabled) end + +--- @return bool +function TextEdit:is_context_menu_enabled() end + +--- @param enable bool +function TextEdit:set_emoji_menu_enabled(enable) end + +--- @return bool +function TextEdit:is_emoji_menu_enabled() end + +--- @param enable bool +function TextEdit:set_backspace_deletes_composite_character_enabled(enable) end + +--- @return bool +function TextEdit:is_backspace_deletes_composite_character_enabled() end + +--- @param enabled bool +function TextEdit:set_shortcut_keys_enabled(enabled) end + +--- @return bool +function TextEdit:is_shortcut_keys_enabled() end + +--- @param enabled bool +function TextEdit:set_virtual_keyboard_enabled(enabled) end + +--- @return bool +function TextEdit:is_virtual_keyboard_enabled() end + +--- @param show_on_focus bool +function TextEdit:set_virtual_keyboard_show_on_focus(show_on_focus) end + +--- @return bool +function TextEdit:get_virtual_keyboard_show_on_focus() end + +--- @param enabled bool +function TextEdit:set_middle_mouse_paste_enabled(enabled) end + +--- @return bool +function TextEdit:is_middle_mouse_paste_enabled() end + +--- @param enabled bool +function TextEdit:set_empty_selection_clipboard_enabled(enabled) end + +--- @return bool +function TextEdit:is_empty_selection_clipboard_enabled() end + +function TextEdit:clear() end + +--- @param text String +function TextEdit:set_text(text) end + +--- @return String +function TextEdit:get_text() end + +--- @return int +function TextEdit:get_line_count() end + +--- @param text String +function TextEdit:set_placeholder(text) end + +--- @return String +function TextEdit:get_placeholder() end + +--- @param line int +--- @param new_text String +function TextEdit:set_line(line, new_text) end + +--- @param line int +--- @return String +function TextEdit:get_line(line) end + +--- @param line int +--- @return String +function TextEdit:get_line_with_ime(line) end + +--- @param line int +--- @param wrap_index int? Default: -1 +--- @return int +function TextEdit:get_line_width(line, wrap_index) end + +--- @return int +function TextEdit:get_line_height() end + +--- @param line int +--- @return int +function TextEdit:get_indent_level(line) end + +--- @param line int +--- @return int +function TextEdit:get_first_non_whitespace_column(line) end + +--- @param from_line int +--- @param to_line int +function TextEdit:swap_lines(from_line, to_line) end + +--- @param line int +--- @param text String +function TextEdit:insert_line_at(line, text) end + +--- @param line int +--- @param move_carets_down bool? Default: true +function TextEdit:remove_line_at(line, move_carets_down) end + +--- @param text String +--- @param caret_index int? Default: -1 +function TextEdit:insert_text_at_caret(text, caret_index) end + +--- @param text String +--- @param line int +--- @param column int +--- @param before_selection_begin bool? Default: true +--- @param before_selection_end bool? Default: false +function TextEdit:insert_text(text, line, column, before_selection_begin, before_selection_end) end + +--- @param from_line int +--- @param from_column int +--- @param to_line int +--- @param to_column int +function TextEdit:remove_text(from_line, from_column, to_line, to_column) end + +--- @return int +function TextEdit:get_last_unhidden_line() end + +--- @param line int +--- @param visible_amount int +--- @return int +function TextEdit:get_next_visible_line_offset_from(line, visible_amount) end + +--- @param line int +--- @param wrap_index int +--- @param visible_amount int +--- @return Vector2i +function TextEdit:get_next_visible_line_index_offset_from(line, wrap_index, visible_amount) end + +--- @param caret_index int? Default: -1 +function TextEdit:backspace(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:cut(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:copy(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:paste(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:paste_primary_clipboard(caret_index) end + +--- @param action TextEdit.EditAction +function TextEdit:start_action(action) end + +function TextEdit:end_action() end + +function TextEdit:begin_complex_operation() end + +function TextEdit:end_complex_operation() end + +--- @return bool +function TextEdit:has_undo() end + +--- @return bool +function TextEdit:has_redo() end + +function TextEdit:undo() end + +function TextEdit:redo() end + +function TextEdit:clear_undo_history() end + +function TextEdit:tag_saved_version() end + +--- @return int +function TextEdit:get_version() end + +--- @return int +function TextEdit:get_saved_version() end + +--- @param search_text String +function TextEdit:set_search_text(search_text) end + +--- @param flags int +function TextEdit:set_search_flags(flags) end + +--- @param text String +--- @param flags int +--- @param from_line int +--- @param from_column int +--- @return Vector2i +function TextEdit:search(text, flags, from_line, from_column) end + +--- @param callback Callable +function TextEdit:set_tooltip_request_func(callback) end + +--- @return Vector2 +function TextEdit:get_local_mouse_pos() end + +--- @param position Vector2 +--- @return String +function TextEdit:get_word_at_pos(position) end + +--- @param position Vector2i +--- @param clamp_line bool? Default: true +--- @param clamp_column bool? Default: true +--- @return Vector2i +function TextEdit:get_line_column_at_pos(position, clamp_line, clamp_column) end + +--- @param line int +--- @param column int +--- @return Vector2i +function TextEdit:get_pos_at_line_column(line, column) end + +--- @param line int +--- @param column int +--- @return Rect2i +function TextEdit:get_rect_at_line_column(line, column) end + +--- @param position Vector2i +--- @return int +function TextEdit:get_minimap_line_at_pos(position) end + +--- @return bool +function TextEdit:is_dragging_cursor() end + +--- @param edges bool +--- @param caret_index int? Default: -1 +--- @return bool +function TextEdit:is_mouse_over_selection(edges, caret_index) end + +--- @param type TextEdit.CaretType +function TextEdit:set_caret_type(type) end + +--- @return TextEdit.CaretType +function TextEdit:get_caret_type() end + +--- @param enable bool +function TextEdit:set_caret_blink_enabled(enable) end + +--- @return bool +function TextEdit:is_caret_blink_enabled() end + +--- @param interval float +function TextEdit:set_caret_blink_interval(interval) end + +--- @return float +function TextEdit:get_caret_blink_interval() end + +--- @param enable bool +function TextEdit:set_draw_caret_when_editable_disabled(enable) end + +--- @return bool +function TextEdit:is_drawing_caret_when_editable_disabled() end + +--- @param enable bool +function TextEdit:set_move_caret_on_right_click_enabled(enable) end + +--- @return bool +function TextEdit:is_move_caret_on_right_click_enabled() end + +--- @param enabled bool +function TextEdit:set_caret_mid_grapheme_enabled(enabled) end + +--- @return bool +function TextEdit:is_caret_mid_grapheme_enabled() end + +--- @param enabled bool +function TextEdit:set_multiple_carets_enabled(enabled) end + +--- @return bool +function TextEdit:is_multiple_carets_enabled() end + +--- @param line int +--- @param column int +--- @return int +function TextEdit:add_caret(line, column) end + +--- @param caret int +function TextEdit:remove_caret(caret) end + +function TextEdit:remove_secondary_carets() end + +--- @return int +function TextEdit:get_caret_count() end + +--- @param below bool +function TextEdit:add_caret_at_carets(below) end + +--- @param include_ignored_carets bool? Default: false +--- @return PackedInt32Array +function TextEdit:get_sorted_carets(include_ignored_carets) end + +--- @param from_line int +--- @param from_column int +--- @param to_line int +--- @param to_column int +--- @param inclusive bool? Default: false +function TextEdit:collapse_carets(from_line, from_column, to_line, to_column, inclusive) end + +function TextEdit:merge_overlapping_carets() end + +function TextEdit:begin_multicaret_edit() end + +function TextEdit:end_multicaret_edit() end + +--- @return bool +function TextEdit:is_in_mulitcaret_edit() end + +--- @param caret_index int +--- @return bool +function TextEdit:multicaret_edit_ignore_caret(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return bool +function TextEdit:is_caret_visible(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return Vector2 +function TextEdit:get_caret_draw_pos(caret_index) end + +--- @param line int +--- @param adjust_viewport bool? Default: true +--- @param can_be_hidden bool? Default: true +--- @param wrap_index int? Default: 0 +--- @param caret_index int? Default: 0 +function TextEdit:set_caret_line(line, adjust_viewport, can_be_hidden, wrap_index, caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_caret_line(caret_index) end + +--- @param column int +--- @param adjust_viewport bool? Default: true +--- @param caret_index int? Default: 0 +function TextEdit:set_caret_column(column, adjust_viewport, caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_caret_column(caret_index) end + +--- @param line int +--- @param column int +--- @return int +function TextEdit:get_next_composite_character_column(line, column) end + +--- @param line int +--- @param column int +--- @return int +function TextEdit:get_previous_composite_character_column(line, column) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_caret_wrap_index(caret_index) end + +--- @param caret_index int? Default: -1 +--- @return String +function TextEdit:get_word_under_caret(caret_index) end + +--- @param enabled bool +function TextEdit:set_use_default_word_separators(enabled) end + +--- @return bool +function TextEdit:is_default_word_separators_enabled() end + +--- @param enabled bool +function TextEdit:set_use_custom_word_separators(enabled) end + +--- @return bool +function TextEdit:is_custom_word_separators_enabled() end + +--- @param custom_word_separators String +function TextEdit:set_custom_word_separators(custom_word_separators) end + +--- @return String +function TextEdit:get_custom_word_separators() end + +--- @param enable bool +function TextEdit:set_selecting_enabled(enable) end + +--- @return bool +function TextEdit:is_selecting_enabled() end + +--- @param enable bool +function TextEdit:set_deselect_on_focus_loss_enabled(enable) end + +--- @return bool +function TextEdit:is_deselect_on_focus_loss_enabled() end + +--- @param enable bool +function TextEdit:set_drag_and_drop_selection_enabled(enable) end + +--- @return bool +function TextEdit:is_drag_and_drop_selection_enabled() end + +--- @param mode TextEdit.SelectionMode +function TextEdit:set_selection_mode(mode) end + +--- @return TextEdit.SelectionMode +function TextEdit:get_selection_mode() end + +function TextEdit:select_all() end + +--- @param caret_index int? Default: -1 +function TextEdit:select_word_under_caret(caret_index) end + +function TextEdit:add_selection_for_next_occurrence() end + +function TextEdit:skip_selection_for_next_occurrence() end + +--- @param origin_line int +--- @param origin_column int +--- @param caret_line int +--- @param caret_column int +--- @param caret_index int? Default: 0 +function TextEdit:select(origin_line, origin_column, caret_line, caret_column, caret_index) end + +--- @param caret_index int? Default: -1 +--- @return bool +function TextEdit:has_selection(caret_index) end + +--- @param caret_index int? Default: -1 +--- @return String +function TextEdit:get_selected_text(caret_index) end + +--- @param line int +--- @param column int +--- @param include_edges bool? Default: true +--- @param only_selections bool? Default: true +--- @return int +function TextEdit:get_selection_at_line_column(line, column, include_edges, only_selections) end + +--- @param only_selections bool? Default: false +--- @param merge_adjacent bool? Default: true +--- @return Array[Vector2i] +function TextEdit:get_line_ranges_from_carets(only_selections, merge_adjacent) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_origin_line(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_origin_column(caret_index) end + +--- @param line int +--- @param can_be_hidden bool? Default: true +--- @param wrap_index int? Default: -1 +--- @param caret_index int? Default: 0 +function TextEdit:set_selection_origin_line(line, can_be_hidden, wrap_index, caret_index) end + +--- @param column int +--- @param caret_index int? Default: 0 +function TextEdit:set_selection_origin_column(column, caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_from_line(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_from_column(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_to_line(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_to_column(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return bool +function TextEdit:is_caret_after_selection_origin(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:deselect(caret_index) end + +--- @param caret_index int? Default: -1 +function TextEdit:delete_selection(caret_index) end + +--- @param mode TextEdit.LineWrappingMode +function TextEdit:set_line_wrapping_mode(mode) end + +--- @return TextEdit.LineWrappingMode +function TextEdit:get_line_wrapping_mode() end + +--- @param autowrap_mode TextServer.AutowrapMode +function TextEdit:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function TextEdit:get_autowrap_mode() end + +--- @param line int +--- @return bool +function TextEdit:is_line_wrapped(line) end + +--- @param line int +--- @return int +function TextEdit:get_line_wrap_count(line) end + +--- @param line int +--- @param column int +--- @return int +function TextEdit:get_line_wrap_index_at_column(line, column) end + +--- @param line int +--- @return PackedStringArray +function TextEdit:get_line_wrapped_text(line) end + +--- @param enable bool +function TextEdit:set_smooth_scroll_enabled(enable) end + +--- @return bool +function TextEdit:is_smooth_scroll_enabled() end + +--- @return VScrollBar +function TextEdit:get_v_scroll_bar() end + +--- @return HScrollBar +function TextEdit:get_h_scroll_bar() end + +--- @param value float +function TextEdit:set_v_scroll(value) end + +--- @return float +function TextEdit:get_v_scroll() end + +--- @param value int +function TextEdit:set_h_scroll(value) end + +--- @return int +function TextEdit:get_h_scroll() end + +--- @param enable bool +function TextEdit:set_scroll_past_end_of_file_enabled(enable) end + +--- @return bool +function TextEdit:is_scroll_past_end_of_file_enabled() end + +--- @param speed float +function TextEdit:set_v_scroll_speed(speed) end + +--- @return float +function TextEdit:get_v_scroll_speed() end + +--- @param enabled bool +function TextEdit:set_fit_content_height_enabled(enabled) end + +--- @return bool +function TextEdit:is_fit_content_height_enabled() end + +--- @param enabled bool +function TextEdit:set_fit_content_width_enabled(enabled) end + +--- @return bool +function TextEdit:is_fit_content_width_enabled() end + +--- @param line int +--- @param wrap_index int? Default: 0 +--- @return float +function TextEdit:get_scroll_pos_for_line(line, wrap_index) end + +--- @param line int +--- @param wrap_index int? Default: 0 +function TextEdit:set_line_as_first_visible(line, wrap_index) end + +--- @return int +function TextEdit:get_first_visible_line() end + +--- @param line int +--- @param wrap_index int? Default: 0 +function TextEdit:set_line_as_center_visible(line, wrap_index) end + +--- @param line int +--- @param wrap_index int? Default: 0 +function TextEdit:set_line_as_last_visible(line, wrap_index) end + +--- @return int +function TextEdit:get_last_full_visible_line() end + +--- @return int +function TextEdit:get_last_full_visible_line_wrap_index() end + +--- @return int +function TextEdit:get_visible_line_count() end + +--- @param from_line int +--- @param to_line int +--- @return int +function TextEdit:get_visible_line_count_in_range(from_line, to_line) end + +--- @return int +function TextEdit:get_total_visible_line_count() end + +--- @param caret_index int? Default: 0 +function TextEdit:adjust_viewport_to_caret(caret_index) end + +--- @param caret_index int? Default: 0 +function TextEdit:center_viewport_to_caret(caret_index) end + +--- @param enabled bool +function TextEdit:set_draw_minimap(enabled) end + +--- @return bool +function TextEdit:is_drawing_minimap() end + +--- @param width int +function TextEdit:set_minimap_width(width) end + +--- @return int +function TextEdit:get_minimap_width() end + +--- @return int +function TextEdit:get_minimap_visible_lines() end + +--- @param at int? Default: -1 +function TextEdit:add_gutter(at) end + +--- @param gutter int +function TextEdit:remove_gutter(gutter) end + +--- @return int +function TextEdit:get_gutter_count() end + +--- @param gutter int +--- @param name String +function TextEdit:set_gutter_name(gutter, name) end + +--- @param gutter int +--- @return String +function TextEdit:get_gutter_name(gutter) end + +--- @param gutter int +--- @param type TextEdit.GutterType +function TextEdit:set_gutter_type(gutter, type) end + +--- @param gutter int +--- @return TextEdit.GutterType +function TextEdit:get_gutter_type(gutter) end + +--- @param gutter int +--- @param width int +function TextEdit:set_gutter_width(gutter, width) end + +--- @param gutter int +--- @return int +function TextEdit:get_gutter_width(gutter) end + +--- @param gutter int +--- @param draw bool +function TextEdit:set_gutter_draw(gutter, draw) end + +--- @param gutter int +--- @return bool +function TextEdit:is_gutter_drawn(gutter) end + +--- @param gutter int +--- @param clickable bool +function TextEdit:set_gutter_clickable(gutter, clickable) end + +--- @param gutter int +--- @return bool +function TextEdit:is_gutter_clickable(gutter) end + +--- @param gutter int +--- @param overwritable bool +function TextEdit:set_gutter_overwritable(gutter, overwritable) end + +--- @param gutter int +--- @return bool +function TextEdit:is_gutter_overwritable(gutter) end + +--- @param from_line int +--- @param to_line int +function TextEdit:merge_gutters(from_line, to_line) end + +--- @param column int +--- @param draw_callback Callable +function TextEdit:set_gutter_custom_draw(column, draw_callback) end + +--- @return int +function TextEdit:get_total_gutter_width() end + +--- @param line int +--- @param gutter int +--- @param metadata any +function TextEdit:set_line_gutter_metadata(line, gutter, metadata) end + +--- @param line int +--- @param gutter int +--- @return any +function TextEdit:get_line_gutter_metadata(line, gutter) end + +--- @param line int +--- @param gutter int +--- @param text String +function TextEdit:set_line_gutter_text(line, gutter, text) end + +--- @param line int +--- @param gutter int +--- @return String +function TextEdit:get_line_gutter_text(line, gutter) end + +--- @param line int +--- @param gutter int +--- @param icon Texture2D +function TextEdit:set_line_gutter_icon(line, gutter, icon) end + +--- @param line int +--- @param gutter int +--- @return Texture2D +function TextEdit:get_line_gutter_icon(line, gutter) end + +--- @param line int +--- @param gutter int +--- @param color Color +function TextEdit:set_line_gutter_item_color(line, gutter, color) end + +--- @param line int +--- @param gutter int +--- @return Color +function TextEdit:get_line_gutter_item_color(line, gutter) end + +--- @param line int +--- @param gutter int +--- @param clickable bool +function TextEdit:set_line_gutter_clickable(line, gutter, clickable) end + +--- @param line int +--- @param gutter int +--- @return bool +function TextEdit:is_line_gutter_clickable(line, gutter) end + +--- @param line int +--- @param color Color +function TextEdit:set_line_background_color(line, color) end + +--- @param line int +--- @return Color +function TextEdit:get_line_background_color(line) end + +--- @param syntax_highlighter SyntaxHighlighter +function TextEdit:set_syntax_highlighter(syntax_highlighter) end + +--- @return SyntaxHighlighter +function TextEdit:get_syntax_highlighter() end + +--- @param enabled bool +function TextEdit:set_highlight_current_line(enabled) end + +--- @return bool +function TextEdit:is_highlight_current_line_enabled() end + +--- @param enabled bool +function TextEdit:set_highlight_all_occurrences(enabled) end + +--- @return bool +function TextEdit:is_highlight_all_occurrences_enabled() end + +--- @return bool +function TextEdit:get_draw_control_chars() end + +--- @param enabled bool +function TextEdit:set_draw_control_chars(enabled) end + +--- @param enabled bool +function TextEdit:set_draw_tabs(enabled) end + +--- @return bool +function TextEdit:is_drawing_tabs() end + +--- @param enabled bool +function TextEdit:set_draw_spaces(enabled) end + +--- @return bool +function TextEdit:is_drawing_spaces() end + +--- @return PopupMenu +function TextEdit:get_menu() end + +--- @return bool +function TextEdit:is_menu_visible() end + +--- @param option int +function TextEdit:menu_option(option) end + +--- @param caret int +--- @param from_line int +--- @param from_col int +--- @param to_line int +--- @param to_col int +function TextEdit:adjust_carets_after_edit(caret, from_line, from_col, to_line, to_col) end + +--- @return PackedInt32Array +function TextEdit:get_caret_index_edit_order() end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_line(caret_index) end + +--- @param caret_index int? Default: 0 +--- @return int +function TextEdit:get_selection_column(caret_index) end + + +----------------------------------------------------------- +-- TextLine +----------------------------------------------------------- + +--- @class TextLine: RefCounted, { [string]: any } +--- @field direction int +--- @field orientation int +--- @field preserve_invalid bool +--- @field preserve_control bool +--- @field width float +--- @field alignment int +--- @field flags int +--- @field text_overrun_behavior int +--- @field ellipsis_char String +TextLine = {} + +--- @return TextLine +function TextLine:new() end + +function TextLine:clear() end + +--- @param direction TextServer.Direction +function TextLine:set_direction(direction) end + +--- @return TextServer.Direction +function TextLine:get_direction() end + +--- @return TextServer.Direction +function TextLine:get_inferred_direction() end + +--- @param orientation TextServer.Orientation +function TextLine:set_orientation(orientation) end + +--- @return TextServer.Orientation +function TextLine:get_orientation() end + +--- @param enabled bool +function TextLine:set_preserve_invalid(enabled) end + +--- @return bool +function TextLine:get_preserve_invalid() end + +--- @param enabled bool +function TextLine:set_preserve_control(enabled) end + +--- @return bool +function TextLine:get_preserve_control() end + +--- @param override Array +function TextLine:set_bidi_override(override) end + +--- @param text String +--- @param font Font +--- @param font_size int +--- @param language String? Default: "" +--- @param meta any? Default: null +--- @return bool +function TextLine:add_string(text, font, font_size, language, meta) end + +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param length int? Default: 1 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextLine:add_object(key, size, inline_align, length, baseline) end + +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextLine:resize_object(key, size, inline_align, baseline) end + +--- @param width float +function TextLine:set_width(width) end + +--- @return float +function TextLine:get_width() end + +--- @param alignment HorizontalAlignment +function TextLine:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function TextLine:get_horizontal_alignment() end + +--- @param tab_stops PackedFloat32Array +function TextLine:tab_align(tab_stops) end + +--- @param flags TextServer.JustificationFlag +function TextLine:set_flags(flags) end + +--- @return TextServer.JustificationFlag +function TextLine:get_flags() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function TextLine:set_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function TextLine:get_text_overrun_behavior() end + +--- @param char String +function TextLine:set_ellipsis_char(char) end + +--- @return String +function TextLine:get_ellipsis_char() end + +--- @return Array +function TextLine:get_objects() end + +--- @param key any +--- @return Rect2 +function TextLine:get_object_rect(key) end + +--- @return Vector2 +function TextLine:get_size() end + +--- @return RID +function TextLine:get_rid() end + +--- @return float +function TextLine:get_line_ascent() end + +--- @return float +function TextLine:get_line_descent() end + +--- @return float +function TextLine:get_line_width() end + +--- @return float +function TextLine:get_line_underline_position() end + +--- @return float +function TextLine:get_line_underline_thickness() end + +--- @param canvas RID +--- @param pos Vector2 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextLine:draw(canvas, pos, color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param outline_size int? Default: 1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextLine:draw_outline(canvas, pos, outline_size, color, oversampling) end + +--- @param coords float +--- @return int +function TextLine:hit_test(coords) end + + +----------------------------------------------------------- +-- TextMesh +----------------------------------------------------------- + +--- @class TextMesh: PrimitiveMesh, { [string]: any } +--- @field text String +--- @field font Font +--- @field font_size int +--- @field horizontal_alignment int +--- @field vertical_alignment int +--- @field uppercase bool +--- @field line_spacing float +--- @field autowrap_mode int +--- @field justification_flags int +--- @field pixel_size float +--- @field curve_step float +--- @field depth float +--- @field width float +--- @field offset Vector2 +--- @field text_direction int +--- @field language String +--- @field structured_text_bidi_override int +--- @field structured_text_bidi_override_options Array +TextMesh = {} + +--- @return TextMesh +function TextMesh:new() end + +--- @param alignment HorizontalAlignment +function TextMesh:set_horizontal_alignment(alignment) end + +--- @return HorizontalAlignment +function TextMesh:get_horizontal_alignment() end + +--- @param alignment VerticalAlignment +function TextMesh:set_vertical_alignment(alignment) end + +--- @return VerticalAlignment +function TextMesh:get_vertical_alignment() end + +--- @param text String +function TextMesh:set_text(text) end + +--- @return String +function TextMesh:get_text() end + +--- @param font Font +function TextMesh:set_font(font) end + +--- @return Font +function TextMesh:get_font() end + +--- @param font_size int +function TextMesh:set_font_size(font_size) end + +--- @return int +function TextMesh:get_font_size() end + +--- @param line_spacing float +function TextMesh:set_line_spacing(line_spacing) end + +--- @return float +function TextMesh:get_line_spacing() end + +--- @param autowrap_mode TextServer.AutowrapMode +function TextMesh:set_autowrap_mode(autowrap_mode) end + +--- @return TextServer.AutowrapMode +function TextMesh:get_autowrap_mode() end + +--- @param justification_flags TextServer.JustificationFlag +function TextMesh:set_justification_flags(justification_flags) end + +--- @return TextServer.JustificationFlag +function TextMesh:get_justification_flags() end + +--- @param depth float +function TextMesh:set_depth(depth) end + +--- @return float +function TextMesh:get_depth() end + +--- @param width float +function TextMesh:set_width(width) end + +--- @return float +function TextMesh:get_width() end + +--- @param pixel_size float +function TextMesh:set_pixel_size(pixel_size) end + +--- @return float +function TextMesh:get_pixel_size() end + +--- @param offset Vector2 +function TextMesh:set_offset(offset) end + +--- @return Vector2 +function TextMesh:get_offset() end + +--- @param curve_step float +function TextMesh:set_curve_step(curve_step) end + +--- @return float +function TextMesh:get_curve_step() end + +--- @param direction TextServer.Direction +function TextMesh:set_text_direction(direction) end + +--- @return TextServer.Direction +function TextMesh:get_text_direction() end + +--- @param language String +function TextMesh:set_language(language) end + +--- @return String +function TextMesh:get_language() end + +--- @param parser TextServer.StructuredTextParser +function TextMesh:set_structured_text_bidi_override(parser) end + +--- @return TextServer.StructuredTextParser +function TextMesh:get_structured_text_bidi_override() end + +--- @param args Array +function TextMesh:set_structured_text_bidi_override_options(args) end + +--- @return Array +function TextMesh:get_structured_text_bidi_override_options() end + +--- @param enable bool +function TextMesh:set_uppercase(enable) end + +--- @return bool +function TextMesh:is_uppercase() end + + +----------------------------------------------------------- +-- TextParagraph +----------------------------------------------------------- + +--- @class TextParagraph: RefCounted, { [string]: any } +--- @field direction int +--- @field custom_punctuation String +--- @field orientation int +--- @field preserve_invalid bool +--- @field preserve_control bool +--- @field alignment int +--- @field break_flags int +--- @field justification_flags int +--- @field text_overrun_behavior int +--- @field ellipsis_char String +--- @field width float +--- @field max_lines_visible int +--- @field line_spacing float +TextParagraph = {} + +--- @return TextParagraph +function TextParagraph:new() end + +function TextParagraph:clear() end + +--- @param direction TextServer.Direction +function TextParagraph:set_direction(direction) end + +--- @return TextServer.Direction +function TextParagraph:get_direction() end + +--- @return TextServer.Direction +function TextParagraph:get_inferred_direction() end + +--- @param custom_punctuation String +function TextParagraph:set_custom_punctuation(custom_punctuation) end + +--- @return String +function TextParagraph:get_custom_punctuation() end + +--- @param orientation TextServer.Orientation +function TextParagraph:set_orientation(orientation) end + +--- @return TextServer.Orientation +function TextParagraph:get_orientation() end + +--- @param enabled bool +function TextParagraph:set_preserve_invalid(enabled) end + +--- @return bool +function TextParagraph:get_preserve_invalid() end + +--- @param enabled bool +function TextParagraph:set_preserve_control(enabled) end + +--- @return bool +function TextParagraph:get_preserve_control() end + +--- @param override Array +function TextParagraph:set_bidi_override(override) end + +--- @param text String +--- @param font Font +--- @param font_size int +--- @param dropcap_margins Rect2? Default: Rect2(0, 0, 0, 0) +--- @param language String? Default: "" +--- @return bool +function TextParagraph:set_dropcap(text, font, font_size, dropcap_margins, language) end + +function TextParagraph:clear_dropcap() end + +--- @param text String +--- @param font Font +--- @param font_size int +--- @param language String? Default: "" +--- @param meta any? Default: null +--- @return bool +function TextParagraph:add_string(text, font, font_size, language, meta) end + +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param length int? Default: 1 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextParagraph:add_object(key, size, inline_align, length, baseline) end + +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextParagraph:resize_object(key, size, inline_align, baseline) end + +--- @param alignment HorizontalAlignment +function TextParagraph:set_alignment(alignment) end + +--- @return HorizontalAlignment +function TextParagraph:get_alignment() end + +--- @param tab_stops PackedFloat32Array +function TextParagraph:tab_align(tab_stops) end + +--- @param flags TextServer.LineBreakFlag +function TextParagraph:set_break_flags(flags) end + +--- @return TextServer.LineBreakFlag +function TextParagraph:get_break_flags() end + +--- @param flags TextServer.JustificationFlag +function TextParagraph:set_justification_flags(flags) end + +--- @return TextServer.JustificationFlag +function TextParagraph:get_justification_flags() end + +--- @param overrun_behavior TextServer.OverrunBehavior +function TextParagraph:set_text_overrun_behavior(overrun_behavior) end + +--- @return TextServer.OverrunBehavior +function TextParagraph:get_text_overrun_behavior() end + +--- @param char String +function TextParagraph:set_ellipsis_char(char) end + +--- @return String +function TextParagraph:get_ellipsis_char() end + +--- @param width float +function TextParagraph:set_width(width) end + +--- @return float +function TextParagraph:get_width() end + +--- @return Vector2 +function TextParagraph:get_non_wrapped_size() end + +--- @return Vector2 +function TextParagraph:get_size() end + +--- @return RID +function TextParagraph:get_rid() end + +--- @param line int +--- @return RID +function TextParagraph:get_line_rid(line) end + +--- @return RID +function TextParagraph:get_dropcap_rid() end + +--- @return Vector2i +function TextParagraph:get_range() end + +--- @return int +function TextParagraph:get_line_count() end + +--- @param max_lines_visible int +function TextParagraph:set_max_lines_visible(max_lines_visible) end + +--- @return int +function TextParagraph:get_max_lines_visible() end + +--- @param line_spacing float +function TextParagraph:set_line_spacing(line_spacing) end + +--- @return float +function TextParagraph:get_line_spacing() end + +--- @param line int +--- @return Array +function TextParagraph:get_line_objects(line) end + +--- @param line int +--- @param key any +--- @return Rect2 +function TextParagraph:get_line_object_rect(line, key) end + +--- @param line int +--- @return Vector2 +function TextParagraph:get_line_size(line) end + +--- @param line int +--- @return Vector2i +function TextParagraph:get_line_range(line) end + +--- @param line int +--- @return float +function TextParagraph:get_line_ascent(line) end + +--- @param line int +--- @return float +function TextParagraph:get_line_descent(line) end + +--- @param line int +--- @return float +function TextParagraph:get_line_width(line) end + +--- @param line int +--- @return float +function TextParagraph:get_line_underline_position(line) end + +--- @param line int +--- @return float +function TextParagraph:get_line_underline_thickness(line) end + +--- @return Vector2 +function TextParagraph:get_dropcap_size() end + +--- @return int +function TextParagraph:get_dropcap_lines() end + +--- @param canvas RID +--- @param pos Vector2 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param dc_color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw(canvas, pos, color, dc_color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param outline_size int? Default: 1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param dc_color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw_outline(canvas, pos, outline_size, color, dc_color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param line int +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw_line(canvas, pos, line, color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param line int +--- @param outline_size int? Default: 1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw_line_outline(canvas, pos, line, outline_size, color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw_dropcap(canvas, pos, color, oversampling) end + +--- @param canvas RID +--- @param pos Vector2 +--- @param outline_size int? Default: 1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextParagraph:draw_dropcap_outline(canvas, pos, outline_size, color, oversampling) end + +--- @param coords Vector2 +--- @return int +function TextParagraph:hit_test(coords) end + + +----------------------------------------------------------- +-- TextServer +----------------------------------------------------------- + +--- @class TextServer: RefCounted, { [string]: any } +TextServer = {} + +--- @alias TextServer.FontAntialiasing `TextServer.FONT_ANTIALIASING_NONE` | `TextServer.FONT_ANTIALIASING_GRAY` | `TextServer.FONT_ANTIALIASING_LCD` +TextServer.FONT_ANTIALIASING_NONE = 0 +TextServer.FONT_ANTIALIASING_GRAY = 1 +TextServer.FONT_ANTIALIASING_LCD = 2 + +--- @alias TextServer.FontLCDSubpixelLayout `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_NONE` | `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_HRGB` | `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_HBGR` | `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_VRGB` | `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_VBGR` | `TextServer.FONT_LCD_SUBPIXEL_LAYOUT_MAX` +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_NONE = 0 +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_HRGB = 1 +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_HBGR = 2 +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_VRGB = 3 +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_VBGR = 4 +TextServer.FONT_LCD_SUBPIXEL_LAYOUT_MAX = 5 + +--- @alias TextServer.Direction `TextServer.DIRECTION_AUTO` | `TextServer.DIRECTION_LTR` | `TextServer.DIRECTION_RTL` | `TextServer.DIRECTION_INHERITED` +TextServer.DIRECTION_AUTO = 0 +TextServer.DIRECTION_LTR = 1 +TextServer.DIRECTION_RTL = 2 +TextServer.DIRECTION_INHERITED = 3 + +--- @alias TextServer.Orientation `TextServer.ORIENTATION_HORIZONTAL` | `TextServer.ORIENTATION_VERTICAL` +TextServer.ORIENTATION_HORIZONTAL = 0 +TextServer.ORIENTATION_VERTICAL = 1 + +--- @alias TextServer.JustificationFlag `TextServer.JUSTIFICATION_NONE` | `TextServer.JUSTIFICATION_KASHIDA` | `TextServer.JUSTIFICATION_WORD_BOUND` | `TextServer.JUSTIFICATION_TRIM_EDGE_SPACES` | `TextServer.JUSTIFICATION_AFTER_LAST_TAB` | `TextServer.JUSTIFICATION_CONSTRAIN_ELLIPSIS` | `TextServer.JUSTIFICATION_SKIP_LAST_LINE` | `TextServer.JUSTIFICATION_SKIP_LAST_LINE_WITH_VISIBLE_CHARS` | `TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE` +TextServer.JUSTIFICATION_NONE = 0 +TextServer.JUSTIFICATION_KASHIDA = 1 +TextServer.JUSTIFICATION_WORD_BOUND = 2 +TextServer.JUSTIFICATION_TRIM_EDGE_SPACES = 4 +TextServer.JUSTIFICATION_AFTER_LAST_TAB = 8 +TextServer.JUSTIFICATION_CONSTRAIN_ELLIPSIS = 16 +TextServer.JUSTIFICATION_SKIP_LAST_LINE = 32 +TextServer.JUSTIFICATION_SKIP_LAST_LINE_WITH_VISIBLE_CHARS = 64 +TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE = 128 + +--- @alias TextServer.AutowrapMode `TextServer.AUTOWRAP_OFF` | `TextServer.AUTOWRAP_ARBITRARY` | `TextServer.AUTOWRAP_WORD` | `TextServer.AUTOWRAP_WORD_SMART` +TextServer.AUTOWRAP_OFF = 0 +TextServer.AUTOWRAP_ARBITRARY = 1 +TextServer.AUTOWRAP_WORD = 2 +TextServer.AUTOWRAP_WORD_SMART = 3 + +--- @alias TextServer.LineBreakFlag `TextServer.BREAK_NONE` | `TextServer.BREAK_MANDATORY` | `TextServer.BREAK_WORD_BOUND` | `TextServer.BREAK_GRAPHEME_BOUND` | `TextServer.BREAK_ADAPTIVE` | `TextServer.BREAK_TRIM_EDGE_SPACES` | `TextServer.BREAK_TRIM_INDENT` | `TextServer.BREAK_TRIM_START_EDGE_SPACES` | `TextServer.BREAK_TRIM_END_EDGE_SPACES` +TextServer.BREAK_NONE = 0 +TextServer.BREAK_MANDATORY = 1 +TextServer.BREAK_WORD_BOUND = 2 +TextServer.BREAK_GRAPHEME_BOUND = 4 +TextServer.BREAK_ADAPTIVE = 8 +TextServer.BREAK_TRIM_EDGE_SPACES = 16 +TextServer.BREAK_TRIM_INDENT = 32 +TextServer.BREAK_TRIM_START_EDGE_SPACES = 64 +TextServer.BREAK_TRIM_END_EDGE_SPACES = 128 + +--- @alias TextServer.VisibleCharactersBehavior `TextServer.VC_CHARS_BEFORE_SHAPING` | `TextServer.VC_CHARS_AFTER_SHAPING` | `TextServer.VC_GLYPHS_AUTO` | `TextServer.VC_GLYPHS_LTR` | `TextServer.VC_GLYPHS_RTL` +TextServer.VC_CHARS_BEFORE_SHAPING = 0 +TextServer.VC_CHARS_AFTER_SHAPING = 1 +TextServer.VC_GLYPHS_AUTO = 2 +TextServer.VC_GLYPHS_LTR = 3 +TextServer.VC_GLYPHS_RTL = 4 + +--- @alias TextServer.OverrunBehavior `TextServer.OVERRUN_NO_TRIMMING` | `TextServer.OVERRUN_TRIM_CHAR` | `TextServer.OVERRUN_TRIM_WORD` | `TextServer.OVERRUN_TRIM_ELLIPSIS` | `TextServer.OVERRUN_TRIM_WORD_ELLIPSIS` | `TextServer.OVERRUN_TRIM_ELLIPSIS_FORCE` | `TextServer.OVERRUN_TRIM_WORD_ELLIPSIS_FORCE` +TextServer.OVERRUN_NO_TRIMMING = 0 +TextServer.OVERRUN_TRIM_CHAR = 1 +TextServer.OVERRUN_TRIM_WORD = 2 +TextServer.OVERRUN_TRIM_ELLIPSIS = 3 +TextServer.OVERRUN_TRIM_WORD_ELLIPSIS = 4 +TextServer.OVERRUN_TRIM_ELLIPSIS_FORCE = 5 +TextServer.OVERRUN_TRIM_WORD_ELLIPSIS_FORCE = 6 + +--- @alias TextServer.TextOverrunFlag `TextServer.OVERRUN_NO_TRIM` | `TextServer.OVERRUN_TRIM` | `TextServer.OVERRUN_TRIM_WORD_ONLY` | `TextServer.OVERRUN_ADD_ELLIPSIS` | `TextServer.OVERRUN_ENFORCE_ELLIPSIS` | `TextServer.OVERRUN_JUSTIFICATION_AWARE` +TextServer.OVERRUN_NO_TRIM = 0 +TextServer.OVERRUN_TRIM = 1 +TextServer.OVERRUN_TRIM_WORD_ONLY = 2 +TextServer.OVERRUN_ADD_ELLIPSIS = 4 +TextServer.OVERRUN_ENFORCE_ELLIPSIS = 8 +TextServer.OVERRUN_JUSTIFICATION_AWARE = 16 + +--- @alias TextServer.GraphemeFlag `TextServer.GRAPHEME_IS_VALID` | `TextServer.GRAPHEME_IS_RTL` | `TextServer.GRAPHEME_IS_VIRTUAL` | `TextServer.GRAPHEME_IS_SPACE` | `TextServer.GRAPHEME_IS_BREAK_HARD` | `TextServer.GRAPHEME_IS_BREAK_SOFT` | `TextServer.GRAPHEME_IS_TAB` | `TextServer.GRAPHEME_IS_ELONGATION` | `TextServer.GRAPHEME_IS_PUNCTUATION` | `TextServer.GRAPHEME_IS_UNDERSCORE` | `TextServer.GRAPHEME_IS_CONNECTED` | `TextServer.GRAPHEME_IS_SAFE_TO_INSERT_TATWEEL` | `TextServer.GRAPHEME_IS_EMBEDDED_OBJECT` | `TextServer.GRAPHEME_IS_SOFT_HYPHEN` +TextServer.GRAPHEME_IS_VALID = 1 +TextServer.GRAPHEME_IS_RTL = 2 +TextServer.GRAPHEME_IS_VIRTUAL = 4 +TextServer.GRAPHEME_IS_SPACE = 8 +TextServer.GRAPHEME_IS_BREAK_HARD = 16 +TextServer.GRAPHEME_IS_BREAK_SOFT = 32 +TextServer.GRAPHEME_IS_TAB = 64 +TextServer.GRAPHEME_IS_ELONGATION = 128 +TextServer.GRAPHEME_IS_PUNCTUATION = 256 +TextServer.GRAPHEME_IS_UNDERSCORE = 512 +TextServer.GRAPHEME_IS_CONNECTED = 1024 +TextServer.GRAPHEME_IS_SAFE_TO_INSERT_TATWEEL = 2048 +TextServer.GRAPHEME_IS_EMBEDDED_OBJECT = 4096 +TextServer.GRAPHEME_IS_SOFT_HYPHEN = 8192 + +--- @alias TextServer.Hinting `TextServer.HINTING_NONE` | `TextServer.HINTING_LIGHT` | `TextServer.HINTING_NORMAL` +TextServer.HINTING_NONE = 0 +TextServer.HINTING_LIGHT = 1 +TextServer.HINTING_NORMAL = 2 + +--- @alias TextServer.SubpixelPositioning `TextServer.SUBPIXEL_POSITIONING_DISABLED` | `TextServer.SUBPIXEL_POSITIONING_AUTO` | `TextServer.SUBPIXEL_POSITIONING_ONE_HALF` | `TextServer.SUBPIXEL_POSITIONING_ONE_QUARTER` | `TextServer.SUBPIXEL_POSITIONING_ONE_HALF_MAX_SIZE` | `TextServer.SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE` +TextServer.SUBPIXEL_POSITIONING_DISABLED = 0 +TextServer.SUBPIXEL_POSITIONING_AUTO = 1 +TextServer.SUBPIXEL_POSITIONING_ONE_HALF = 2 +TextServer.SUBPIXEL_POSITIONING_ONE_QUARTER = 3 +TextServer.SUBPIXEL_POSITIONING_ONE_HALF_MAX_SIZE = 20 +TextServer.SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE = 16 + +--- @alias TextServer.Feature `TextServer.FEATURE_SIMPLE_LAYOUT` | `TextServer.FEATURE_BIDI_LAYOUT` | `TextServer.FEATURE_VERTICAL_LAYOUT` | `TextServer.FEATURE_SHAPING` | `TextServer.FEATURE_KASHIDA_JUSTIFICATION` | `TextServer.FEATURE_BREAK_ITERATORS` | `TextServer.FEATURE_FONT_BITMAP` | `TextServer.FEATURE_FONT_DYNAMIC` | `TextServer.FEATURE_FONT_MSDF` | `TextServer.FEATURE_FONT_SYSTEM` | `TextServer.FEATURE_FONT_VARIABLE` | `TextServer.FEATURE_CONTEXT_SENSITIVE_CASE_CONVERSION` | `TextServer.FEATURE_USE_SUPPORT_DATA` | `TextServer.FEATURE_UNICODE_IDENTIFIERS` | `TextServer.FEATURE_UNICODE_SECURITY` +TextServer.FEATURE_SIMPLE_LAYOUT = 1 +TextServer.FEATURE_BIDI_LAYOUT = 2 +TextServer.FEATURE_VERTICAL_LAYOUT = 4 +TextServer.FEATURE_SHAPING = 8 +TextServer.FEATURE_KASHIDA_JUSTIFICATION = 16 +TextServer.FEATURE_BREAK_ITERATORS = 32 +TextServer.FEATURE_FONT_BITMAP = 64 +TextServer.FEATURE_FONT_DYNAMIC = 128 +TextServer.FEATURE_FONT_MSDF = 256 +TextServer.FEATURE_FONT_SYSTEM = 512 +TextServer.FEATURE_FONT_VARIABLE = 1024 +TextServer.FEATURE_CONTEXT_SENSITIVE_CASE_CONVERSION = 2048 +TextServer.FEATURE_USE_SUPPORT_DATA = 4096 +TextServer.FEATURE_UNICODE_IDENTIFIERS = 8192 +TextServer.FEATURE_UNICODE_SECURITY = 16384 + +--- @alias TextServer.ContourPointTag `TextServer.CONTOUR_CURVE_TAG_ON` | `TextServer.CONTOUR_CURVE_TAG_OFF_CONIC` | `TextServer.CONTOUR_CURVE_TAG_OFF_CUBIC` +TextServer.CONTOUR_CURVE_TAG_ON = 1 +TextServer.CONTOUR_CURVE_TAG_OFF_CONIC = 0 +TextServer.CONTOUR_CURVE_TAG_OFF_CUBIC = 2 + +--- @alias TextServer.SpacingType `TextServer.SPACING_GLYPH` | `TextServer.SPACING_SPACE` | `TextServer.SPACING_TOP` | `TextServer.SPACING_BOTTOM` | `TextServer.SPACING_MAX` +TextServer.SPACING_GLYPH = 0 +TextServer.SPACING_SPACE = 1 +TextServer.SPACING_TOP = 2 +TextServer.SPACING_BOTTOM = 3 +TextServer.SPACING_MAX = 4 + +--- @alias TextServer.FontStyle `TextServer.FONT_BOLD` | `TextServer.FONT_ITALIC` | `TextServer.FONT_FIXED_WIDTH` +TextServer.FONT_BOLD = 1 +TextServer.FONT_ITALIC = 2 +TextServer.FONT_FIXED_WIDTH = 4 + +--- @alias TextServer.StructuredTextParser `TextServer.STRUCTURED_TEXT_DEFAULT` | `TextServer.STRUCTURED_TEXT_URI` | `TextServer.STRUCTURED_TEXT_FILE` | `TextServer.STRUCTURED_TEXT_EMAIL` | `TextServer.STRUCTURED_TEXT_LIST` | `TextServer.STRUCTURED_TEXT_GDSCRIPT` | `TextServer.STRUCTURED_TEXT_CUSTOM` +TextServer.STRUCTURED_TEXT_DEFAULT = 0 +TextServer.STRUCTURED_TEXT_URI = 1 +TextServer.STRUCTURED_TEXT_FILE = 2 +TextServer.STRUCTURED_TEXT_EMAIL = 3 +TextServer.STRUCTURED_TEXT_LIST = 4 +TextServer.STRUCTURED_TEXT_GDSCRIPT = 5 +TextServer.STRUCTURED_TEXT_CUSTOM = 6 + +--- @alias TextServer.FixedSizeScaleMode `TextServer.FIXED_SIZE_SCALE_DISABLE` | `TextServer.FIXED_SIZE_SCALE_INTEGER_ONLY` | `TextServer.FIXED_SIZE_SCALE_ENABLED` +TextServer.FIXED_SIZE_SCALE_DISABLE = 0 +TextServer.FIXED_SIZE_SCALE_INTEGER_ONLY = 1 +TextServer.FIXED_SIZE_SCALE_ENABLED = 2 + +--- @param feature TextServer.Feature +--- @return bool +function TextServer:has_feature(feature) end + +--- @return String +function TextServer:get_name() end + +--- @return int +function TextServer:get_features() end + +--- @param filename String +--- @return bool +function TextServer:load_support_data(filename) end + +--- @return String +function TextServer:get_support_data_filename() end + +--- @return String +function TextServer:get_support_data_info() end + +--- @param filename String +--- @return bool +function TextServer:save_support_data(filename) end + +--- @return PackedByteArray +function TextServer:get_support_data() end + +--- @param locale String +--- @return bool +function TextServer:is_locale_right_to_left(locale) end + +--- @param name String +--- @return int +function TextServer:name_to_tag(name) end + +--- @param tag int +--- @return String +function TextServer:tag_to_name(tag) end + +--- @param rid RID +--- @return bool +function TextServer:has(rid) end + +--- @param rid RID +function TextServer:free_rid(rid) end + +--- @return RID +function TextServer:create_font() end + +--- @param font_rid RID +--- @return RID +function TextServer:create_font_linked_variation(font_rid) end + +--- @param font_rid RID +--- @param data PackedByteArray +function TextServer:font_set_data(font_rid, data) end + +--- @param font_rid RID +--- @param face_index int +function TextServer:font_set_face_index(font_rid, face_index) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_face_index(font_rid) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_face_count(font_rid) end + +--- @param font_rid RID +--- @param style TextServer.FontStyle +function TextServer:font_set_style(font_rid, style) end + +--- @param font_rid RID +--- @return TextServer.FontStyle +function TextServer:font_get_style(font_rid) end + +--- @param font_rid RID +--- @param name String +function TextServer:font_set_name(font_rid, name) end + +--- @param font_rid RID +--- @return String +function TextServer:font_get_name(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServer:font_get_ot_name_strings(font_rid) end + +--- @param font_rid RID +--- @param name String +function TextServer:font_set_style_name(font_rid, name) end + +--- @param font_rid RID +--- @return String +function TextServer:font_get_style_name(font_rid) end + +--- @param font_rid RID +--- @param weight int +function TextServer:font_set_weight(font_rid, weight) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_weight(font_rid) end + +--- @param font_rid RID +--- @param weight int +function TextServer:font_set_stretch(font_rid, weight) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_stretch(font_rid) end + +--- @param font_rid RID +--- @param antialiasing TextServer.FontAntialiasing +function TextServer:font_set_antialiasing(font_rid, antialiasing) end + +--- @param font_rid RID +--- @return TextServer.FontAntialiasing +function TextServer:font_get_antialiasing(font_rid) end + +--- @param font_rid RID +--- @param disable_embedded_bitmaps bool +function TextServer:font_set_disable_embedded_bitmaps(font_rid, disable_embedded_bitmaps) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_get_disable_embedded_bitmaps(font_rid) end + +--- @param font_rid RID +--- @param generate_mipmaps bool +function TextServer:font_set_generate_mipmaps(font_rid, generate_mipmaps) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_get_generate_mipmaps(font_rid) end + +--- @param font_rid RID +--- @param msdf bool +function TextServer:font_set_multichannel_signed_distance_field(font_rid, msdf) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_is_multichannel_signed_distance_field(font_rid) end + +--- @param font_rid RID +--- @param msdf_pixel_range int +function TextServer:font_set_msdf_pixel_range(font_rid, msdf_pixel_range) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_msdf_pixel_range(font_rid) end + +--- @param font_rid RID +--- @param msdf_size int +function TextServer:font_set_msdf_size(font_rid, msdf_size) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_msdf_size(font_rid) end + +--- @param font_rid RID +--- @param fixed_size int +function TextServer:font_set_fixed_size(font_rid, fixed_size) end + +--- @param font_rid RID +--- @return int +function TextServer:font_get_fixed_size(font_rid) end + +--- @param font_rid RID +--- @param fixed_size_scale_mode TextServer.FixedSizeScaleMode +function TextServer:font_set_fixed_size_scale_mode(font_rid, fixed_size_scale_mode) end + +--- @param font_rid RID +--- @return TextServer.FixedSizeScaleMode +function TextServer:font_get_fixed_size_scale_mode(font_rid) end + +--- @param font_rid RID +--- @param allow_system_fallback bool +function TextServer:font_set_allow_system_fallback(font_rid, allow_system_fallback) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_is_allow_system_fallback(font_rid) end + +function TextServer:font_clear_system_fallback_cache() end + +--- @param font_rid RID +--- @param force_autohinter bool +function TextServer:font_set_force_autohinter(font_rid, force_autohinter) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_is_force_autohinter(font_rid) end + +--- @param font_rid RID +--- @param force_autohinter bool +function TextServer:font_set_modulate_color_glyphs(font_rid, force_autohinter) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_is_modulate_color_glyphs(font_rid) end + +--- @param font_rid RID +--- @param hinting TextServer.Hinting +function TextServer:font_set_hinting(font_rid, hinting) end + +--- @param font_rid RID +--- @return TextServer.Hinting +function TextServer:font_get_hinting(font_rid) end + +--- @param font_rid RID +--- @param subpixel_positioning TextServer.SubpixelPositioning +function TextServer:font_set_subpixel_positioning(font_rid, subpixel_positioning) end + +--- @param font_rid RID +--- @return TextServer.SubpixelPositioning +function TextServer:font_get_subpixel_positioning(font_rid) end + +--- @param font_rid RID +--- @param keep_rounding_remainders bool +function TextServer:font_set_keep_rounding_remainders(font_rid, keep_rounding_remainders) end + +--- @param font_rid RID +--- @return bool +function TextServer:font_get_keep_rounding_remainders(font_rid) end + +--- @param font_rid RID +--- @param strength float +function TextServer:font_set_embolden(font_rid, strength) end + +--- @param font_rid RID +--- @return float +function TextServer:font_get_embolden(font_rid) end + +--- @param font_rid RID +--- @param spacing TextServer.SpacingType +--- @param value int +function TextServer:font_set_spacing(font_rid, spacing, value) end + +--- @param font_rid RID +--- @param spacing TextServer.SpacingType +--- @return int +function TextServer:font_get_spacing(font_rid, spacing) end + +--- @param font_rid RID +--- @param baseline_offset float +function TextServer:font_set_baseline_offset(font_rid, baseline_offset) end + +--- @param font_rid RID +--- @return float +function TextServer:font_get_baseline_offset(font_rid) end + +--- @param font_rid RID +--- @param transform Transform2D +function TextServer:font_set_transform(font_rid, transform) end + +--- @param font_rid RID +--- @return Transform2D +function TextServer:font_get_transform(font_rid) end + +--- @param font_rid RID +--- @param variation_coordinates Dictionary +function TextServer:font_set_variation_coordinates(font_rid, variation_coordinates) end + +--- @param font_rid RID +--- @return Dictionary +function TextServer:font_get_variation_coordinates(font_rid) end + +--- @param font_rid RID +--- @param oversampling float +function TextServer:font_set_oversampling(font_rid, oversampling) end + +--- @param font_rid RID +--- @return float +function TextServer:font_get_oversampling(font_rid) end + +--- @param font_rid RID +--- @return Array[Vector2i] +function TextServer:font_get_size_cache_list(font_rid) end + +--- @param font_rid RID +function TextServer:font_clear_size_cache(font_rid) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServer:font_remove_size_cache(font_rid, size) end + +--- @param font_rid RID +--- @return Array[Dictionary] +function TextServer:font_get_size_cache_info(font_rid) end + +--- @param font_rid RID +--- @param size int +--- @param ascent float +function TextServer:font_set_ascent(font_rid, size, ascent) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServer:font_get_ascent(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param descent float +function TextServer:font_set_descent(font_rid, size, descent) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServer:font_get_descent(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param underline_position float +function TextServer:font_set_underline_position(font_rid, size, underline_position) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServer:font_get_underline_position(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param underline_thickness float +function TextServer:font_set_underline_thickness(font_rid, size, underline_thickness) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServer:font_get_underline_thickness(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param scale float +function TextServer:font_set_scale(font_rid, size, scale) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServer:font_get_scale(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @return int +function TextServer:font_get_texture_count(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServer:font_clear_textures(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +function TextServer:font_remove_texture(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @param image Image +function TextServer:font_set_texture_image(font_rid, size, texture_index, image) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @return Image +function TextServer:font_get_texture_image(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @param offset PackedInt32Array +function TextServer:font_set_texture_offsets(font_rid, size, texture_index, offset) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @return PackedInt32Array +function TextServer:font_get_texture_offsets(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @return PackedInt32Array +function TextServer:font_get_glyph_list(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServer:font_clear_glyphs(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +function TextServer:font_remove_glyph(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size int +--- @param glyph int +--- @return Vector2 +function TextServer:font_get_glyph_advance(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size int +--- @param glyph int +--- @param advance Vector2 +function TextServer:font_set_glyph_advance(font_rid, size, glyph, advance) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServer:font_get_glyph_offset(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param offset Vector2 +function TextServer:font_set_glyph_offset(font_rid, size, glyph, offset) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServer:font_get_glyph_size(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param gl_size Vector2 +function TextServer:font_set_glyph_size(font_rid, size, glyph, gl_size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Rect2 +function TextServer:font_get_glyph_uv_rect(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param uv_rect Rect2 +function TextServer:font_set_glyph_uv_rect(font_rid, size, glyph, uv_rect) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return int +function TextServer:font_get_glyph_texture_idx(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param texture_idx int +function TextServer:font_set_glyph_texture_idx(font_rid, size, glyph, texture_idx) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return RID +function TextServer:font_get_glyph_texture_rid(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServer:font_get_glyph_texture_size(font_rid, size, glyph) end + +--- @param font RID +--- @param size int +--- @param index int +--- @return Dictionary +function TextServer:font_get_glyph_contours(font, size, index) end + +--- @param font_rid RID +--- @param size int +--- @return Array[Vector2i] +function TextServer:font_get_kerning_list(font_rid, size) end + +--- @param font_rid RID +--- @param size int +function TextServer:font_clear_kerning_map(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +function TextServer:font_remove_kerning(font_rid, size, glyph_pair) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +--- @param kerning Vector2 +function TextServer:font_set_kerning(font_rid, size, glyph_pair, kerning) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +--- @return Vector2 +function TextServer:font_get_kerning(font_rid, size, glyph_pair) end + +--- @param font_rid RID +--- @param size int +--- @param char int +--- @param variation_selector int +--- @return int +function TextServer:font_get_glyph_index(font_rid, size, char, variation_selector) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_index int +--- @return int +function TextServer:font_get_char_from_glyph_index(font_rid, size, glyph_index) end + +--- @param font_rid RID +--- @param char int +--- @return bool +function TextServer:font_has_char(font_rid, char) end + +--- @param font_rid RID +--- @return String +function TextServer:font_get_supported_chars(font_rid) end + +--- @param font_rid RID +--- @return PackedInt32Array +function TextServer:font_get_supported_glyphs(font_rid) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param start int +--- @param _end int +function TextServer:font_render_range(font_rid, size, start, _end) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param index int +function TextServer:font_render_glyph(font_rid, size, index) end + +--- @param font_rid RID +--- @param canvas RID +--- @param size int +--- @param pos Vector2 +--- @param index int +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextServer:font_draw_glyph(font_rid, canvas, size, pos, index, color, oversampling) end + +--- @param font_rid RID +--- @param canvas RID +--- @param size int +--- @param outline_size int +--- @param pos Vector2 +--- @param index int +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextServer:font_draw_glyph_outline(font_rid, canvas, size, outline_size, pos, index, color, oversampling) end + +--- @param font_rid RID +--- @param language String +--- @return bool +function TextServer:font_is_language_supported(font_rid, language) end + +--- @param font_rid RID +--- @param language String +--- @param supported bool +function TextServer:font_set_language_support_override(font_rid, language, supported) end + +--- @param font_rid RID +--- @param language String +--- @return bool +function TextServer:font_get_language_support_override(font_rid, language) end + +--- @param font_rid RID +--- @param language String +function TextServer:font_remove_language_support_override(font_rid, language) end + +--- @param font_rid RID +--- @return PackedStringArray +function TextServer:font_get_language_support_overrides(font_rid) end + +--- @param font_rid RID +--- @param script String +--- @return bool +function TextServer:font_is_script_supported(font_rid, script) end + +--- @param font_rid RID +--- @param script String +--- @param supported bool +function TextServer:font_set_script_support_override(font_rid, script, supported) end + +--- @param font_rid RID +--- @param script String +--- @return bool +function TextServer:font_get_script_support_override(font_rid, script) end + +--- @param font_rid RID +--- @param script String +function TextServer:font_remove_script_support_override(font_rid, script) end + +--- @param font_rid RID +--- @return PackedStringArray +function TextServer:font_get_script_support_overrides(font_rid) end + +--- @param font_rid RID +--- @param overrides Dictionary +function TextServer:font_set_opentype_feature_overrides(font_rid, overrides) end + +--- @param font_rid RID +--- @return Dictionary +function TextServer:font_get_opentype_feature_overrides(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServer:font_supported_feature_list(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServer:font_supported_variation_list(font_rid) end + +--- @return float +function TextServer:font_get_global_oversampling() end + +--- @param oversampling float +function TextServer:font_set_global_oversampling(oversampling) end + +--- @param size int +--- @param index int +--- @return Vector2 +function TextServer:get_hex_code_box_size(size, index) end + +--- @param canvas RID +--- @param size int +--- @param pos Vector2 +--- @param index int +--- @param color Color +function TextServer:draw_hex_code_box(canvas, size, pos, index, color) end + +--- @param direction TextServer.Direction? Default: 0 +--- @param orientation TextServer.Orientation? Default: 0 +--- @return RID +function TextServer:create_shaped_text(direction, orientation) end + +--- @param rid RID +function TextServer:shaped_text_clear(rid) end + +--- @param shaped RID +--- @param direction TextServer.Direction? Default: 0 +function TextServer:shaped_text_set_direction(shaped, direction) end + +--- @param shaped RID +--- @return TextServer.Direction +function TextServer:shaped_text_get_direction(shaped) end + +--- @param shaped RID +--- @return TextServer.Direction +function TextServer:shaped_text_get_inferred_direction(shaped) end + +--- @param shaped RID +--- @param override Array +function TextServer:shaped_text_set_bidi_override(shaped, override) end + +--- @param shaped RID +--- @param punct String +function TextServer:shaped_text_set_custom_punctuation(shaped, punct) end + +--- @param shaped RID +--- @return String +function TextServer:shaped_text_get_custom_punctuation(shaped) end + +--- @param shaped RID +--- @param char int +function TextServer:shaped_text_set_custom_ellipsis(shaped, char) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_text_get_custom_ellipsis(shaped) end + +--- @param shaped RID +--- @param orientation TextServer.Orientation? Default: 0 +function TextServer:shaped_text_set_orientation(shaped, orientation) end + +--- @param shaped RID +--- @return TextServer.Orientation +function TextServer:shaped_text_get_orientation(shaped) end + +--- @param shaped RID +--- @param enabled bool +function TextServer:shaped_text_set_preserve_invalid(shaped, enabled) end + +--- @param shaped RID +--- @return bool +function TextServer:shaped_text_get_preserve_invalid(shaped) end + +--- @param shaped RID +--- @param enabled bool +function TextServer:shaped_text_set_preserve_control(shaped, enabled) end + +--- @param shaped RID +--- @return bool +function TextServer:shaped_text_get_preserve_control(shaped) end + +--- @param shaped RID +--- @param spacing TextServer.SpacingType +--- @param value int +function TextServer:shaped_text_set_spacing(shaped, spacing, value) end + +--- @param shaped RID +--- @param spacing TextServer.SpacingType +--- @return int +function TextServer:shaped_text_get_spacing(shaped, spacing) end + +--- @param shaped RID +--- @param text String +--- @param fonts Array[RID] +--- @param size int +--- @param opentype_features Dictionary? Default: {} +--- @param language String? Default: "" +--- @param meta any? Default: null +--- @return bool +function TextServer:shaped_text_add_string(shaped, text, fonts, size, opentype_features, language, meta) end + +--- @param shaped RID +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param length int? Default: 1 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextServer:shaped_text_add_object(shaped, key, size, inline_align, length, baseline) end + +--- @param shaped RID +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment? Default: 5 +--- @param baseline float? Default: 0.0 +--- @return bool +function TextServer:shaped_text_resize_object(shaped, key, size, inline_align, baseline) end + +--- @param shaped RID +--- @return String +function TextServer:shaped_get_text(shaped) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_get_span_count(shaped) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServer:shaped_get_span_meta(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServer:shaped_get_span_embedded_object(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServer:shaped_get_span_text(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServer:shaped_get_span_object(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @param fonts Array[RID] +--- @param size int +--- @param opentype_features Dictionary? Default: {} +function TextServer:shaped_set_span_update_font(shaped, index, fonts, size, opentype_features) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_get_run_count(shaped) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServer:shaped_get_run_text(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return Vector2i +function TextServer:shaped_get_run_range(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return RID +function TextServer:shaped_get_run_font_rid(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return int +function TextServer:shaped_get_run_font_size(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServer:shaped_get_run_language(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return TextServer.Direction +function TextServer:shaped_get_run_direction(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServer:shaped_get_run_object(shaped, index) end + +--- @param shaped RID +--- @param start int +--- @param length int +--- @return RID +function TextServer:shaped_text_substr(shaped, start, length) end + +--- @param shaped RID +--- @return RID +function TextServer:shaped_text_get_parent(shaped) end + +--- @param shaped RID +--- @param width float +--- @param justification_flags TextServer.JustificationFlag? Default: 3 +--- @return float +function TextServer:shaped_text_fit_to_width(shaped, width, justification_flags) end + +--- @param shaped RID +--- @param tab_stops PackedFloat32Array +--- @return float +function TextServer:shaped_text_tab_align(shaped, tab_stops) end + +--- @param shaped RID +--- @return bool +function TextServer:shaped_text_shape(shaped) end + +--- @param shaped RID +--- @return bool +function TextServer:shaped_text_is_ready(shaped) end + +--- @param shaped RID +--- @return bool +function TextServer:shaped_text_has_visible_chars(shaped) end + +--- @param shaped RID +--- @return Array[Dictionary] +function TextServer:shaped_text_get_glyphs(shaped) end + +--- @param shaped RID +--- @return Array[Dictionary] +function TextServer:shaped_text_sort_logical(shaped) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_text_get_glyph_count(shaped) end + +--- @param shaped RID +--- @return Vector2i +function TextServer:shaped_text_get_range(shaped) end + +--- @param shaped RID +--- @param width PackedFloat32Array +--- @param start int? Default: 0 +--- @param once bool? Default: true +--- @param break_flags TextServer.LineBreakFlag? Default: 3 +--- @return PackedInt32Array +function TextServer:shaped_text_get_line_breaks_adv(shaped, width, start, once, break_flags) end + +--- @param shaped RID +--- @param width float +--- @param start int? Default: 0 +--- @param break_flags TextServer.LineBreakFlag? Default: 3 +--- @return PackedInt32Array +function TextServer:shaped_text_get_line_breaks(shaped, width, start, break_flags) end + +--- @param shaped RID +--- @param grapheme_flags TextServer.GraphemeFlag? Default: 264 +--- @param skip_grapheme_flags TextServer.GraphemeFlag? Default: 4 +--- @return PackedInt32Array +function TextServer:shaped_text_get_word_breaks(shaped, grapheme_flags, skip_grapheme_flags) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_text_get_trim_pos(shaped) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_text_get_ellipsis_pos(shaped) end + +--- @param shaped RID +--- @return Array[Dictionary] +function TextServer:shaped_text_get_ellipsis_glyphs(shaped) end + +--- @param shaped RID +--- @return int +function TextServer:shaped_text_get_ellipsis_glyph_count(shaped) end + +--- @param shaped RID +--- @param width float? Default: 0 +--- @param overrun_trim_flags TextServer.TextOverrunFlag? Default: 0 +function TextServer:shaped_text_overrun_trim_to_width(shaped, width, overrun_trim_flags) end + +--- @param shaped RID +--- @return Array +function TextServer:shaped_text_get_objects(shaped) end + +--- @param shaped RID +--- @param key any +--- @return Rect2 +function TextServer:shaped_text_get_object_rect(shaped, key) end + +--- @param shaped RID +--- @param key any +--- @return Vector2i +function TextServer:shaped_text_get_object_range(shaped, key) end + +--- @param shaped RID +--- @param key any +--- @return int +function TextServer:shaped_text_get_object_glyph(shaped, key) end + +--- @param shaped RID +--- @return Vector2 +function TextServer:shaped_text_get_size(shaped) end + +--- @param shaped RID +--- @return float +function TextServer:shaped_text_get_ascent(shaped) end + +--- @param shaped RID +--- @return float +function TextServer:shaped_text_get_descent(shaped) end + +--- @param shaped RID +--- @return float +function TextServer:shaped_text_get_width(shaped) end + +--- @param shaped RID +--- @return float +function TextServer:shaped_text_get_underline_position(shaped) end + +--- @param shaped RID +--- @return float +function TextServer:shaped_text_get_underline_thickness(shaped) end + +--- @param shaped RID +--- @param position int +--- @return Dictionary +function TextServer:shaped_text_get_carets(shaped, position) end + +--- @param shaped RID +--- @param start int +--- @param _end int +--- @return PackedVector2Array +function TextServer:shaped_text_get_selection(shaped, start, _end) end + +--- @param shaped RID +--- @param coords float +--- @return int +function TextServer:shaped_text_hit_test_grapheme(shaped, coords) end + +--- @param shaped RID +--- @param coords float +--- @return int +function TextServer:shaped_text_hit_test_position(shaped, coords) end + +--- @param shaped RID +--- @param pos int +--- @return Vector2 +function TextServer:shaped_text_get_grapheme_bounds(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServer:shaped_text_next_grapheme_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServer:shaped_text_prev_grapheme_pos(shaped, pos) end + +--- @param shaped RID +--- @return PackedInt32Array +function TextServer:shaped_text_get_character_breaks(shaped) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServer:shaped_text_next_character_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServer:shaped_text_prev_character_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServer:shaped_text_closest_character_pos(shaped, pos) end + +--- @param shaped RID +--- @param canvas RID +--- @param pos Vector2 +--- @param clip_l float? Default: -1 +--- @param clip_r float? Default: -1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextServer:shaped_text_draw(shaped, canvas, pos, clip_l, clip_r, color, oversampling) end + +--- @param shaped RID +--- @param canvas RID +--- @param pos Vector2 +--- @param clip_l float? Default: -1 +--- @param clip_r float? Default: -1 +--- @param outline_size int? Default: 1 +--- @param color Color? Default: Color(1, 1, 1, 1) +--- @param oversampling float? Default: 0.0 +function TextServer:shaped_text_draw_outline(shaped, canvas, pos, clip_l, clip_r, outline_size, color, oversampling) end + +--- @param shaped RID +--- @param start int +--- @param _end int +--- @return TextServer.Direction +function TextServer:shaped_text_get_dominant_direction_in_range(shaped, start, _end) end + +--- @param number String +--- @param language String? Default: "" +--- @return String +function TextServer:format_number(number, language) end + +--- @param number String +--- @param language String? Default: "" +--- @return String +function TextServer:parse_number(number, language) end + +--- @param language String? Default: "" +--- @return String +function TextServer:percent_sign(language) end + +--- @param string String +--- @param language String? Default: "" +--- @param chars_per_line int? Default: 0 +--- @return PackedInt32Array +function TextServer:string_get_word_breaks(string, language, chars_per_line) end + +--- @param string String +--- @param language String? Default: "" +--- @return PackedInt32Array +function TextServer:string_get_character_breaks(string, language) end + +--- @param string String +--- @param dict PackedStringArray +--- @return int +function TextServer:is_confusable(string, dict) end + +--- @param string String +--- @return bool +function TextServer:spoof_check(string) end + +--- @param string String +--- @return String +function TextServer:strip_diacritics(string) end + +--- @param string String +--- @return bool +function TextServer:is_valid_identifier(string) end + +--- @param unicode int +--- @return bool +function TextServer:is_valid_letter(unicode) end + +--- @param string String +--- @param language String? Default: "" +--- @return String +function TextServer:string_to_upper(string, language) end + +--- @param string String +--- @param language String? Default: "" +--- @return String +function TextServer:string_to_lower(string, language) end + +--- @param string String +--- @param language String? Default: "" +--- @return String +function TextServer:string_to_title(string, language) end + +--- @param parser_type TextServer.StructuredTextParser +--- @param args Array +--- @param text String +--- @return Array[Vector3i] +function TextServer:parse_structured_text(parser_type, args, text) end + + +----------------------------------------------------------- +-- TextServerAdvanced +----------------------------------------------------------- + +--- @class TextServerAdvanced: TextServerExtension, { [string]: any } +TextServerAdvanced = {} + +--- @return TextServerAdvanced +function TextServerAdvanced:new() end + + +----------------------------------------------------------- +-- TextServerDummy +----------------------------------------------------------- + +--- @class TextServerDummy: TextServerExtension, { [string]: any } +TextServerDummy = {} + +--- @return TextServerDummy +function TextServerDummy:new() end + + +----------------------------------------------------------- +-- TextServerExtension +----------------------------------------------------------- + +--- @class TextServerExtension: TextServer, { [string]: any } +TextServerExtension = {} + +--- @return TextServerExtension +function TextServerExtension:new() end + +--- @param feature TextServer.Feature +--- @return bool +function TextServerExtension:_has_feature(feature) end + +--- @return String +function TextServerExtension:_get_name() end + +--- @return int +function TextServerExtension:_get_features() end + +--- @param rid RID +function TextServerExtension:_free_rid(rid) end + +--- @param rid RID +--- @return bool +function TextServerExtension:_has(rid) end + +--- @param filename String +--- @return bool +function TextServerExtension:_load_support_data(filename) end + +--- @return String +function TextServerExtension:_get_support_data_filename() end + +--- @return String +function TextServerExtension:_get_support_data_info() end + +--- @param filename String +--- @return bool +function TextServerExtension:_save_support_data(filename) end + +--- @return PackedByteArray +function TextServerExtension:_get_support_data() end + +--- @param locale String +--- @return bool +function TextServerExtension:_is_locale_right_to_left(locale) end + +--- @param name String +--- @return int +function TextServerExtension:_name_to_tag(name) end + +--- @param tag int +--- @return String +function TextServerExtension:_tag_to_name(tag) end + +--- @return RID +function TextServerExtension:_create_font() end + +--- @param font_rid RID +--- @return RID +function TextServerExtension:_create_font_linked_variation(font_rid) end + +--- @param font_rid RID +--- @param data PackedByteArray +function TextServerExtension:_font_set_data(font_rid, data) end + +--- @param font_rid RID +--- @param data_ptr const uint8_t* +--- @param data_size int +function TextServerExtension:_font_set_data_ptr(font_rid, data_ptr, data_size) end + +--- @param font_rid RID +--- @param face_index int +function TextServerExtension:_font_set_face_index(font_rid, face_index) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_face_index(font_rid) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_face_count(font_rid) end + +--- @param font_rid RID +--- @param style TextServer.FontStyle +function TextServerExtension:_font_set_style(font_rid, style) end + +--- @param font_rid RID +--- @return TextServer.FontStyle +function TextServerExtension:_font_get_style(font_rid) end + +--- @param font_rid RID +--- @param name String +function TextServerExtension:_font_set_name(font_rid, name) end + +--- @param font_rid RID +--- @return String +function TextServerExtension:_font_get_name(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServerExtension:_font_get_ot_name_strings(font_rid) end + +--- @param font_rid RID +--- @param name_style String +function TextServerExtension:_font_set_style_name(font_rid, name_style) end + +--- @param font_rid RID +--- @return String +function TextServerExtension:_font_get_style_name(font_rid) end + +--- @param font_rid RID +--- @param weight int +function TextServerExtension:_font_set_weight(font_rid, weight) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_weight(font_rid) end + +--- @param font_rid RID +--- @param stretch int +function TextServerExtension:_font_set_stretch(font_rid, stretch) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_stretch(font_rid) end + +--- @param font_rid RID +--- @param antialiasing TextServer.FontAntialiasing +function TextServerExtension:_font_set_antialiasing(font_rid, antialiasing) end + +--- @param font_rid RID +--- @return TextServer.FontAntialiasing +function TextServerExtension:_font_get_antialiasing(font_rid) end + +--- @param font_rid RID +--- @param disable_embedded_bitmaps bool +function TextServerExtension:_font_set_disable_embedded_bitmaps(font_rid, disable_embedded_bitmaps) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_get_disable_embedded_bitmaps(font_rid) end + +--- @param font_rid RID +--- @param generate_mipmaps bool +function TextServerExtension:_font_set_generate_mipmaps(font_rid, generate_mipmaps) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_get_generate_mipmaps(font_rid) end + +--- @param font_rid RID +--- @param msdf bool +function TextServerExtension:_font_set_multichannel_signed_distance_field(font_rid, msdf) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_is_multichannel_signed_distance_field(font_rid) end + +--- @param font_rid RID +--- @param msdf_pixel_range int +function TextServerExtension:_font_set_msdf_pixel_range(font_rid, msdf_pixel_range) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_msdf_pixel_range(font_rid) end + +--- @param font_rid RID +--- @param msdf_size int +function TextServerExtension:_font_set_msdf_size(font_rid, msdf_size) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_msdf_size(font_rid) end + +--- @param font_rid RID +--- @param fixed_size int +function TextServerExtension:_font_set_fixed_size(font_rid, fixed_size) end + +--- @param font_rid RID +--- @return int +function TextServerExtension:_font_get_fixed_size(font_rid) end + +--- @param font_rid RID +--- @param fixed_size_scale_mode TextServer.FixedSizeScaleMode +function TextServerExtension:_font_set_fixed_size_scale_mode(font_rid, fixed_size_scale_mode) end + +--- @param font_rid RID +--- @return TextServer.FixedSizeScaleMode +function TextServerExtension:_font_get_fixed_size_scale_mode(font_rid) end + +--- @param font_rid RID +--- @param allow_system_fallback bool +function TextServerExtension:_font_set_allow_system_fallback(font_rid, allow_system_fallback) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_is_allow_system_fallback(font_rid) end + +function TextServerExtension:_font_clear_system_fallback_cache() end + +--- @param font_rid RID +--- @param force_autohinter bool +function TextServerExtension:_font_set_force_autohinter(font_rid, force_autohinter) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_is_force_autohinter(font_rid) end + +--- @param font_rid RID +--- @param modulate bool +function TextServerExtension:_font_set_modulate_color_glyphs(font_rid, modulate) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_is_modulate_color_glyphs(font_rid) end + +--- @param font_rid RID +--- @param hinting TextServer.Hinting +function TextServerExtension:_font_set_hinting(font_rid, hinting) end + +--- @param font_rid RID +--- @return TextServer.Hinting +function TextServerExtension:_font_get_hinting(font_rid) end + +--- @param font_rid RID +--- @param subpixel_positioning TextServer.SubpixelPositioning +function TextServerExtension:_font_set_subpixel_positioning(font_rid, subpixel_positioning) end + +--- @param font_rid RID +--- @return TextServer.SubpixelPositioning +function TextServerExtension:_font_get_subpixel_positioning(font_rid) end + +--- @param font_rid RID +--- @param keep_rounding_remainders bool +function TextServerExtension:_font_set_keep_rounding_remainders(font_rid, keep_rounding_remainders) end + +--- @param font_rid RID +--- @return bool +function TextServerExtension:_font_get_keep_rounding_remainders(font_rid) end + +--- @param font_rid RID +--- @param strength float +function TextServerExtension:_font_set_embolden(font_rid, strength) end + +--- @param font_rid RID +--- @return float +function TextServerExtension:_font_get_embolden(font_rid) end + +--- @param font_rid RID +--- @param spacing TextServer.SpacingType +--- @param value int +function TextServerExtension:_font_set_spacing(font_rid, spacing, value) end + +--- @param font_rid RID +--- @param spacing TextServer.SpacingType +--- @return int +function TextServerExtension:_font_get_spacing(font_rid, spacing) end + +--- @param font_rid RID +--- @param baseline_offset float +function TextServerExtension:_font_set_baseline_offset(font_rid, baseline_offset) end + +--- @param font_rid RID +--- @return float +function TextServerExtension:_font_get_baseline_offset(font_rid) end + +--- @param font_rid RID +--- @param transform Transform2D +function TextServerExtension:_font_set_transform(font_rid, transform) end + +--- @param font_rid RID +--- @return Transform2D +function TextServerExtension:_font_get_transform(font_rid) end + +--- @param font_rid RID +--- @param variation_coordinates Dictionary +function TextServerExtension:_font_set_variation_coordinates(font_rid, variation_coordinates) end + +--- @param font_rid RID +--- @return Dictionary +function TextServerExtension:_font_get_variation_coordinates(font_rid) end + +--- @param font_rid RID +--- @param oversampling float +function TextServerExtension:_font_set_oversampling(font_rid, oversampling) end + +--- @param font_rid RID +--- @return float +function TextServerExtension:_font_get_oversampling(font_rid) end + +--- @param font_rid RID +--- @return Array[Vector2i] +function TextServerExtension:_font_get_size_cache_list(font_rid) end + +--- @param font_rid RID +function TextServerExtension:_font_clear_size_cache(font_rid) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServerExtension:_font_remove_size_cache(font_rid, size) end + +--- @param font_rid RID +--- @return Array[Dictionary] +function TextServerExtension:_font_get_size_cache_info(font_rid) end + +--- @param font_rid RID +--- @param size int +--- @param ascent float +function TextServerExtension:_font_set_ascent(font_rid, size, ascent) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServerExtension:_font_get_ascent(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param descent float +function TextServerExtension:_font_set_descent(font_rid, size, descent) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServerExtension:_font_get_descent(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param underline_position float +function TextServerExtension:_font_set_underline_position(font_rid, size, underline_position) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServerExtension:_font_get_underline_position(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param underline_thickness float +function TextServerExtension:_font_set_underline_thickness(font_rid, size, underline_thickness) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServerExtension:_font_get_underline_thickness(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param scale float +function TextServerExtension:_font_set_scale(font_rid, size, scale) end + +--- @param font_rid RID +--- @param size int +--- @return float +function TextServerExtension:_font_get_scale(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @return int +function TextServerExtension:_font_get_texture_count(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServerExtension:_font_clear_textures(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +function TextServerExtension:_font_remove_texture(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @param image Image +function TextServerExtension:_font_set_texture_image(font_rid, size, texture_index, image) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @return Image +function TextServerExtension:_font_get_texture_image(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @param offset PackedInt32Array +function TextServerExtension:_font_set_texture_offsets(font_rid, size, texture_index, offset) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param texture_index int +--- @return PackedInt32Array +function TextServerExtension:_font_get_texture_offsets(font_rid, size, texture_index) end + +--- @param font_rid RID +--- @param size Vector2i +--- @return PackedInt32Array +function TextServerExtension:_font_get_glyph_list(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +function TextServerExtension:_font_clear_glyphs(font_rid, size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +function TextServerExtension:_font_remove_glyph(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size int +--- @param glyph int +--- @return Vector2 +function TextServerExtension:_font_get_glyph_advance(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size int +--- @param glyph int +--- @param advance Vector2 +function TextServerExtension:_font_set_glyph_advance(font_rid, size, glyph, advance) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServerExtension:_font_get_glyph_offset(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param offset Vector2 +function TextServerExtension:_font_set_glyph_offset(font_rid, size, glyph, offset) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServerExtension:_font_get_glyph_size(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param gl_size Vector2 +function TextServerExtension:_font_set_glyph_size(font_rid, size, glyph, gl_size) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Rect2 +function TextServerExtension:_font_get_glyph_uv_rect(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param uv_rect Rect2 +function TextServerExtension:_font_set_glyph_uv_rect(font_rid, size, glyph, uv_rect) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return int +function TextServerExtension:_font_get_glyph_texture_idx(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @param texture_idx int +function TextServerExtension:_font_set_glyph_texture_idx(font_rid, size, glyph, texture_idx) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return RID +function TextServerExtension:_font_get_glyph_texture_rid(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param glyph int +--- @return Vector2 +function TextServerExtension:_font_get_glyph_texture_size(font_rid, size, glyph) end + +--- @param font_rid RID +--- @param size int +--- @param index int +--- @return Dictionary +function TextServerExtension:_font_get_glyph_contours(font_rid, size, index) end + +--- @param font_rid RID +--- @param size int +--- @return Array[Vector2i] +function TextServerExtension:_font_get_kerning_list(font_rid, size) end + +--- @param font_rid RID +--- @param size int +function TextServerExtension:_font_clear_kerning_map(font_rid, size) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +function TextServerExtension:_font_remove_kerning(font_rid, size, glyph_pair) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +--- @param kerning Vector2 +function TextServerExtension:_font_set_kerning(font_rid, size, glyph_pair, kerning) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_pair Vector2i +--- @return Vector2 +function TextServerExtension:_font_get_kerning(font_rid, size, glyph_pair) end + +--- @param font_rid RID +--- @param size int +--- @param char int +--- @param variation_selector int +--- @return int +function TextServerExtension:_font_get_glyph_index(font_rid, size, char, variation_selector) end + +--- @param font_rid RID +--- @param size int +--- @param glyph_index int +--- @return int +function TextServerExtension:_font_get_char_from_glyph_index(font_rid, size, glyph_index) end + +--- @param font_rid RID +--- @param char int +--- @return bool +function TextServerExtension:_font_has_char(font_rid, char) end + +--- @param font_rid RID +--- @return String +function TextServerExtension:_font_get_supported_chars(font_rid) end + +--- @param font_rid RID +--- @return PackedInt32Array +function TextServerExtension:_font_get_supported_glyphs(font_rid) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param start int +--- @param _end int +function TextServerExtension:_font_render_range(font_rid, size, start, _end) end + +--- @param font_rid RID +--- @param size Vector2i +--- @param index int +function TextServerExtension:_font_render_glyph(font_rid, size, index) end + +--- @param font_rid RID +--- @param canvas RID +--- @param size int +--- @param pos Vector2 +--- @param index int +--- @param color Color +--- @param oversampling float +function TextServerExtension:_font_draw_glyph(font_rid, canvas, size, pos, index, color, oversampling) end + +--- @param font_rid RID +--- @param canvas RID +--- @param size int +--- @param outline_size int +--- @param pos Vector2 +--- @param index int +--- @param color Color +--- @param oversampling float +function TextServerExtension:_font_draw_glyph_outline(font_rid, canvas, size, outline_size, pos, index, color, oversampling) end + +--- @param font_rid RID +--- @param language String +--- @return bool +function TextServerExtension:_font_is_language_supported(font_rid, language) end + +--- @param font_rid RID +--- @param language String +--- @param supported bool +function TextServerExtension:_font_set_language_support_override(font_rid, language, supported) end + +--- @param font_rid RID +--- @param language String +--- @return bool +function TextServerExtension:_font_get_language_support_override(font_rid, language) end + +--- @param font_rid RID +--- @param language String +function TextServerExtension:_font_remove_language_support_override(font_rid, language) end + +--- @param font_rid RID +--- @return PackedStringArray +function TextServerExtension:_font_get_language_support_overrides(font_rid) end + +--- @param font_rid RID +--- @param script String +--- @return bool +function TextServerExtension:_font_is_script_supported(font_rid, script) end + +--- @param font_rid RID +--- @param script String +--- @param supported bool +function TextServerExtension:_font_set_script_support_override(font_rid, script, supported) end + +--- @param font_rid RID +--- @param script String +--- @return bool +function TextServerExtension:_font_get_script_support_override(font_rid, script) end + +--- @param font_rid RID +--- @param script String +function TextServerExtension:_font_remove_script_support_override(font_rid, script) end + +--- @param font_rid RID +--- @return PackedStringArray +function TextServerExtension:_font_get_script_support_overrides(font_rid) end + +--- @param font_rid RID +--- @param overrides Dictionary +function TextServerExtension:_font_set_opentype_feature_overrides(font_rid, overrides) end + +--- @param font_rid RID +--- @return Dictionary +function TextServerExtension:_font_get_opentype_feature_overrides(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServerExtension:_font_supported_feature_list(font_rid) end + +--- @param font_rid RID +--- @return Dictionary +function TextServerExtension:_font_supported_variation_list(font_rid) end + +--- @return float +function TextServerExtension:_font_get_global_oversampling() end + +--- @param oversampling float +function TextServerExtension:_font_set_global_oversampling(oversampling) end + +--- @param oversampling float +function TextServerExtension:_reference_oversampling_level(oversampling) end + +--- @param oversampling float +function TextServerExtension:_unreference_oversampling_level(oversampling) end + +--- @param size int +--- @param index int +--- @return Vector2 +function TextServerExtension:_get_hex_code_box_size(size, index) end + +--- @param canvas RID +--- @param size int +--- @param pos Vector2 +--- @param index int +--- @param color Color +function TextServerExtension:_draw_hex_code_box(canvas, size, pos, index, color) end + +--- @param direction TextServer.Direction +--- @param orientation TextServer.Orientation +--- @return RID +function TextServerExtension:_create_shaped_text(direction, orientation) end + +--- @param shaped RID +function TextServerExtension:_shaped_text_clear(shaped) end + +--- @param shaped RID +--- @param direction TextServer.Direction +function TextServerExtension:_shaped_text_set_direction(shaped, direction) end + +--- @param shaped RID +--- @return TextServer.Direction +function TextServerExtension:_shaped_text_get_direction(shaped) end + +--- @param shaped RID +--- @return TextServer.Direction +function TextServerExtension:_shaped_text_get_inferred_direction(shaped) end + +--- @param shaped RID +--- @param override Array +function TextServerExtension:_shaped_text_set_bidi_override(shaped, override) end + +--- @param shaped RID +--- @param punct String +function TextServerExtension:_shaped_text_set_custom_punctuation(shaped, punct) end + +--- @param shaped RID +--- @return String +function TextServerExtension:_shaped_text_get_custom_punctuation(shaped) end + +--- @param shaped RID +--- @param char int +function TextServerExtension:_shaped_text_set_custom_ellipsis(shaped, char) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_text_get_custom_ellipsis(shaped) end + +--- @param shaped RID +--- @param orientation TextServer.Orientation +function TextServerExtension:_shaped_text_set_orientation(shaped, orientation) end + +--- @param shaped RID +--- @return TextServer.Orientation +function TextServerExtension:_shaped_text_get_orientation(shaped) end + +--- @param shaped RID +--- @param enabled bool +function TextServerExtension:_shaped_text_set_preserve_invalid(shaped, enabled) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_get_preserve_invalid(shaped) end + +--- @param shaped RID +--- @param enabled bool +function TextServerExtension:_shaped_text_set_preserve_control(shaped, enabled) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_get_preserve_control(shaped) end + +--- @param shaped RID +--- @param spacing TextServer.SpacingType +--- @param value int +function TextServerExtension:_shaped_text_set_spacing(shaped, spacing, value) end + +--- @param shaped RID +--- @param spacing TextServer.SpacingType +--- @return int +function TextServerExtension:_shaped_text_get_spacing(shaped, spacing) end + +--- @param shaped RID +--- @param text String +--- @param fonts Array[RID] +--- @param size int +--- @param opentype_features Dictionary +--- @param language String +--- @param meta any +--- @return bool +function TextServerExtension:_shaped_text_add_string(shaped, text, fonts, size, opentype_features, language, meta) end + +--- @param shaped RID +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment +--- @param length int +--- @param baseline float +--- @return bool +function TextServerExtension:_shaped_text_add_object(shaped, key, size, inline_align, length, baseline) end + +--- @param shaped RID +--- @param key any +--- @param size Vector2 +--- @param inline_align InlineAlignment +--- @param baseline float +--- @return bool +function TextServerExtension:_shaped_text_resize_object(shaped, key, size, inline_align, baseline) end + +--- @param shaped RID +--- @return String +function TextServerExtension:_shaped_get_text(shaped) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_get_span_count(shaped) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServerExtension:_shaped_get_span_meta(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServerExtension:_shaped_get_span_embedded_object(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServerExtension:_shaped_get_span_text(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServerExtension:_shaped_get_span_object(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @param fonts Array[RID] +--- @param size int +--- @param opentype_features Dictionary +function TextServerExtension:_shaped_set_span_update_font(shaped, index, fonts, size, opentype_features) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_get_run_count(shaped) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServerExtension:_shaped_get_run_text(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return Vector2i +function TextServerExtension:_shaped_get_run_range(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return RID +function TextServerExtension:_shaped_get_run_font_rid(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return int +function TextServerExtension:_shaped_get_run_font_size(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return String +function TextServerExtension:_shaped_get_run_language(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return TextServer.Direction +function TextServerExtension:_shaped_get_run_direction(shaped, index) end + +--- @param shaped RID +--- @param index int +--- @return any +function TextServerExtension:_shaped_get_run_object(shaped, index) end + +--- @param shaped RID +--- @param start int +--- @param length int +--- @return RID +function TextServerExtension:_shaped_text_substr(shaped, start, length) end + +--- @param shaped RID +--- @return RID +function TextServerExtension:_shaped_text_get_parent(shaped) end + +--- @param shaped RID +--- @param width float +--- @param justification_flags TextServer.JustificationFlag +--- @return float +function TextServerExtension:_shaped_text_fit_to_width(shaped, width, justification_flags) end + +--- @param shaped RID +--- @param tab_stops PackedFloat32Array +--- @return float +function TextServerExtension:_shaped_text_tab_align(shaped, tab_stops) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_shape(shaped) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_update_breaks(shaped) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_update_justification_ops(shaped) end + +--- @param shaped RID +--- @return bool +function TextServerExtension:_shaped_text_is_ready(shaped) end + +--- @param shaped RID +--- @return const Glyph* +function TextServerExtension:_shaped_text_get_glyphs(shaped) end + +--- @param shaped RID +--- @return const Glyph* +function TextServerExtension:_shaped_text_sort_logical(shaped) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_text_get_glyph_count(shaped) end + +--- @param shaped RID +--- @return Vector2i +function TextServerExtension:_shaped_text_get_range(shaped) end + +--- @param shaped RID +--- @param width PackedFloat32Array +--- @param start int +--- @param once bool +--- @param break_flags TextServer.LineBreakFlag +--- @return PackedInt32Array +function TextServerExtension:_shaped_text_get_line_breaks_adv(shaped, width, start, once, break_flags) end + +--- @param shaped RID +--- @param width float +--- @param start int +--- @param break_flags TextServer.LineBreakFlag +--- @return PackedInt32Array +function TextServerExtension:_shaped_text_get_line_breaks(shaped, width, start, break_flags) end + +--- @param shaped RID +--- @param grapheme_flags TextServer.GraphemeFlag +--- @param skip_grapheme_flags TextServer.GraphemeFlag +--- @return PackedInt32Array +function TextServerExtension:_shaped_text_get_word_breaks(shaped, grapheme_flags, skip_grapheme_flags) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_text_get_trim_pos(shaped) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_text_get_ellipsis_pos(shaped) end + +--- @param shaped RID +--- @return int +function TextServerExtension:_shaped_text_get_ellipsis_glyph_count(shaped) end + +--- @param shaped RID +--- @return const Glyph* +function TextServerExtension:_shaped_text_get_ellipsis_glyphs(shaped) end + +--- @param shaped RID +--- @param width float +--- @param trim_flags TextServer.TextOverrunFlag +function TextServerExtension:_shaped_text_overrun_trim_to_width(shaped, width, trim_flags) end + +--- @param shaped RID +--- @return Array +function TextServerExtension:_shaped_text_get_objects(shaped) end + +--- @param shaped RID +--- @param key any +--- @return Rect2 +function TextServerExtension:_shaped_text_get_object_rect(shaped, key) end + +--- @param shaped RID +--- @param key any +--- @return Vector2i +function TextServerExtension:_shaped_text_get_object_range(shaped, key) end + +--- @param shaped RID +--- @param key any +--- @return int +function TextServerExtension:_shaped_text_get_object_glyph(shaped, key) end + +--- @param shaped RID +--- @return Vector2 +function TextServerExtension:_shaped_text_get_size(shaped) end + +--- @param shaped RID +--- @return float +function TextServerExtension:_shaped_text_get_ascent(shaped) end + +--- @param shaped RID +--- @return float +function TextServerExtension:_shaped_text_get_descent(shaped) end + +--- @param shaped RID +--- @return float +function TextServerExtension:_shaped_text_get_width(shaped) end + +--- @param shaped RID +--- @return float +function TextServerExtension:_shaped_text_get_underline_position(shaped) end + +--- @param shaped RID +--- @return float +function TextServerExtension:_shaped_text_get_underline_thickness(shaped) end + +--- @param shaped RID +--- @param start int +--- @param _end int +--- @return int +function TextServerExtension:_shaped_text_get_dominant_direction_in_range(shaped, start, _end) end + +--- @param shaped RID +--- @param position int +--- @param caret CaretInfo* +function TextServerExtension:_shaped_text_get_carets(shaped, position, caret) end + +--- @param shaped RID +--- @param start int +--- @param _end int +--- @return PackedVector2Array +function TextServerExtension:_shaped_text_get_selection(shaped, start, _end) end + +--- @param shaped RID +--- @param coord float +--- @return int +function TextServerExtension:_shaped_text_hit_test_grapheme(shaped, coord) end + +--- @param shaped RID +--- @param coord float +--- @return int +function TextServerExtension:_shaped_text_hit_test_position(shaped, coord) end + +--- @param shaped RID +--- @param canvas RID +--- @param pos Vector2 +--- @param clip_l float +--- @param clip_r float +--- @param color Color +--- @param oversampling float +function TextServerExtension:_shaped_text_draw(shaped, canvas, pos, clip_l, clip_r, color, oversampling) end + +--- @param shaped RID +--- @param canvas RID +--- @param pos Vector2 +--- @param clip_l float +--- @param clip_r float +--- @param outline_size int +--- @param color Color +--- @param oversampling float +function TextServerExtension:_shaped_text_draw_outline(shaped, canvas, pos, clip_l, clip_r, outline_size, color, oversampling) end + +--- @param shaped RID +--- @param pos int +--- @return Vector2 +function TextServerExtension:_shaped_text_get_grapheme_bounds(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServerExtension:_shaped_text_next_grapheme_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServerExtension:_shaped_text_prev_grapheme_pos(shaped, pos) end + +--- @param shaped RID +--- @return PackedInt32Array +function TextServerExtension:_shaped_text_get_character_breaks(shaped) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServerExtension:_shaped_text_next_character_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServerExtension:_shaped_text_prev_character_pos(shaped, pos) end + +--- @param shaped RID +--- @param pos int +--- @return int +function TextServerExtension:_shaped_text_closest_character_pos(shaped, pos) end + +--- @param number String +--- @param language String +--- @return String +function TextServerExtension:_format_number(number, language) end + +--- @param number String +--- @param language String +--- @return String +function TextServerExtension:_parse_number(number, language) end + +--- @param language String +--- @return String +function TextServerExtension:_percent_sign(language) end + +--- @param string String +--- @return String +function TextServerExtension:_strip_diacritics(string) end + +--- @param string String +--- @return bool +function TextServerExtension:_is_valid_identifier(string) end + +--- @param unicode int +--- @return bool +function TextServerExtension:_is_valid_letter(unicode) end + +--- @param string String +--- @param language String +--- @param chars_per_line int +--- @return PackedInt32Array +function TextServerExtension:_string_get_word_breaks(string, language, chars_per_line) end + +--- @param string String +--- @param language String +--- @return PackedInt32Array +function TextServerExtension:_string_get_character_breaks(string, language) end + +--- @param string String +--- @param dict PackedStringArray +--- @return int +function TextServerExtension:_is_confusable(string, dict) end + +--- @param string String +--- @return bool +function TextServerExtension:_spoof_check(string) end + +--- @param string String +--- @param language String +--- @return String +function TextServerExtension:_string_to_upper(string, language) end + +--- @param string String +--- @param language String +--- @return String +function TextServerExtension:_string_to_lower(string, language) end + +--- @param string String +--- @param language String +--- @return String +function TextServerExtension:_string_to_title(string, language) end + +--- @param parser_type TextServer.StructuredTextParser +--- @param args Array +--- @param text String +--- @return Array[Vector3i] +function TextServerExtension:_parse_structured_text(parser_type, args, text) end + +function TextServerExtension:_cleanup() end + + +----------------------------------------------------------- +-- TextServerManager +----------------------------------------------------------- + +--- @class TextServerManager: Object, { [string]: any } +TextServerManager = {} + +TextServerManager.interface_added = Signal() +TextServerManager.interface_removed = Signal() + +--- @param interface TextServer +function TextServerManager:add_interface(interface) end + +--- @return int +function TextServerManager:get_interface_count() end + +--- @param interface TextServer +function TextServerManager:remove_interface(interface) end + +--- @param idx int +--- @return TextServer +function TextServerManager:get_interface(idx) end + +--- @return Array[Dictionary] +function TextServerManager:get_interfaces() end + +--- @param name String +--- @return TextServer +function TextServerManager:find_interface(name) end + +--- @param index TextServer +function TextServerManager:set_primary_interface(index) end + +--- @return TextServer +function TextServerManager:get_primary_interface() end + + +----------------------------------------------------------- +-- Texture +----------------------------------------------------------- + +--- @class Texture: Resource, { [string]: any } +Texture = {} + +--- @return Texture +function Texture:new() end + + +----------------------------------------------------------- +-- Texture2D +----------------------------------------------------------- + +--- @class Texture2D: Texture, { [string]: any } +Texture2D = {} + +--- @return Texture2D +function Texture2D:new() end + +--- @return int +function Texture2D:_get_width() end + +--- @return int +function Texture2D:_get_height() end + +--- @param x int +--- @param y int +--- @return bool +function Texture2D:_is_pixel_opaque(x, y) end + +--- @return bool +function Texture2D:_has_alpha() end + +--- @param to_canvas_item RID +--- @param pos Vector2 +--- @param modulate Color +--- @param transpose bool +function Texture2D:_draw(to_canvas_item, pos, modulate, transpose) end + +--- @param to_canvas_item RID +--- @param rect Rect2 +--- @param tile bool +--- @param modulate Color +--- @param transpose bool +function Texture2D:_draw_rect(to_canvas_item, rect, tile, modulate, transpose) end + +--- @param to_canvas_item RID +--- @param rect Rect2 +--- @param src_rect Rect2 +--- @param modulate Color +--- @param transpose bool +--- @param clip_uv bool +function Texture2D:_draw_rect_region(to_canvas_item, rect, src_rect, modulate, transpose, clip_uv) end + +--- @return int +function Texture2D:get_width() end + +--- @return int +function Texture2D:get_height() end + +--- @return Vector2 +function Texture2D:get_size() end + +--- @return bool +function Texture2D:has_alpha() end + +--- @param canvas_item RID +--- @param position Vector2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +function Texture2D:draw(canvas_item, position, modulate, transpose) end + +--- @param canvas_item RID +--- @param rect Rect2 +--- @param tile bool +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +function Texture2D:draw_rect(canvas_item, rect, tile, modulate, transpose) end + +--- @param canvas_item RID +--- @param rect Rect2 +--- @param src_rect Rect2 +--- @param modulate Color? Default: Color(1, 1, 1, 1) +--- @param transpose bool? Default: false +--- @param clip_uv bool? Default: true +function Texture2D:draw_rect_region(canvas_item, rect, src_rect, modulate, transpose, clip_uv) end + +--- @return Image +function Texture2D:get_image() end + +--- @return Resource +function Texture2D:create_placeholder() end + + +----------------------------------------------------------- +-- Texture2DArray +----------------------------------------------------------- + +--- @class Texture2DArray: ImageTextureLayered, { [string]: any } +Texture2DArray = {} + +--- @return Texture2DArray +function Texture2DArray:new() end + +--- @return Resource +function Texture2DArray:create_placeholder() end + + +----------------------------------------------------------- +-- Texture2DArrayRD +----------------------------------------------------------- + +--- @class Texture2DArrayRD: TextureLayeredRD, { [string]: any } +Texture2DArrayRD = {} + +--- @return Texture2DArrayRD +function Texture2DArrayRD:new() end + + +----------------------------------------------------------- +-- Texture2DRD +----------------------------------------------------------- + +--- @class Texture2DRD: Texture2D, { [string]: any } +--- @field texture_rd_rid RID +Texture2DRD = {} + +--- @return Texture2DRD +function Texture2DRD:new() end + +--- @param texture_rd_rid RID +function Texture2DRD:set_texture_rd_rid(texture_rd_rid) end + +--- @return RID +function Texture2DRD:get_texture_rd_rid() end + + +----------------------------------------------------------- +-- Texture3D +----------------------------------------------------------- + +--- @class Texture3D: Texture, { [string]: any } +Texture3D = {} + +--- @return Texture3D +function Texture3D:new() end + +--- @return Image.Format +function Texture3D:_get_format() end + +--- @return int +function Texture3D:_get_width() end + +--- @return int +function Texture3D:_get_height() end + +--- @return int +function Texture3D:_get_depth() end + +--- @return bool +function Texture3D:_has_mipmaps() end + +--- @return Array[Image] +function Texture3D:_get_data() end + +--- @return Image.Format +function Texture3D:get_format() end + +--- @return int +function Texture3D:get_width() end + +--- @return int +function Texture3D:get_height() end + +--- @return int +function Texture3D:get_depth() end + +--- @return bool +function Texture3D:has_mipmaps() end + +--- @return Array[Image] +function Texture3D:get_data() end + +--- @return Resource +function Texture3D:create_placeholder() end + + +----------------------------------------------------------- +-- Texture3DRD +----------------------------------------------------------- + +--- @class Texture3DRD: Texture3D, { [string]: any } +--- @field texture_rd_rid RID +Texture3DRD = {} + +--- @return Texture3DRD +function Texture3DRD:new() end + +--- @param texture_rd_rid RID +function Texture3DRD:set_texture_rd_rid(texture_rd_rid) end + +--- @return RID +function Texture3DRD:get_texture_rd_rid() end + + +----------------------------------------------------------- +-- TextureButton +----------------------------------------------------------- + +--- @class TextureButton: BaseButton, { [string]: any } +--- @field texture_normal Texture2D +--- @field texture_pressed Texture2D +--- @field texture_hover Texture2D +--- @field texture_disabled Texture2D +--- @field texture_focused Texture2D +--- @field texture_click_mask BitMap +--- @field ignore_texture_size bool +--- @field stretch_mode int +--- @field flip_h bool +--- @field flip_v bool +TextureButton = {} + +--- @return TextureButton +function TextureButton:new() end + +--- @alias TextureButton.StretchMode `TextureButton.STRETCH_SCALE` | `TextureButton.STRETCH_TILE` | `TextureButton.STRETCH_KEEP` | `TextureButton.STRETCH_KEEP_CENTERED` | `TextureButton.STRETCH_KEEP_ASPECT` | `TextureButton.STRETCH_KEEP_ASPECT_CENTERED` | `TextureButton.STRETCH_KEEP_ASPECT_COVERED` +TextureButton.STRETCH_SCALE = 0 +TextureButton.STRETCH_TILE = 1 +TextureButton.STRETCH_KEEP = 2 +TextureButton.STRETCH_KEEP_CENTERED = 3 +TextureButton.STRETCH_KEEP_ASPECT = 4 +TextureButton.STRETCH_KEEP_ASPECT_CENTERED = 5 +TextureButton.STRETCH_KEEP_ASPECT_COVERED = 6 + +--- @param texture Texture2D +function TextureButton:set_texture_normal(texture) end + +--- @param texture Texture2D +function TextureButton:set_texture_pressed(texture) end + +--- @param texture Texture2D +function TextureButton:set_texture_hover(texture) end + +--- @param texture Texture2D +function TextureButton:set_texture_disabled(texture) end + +--- @param texture Texture2D +function TextureButton:set_texture_focused(texture) end + +--- @param mask BitMap +function TextureButton:set_click_mask(mask) end + +--- @param ignore bool +function TextureButton:set_ignore_texture_size(ignore) end + +--- @param mode TextureButton.StretchMode +function TextureButton:set_stretch_mode(mode) end + +--- @param enable bool +function TextureButton:set_flip_h(enable) end + +--- @return bool +function TextureButton:is_flipped_h() end + +--- @param enable bool +function TextureButton:set_flip_v(enable) end + +--- @return bool +function TextureButton:is_flipped_v() end + +--- @return Texture2D +function TextureButton:get_texture_normal() end + +--- @return Texture2D +function TextureButton:get_texture_pressed() end + +--- @return Texture2D +function TextureButton:get_texture_hover() end + +--- @return Texture2D +function TextureButton:get_texture_disabled() end + +--- @return Texture2D +function TextureButton:get_texture_focused() end + +--- @return BitMap +function TextureButton:get_click_mask() end + +--- @return bool +function TextureButton:get_ignore_texture_size() end + +--- @return TextureButton.StretchMode +function TextureButton:get_stretch_mode() end + + +----------------------------------------------------------- +-- TextureCubemapArrayRD +----------------------------------------------------------- + +--- @class TextureCubemapArrayRD: TextureLayeredRD, { [string]: any } +TextureCubemapArrayRD = {} + +--- @return TextureCubemapArrayRD +function TextureCubemapArrayRD:new() end + + +----------------------------------------------------------- +-- TextureCubemapRD +----------------------------------------------------------- + +--- @class TextureCubemapRD: TextureLayeredRD, { [string]: any } +TextureCubemapRD = {} + +--- @return TextureCubemapRD +function TextureCubemapRD:new() end + + +----------------------------------------------------------- +-- TextureLayered +----------------------------------------------------------- + +--- @class TextureLayered: Texture, { [string]: any } +TextureLayered = {} + +--- @return TextureLayered +function TextureLayered:new() end + +--- @alias TextureLayered.LayeredType `TextureLayered.LAYERED_TYPE_2D_ARRAY` | `TextureLayered.LAYERED_TYPE_CUBEMAP` | `TextureLayered.LAYERED_TYPE_CUBEMAP_ARRAY` +TextureLayered.LAYERED_TYPE_2D_ARRAY = 0 +TextureLayered.LAYERED_TYPE_CUBEMAP = 1 +TextureLayered.LAYERED_TYPE_CUBEMAP_ARRAY = 2 + +--- @return Image.Format +function TextureLayered:_get_format() end + +--- @return int +function TextureLayered:_get_layered_type() end + +--- @return int +function TextureLayered:_get_width() end + +--- @return int +function TextureLayered:_get_height() end + +--- @return int +function TextureLayered:_get_layers() end + +--- @return bool +function TextureLayered:_has_mipmaps() end + +--- @param layer_index int +--- @return Image +function TextureLayered:_get_layer_data(layer_index) end + +--- @return Image.Format +function TextureLayered:get_format() end + +--- @return TextureLayered.LayeredType +function TextureLayered:get_layered_type() end + +--- @return int +function TextureLayered:get_width() end + +--- @return int +function TextureLayered:get_height() end + +--- @return int +function TextureLayered:get_layers() end + +--- @return bool +function TextureLayered:has_mipmaps() end + +--- @param layer int +--- @return Image +function TextureLayered:get_layer_data(layer) end + + +----------------------------------------------------------- +-- TextureLayeredRD +----------------------------------------------------------- + +--- @class TextureLayeredRD: TextureLayered, { [string]: any } +--- @field texture_rd_rid RID +TextureLayeredRD = {} + +--- @param texture_rd_rid RID +function TextureLayeredRD:set_texture_rd_rid(texture_rd_rid) end + +--- @return RID +function TextureLayeredRD:get_texture_rd_rid() end + + +----------------------------------------------------------- +-- TextureProgressBar +----------------------------------------------------------- + +--- @class TextureProgressBar: Range, { [string]: any } +--- @field fill_mode int +--- @field radial_initial_angle float +--- @field radial_fill_degrees float +--- @field radial_center_offset Vector2 +--- @field nine_patch_stretch bool +--- @field stretch_margin_left int +--- @field stretch_margin_top int +--- @field stretch_margin_right int +--- @field stretch_margin_bottom int +--- @field texture_under Texture2D +--- @field texture_over Texture2D +--- @field texture_progress Texture2D +--- @field texture_progress_offset Vector2 +--- @field tint_under Color +--- @field tint_over Color +--- @field tint_progress Color +TextureProgressBar = {} + +--- @return TextureProgressBar +function TextureProgressBar:new() end + +--- @alias TextureProgressBar.FillMode `TextureProgressBar.FILL_LEFT_TO_RIGHT` | `TextureProgressBar.FILL_RIGHT_TO_LEFT` | `TextureProgressBar.FILL_TOP_TO_BOTTOM` | `TextureProgressBar.FILL_BOTTOM_TO_TOP` | `TextureProgressBar.FILL_CLOCKWISE` | `TextureProgressBar.FILL_COUNTER_CLOCKWISE` | `TextureProgressBar.FILL_BILINEAR_LEFT_AND_RIGHT` | `TextureProgressBar.FILL_BILINEAR_TOP_AND_BOTTOM` | `TextureProgressBar.FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE` +TextureProgressBar.FILL_LEFT_TO_RIGHT = 0 +TextureProgressBar.FILL_RIGHT_TO_LEFT = 1 +TextureProgressBar.FILL_TOP_TO_BOTTOM = 2 +TextureProgressBar.FILL_BOTTOM_TO_TOP = 3 +TextureProgressBar.FILL_CLOCKWISE = 4 +TextureProgressBar.FILL_COUNTER_CLOCKWISE = 5 +TextureProgressBar.FILL_BILINEAR_LEFT_AND_RIGHT = 6 +TextureProgressBar.FILL_BILINEAR_TOP_AND_BOTTOM = 7 +TextureProgressBar.FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8 + +--- @param tex Texture2D +function TextureProgressBar:set_under_texture(tex) end + +--- @return Texture2D +function TextureProgressBar:get_under_texture() end + +--- @param tex Texture2D +function TextureProgressBar:set_progress_texture(tex) end + +--- @return Texture2D +function TextureProgressBar:get_progress_texture() end + +--- @param tex Texture2D +function TextureProgressBar:set_over_texture(tex) end + +--- @return Texture2D +function TextureProgressBar:get_over_texture() end + +--- @param mode int +function TextureProgressBar:set_fill_mode(mode) end + +--- @return int +function TextureProgressBar:get_fill_mode() end + +--- @param tint Color +function TextureProgressBar:set_tint_under(tint) end + +--- @return Color +function TextureProgressBar:get_tint_under() end + +--- @param tint Color +function TextureProgressBar:set_tint_progress(tint) end + +--- @return Color +function TextureProgressBar:get_tint_progress() end + +--- @param tint Color +function TextureProgressBar:set_tint_over(tint) end + +--- @return Color +function TextureProgressBar:get_tint_over() end + +--- @param offset Vector2 +function TextureProgressBar:set_texture_progress_offset(offset) end + +--- @return Vector2 +function TextureProgressBar:get_texture_progress_offset() end + +--- @param mode float +function TextureProgressBar:set_radial_initial_angle(mode) end + +--- @return float +function TextureProgressBar:get_radial_initial_angle() end + +--- @param mode Vector2 +function TextureProgressBar:set_radial_center_offset(mode) end + +--- @return Vector2 +function TextureProgressBar:get_radial_center_offset() end + +--- @param mode float +function TextureProgressBar:set_fill_degrees(mode) end + +--- @return float +function TextureProgressBar:get_fill_degrees() end + +--- @param margin Side +--- @param value int +function TextureProgressBar:set_stretch_margin(margin, value) end + +--- @param margin Side +--- @return int +function TextureProgressBar:get_stretch_margin(margin) end + +--- @param stretch bool +function TextureProgressBar:set_nine_patch_stretch(stretch) end + +--- @return bool +function TextureProgressBar:get_nine_patch_stretch() end + + +----------------------------------------------------------- +-- TextureRect +----------------------------------------------------------- + +--- @class TextureRect: Control, { [string]: any } +--- @field texture Texture2D +--- @field expand_mode int +--- @field stretch_mode int +--- @field flip_h bool +--- @field flip_v bool +TextureRect = {} + +--- @return TextureRect +function TextureRect:new() end + +--- @alias TextureRect.ExpandMode `TextureRect.EXPAND_KEEP_SIZE` | `TextureRect.EXPAND_IGNORE_SIZE` | `TextureRect.EXPAND_FIT_WIDTH` | `TextureRect.EXPAND_FIT_WIDTH_PROPORTIONAL` | `TextureRect.EXPAND_FIT_HEIGHT` | `TextureRect.EXPAND_FIT_HEIGHT_PROPORTIONAL` +TextureRect.EXPAND_KEEP_SIZE = 0 +TextureRect.EXPAND_IGNORE_SIZE = 1 +TextureRect.EXPAND_FIT_WIDTH = 2 +TextureRect.EXPAND_FIT_WIDTH_PROPORTIONAL = 3 +TextureRect.EXPAND_FIT_HEIGHT = 4 +TextureRect.EXPAND_FIT_HEIGHT_PROPORTIONAL = 5 + +--- @alias TextureRect.StretchMode `TextureRect.STRETCH_SCALE` | `TextureRect.STRETCH_TILE` | `TextureRect.STRETCH_KEEP` | `TextureRect.STRETCH_KEEP_CENTERED` | `TextureRect.STRETCH_KEEP_ASPECT` | `TextureRect.STRETCH_KEEP_ASPECT_CENTERED` | `TextureRect.STRETCH_KEEP_ASPECT_COVERED` +TextureRect.STRETCH_SCALE = 0 +TextureRect.STRETCH_TILE = 1 +TextureRect.STRETCH_KEEP = 2 +TextureRect.STRETCH_KEEP_CENTERED = 3 +TextureRect.STRETCH_KEEP_ASPECT = 4 +TextureRect.STRETCH_KEEP_ASPECT_CENTERED = 5 +TextureRect.STRETCH_KEEP_ASPECT_COVERED = 6 + +--- @param texture Texture2D +function TextureRect:set_texture(texture) end + +--- @return Texture2D +function TextureRect:get_texture() end + +--- @param expand_mode TextureRect.ExpandMode +function TextureRect:set_expand_mode(expand_mode) end + +--- @return TextureRect.ExpandMode +function TextureRect:get_expand_mode() end + +--- @param enable bool +function TextureRect:set_flip_h(enable) end + +--- @return bool +function TextureRect:is_flipped_h() end + +--- @param enable bool +function TextureRect:set_flip_v(enable) end + +--- @return bool +function TextureRect:is_flipped_v() end + +--- @param stretch_mode TextureRect.StretchMode +function TextureRect:set_stretch_mode(stretch_mode) end + +--- @return TextureRect.StretchMode +function TextureRect:get_stretch_mode() end + + +----------------------------------------------------------- +-- Theme +----------------------------------------------------------- + +--- @class Theme: Resource, { [string]: any } +--- @field default_base_scale float +--- @field default_font Font +--- @field default_font_size int +Theme = {} + +--- @return Theme +function Theme:new() end + +--- @alias Theme.DataType `Theme.DATA_TYPE_COLOR` | `Theme.DATA_TYPE_CONSTANT` | `Theme.DATA_TYPE_FONT` | `Theme.DATA_TYPE_FONT_SIZE` | `Theme.DATA_TYPE_ICON` | `Theme.DATA_TYPE_STYLEBOX` | `Theme.DATA_TYPE_MAX` +Theme.DATA_TYPE_COLOR = 0 +Theme.DATA_TYPE_CONSTANT = 1 +Theme.DATA_TYPE_FONT = 2 +Theme.DATA_TYPE_FONT_SIZE = 3 +Theme.DATA_TYPE_ICON = 4 +Theme.DATA_TYPE_STYLEBOX = 5 +Theme.DATA_TYPE_MAX = 6 + +--- @param name StringName +--- @param theme_type StringName +--- @param texture Texture2D +function Theme:set_icon(name, theme_type, texture) end + +--- @param name StringName +--- @param theme_type StringName +--- @return Texture2D +function Theme:get_icon(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_icon(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_icon(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_icon(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_icon_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_icon_type_list() end + +--- @param name StringName +--- @param theme_type StringName +--- @param texture StyleBox +function Theme:set_stylebox(name, theme_type, texture) end + +--- @param name StringName +--- @param theme_type StringName +--- @return StyleBox +function Theme:get_stylebox(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_stylebox(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_stylebox(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_stylebox(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_stylebox_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_stylebox_type_list() end + +--- @param name StringName +--- @param theme_type StringName +--- @param font Font +function Theme:set_font(name, theme_type, font) end + +--- @param name StringName +--- @param theme_type StringName +--- @return Font +function Theme:get_font(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_font(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_font(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_font(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_font_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_font_type_list() end + +--- @param name StringName +--- @param theme_type StringName +--- @param font_size int +function Theme:set_font_size(name, theme_type, font_size) end + +--- @param name StringName +--- @param theme_type StringName +--- @return int +function Theme:get_font_size(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_font_size(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_font_size(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_font_size(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_font_size_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_font_size_type_list() end + +--- @param name StringName +--- @param theme_type StringName +--- @param color Color +function Theme:set_color(name, theme_type, color) end + +--- @param name StringName +--- @param theme_type StringName +--- @return Color +function Theme:get_color(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_color(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_color(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_color(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_color_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_color_type_list() end + +--- @param name StringName +--- @param theme_type StringName +--- @param constant int +function Theme:set_constant(name, theme_type, constant) end + +--- @param name StringName +--- @param theme_type StringName +--- @return int +function Theme:get_constant(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_constant(name, theme_type) end + +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_constant(old_name, name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_constant(name, theme_type) end + +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_constant_list(theme_type) end + +--- @return PackedStringArray +function Theme:get_constant_type_list() end + +--- @param base_scale float +function Theme:set_default_base_scale(base_scale) end + +--- @return float +function Theme:get_default_base_scale() end + +--- @return bool +function Theme:has_default_base_scale() end + +--- @param font Font +function Theme:set_default_font(font) end + +--- @return Font +function Theme:get_default_font() end + +--- @return bool +function Theme:has_default_font() end + +--- @param font_size int +function Theme:set_default_font_size(font_size) end + +--- @return int +function Theme:get_default_font_size() end + +--- @return bool +function Theme:has_default_font_size() end + +--- @param data_type Theme.DataType +--- @param name StringName +--- @param theme_type StringName +--- @param value any +function Theme:set_theme_item(data_type, name, theme_type, value) end + +--- @param data_type Theme.DataType +--- @param name StringName +--- @param theme_type StringName +--- @return any +function Theme:get_theme_item(data_type, name, theme_type) end + +--- @param data_type Theme.DataType +--- @param name StringName +--- @param theme_type StringName +--- @return bool +function Theme:has_theme_item(data_type, name, theme_type) end + +--- @param data_type Theme.DataType +--- @param old_name StringName +--- @param name StringName +--- @param theme_type StringName +function Theme:rename_theme_item(data_type, old_name, name, theme_type) end + +--- @param data_type Theme.DataType +--- @param name StringName +--- @param theme_type StringName +function Theme:clear_theme_item(data_type, name, theme_type) end + +--- @param data_type Theme.DataType +--- @param theme_type String +--- @return PackedStringArray +function Theme:get_theme_item_list(data_type, theme_type) end + +--- @param data_type Theme.DataType +--- @return PackedStringArray +function Theme:get_theme_item_type_list(data_type) end + +--- @param theme_type StringName +--- @param base_type StringName +function Theme:set_type_variation(theme_type, base_type) end + +--- @param theme_type StringName +--- @param base_type StringName +--- @return bool +function Theme:is_type_variation(theme_type, base_type) end + +--- @param theme_type StringName +function Theme:clear_type_variation(theme_type) end + +--- @param theme_type StringName +--- @return StringName +function Theme:get_type_variation_base(theme_type) end + +--- @param base_type StringName +--- @return PackedStringArray +function Theme:get_type_variation_list(base_type) end + +--- @param theme_type StringName +function Theme:add_type(theme_type) end + +--- @param theme_type StringName +function Theme:remove_type(theme_type) end + +--- @param old_theme_type StringName +--- @param theme_type StringName +function Theme:rename_type(old_theme_type, theme_type) end + +--- @return PackedStringArray +function Theme:get_type_list() end + +--- @param other Theme +function Theme:merge_with(other) end + +function Theme:clear() end + + +----------------------------------------------------------- +-- ThemeDB +----------------------------------------------------------- + +--- @class ThemeDB: Object, { [string]: any } +--- @field fallback_base_scale float +--- @field fallback_font Font +--- @field fallback_font_size int +--- @field fallback_icon Texture2D +--- @field fallback_stylebox StyleBox +ThemeDB = {} + +ThemeDB.fallback_changed = Signal() + +--- @return Theme +function ThemeDB:get_default_theme() end + +--- @return Theme +function ThemeDB:get_project_theme() end + +--- @param base_scale float +function ThemeDB:set_fallback_base_scale(base_scale) end + +--- @return float +function ThemeDB:get_fallback_base_scale() end + +--- @param font Font +function ThemeDB:set_fallback_font(font) end + +--- @return Font +function ThemeDB:get_fallback_font() end + +--- @param font_size int +function ThemeDB:set_fallback_font_size(font_size) end + +--- @return int +function ThemeDB:get_fallback_font_size() end + +--- @param icon Texture2D +function ThemeDB:set_fallback_icon(icon) end + +--- @return Texture2D +function ThemeDB:get_fallback_icon() end + +--- @param stylebox StyleBox +function ThemeDB:set_fallback_stylebox(stylebox) end + +--- @return StyleBox +function ThemeDB:get_fallback_stylebox() end + + +----------------------------------------------------------- +-- Thread +----------------------------------------------------------- + +--- @class Thread: RefCounted, { [string]: any } +Thread = {} + +--- @return Thread +function Thread:new() end + +--- @alias Thread.Priority `Thread.PRIORITY_LOW` | `Thread.PRIORITY_NORMAL` | `Thread.PRIORITY_HIGH` +Thread.PRIORITY_LOW = 0 +Thread.PRIORITY_NORMAL = 1 +Thread.PRIORITY_HIGH = 2 + +--- @param callable Callable +--- @param priority Thread.Priority? Default: 1 +--- @return Error +function Thread:start(callable, priority) end + +--- @return String +function Thread:get_id() end + +--- @return bool +function Thread:is_started() end + +--- @return bool +function Thread:is_alive() end + +--- @return any +function Thread:wait_to_finish() end + +--- static +--- @param enabled bool +function Thread:set_thread_safety_checks_enabled(enabled) end + + +----------------------------------------------------------- +-- TileData +----------------------------------------------------------- + +--- @class TileData: Object, { [string]: any } +--- @field flip_h bool +--- @field flip_v bool +--- @field transpose bool +--- @field texture_origin Vector2i +--- @field modulate Color +--- @field material CanvasItemMaterial | ShaderMaterial +--- @field z_index int +--- @field y_sort_origin int +--- @field terrain_set int +--- @field terrain int +--- @field probability float +TileData = {} + +--- @return TileData +function TileData:new() end + +TileData.changed = Signal() + +--- @param flip_h bool +function TileData:set_flip_h(flip_h) end + +--- @return bool +function TileData:get_flip_h() end + +--- @param flip_v bool +function TileData:set_flip_v(flip_v) end + +--- @return bool +function TileData:get_flip_v() end + +--- @param transpose bool +function TileData:set_transpose(transpose) end + +--- @return bool +function TileData:get_transpose() end + +--- @param material Material +function TileData:set_material(material) end + +--- @return Material +function TileData:get_material() end + +--- @param texture_origin Vector2i +function TileData:set_texture_origin(texture_origin) end + +--- @return Vector2i +function TileData:get_texture_origin() end + +--- @param modulate Color +function TileData:set_modulate(modulate) end + +--- @return Color +function TileData:get_modulate() end + +--- @param z_index int +function TileData:set_z_index(z_index) end + +--- @return int +function TileData:get_z_index() end + +--- @param y_sort_origin int +function TileData:set_y_sort_origin(y_sort_origin) end + +--- @return int +function TileData:get_y_sort_origin() end + +--- @param layer_id int +--- @param polygons_count int +function TileData:set_occluder_polygons_count(layer_id, polygons_count) end + +--- @param layer_id int +--- @return int +function TileData:get_occluder_polygons_count(layer_id) end + +--- @param layer_id int +function TileData:add_occluder_polygon(layer_id) end + +--- @param layer_id int +--- @param polygon_index int +function TileData:remove_occluder_polygon(layer_id, polygon_index) end + +--- @param layer_id int +--- @param polygon_index int +--- @param polygon OccluderPolygon2D +function TileData:set_occluder_polygon(layer_id, polygon_index, polygon) end + +--- @param layer_id int +--- @param polygon_index int +--- @param flip_h bool? Default: false +--- @param flip_v bool? Default: false +--- @param transpose bool? Default: false +--- @return OccluderPolygon2D +function TileData:get_occluder_polygon(layer_id, polygon_index, flip_h, flip_v, transpose) end + +--- @param layer_id int +--- @param occluder_polygon OccluderPolygon2D +function TileData:set_occluder(layer_id, occluder_polygon) end + +--- @param layer_id int +--- @param flip_h bool? Default: false +--- @param flip_v bool? Default: false +--- @param transpose bool? Default: false +--- @return OccluderPolygon2D +function TileData:get_occluder(layer_id, flip_h, flip_v, transpose) end + +--- @param layer_id int +--- @param velocity Vector2 +function TileData:set_constant_linear_velocity(layer_id, velocity) end + +--- @param layer_id int +--- @return Vector2 +function TileData:get_constant_linear_velocity(layer_id) end + +--- @param layer_id int +--- @param velocity float +function TileData:set_constant_angular_velocity(layer_id, velocity) end + +--- @param layer_id int +--- @return float +function TileData:get_constant_angular_velocity(layer_id) end + +--- @param layer_id int +--- @param polygons_count int +function TileData:set_collision_polygons_count(layer_id, polygons_count) end + +--- @param layer_id int +--- @return int +function TileData:get_collision_polygons_count(layer_id) end + +--- @param layer_id int +function TileData:add_collision_polygon(layer_id) end + +--- @param layer_id int +--- @param polygon_index int +function TileData:remove_collision_polygon(layer_id, polygon_index) end + +--- @param layer_id int +--- @param polygon_index int +--- @param polygon PackedVector2Array +function TileData:set_collision_polygon_points(layer_id, polygon_index, polygon) end + +--- @param layer_id int +--- @param polygon_index int +--- @return PackedVector2Array +function TileData:get_collision_polygon_points(layer_id, polygon_index) end + +--- @param layer_id int +--- @param polygon_index int +--- @param one_way bool +function TileData:set_collision_polygon_one_way(layer_id, polygon_index, one_way) end + +--- @param layer_id int +--- @param polygon_index int +--- @return bool +function TileData:is_collision_polygon_one_way(layer_id, polygon_index) end + +--- @param layer_id int +--- @param polygon_index int +--- @param one_way_margin float +function TileData:set_collision_polygon_one_way_margin(layer_id, polygon_index, one_way_margin) end + +--- @param layer_id int +--- @param polygon_index int +--- @return float +function TileData:get_collision_polygon_one_way_margin(layer_id, polygon_index) end + +--- @param terrain_set int +function TileData:set_terrain_set(terrain_set) end + +--- @return int +function TileData:get_terrain_set() end + +--- @param terrain int +function TileData:set_terrain(terrain) end + +--- @return int +function TileData:get_terrain() end + +--- @param peering_bit TileSet.CellNeighbor +--- @param terrain int +function TileData:set_terrain_peering_bit(peering_bit, terrain) end + +--- @param peering_bit TileSet.CellNeighbor +--- @return int +function TileData:get_terrain_peering_bit(peering_bit) end + +--- @param peering_bit TileSet.CellNeighbor +--- @return bool +function TileData:is_valid_terrain_peering_bit(peering_bit) end + +--- @param layer_id int +--- @param navigation_polygon NavigationPolygon +function TileData:set_navigation_polygon(layer_id, navigation_polygon) end + +--- @param layer_id int +--- @param flip_h bool? Default: false +--- @param flip_v bool? Default: false +--- @param transpose bool? Default: false +--- @return NavigationPolygon +function TileData:get_navigation_polygon(layer_id, flip_h, flip_v, transpose) end + +--- @param probability float +function TileData:set_probability(probability) end + +--- @return float +function TileData:get_probability() end + +--- @param layer_name String +--- @param value any +function TileData:set_custom_data(layer_name, value) end + +--- @param layer_name String +--- @return any +function TileData:get_custom_data(layer_name) end + +--- @param layer_name String +--- @return bool +function TileData:has_custom_data(layer_name) end + +--- @param layer_id int +--- @param value any +function TileData:set_custom_data_by_layer_id(layer_id, value) end + +--- @param layer_id int +--- @return any +function TileData:get_custom_data_by_layer_id(layer_id) end + + +----------------------------------------------------------- +-- TileMap +----------------------------------------------------------- + +--- @class TileMap: Node2D, { [string]: any } +--- @field tile_set TileSet +--- @field rendering_quadrant_size int +--- @field collision_animatable bool +--- @field collision_visibility_mode int +--- @field navigation_visibility_mode int +TileMap = {} + +--- @return TileMap +function TileMap:new() end + +--- @alias TileMap.VisibilityMode `TileMap.VISIBILITY_MODE_DEFAULT` | `TileMap.VISIBILITY_MODE_FORCE_HIDE` | `TileMap.VISIBILITY_MODE_FORCE_SHOW` +TileMap.VISIBILITY_MODE_DEFAULT = 0 +TileMap.VISIBILITY_MODE_FORCE_HIDE = 2 +TileMap.VISIBILITY_MODE_FORCE_SHOW = 1 + +TileMap.changed = Signal() + +--- @param layer int +--- @param coords Vector2i +--- @return bool +function TileMap:_use_tile_data_runtime_update(layer, coords) end + +--- @param layer int +--- @param coords Vector2i +--- @param tile_data TileData +function TileMap:_tile_data_runtime_update(layer, coords, tile_data) end + +--- @param layer int +--- @param map RID +function TileMap:set_navigation_map(layer, map) end + +--- @param layer int +--- @return RID +function TileMap:get_navigation_map(layer) end + +--- @param layer int? Default: -1 +function TileMap:force_update(layer) end + +--- @param tileset TileSet +function TileMap:set_tileset(tileset) end + +--- @return TileSet +function TileMap:get_tileset() end + +--- @param size int +function TileMap:set_rendering_quadrant_size(size) end + +--- @return int +function TileMap:get_rendering_quadrant_size() end + +--- @return int +function TileMap:get_layers_count() end + +--- @param to_position int +function TileMap:add_layer(to_position) end + +--- @param layer int +--- @param to_position int +function TileMap:move_layer(layer, to_position) end + +--- @param layer int +function TileMap:remove_layer(layer) end + +--- @param layer int +--- @param name String +function TileMap:set_layer_name(layer, name) end + +--- @param layer int +--- @return String +function TileMap:get_layer_name(layer) end + +--- @param layer int +--- @param enabled bool +function TileMap:set_layer_enabled(layer, enabled) end + +--- @param layer int +--- @return bool +function TileMap:is_layer_enabled(layer) end + +--- @param layer int +--- @param modulate Color +function TileMap:set_layer_modulate(layer, modulate) end + +--- @param layer int +--- @return Color +function TileMap:get_layer_modulate(layer) end + +--- @param layer int +--- @param y_sort_enabled bool +function TileMap:set_layer_y_sort_enabled(layer, y_sort_enabled) end + +--- @param layer int +--- @return bool +function TileMap:is_layer_y_sort_enabled(layer) end + +--- @param layer int +--- @param y_sort_origin int +function TileMap:set_layer_y_sort_origin(layer, y_sort_origin) end + +--- @param layer int +--- @return int +function TileMap:get_layer_y_sort_origin(layer) end + +--- @param layer int +--- @param z_index int +function TileMap:set_layer_z_index(layer, z_index) end + +--- @param layer int +--- @return int +function TileMap:get_layer_z_index(layer) end + +--- @param layer int +--- @param enabled bool +function TileMap:set_layer_navigation_enabled(layer, enabled) end + +--- @param layer int +--- @return bool +function TileMap:is_layer_navigation_enabled(layer) end + +--- @param layer int +--- @param map RID +function TileMap:set_layer_navigation_map(layer, map) end + +--- @param layer int +--- @return RID +function TileMap:get_layer_navigation_map(layer) end + +--- @param enabled bool +function TileMap:set_collision_animatable(enabled) end + +--- @return bool +function TileMap:is_collision_animatable() end + +--- @param collision_visibility_mode TileMap.VisibilityMode +function TileMap:set_collision_visibility_mode(collision_visibility_mode) end + +--- @return TileMap.VisibilityMode +function TileMap:get_collision_visibility_mode() end + +--- @param navigation_visibility_mode TileMap.VisibilityMode +function TileMap:set_navigation_visibility_mode(navigation_visibility_mode) end + +--- @return TileMap.VisibilityMode +function TileMap:get_navigation_visibility_mode() end + +--- @param layer int +--- @param coords Vector2i +--- @param source_id int? Default: -1 +--- @param atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param alternative_tile int? Default: 0 +function TileMap:set_cell(layer, coords, source_id, atlas_coords, alternative_tile) end + +--- @param layer int +--- @param coords Vector2i +function TileMap:erase_cell(layer, coords) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return int +function TileMap:get_cell_source_id(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return Vector2i +function TileMap:get_cell_atlas_coords(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return int +function TileMap:get_cell_alternative_tile(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return TileData +function TileMap:get_cell_tile_data(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return bool +function TileMap:is_cell_flipped_h(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return bool +function TileMap:is_cell_flipped_v(layer, coords, use_proxies) end + +--- @param layer int +--- @param coords Vector2i +--- @param use_proxies bool? Default: false +--- @return bool +function TileMap:is_cell_transposed(layer, coords, use_proxies) end + +--- @param body RID +--- @return Vector2i +function TileMap:get_coords_for_body_rid(body) end + +--- @param body RID +--- @return int +function TileMap:get_layer_for_body_rid(body) end + +--- @param layer int +--- @param coords_array Array[Vector2i] +--- @return TileMapPattern +function TileMap:get_pattern(layer, coords_array) end + +--- @param position_in_tilemap Vector2i +--- @param coords_in_pattern Vector2i +--- @param pattern TileMapPattern +--- @return Vector2i +function TileMap:map_pattern(position_in_tilemap, coords_in_pattern, pattern) end + +--- @param layer int +--- @param position Vector2i +--- @param pattern TileMapPattern +function TileMap:set_pattern(layer, position, pattern) end + +--- @param layer int +--- @param cells Array[Vector2i] +--- @param terrain_set int +--- @param terrain int +--- @param ignore_empty_terrains bool? Default: true +function TileMap:set_cells_terrain_connect(layer, cells, terrain_set, terrain, ignore_empty_terrains) end + +--- @param layer int +--- @param path Array[Vector2i] +--- @param terrain_set int +--- @param terrain int +--- @param ignore_empty_terrains bool? Default: true +function TileMap:set_cells_terrain_path(layer, path, terrain_set, terrain, ignore_empty_terrains) end + +function TileMap:fix_invalid_tiles() end + +--- @param layer int +function TileMap:clear_layer(layer) end + +function TileMap:clear() end + +function TileMap:update_internals() end + +--- @param layer int? Default: -1 +function TileMap:notify_runtime_tile_data_update(layer) end + +--- @param coords Vector2i +--- @return Array[Vector2i] +function TileMap:get_surrounding_cells(coords) end + +--- @param layer int +--- @return Array[Vector2i] +function TileMap:get_used_cells(layer) end + +--- @param layer int +--- @param source_id int? Default: -1 +--- @param atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param alternative_tile int? Default: -1 +--- @return Array[Vector2i] +function TileMap:get_used_cells_by_id(layer, source_id, atlas_coords, alternative_tile) end + +--- @return Rect2i +function TileMap:get_used_rect() end + +--- @param map_position Vector2i +--- @return Vector2 +function TileMap:map_to_local(map_position) end + +--- @param local_position Vector2 +--- @return Vector2i +function TileMap:local_to_map(local_position) end + +--- @param coords Vector2i +--- @param neighbor TileSet.CellNeighbor +--- @return Vector2i +function TileMap:get_neighbor_cell(coords, neighbor) end + + +----------------------------------------------------------- +-- TileMapLayer +----------------------------------------------------------- + +--- @class TileMapLayer: Node2D, { [string]: any } +--- @field tile_map_data PackedByteArray +--- @field enabled bool +--- @field tile_set TileSet +--- @field occlusion_enabled bool +--- @field y_sort_origin int +--- @field x_draw_order_reversed bool +--- @field rendering_quadrant_size int +--- @field collision_enabled bool +--- @field use_kinematic_bodies bool +--- @field collision_visibility_mode int +--- @field physics_quadrant_size int +--- @field navigation_enabled bool +--- @field navigation_visibility_mode int +TileMapLayer = {} + +--- @return TileMapLayer +function TileMapLayer:new() end + +--- @alias TileMapLayer.DebugVisibilityMode `TileMapLayer.DEBUG_VISIBILITY_MODE_DEFAULT` | `TileMapLayer.DEBUG_VISIBILITY_MODE_FORCE_HIDE` | `TileMapLayer.DEBUG_VISIBILITY_MODE_FORCE_SHOW` +TileMapLayer.DEBUG_VISIBILITY_MODE_DEFAULT = 0 +TileMapLayer.DEBUG_VISIBILITY_MODE_FORCE_HIDE = 2 +TileMapLayer.DEBUG_VISIBILITY_MODE_FORCE_SHOW = 1 + +TileMapLayer.changed = Signal() + +--- @param coords Vector2i +--- @return bool +function TileMapLayer:_use_tile_data_runtime_update(coords) end + +--- @param coords Vector2i +--- @param tile_data TileData +function TileMapLayer:_tile_data_runtime_update(coords, tile_data) end + +--- @param coords Array[Vector2i] +--- @param forced_cleanup bool +function TileMapLayer:_update_cells(coords, forced_cleanup) end + +--- @param coords Vector2i +--- @param source_id int? Default: -1 +--- @param atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param alternative_tile int? Default: 0 +function TileMapLayer:set_cell(coords, source_id, atlas_coords, alternative_tile) end + +--- @param coords Vector2i +function TileMapLayer:erase_cell(coords) end + +function TileMapLayer:fix_invalid_tiles() end + +function TileMapLayer:clear() end + +--- @param coords Vector2i +--- @return int +function TileMapLayer:get_cell_source_id(coords) end + +--- @param coords Vector2i +--- @return Vector2i +function TileMapLayer:get_cell_atlas_coords(coords) end + +--- @param coords Vector2i +--- @return int +function TileMapLayer:get_cell_alternative_tile(coords) end + +--- @param coords Vector2i +--- @return TileData +function TileMapLayer:get_cell_tile_data(coords) end + +--- @param coords Vector2i +--- @return bool +function TileMapLayer:is_cell_flipped_h(coords) end + +--- @param coords Vector2i +--- @return bool +function TileMapLayer:is_cell_flipped_v(coords) end + +--- @param coords Vector2i +--- @return bool +function TileMapLayer:is_cell_transposed(coords) end + +--- @return Array[Vector2i] +function TileMapLayer:get_used_cells() end + +--- @param source_id int? Default: -1 +--- @param atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param alternative_tile int? Default: -1 +--- @return Array[Vector2i] +function TileMapLayer:get_used_cells_by_id(source_id, atlas_coords, alternative_tile) end + +--- @return Rect2i +function TileMapLayer:get_used_rect() end + +--- @param coords_array Array[Vector2i] +--- @return TileMapPattern +function TileMapLayer:get_pattern(coords_array) end + +--- @param position Vector2i +--- @param pattern TileMapPattern +function TileMapLayer:set_pattern(position, pattern) end + +--- @param cells Array[Vector2i] +--- @param terrain_set int +--- @param terrain int +--- @param ignore_empty_terrains bool? Default: true +function TileMapLayer:set_cells_terrain_connect(cells, terrain_set, terrain, ignore_empty_terrains) end + +--- @param path Array[Vector2i] +--- @param terrain_set int +--- @param terrain int +--- @param ignore_empty_terrains bool? Default: true +function TileMapLayer:set_cells_terrain_path(path, terrain_set, terrain, ignore_empty_terrains) end + +--- @param body RID +--- @return bool +function TileMapLayer:has_body_rid(body) end + +--- @param body RID +--- @return Vector2i +function TileMapLayer:get_coords_for_body_rid(body) end + +function TileMapLayer:update_internals() end + +function TileMapLayer:notify_runtime_tile_data_update() end + +--- @param position_in_tilemap Vector2i +--- @param coords_in_pattern Vector2i +--- @param pattern TileMapPattern +--- @return Vector2i +function TileMapLayer:map_pattern(position_in_tilemap, coords_in_pattern, pattern) end + +--- @param coords Vector2i +--- @return Array[Vector2i] +function TileMapLayer:get_surrounding_cells(coords) end + +--- @param coords Vector2i +--- @param neighbor TileSet.CellNeighbor +--- @return Vector2i +function TileMapLayer:get_neighbor_cell(coords, neighbor) end + +--- @param map_position Vector2i +--- @return Vector2 +function TileMapLayer:map_to_local(map_position) end + +--- @param local_position Vector2 +--- @return Vector2i +function TileMapLayer:local_to_map(local_position) end + +--- @param tile_map_layer_data PackedByteArray +function TileMapLayer:set_tile_map_data_from_array(tile_map_layer_data) end + +--- @return PackedByteArray +function TileMapLayer:get_tile_map_data_as_array() end + +--- @param enabled bool +function TileMapLayer:set_enabled(enabled) end + +--- @return bool +function TileMapLayer:is_enabled() end + +--- @param tile_set TileSet +function TileMapLayer:set_tile_set(tile_set) end + +--- @return TileSet +function TileMapLayer:get_tile_set() end + +--- @param y_sort_origin int +function TileMapLayer:set_y_sort_origin(y_sort_origin) end + +--- @return int +function TileMapLayer:get_y_sort_origin() end + +--- @param x_draw_order_reversed bool +function TileMapLayer:set_x_draw_order_reversed(x_draw_order_reversed) end + +--- @return bool +function TileMapLayer:is_x_draw_order_reversed() end + +--- @param size int +function TileMapLayer:set_rendering_quadrant_size(size) end + +--- @return int +function TileMapLayer:get_rendering_quadrant_size() end + +--- @param enabled bool +function TileMapLayer:set_collision_enabled(enabled) end + +--- @return bool +function TileMapLayer:is_collision_enabled() end + +--- @param use_kinematic_bodies bool +function TileMapLayer:set_use_kinematic_bodies(use_kinematic_bodies) end + +--- @return bool +function TileMapLayer:is_using_kinematic_bodies() end + +--- @param visibility_mode TileMapLayer.DebugVisibilityMode +function TileMapLayer:set_collision_visibility_mode(visibility_mode) end + +--- @return TileMapLayer.DebugVisibilityMode +function TileMapLayer:get_collision_visibility_mode() end + +--- @param size int +function TileMapLayer:set_physics_quadrant_size(size) end + +--- @return int +function TileMapLayer:get_physics_quadrant_size() end + +--- @param enabled bool +function TileMapLayer:set_occlusion_enabled(enabled) end + +--- @return bool +function TileMapLayer:is_occlusion_enabled() end + +--- @param enabled bool +function TileMapLayer:set_navigation_enabled(enabled) end + +--- @return bool +function TileMapLayer:is_navigation_enabled() end + +--- @param map RID +function TileMapLayer:set_navigation_map(map) end + +--- @return RID +function TileMapLayer:get_navigation_map() end + +--- @param show_navigation TileMapLayer.DebugVisibilityMode +function TileMapLayer:set_navigation_visibility_mode(show_navigation) end + +--- @return TileMapLayer.DebugVisibilityMode +function TileMapLayer:get_navigation_visibility_mode() end + + +----------------------------------------------------------- +-- TileMapPattern +----------------------------------------------------------- + +--- @class TileMapPattern: Resource, { [string]: any } +TileMapPattern = {} + +--- @return TileMapPattern +function TileMapPattern:new() end + +--- @param coords Vector2i +--- @param source_id int? Default: -1 +--- @param atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param alternative_tile int? Default: -1 +function TileMapPattern:set_cell(coords, source_id, atlas_coords, alternative_tile) end + +--- @param coords Vector2i +--- @return bool +function TileMapPattern:has_cell(coords) end + +--- @param coords Vector2i +--- @param update_size bool +function TileMapPattern:remove_cell(coords, update_size) end + +--- @param coords Vector2i +--- @return int +function TileMapPattern:get_cell_source_id(coords) end + +--- @param coords Vector2i +--- @return Vector2i +function TileMapPattern:get_cell_atlas_coords(coords) end + +--- @param coords Vector2i +--- @return int +function TileMapPattern:get_cell_alternative_tile(coords) end + +--- @return Array[Vector2i] +function TileMapPattern:get_used_cells() end + +--- @return Vector2i +function TileMapPattern:get_size() end + +--- @param size Vector2i +function TileMapPattern:set_size(size) end + +--- @return bool +function TileMapPattern:is_empty() end + + +----------------------------------------------------------- +-- TileSet +----------------------------------------------------------- + +--- @class TileSet: Resource, { [string]: any } +--- @field tile_shape int +--- @field tile_layout int +--- @field tile_offset_axis int +--- @field tile_size Vector2i +--- @field uv_clipping bool +TileSet = {} + +--- @return TileSet +function TileSet:new() end + +--- @alias TileSet.TileShape `TileSet.TILE_SHAPE_SQUARE` | `TileSet.TILE_SHAPE_ISOMETRIC` | `TileSet.TILE_SHAPE_HALF_OFFSET_SQUARE` | `TileSet.TILE_SHAPE_HEXAGON` +TileSet.TILE_SHAPE_SQUARE = 0 +TileSet.TILE_SHAPE_ISOMETRIC = 1 +TileSet.TILE_SHAPE_HALF_OFFSET_SQUARE = 2 +TileSet.TILE_SHAPE_HEXAGON = 3 + +--- @alias TileSet.TileLayout `TileSet.TILE_LAYOUT_STACKED` | `TileSet.TILE_LAYOUT_STACKED_OFFSET` | `TileSet.TILE_LAYOUT_STAIRS_RIGHT` | `TileSet.TILE_LAYOUT_STAIRS_DOWN` | `TileSet.TILE_LAYOUT_DIAMOND_RIGHT` | `TileSet.TILE_LAYOUT_DIAMOND_DOWN` +TileSet.TILE_LAYOUT_STACKED = 0 +TileSet.TILE_LAYOUT_STACKED_OFFSET = 1 +TileSet.TILE_LAYOUT_STAIRS_RIGHT = 2 +TileSet.TILE_LAYOUT_STAIRS_DOWN = 3 +TileSet.TILE_LAYOUT_DIAMOND_RIGHT = 4 +TileSet.TILE_LAYOUT_DIAMOND_DOWN = 5 + +--- @alias TileSet.TileOffsetAxis `TileSet.TILE_OFFSET_AXIS_HORIZONTAL` | `TileSet.TILE_OFFSET_AXIS_VERTICAL` +TileSet.TILE_OFFSET_AXIS_HORIZONTAL = 0 +TileSet.TILE_OFFSET_AXIS_VERTICAL = 1 + +--- @alias TileSet.CellNeighbor `TileSet.CELL_NEIGHBOR_RIGHT_SIDE` | `TileSet.CELL_NEIGHBOR_RIGHT_CORNER` | `TileSet.CELL_NEIGHBOR_BOTTOM_RIGHT_SIDE` | `TileSet.CELL_NEIGHBOR_BOTTOM_RIGHT_CORNER` | `TileSet.CELL_NEIGHBOR_BOTTOM_SIDE` | `TileSet.CELL_NEIGHBOR_BOTTOM_CORNER` | `TileSet.CELL_NEIGHBOR_BOTTOM_LEFT_SIDE` | `TileSet.CELL_NEIGHBOR_BOTTOM_LEFT_CORNER` | `TileSet.CELL_NEIGHBOR_LEFT_SIDE` | `TileSet.CELL_NEIGHBOR_LEFT_CORNER` | `TileSet.CELL_NEIGHBOR_TOP_LEFT_SIDE` | `TileSet.CELL_NEIGHBOR_TOP_LEFT_CORNER` | `TileSet.CELL_NEIGHBOR_TOP_SIDE` | `TileSet.CELL_NEIGHBOR_TOP_CORNER` | `TileSet.CELL_NEIGHBOR_TOP_RIGHT_SIDE` | `TileSet.CELL_NEIGHBOR_TOP_RIGHT_CORNER` +TileSet.CELL_NEIGHBOR_RIGHT_SIDE = 0 +TileSet.CELL_NEIGHBOR_RIGHT_CORNER = 1 +TileSet.CELL_NEIGHBOR_BOTTOM_RIGHT_SIDE = 2 +TileSet.CELL_NEIGHBOR_BOTTOM_RIGHT_CORNER = 3 +TileSet.CELL_NEIGHBOR_BOTTOM_SIDE = 4 +TileSet.CELL_NEIGHBOR_BOTTOM_CORNER = 5 +TileSet.CELL_NEIGHBOR_BOTTOM_LEFT_SIDE = 6 +TileSet.CELL_NEIGHBOR_BOTTOM_LEFT_CORNER = 7 +TileSet.CELL_NEIGHBOR_LEFT_SIDE = 8 +TileSet.CELL_NEIGHBOR_LEFT_CORNER = 9 +TileSet.CELL_NEIGHBOR_TOP_LEFT_SIDE = 10 +TileSet.CELL_NEIGHBOR_TOP_LEFT_CORNER = 11 +TileSet.CELL_NEIGHBOR_TOP_SIDE = 12 +TileSet.CELL_NEIGHBOR_TOP_CORNER = 13 +TileSet.CELL_NEIGHBOR_TOP_RIGHT_SIDE = 14 +TileSet.CELL_NEIGHBOR_TOP_RIGHT_CORNER = 15 + +--- @alias TileSet.TerrainMode `TileSet.TERRAIN_MODE_MATCH_CORNERS_AND_SIDES` | `TileSet.TERRAIN_MODE_MATCH_CORNERS` | `TileSet.TERRAIN_MODE_MATCH_SIDES` +TileSet.TERRAIN_MODE_MATCH_CORNERS_AND_SIDES = 0 +TileSet.TERRAIN_MODE_MATCH_CORNERS = 1 +TileSet.TERRAIN_MODE_MATCH_SIDES = 2 + +--- @return int +function TileSet:get_next_source_id() end + +--- @param source TileSetSource +--- @param atlas_source_id_override int? Default: -1 +--- @return int +function TileSet:add_source(source, atlas_source_id_override) end + +--- @param source_id int +function TileSet:remove_source(source_id) end + +--- @param source_id int +--- @param new_source_id int +function TileSet:set_source_id(source_id, new_source_id) end + +--- @return int +function TileSet:get_source_count() end + +--- @param index int +--- @return int +function TileSet:get_source_id(index) end + +--- @param source_id int +--- @return bool +function TileSet:has_source(source_id) end + +--- @param source_id int +--- @return TileSetSource +function TileSet:get_source(source_id) end + +--- @param shape TileSet.TileShape +function TileSet:set_tile_shape(shape) end + +--- @return TileSet.TileShape +function TileSet:get_tile_shape() end + +--- @param layout TileSet.TileLayout +function TileSet:set_tile_layout(layout) end + +--- @return TileSet.TileLayout +function TileSet:get_tile_layout() end + +--- @param alignment TileSet.TileOffsetAxis +function TileSet:set_tile_offset_axis(alignment) end + +--- @return TileSet.TileOffsetAxis +function TileSet:get_tile_offset_axis() end + +--- @param size Vector2i +function TileSet:set_tile_size(size) end + +--- @return Vector2i +function TileSet:get_tile_size() end + +--- @param uv_clipping bool +function TileSet:set_uv_clipping(uv_clipping) end + +--- @return bool +function TileSet:is_uv_clipping() end + +--- @return int +function TileSet:get_occlusion_layers_count() end + +--- @param to_position int? Default: -1 +function TileSet:add_occlusion_layer(to_position) end + +--- @param layer_index int +--- @param to_position int +function TileSet:move_occlusion_layer(layer_index, to_position) end + +--- @param layer_index int +function TileSet:remove_occlusion_layer(layer_index) end + +--- @param layer_index int +--- @param light_mask int +function TileSet:set_occlusion_layer_light_mask(layer_index, light_mask) end + +--- @param layer_index int +--- @return int +function TileSet:get_occlusion_layer_light_mask(layer_index) end + +--- @param layer_index int +--- @param sdf_collision bool +function TileSet:set_occlusion_layer_sdf_collision(layer_index, sdf_collision) end + +--- @param layer_index int +--- @return bool +function TileSet:get_occlusion_layer_sdf_collision(layer_index) end + +--- @return int +function TileSet:get_physics_layers_count() end + +--- @param to_position int? Default: -1 +function TileSet:add_physics_layer(to_position) end + +--- @param layer_index int +--- @param to_position int +function TileSet:move_physics_layer(layer_index, to_position) end + +--- @param layer_index int +function TileSet:remove_physics_layer(layer_index) end + +--- @param layer_index int +--- @param layer int +function TileSet:set_physics_layer_collision_layer(layer_index, layer) end + +--- @param layer_index int +--- @return int +function TileSet:get_physics_layer_collision_layer(layer_index) end + +--- @param layer_index int +--- @param mask int +function TileSet:set_physics_layer_collision_mask(layer_index, mask) end + +--- @param layer_index int +--- @return int +function TileSet:get_physics_layer_collision_mask(layer_index) end + +--- @param layer_index int +--- @param priority float +function TileSet:set_physics_layer_collision_priority(layer_index, priority) end + +--- @param layer_index int +--- @return float +function TileSet:get_physics_layer_collision_priority(layer_index) end + +--- @param layer_index int +--- @param physics_material PhysicsMaterial +function TileSet:set_physics_layer_physics_material(layer_index, physics_material) end + +--- @param layer_index int +--- @return PhysicsMaterial +function TileSet:get_physics_layer_physics_material(layer_index) end + +--- @return int +function TileSet:get_terrain_sets_count() end + +--- @param to_position int? Default: -1 +function TileSet:add_terrain_set(to_position) end + +--- @param terrain_set int +--- @param to_position int +function TileSet:move_terrain_set(terrain_set, to_position) end + +--- @param terrain_set int +function TileSet:remove_terrain_set(terrain_set) end + +--- @param terrain_set int +--- @param mode TileSet.TerrainMode +function TileSet:set_terrain_set_mode(terrain_set, mode) end + +--- @param terrain_set int +--- @return TileSet.TerrainMode +function TileSet:get_terrain_set_mode(terrain_set) end + +--- @param terrain_set int +--- @return int +function TileSet:get_terrains_count(terrain_set) end + +--- @param terrain_set int +--- @param to_position int? Default: -1 +function TileSet:add_terrain(terrain_set, to_position) end + +--- @param terrain_set int +--- @param terrain_index int +--- @param to_position int +function TileSet:move_terrain(terrain_set, terrain_index, to_position) end + +--- @param terrain_set int +--- @param terrain_index int +function TileSet:remove_terrain(terrain_set, terrain_index) end + +--- @param terrain_set int +--- @param terrain_index int +--- @param name String +function TileSet:set_terrain_name(terrain_set, terrain_index, name) end + +--- @param terrain_set int +--- @param terrain_index int +--- @return String +function TileSet:get_terrain_name(terrain_set, terrain_index) end + +--- @param terrain_set int +--- @param terrain_index int +--- @param color Color +function TileSet:set_terrain_color(terrain_set, terrain_index, color) end + +--- @param terrain_set int +--- @param terrain_index int +--- @return Color +function TileSet:get_terrain_color(terrain_set, terrain_index) end + +--- @return int +function TileSet:get_navigation_layers_count() end + +--- @param to_position int? Default: -1 +function TileSet:add_navigation_layer(to_position) end + +--- @param layer_index int +--- @param to_position int +function TileSet:move_navigation_layer(layer_index, to_position) end + +--- @param layer_index int +function TileSet:remove_navigation_layer(layer_index) end + +--- @param layer_index int +--- @param layers int +function TileSet:set_navigation_layer_layers(layer_index, layers) end + +--- @param layer_index int +--- @return int +function TileSet:get_navigation_layer_layers(layer_index) end + +--- @param layer_index int +--- @param layer_number int +--- @param value bool +function TileSet:set_navigation_layer_layer_value(layer_index, layer_number, value) end + +--- @param layer_index int +--- @param layer_number int +--- @return bool +function TileSet:get_navigation_layer_layer_value(layer_index, layer_number) end + +--- @return int +function TileSet:get_custom_data_layers_count() end + +--- @param to_position int? Default: -1 +function TileSet:add_custom_data_layer(to_position) end + +--- @param layer_index int +--- @param to_position int +function TileSet:move_custom_data_layer(layer_index, to_position) end + +--- @param layer_index int +function TileSet:remove_custom_data_layer(layer_index) end + +--- @param layer_name String +--- @return int +function TileSet:get_custom_data_layer_by_name(layer_name) end + +--- @param layer_index int +--- @param layer_name String +function TileSet:set_custom_data_layer_name(layer_index, layer_name) end + +--- @param layer_name String +--- @return bool +function TileSet:has_custom_data_layer_by_name(layer_name) end + +--- @param layer_index int +--- @return String +function TileSet:get_custom_data_layer_name(layer_index) end + +--- @param layer_index int +--- @param layer_type Variant.Type +function TileSet:set_custom_data_layer_type(layer_index, layer_type) end + +--- @param layer_index int +--- @return Variant.Type +function TileSet:get_custom_data_layer_type(layer_index) end + +--- @param source_from int +--- @param source_to int +function TileSet:set_source_level_tile_proxy(source_from, source_to) end + +--- @param source_from int +--- @return int +function TileSet:get_source_level_tile_proxy(source_from) end + +--- @param source_from int +--- @return bool +function TileSet:has_source_level_tile_proxy(source_from) end + +--- @param source_from int +function TileSet:remove_source_level_tile_proxy(source_from) end + +--- @param p_source_from int +--- @param coords_from Vector2i +--- @param source_to int +--- @param coords_to Vector2i +function TileSet:set_coords_level_tile_proxy(p_source_from, coords_from, source_to, coords_to) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @return Array +function TileSet:get_coords_level_tile_proxy(source_from, coords_from) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @return bool +function TileSet:has_coords_level_tile_proxy(source_from, coords_from) end + +--- @param source_from int +--- @param coords_from Vector2i +function TileSet:remove_coords_level_tile_proxy(source_from, coords_from) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @param alternative_from int +--- @param source_to int +--- @param coords_to Vector2i +--- @param alternative_to int +function TileSet:set_alternative_level_tile_proxy(source_from, coords_from, alternative_from, source_to, coords_to, alternative_to) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @param alternative_from int +--- @return Array +function TileSet:get_alternative_level_tile_proxy(source_from, coords_from, alternative_from) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @param alternative_from int +--- @return bool +function TileSet:has_alternative_level_tile_proxy(source_from, coords_from, alternative_from) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @param alternative_from int +function TileSet:remove_alternative_level_tile_proxy(source_from, coords_from, alternative_from) end + +--- @param source_from int +--- @param coords_from Vector2i +--- @param alternative_from int +--- @return Array +function TileSet:map_tile_proxy(source_from, coords_from, alternative_from) end + +function TileSet:cleanup_invalid_tile_proxies() end + +function TileSet:clear_tile_proxies() end + +--- @param pattern TileMapPattern +--- @param index int? Default: -1 +--- @return int +function TileSet:add_pattern(pattern, index) end + +--- @param index int? Default: -1 +--- @return TileMapPattern +function TileSet:get_pattern(index) end + +--- @param index int +function TileSet:remove_pattern(index) end + +--- @return int +function TileSet:get_patterns_count() end + + +----------------------------------------------------------- +-- TileSetAtlasSource +----------------------------------------------------------- + +--- @class TileSetAtlasSource: TileSetSource, { [string]: any } +--- @field texture Texture2D +--- @field margins Vector2i +--- @field separation Vector2i +--- @field texture_region_size Vector2i +--- @field use_texture_padding bool +TileSetAtlasSource = {} + +--- @return TileSetAtlasSource +function TileSetAtlasSource:new() end + +TileSetAtlasSource.TRANSFORM_FLIP_H = 4096 +TileSetAtlasSource.TRANSFORM_FLIP_V = 8192 +TileSetAtlasSource.TRANSFORM_TRANSPOSE = 16384 + +--- @alias TileSetAtlasSource.TileAnimationMode `TileSetAtlasSource.TILE_ANIMATION_MODE_DEFAULT` | `TileSetAtlasSource.TILE_ANIMATION_MODE_RANDOM_START_TIMES` | `TileSetAtlasSource.TILE_ANIMATION_MODE_MAX` +TileSetAtlasSource.TILE_ANIMATION_MODE_DEFAULT = 0 +TileSetAtlasSource.TILE_ANIMATION_MODE_RANDOM_START_TIMES = 1 +TileSetAtlasSource.TILE_ANIMATION_MODE_MAX = 2 + +--- @param texture Texture2D +function TileSetAtlasSource:set_texture(texture) end + +--- @return Texture2D +function TileSetAtlasSource:get_texture() end + +--- @param margins Vector2i +function TileSetAtlasSource:set_margins(margins) end + +--- @return Vector2i +function TileSetAtlasSource:get_margins() end + +--- @param separation Vector2i +function TileSetAtlasSource:set_separation(separation) end + +--- @return Vector2i +function TileSetAtlasSource:get_separation() end + +--- @param texture_region_size Vector2i +function TileSetAtlasSource:set_texture_region_size(texture_region_size) end + +--- @return Vector2i +function TileSetAtlasSource:get_texture_region_size() end + +--- @param use_texture_padding bool +function TileSetAtlasSource:set_use_texture_padding(use_texture_padding) end + +--- @return bool +function TileSetAtlasSource:get_use_texture_padding() end + +--- @param atlas_coords Vector2i +--- @param size Vector2i? Default: Vector2i(1, 1) +function TileSetAtlasSource:create_tile(atlas_coords, size) end + +--- @param atlas_coords Vector2i +function TileSetAtlasSource:remove_tile(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param new_atlas_coords Vector2i? Default: Vector2i(-1, -1) +--- @param new_size Vector2i? Default: Vector2i(-1, -1) +function TileSetAtlasSource:move_tile_in_atlas(atlas_coords, new_atlas_coords, new_size) end + +--- @param atlas_coords Vector2i +--- @return Vector2i +function TileSetAtlasSource:get_tile_size_in_atlas(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param size Vector2i +--- @param animation_columns int +--- @param animation_separation Vector2i +--- @param frames_count int +--- @param ignored_tile Vector2i? Default: Vector2i(-1, -1) +--- @return bool +function TileSetAtlasSource:has_room_for_tile(atlas_coords, size, animation_columns, animation_separation, frames_count, ignored_tile) end + +--- @param texture Texture2D +--- @param margins Vector2i +--- @param separation Vector2i +--- @param texture_region_size Vector2i +--- @return PackedVector2Array +function TileSetAtlasSource:get_tiles_to_be_removed_on_change(texture, margins, separation, texture_region_size) end + +--- @param atlas_coords Vector2i +--- @return Vector2i +function TileSetAtlasSource:get_tile_at_coords(atlas_coords) end + +--- @return bool +function TileSetAtlasSource:has_tiles_outside_texture() end + +function TileSetAtlasSource:clear_tiles_outside_texture() end + +--- @param atlas_coords Vector2i +--- @param frame_columns int +function TileSetAtlasSource:set_tile_animation_columns(atlas_coords, frame_columns) end + +--- @param atlas_coords Vector2i +--- @return int +function TileSetAtlasSource:get_tile_animation_columns(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param separation Vector2i +function TileSetAtlasSource:set_tile_animation_separation(atlas_coords, separation) end + +--- @param atlas_coords Vector2i +--- @return Vector2i +function TileSetAtlasSource:get_tile_animation_separation(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param speed float +function TileSetAtlasSource:set_tile_animation_speed(atlas_coords, speed) end + +--- @param atlas_coords Vector2i +--- @return float +function TileSetAtlasSource:get_tile_animation_speed(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param mode TileSetAtlasSource.TileAnimationMode +function TileSetAtlasSource:set_tile_animation_mode(atlas_coords, mode) end + +--- @param atlas_coords Vector2i +--- @return TileSetAtlasSource.TileAnimationMode +function TileSetAtlasSource:get_tile_animation_mode(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param frames_count int +function TileSetAtlasSource:set_tile_animation_frames_count(atlas_coords, frames_count) end + +--- @param atlas_coords Vector2i +--- @return int +function TileSetAtlasSource:get_tile_animation_frames_count(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param frame_index int +--- @param duration float +function TileSetAtlasSource:set_tile_animation_frame_duration(atlas_coords, frame_index, duration) end + +--- @param atlas_coords Vector2i +--- @param frame_index int +--- @return float +function TileSetAtlasSource:get_tile_animation_frame_duration(atlas_coords, frame_index) end + +--- @param atlas_coords Vector2i +--- @return float +function TileSetAtlasSource:get_tile_animation_total_duration(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param alternative_id_override int? Default: -1 +--- @return int +function TileSetAtlasSource:create_alternative_tile(atlas_coords, alternative_id_override) end + +--- @param atlas_coords Vector2i +--- @param alternative_tile int +function TileSetAtlasSource:remove_alternative_tile(atlas_coords, alternative_tile) end + +--- @param atlas_coords Vector2i +--- @param alternative_tile int +--- @param new_id int +function TileSetAtlasSource:set_alternative_tile_id(atlas_coords, alternative_tile, new_id) end + +--- @param atlas_coords Vector2i +--- @return int +function TileSetAtlasSource:get_next_alternative_tile_id(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param alternative_tile int +--- @return TileData +function TileSetAtlasSource:get_tile_data(atlas_coords, alternative_tile) end + +--- @return Vector2i +function TileSetAtlasSource:get_atlas_grid_size() end + +--- @param atlas_coords Vector2i +--- @param frame int? Default: 0 +--- @return Rect2i +function TileSetAtlasSource:get_tile_texture_region(atlas_coords, frame) end + +--- @return Texture2D +function TileSetAtlasSource:get_runtime_texture() end + +--- @param atlas_coords Vector2i +--- @param frame int +--- @return Rect2i +function TileSetAtlasSource:get_runtime_tile_texture_region(atlas_coords, frame) end + + +----------------------------------------------------------- +-- TileSetScenesCollectionSource +----------------------------------------------------------- + +--- @class TileSetScenesCollectionSource: TileSetSource, { [string]: any } +TileSetScenesCollectionSource = {} + +--- @return TileSetScenesCollectionSource +function TileSetScenesCollectionSource:new() end + +--- @return int +function TileSetScenesCollectionSource:get_scene_tiles_count() end + +--- @param index int +--- @return int +function TileSetScenesCollectionSource:get_scene_tile_id(index) end + +--- @param id int +--- @return bool +function TileSetScenesCollectionSource:has_scene_tile_id(id) end + +--- @param packed_scene PackedScene +--- @param id_override int? Default: -1 +--- @return int +function TileSetScenesCollectionSource:create_scene_tile(packed_scene, id_override) end + +--- @param id int +--- @param new_id int +function TileSetScenesCollectionSource:set_scene_tile_id(id, new_id) end + +--- @param id int +--- @param packed_scene PackedScene +function TileSetScenesCollectionSource:set_scene_tile_scene(id, packed_scene) end + +--- @param id int +--- @return PackedScene +function TileSetScenesCollectionSource:get_scene_tile_scene(id) end + +--- @param id int +--- @param display_placeholder bool +function TileSetScenesCollectionSource:set_scene_tile_display_placeholder(id, display_placeholder) end + +--- @param id int +--- @return bool +function TileSetScenesCollectionSource:get_scene_tile_display_placeholder(id) end + +--- @param id int +function TileSetScenesCollectionSource:remove_scene_tile(id) end + +--- @return int +function TileSetScenesCollectionSource:get_next_scene_tile_id() end + + +----------------------------------------------------------- +-- TileSetSource +----------------------------------------------------------- + +--- @class TileSetSource: Resource, { [string]: any } +TileSetSource = {} + +--- @return int +function TileSetSource:get_tiles_count() end + +--- @param index int +--- @return Vector2i +function TileSetSource:get_tile_id(index) end + +--- @param atlas_coords Vector2i +--- @return bool +function TileSetSource:has_tile(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @return int +function TileSetSource:get_alternative_tiles_count(atlas_coords) end + +--- @param atlas_coords Vector2i +--- @param index int +--- @return int +function TileSetSource:get_alternative_tile_id(atlas_coords, index) end + +--- @param atlas_coords Vector2i +--- @param alternative_tile int +--- @return bool +function TileSetSource:has_alternative_tile(atlas_coords, alternative_tile) end + + +----------------------------------------------------------- +-- Time +----------------------------------------------------------- + +--- @class Time: Object, { [string]: any } +Time = {} + +--- @alias Time.Month `Time.MONTH_JANUARY` | `Time.MONTH_FEBRUARY` | `Time.MONTH_MARCH` | `Time.MONTH_APRIL` | `Time.MONTH_MAY` | `Time.MONTH_JUNE` | `Time.MONTH_JULY` | `Time.MONTH_AUGUST` | `Time.MONTH_SEPTEMBER` | `Time.MONTH_OCTOBER` | `Time.MONTH_NOVEMBER` | `Time.MONTH_DECEMBER` +Time.MONTH_JANUARY = 1 +Time.MONTH_FEBRUARY = 2 +Time.MONTH_MARCH = 3 +Time.MONTH_APRIL = 4 +Time.MONTH_MAY = 5 +Time.MONTH_JUNE = 6 +Time.MONTH_JULY = 7 +Time.MONTH_AUGUST = 8 +Time.MONTH_SEPTEMBER = 9 +Time.MONTH_OCTOBER = 10 +Time.MONTH_NOVEMBER = 11 +Time.MONTH_DECEMBER = 12 + +--- @alias Time.Weekday `Time.WEEKDAY_SUNDAY` | `Time.WEEKDAY_MONDAY` | `Time.WEEKDAY_TUESDAY` | `Time.WEEKDAY_WEDNESDAY` | `Time.WEEKDAY_THURSDAY` | `Time.WEEKDAY_FRIDAY` | `Time.WEEKDAY_SATURDAY` +Time.WEEKDAY_SUNDAY = 0 +Time.WEEKDAY_MONDAY = 1 +Time.WEEKDAY_TUESDAY = 2 +Time.WEEKDAY_WEDNESDAY = 3 +Time.WEEKDAY_THURSDAY = 4 +Time.WEEKDAY_FRIDAY = 5 +Time.WEEKDAY_SATURDAY = 6 + +--- @param unix_time_val int +--- @return Dictionary +function Time:get_datetime_dict_from_unix_time(unix_time_val) end + +--- @param unix_time_val int +--- @return Dictionary +function Time:get_date_dict_from_unix_time(unix_time_val) end + +--- @param unix_time_val int +--- @return Dictionary +function Time:get_time_dict_from_unix_time(unix_time_val) end + +--- @param unix_time_val int +--- @param use_space bool? Default: false +--- @return String +function Time:get_datetime_string_from_unix_time(unix_time_val, use_space) end + +--- @param unix_time_val int +--- @return String +function Time:get_date_string_from_unix_time(unix_time_val) end + +--- @param unix_time_val int +--- @return String +function Time:get_time_string_from_unix_time(unix_time_val) end + +--- @param datetime String +--- @param weekday bool +--- @return Dictionary +function Time:get_datetime_dict_from_datetime_string(datetime, weekday) end + +--- @param datetime Dictionary +--- @param use_space bool +--- @return String +function Time:get_datetime_string_from_datetime_dict(datetime, use_space) end + +--- @param datetime Dictionary +--- @return int +function Time:get_unix_time_from_datetime_dict(datetime) end + +--- @param datetime String +--- @return int +function Time:get_unix_time_from_datetime_string(datetime) end + +--- @param offset_minutes int +--- @return String +function Time:get_offset_string_from_offset_minutes(offset_minutes) end + +--- @param utc bool? Default: false +--- @return Dictionary +function Time:get_datetime_dict_from_system(utc) end + +--- @param utc bool? Default: false +--- @return Dictionary +function Time:get_date_dict_from_system(utc) end + +--- @param utc bool? Default: false +--- @return Dictionary +function Time:get_time_dict_from_system(utc) end + +--- @param utc bool? Default: false +--- @param use_space bool? Default: false +--- @return String +function Time:get_datetime_string_from_system(utc, use_space) end + +--- @param utc bool? Default: false +--- @return String +function Time:get_date_string_from_system(utc) end + +--- @param utc bool? Default: false +--- @return String +function Time:get_time_string_from_system(utc) end + +--- @return Dictionary +function Time:get_time_zone_from_system() end + +--- @return float +function Time:get_unix_time_from_system() end + +--- @return int +function Time:get_ticks_msec() end + +--- @return int +function Time:get_ticks_usec() end + + +----------------------------------------------------------- +-- Timer +----------------------------------------------------------- + +--- @class Timer: Node, { [string]: any } +--- @field process_callback int +--- @field wait_time float +--- @field one_shot bool +--- @field autostart bool +--- @field paused bool +--- @field ignore_time_scale bool +--- @field time_left float +Timer = {} + +--- @return Timer +function Timer:new() end + +--- @alias Timer.TimerProcessCallback `Timer.TIMER_PROCESS_PHYSICS` | `Timer.TIMER_PROCESS_IDLE` +Timer.TIMER_PROCESS_PHYSICS = 0 +Timer.TIMER_PROCESS_IDLE = 1 + +Timer.timeout = Signal() + +--- @param time_sec float +function Timer:set_wait_time(time_sec) end + +--- @return float +function Timer:get_wait_time() end + +--- @param enable bool +function Timer:set_one_shot(enable) end + +--- @return bool +function Timer:is_one_shot() end + +--- @param enable bool +function Timer:set_autostart(enable) end + +--- @return bool +function Timer:has_autostart() end + +--- @param time_sec float? Default: -1 +function Timer:start(time_sec) end + +function Timer:stop() end + +--- @param paused bool +function Timer:set_paused(paused) end + +--- @return bool +function Timer:is_paused() end + +--- @param ignore bool +function Timer:set_ignore_time_scale(ignore) end + +--- @return bool +function Timer:is_ignoring_time_scale() end + +--- @return bool +function Timer:is_stopped() end + +--- @return float +function Timer:get_time_left() end + +--- @param callback Timer.TimerProcessCallback +function Timer:set_timer_process_callback(callback) end + +--- @return Timer.TimerProcessCallback +function Timer:get_timer_process_callback() end + + +----------------------------------------------------------- +-- TorusMesh +----------------------------------------------------------- + +--- @class TorusMesh: PrimitiveMesh, { [string]: any } +--- @field inner_radius float +--- @field outer_radius float +--- @field rings int +--- @field ring_segments int +TorusMesh = {} + +--- @return TorusMesh +function TorusMesh:new() end + +--- @param radius float +function TorusMesh:set_inner_radius(radius) end + +--- @return float +function TorusMesh:get_inner_radius() end + +--- @param radius float +function TorusMesh:set_outer_radius(radius) end + +--- @return float +function TorusMesh:get_outer_radius() end + +--- @param rings int +function TorusMesh:set_rings(rings) end + +--- @return int +function TorusMesh:get_rings() end + +--- @param rings int +function TorusMesh:set_ring_segments(rings) end + +--- @return int +function TorusMesh:get_ring_segments() end + + +----------------------------------------------------------- +-- TouchScreenButton +----------------------------------------------------------- + +--- @class TouchScreenButton: Node2D, { [string]: any } +--- @field texture_normal Texture2D +--- @field texture_pressed Texture2D +--- @field bitmask BitMap +--- @field shape Shape2D +--- @field shape_centered bool +--- @field shape_visible bool +--- @field passby_press bool +--- @field action StringName +--- @field visibility_mode int +TouchScreenButton = {} + +--- @return TouchScreenButton +function TouchScreenButton:new() end + +--- @alias TouchScreenButton.VisibilityMode `TouchScreenButton.VISIBILITY_ALWAYS` | `TouchScreenButton.VISIBILITY_TOUCHSCREEN_ONLY` +TouchScreenButton.VISIBILITY_ALWAYS = 0 +TouchScreenButton.VISIBILITY_TOUCHSCREEN_ONLY = 1 + +TouchScreenButton.pressed = Signal() +TouchScreenButton.released = Signal() + +--- @param texture Texture2D +function TouchScreenButton:set_texture_normal(texture) end + +--- @return Texture2D +function TouchScreenButton:get_texture_normal() end + +--- @param texture Texture2D +function TouchScreenButton:set_texture_pressed(texture) end + +--- @return Texture2D +function TouchScreenButton:get_texture_pressed() end + +--- @param bitmask BitMap +function TouchScreenButton:set_bitmask(bitmask) end + +--- @return BitMap +function TouchScreenButton:get_bitmask() end + +--- @param shape Shape2D +function TouchScreenButton:set_shape(shape) end + +--- @return Shape2D +function TouchScreenButton:get_shape() end + +--- @param bool bool +function TouchScreenButton:set_shape_centered(bool) end + +--- @return bool +function TouchScreenButton:is_shape_centered() end + +--- @param bool bool +function TouchScreenButton:set_shape_visible(bool) end + +--- @return bool +function TouchScreenButton:is_shape_visible() end + +--- @param action String +function TouchScreenButton:set_action(action) end + +--- @return String +function TouchScreenButton:get_action() end + +--- @param mode TouchScreenButton.VisibilityMode +function TouchScreenButton:set_visibility_mode(mode) end + +--- @return TouchScreenButton.VisibilityMode +function TouchScreenButton:get_visibility_mode() end + +--- @param enabled bool +function TouchScreenButton:set_passby_press(enabled) end + +--- @return bool +function TouchScreenButton:is_passby_press_enabled() end + +--- @return bool +function TouchScreenButton:is_pressed() end + + +----------------------------------------------------------- +-- Translation +----------------------------------------------------------- + +--- @class Translation: Resource, { [string]: any } +--- @field messages Dictionary +--- @field locale String +Translation = {} + +--- @return Translation +function Translation:new() end + +--- @param src_message StringName +--- @param src_plural_message StringName +--- @param n int +--- @param context StringName +--- @return StringName +function Translation:_get_plural_message(src_message, src_plural_message, n, context) end + +--- @param src_message StringName +--- @param context StringName +--- @return StringName +function Translation:_get_message(src_message, context) end + +--- @param locale String +function Translation:set_locale(locale) end + +--- @return String +function Translation:get_locale() end + +--- @param src_message StringName +--- @param xlated_message StringName +--- @param context StringName? Default: &"" +function Translation:add_message(src_message, xlated_message, context) end + +--- @param src_message StringName +--- @param xlated_messages PackedStringArray +--- @param context StringName? Default: &"" +function Translation:add_plural_message(src_message, xlated_messages, context) end + +--- @param src_message StringName +--- @param context StringName? Default: &"" +--- @return StringName +function Translation:get_message(src_message, context) end + +--- @param src_message StringName +--- @param src_plural_message StringName +--- @param n int +--- @param context StringName? Default: &"" +--- @return StringName +function Translation:get_plural_message(src_message, src_plural_message, n, context) end + +--- @param src_message StringName +--- @param context StringName? Default: &"" +function Translation:erase_message(src_message, context) end + +--- @return PackedStringArray +function Translation:get_message_list() end + +--- @return PackedStringArray +function Translation:get_translated_message_list() end + +--- @return int +function Translation:get_message_count() end + + +----------------------------------------------------------- +-- TranslationDomain +----------------------------------------------------------- + +--- @class TranslationDomain: RefCounted, { [string]: any } +--- @field enabled bool +--- @field pseudolocalization_enabled bool +--- @field pseudolocalization_accents_enabled bool +--- @field pseudolocalization_double_vowels_enabled bool +--- @field pseudolocalization_fake_bidi_enabled bool +--- @field pseudolocalization_override_enabled bool +--- @field pseudolocalization_skip_placeholders_enabled bool +--- @field pseudolocalization_expansion_ratio float +--- @field pseudolocalization_prefix String +--- @field pseudolocalization_suffix String +TranslationDomain = {} + +--- @return TranslationDomain +function TranslationDomain:new() end + +--- @param locale String +--- @return Translation +function TranslationDomain:get_translation_object(locale) end + +--- @param translation Translation +function TranslationDomain:add_translation(translation) end + +--- @param translation Translation +function TranslationDomain:remove_translation(translation) end + +function TranslationDomain:clear() end + +--- @param message StringName +--- @param context StringName? Default: &"" +--- @return StringName +function TranslationDomain:translate(message, context) end + +--- @param message StringName +--- @param message_plural StringName +--- @param n int +--- @param context StringName? Default: &"" +--- @return StringName +function TranslationDomain:translate_plural(message, message_plural, n, context) end + +--- @return String +function TranslationDomain:get_locale_override() end + +--- @param locale String +function TranslationDomain:set_locale_override(locale) end + +--- @return bool +function TranslationDomain:is_enabled() end + +--- @param enabled bool +function TranslationDomain:set_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_accents_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_accents_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_double_vowels_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_double_vowels_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_fake_bidi_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_fake_bidi_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_override_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_override_enabled(enabled) end + +--- @return bool +function TranslationDomain:is_pseudolocalization_skip_placeholders_enabled() end + +--- @param enabled bool +function TranslationDomain:set_pseudolocalization_skip_placeholders_enabled(enabled) end + +--- @return float +function TranslationDomain:get_pseudolocalization_expansion_ratio() end + +--- @param ratio float +function TranslationDomain:set_pseudolocalization_expansion_ratio(ratio) end + +--- @return String +function TranslationDomain:get_pseudolocalization_prefix() end + +--- @param prefix String +function TranslationDomain:set_pseudolocalization_prefix(prefix) end + +--- @return String +function TranslationDomain:get_pseudolocalization_suffix() end + +--- @param suffix String +function TranslationDomain:set_pseudolocalization_suffix(suffix) end + +--- @param message StringName +--- @return StringName +function TranslationDomain:pseudolocalize(message) end + + +----------------------------------------------------------- +-- TranslationServer +----------------------------------------------------------- + +--- @class TranslationServer: Object, { [string]: any } +--- @field pseudolocalization_enabled bool +TranslationServer = {} + +--- @param locale String +function TranslationServer:set_locale(locale) end + +--- @return String +function TranslationServer:get_locale() end + +--- @return String +function TranslationServer:get_tool_locale() end + +--- @param locale_a String +--- @param locale_b String +--- @return int +function TranslationServer:compare_locales(locale_a, locale_b) end + +--- @param locale String +--- @param add_defaults bool? Default: false +--- @return String +function TranslationServer:standardize_locale(locale, add_defaults) end + +--- @return PackedStringArray +function TranslationServer:get_all_languages() end + +--- @param language String +--- @return String +function TranslationServer:get_language_name(language) end + +--- @return PackedStringArray +function TranslationServer:get_all_scripts() end + +--- @param script String +--- @return String +function TranslationServer:get_script_name(script) end + +--- @return PackedStringArray +function TranslationServer:get_all_countries() end + +--- @param country String +--- @return String +function TranslationServer:get_country_name(country) end + +--- @param locale String +--- @return String +function TranslationServer:get_locale_name(locale) end + +--- @param message StringName +--- @param context StringName? Default: &"" +--- @return StringName +function TranslationServer:translate(message, context) end + +--- @param message StringName +--- @param plural_message StringName +--- @param n int +--- @param context StringName? Default: &"" +--- @return StringName +function TranslationServer:translate_plural(message, plural_message, n, context) end + +--- @param translation Translation +function TranslationServer:add_translation(translation) end + +--- @param translation Translation +function TranslationServer:remove_translation(translation) end + +--- @param locale String +--- @return Translation +function TranslationServer:get_translation_object(locale) end + +--- @param domain StringName +--- @return bool +function TranslationServer:has_domain(domain) end + +--- @param domain StringName +--- @return TranslationDomain +function TranslationServer:get_or_add_domain(domain) end + +--- @param domain StringName +function TranslationServer:remove_domain(domain) end + +function TranslationServer:clear() end + +--- @return PackedStringArray +function TranslationServer:get_loaded_locales() end + +--- @return bool +function TranslationServer:is_pseudolocalization_enabled() end + +--- @param enabled bool +function TranslationServer:set_pseudolocalization_enabled(enabled) end + +function TranslationServer:reload_pseudolocalization() end + +--- @param message StringName +--- @return StringName +function TranslationServer:pseudolocalize(message) end + + +----------------------------------------------------------- +-- Tree +----------------------------------------------------------- + +--- @class Tree: Control, { [string]: any } +--- @field columns int +--- @field column_titles_visible bool +--- @field allow_reselect bool +--- @field allow_rmb_select bool +--- @field allow_search bool +--- @field hide_folding bool +--- @field enable_recursive_folding bool +--- @field hide_root bool +--- @field drop_mode_flags int +--- @field select_mode int +--- @field scroll_horizontal_enabled bool +--- @field scroll_vertical_enabled bool +--- @field auto_tooltip bool +Tree = {} + +--- @return Tree +function Tree:new() end + +--- @alias Tree.SelectMode `Tree.SELECT_SINGLE` | `Tree.SELECT_ROW` | `Tree.SELECT_MULTI` +Tree.SELECT_SINGLE = 0 +Tree.SELECT_ROW = 1 +Tree.SELECT_MULTI = 2 + +--- @alias Tree.DropModeFlags `Tree.DROP_MODE_DISABLED` | `Tree.DROP_MODE_ON_ITEM` | `Tree.DROP_MODE_INBETWEEN` +Tree.DROP_MODE_DISABLED = 0 +Tree.DROP_MODE_ON_ITEM = 1 +Tree.DROP_MODE_INBETWEEN = 2 + +Tree.item_selected = Signal() +Tree.cell_selected = Signal() +Tree.multi_selected = Signal() +Tree.item_mouse_selected = Signal() +Tree.empty_clicked = Signal() +Tree.item_edited = Signal() +Tree.custom_item_clicked = Signal() +Tree.item_icon_double_clicked = Signal() +Tree.item_collapsed = Signal() +Tree.check_propagated_to_item = Signal() +Tree.button_clicked = Signal() +Tree.custom_popup_edited = Signal() +Tree.item_activated = Signal() +Tree.column_title_clicked = Signal() +Tree.nothing_selected = Signal() + +function Tree:clear() end + +--- @param parent TreeItem? Default: null +--- @param index int? Default: -1 +--- @return TreeItem +function Tree:create_item(parent, index) end + +--- @return TreeItem +function Tree:get_root() end + +--- @param column int +--- @param min_width int +function Tree:set_column_custom_minimum_width(column, min_width) end + +--- @param column int +--- @param expand bool +function Tree:set_column_expand(column, expand) end + +--- @param column int +--- @param ratio int +function Tree:set_column_expand_ratio(column, ratio) end + +--- @param column int +--- @param enable bool +function Tree:set_column_clip_content(column, enable) end + +--- @param column int +--- @return bool +function Tree:is_column_expanding(column) end + +--- @param column int +--- @return bool +function Tree:is_column_clipping_content(column) end + +--- @param column int +--- @return int +function Tree:get_column_expand_ratio(column) end + +--- @param column int +--- @return int +function Tree:get_column_width(column) end + +--- @param enable bool +function Tree:set_hide_root(enable) end + +--- @return bool +function Tree:is_root_hidden() end + +--- @param from TreeItem +--- @return TreeItem +function Tree:get_next_selected(from) end + +--- @return TreeItem +function Tree:get_selected() end + +--- @param item TreeItem +--- @param column int +function Tree:set_selected(item, column) end + +--- @return int +function Tree:get_selected_column() end + +--- @return int +function Tree:get_pressed_button() end + +--- @param mode Tree.SelectMode +function Tree:set_select_mode(mode) end + +--- @return Tree.SelectMode +function Tree:get_select_mode() end + +function Tree:deselect_all() end + +--- @param amount int +function Tree:set_columns(amount) end + +--- @return int +function Tree:get_columns() end + +--- @return TreeItem +function Tree:get_edited() end + +--- @return int +function Tree:get_edited_column() end + +--- @param force_edit bool? Default: false +--- @return bool +function Tree:edit_selected(force_edit) end + +--- @return Rect2 +function Tree:get_custom_popup_rect() end + +--- @param item TreeItem +--- @param column int? Default: -1 +--- @param button_index int? Default: -1 +--- @return Rect2 +function Tree:get_item_area_rect(item, column, button_index) end + +--- @param position Vector2 +--- @return TreeItem +function Tree:get_item_at_position(position) end + +--- @param position Vector2 +--- @return int +function Tree:get_column_at_position(position) end + +--- @param position Vector2 +--- @return int +function Tree:get_drop_section_at_position(position) end + +--- @param position Vector2 +--- @return int +function Tree:get_button_id_at_position(position) end + +function Tree:ensure_cursor_is_visible() end + +--- @param visible bool +function Tree:set_column_titles_visible(visible) end + +--- @return bool +function Tree:are_column_titles_visible() end + +--- @param column int +--- @param title String +function Tree:set_column_title(column, title) end + +--- @param column int +--- @return String +function Tree:get_column_title(column) end + +--- @param column int +--- @param title_alignment HorizontalAlignment +function Tree:set_column_title_alignment(column, title_alignment) end + +--- @param column int +--- @return HorizontalAlignment +function Tree:get_column_title_alignment(column) end + +--- @param column int +--- @param direction Control.TextDirection +function Tree:set_column_title_direction(column, direction) end + +--- @param column int +--- @return Control.TextDirection +function Tree:get_column_title_direction(column) end + +--- @param column int +--- @param language String +function Tree:set_column_title_language(column, language) end + +--- @param column int +--- @return String +function Tree:get_column_title_language(column) end + +--- @return Vector2 +function Tree:get_scroll() end + +--- @param item TreeItem +--- @param center_on_item bool? Default: false +function Tree:scroll_to_item(item, center_on_item) end + +--- @param h_scroll bool +function Tree:set_h_scroll_enabled(h_scroll) end + +--- @return bool +function Tree:is_h_scroll_enabled() end + +--- @param h_scroll bool +function Tree:set_v_scroll_enabled(h_scroll) end + +--- @return bool +function Tree:is_v_scroll_enabled() end + +--- @param hide bool +function Tree:set_hide_folding(hide) end + +--- @return bool +function Tree:is_folding_hidden() end + +--- @param enable bool +function Tree:set_enable_recursive_folding(enable) end + +--- @return bool +function Tree:is_recursive_folding_enabled() end + +--- @param flags int +function Tree:set_drop_mode_flags(flags) end + +--- @return int +function Tree:get_drop_mode_flags() end + +--- @param allow bool +function Tree:set_allow_rmb_select(allow) end + +--- @return bool +function Tree:get_allow_rmb_select() end + +--- @param allow bool +function Tree:set_allow_reselect(allow) end + +--- @return bool +function Tree:get_allow_reselect() end + +--- @param allow bool +function Tree:set_allow_search(allow) end + +--- @return bool +function Tree:get_allow_search() end + +--- @param enable bool +function Tree:set_auto_tooltip(enable) end + +--- @return bool +function Tree:is_auto_tooltip_enabled() end + + +----------------------------------------------------------- +-- TreeItem +----------------------------------------------------------- + +--- @class TreeItem: Object, { [string]: any } +--- @field collapsed bool +--- @field visible bool +--- @field disable_folding bool +--- @field custom_minimum_height int +TreeItem = {} + +--- @alias TreeItem.TreeCellMode `TreeItem.CELL_MODE_STRING` | `TreeItem.CELL_MODE_CHECK` | `TreeItem.CELL_MODE_RANGE` | `TreeItem.CELL_MODE_ICON` | `TreeItem.CELL_MODE_CUSTOM` +TreeItem.CELL_MODE_STRING = 0 +TreeItem.CELL_MODE_CHECK = 1 +TreeItem.CELL_MODE_RANGE = 2 +TreeItem.CELL_MODE_ICON = 3 +TreeItem.CELL_MODE_CUSTOM = 4 + +--- @param column int +--- @param mode TreeItem.TreeCellMode +function TreeItem:set_cell_mode(column, mode) end + +--- @param column int +--- @return TreeItem.TreeCellMode +function TreeItem:get_cell_mode(column) end + +--- @param column int +--- @param mode Node.AutoTranslateMode +function TreeItem:set_auto_translate_mode(column, mode) end + +--- @param column int +--- @return Node.AutoTranslateMode +function TreeItem:get_auto_translate_mode(column) end + +--- @param column int +--- @param multiline bool +function TreeItem:set_edit_multiline(column, multiline) end + +--- @param column int +--- @return bool +function TreeItem:is_edit_multiline(column) end + +--- @param column int +--- @param checked bool +function TreeItem:set_checked(column, checked) end + +--- @param column int +--- @param indeterminate bool +function TreeItem:set_indeterminate(column, indeterminate) end + +--- @param column int +--- @return bool +function TreeItem:is_checked(column) end + +--- @param column int +--- @return bool +function TreeItem:is_indeterminate(column) end + +--- @param column int +--- @param emit_signal bool? Default: true +function TreeItem:propagate_check(column, emit_signal) end + +--- @param column int +--- @param text String +function TreeItem:set_text(column, text) end + +--- @param column int +--- @return String +function TreeItem:get_text(column) end + +--- @param column int +--- @param description String +function TreeItem:set_description(column, description) end + +--- @param column int +--- @return String +function TreeItem:get_description(column) end + +--- @param column int +--- @param direction Control.TextDirection +function TreeItem:set_text_direction(column, direction) end + +--- @param column int +--- @return Control.TextDirection +function TreeItem:get_text_direction(column) end + +--- @param column int +--- @param autowrap_mode TextServer.AutowrapMode +function TreeItem:set_autowrap_mode(column, autowrap_mode) end + +--- @param column int +--- @return TextServer.AutowrapMode +function TreeItem:get_autowrap_mode(column) end + +--- @param column int +--- @param overrun_behavior TextServer.OverrunBehavior +function TreeItem:set_text_overrun_behavior(column, overrun_behavior) end + +--- @param column int +--- @return TextServer.OverrunBehavior +function TreeItem:get_text_overrun_behavior(column) end + +--- @param column int +--- @param parser TextServer.StructuredTextParser +function TreeItem:set_structured_text_bidi_override(column, parser) end + +--- @param column int +--- @return TextServer.StructuredTextParser +function TreeItem:get_structured_text_bidi_override(column) end + +--- @param column int +--- @param args Array +function TreeItem:set_structured_text_bidi_override_options(column, args) end + +--- @param column int +--- @return Array +function TreeItem:get_structured_text_bidi_override_options(column) end + +--- @param column int +--- @param language String +function TreeItem:set_language(column, language) end + +--- @param column int +--- @return String +function TreeItem:get_language(column) end + +--- @param column int +--- @param text String +function TreeItem:set_suffix(column, text) end + +--- @param column int +--- @return String +function TreeItem:get_suffix(column) end + +--- @param column int +--- @param texture Texture2D +function TreeItem:set_icon(column, texture) end + +--- @param column int +--- @return Texture2D +function TreeItem:get_icon(column) end + +--- @param column int +--- @param texture Texture2D +function TreeItem:set_icon_overlay(column, texture) end + +--- @param column int +--- @return Texture2D +function TreeItem:get_icon_overlay(column) end + +--- @param column int +--- @param region Rect2 +function TreeItem:set_icon_region(column, region) end + +--- @param column int +--- @return Rect2 +function TreeItem:get_icon_region(column) end + +--- @param column int +--- @param width int +function TreeItem:set_icon_max_width(column, width) end + +--- @param column int +--- @return int +function TreeItem:get_icon_max_width(column) end + +--- @param column int +--- @param modulate Color +function TreeItem:set_icon_modulate(column, modulate) end + +--- @param column int +--- @return Color +function TreeItem:get_icon_modulate(column) end + +--- @param column int +--- @param value float +function TreeItem:set_range(column, value) end + +--- @param column int +--- @return float +function TreeItem:get_range(column) end + +--- @param column int +--- @param min float +--- @param max float +--- @param step float +--- @param expr bool? Default: false +function TreeItem:set_range_config(column, min, max, step, expr) end + +--- @param column int +--- @return Dictionary +function TreeItem:get_range_config(column) end + +--- @param column int +--- @param meta any +function TreeItem:set_metadata(column, meta) end + +--- @param column int +--- @return any +function TreeItem:get_metadata(column) end + +--- @param column int +--- @param object Object +--- @param callback StringName +function TreeItem:set_custom_draw(column, object, callback) end + +--- @param column int +--- @param callback Callable +function TreeItem:set_custom_draw_callback(column, callback) end + +--- @param column int +--- @return Callable +function TreeItem:get_custom_draw_callback(column) end + +--- @param enable bool +function TreeItem:set_collapsed(enable) end + +--- @return bool +function TreeItem:is_collapsed() end + +--- @param enable bool +function TreeItem:set_collapsed_recursive(enable) end + +--- @param only_visible bool? Default: false +--- @return bool +function TreeItem:is_any_collapsed(only_visible) end + +--- @param enable bool +function TreeItem:set_visible(enable) end + +--- @return bool +function TreeItem:is_visible() end + +--- @return bool +function TreeItem:is_visible_in_tree() end + +function TreeItem:uncollapse_tree() end + +--- @param height int +function TreeItem:set_custom_minimum_height(height) end + +--- @return int +function TreeItem:get_custom_minimum_height() end + +--- @param column int +--- @param selectable bool +function TreeItem:set_selectable(column, selectable) end + +--- @param column int +--- @return bool +function TreeItem:is_selectable(column) end + +--- @param column int +--- @return bool +function TreeItem:is_selected(column) end + +--- @param column int +function TreeItem:select(column) end + +--- @param column int +function TreeItem:deselect(column) end + +--- @param column int +--- @param enabled bool +function TreeItem:set_editable(column, enabled) end + +--- @param column int +--- @return bool +function TreeItem:is_editable(column) end + +--- @param column int +--- @param color Color +function TreeItem:set_custom_color(column, color) end + +--- @param column int +--- @return Color +function TreeItem:get_custom_color(column) end + +--- @param column int +function TreeItem:clear_custom_color(column) end + +--- @param column int +--- @param font Font +function TreeItem:set_custom_font(column, font) end + +--- @param column int +--- @return Font +function TreeItem:get_custom_font(column) end + +--- @param column int +--- @param font_size int +function TreeItem:set_custom_font_size(column, font_size) end + +--- @param column int +--- @return int +function TreeItem:get_custom_font_size(column) end + +--- @param column int +--- @param color Color +--- @param just_outline bool? Default: false +function TreeItem:set_custom_bg_color(column, color, just_outline) end + +--- @param column int +function TreeItem:clear_custom_bg_color(column) end + +--- @param column int +--- @return Color +function TreeItem:get_custom_bg_color(column) end + +--- @param column int +--- @param enable bool +function TreeItem:set_custom_as_button(column, enable) end + +--- @param column int +--- @return bool +function TreeItem:is_custom_set_as_button(column) end + +function TreeItem:clear_buttons() end + +--- @param column int +--- @param button Texture2D +--- @param id int? Default: -1 +--- @param disabled bool? Default: false +--- @param tooltip_text String? Default: "" +--- @param description String? Default: "" +function TreeItem:add_button(column, button, id, disabled, tooltip_text, description) end + +--- @param column int +--- @return int +function TreeItem:get_button_count(column) end + +--- @param column int +--- @param button_index int +--- @return String +function TreeItem:get_button_tooltip_text(column, button_index) end + +--- @param column int +--- @param button_index int +--- @return int +function TreeItem:get_button_id(column, button_index) end + +--- @param column int +--- @param id int +--- @return int +function TreeItem:get_button_by_id(column, id) end + +--- @param column int +--- @param id int +--- @return Color +function TreeItem:get_button_color(column, id) end + +--- @param column int +--- @param button_index int +--- @return Texture2D +function TreeItem:get_button(column, button_index) end + +--- @param column int +--- @param button_index int +--- @param tooltip String +function TreeItem:set_button_tooltip_text(column, button_index, tooltip) end + +--- @param column int +--- @param button_index int +--- @param button Texture2D +function TreeItem:set_button(column, button_index, button) end + +--- @param column int +--- @param button_index int +function TreeItem:erase_button(column, button_index) end + +--- @param column int +--- @param button_index int +--- @param description String +function TreeItem:set_button_description(column, button_index, description) end + +--- @param column int +--- @param button_index int +--- @param disabled bool +function TreeItem:set_button_disabled(column, button_index, disabled) end + +--- @param column int +--- @param button_index int +--- @param color Color +function TreeItem:set_button_color(column, button_index, color) end + +--- @param column int +--- @param button_index int +--- @return bool +function TreeItem:is_button_disabled(column, button_index) end + +--- @param column int +--- @param tooltip String +function TreeItem:set_tooltip_text(column, tooltip) end + +--- @param column int +--- @return String +function TreeItem:get_tooltip_text(column) end + +--- @param column int +--- @param text_alignment HorizontalAlignment +function TreeItem:set_text_alignment(column, text_alignment) end + +--- @param column int +--- @return HorizontalAlignment +function TreeItem:get_text_alignment(column) end + +--- @param column int +--- @param enable bool +function TreeItem:set_expand_right(column, enable) end + +--- @param column int +--- @return bool +function TreeItem:get_expand_right(column) end + +--- @param disable bool +function TreeItem:set_disable_folding(disable) end + +--- @return bool +function TreeItem:is_folding_disabled() end + +--- @param index int? Default: -1 +--- @return TreeItem +function TreeItem:create_child(index) end + +--- @param child TreeItem +function TreeItem:add_child(child) end + +--- @param child TreeItem +function TreeItem:remove_child(child) end + +--- @return Tree +function TreeItem:get_tree() end + +--- @return TreeItem +function TreeItem:get_next() end + +--- @return TreeItem +function TreeItem:get_prev() end + +--- @return TreeItem +function TreeItem:get_parent() end + +--- @return TreeItem +function TreeItem:get_first_child() end + +--- @param wrap bool? Default: false +--- @return TreeItem +function TreeItem:get_next_in_tree(wrap) end + +--- @param wrap bool? Default: false +--- @return TreeItem +function TreeItem:get_prev_in_tree(wrap) end + +--- @param wrap bool? Default: false +--- @return TreeItem +function TreeItem:get_next_visible(wrap) end + +--- @param wrap bool? Default: false +--- @return TreeItem +function TreeItem:get_prev_visible(wrap) end + +--- @param index int +--- @return TreeItem +function TreeItem:get_child(index) end + +--- @return int +function TreeItem:get_child_count() end + +--- @return Array[TreeItem] +function TreeItem:get_children() end + +--- @return int +function TreeItem:get_index() end + +--- @param item TreeItem +function TreeItem:move_before(item) end + +--- @param item TreeItem +function TreeItem:move_after(item) end + +--- @param method StringName +function TreeItem:call_recursive(method, ...) end + + +----------------------------------------------------------- +-- TriangleMesh +----------------------------------------------------------- + +--- @class TriangleMesh: RefCounted, { [string]: any } +TriangleMesh = {} + +--- @return TriangleMesh +function TriangleMesh:new() end + +--- @param faces PackedVector3Array +--- @return bool +function TriangleMesh:create_from_faces(faces) end + +--- @return PackedVector3Array +function TriangleMesh:get_faces() end + +--- @param begin Vector3 +--- @param _end Vector3 +--- @return Dictionary +function TriangleMesh:intersect_segment(begin, _end) end + +--- @param begin Vector3 +--- @param dir Vector3 +--- @return Dictionary +function TriangleMesh:intersect_ray(begin, dir) end + + +----------------------------------------------------------- +-- TubeTrailMesh +----------------------------------------------------------- + +--- @class TubeTrailMesh: PrimitiveMesh, { [string]: any } +--- @field radius float +--- @field radial_steps int +--- @field sections int +--- @field section_length float +--- @field section_rings int +--- @field cap_top bool +--- @field cap_bottom bool +--- @field curve Curve +TubeTrailMesh = {} + +--- @return TubeTrailMesh +function TubeTrailMesh:new() end + +--- @param radius float +function TubeTrailMesh:set_radius(radius) end + +--- @return float +function TubeTrailMesh:get_radius() end + +--- @param radial_steps int +function TubeTrailMesh:set_radial_steps(radial_steps) end + +--- @return int +function TubeTrailMesh:get_radial_steps() end + +--- @param sections int +function TubeTrailMesh:set_sections(sections) end + +--- @return int +function TubeTrailMesh:get_sections() end + +--- @param section_length float +function TubeTrailMesh:set_section_length(section_length) end + +--- @return float +function TubeTrailMesh:get_section_length() end + +--- @param section_rings int +function TubeTrailMesh:set_section_rings(section_rings) end + +--- @return int +function TubeTrailMesh:get_section_rings() end + +--- @param cap_top bool +function TubeTrailMesh:set_cap_top(cap_top) end + +--- @return bool +function TubeTrailMesh:is_cap_top() end + +--- @param cap_bottom bool +function TubeTrailMesh:set_cap_bottom(cap_bottom) end + +--- @return bool +function TubeTrailMesh:is_cap_bottom() end + +--- @param curve Curve +function TubeTrailMesh:set_curve(curve) end + +--- @return Curve +function TubeTrailMesh:get_curve() end + + +----------------------------------------------------------- +-- Tween +----------------------------------------------------------- + +--- @class Tween: RefCounted, { [string]: any } +Tween = {} + +--- @return Tween +function Tween:new() end + +--- @alias Tween.TweenProcessMode `Tween.TWEEN_PROCESS_PHYSICS` | `Tween.TWEEN_PROCESS_IDLE` +Tween.TWEEN_PROCESS_PHYSICS = 0 +Tween.TWEEN_PROCESS_IDLE = 1 + +--- @alias Tween.TweenPauseMode `Tween.TWEEN_PAUSE_BOUND` | `Tween.TWEEN_PAUSE_STOP` | `Tween.TWEEN_PAUSE_PROCESS` +Tween.TWEEN_PAUSE_BOUND = 0 +Tween.TWEEN_PAUSE_STOP = 1 +Tween.TWEEN_PAUSE_PROCESS = 2 + +--- @alias Tween.TransitionType `Tween.TRANS_LINEAR` | `Tween.TRANS_SINE` | `Tween.TRANS_QUINT` | `Tween.TRANS_QUART` | `Tween.TRANS_QUAD` | `Tween.TRANS_EXPO` | `Tween.TRANS_ELASTIC` | `Tween.TRANS_CUBIC` | `Tween.TRANS_CIRC` | `Tween.TRANS_BOUNCE` | `Tween.TRANS_BACK` | `Tween.TRANS_SPRING` +Tween.TRANS_LINEAR = 0 +Tween.TRANS_SINE = 1 +Tween.TRANS_QUINT = 2 +Tween.TRANS_QUART = 3 +Tween.TRANS_QUAD = 4 +Tween.TRANS_EXPO = 5 +Tween.TRANS_ELASTIC = 6 +Tween.TRANS_CUBIC = 7 +Tween.TRANS_CIRC = 8 +Tween.TRANS_BOUNCE = 9 +Tween.TRANS_BACK = 10 +Tween.TRANS_SPRING = 11 + +--- @alias Tween.EaseType `Tween.EASE_IN` | `Tween.EASE_OUT` | `Tween.EASE_IN_OUT` | `Tween.EASE_OUT_IN` +Tween.EASE_IN = 0 +Tween.EASE_OUT = 1 +Tween.EASE_IN_OUT = 2 +Tween.EASE_OUT_IN = 3 + +Tween.step_finished = Signal() +Tween.loop_finished = Signal() +Tween.finished = Signal() + +--- @param object Object +--- @param property NodePath +--- @param final_val any +--- @param duration float +--- @return PropertyTweener +function Tween:tween_property(object, property, final_val, duration) end + +--- @param time float +--- @return IntervalTweener +function Tween:tween_interval(time) end + +--- @param callback Callable +--- @return CallbackTweener +function Tween:tween_callback(callback) end + +--- @param method Callable +--- @param from any +--- @param to any +--- @param duration float +--- @return MethodTweener +function Tween:tween_method(method, from, to, duration) end + +--- @param subtween Tween +--- @return SubtweenTweener +function Tween:tween_subtween(subtween) end + +--- @param delta float +--- @return bool +function Tween:custom_step(delta) end + +function Tween:stop() end + +function Tween:pause() end + +function Tween:play() end + +function Tween:kill() end + +--- @return float +function Tween:get_total_elapsed_time() end + +--- @return bool +function Tween:is_running() end + +--- @return bool +function Tween:is_valid() end + +--- @param node Node +--- @return Tween +function Tween:bind_node(node) end + +--- @param mode Tween.TweenProcessMode +--- @return Tween +function Tween:set_process_mode(mode) end + +--- @param mode Tween.TweenPauseMode +--- @return Tween +function Tween:set_pause_mode(mode) end + +--- @param ignore bool? Default: true +--- @return Tween +function Tween:set_ignore_time_scale(ignore) end + +--- @param parallel bool? Default: true +--- @return Tween +function Tween:set_parallel(parallel) end + +--- @param loops int? Default: 0 +--- @return Tween +function Tween:set_loops(loops) end + +--- @return int +function Tween:get_loops_left() end + +--- @param speed float +--- @return Tween +function Tween:set_speed_scale(speed) end + +--- @param trans Tween.TransitionType +--- @return Tween +function Tween:set_trans(trans) end + +--- @param ease Tween.EaseType +--- @return Tween +function Tween:set_ease(ease) end + +--- @return Tween +function Tween:parallel() end + +--- @return Tween +function Tween:chain() end + +--- static +--- @param initial_value any +--- @param delta_value any +--- @param elapsed_time float +--- @param duration float +--- @param trans_type Tween.TransitionType +--- @param ease_type Tween.EaseType +--- @return any +function Tween:interpolate_value(initial_value, delta_value, elapsed_time, duration, trans_type, ease_type) end + + +----------------------------------------------------------- +-- Tweener +----------------------------------------------------------- + +--- @class Tweener: RefCounted, { [string]: any } +Tweener = {} + +Tweener.finished = Signal() + + +----------------------------------------------------------- +-- UDPServer +----------------------------------------------------------- + +--- @class UDPServer: RefCounted, { [string]: any } +--- @field max_pending_connections int +UDPServer = {} + +--- @return UDPServer +function UDPServer:new() end + +--- @param port int +--- @param bind_address String? Default: "*" +--- @return Error +function UDPServer:listen(port, bind_address) end + +--- @return Error +function UDPServer:poll() end + +--- @return bool +function UDPServer:is_connection_available() end + +--- @return int +function UDPServer:get_local_port() end + +--- @return bool +function UDPServer:is_listening() end + +--- @return PacketPeerUDP +function UDPServer:take_connection() end + +function UDPServer:stop() end + +--- @param max_pending_connections int +function UDPServer:set_max_pending_connections(max_pending_connections) end + +--- @return int +function UDPServer:get_max_pending_connections() end + + +----------------------------------------------------------- +-- UPNP +----------------------------------------------------------- + +--- @class UPNP: RefCounted, { [string]: any } +--- @field discover_multicast_if String +--- @field discover_local_port int +--- @field discover_ipv6 bool +UPNP = {} + +--- @return UPNP +function UPNP:new() end + +--- @alias UPNP.UPNPResult `UPNP.UPNP_RESULT_SUCCESS` | `UPNP.UPNP_RESULT_NOT_AUTHORIZED` | `UPNP.UPNP_RESULT_PORT_MAPPING_NOT_FOUND` | `UPNP.UPNP_RESULT_INCONSISTENT_PARAMETERS` | `UPNP.UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY` | `UPNP.UPNP_RESULT_ACTION_FAILED` | `UPNP.UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED` | `UPNP.UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED` | `UPNP.UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED` | `UPNP.UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD` | `UPNP.UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD` | `UPNP.UPNP_RESULT_NO_PORT_MAPS_AVAILABLE` | `UPNP.UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM` | `UPNP.UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING` | `UPNP.UPNP_RESULT_SAME_PORT_VALUES_REQUIRED` | `UPNP.UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED` | `UPNP.UPNP_RESULT_INVALID_GATEWAY` | `UPNP.UPNP_RESULT_INVALID_PORT` | `UPNP.UPNP_RESULT_INVALID_PROTOCOL` | `UPNP.UPNP_RESULT_INVALID_DURATION` | `UPNP.UPNP_RESULT_INVALID_ARGS` | `UPNP.UPNP_RESULT_INVALID_RESPONSE` | `UPNP.UPNP_RESULT_INVALID_PARAM` | `UPNP.UPNP_RESULT_HTTP_ERROR` | `UPNP.UPNP_RESULT_SOCKET_ERROR` | `UPNP.UPNP_RESULT_MEM_ALLOC_ERROR` | `UPNP.UPNP_RESULT_NO_GATEWAY` | `UPNP.UPNP_RESULT_NO_DEVICES` | `UPNP.UPNP_RESULT_UNKNOWN_ERROR` +UPNP.UPNP_RESULT_SUCCESS = 0 +UPNP.UPNP_RESULT_NOT_AUTHORIZED = 1 +UPNP.UPNP_RESULT_PORT_MAPPING_NOT_FOUND = 2 +UPNP.UPNP_RESULT_INCONSISTENT_PARAMETERS = 3 +UPNP.UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY = 4 +UPNP.UPNP_RESULT_ACTION_FAILED = 5 +UPNP.UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED = 6 +UPNP.UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED = 7 +UPNP.UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED = 8 +UPNP.UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD = 9 +UPNP.UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD = 10 +UPNP.UPNP_RESULT_NO_PORT_MAPS_AVAILABLE = 11 +UPNP.UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM = 12 +UPNP.UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING = 13 +UPNP.UPNP_RESULT_SAME_PORT_VALUES_REQUIRED = 14 +UPNP.UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED = 15 +UPNP.UPNP_RESULT_INVALID_GATEWAY = 16 +UPNP.UPNP_RESULT_INVALID_PORT = 17 +UPNP.UPNP_RESULT_INVALID_PROTOCOL = 18 +UPNP.UPNP_RESULT_INVALID_DURATION = 19 +UPNP.UPNP_RESULT_INVALID_ARGS = 20 +UPNP.UPNP_RESULT_INVALID_RESPONSE = 21 +UPNP.UPNP_RESULT_INVALID_PARAM = 22 +UPNP.UPNP_RESULT_HTTP_ERROR = 23 +UPNP.UPNP_RESULT_SOCKET_ERROR = 24 +UPNP.UPNP_RESULT_MEM_ALLOC_ERROR = 25 +UPNP.UPNP_RESULT_NO_GATEWAY = 26 +UPNP.UPNP_RESULT_NO_DEVICES = 27 +UPNP.UPNP_RESULT_UNKNOWN_ERROR = 28 + +--- @return int +function UPNP:get_device_count() end + +--- @param index int +--- @return UPNPDevice +function UPNP:get_device(index) end + +--- @param device UPNPDevice +function UPNP:add_device(device) end + +--- @param index int +--- @param device UPNPDevice +function UPNP:set_device(index, device) end + +--- @param index int +function UPNP:remove_device(index) end + +function UPNP:clear_devices() end + +--- @return UPNPDevice +function UPNP:get_gateway() end + +--- @param timeout int? Default: 2000 +--- @param ttl int? Default: 2 +--- @param device_filter String? Default: "InternetGatewayDevice" +--- @return int +function UPNP:discover(timeout, ttl, device_filter) end + +--- @return String +function UPNP:query_external_address() end + +--- @param port int +--- @param port_internal int? Default: 0 +--- @param desc String? Default: "" +--- @param proto String? Default: "UDP" +--- @param duration int? Default: 0 +--- @return int +function UPNP:add_port_mapping(port, port_internal, desc, proto, duration) end + +--- @param port int +--- @param proto String? Default: "UDP" +--- @return int +function UPNP:delete_port_mapping(port, proto) end + +--- @param m_if String +function UPNP:set_discover_multicast_if(m_if) end + +--- @return String +function UPNP:get_discover_multicast_if() end + +--- @param port int +function UPNP:set_discover_local_port(port) end + +--- @return int +function UPNP:get_discover_local_port() end + +--- @param ipv6 bool +function UPNP:set_discover_ipv6(ipv6) end + +--- @return bool +function UPNP:is_discover_ipv6() end + + +----------------------------------------------------------- +-- UPNPDevice +----------------------------------------------------------- + +--- @class UPNPDevice: RefCounted, { [string]: any } +--- @field description_url String +--- @field service_type String +--- @field igd_control_url String +--- @field igd_service_type String +--- @field igd_our_addr String +--- @field igd_status int +UPNPDevice = {} + +--- @return UPNPDevice +function UPNPDevice:new() end + +--- @alias UPNPDevice.IGDStatus `UPNPDevice.IGD_STATUS_OK` | `UPNPDevice.IGD_STATUS_HTTP_ERROR` | `UPNPDevice.IGD_STATUS_HTTP_EMPTY` | `UPNPDevice.IGD_STATUS_NO_URLS` | `UPNPDevice.IGD_STATUS_NO_IGD` | `UPNPDevice.IGD_STATUS_DISCONNECTED` | `UPNPDevice.IGD_STATUS_UNKNOWN_DEVICE` | `UPNPDevice.IGD_STATUS_INVALID_CONTROL` | `UPNPDevice.IGD_STATUS_MALLOC_ERROR` | `UPNPDevice.IGD_STATUS_UNKNOWN_ERROR` +UPNPDevice.IGD_STATUS_OK = 0 +UPNPDevice.IGD_STATUS_HTTP_ERROR = 1 +UPNPDevice.IGD_STATUS_HTTP_EMPTY = 2 +UPNPDevice.IGD_STATUS_NO_URLS = 3 +UPNPDevice.IGD_STATUS_NO_IGD = 4 +UPNPDevice.IGD_STATUS_DISCONNECTED = 5 +UPNPDevice.IGD_STATUS_UNKNOWN_DEVICE = 6 +UPNPDevice.IGD_STATUS_INVALID_CONTROL = 7 +UPNPDevice.IGD_STATUS_MALLOC_ERROR = 8 +UPNPDevice.IGD_STATUS_UNKNOWN_ERROR = 9 + +--- @return bool +function UPNPDevice:is_valid_gateway() end + +--- @return String +function UPNPDevice:query_external_address() end + +--- @param port int +--- @param port_internal int? Default: 0 +--- @param desc String? Default: "" +--- @param proto String? Default: "UDP" +--- @param duration int? Default: 0 +--- @return int +function UPNPDevice:add_port_mapping(port, port_internal, desc, proto, duration) end + +--- @param port int +--- @param proto String? Default: "UDP" +--- @return int +function UPNPDevice:delete_port_mapping(port, proto) end + +--- @param url String +function UPNPDevice:set_description_url(url) end + +--- @return String +function UPNPDevice:get_description_url() end + +--- @param type String +function UPNPDevice:set_service_type(type) end + +--- @return String +function UPNPDevice:get_service_type() end + +--- @param url String +function UPNPDevice:set_igd_control_url(url) end + +--- @return String +function UPNPDevice:get_igd_control_url() end + +--- @param type String +function UPNPDevice:set_igd_service_type(type) end + +--- @return String +function UPNPDevice:get_igd_service_type() end + +--- @param addr String +function UPNPDevice:set_igd_our_addr(addr) end + +--- @return String +function UPNPDevice:get_igd_our_addr() end + +--- @param status UPNPDevice.IGDStatus +function UPNPDevice:set_igd_status(status) end + +--- @return UPNPDevice.IGDStatus +function UPNPDevice:get_igd_status() end + + +----------------------------------------------------------- +-- UndoRedo +----------------------------------------------------------- + +--- @class UndoRedo: Object, { [string]: any } +--- @field max_steps int +UndoRedo = {} + +--- @return UndoRedo +function UndoRedo:new() end + +--- @alias UndoRedo.MergeMode `UndoRedo.MERGE_DISABLE` | `UndoRedo.MERGE_ENDS` | `UndoRedo.MERGE_ALL` +UndoRedo.MERGE_DISABLE = 0 +UndoRedo.MERGE_ENDS = 1 +UndoRedo.MERGE_ALL = 2 + +UndoRedo.version_changed = Signal() + +--- @param name String +--- @param merge_mode UndoRedo.MergeMode? Default: 0 +--- @param backward_undo_ops bool? Default: false +function UndoRedo:create_action(name, merge_mode, backward_undo_ops) end + +--- @param execute bool? Default: true +function UndoRedo:commit_action(execute) end + +--- @return bool +function UndoRedo:is_committing_action() end + +--- @param callable Callable +function UndoRedo:add_do_method(callable) end + +--- @param callable Callable +function UndoRedo:add_undo_method(callable) end + +--- @param object Object +--- @param property StringName +--- @param value any +function UndoRedo:add_do_property(object, property, value) end + +--- @param object Object +--- @param property StringName +--- @param value any +function UndoRedo:add_undo_property(object, property, value) end + +--- @param object Object +function UndoRedo:add_do_reference(object) end + +--- @param object Object +function UndoRedo:add_undo_reference(object) end + +function UndoRedo:start_force_keep_in_merge_ends() end + +function UndoRedo:end_force_keep_in_merge_ends() end + +--- @return int +function UndoRedo:get_history_count() end + +--- @return int +function UndoRedo:get_current_action() end + +--- @param id int +--- @return String +function UndoRedo:get_action_name(id) end + +--- @param increase_version bool? Default: true +function UndoRedo:clear_history(increase_version) end + +--- @return String +function UndoRedo:get_current_action_name() end + +--- @return bool +function UndoRedo:has_undo() end + +--- @return bool +function UndoRedo:has_redo() end + +--- @return int +function UndoRedo:get_version() end + +--- @param max_steps int +function UndoRedo:set_max_steps(max_steps) end + +--- @return int +function UndoRedo:get_max_steps() end + +--- @return bool +function UndoRedo:redo() end + +--- @return bool +function UndoRedo:undo() end + + +----------------------------------------------------------- +-- UniformSetCacheRD +----------------------------------------------------------- + +--- @class UniformSetCacheRD: Object, { [string]: any } +UniformSetCacheRD = {} + +--- @return UniformSetCacheRD +function UniformSetCacheRD:new() end + +--- static +--- @param shader RID +--- @param set int +--- @param uniforms Array[RDUniform] +--- @return RID +function UniformSetCacheRD:get_cache(shader, set, uniforms) end + + +----------------------------------------------------------- +-- VBoxContainer +----------------------------------------------------------- + +--- @class VBoxContainer: BoxContainer, { [string]: any } +VBoxContainer = {} + +--- @return VBoxContainer +function VBoxContainer:new() end + + +----------------------------------------------------------- +-- VFlowContainer +----------------------------------------------------------- + +--- @class VFlowContainer: FlowContainer, { [string]: any } +VFlowContainer = {} + +--- @return VFlowContainer +function VFlowContainer:new() end + + +----------------------------------------------------------- +-- VScrollBar +----------------------------------------------------------- + +--- @class VScrollBar: ScrollBar, { [string]: any } +VScrollBar = {} + +--- @return VScrollBar +function VScrollBar:new() end + + +----------------------------------------------------------- +-- VSeparator +----------------------------------------------------------- + +--- @class VSeparator: Separator, { [string]: any } +VSeparator = {} + +--- @return VSeparator +function VSeparator:new() end + + +----------------------------------------------------------- +-- VSlider +----------------------------------------------------------- + +--- @class VSlider: Slider, { [string]: any } +VSlider = {} + +--- @return VSlider +function VSlider:new() end + + +----------------------------------------------------------- +-- VSplitContainer +----------------------------------------------------------- + +--- @class VSplitContainer: SplitContainer, { [string]: any } +VSplitContainer = {} + +--- @return VSplitContainer +function VSplitContainer:new() end + + +----------------------------------------------------------- +-- VehicleBody3D +----------------------------------------------------------- + +--- @class VehicleBody3D: RigidBody3D, { [string]: any } +--- @field engine_force float +--- @field brake float +--- @field steering float +VehicleBody3D = {} + +--- @return VehicleBody3D +function VehicleBody3D:new() end + +--- @param engine_force float +function VehicleBody3D:set_engine_force(engine_force) end + +--- @return float +function VehicleBody3D:get_engine_force() end + +--- @param brake float +function VehicleBody3D:set_brake(brake) end + +--- @return float +function VehicleBody3D:get_brake() end + +--- @param steering float +function VehicleBody3D:set_steering(steering) end + +--- @return float +function VehicleBody3D:get_steering() end + + +----------------------------------------------------------- +-- VehicleWheel3D +----------------------------------------------------------- + +--- @class VehicleWheel3D: Node3D, { [string]: any } +--- @field engine_force float +--- @field brake float +--- @field steering float +--- @field use_as_traction bool +--- @field use_as_steering bool +--- @field wheel_roll_influence float +--- @field wheel_radius float +--- @field wheel_rest_length float +--- @field wheel_friction_slip float +--- @field suspension_travel float +--- @field suspension_stiffness float +--- @field suspension_max_force float +--- @field damping_compression float +--- @field damping_relaxation float +VehicleWheel3D = {} + +--- @return VehicleWheel3D +function VehicleWheel3D:new() end + +--- @param length float +function VehicleWheel3D:set_radius(length) end + +--- @return float +function VehicleWheel3D:get_radius() end + +--- @param length float +function VehicleWheel3D:set_suspension_rest_length(length) end + +--- @return float +function VehicleWheel3D:get_suspension_rest_length() end + +--- @param length float +function VehicleWheel3D:set_suspension_travel(length) end + +--- @return float +function VehicleWheel3D:get_suspension_travel() end + +--- @param length float +function VehicleWheel3D:set_suspension_stiffness(length) end + +--- @return float +function VehicleWheel3D:get_suspension_stiffness() end + +--- @param length float +function VehicleWheel3D:set_suspension_max_force(length) end + +--- @return float +function VehicleWheel3D:get_suspension_max_force() end + +--- @param length float +function VehicleWheel3D:set_damping_compression(length) end + +--- @return float +function VehicleWheel3D:get_damping_compression() end + +--- @param length float +function VehicleWheel3D:set_damping_relaxation(length) end + +--- @return float +function VehicleWheel3D:get_damping_relaxation() end + +--- @param enable bool +function VehicleWheel3D:set_use_as_traction(enable) end + +--- @return bool +function VehicleWheel3D:is_used_as_traction() end + +--- @param enable bool +function VehicleWheel3D:set_use_as_steering(enable) end + +--- @return bool +function VehicleWheel3D:is_used_as_steering() end + +--- @param length float +function VehicleWheel3D:set_friction_slip(length) end + +--- @return float +function VehicleWheel3D:get_friction_slip() end + +--- @return bool +function VehicleWheel3D:is_in_contact() end + +--- @return Node3D +function VehicleWheel3D:get_contact_body() end + +--- @return Vector3 +function VehicleWheel3D:get_contact_point() end + +--- @return Vector3 +function VehicleWheel3D:get_contact_normal() end + +--- @param roll_influence float +function VehicleWheel3D:set_roll_influence(roll_influence) end + +--- @return float +function VehicleWheel3D:get_roll_influence() end + +--- @return float +function VehicleWheel3D:get_skidinfo() end + +--- @return float +function VehicleWheel3D:get_rpm() end + +--- @param engine_force float +function VehicleWheel3D:set_engine_force(engine_force) end + +--- @return float +function VehicleWheel3D:get_engine_force() end + +--- @param brake float +function VehicleWheel3D:set_brake(brake) end + +--- @return float +function VehicleWheel3D:get_brake() end + +--- @param steering float +function VehicleWheel3D:set_steering(steering) end + +--- @return float +function VehicleWheel3D:get_steering() end + + +----------------------------------------------------------- +-- VideoStream +----------------------------------------------------------- + +--- @class VideoStream: Resource, { [string]: any } +--- @field file String +VideoStream = {} + +--- @return VideoStream +function VideoStream:new() end + +--- @return VideoStreamPlayback +function VideoStream:_instantiate_playback() end + +--- @param file String +function VideoStream:set_file(file) end + +--- @return String +function VideoStream:get_file() end + + +----------------------------------------------------------- +-- VideoStreamPlayback +----------------------------------------------------------- + +--- @class VideoStreamPlayback: Resource, { [string]: any } +VideoStreamPlayback = {} + +--- @return VideoStreamPlayback +function VideoStreamPlayback:new() end + +function VideoStreamPlayback:_stop() end + +function VideoStreamPlayback:_play() end + +--- @return bool +function VideoStreamPlayback:_is_playing() end + +--- @param paused bool +function VideoStreamPlayback:_set_paused(paused) end + +--- @return bool +function VideoStreamPlayback:_is_paused() end + +--- @return float +function VideoStreamPlayback:_get_length() end + +--- @return float +function VideoStreamPlayback:_get_playback_position() end + +--- @param time float +function VideoStreamPlayback:_seek(time) end + +--- @param idx int +function VideoStreamPlayback:_set_audio_track(idx) end + +--- @return Texture2D +function VideoStreamPlayback:_get_texture() end + +--- @param delta float +function VideoStreamPlayback:_update(delta) end + +--- @return int +function VideoStreamPlayback:_get_channels() end + +--- @return int +function VideoStreamPlayback:_get_mix_rate() end + +--- @param num_frames int +--- @param buffer PackedFloat32Array? Default: PackedFloat32Array() +--- @param offset int? Default: 0 +--- @return int +function VideoStreamPlayback:mix_audio(num_frames, buffer, offset) end + + +----------------------------------------------------------- +-- VideoStreamPlayer +----------------------------------------------------------- + +--- @class VideoStreamPlayer: Control, { [string]: any } +--- @field audio_track int +--- @field stream VideoStream +--- @field volume_db float +--- @field volume float +--- @field speed_scale float +--- @field autoplay bool +--- @field paused bool +--- @field expand bool +--- @field loop bool +--- @field buffering_msec int +--- @field stream_position float +--- @field bus StringName +VideoStreamPlayer = {} + +--- @return VideoStreamPlayer +function VideoStreamPlayer:new() end + +VideoStreamPlayer.finished = Signal() + +--- @param stream VideoStream +function VideoStreamPlayer:set_stream(stream) end + +--- @return VideoStream +function VideoStreamPlayer:get_stream() end + +function VideoStreamPlayer:play() end + +function VideoStreamPlayer:stop() end + +--- @return bool +function VideoStreamPlayer:is_playing() end + +--- @param paused bool +function VideoStreamPlayer:set_paused(paused) end + +--- @return bool +function VideoStreamPlayer:is_paused() end + +--- @param loop bool +function VideoStreamPlayer:set_loop(loop) end + +--- @return bool +function VideoStreamPlayer:has_loop() end + +--- @param volume float +function VideoStreamPlayer:set_volume(volume) end + +--- @return float +function VideoStreamPlayer:get_volume() end + +--- @param db float +function VideoStreamPlayer:set_volume_db(db) end + +--- @return float +function VideoStreamPlayer:get_volume_db() end + +--- @param speed_scale float +function VideoStreamPlayer:set_speed_scale(speed_scale) end + +--- @return float +function VideoStreamPlayer:get_speed_scale() end + +--- @param track int +function VideoStreamPlayer:set_audio_track(track) end + +--- @return int +function VideoStreamPlayer:get_audio_track() end + +--- @return String +function VideoStreamPlayer:get_stream_name() end + +--- @return float +function VideoStreamPlayer:get_stream_length() end + +--- @param position float +function VideoStreamPlayer:set_stream_position(position) end + +--- @return float +function VideoStreamPlayer:get_stream_position() end + +--- @param enabled bool +function VideoStreamPlayer:set_autoplay(enabled) end + +--- @return bool +function VideoStreamPlayer:has_autoplay() end + +--- @param enable bool +function VideoStreamPlayer:set_expand(enable) end + +--- @return bool +function VideoStreamPlayer:has_expand() end + +--- @param msec int +function VideoStreamPlayer:set_buffering_msec(msec) end + +--- @return int +function VideoStreamPlayer:get_buffering_msec() end + +--- @param bus StringName +function VideoStreamPlayer:set_bus(bus) end + +--- @return StringName +function VideoStreamPlayer:get_bus() end + +--- @return Texture2D +function VideoStreamPlayer:get_video_texture() end + + +----------------------------------------------------------- +-- VideoStreamTheora +----------------------------------------------------------- + +--- @class VideoStreamTheora: VideoStream, { [string]: any } +VideoStreamTheora = {} + +--- @return VideoStreamTheora +function VideoStreamTheora:new() end + + +----------------------------------------------------------- +-- Viewport +----------------------------------------------------------- + +--- @class Viewport: Node, { [string]: any } +--- @field disable_3d bool +--- @field use_xr bool +--- @field own_world_3d bool +--- @field world_3d World3D +--- @field world_2d World2D +--- @field transparent_bg bool +--- @field handle_input_locally bool +--- @field snap_2d_transforms_to_pixel bool +--- @field snap_2d_vertices_to_pixel bool +--- @field msaa_2d int +--- @field msaa_3d int +--- @field screen_space_aa int +--- @field use_taa bool +--- @field use_debanding bool +--- @field use_occlusion_culling bool +--- @field mesh_lod_threshold float +--- @field debug_draw int +--- @field use_hdr_2d bool +--- @field scaling_3d_mode int +--- @field scaling_3d_scale float +--- @field texture_mipmap_bias float +--- @field anisotropic_filtering_level int +--- @field fsr_sharpness float +--- @field vrs_mode int +--- @field vrs_update_mode int +--- @field vrs_texture Texture2D +--- @field canvas_item_default_texture_filter int +--- @field canvas_item_default_texture_repeat int +--- @field audio_listener_enable_2d bool +--- @field audio_listener_enable_3d bool +--- @field physics_object_picking bool +--- @field physics_object_picking_sort bool +--- @field physics_object_picking_first_only bool +--- @field gui_disable_input bool +--- @field gui_snap_controls_to_pixels bool +--- @field gui_embed_subwindows bool +--- @field sdf_oversize int +--- @field sdf_scale int +--- @field positional_shadow_atlas_size int +--- @field positional_shadow_atlas_16_bits bool +--- @field positional_shadow_atlas_quad_0 int +--- @field positional_shadow_atlas_quad_1 int +--- @field positional_shadow_atlas_quad_2 int +--- @field positional_shadow_atlas_quad_3 int +--- @field canvas_transform Transform2D +--- @field global_canvas_transform Transform2D +--- @field canvas_cull_mask int +--- @field oversampling bool +--- @field oversampling_override float +Viewport = {} + +--- @alias Viewport.PositionalShadowAtlasQuadrantSubdiv `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_1` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_4` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_16` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_64` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_256` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_1024` | `Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_MAX` +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6 +Viewport.SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7 + +--- @alias Viewport.Scaling3DMode `Viewport.SCALING_3D_MODE_BILINEAR` | `Viewport.SCALING_3D_MODE_FSR` | `Viewport.SCALING_3D_MODE_FSR2` | `Viewport.SCALING_3D_MODE_METALFX_SPATIAL` | `Viewport.SCALING_3D_MODE_METALFX_TEMPORAL` | `Viewport.SCALING_3D_MODE_MAX` +Viewport.SCALING_3D_MODE_BILINEAR = 0 +Viewport.SCALING_3D_MODE_FSR = 1 +Viewport.SCALING_3D_MODE_FSR2 = 2 +Viewport.SCALING_3D_MODE_METALFX_SPATIAL = 3 +Viewport.SCALING_3D_MODE_METALFX_TEMPORAL = 4 +Viewport.SCALING_3D_MODE_MAX = 5 + +--- @alias Viewport.MSAA `Viewport.MSAA_DISABLED` | `Viewport.MSAA_2X` | `Viewport.MSAA_4X` | `Viewport.MSAA_8X` | `Viewport.MSAA_MAX` +Viewport.MSAA_DISABLED = 0 +Viewport.MSAA_2X = 1 +Viewport.MSAA_4X = 2 +Viewport.MSAA_8X = 3 +Viewport.MSAA_MAX = 4 + +--- @alias Viewport.AnisotropicFiltering `Viewport.ANISOTROPY_DISABLED` | `Viewport.ANISOTROPY_2X` | `Viewport.ANISOTROPY_4X` | `Viewport.ANISOTROPY_8X` | `Viewport.ANISOTROPY_16X` | `Viewport.ANISOTROPY_MAX` +Viewport.ANISOTROPY_DISABLED = 0 +Viewport.ANISOTROPY_2X = 1 +Viewport.ANISOTROPY_4X = 2 +Viewport.ANISOTROPY_8X = 3 +Viewport.ANISOTROPY_16X = 4 +Viewport.ANISOTROPY_MAX = 5 + +--- @alias Viewport.ScreenSpaceAA `Viewport.SCREEN_SPACE_AA_DISABLED` | `Viewport.SCREEN_SPACE_AA_FXAA` | `Viewport.SCREEN_SPACE_AA_SMAA` | `Viewport.SCREEN_SPACE_AA_MAX` +Viewport.SCREEN_SPACE_AA_DISABLED = 0 +Viewport.SCREEN_SPACE_AA_FXAA = 1 +Viewport.SCREEN_SPACE_AA_SMAA = 2 +Viewport.SCREEN_SPACE_AA_MAX = 3 + +--- @alias Viewport.RenderInfo `Viewport.RENDER_INFO_OBJECTS_IN_FRAME` | `Viewport.RENDER_INFO_PRIMITIVES_IN_FRAME` | `Viewport.RENDER_INFO_DRAW_CALLS_IN_FRAME` | `Viewport.RENDER_INFO_MAX` +Viewport.RENDER_INFO_OBJECTS_IN_FRAME = 0 +Viewport.RENDER_INFO_PRIMITIVES_IN_FRAME = 1 +Viewport.RENDER_INFO_DRAW_CALLS_IN_FRAME = 2 +Viewport.RENDER_INFO_MAX = 3 + +--- @alias Viewport.RenderInfoType `Viewport.RENDER_INFO_TYPE_VISIBLE` | `Viewport.RENDER_INFO_TYPE_SHADOW` | `Viewport.RENDER_INFO_TYPE_CANVAS` | `Viewport.RENDER_INFO_TYPE_MAX` +Viewport.RENDER_INFO_TYPE_VISIBLE = 0 +Viewport.RENDER_INFO_TYPE_SHADOW = 1 +Viewport.RENDER_INFO_TYPE_CANVAS = 2 +Viewport.RENDER_INFO_TYPE_MAX = 3 + +--- @alias Viewport.DebugDraw `Viewport.DEBUG_DRAW_DISABLED` | `Viewport.DEBUG_DRAW_UNSHADED` | `Viewport.DEBUG_DRAW_LIGHTING` | `Viewport.DEBUG_DRAW_OVERDRAW` | `Viewport.DEBUG_DRAW_WIREFRAME` | `Viewport.DEBUG_DRAW_NORMAL_BUFFER` | `Viewport.DEBUG_DRAW_VOXEL_GI_ALBEDO` | `Viewport.DEBUG_DRAW_VOXEL_GI_LIGHTING` | `Viewport.DEBUG_DRAW_VOXEL_GI_EMISSION` | `Viewport.DEBUG_DRAW_SHADOW_ATLAS` | `Viewport.DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS` | `Viewport.DEBUG_DRAW_SCENE_LUMINANCE` | `Viewport.DEBUG_DRAW_SSAO` | `Viewport.DEBUG_DRAW_SSIL` | `Viewport.DEBUG_DRAW_PSSM_SPLITS` | `Viewport.DEBUG_DRAW_DECAL_ATLAS` | `Viewport.DEBUG_DRAW_SDFGI` | `Viewport.DEBUG_DRAW_SDFGI_PROBES` | `Viewport.DEBUG_DRAW_GI_BUFFER` | `Viewport.DEBUG_DRAW_DISABLE_LOD` | `Viewport.DEBUG_DRAW_CLUSTER_OMNI_LIGHTS` | `Viewport.DEBUG_DRAW_CLUSTER_SPOT_LIGHTS` | `Viewport.DEBUG_DRAW_CLUSTER_DECALS` | `Viewport.DEBUG_DRAW_CLUSTER_REFLECTION_PROBES` | `Viewport.DEBUG_DRAW_OCCLUDERS` | `Viewport.DEBUG_DRAW_MOTION_VECTORS` | `Viewport.DEBUG_DRAW_INTERNAL_BUFFER` +Viewport.DEBUG_DRAW_DISABLED = 0 +Viewport.DEBUG_DRAW_UNSHADED = 1 +Viewport.DEBUG_DRAW_LIGHTING = 2 +Viewport.DEBUG_DRAW_OVERDRAW = 3 +Viewport.DEBUG_DRAW_WIREFRAME = 4 +Viewport.DEBUG_DRAW_NORMAL_BUFFER = 5 +Viewport.DEBUG_DRAW_VOXEL_GI_ALBEDO = 6 +Viewport.DEBUG_DRAW_VOXEL_GI_LIGHTING = 7 +Viewport.DEBUG_DRAW_VOXEL_GI_EMISSION = 8 +Viewport.DEBUG_DRAW_SHADOW_ATLAS = 9 +Viewport.DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10 +Viewport.DEBUG_DRAW_SCENE_LUMINANCE = 11 +Viewport.DEBUG_DRAW_SSAO = 12 +Viewport.DEBUG_DRAW_SSIL = 13 +Viewport.DEBUG_DRAW_PSSM_SPLITS = 14 +Viewport.DEBUG_DRAW_DECAL_ATLAS = 15 +Viewport.DEBUG_DRAW_SDFGI = 16 +Viewport.DEBUG_DRAW_SDFGI_PROBES = 17 +Viewport.DEBUG_DRAW_GI_BUFFER = 18 +Viewport.DEBUG_DRAW_DISABLE_LOD = 19 +Viewport.DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20 +Viewport.DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21 +Viewport.DEBUG_DRAW_CLUSTER_DECALS = 22 +Viewport.DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23 +Viewport.DEBUG_DRAW_OCCLUDERS = 24 +Viewport.DEBUG_DRAW_MOTION_VECTORS = 25 +Viewport.DEBUG_DRAW_INTERNAL_BUFFER = 26 + +--- @alias Viewport.DefaultCanvasItemTextureFilter `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX` +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 0 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 1 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 2 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX = 4 + +--- @alias Viewport.DefaultCanvasItemTextureRepeat `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR` | `Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MAX` +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 0 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 1 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 2 +Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MAX = 3 + +--- @alias Viewport.SDFOversize `Viewport.SDF_OVERSIZE_100_PERCENT` | `Viewport.SDF_OVERSIZE_120_PERCENT` | `Viewport.SDF_OVERSIZE_150_PERCENT` | `Viewport.SDF_OVERSIZE_200_PERCENT` | `Viewport.SDF_OVERSIZE_MAX` +Viewport.SDF_OVERSIZE_100_PERCENT = 0 +Viewport.SDF_OVERSIZE_120_PERCENT = 1 +Viewport.SDF_OVERSIZE_150_PERCENT = 2 +Viewport.SDF_OVERSIZE_200_PERCENT = 3 +Viewport.SDF_OVERSIZE_MAX = 4 + +--- @alias Viewport.SDFScale `Viewport.SDF_SCALE_100_PERCENT` | `Viewport.SDF_SCALE_50_PERCENT` | `Viewport.SDF_SCALE_25_PERCENT` | `Viewport.SDF_SCALE_MAX` +Viewport.SDF_SCALE_100_PERCENT = 0 +Viewport.SDF_SCALE_50_PERCENT = 1 +Viewport.SDF_SCALE_25_PERCENT = 2 +Viewport.SDF_SCALE_MAX = 3 + +--- @alias Viewport.VRSMode `Viewport.VRS_DISABLED` | `Viewport.VRS_TEXTURE` | `Viewport.VRS_XR` | `Viewport.VRS_MAX` +Viewport.VRS_DISABLED = 0 +Viewport.VRS_TEXTURE = 1 +Viewport.VRS_XR = 2 +Viewport.VRS_MAX = 3 + +--- @alias Viewport.VRSUpdateMode `Viewport.VRS_UPDATE_DISABLED` | `Viewport.VRS_UPDATE_ONCE` | `Viewport.VRS_UPDATE_ALWAYS` | `Viewport.VRS_UPDATE_MAX` +Viewport.VRS_UPDATE_DISABLED = 0 +Viewport.VRS_UPDATE_ONCE = 1 +Viewport.VRS_UPDATE_ALWAYS = 2 +Viewport.VRS_UPDATE_MAX = 3 + +Viewport.size_changed = Signal() +Viewport.gui_focus_changed = Signal() + +--- @param world_2d World2D +function Viewport:set_world_2d(world_2d) end + +--- @return World2D +function Viewport:get_world_2d() end + +--- @return World2D +function Viewport:find_world_2d() end + +--- @param xform Transform2D +function Viewport:set_canvas_transform(xform) end + +--- @return Transform2D +function Viewport:get_canvas_transform() end + +--- @param xform Transform2D +function Viewport:set_global_canvas_transform(xform) end + +--- @return Transform2D +function Viewport:get_global_canvas_transform() end + +--- @return Transform2D +function Viewport:get_stretch_transform() end + +--- @return Transform2D +function Viewport:get_final_transform() end + +--- @return Transform2D +function Viewport:get_screen_transform() end + +--- @return Rect2 +function Viewport:get_visible_rect() end + +--- @param enable bool +function Viewport:set_transparent_background(enable) end + +--- @return bool +function Viewport:has_transparent_background() end + +--- @param enable bool +function Viewport:set_use_hdr_2d(enable) end + +--- @return bool +function Viewport:is_using_hdr_2d() end + +--- @param msaa Viewport.MSAA +function Viewport:set_msaa_2d(msaa) end + +--- @return Viewport.MSAA +function Viewport:get_msaa_2d() end + +--- @param msaa Viewport.MSAA +function Viewport:set_msaa_3d(msaa) end + +--- @return Viewport.MSAA +function Viewport:get_msaa_3d() end + +--- @param screen_space_aa Viewport.ScreenSpaceAA +function Viewport:set_screen_space_aa(screen_space_aa) end + +--- @return Viewport.ScreenSpaceAA +function Viewport:get_screen_space_aa() end + +--- @param enable bool +function Viewport:set_use_taa(enable) end + +--- @return bool +function Viewport:is_using_taa() end + +--- @param enable bool +function Viewport:set_use_debanding(enable) end + +--- @return bool +function Viewport:is_using_debanding() end + +--- @param enable bool +function Viewport:set_use_occlusion_culling(enable) end + +--- @return bool +function Viewport:is_using_occlusion_culling() end + +--- @param debug_draw Viewport.DebugDraw +function Viewport:set_debug_draw(debug_draw) end + +--- @return Viewport.DebugDraw +function Viewport:get_debug_draw() end + +--- @param enable bool +function Viewport:set_use_oversampling(enable) end + +--- @return bool +function Viewport:is_using_oversampling() end + +--- @param oversampling float +function Viewport:set_oversampling_override(oversampling) end + +--- @return float +function Viewport:get_oversampling_override() end + +--- @return float +function Viewport:get_oversampling() end + +--- @param type Viewport.RenderInfoType +--- @param info Viewport.RenderInfo +--- @return int +function Viewport:get_render_info(type, info) end + +--- @return ViewportTexture +function Viewport:get_texture() end + +--- @param enable bool +function Viewport:set_physics_object_picking(enable) end + +--- @return bool +function Viewport:get_physics_object_picking() end + +--- @param enable bool +function Viewport:set_physics_object_picking_sort(enable) end + +--- @return bool +function Viewport:get_physics_object_picking_sort() end + +--- @param enable bool +function Viewport:set_physics_object_picking_first_only(enable) end + +--- @return bool +function Viewport:get_physics_object_picking_first_only() end + +--- @return RID +function Viewport:get_viewport_rid() end + +--- @param text String +function Viewport:push_text_input(text) end + +--- @param event InputEvent +--- @param in_local_coords bool? Default: false +function Viewport:push_input(event, in_local_coords) end + +--- @param event InputEvent +--- @param in_local_coords bool? Default: false +function Viewport:push_unhandled_input(event, in_local_coords) end + +function Viewport:notify_mouse_entered() end + +function Viewport:notify_mouse_exited() end + +--- @return Vector2 +function Viewport:get_mouse_position() end + +--- @param position Vector2 +function Viewport:warp_mouse(position) end + +function Viewport:update_mouse_cursor_state() end + +function Viewport:gui_cancel_drag() end + +--- @return any +function Viewport:gui_get_drag_data() end + +--- @return String +function Viewport:gui_get_drag_description() end + +--- @param description String +function Viewport:gui_set_drag_description(description) end + +--- @return bool +function Viewport:gui_is_dragging() end + +--- @return bool +function Viewport:gui_is_drag_successful() end + +function Viewport:gui_release_focus() end + +--- @return Control +function Viewport:gui_get_focus_owner() end + +--- @return Control +function Viewport:gui_get_hovered_control() end + +--- @param disable bool +function Viewport:set_disable_input(disable) end + +--- @return bool +function Viewport:is_input_disabled() end + +--- @param size int +function Viewport:set_positional_shadow_atlas_size(size) end + +--- @return int +function Viewport:get_positional_shadow_atlas_size() end + +--- @param enable bool +function Viewport:set_positional_shadow_atlas_16_bits(enable) end + +--- @return bool +function Viewport:get_positional_shadow_atlas_16_bits() end + +--- @param enabled bool +function Viewport:set_snap_controls_to_pixels(enabled) end + +--- @return bool +function Viewport:is_snap_controls_to_pixels_enabled() end + +--- @param enabled bool +function Viewport:set_snap_2d_transforms_to_pixel(enabled) end + +--- @return bool +function Viewport:is_snap_2d_transforms_to_pixel_enabled() end + +--- @param enabled bool +function Viewport:set_snap_2d_vertices_to_pixel(enabled) end + +--- @return bool +function Viewport:is_snap_2d_vertices_to_pixel_enabled() end + +--- @param quadrant int +--- @param subdiv Viewport.PositionalShadowAtlasQuadrantSubdiv +function Viewport:set_positional_shadow_atlas_quadrant_subdiv(quadrant, subdiv) end + +--- @param quadrant int +--- @return Viewport.PositionalShadowAtlasQuadrantSubdiv +function Viewport:get_positional_shadow_atlas_quadrant_subdiv(quadrant) end + +function Viewport:set_input_as_handled() end + +--- @return bool +function Viewport:is_input_handled() end + +--- @param enable bool +function Viewport:set_handle_input_locally(enable) end + +--- @return bool +function Viewport:is_handling_input_locally() end + +--- @param mode Viewport.DefaultCanvasItemTextureFilter +function Viewport:set_default_canvas_item_texture_filter(mode) end + +--- @return Viewport.DefaultCanvasItemTextureFilter +function Viewport:get_default_canvas_item_texture_filter() end + +--- @param enable bool +function Viewport:set_embedding_subwindows(enable) end + +--- @return bool +function Viewport:is_embedding_subwindows() end + +--- @return Array[Window] +function Viewport:get_embedded_subwindows() end + +--- @param mask int +function Viewport:set_canvas_cull_mask(mask) end + +--- @return int +function Viewport:get_canvas_cull_mask() end + +--- @param layer int +--- @param enable bool +function Viewport:set_canvas_cull_mask_bit(layer, enable) end + +--- @param layer int +--- @return bool +function Viewport:get_canvas_cull_mask_bit(layer) end + +--- @param mode Viewport.DefaultCanvasItemTextureRepeat +function Viewport:set_default_canvas_item_texture_repeat(mode) end + +--- @return Viewport.DefaultCanvasItemTextureRepeat +function Viewport:get_default_canvas_item_texture_repeat() end + +--- @param oversize Viewport.SDFOversize +function Viewport:set_sdf_oversize(oversize) end + +--- @return Viewport.SDFOversize +function Viewport:get_sdf_oversize() end + +--- @param scale Viewport.SDFScale +function Viewport:set_sdf_scale(scale) end + +--- @return Viewport.SDFScale +function Viewport:get_sdf_scale() end + +--- @param pixels float +function Viewport:set_mesh_lod_threshold(pixels) end + +--- @return float +function Viewport:get_mesh_lod_threshold() end + +--- @param enable bool +function Viewport:set_as_audio_listener_2d(enable) end + +--- @return bool +function Viewport:is_audio_listener_2d() end + +--- @return AudioListener2D +function Viewport:get_audio_listener_2d() end + +--- @return Camera2D +function Viewport:get_camera_2d() end + +--- @param world_3d World3D +function Viewport:set_world_3d(world_3d) end + +--- @return World3D +function Viewport:get_world_3d() end + +--- @return World3D +function Viewport:find_world_3d() end + +--- @param enable bool +function Viewport:set_use_own_world_3d(enable) end + +--- @return bool +function Viewport:is_using_own_world_3d() end + +--- @return AudioListener3D +function Viewport:get_audio_listener_3d() end + +--- @return Camera3D +function Viewport:get_camera_3d() end + +--- @param enable bool +function Viewport:set_as_audio_listener_3d(enable) end + +--- @return bool +function Viewport:is_audio_listener_3d() end + +--- @param disable bool +function Viewport:set_disable_3d(disable) end + +--- @return bool +function Viewport:is_3d_disabled() end + +--- @param use bool +function Viewport:set_use_xr(use) end + +--- @return bool +function Viewport:is_using_xr() end + +--- @param scaling_3d_mode Viewport.Scaling3DMode +function Viewport:set_scaling_3d_mode(scaling_3d_mode) end + +--- @return Viewport.Scaling3DMode +function Viewport:get_scaling_3d_mode() end + +--- @param scale float +function Viewport:set_scaling_3d_scale(scale) end + +--- @return float +function Viewport:get_scaling_3d_scale() end + +--- @param fsr_sharpness float +function Viewport:set_fsr_sharpness(fsr_sharpness) end + +--- @return float +function Viewport:get_fsr_sharpness() end + +--- @param texture_mipmap_bias float +function Viewport:set_texture_mipmap_bias(texture_mipmap_bias) end + +--- @return float +function Viewport:get_texture_mipmap_bias() end + +--- @param anisotropic_filtering_level Viewport.AnisotropicFiltering +function Viewport:set_anisotropic_filtering_level(anisotropic_filtering_level) end + +--- @return Viewport.AnisotropicFiltering +function Viewport:get_anisotropic_filtering_level() end + +--- @param mode Viewport.VRSMode +function Viewport:set_vrs_mode(mode) end + +--- @return Viewport.VRSMode +function Viewport:get_vrs_mode() end + +--- @param mode Viewport.VRSUpdateMode +function Viewport:set_vrs_update_mode(mode) end + +--- @return Viewport.VRSUpdateMode +function Viewport:get_vrs_update_mode() end + +--- @param texture Texture2D +function Viewport:set_vrs_texture(texture) end + +--- @return Texture2D +function Viewport:get_vrs_texture() end + + +----------------------------------------------------------- +-- ViewportTexture +----------------------------------------------------------- + +--- @class ViewportTexture: Texture2D, { [string]: any } +--- @field viewport_path NodePath +ViewportTexture = {} + +--- @return ViewportTexture +function ViewportTexture:new() end + +--- @param path NodePath +function ViewportTexture:set_viewport_path_in_scene(path) end + +--- @return NodePath +function ViewportTexture:get_viewport_path_in_scene() end + + +----------------------------------------------------------- +-- VisibleOnScreenEnabler2D +----------------------------------------------------------- + +--- @class VisibleOnScreenEnabler2D: VisibleOnScreenNotifier2D, { [string]: any } +--- @field enable_mode int +--- @field enable_node_path NodePath +VisibleOnScreenEnabler2D = {} + +--- @return VisibleOnScreenEnabler2D +function VisibleOnScreenEnabler2D:new() end + +--- @alias VisibleOnScreenEnabler2D.EnableMode `VisibleOnScreenEnabler2D.ENABLE_MODE_INHERIT` | `VisibleOnScreenEnabler2D.ENABLE_MODE_ALWAYS` | `VisibleOnScreenEnabler2D.ENABLE_MODE_WHEN_PAUSED` +VisibleOnScreenEnabler2D.ENABLE_MODE_INHERIT = 0 +VisibleOnScreenEnabler2D.ENABLE_MODE_ALWAYS = 1 +VisibleOnScreenEnabler2D.ENABLE_MODE_WHEN_PAUSED = 2 + +--- @param mode VisibleOnScreenEnabler2D.EnableMode +function VisibleOnScreenEnabler2D:set_enable_mode(mode) end + +--- @return VisibleOnScreenEnabler2D.EnableMode +function VisibleOnScreenEnabler2D:get_enable_mode() end + +--- @param path NodePath +function VisibleOnScreenEnabler2D:set_enable_node_path(path) end + +--- @return NodePath +function VisibleOnScreenEnabler2D:get_enable_node_path() end + + +----------------------------------------------------------- +-- VisibleOnScreenEnabler3D +----------------------------------------------------------- + +--- @class VisibleOnScreenEnabler3D: VisibleOnScreenNotifier3D, { [string]: any } +--- @field enable_mode int +--- @field enable_node_path NodePath +VisibleOnScreenEnabler3D = {} + +--- @return VisibleOnScreenEnabler3D +function VisibleOnScreenEnabler3D:new() end + +--- @alias VisibleOnScreenEnabler3D.EnableMode `VisibleOnScreenEnabler3D.ENABLE_MODE_INHERIT` | `VisibleOnScreenEnabler3D.ENABLE_MODE_ALWAYS` | `VisibleOnScreenEnabler3D.ENABLE_MODE_WHEN_PAUSED` +VisibleOnScreenEnabler3D.ENABLE_MODE_INHERIT = 0 +VisibleOnScreenEnabler3D.ENABLE_MODE_ALWAYS = 1 +VisibleOnScreenEnabler3D.ENABLE_MODE_WHEN_PAUSED = 2 + +--- @param mode VisibleOnScreenEnabler3D.EnableMode +function VisibleOnScreenEnabler3D:set_enable_mode(mode) end + +--- @return VisibleOnScreenEnabler3D.EnableMode +function VisibleOnScreenEnabler3D:get_enable_mode() end + +--- @param path NodePath +function VisibleOnScreenEnabler3D:set_enable_node_path(path) end + +--- @return NodePath +function VisibleOnScreenEnabler3D:get_enable_node_path() end + + +----------------------------------------------------------- +-- VisibleOnScreenNotifier2D +----------------------------------------------------------- + +--- @class VisibleOnScreenNotifier2D: Node2D, { [string]: any } +--- @field rect Rect2 +--- @field show_rect bool +VisibleOnScreenNotifier2D = {} + +--- @return VisibleOnScreenNotifier2D +function VisibleOnScreenNotifier2D:new() end + +VisibleOnScreenNotifier2D.screen_entered = Signal() +VisibleOnScreenNotifier2D.screen_exited = Signal() + +--- @param rect Rect2 +function VisibleOnScreenNotifier2D:set_rect(rect) end + +--- @return Rect2 +function VisibleOnScreenNotifier2D:get_rect() end + +--- @param show_rect bool +function VisibleOnScreenNotifier2D:set_show_rect(show_rect) end + +--- @return bool +function VisibleOnScreenNotifier2D:is_showing_rect() end + +--- @return bool +function VisibleOnScreenNotifier2D:is_on_screen() end + + +----------------------------------------------------------- +-- VisibleOnScreenNotifier3D +----------------------------------------------------------- + +--- @class VisibleOnScreenNotifier3D: VisualInstance3D, { [string]: any } +--- @field aabb AABB +VisibleOnScreenNotifier3D = {} + +--- @return VisibleOnScreenNotifier3D +function VisibleOnScreenNotifier3D:new() end + +VisibleOnScreenNotifier3D.screen_entered = Signal() +VisibleOnScreenNotifier3D.screen_exited = Signal() + +--- @param rect AABB +function VisibleOnScreenNotifier3D:set_aabb(rect) end + +--- @return bool +function VisibleOnScreenNotifier3D:is_on_screen() end + + +----------------------------------------------------------- +-- VisualInstance3D +----------------------------------------------------------- + +--- @class VisualInstance3D: Node3D, { [string]: any } +--- @field layers int +--- @field sorting_offset float +--- @field sorting_use_aabb_center bool +VisualInstance3D = {} + +--- @return VisualInstance3D +function VisualInstance3D:new() end + +--- @return AABB +function VisualInstance3D:_get_aabb() end + +--- @param base RID +function VisualInstance3D:set_base(base) end + +--- @return RID +function VisualInstance3D:get_base() end + +--- @return RID +function VisualInstance3D:get_instance() end + +--- @param mask int +function VisualInstance3D:set_layer_mask(mask) end + +--- @return int +function VisualInstance3D:get_layer_mask() end + +--- @param layer_number int +--- @param value bool +function VisualInstance3D:set_layer_mask_value(layer_number, value) end + +--- @param layer_number int +--- @return bool +function VisualInstance3D:get_layer_mask_value(layer_number) end + +--- @param offset float +function VisualInstance3D:set_sorting_offset(offset) end + +--- @return float +function VisualInstance3D:get_sorting_offset() end + +--- @param enabled bool +function VisualInstance3D:set_sorting_use_aabb_center(enabled) end + +--- @return bool +function VisualInstance3D:is_sorting_use_aabb_center() end + +--- @return AABB +function VisualInstance3D:get_aabb() end + + +----------------------------------------------------------- +-- VisualShader +----------------------------------------------------------- + +--- @class VisualShader: Shader, { [string]: any } +--- @field graph_offset Vector2 +VisualShader = {} + +--- @return VisualShader +function VisualShader:new() end + +VisualShader.NODE_ID_INVALID = -1 +VisualShader.NODE_ID_OUTPUT = 0 + +--- @alias VisualShader.Type `VisualShader.TYPE_VERTEX` | `VisualShader.TYPE_FRAGMENT` | `VisualShader.TYPE_LIGHT` | `VisualShader.TYPE_START` | `VisualShader.TYPE_PROCESS` | `VisualShader.TYPE_COLLIDE` | `VisualShader.TYPE_START_CUSTOM` | `VisualShader.TYPE_PROCESS_CUSTOM` | `VisualShader.TYPE_SKY` | `VisualShader.TYPE_FOG` | `VisualShader.TYPE_MAX` +VisualShader.TYPE_VERTEX = 0 +VisualShader.TYPE_FRAGMENT = 1 +VisualShader.TYPE_LIGHT = 2 +VisualShader.TYPE_START = 3 +VisualShader.TYPE_PROCESS = 4 +VisualShader.TYPE_COLLIDE = 5 +VisualShader.TYPE_START_CUSTOM = 6 +VisualShader.TYPE_PROCESS_CUSTOM = 7 +VisualShader.TYPE_SKY = 8 +VisualShader.TYPE_FOG = 9 +VisualShader.TYPE_MAX = 10 + +--- @alias VisualShader.VaryingMode `VisualShader.VARYING_MODE_VERTEX_TO_FRAG_LIGHT` | `VisualShader.VARYING_MODE_FRAG_TO_LIGHT` | `VisualShader.VARYING_MODE_MAX` +VisualShader.VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0 +VisualShader.VARYING_MODE_FRAG_TO_LIGHT = 1 +VisualShader.VARYING_MODE_MAX = 2 + +--- @alias VisualShader.VaryingType `VisualShader.VARYING_TYPE_FLOAT` | `VisualShader.VARYING_TYPE_INT` | `VisualShader.VARYING_TYPE_UINT` | `VisualShader.VARYING_TYPE_VECTOR_2D` | `VisualShader.VARYING_TYPE_VECTOR_3D` | `VisualShader.VARYING_TYPE_VECTOR_4D` | `VisualShader.VARYING_TYPE_BOOLEAN` | `VisualShader.VARYING_TYPE_TRANSFORM` | `VisualShader.VARYING_TYPE_MAX` +VisualShader.VARYING_TYPE_FLOAT = 0 +VisualShader.VARYING_TYPE_INT = 1 +VisualShader.VARYING_TYPE_UINT = 2 +VisualShader.VARYING_TYPE_VECTOR_2D = 3 +VisualShader.VARYING_TYPE_VECTOR_3D = 4 +VisualShader.VARYING_TYPE_VECTOR_4D = 5 +VisualShader.VARYING_TYPE_BOOLEAN = 6 +VisualShader.VARYING_TYPE_TRANSFORM = 7 +VisualShader.VARYING_TYPE_MAX = 8 + +--- @param mode Shader.Mode +function VisualShader:set_mode(mode) end + +--- @param type VisualShader.Type +--- @param node VisualShaderNode +--- @param position Vector2 +--- @param id int +function VisualShader:add_node(type, node, position, id) end + +--- @param type VisualShader.Type +--- @param id int +--- @return VisualShaderNode +function VisualShader:get_node(type, id) end + +--- @param type VisualShader.Type +--- @param id int +--- @param position Vector2 +function VisualShader:set_node_position(type, id, position) end + +--- @param type VisualShader.Type +--- @param id int +--- @return Vector2 +function VisualShader:get_node_position(type, id) end + +--- @param type VisualShader.Type +--- @return PackedInt32Array +function VisualShader:get_node_list(type) end + +--- @param type VisualShader.Type +--- @return int +function VisualShader:get_valid_node_id(type) end + +--- @param type VisualShader.Type +--- @param id int +function VisualShader:remove_node(type, id) end + +--- @param type VisualShader.Type +--- @param id int +--- @param new_class StringName +function VisualShader:replace_node(type, id, new_class) end + +--- @param type VisualShader.Type +--- @param from_node int +--- @param from_port int +--- @param to_node int +--- @param to_port int +--- @return bool +function VisualShader:is_node_connection(type, from_node, from_port, to_node, to_port) end + +--- @param type VisualShader.Type +--- @param from_node int +--- @param from_port int +--- @param to_node int +--- @param to_port int +--- @return bool +function VisualShader:can_connect_nodes(type, from_node, from_port, to_node, to_port) end + +--- @param type VisualShader.Type +--- @param from_node int +--- @param from_port int +--- @param to_node int +--- @param to_port int +--- @return Error +function VisualShader:connect_nodes(type, from_node, from_port, to_node, to_port) end + +--- @param type VisualShader.Type +--- @param from_node int +--- @param from_port int +--- @param to_node int +--- @param to_port int +function VisualShader:disconnect_nodes(type, from_node, from_port, to_node, to_port) end + +--- @param type VisualShader.Type +--- @param from_node int +--- @param from_port int +--- @param to_node int +--- @param to_port int +function VisualShader:connect_nodes_forced(type, from_node, from_port, to_node, to_port) end + +--- @param type VisualShader.Type +--- @return Array[Dictionary] +function VisualShader:get_node_connections(type) end + +--- @param type VisualShader.Type +--- @param id int +--- @param frame int +function VisualShader:attach_node_to_frame(type, id, frame) end + +--- @param type VisualShader.Type +--- @param id int +function VisualShader:detach_node_from_frame(type, id) end + +--- @param name String +--- @param mode VisualShader.VaryingMode +--- @param type VisualShader.VaryingType +function VisualShader:add_varying(name, mode, type) end + +--- @param name String +function VisualShader:remove_varying(name) end + +--- @param name String +--- @return bool +function VisualShader:has_varying(name) end + +--- @param offset Vector2 +function VisualShader:set_graph_offset(offset) end + +--- @return Vector2 +function VisualShader:get_graph_offset() end + + +----------------------------------------------------------- +-- VisualShaderNode +----------------------------------------------------------- + +--- @class VisualShaderNode: Resource, { [string]: any } +--- @field output_port_for_preview int +--- @field default_input_values Array +--- @field expanded_output_ports Array +--- @field linked_parent_graph_frame int +VisualShaderNode = {} + +--- @alias VisualShaderNode.PortType `VisualShaderNode.PORT_TYPE_SCALAR` | `VisualShaderNode.PORT_TYPE_SCALAR_INT` | `VisualShaderNode.PORT_TYPE_SCALAR_UINT` | `VisualShaderNode.PORT_TYPE_VECTOR_2D` | `VisualShaderNode.PORT_TYPE_VECTOR_3D` | `VisualShaderNode.PORT_TYPE_VECTOR_4D` | `VisualShaderNode.PORT_TYPE_BOOLEAN` | `VisualShaderNode.PORT_TYPE_TRANSFORM` | `VisualShaderNode.PORT_TYPE_SAMPLER` | `VisualShaderNode.PORT_TYPE_MAX` +VisualShaderNode.PORT_TYPE_SCALAR = 0 +VisualShaderNode.PORT_TYPE_SCALAR_INT = 1 +VisualShaderNode.PORT_TYPE_SCALAR_UINT = 2 +VisualShaderNode.PORT_TYPE_VECTOR_2D = 3 +VisualShaderNode.PORT_TYPE_VECTOR_3D = 4 +VisualShaderNode.PORT_TYPE_VECTOR_4D = 5 +VisualShaderNode.PORT_TYPE_BOOLEAN = 6 +VisualShaderNode.PORT_TYPE_TRANSFORM = 7 +VisualShaderNode.PORT_TYPE_SAMPLER = 8 +VisualShaderNode.PORT_TYPE_MAX = 9 + +--- @param type VisualShaderNode.PortType +--- @return int +function VisualShaderNode:get_default_input_port(type) end + +--- @param port int +function VisualShaderNode:set_output_port_for_preview(port) end + +--- @return int +function VisualShaderNode:get_output_port_for_preview() end + +--- @param port int +--- @param value any +--- @param prev_value any? Default: null +function VisualShaderNode:set_input_port_default_value(port, value, prev_value) end + +--- @param port int +--- @return any +function VisualShaderNode:get_input_port_default_value(port) end + +--- @param port int +function VisualShaderNode:remove_input_port_default_value(port) end + +function VisualShaderNode:clear_default_input_values() end + +--- @param values Array +function VisualShaderNode:set_default_input_values(values) end + +--- @return Array +function VisualShaderNode:get_default_input_values() end + +--- @param frame int +function VisualShaderNode:set_frame(frame) end + +--- @return int +function VisualShaderNode:get_frame() end + + +----------------------------------------------------------- +-- VisualShaderNodeBillboard +----------------------------------------------------------- + +--- @class VisualShaderNodeBillboard: VisualShaderNode, { [string]: any } +--- @field billboard_type int +--- @field keep_scale bool +VisualShaderNodeBillboard = {} + +--- @return VisualShaderNodeBillboard +function VisualShaderNodeBillboard:new() end + +--- @alias VisualShaderNodeBillboard.BillboardType `VisualShaderNodeBillboard.BILLBOARD_TYPE_DISABLED` | `VisualShaderNodeBillboard.BILLBOARD_TYPE_ENABLED` | `VisualShaderNodeBillboard.BILLBOARD_TYPE_FIXED_Y` | `VisualShaderNodeBillboard.BILLBOARD_TYPE_PARTICLES` | `VisualShaderNodeBillboard.BILLBOARD_TYPE_MAX` +VisualShaderNodeBillboard.BILLBOARD_TYPE_DISABLED = 0 +VisualShaderNodeBillboard.BILLBOARD_TYPE_ENABLED = 1 +VisualShaderNodeBillboard.BILLBOARD_TYPE_FIXED_Y = 2 +VisualShaderNodeBillboard.BILLBOARD_TYPE_PARTICLES = 3 +VisualShaderNodeBillboard.BILLBOARD_TYPE_MAX = 4 + +--- @param billboard_type VisualShaderNodeBillboard.BillboardType +function VisualShaderNodeBillboard:set_billboard_type(billboard_type) end + +--- @return VisualShaderNodeBillboard.BillboardType +function VisualShaderNodeBillboard:get_billboard_type() end + +--- @param enabled bool +function VisualShaderNodeBillboard:set_keep_scale_enabled(enabled) end + +--- @return bool +function VisualShaderNodeBillboard:is_keep_scale_enabled() end + + +----------------------------------------------------------- +-- VisualShaderNodeBooleanConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeBooleanConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant bool +VisualShaderNodeBooleanConstant = {} + +--- @return VisualShaderNodeBooleanConstant +function VisualShaderNodeBooleanConstant:new() end + +--- @param constant bool +function VisualShaderNodeBooleanConstant:set_constant(constant) end + +--- @return bool +function VisualShaderNodeBooleanConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeBooleanParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeBooleanParameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value bool +VisualShaderNodeBooleanParameter = {} + +--- @return VisualShaderNodeBooleanParameter +function VisualShaderNodeBooleanParameter:new() end + +--- @param enabled bool +function VisualShaderNodeBooleanParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeBooleanParameter:is_default_value_enabled() end + +--- @param value bool +function VisualShaderNodeBooleanParameter:set_default_value(value) end + +--- @return bool +function VisualShaderNodeBooleanParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeClamp +----------------------------------------------------------- + +--- @class VisualShaderNodeClamp: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeClamp = {} + +--- @return VisualShaderNodeClamp +function VisualShaderNodeClamp:new() end + +--- @alias VisualShaderNodeClamp.OpType `VisualShaderNodeClamp.OP_TYPE_FLOAT` | `VisualShaderNodeClamp.OP_TYPE_INT` | `VisualShaderNodeClamp.OP_TYPE_UINT` | `VisualShaderNodeClamp.OP_TYPE_VECTOR_2D` | `VisualShaderNodeClamp.OP_TYPE_VECTOR_3D` | `VisualShaderNodeClamp.OP_TYPE_VECTOR_4D` | `VisualShaderNodeClamp.OP_TYPE_MAX` +VisualShaderNodeClamp.OP_TYPE_FLOAT = 0 +VisualShaderNodeClamp.OP_TYPE_INT = 1 +VisualShaderNodeClamp.OP_TYPE_UINT = 2 +VisualShaderNodeClamp.OP_TYPE_VECTOR_2D = 3 +VisualShaderNodeClamp.OP_TYPE_VECTOR_3D = 4 +VisualShaderNodeClamp.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeClamp.OP_TYPE_MAX = 6 + +--- @param op_type VisualShaderNodeClamp.OpType +function VisualShaderNodeClamp:set_op_type(op_type) end + +--- @return VisualShaderNodeClamp.OpType +function VisualShaderNodeClamp:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeColorConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeColorConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant Color +VisualShaderNodeColorConstant = {} + +--- @return VisualShaderNodeColorConstant +function VisualShaderNodeColorConstant:new() end + +--- @param constant Color +function VisualShaderNodeColorConstant:set_constant(constant) end + +--- @return Color +function VisualShaderNodeColorConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeColorFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeColorFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeColorFunc = {} + +--- @return VisualShaderNodeColorFunc +function VisualShaderNodeColorFunc:new() end + +--- @alias VisualShaderNodeColorFunc.Function `VisualShaderNodeColorFunc.FUNC_GRAYSCALE` | `VisualShaderNodeColorFunc.FUNC_HSV2RGB` | `VisualShaderNodeColorFunc.FUNC_RGB2HSV` | `VisualShaderNodeColorFunc.FUNC_SEPIA` | `VisualShaderNodeColorFunc.FUNC_LINEAR_TO_SRGB` | `VisualShaderNodeColorFunc.FUNC_SRGB_TO_LINEAR` | `VisualShaderNodeColorFunc.FUNC_MAX` +VisualShaderNodeColorFunc.FUNC_GRAYSCALE = 0 +VisualShaderNodeColorFunc.FUNC_HSV2RGB = 1 +VisualShaderNodeColorFunc.FUNC_RGB2HSV = 2 +VisualShaderNodeColorFunc.FUNC_SEPIA = 3 +VisualShaderNodeColorFunc.FUNC_LINEAR_TO_SRGB = 4 +VisualShaderNodeColorFunc.FUNC_SRGB_TO_LINEAR = 5 +VisualShaderNodeColorFunc.FUNC_MAX = 6 + +--- @param func VisualShaderNodeColorFunc.Function +function VisualShaderNodeColorFunc:set_function(func) end + +--- @return VisualShaderNodeColorFunc.Function +function VisualShaderNodeColorFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeColorOp +----------------------------------------------------------- + +--- @class VisualShaderNodeColorOp: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeColorOp = {} + +--- @return VisualShaderNodeColorOp +function VisualShaderNodeColorOp:new() end + +--- @alias VisualShaderNodeColorOp.Operator `VisualShaderNodeColorOp.OP_SCREEN` | `VisualShaderNodeColorOp.OP_DIFFERENCE` | `VisualShaderNodeColorOp.OP_DARKEN` | `VisualShaderNodeColorOp.OP_LIGHTEN` | `VisualShaderNodeColorOp.OP_OVERLAY` | `VisualShaderNodeColorOp.OP_DODGE` | `VisualShaderNodeColorOp.OP_BURN` | `VisualShaderNodeColorOp.OP_SOFT_LIGHT` | `VisualShaderNodeColorOp.OP_HARD_LIGHT` | `VisualShaderNodeColorOp.OP_MAX` +VisualShaderNodeColorOp.OP_SCREEN = 0 +VisualShaderNodeColorOp.OP_DIFFERENCE = 1 +VisualShaderNodeColorOp.OP_DARKEN = 2 +VisualShaderNodeColorOp.OP_LIGHTEN = 3 +VisualShaderNodeColorOp.OP_OVERLAY = 4 +VisualShaderNodeColorOp.OP_DODGE = 5 +VisualShaderNodeColorOp.OP_BURN = 6 +VisualShaderNodeColorOp.OP_SOFT_LIGHT = 7 +VisualShaderNodeColorOp.OP_HARD_LIGHT = 8 +VisualShaderNodeColorOp.OP_MAX = 9 + +--- @param op VisualShaderNodeColorOp.Operator +function VisualShaderNodeColorOp:set_operator(op) end + +--- @return VisualShaderNodeColorOp.Operator +function VisualShaderNodeColorOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeColorParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeColorParameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value Color +VisualShaderNodeColorParameter = {} + +--- @return VisualShaderNodeColorParameter +function VisualShaderNodeColorParameter:new() end + +--- @param enabled bool +function VisualShaderNodeColorParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeColorParameter:is_default_value_enabled() end + +--- @param value Color +function VisualShaderNodeColorParameter:set_default_value(value) end + +--- @return Color +function VisualShaderNodeColorParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeComment +----------------------------------------------------------- + +--- @class VisualShaderNodeComment: VisualShaderNodeFrame, { [string]: any } +--- @field description String +VisualShaderNodeComment = {} + +--- @return VisualShaderNodeComment +function VisualShaderNodeComment:new() end + +--- @param description String +function VisualShaderNodeComment:set_description(description) end + +--- @return String +function VisualShaderNodeComment:get_description() end + + +----------------------------------------------------------- +-- VisualShaderNodeCompare +----------------------------------------------------------- + +--- @class VisualShaderNodeCompare: VisualShaderNode, { [string]: any } +--- @field type int +--- @field function int +--- @field condition int +VisualShaderNodeCompare = {} + +--- @return VisualShaderNodeCompare +function VisualShaderNodeCompare:new() end + +--- @alias VisualShaderNodeCompare.ComparisonType `VisualShaderNodeCompare.CTYPE_SCALAR` | `VisualShaderNodeCompare.CTYPE_SCALAR_INT` | `VisualShaderNodeCompare.CTYPE_SCALAR_UINT` | `VisualShaderNodeCompare.CTYPE_VECTOR_2D` | `VisualShaderNodeCompare.CTYPE_VECTOR_3D` | `VisualShaderNodeCompare.CTYPE_VECTOR_4D` | `VisualShaderNodeCompare.CTYPE_BOOLEAN` | `VisualShaderNodeCompare.CTYPE_TRANSFORM` | `VisualShaderNodeCompare.CTYPE_MAX` +VisualShaderNodeCompare.CTYPE_SCALAR = 0 +VisualShaderNodeCompare.CTYPE_SCALAR_INT = 1 +VisualShaderNodeCompare.CTYPE_SCALAR_UINT = 2 +VisualShaderNodeCompare.CTYPE_VECTOR_2D = 3 +VisualShaderNodeCompare.CTYPE_VECTOR_3D = 4 +VisualShaderNodeCompare.CTYPE_VECTOR_4D = 5 +VisualShaderNodeCompare.CTYPE_BOOLEAN = 6 +VisualShaderNodeCompare.CTYPE_TRANSFORM = 7 +VisualShaderNodeCompare.CTYPE_MAX = 8 + +--- @alias VisualShaderNodeCompare.Function `VisualShaderNodeCompare.FUNC_EQUAL` | `VisualShaderNodeCompare.FUNC_NOT_EQUAL` | `VisualShaderNodeCompare.FUNC_GREATER_THAN` | `VisualShaderNodeCompare.FUNC_GREATER_THAN_EQUAL` | `VisualShaderNodeCompare.FUNC_LESS_THAN` | `VisualShaderNodeCompare.FUNC_LESS_THAN_EQUAL` | `VisualShaderNodeCompare.FUNC_MAX` +VisualShaderNodeCompare.FUNC_EQUAL = 0 +VisualShaderNodeCompare.FUNC_NOT_EQUAL = 1 +VisualShaderNodeCompare.FUNC_GREATER_THAN = 2 +VisualShaderNodeCompare.FUNC_GREATER_THAN_EQUAL = 3 +VisualShaderNodeCompare.FUNC_LESS_THAN = 4 +VisualShaderNodeCompare.FUNC_LESS_THAN_EQUAL = 5 +VisualShaderNodeCompare.FUNC_MAX = 6 + +--- @alias VisualShaderNodeCompare.Condition `VisualShaderNodeCompare.COND_ALL` | `VisualShaderNodeCompare.COND_ANY` | `VisualShaderNodeCompare.COND_MAX` +VisualShaderNodeCompare.COND_ALL = 0 +VisualShaderNodeCompare.COND_ANY = 1 +VisualShaderNodeCompare.COND_MAX = 2 + +--- @param type VisualShaderNodeCompare.ComparisonType +function VisualShaderNodeCompare:set_comparison_type(type) end + +--- @return VisualShaderNodeCompare.ComparisonType +function VisualShaderNodeCompare:get_comparison_type() end + +--- @param func VisualShaderNodeCompare.Function +function VisualShaderNodeCompare:set_function(func) end + +--- @return VisualShaderNodeCompare.Function +function VisualShaderNodeCompare:get_function() end + +--- @param condition VisualShaderNodeCompare.Condition +function VisualShaderNodeCompare:set_condition(condition) end + +--- @return VisualShaderNodeCompare.Condition +function VisualShaderNodeCompare:get_condition() end + + +----------------------------------------------------------- +-- VisualShaderNodeConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeConstant: VisualShaderNode, { [string]: any } +VisualShaderNodeConstant = {} + + +----------------------------------------------------------- +-- VisualShaderNodeCubemap +----------------------------------------------------------- + +--- @class VisualShaderNodeCubemap: VisualShaderNode, { [string]: any } +--- @field source int +--- @field cube_map Cubemap | CompressedCubemap | PlaceholderCubemap | TextureCubemapRD +--- @field texture_type int +VisualShaderNodeCubemap = {} + +--- @return VisualShaderNodeCubemap +function VisualShaderNodeCubemap:new() end + +--- @alias VisualShaderNodeCubemap.Source `VisualShaderNodeCubemap.SOURCE_TEXTURE` | `VisualShaderNodeCubemap.SOURCE_PORT` | `VisualShaderNodeCubemap.SOURCE_MAX` +VisualShaderNodeCubemap.SOURCE_TEXTURE = 0 +VisualShaderNodeCubemap.SOURCE_PORT = 1 +VisualShaderNodeCubemap.SOURCE_MAX = 2 + +--- @alias VisualShaderNodeCubemap.TextureType `VisualShaderNodeCubemap.TYPE_DATA` | `VisualShaderNodeCubemap.TYPE_COLOR` | `VisualShaderNodeCubemap.TYPE_NORMAL_MAP` | `VisualShaderNodeCubemap.TYPE_MAX` +VisualShaderNodeCubemap.TYPE_DATA = 0 +VisualShaderNodeCubemap.TYPE_COLOR = 1 +VisualShaderNodeCubemap.TYPE_NORMAL_MAP = 2 +VisualShaderNodeCubemap.TYPE_MAX = 3 + +--- @param value VisualShaderNodeCubemap.Source +function VisualShaderNodeCubemap:set_source(value) end + +--- @return VisualShaderNodeCubemap.Source +function VisualShaderNodeCubemap:get_source() end + +--- @param value TextureLayered +function VisualShaderNodeCubemap:set_cube_map(value) end + +--- @return TextureLayered +function VisualShaderNodeCubemap:get_cube_map() end + +--- @param value VisualShaderNodeCubemap.TextureType +function VisualShaderNodeCubemap:set_texture_type(value) end + +--- @return VisualShaderNodeCubemap.TextureType +function VisualShaderNodeCubemap:get_texture_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeCubemapParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeCubemapParameter: VisualShaderNodeTextureParameter, { [string]: any } +VisualShaderNodeCubemapParameter = {} + +--- @return VisualShaderNodeCubemapParameter +function VisualShaderNodeCubemapParameter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeCurveTexture +----------------------------------------------------------- + +--- @class VisualShaderNodeCurveTexture: VisualShaderNodeResizableBase, { [string]: any } +--- @field texture CurveTexture +VisualShaderNodeCurveTexture = {} + +--- @return VisualShaderNodeCurveTexture +function VisualShaderNodeCurveTexture:new() end + +--- @param texture CurveTexture +function VisualShaderNodeCurveTexture:set_texture(texture) end + +--- @return CurveTexture +function VisualShaderNodeCurveTexture:get_texture() end + + +----------------------------------------------------------- +-- VisualShaderNodeCurveXYZTexture +----------------------------------------------------------- + +--- @class VisualShaderNodeCurveXYZTexture: VisualShaderNodeResizableBase, { [string]: any } +--- @field texture CurveXYZTexture +VisualShaderNodeCurveXYZTexture = {} + +--- @return VisualShaderNodeCurveXYZTexture +function VisualShaderNodeCurveXYZTexture:new() end + +--- @param texture CurveXYZTexture +function VisualShaderNodeCurveXYZTexture:set_texture(texture) end + +--- @return CurveXYZTexture +function VisualShaderNodeCurveXYZTexture:get_texture() end + + +----------------------------------------------------------- +-- VisualShaderNodeCustom +----------------------------------------------------------- + +--- @class VisualShaderNodeCustom: VisualShaderNode, { [string]: any } +--- @field initialized bool +--- @field properties String +VisualShaderNodeCustom = {} + +--- @return VisualShaderNodeCustom +function VisualShaderNodeCustom:new() end + +--- @return String +function VisualShaderNodeCustom:_get_name() end + +--- @return String +function VisualShaderNodeCustom:_get_description() end + +--- @return String +function VisualShaderNodeCustom:_get_category() end + +--- @return VisualShaderNode.PortType +function VisualShaderNodeCustom:_get_return_icon_type() end + +--- @return int +function VisualShaderNodeCustom:_get_input_port_count() end + +--- @param port int +--- @return VisualShaderNode.PortType +function VisualShaderNodeCustom:_get_input_port_type(port) end + +--- @param port int +--- @return String +function VisualShaderNodeCustom:_get_input_port_name(port) end + +--- @param port int +--- @return any +function VisualShaderNodeCustom:_get_input_port_default_value(port) end + +--- @param type VisualShaderNode.PortType +--- @return int +function VisualShaderNodeCustom:_get_default_input_port(type) end + +--- @return int +function VisualShaderNodeCustom:_get_output_port_count() end + +--- @param port int +--- @return VisualShaderNode.PortType +function VisualShaderNodeCustom:_get_output_port_type(port) end + +--- @param port int +--- @return String +function VisualShaderNodeCustom:_get_output_port_name(port) end + +--- @return int +function VisualShaderNodeCustom:_get_property_count() end + +--- @param index int +--- @return String +function VisualShaderNodeCustom:_get_property_name(index) end + +--- @param index int +--- @return int +function VisualShaderNodeCustom:_get_property_default_index(index) end + +--- @param index int +--- @return PackedStringArray +function VisualShaderNodeCustom:_get_property_options(index) end + +--- @param input_vars Array[String] +--- @param output_vars Array[String] +--- @param mode Shader.Mode +--- @param type VisualShader.Type +--- @return String +function VisualShaderNodeCustom:_get_code(input_vars, output_vars, mode, type) end + +--- @param mode Shader.Mode +--- @param type VisualShader.Type +--- @return String +function VisualShaderNodeCustom:_get_func_code(mode, type) end + +--- @param mode Shader.Mode +--- @return String +function VisualShaderNodeCustom:_get_global_code(mode) end + +--- @return bool +function VisualShaderNodeCustom:_is_highend() end + +--- @param mode Shader.Mode +--- @param type VisualShader.Type +--- @return bool +function VisualShaderNodeCustom:_is_available(mode, type) end + +--- @param option int +--- @return int +function VisualShaderNodeCustom:get_option_index(option) end + + +----------------------------------------------------------- +-- VisualShaderNodeDerivativeFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeDerivativeFunc: VisualShaderNode, { [string]: any } +--- @field op_type int +--- @field function int +--- @field precision int +VisualShaderNodeDerivativeFunc = {} + +--- @return VisualShaderNodeDerivativeFunc +function VisualShaderNodeDerivativeFunc:new() end + +--- @alias VisualShaderNodeDerivativeFunc.OpType `VisualShaderNodeDerivativeFunc.OP_TYPE_SCALAR` | `VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_2D` | `VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_3D` | `VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_4D` | `VisualShaderNodeDerivativeFunc.OP_TYPE_MAX` +VisualShaderNodeDerivativeFunc.OP_TYPE_SCALAR = 0 +VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_3D = 2 +VisualShaderNodeDerivativeFunc.OP_TYPE_VECTOR_4D = 3 +VisualShaderNodeDerivativeFunc.OP_TYPE_MAX = 4 + +--- @alias VisualShaderNodeDerivativeFunc.Function `VisualShaderNodeDerivativeFunc.FUNC_SUM` | `VisualShaderNodeDerivativeFunc.FUNC_X` | `VisualShaderNodeDerivativeFunc.FUNC_Y` | `VisualShaderNodeDerivativeFunc.FUNC_MAX` +VisualShaderNodeDerivativeFunc.FUNC_SUM = 0 +VisualShaderNodeDerivativeFunc.FUNC_X = 1 +VisualShaderNodeDerivativeFunc.FUNC_Y = 2 +VisualShaderNodeDerivativeFunc.FUNC_MAX = 3 + +--- @alias VisualShaderNodeDerivativeFunc.Precision `VisualShaderNodeDerivativeFunc.PRECISION_NONE` | `VisualShaderNodeDerivativeFunc.PRECISION_COARSE` | `VisualShaderNodeDerivativeFunc.PRECISION_FINE` | `VisualShaderNodeDerivativeFunc.PRECISION_MAX` +VisualShaderNodeDerivativeFunc.PRECISION_NONE = 0 +VisualShaderNodeDerivativeFunc.PRECISION_COARSE = 1 +VisualShaderNodeDerivativeFunc.PRECISION_FINE = 2 +VisualShaderNodeDerivativeFunc.PRECISION_MAX = 3 + +--- @param type VisualShaderNodeDerivativeFunc.OpType +function VisualShaderNodeDerivativeFunc:set_op_type(type) end + +--- @return VisualShaderNodeDerivativeFunc.OpType +function VisualShaderNodeDerivativeFunc:get_op_type() end + +--- @param func VisualShaderNodeDerivativeFunc.Function +function VisualShaderNodeDerivativeFunc:set_function(func) end + +--- @return VisualShaderNodeDerivativeFunc.Function +function VisualShaderNodeDerivativeFunc:get_function() end + +--- @param precision VisualShaderNodeDerivativeFunc.Precision +function VisualShaderNodeDerivativeFunc:set_precision(precision) end + +--- @return VisualShaderNodeDerivativeFunc.Precision +function VisualShaderNodeDerivativeFunc:get_precision() end + + +----------------------------------------------------------- +-- VisualShaderNodeDeterminant +----------------------------------------------------------- + +--- @class VisualShaderNodeDeterminant: VisualShaderNode, { [string]: any } +VisualShaderNodeDeterminant = {} + +--- @return VisualShaderNodeDeterminant +function VisualShaderNodeDeterminant:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeDistanceFade +----------------------------------------------------------- + +--- @class VisualShaderNodeDistanceFade: VisualShaderNode, { [string]: any } +VisualShaderNodeDistanceFade = {} + +--- @return VisualShaderNodeDistanceFade +function VisualShaderNodeDistanceFade:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeDotProduct +----------------------------------------------------------- + +--- @class VisualShaderNodeDotProduct: VisualShaderNode, { [string]: any } +VisualShaderNodeDotProduct = {} + +--- @return VisualShaderNodeDotProduct +function VisualShaderNodeDotProduct:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeExpression +----------------------------------------------------------- + +--- @class VisualShaderNodeExpression: VisualShaderNodeGroupBase, { [string]: any } +--- @field expression String +VisualShaderNodeExpression = {} + +--- @return VisualShaderNodeExpression +function VisualShaderNodeExpression:new() end + +--- @param expression String +function VisualShaderNodeExpression:set_expression(expression) end + +--- @return String +function VisualShaderNodeExpression:get_expression() end + + +----------------------------------------------------------- +-- VisualShaderNodeFaceForward +----------------------------------------------------------- + +--- @class VisualShaderNodeFaceForward: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeFaceForward = {} + +--- @return VisualShaderNodeFaceForward +function VisualShaderNodeFaceForward:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeFloatConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeFloatConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant float +VisualShaderNodeFloatConstant = {} + +--- @return VisualShaderNodeFloatConstant +function VisualShaderNodeFloatConstant:new() end + +--- @param constant float +function VisualShaderNodeFloatConstant:set_constant(constant) end + +--- @return float +function VisualShaderNodeFloatConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeFloatFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeFloatFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeFloatFunc = {} + +--- @return VisualShaderNodeFloatFunc +function VisualShaderNodeFloatFunc:new() end + +--- @alias VisualShaderNodeFloatFunc.Function `VisualShaderNodeFloatFunc.FUNC_SIN` | `VisualShaderNodeFloatFunc.FUNC_COS` | `VisualShaderNodeFloatFunc.FUNC_TAN` | `VisualShaderNodeFloatFunc.FUNC_ASIN` | `VisualShaderNodeFloatFunc.FUNC_ACOS` | `VisualShaderNodeFloatFunc.FUNC_ATAN` | `VisualShaderNodeFloatFunc.FUNC_SINH` | `VisualShaderNodeFloatFunc.FUNC_COSH` | `VisualShaderNodeFloatFunc.FUNC_TANH` | `VisualShaderNodeFloatFunc.FUNC_LOG` | `VisualShaderNodeFloatFunc.FUNC_EXP` | `VisualShaderNodeFloatFunc.FUNC_SQRT` | `VisualShaderNodeFloatFunc.FUNC_ABS` | `VisualShaderNodeFloatFunc.FUNC_SIGN` | `VisualShaderNodeFloatFunc.FUNC_FLOOR` | `VisualShaderNodeFloatFunc.FUNC_ROUND` | `VisualShaderNodeFloatFunc.FUNC_CEIL` | `VisualShaderNodeFloatFunc.FUNC_FRACT` | `VisualShaderNodeFloatFunc.FUNC_SATURATE` | `VisualShaderNodeFloatFunc.FUNC_NEGATE` | `VisualShaderNodeFloatFunc.FUNC_ACOSH` | `VisualShaderNodeFloatFunc.FUNC_ASINH` | `VisualShaderNodeFloatFunc.FUNC_ATANH` | `VisualShaderNodeFloatFunc.FUNC_DEGREES` | `VisualShaderNodeFloatFunc.FUNC_EXP2` | `VisualShaderNodeFloatFunc.FUNC_INVERSE_SQRT` | `VisualShaderNodeFloatFunc.FUNC_LOG2` | `VisualShaderNodeFloatFunc.FUNC_RADIANS` | `VisualShaderNodeFloatFunc.FUNC_RECIPROCAL` | `VisualShaderNodeFloatFunc.FUNC_ROUNDEVEN` | `VisualShaderNodeFloatFunc.FUNC_TRUNC` | `VisualShaderNodeFloatFunc.FUNC_ONEMINUS` | `VisualShaderNodeFloatFunc.FUNC_MAX` +VisualShaderNodeFloatFunc.FUNC_SIN = 0 +VisualShaderNodeFloatFunc.FUNC_COS = 1 +VisualShaderNodeFloatFunc.FUNC_TAN = 2 +VisualShaderNodeFloatFunc.FUNC_ASIN = 3 +VisualShaderNodeFloatFunc.FUNC_ACOS = 4 +VisualShaderNodeFloatFunc.FUNC_ATAN = 5 +VisualShaderNodeFloatFunc.FUNC_SINH = 6 +VisualShaderNodeFloatFunc.FUNC_COSH = 7 +VisualShaderNodeFloatFunc.FUNC_TANH = 8 +VisualShaderNodeFloatFunc.FUNC_LOG = 9 +VisualShaderNodeFloatFunc.FUNC_EXP = 10 +VisualShaderNodeFloatFunc.FUNC_SQRT = 11 +VisualShaderNodeFloatFunc.FUNC_ABS = 12 +VisualShaderNodeFloatFunc.FUNC_SIGN = 13 +VisualShaderNodeFloatFunc.FUNC_FLOOR = 14 +VisualShaderNodeFloatFunc.FUNC_ROUND = 15 +VisualShaderNodeFloatFunc.FUNC_CEIL = 16 +VisualShaderNodeFloatFunc.FUNC_FRACT = 17 +VisualShaderNodeFloatFunc.FUNC_SATURATE = 18 +VisualShaderNodeFloatFunc.FUNC_NEGATE = 19 +VisualShaderNodeFloatFunc.FUNC_ACOSH = 20 +VisualShaderNodeFloatFunc.FUNC_ASINH = 21 +VisualShaderNodeFloatFunc.FUNC_ATANH = 22 +VisualShaderNodeFloatFunc.FUNC_DEGREES = 23 +VisualShaderNodeFloatFunc.FUNC_EXP2 = 24 +VisualShaderNodeFloatFunc.FUNC_INVERSE_SQRT = 25 +VisualShaderNodeFloatFunc.FUNC_LOG2 = 26 +VisualShaderNodeFloatFunc.FUNC_RADIANS = 27 +VisualShaderNodeFloatFunc.FUNC_RECIPROCAL = 28 +VisualShaderNodeFloatFunc.FUNC_ROUNDEVEN = 29 +VisualShaderNodeFloatFunc.FUNC_TRUNC = 30 +VisualShaderNodeFloatFunc.FUNC_ONEMINUS = 31 +VisualShaderNodeFloatFunc.FUNC_MAX = 32 + +--- @param func VisualShaderNodeFloatFunc.Function +function VisualShaderNodeFloatFunc:set_function(func) end + +--- @return VisualShaderNodeFloatFunc.Function +function VisualShaderNodeFloatFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeFloatOp +----------------------------------------------------------- + +--- @class VisualShaderNodeFloatOp: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeFloatOp = {} + +--- @return VisualShaderNodeFloatOp +function VisualShaderNodeFloatOp:new() end + +--- @alias VisualShaderNodeFloatOp.Operator `VisualShaderNodeFloatOp.OP_ADD` | `VisualShaderNodeFloatOp.OP_SUB` | `VisualShaderNodeFloatOp.OP_MUL` | `VisualShaderNodeFloatOp.OP_DIV` | `VisualShaderNodeFloatOp.OP_MOD` | `VisualShaderNodeFloatOp.OP_POW` | `VisualShaderNodeFloatOp.OP_MAX` | `VisualShaderNodeFloatOp.OP_MIN` | `VisualShaderNodeFloatOp.OP_ATAN2` | `VisualShaderNodeFloatOp.OP_STEP` | `VisualShaderNodeFloatOp.OP_ENUM_SIZE` +VisualShaderNodeFloatOp.OP_ADD = 0 +VisualShaderNodeFloatOp.OP_SUB = 1 +VisualShaderNodeFloatOp.OP_MUL = 2 +VisualShaderNodeFloatOp.OP_DIV = 3 +VisualShaderNodeFloatOp.OP_MOD = 4 +VisualShaderNodeFloatOp.OP_POW = 5 +VisualShaderNodeFloatOp.OP_MAX = 6 +VisualShaderNodeFloatOp.OP_MIN = 7 +VisualShaderNodeFloatOp.OP_ATAN2 = 8 +VisualShaderNodeFloatOp.OP_STEP = 9 +VisualShaderNodeFloatOp.OP_ENUM_SIZE = 10 + +--- @param op VisualShaderNodeFloatOp.Operator +function VisualShaderNodeFloatOp:set_operator(op) end + +--- @return VisualShaderNodeFloatOp.Operator +function VisualShaderNodeFloatOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeFloatParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeFloatParameter: VisualShaderNodeParameter, { [string]: any } +--- @field hint int +--- @field min float +--- @field max float +--- @field step float +--- @field default_value_enabled bool +--- @field default_value float +VisualShaderNodeFloatParameter = {} + +--- @return VisualShaderNodeFloatParameter +function VisualShaderNodeFloatParameter:new() end + +--- @alias VisualShaderNodeFloatParameter.Hint `VisualShaderNodeFloatParameter.HINT_NONE` | `VisualShaderNodeFloatParameter.HINT_RANGE` | `VisualShaderNodeFloatParameter.HINT_RANGE_STEP` | `VisualShaderNodeFloatParameter.HINT_MAX` +VisualShaderNodeFloatParameter.HINT_NONE = 0 +VisualShaderNodeFloatParameter.HINT_RANGE = 1 +VisualShaderNodeFloatParameter.HINT_RANGE_STEP = 2 +VisualShaderNodeFloatParameter.HINT_MAX = 3 + +--- @param hint VisualShaderNodeFloatParameter.Hint +function VisualShaderNodeFloatParameter:set_hint(hint) end + +--- @return VisualShaderNodeFloatParameter.Hint +function VisualShaderNodeFloatParameter:get_hint() end + +--- @param value float +function VisualShaderNodeFloatParameter:set_min(value) end + +--- @return float +function VisualShaderNodeFloatParameter:get_min() end + +--- @param value float +function VisualShaderNodeFloatParameter:set_max(value) end + +--- @return float +function VisualShaderNodeFloatParameter:get_max() end + +--- @param value float +function VisualShaderNodeFloatParameter:set_step(value) end + +--- @return float +function VisualShaderNodeFloatParameter:get_step() end + +--- @param enabled bool +function VisualShaderNodeFloatParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeFloatParameter:is_default_value_enabled() end + +--- @param value float +function VisualShaderNodeFloatParameter:set_default_value(value) end + +--- @return float +function VisualShaderNodeFloatParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeFrame +----------------------------------------------------------- + +--- @class VisualShaderNodeFrame: VisualShaderNodeResizableBase, { [string]: any } +--- @field title String +--- @field tint_color_enabled bool +--- @field tint_color Color +--- @field autoshrink bool +--- @field attached_nodes PackedInt32Array +VisualShaderNodeFrame = {} + +--- @return VisualShaderNodeFrame +function VisualShaderNodeFrame:new() end + +--- @param title String +function VisualShaderNodeFrame:set_title(title) end + +--- @return String +function VisualShaderNodeFrame:get_title() end + +--- @param enable bool +function VisualShaderNodeFrame:set_tint_color_enabled(enable) end + +--- @return bool +function VisualShaderNodeFrame:is_tint_color_enabled() end + +--- @param color Color +function VisualShaderNodeFrame:set_tint_color(color) end + +--- @return Color +function VisualShaderNodeFrame:get_tint_color() end + +--- @param enable bool +function VisualShaderNodeFrame:set_autoshrink_enabled(enable) end + +--- @return bool +function VisualShaderNodeFrame:is_autoshrink_enabled() end + +--- @param node int +function VisualShaderNodeFrame:add_attached_node(node) end + +--- @param node int +function VisualShaderNodeFrame:remove_attached_node(node) end + +--- @param attached_nodes PackedInt32Array +function VisualShaderNodeFrame:set_attached_nodes(attached_nodes) end + +--- @return PackedInt32Array +function VisualShaderNodeFrame:get_attached_nodes() end + + +----------------------------------------------------------- +-- VisualShaderNodeFresnel +----------------------------------------------------------- + +--- @class VisualShaderNodeFresnel: VisualShaderNode, { [string]: any } +VisualShaderNodeFresnel = {} + +--- @return VisualShaderNodeFresnel +function VisualShaderNodeFresnel:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeGlobalExpression +----------------------------------------------------------- + +--- @class VisualShaderNodeGlobalExpression: VisualShaderNodeExpression, { [string]: any } +VisualShaderNodeGlobalExpression = {} + +--- @return VisualShaderNodeGlobalExpression +function VisualShaderNodeGlobalExpression:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeGroupBase +----------------------------------------------------------- + +--- @class VisualShaderNodeGroupBase: VisualShaderNodeResizableBase, { [string]: any } +VisualShaderNodeGroupBase = {} + +--- @param inputs String +function VisualShaderNodeGroupBase:set_inputs(inputs) end + +--- @return String +function VisualShaderNodeGroupBase:get_inputs() end + +--- @param outputs String +function VisualShaderNodeGroupBase:set_outputs(outputs) end + +--- @return String +function VisualShaderNodeGroupBase:get_outputs() end + +--- @param name String +--- @return bool +function VisualShaderNodeGroupBase:is_valid_port_name(name) end + +--- @param id int +--- @param type int +--- @param name String +function VisualShaderNodeGroupBase:add_input_port(id, type, name) end + +--- @param id int +function VisualShaderNodeGroupBase:remove_input_port(id) end + +--- @return int +function VisualShaderNodeGroupBase:get_input_port_count() end + +--- @param id int +--- @return bool +function VisualShaderNodeGroupBase:has_input_port(id) end + +function VisualShaderNodeGroupBase:clear_input_ports() end + +--- @param id int +--- @param type int +--- @param name String +function VisualShaderNodeGroupBase:add_output_port(id, type, name) end + +--- @param id int +function VisualShaderNodeGroupBase:remove_output_port(id) end + +--- @return int +function VisualShaderNodeGroupBase:get_output_port_count() end + +--- @param id int +--- @return bool +function VisualShaderNodeGroupBase:has_output_port(id) end + +function VisualShaderNodeGroupBase:clear_output_ports() end + +--- @param id int +--- @param name String +function VisualShaderNodeGroupBase:set_input_port_name(id, name) end + +--- @param id int +--- @param type int +function VisualShaderNodeGroupBase:set_input_port_type(id, type) end + +--- @param id int +--- @param name String +function VisualShaderNodeGroupBase:set_output_port_name(id, name) end + +--- @param id int +--- @param type int +function VisualShaderNodeGroupBase:set_output_port_type(id, type) end + +--- @return int +function VisualShaderNodeGroupBase:get_free_input_port_id() end + +--- @return int +function VisualShaderNodeGroupBase:get_free_output_port_id() end + + +----------------------------------------------------------- +-- VisualShaderNodeIf +----------------------------------------------------------- + +--- @class VisualShaderNodeIf: VisualShaderNode, { [string]: any } +VisualShaderNodeIf = {} + +--- @return VisualShaderNodeIf +function VisualShaderNodeIf:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeInput +----------------------------------------------------------- + +--- @class VisualShaderNodeInput: VisualShaderNode, { [string]: any } +--- @field input_name StringName +VisualShaderNodeInput = {} + +--- @return VisualShaderNodeInput +function VisualShaderNodeInput:new() end + +VisualShaderNodeInput.input_type_changed = Signal() + +--- @param name String +function VisualShaderNodeInput:set_input_name(name) end + +--- @return String +function VisualShaderNodeInput:get_input_name() end + +--- @return String +function VisualShaderNodeInput:get_input_real_name() end + + +----------------------------------------------------------- +-- VisualShaderNodeIntConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeIntConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant int +VisualShaderNodeIntConstant = {} + +--- @return VisualShaderNodeIntConstant +function VisualShaderNodeIntConstant:new() end + +--- @param constant int +function VisualShaderNodeIntConstant:set_constant(constant) end + +--- @return int +function VisualShaderNodeIntConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeIntFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeIntFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeIntFunc = {} + +--- @return VisualShaderNodeIntFunc +function VisualShaderNodeIntFunc:new() end + +--- @alias VisualShaderNodeIntFunc.Function `VisualShaderNodeIntFunc.FUNC_ABS` | `VisualShaderNodeIntFunc.FUNC_NEGATE` | `VisualShaderNodeIntFunc.FUNC_SIGN` | `VisualShaderNodeIntFunc.FUNC_BITWISE_NOT` | `VisualShaderNodeIntFunc.FUNC_MAX` +VisualShaderNodeIntFunc.FUNC_ABS = 0 +VisualShaderNodeIntFunc.FUNC_NEGATE = 1 +VisualShaderNodeIntFunc.FUNC_SIGN = 2 +VisualShaderNodeIntFunc.FUNC_BITWISE_NOT = 3 +VisualShaderNodeIntFunc.FUNC_MAX = 4 + +--- @param func VisualShaderNodeIntFunc.Function +function VisualShaderNodeIntFunc:set_function(func) end + +--- @return VisualShaderNodeIntFunc.Function +function VisualShaderNodeIntFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeIntOp +----------------------------------------------------------- + +--- @class VisualShaderNodeIntOp: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeIntOp = {} + +--- @return VisualShaderNodeIntOp +function VisualShaderNodeIntOp:new() end + +--- @alias VisualShaderNodeIntOp.Operator `VisualShaderNodeIntOp.OP_ADD` | `VisualShaderNodeIntOp.OP_SUB` | `VisualShaderNodeIntOp.OP_MUL` | `VisualShaderNodeIntOp.OP_DIV` | `VisualShaderNodeIntOp.OP_MOD` | `VisualShaderNodeIntOp.OP_MAX` | `VisualShaderNodeIntOp.OP_MIN` | `VisualShaderNodeIntOp.OP_BITWISE_AND` | `VisualShaderNodeIntOp.OP_BITWISE_OR` | `VisualShaderNodeIntOp.OP_BITWISE_XOR` | `VisualShaderNodeIntOp.OP_BITWISE_LEFT_SHIFT` | `VisualShaderNodeIntOp.OP_BITWISE_RIGHT_SHIFT` | `VisualShaderNodeIntOp.OP_ENUM_SIZE` +VisualShaderNodeIntOp.OP_ADD = 0 +VisualShaderNodeIntOp.OP_SUB = 1 +VisualShaderNodeIntOp.OP_MUL = 2 +VisualShaderNodeIntOp.OP_DIV = 3 +VisualShaderNodeIntOp.OP_MOD = 4 +VisualShaderNodeIntOp.OP_MAX = 5 +VisualShaderNodeIntOp.OP_MIN = 6 +VisualShaderNodeIntOp.OP_BITWISE_AND = 7 +VisualShaderNodeIntOp.OP_BITWISE_OR = 8 +VisualShaderNodeIntOp.OP_BITWISE_XOR = 9 +VisualShaderNodeIntOp.OP_BITWISE_LEFT_SHIFT = 10 +VisualShaderNodeIntOp.OP_BITWISE_RIGHT_SHIFT = 11 +VisualShaderNodeIntOp.OP_ENUM_SIZE = 12 + +--- @param op VisualShaderNodeIntOp.Operator +function VisualShaderNodeIntOp:set_operator(op) end + +--- @return VisualShaderNodeIntOp.Operator +function VisualShaderNodeIntOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeIntParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeIntParameter: VisualShaderNodeParameter, { [string]: any } +--- @field hint int +--- @field min int +--- @field max int +--- @field step int +--- @field enum_names PackedStringArray +--- @field default_value_enabled bool +--- @field default_value int +VisualShaderNodeIntParameter = {} + +--- @return VisualShaderNodeIntParameter +function VisualShaderNodeIntParameter:new() end + +--- @alias VisualShaderNodeIntParameter.Hint `VisualShaderNodeIntParameter.HINT_NONE` | `VisualShaderNodeIntParameter.HINT_RANGE` | `VisualShaderNodeIntParameter.HINT_RANGE_STEP` | `VisualShaderNodeIntParameter.HINT_ENUM` | `VisualShaderNodeIntParameter.HINT_MAX` +VisualShaderNodeIntParameter.HINT_NONE = 0 +VisualShaderNodeIntParameter.HINT_RANGE = 1 +VisualShaderNodeIntParameter.HINT_RANGE_STEP = 2 +VisualShaderNodeIntParameter.HINT_ENUM = 3 +VisualShaderNodeIntParameter.HINT_MAX = 4 + +--- @param hint VisualShaderNodeIntParameter.Hint +function VisualShaderNodeIntParameter:set_hint(hint) end + +--- @return VisualShaderNodeIntParameter.Hint +function VisualShaderNodeIntParameter:get_hint() end + +--- @param value int +function VisualShaderNodeIntParameter:set_min(value) end + +--- @return int +function VisualShaderNodeIntParameter:get_min() end + +--- @param value int +function VisualShaderNodeIntParameter:set_max(value) end + +--- @return int +function VisualShaderNodeIntParameter:get_max() end + +--- @param value int +function VisualShaderNodeIntParameter:set_step(value) end + +--- @return int +function VisualShaderNodeIntParameter:get_step() end + +--- @param names PackedStringArray +function VisualShaderNodeIntParameter:set_enum_names(names) end + +--- @return PackedStringArray +function VisualShaderNodeIntParameter:get_enum_names() end + +--- @param enabled bool +function VisualShaderNodeIntParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeIntParameter:is_default_value_enabled() end + +--- @param value int +function VisualShaderNodeIntParameter:set_default_value(value) end + +--- @return int +function VisualShaderNodeIntParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeIs +----------------------------------------------------------- + +--- @class VisualShaderNodeIs: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeIs = {} + +--- @return VisualShaderNodeIs +function VisualShaderNodeIs:new() end + +--- @alias VisualShaderNodeIs.Function `VisualShaderNodeIs.FUNC_IS_INF` | `VisualShaderNodeIs.FUNC_IS_NAN` | `VisualShaderNodeIs.FUNC_MAX` +VisualShaderNodeIs.FUNC_IS_INF = 0 +VisualShaderNodeIs.FUNC_IS_NAN = 1 +VisualShaderNodeIs.FUNC_MAX = 2 + +--- @param func VisualShaderNodeIs.Function +function VisualShaderNodeIs:set_function(func) end + +--- @return VisualShaderNodeIs.Function +function VisualShaderNodeIs:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeLinearSceneDepth +----------------------------------------------------------- + +--- @class VisualShaderNodeLinearSceneDepth: VisualShaderNode, { [string]: any } +VisualShaderNodeLinearSceneDepth = {} + +--- @return VisualShaderNodeLinearSceneDepth +function VisualShaderNodeLinearSceneDepth:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeMix +----------------------------------------------------------- + +--- @class VisualShaderNodeMix: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeMix = {} + +--- @return VisualShaderNodeMix +function VisualShaderNodeMix:new() end + +--- @alias VisualShaderNodeMix.OpType `VisualShaderNodeMix.OP_TYPE_SCALAR` | `VisualShaderNodeMix.OP_TYPE_VECTOR_2D` | `VisualShaderNodeMix.OP_TYPE_VECTOR_2D_SCALAR` | `VisualShaderNodeMix.OP_TYPE_VECTOR_3D` | `VisualShaderNodeMix.OP_TYPE_VECTOR_3D_SCALAR` | `VisualShaderNodeMix.OP_TYPE_VECTOR_4D` | `VisualShaderNodeMix.OP_TYPE_VECTOR_4D_SCALAR` | `VisualShaderNodeMix.OP_TYPE_MAX` +VisualShaderNodeMix.OP_TYPE_SCALAR = 0 +VisualShaderNodeMix.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeMix.OP_TYPE_VECTOR_2D_SCALAR = 2 +VisualShaderNodeMix.OP_TYPE_VECTOR_3D = 3 +VisualShaderNodeMix.OP_TYPE_VECTOR_3D_SCALAR = 4 +VisualShaderNodeMix.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeMix.OP_TYPE_VECTOR_4D_SCALAR = 6 +VisualShaderNodeMix.OP_TYPE_MAX = 7 + +--- @param op_type VisualShaderNodeMix.OpType +function VisualShaderNodeMix:set_op_type(op_type) end + +--- @return VisualShaderNodeMix.OpType +function VisualShaderNodeMix:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeMultiplyAdd +----------------------------------------------------------- + +--- @class VisualShaderNodeMultiplyAdd: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeMultiplyAdd = {} + +--- @return VisualShaderNodeMultiplyAdd +function VisualShaderNodeMultiplyAdd:new() end + +--- @alias VisualShaderNodeMultiplyAdd.OpType `VisualShaderNodeMultiplyAdd.OP_TYPE_SCALAR` | `VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_2D` | `VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_3D` | `VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_4D` | `VisualShaderNodeMultiplyAdd.OP_TYPE_MAX` +VisualShaderNodeMultiplyAdd.OP_TYPE_SCALAR = 0 +VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_3D = 2 +VisualShaderNodeMultiplyAdd.OP_TYPE_VECTOR_4D = 3 +VisualShaderNodeMultiplyAdd.OP_TYPE_MAX = 4 + +--- @param type VisualShaderNodeMultiplyAdd.OpType +function VisualShaderNodeMultiplyAdd:set_op_type(type) end + +--- @return VisualShaderNodeMultiplyAdd.OpType +function VisualShaderNodeMultiplyAdd:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeOuterProduct +----------------------------------------------------------- + +--- @class VisualShaderNodeOuterProduct: VisualShaderNode, { [string]: any } +VisualShaderNodeOuterProduct = {} + +--- @return VisualShaderNodeOuterProduct +function VisualShaderNodeOuterProduct:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeOutput +----------------------------------------------------------- + +--- @class VisualShaderNodeOutput: VisualShaderNode, { [string]: any } +VisualShaderNodeOutput = {} + + +----------------------------------------------------------- +-- VisualShaderNodeParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeParameter: VisualShaderNode, { [string]: any } +--- @field parameter_name StringName +--- @field qualifier int +VisualShaderNodeParameter = {} + +--- @alias VisualShaderNodeParameter.Qualifier `VisualShaderNodeParameter.QUAL_NONE` | `VisualShaderNodeParameter.QUAL_GLOBAL` | `VisualShaderNodeParameter.QUAL_INSTANCE` | `VisualShaderNodeParameter.QUAL_MAX` +VisualShaderNodeParameter.QUAL_NONE = 0 +VisualShaderNodeParameter.QUAL_GLOBAL = 1 +VisualShaderNodeParameter.QUAL_INSTANCE = 2 +VisualShaderNodeParameter.QUAL_MAX = 3 + +--- @param name String +function VisualShaderNodeParameter:set_parameter_name(name) end + +--- @return String +function VisualShaderNodeParameter:get_parameter_name() end + +--- @param qualifier VisualShaderNodeParameter.Qualifier +function VisualShaderNodeParameter:set_qualifier(qualifier) end + +--- @return VisualShaderNodeParameter.Qualifier +function VisualShaderNodeParameter:get_qualifier() end + + +----------------------------------------------------------- +-- VisualShaderNodeParameterRef +----------------------------------------------------------- + +--- @class VisualShaderNodeParameterRef: VisualShaderNode, { [string]: any } +--- @field parameter_name StringName +--- @field param_type int +VisualShaderNodeParameterRef = {} + +--- @return VisualShaderNodeParameterRef +function VisualShaderNodeParameterRef:new() end + +--- @param name String +function VisualShaderNodeParameterRef:set_parameter_name(name) end + +--- @return String +function VisualShaderNodeParameterRef:get_parameter_name() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleAccelerator +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleAccelerator: VisualShaderNode, { [string]: any } +--- @field mode int +VisualShaderNodeParticleAccelerator = {} + +--- @return VisualShaderNodeParticleAccelerator +function VisualShaderNodeParticleAccelerator:new() end + +--- @alias VisualShaderNodeParticleAccelerator.Mode `VisualShaderNodeParticleAccelerator.MODE_LINEAR` | `VisualShaderNodeParticleAccelerator.MODE_RADIAL` | `VisualShaderNodeParticleAccelerator.MODE_TANGENTIAL` | `VisualShaderNodeParticleAccelerator.MODE_MAX` +VisualShaderNodeParticleAccelerator.MODE_LINEAR = 0 +VisualShaderNodeParticleAccelerator.MODE_RADIAL = 1 +VisualShaderNodeParticleAccelerator.MODE_TANGENTIAL = 2 +VisualShaderNodeParticleAccelerator.MODE_MAX = 3 + +--- @param mode VisualShaderNodeParticleAccelerator.Mode +function VisualShaderNodeParticleAccelerator:set_mode(mode) end + +--- @return VisualShaderNodeParticleAccelerator.Mode +function VisualShaderNodeParticleAccelerator:get_mode() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleBoxEmitter +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleBoxEmitter: VisualShaderNodeParticleEmitter, { [string]: any } +VisualShaderNodeParticleBoxEmitter = {} + +--- @return VisualShaderNodeParticleBoxEmitter +function VisualShaderNodeParticleBoxEmitter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleConeVelocity +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleConeVelocity: VisualShaderNode, { [string]: any } +VisualShaderNodeParticleConeVelocity = {} + +--- @return VisualShaderNodeParticleConeVelocity +function VisualShaderNodeParticleConeVelocity:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleEmit +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleEmit: VisualShaderNode, { [string]: any } +--- @field flags int +VisualShaderNodeParticleEmit = {} + +--- @return VisualShaderNodeParticleEmit +function VisualShaderNodeParticleEmit:new() end + +--- @alias VisualShaderNodeParticleEmit.EmitFlags `VisualShaderNodeParticleEmit.EMIT_FLAG_POSITION` | `VisualShaderNodeParticleEmit.EMIT_FLAG_ROT_SCALE` | `VisualShaderNodeParticleEmit.EMIT_FLAG_VELOCITY` | `VisualShaderNodeParticleEmit.EMIT_FLAG_COLOR` | `VisualShaderNodeParticleEmit.EMIT_FLAG_CUSTOM` +VisualShaderNodeParticleEmit.EMIT_FLAG_POSITION = 1 +VisualShaderNodeParticleEmit.EMIT_FLAG_ROT_SCALE = 2 +VisualShaderNodeParticleEmit.EMIT_FLAG_VELOCITY = 4 +VisualShaderNodeParticleEmit.EMIT_FLAG_COLOR = 8 +VisualShaderNodeParticleEmit.EMIT_FLAG_CUSTOM = 16 + +--- @param flags VisualShaderNodeParticleEmit.EmitFlags +function VisualShaderNodeParticleEmit:set_flags(flags) end + +--- @return VisualShaderNodeParticleEmit.EmitFlags +function VisualShaderNodeParticleEmit:get_flags() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleEmitter +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleEmitter: VisualShaderNode, { [string]: any } +--- @field mode_2d bool +VisualShaderNodeParticleEmitter = {} + +--- @param enabled bool +function VisualShaderNodeParticleEmitter:set_mode_2d(enabled) end + +--- @return bool +function VisualShaderNodeParticleEmitter:is_mode_2d() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleMeshEmitter +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleMeshEmitter: VisualShaderNodeParticleEmitter, { [string]: any } +--- @field mesh Mesh +--- @field use_all_surfaces bool +--- @field surface_index int +VisualShaderNodeParticleMeshEmitter = {} + +--- @return VisualShaderNodeParticleMeshEmitter +function VisualShaderNodeParticleMeshEmitter:new() end + +--- @param mesh Mesh +function VisualShaderNodeParticleMeshEmitter:set_mesh(mesh) end + +--- @return Mesh +function VisualShaderNodeParticleMeshEmitter:get_mesh() end + +--- @param enabled bool +function VisualShaderNodeParticleMeshEmitter:set_use_all_surfaces(enabled) end + +--- @return bool +function VisualShaderNodeParticleMeshEmitter:is_use_all_surfaces() end + +--- @param surface_index int +function VisualShaderNodeParticleMeshEmitter:set_surface_index(surface_index) end + +--- @return int +function VisualShaderNodeParticleMeshEmitter:get_surface_index() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleMultiplyByAxisAngle +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleMultiplyByAxisAngle: VisualShaderNode, { [string]: any } +--- @field degrees_mode bool +VisualShaderNodeParticleMultiplyByAxisAngle = {} + +--- @return VisualShaderNodeParticleMultiplyByAxisAngle +function VisualShaderNodeParticleMultiplyByAxisAngle:new() end + +--- @param enabled bool +function VisualShaderNodeParticleMultiplyByAxisAngle:set_degrees_mode(enabled) end + +--- @return bool +function VisualShaderNodeParticleMultiplyByAxisAngle:is_degrees_mode() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleOutput +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleOutput: VisualShaderNodeOutput, { [string]: any } +VisualShaderNodeParticleOutput = {} + +--- @return VisualShaderNodeParticleOutput +function VisualShaderNodeParticleOutput:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleRandomness +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleRandomness: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeParticleRandomness = {} + +--- @return VisualShaderNodeParticleRandomness +function VisualShaderNodeParticleRandomness:new() end + +--- @alias VisualShaderNodeParticleRandomness.OpType `VisualShaderNodeParticleRandomness.OP_TYPE_SCALAR` | `VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_2D` | `VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_3D` | `VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_4D` | `VisualShaderNodeParticleRandomness.OP_TYPE_MAX` +VisualShaderNodeParticleRandomness.OP_TYPE_SCALAR = 0 +VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_3D = 2 +VisualShaderNodeParticleRandomness.OP_TYPE_VECTOR_4D = 3 +VisualShaderNodeParticleRandomness.OP_TYPE_MAX = 4 + +--- @param type VisualShaderNodeParticleRandomness.OpType +function VisualShaderNodeParticleRandomness:set_op_type(type) end + +--- @return VisualShaderNodeParticleRandomness.OpType +function VisualShaderNodeParticleRandomness:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleRingEmitter +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleRingEmitter: VisualShaderNodeParticleEmitter, { [string]: any } +VisualShaderNodeParticleRingEmitter = {} + +--- @return VisualShaderNodeParticleRingEmitter +function VisualShaderNodeParticleRingEmitter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeParticleSphereEmitter +----------------------------------------------------------- + +--- @class VisualShaderNodeParticleSphereEmitter: VisualShaderNodeParticleEmitter, { [string]: any } +VisualShaderNodeParticleSphereEmitter = {} + +--- @return VisualShaderNodeParticleSphereEmitter +function VisualShaderNodeParticleSphereEmitter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeProximityFade +----------------------------------------------------------- + +--- @class VisualShaderNodeProximityFade: VisualShaderNode, { [string]: any } +VisualShaderNodeProximityFade = {} + +--- @return VisualShaderNodeProximityFade +function VisualShaderNodeProximityFade:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeRandomRange +----------------------------------------------------------- + +--- @class VisualShaderNodeRandomRange: VisualShaderNode, { [string]: any } +VisualShaderNodeRandomRange = {} + +--- @return VisualShaderNodeRandomRange +function VisualShaderNodeRandomRange:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeRemap +----------------------------------------------------------- + +--- @class VisualShaderNodeRemap: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeRemap = {} + +--- @return VisualShaderNodeRemap +function VisualShaderNodeRemap:new() end + +--- @alias VisualShaderNodeRemap.OpType `VisualShaderNodeRemap.OP_TYPE_SCALAR` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_2D` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_2D_SCALAR` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_3D` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_3D_SCALAR` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_4D` | `VisualShaderNodeRemap.OP_TYPE_VECTOR_4D_SCALAR` | `VisualShaderNodeRemap.OP_TYPE_MAX` +VisualShaderNodeRemap.OP_TYPE_SCALAR = 0 +VisualShaderNodeRemap.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeRemap.OP_TYPE_VECTOR_2D_SCALAR = 2 +VisualShaderNodeRemap.OP_TYPE_VECTOR_3D = 3 +VisualShaderNodeRemap.OP_TYPE_VECTOR_3D_SCALAR = 4 +VisualShaderNodeRemap.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeRemap.OP_TYPE_VECTOR_4D_SCALAR = 6 +VisualShaderNodeRemap.OP_TYPE_MAX = 7 + +--- @param op_type VisualShaderNodeRemap.OpType +function VisualShaderNodeRemap:set_op_type(op_type) end + +--- @return VisualShaderNodeRemap.OpType +function VisualShaderNodeRemap:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeReroute +----------------------------------------------------------- + +--- @class VisualShaderNodeReroute: VisualShaderNode, { [string]: any } +--- @field port_type int +VisualShaderNodeReroute = {} + +--- @return VisualShaderNodeReroute +function VisualShaderNodeReroute:new() end + +--- @return VisualShaderNode.PortType +function VisualShaderNodeReroute:get_port_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeResizableBase +----------------------------------------------------------- + +--- @class VisualShaderNodeResizableBase: VisualShaderNode, { [string]: any } +--- @field size Vector2 +VisualShaderNodeResizableBase = {} + +--- @param size Vector2 +function VisualShaderNodeResizableBase:set_size(size) end + +--- @return Vector2 +function VisualShaderNodeResizableBase:get_size() end + + +----------------------------------------------------------- +-- VisualShaderNodeRotationByAxis +----------------------------------------------------------- + +--- @class VisualShaderNodeRotationByAxis: VisualShaderNode, { [string]: any } +VisualShaderNodeRotationByAxis = {} + +--- @return VisualShaderNodeRotationByAxis +function VisualShaderNodeRotationByAxis:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeSDFRaymarch +----------------------------------------------------------- + +--- @class VisualShaderNodeSDFRaymarch: VisualShaderNode, { [string]: any } +VisualShaderNodeSDFRaymarch = {} + +--- @return VisualShaderNodeSDFRaymarch +function VisualShaderNodeSDFRaymarch:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeSDFToScreenUV +----------------------------------------------------------- + +--- @class VisualShaderNodeSDFToScreenUV: VisualShaderNode, { [string]: any } +VisualShaderNodeSDFToScreenUV = {} + +--- @return VisualShaderNodeSDFToScreenUV +function VisualShaderNodeSDFToScreenUV:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeSample3D +----------------------------------------------------------- + +--- @class VisualShaderNodeSample3D: VisualShaderNode, { [string]: any } +--- @field source int +VisualShaderNodeSample3D = {} + +--- @alias VisualShaderNodeSample3D.Source `VisualShaderNodeSample3D.SOURCE_TEXTURE` | `VisualShaderNodeSample3D.SOURCE_PORT` | `VisualShaderNodeSample3D.SOURCE_MAX` +VisualShaderNodeSample3D.SOURCE_TEXTURE = 0 +VisualShaderNodeSample3D.SOURCE_PORT = 1 +VisualShaderNodeSample3D.SOURCE_MAX = 2 + +--- @param value VisualShaderNodeSample3D.Source +function VisualShaderNodeSample3D:set_source(value) end + +--- @return VisualShaderNodeSample3D.Source +function VisualShaderNodeSample3D:get_source() end + + +----------------------------------------------------------- +-- VisualShaderNodeScreenNormalWorldSpace +----------------------------------------------------------- + +--- @class VisualShaderNodeScreenNormalWorldSpace: VisualShaderNode, { [string]: any } +VisualShaderNodeScreenNormalWorldSpace = {} + +--- @return VisualShaderNodeScreenNormalWorldSpace +function VisualShaderNodeScreenNormalWorldSpace:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeScreenUVToSDF +----------------------------------------------------------- + +--- @class VisualShaderNodeScreenUVToSDF: VisualShaderNode, { [string]: any } +VisualShaderNodeScreenUVToSDF = {} + +--- @return VisualShaderNodeScreenUVToSDF +function VisualShaderNodeScreenUVToSDF:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeSmoothStep +----------------------------------------------------------- + +--- @class VisualShaderNodeSmoothStep: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeSmoothStep = {} + +--- @return VisualShaderNodeSmoothStep +function VisualShaderNodeSmoothStep:new() end + +--- @alias VisualShaderNodeSmoothStep.OpType `VisualShaderNodeSmoothStep.OP_TYPE_SCALAR` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_2D` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_2D_SCALAR` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_3D` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_3D_SCALAR` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_4D` | `VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_4D_SCALAR` | `VisualShaderNodeSmoothStep.OP_TYPE_MAX` +VisualShaderNodeSmoothStep.OP_TYPE_SCALAR = 0 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_2D_SCALAR = 2 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_3D = 3 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_3D_SCALAR = 4 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeSmoothStep.OP_TYPE_VECTOR_4D_SCALAR = 6 +VisualShaderNodeSmoothStep.OP_TYPE_MAX = 7 + +--- @param op_type VisualShaderNodeSmoothStep.OpType +function VisualShaderNodeSmoothStep:set_op_type(op_type) end + +--- @return VisualShaderNodeSmoothStep.OpType +function VisualShaderNodeSmoothStep:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeStep +----------------------------------------------------------- + +--- @class VisualShaderNodeStep: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeStep = {} + +--- @return VisualShaderNodeStep +function VisualShaderNodeStep:new() end + +--- @alias VisualShaderNodeStep.OpType `VisualShaderNodeStep.OP_TYPE_SCALAR` | `VisualShaderNodeStep.OP_TYPE_VECTOR_2D` | `VisualShaderNodeStep.OP_TYPE_VECTOR_2D_SCALAR` | `VisualShaderNodeStep.OP_TYPE_VECTOR_3D` | `VisualShaderNodeStep.OP_TYPE_VECTOR_3D_SCALAR` | `VisualShaderNodeStep.OP_TYPE_VECTOR_4D` | `VisualShaderNodeStep.OP_TYPE_VECTOR_4D_SCALAR` | `VisualShaderNodeStep.OP_TYPE_MAX` +VisualShaderNodeStep.OP_TYPE_SCALAR = 0 +VisualShaderNodeStep.OP_TYPE_VECTOR_2D = 1 +VisualShaderNodeStep.OP_TYPE_VECTOR_2D_SCALAR = 2 +VisualShaderNodeStep.OP_TYPE_VECTOR_3D = 3 +VisualShaderNodeStep.OP_TYPE_VECTOR_3D_SCALAR = 4 +VisualShaderNodeStep.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeStep.OP_TYPE_VECTOR_4D_SCALAR = 6 +VisualShaderNodeStep.OP_TYPE_MAX = 7 + +--- @param op_type VisualShaderNodeStep.OpType +function VisualShaderNodeStep:set_op_type(op_type) end + +--- @return VisualShaderNodeStep.OpType +function VisualShaderNodeStep:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeSwitch +----------------------------------------------------------- + +--- @class VisualShaderNodeSwitch: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeSwitch = {} + +--- @return VisualShaderNodeSwitch +function VisualShaderNodeSwitch:new() end + +--- @alias VisualShaderNodeSwitch.OpType `VisualShaderNodeSwitch.OP_TYPE_FLOAT` | `VisualShaderNodeSwitch.OP_TYPE_INT` | `VisualShaderNodeSwitch.OP_TYPE_UINT` | `VisualShaderNodeSwitch.OP_TYPE_VECTOR_2D` | `VisualShaderNodeSwitch.OP_TYPE_VECTOR_3D` | `VisualShaderNodeSwitch.OP_TYPE_VECTOR_4D` | `VisualShaderNodeSwitch.OP_TYPE_BOOLEAN` | `VisualShaderNodeSwitch.OP_TYPE_TRANSFORM` | `VisualShaderNodeSwitch.OP_TYPE_MAX` +VisualShaderNodeSwitch.OP_TYPE_FLOAT = 0 +VisualShaderNodeSwitch.OP_TYPE_INT = 1 +VisualShaderNodeSwitch.OP_TYPE_UINT = 2 +VisualShaderNodeSwitch.OP_TYPE_VECTOR_2D = 3 +VisualShaderNodeSwitch.OP_TYPE_VECTOR_3D = 4 +VisualShaderNodeSwitch.OP_TYPE_VECTOR_4D = 5 +VisualShaderNodeSwitch.OP_TYPE_BOOLEAN = 6 +VisualShaderNodeSwitch.OP_TYPE_TRANSFORM = 7 +VisualShaderNodeSwitch.OP_TYPE_MAX = 8 + +--- @param type VisualShaderNodeSwitch.OpType +function VisualShaderNodeSwitch:set_op_type(type) end + +--- @return VisualShaderNodeSwitch.OpType +function VisualShaderNodeSwitch:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture: VisualShaderNode, { [string]: any } +--- @field source int +--- @field texture Texture2D +--- @field texture_type int +VisualShaderNodeTexture = {} + +--- @return VisualShaderNodeTexture +function VisualShaderNodeTexture:new() end + +--- @alias VisualShaderNodeTexture.Source `VisualShaderNodeTexture.SOURCE_TEXTURE` | `VisualShaderNodeTexture.SOURCE_SCREEN` | `VisualShaderNodeTexture.SOURCE_2D_TEXTURE` | `VisualShaderNodeTexture.SOURCE_2D_NORMAL` | `VisualShaderNodeTexture.SOURCE_DEPTH` | `VisualShaderNodeTexture.SOURCE_PORT` | `VisualShaderNodeTexture.SOURCE_3D_NORMAL` | `VisualShaderNodeTexture.SOURCE_ROUGHNESS` | `VisualShaderNodeTexture.SOURCE_MAX` +VisualShaderNodeTexture.SOURCE_TEXTURE = 0 +VisualShaderNodeTexture.SOURCE_SCREEN = 1 +VisualShaderNodeTexture.SOURCE_2D_TEXTURE = 2 +VisualShaderNodeTexture.SOURCE_2D_NORMAL = 3 +VisualShaderNodeTexture.SOURCE_DEPTH = 4 +VisualShaderNodeTexture.SOURCE_PORT = 5 +VisualShaderNodeTexture.SOURCE_3D_NORMAL = 6 +VisualShaderNodeTexture.SOURCE_ROUGHNESS = 7 +VisualShaderNodeTexture.SOURCE_MAX = 8 + +--- @alias VisualShaderNodeTexture.TextureType `VisualShaderNodeTexture.TYPE_DATA` | `VisualShaderNodeTexture.TYPE_COLOR` | `VisualShaderNodeTexture.TYPE_NORMAL_MAP` | `VisualShaderNodeTexture.TYPE_MAX` +VisualShaderNodeTexture.TYPE_DATA = 0 +VisualShaderNodeTexture.TYPE_COLOR = 1 +VisualShaderNodeTexture.TYPE_NORMAL_MAP = 2 +VisualShaderNodeTexture.TYPE_MAX = 3 + +--- @param value VisualShaderNodeTexture.Source +function VisualShaderNodeTexture:set_source(value) end + +--- @return VisualShaderNodeTexture.Source +function VisualShaderNodeTexture:get_source() end + +--- @param value Texture2D +function VisualShaderNodeTexture:set_texture(value) end + +--- @return Texture2D +function VisualShaderNodeTexture:get_texture() end + +--- @param value VisualShaderNodeTexture.TextureType +function VisualShaderNodeTexture:set_texture_type(value) end + +--- @return VisualShaderNodeTexture.TextureType +function VisualShaderNodeTexture:get_texture_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture2DArray +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture2DArray: VisualShaderNodeSample3D, { [string]: any } +--- @field texture_array Texture2DArray | CompressedTexture2DArray | PlaceholderTexture2DArray | Texture2DArrayRD +VisualShaderNodeTexture2DArray = {} + +--- @return VisualShaderNodeTexture2DArray +function VisualShaderNodeTexture2DArray:new() end + +--- @param value TextureLayered +function VisualShaderNodeTexture2DArray:set_texture_array(value) end + +--- @return TextureLayered +function VisualShaderNodeTexture2DArray:get_texture_array() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture2DArrayParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture2DArrayParameter: VisualShaderNodeTextureParameter, { [string]: any } +VisualShaderNodeTexture2DArrayParameter = {} + +--- @return VisualShaderNodeTexture2DArrayParameter +function VisualShaderNodeTexture2DArrayParameter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture2DParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture2DParameter: VisualShaderNodeTextureParameter, { [string]: any } +VisualShaderNodeTexture2DParameter = {} + +--- @return VisualShaderNodeTexture2DParameter +function VisualShaderNodeTexture2DParameter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture3D +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture3D: VisualShaderNodeSample3D, { [string]: any } +--- @field texture Texture3D +VisualShaderNodeTexture3D = {} + +--- @return VisualShaderNodeTexture3D +function VisualShaderNodeTexture3D:new() end + +--- @param value Texture3D +function VisualShaderNodeTexture3D:set_texture(value) end + +--- @return Texture3D +function VisualShaderNodeTexture3D:get_texture() end + + +----------------------------------------------------------- +-- VisualShaderNodeTexture3DParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeTexture3DParameter: VisualShaderNodeTextureParameter, { [string]: any } +VisualShaderNodeTexture3DParameter = {} + +--- @return VisualShaderNodeTexture3DParameter +function VisualShaderNodeTexture3DParameter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTextureParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeTextureParameter: VisualShaderNodeParameter, { [string]: any } +--- @field texture_type int +--- @field color_default int +--- @field texture_filter int +--- @field texture_repeat int +--- @field texture_source int +VisualShaderNodeTextureParameter = {} + +--- @alias VisualShaderNodeTextureParameter.TextureType `VisualShaderNodeTextureParameter.TYPE_DATA` | `VisualShaderNodeTextureParameter.TYPE_COLOR` | `VisualShaderNodeTextureParameter.TYPE_NORMAL_MAP` | `VisualShaderNodeTextureParameter.TYPE_ANISOTROPY` | `VisualShaderNodeTextureParameter.TYPE_MAX` +VisualShaderNodeTextureParameter.TYPE_DATA = 0 +VisualShaderNodeTextureParameter.TYPE_COLOR = 1 +VisualShaderNodeTextureParameter.TYPE_NORMAL_MAP = 2 +VisualShaderNodeTextureParameter.TYPE_ANISOTROPY = 3 +VisualShaderNodeTextureParameter.TYPE_MAX = 4 + +--- @alias VisualShaderNodeTextureParameter.ColorDefault `VisualShaderNodeTextureParameter.COLOR_DEFAULT_WHITE` | `VisualShaderNodeTextureParameter.COLOR_DEFAULT_BLACK` | `VisualShaderNodeTextureParameter.COLOR_DEFAULT_TRANSPARENT` | `VisualShaderNodeTextureParameter.COLOR_DEFAULT_MAX` +VisualShaderNodeTextureParameter.COLOR_DEFAULT_WHITE = 0 +VisualShaderNodeTextureParameter.COLOR_DEFAULT_BLACK = 1 +VisualShaderNodeTextureParameter.COLOR_DEFAULT_TRANSPARENT = 2 +VisualShaderNodeTextureParameter.COLOR_DEFAULT_MAX = 3 + +--- @alias VisualShaderNodeTextureParameter.TextureFilter `VisualShaderNodeTextureParameter.FILTER_DEFAULT` | `VisualShaderNodeTextureParameter.FILTER_NEAREST` | `VisualShaderNodeTextureParameter.FILTER_LINEAR` | `VisualShaderNodeTextureParameter.FILTER_NEAREST_MIPMAP` | `VisualShaderNodeTextureParameter.FILTER_LINEAR_MIPMAP` | `VisualShaderNodeTextureParameter.FILTER_NEAREST_MIPMAP_ANISOTROPIC` | `VisualShaderNodeTextureParameter.FILTER_LINEAR_MIPMAP_ANISOTROPIC` | `VisualShaderNodeTextureParameter.FILTER_MAX` +VisualShaderNodeTextureParameter.FILTER_DEFAULT = 0 +VisualShaderNodeTextureParameter.FILTER_NEAREST = 1 +VisualShaderNodeTextureParameter.FILTER_LINEAR = 2 +VisualShaderNodeTextureParameter.FILTER_NEAREST_MIPMAP = 3 +VisualShaderNodeTextureParameter.FILTER_LINEAR_MIPMAP = 4 +VisualShaderNodeTextureParameter.FILTER_NEAREST_MIPMAP_ANISOTROPIC = 5 +VisualShaderNodeTextureParameter.FILTER_LINEAR_MIPMAP_ANISOTROPIC = 6 +VisualShaderNodeTextureParameter.FILTER_MAX = 7 + +--- @alias VisualShaderNodeTextureParameter.TextureRepeat `VisualShaderNodeTextureParameter.REPEAT_DEFAULT` | `VisualShaderNodeTextureParameter.REPEAT_ENABLED` | `VisualShaderNodeTextureParameter.REPEAT_DISABLED` | `VisualShaderNodeTextureParameter.REPEAT_MAX` +VisualShaderNodeTextureParameter.REPEAT_DEFAULT = 0 +VisualShaderNodeTextureParameter.REPEAT_ENABLED = 1 +VisualShaderNodeTextureParameter.REPEAT_DISABLED = 2 +VisualShaderNodeTextureParameter.REPEAT_MAX = 3 + +--- @alias VisualShaderNodeTextureParameter.TextureSource `VisualShaderNodeTextureParameter.SOURCE_NONE` | `VisualShaderNodeTextureParameter.SOURCE_SCREEN` | `VisualShaderNodeTextureParameter.SOURCE_DEPTH` | `VisualShaderNodeTextureParameter.SOURCE_NORMAL_ROUGHNESS` | `VisualShaderNodeTextureParameter.SOURCE_MAX` +VisualShaderNodeTextureParameter.SOURCE_NONE = 0 +VisualShaderNodeTextureParameter.SOURCE_SCREEN = 1 +VisualShaderNodeTextureParameter.SOURCE_DEPTH = 2 +VisualShaderNodeTextureParameter.SOURCE_NORMAL_ROUGHNESS = 3 +VisualShaderNodeTextureParameter.SOURCE_MAX = 4 + +--- @param type VisualShaderNodeTextureParameter.TextureType +function VisualShaderNodeTextureParameter:set_texture_type(type) end + +--- @return VisualShaderNodeTextureParameter.TextureType +function VisualShaderNodeTextureParameter:get_texture_type() end + +--- @param color VisualShaderNodeTextureParameter.ColorDefault +function VisualShaderNodeTextureParameter:set_color_default(color) end + +--- @return VisualShaderNodeTextureParameter.ColorDefault +function VisualShaderNodeTextureParameter:get_color_default() end + +--- @param filter VisualShaderNodeTextureParameter.TextureFilter +function VisualShaderNodeTextureParameter:set_texture_filter(filter) end + +--- @return VisualShaderNodeTextureParameter.TextureFilter +function VisualShaderNodeTextureParameter:get_texture_filter() end + +--- @param _repeat VisualShaderNodeTextureParameter.TextureRepeat +function VisualShaderNodeTextureParameter:set_texture_repeat(_repeat) end + +--- @return VisualShaderNodeTextureParameter.TextureRepeat +function VisualShaderNodeTextureParameter:get_texture_repeat() end + +--- @param source VisualShaderNodeTextureParameter.TextureSource +function VisualShaderNodeTextureParameter:set_texture_source(source) end + +--- @return VisualShaderNodeTextureParameter.TextureSource +function VisualShaderNodeTextureParameter:get_texture_source() end + + +----------------------------------------------------------- +-- VisualShaderNodeTextureParameterTriplanar +----------------------------------------------------------- + +--- @class VisualShaderNodeTextureParameterTriplanar: VisualShaderNodeTextureParameter, { [string]: any } +VisualShaderNodeTextureParameterTriplanar = {} + +--- @return VisualShaderNodeTextureParameterTriplanar +function VisualShaderNodeTextureParameterTriplanar:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTextureSDF +----------------------------------------------------------- + +--- @class VisualShaderNodeTextureSDF: VisualShaderNode, { [string]: any } +VisualShaderNodeTextureSDF = {} + +--- @return VisualShaderNodeTextureSDF +function VisualShaderNodeTextureSDF:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTextureSDFNormal +----------------------------------------------------------- + +--- @class VisualShaderNodeTextureSDFNormal: VisualShaderNode, { [string]: any } +VisualShaderNodeTextureSDFNormal = {} + +--- @return VisualShaderNodeTextureSDFNormal +function VisualShaderNodeTextureSDFNormal:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformCompose +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformCompose: VisualShaderNode, { [string]: any } +VisualShaderNodeTransformCompose = {} + +--- @return VisualShaderNodeTransformCompose +function VisualShaderNodeTransformCompose:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant Transform3D +VisualShaderNodeTransformConstant = {} + +--- @return VisualShaderNodeTransformConstant +function VisualShaderNodeTransformConstant:new() end + +--- @param constant Transform3D +function VisualShaderNodeTransformConstant:set_constant(constant) end + +--- @return Transform3D +function VisualShaderNodeTransformConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformDecompose +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformDecompose: VisualShaderNode, { [string]: any } +VisualShaderNodeTransformDecompose = {} + +--- @return VisualShaderNodeTransformDecompose +function VisualShaderNodeTransformDecompose:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeTransformFunc = {} + +--- @return VisualShaderNodeTransformFunc +function VisualShaderNodeTransformFunc:new() end + +--- @alias VisualShaderNodeTransformFunc.Function `VisualShaderNodeTransformFunc.FUNC_INVERSE` | `VisualShaderNodeTransformFunc.FUNC_TRANSPOSE` | `VisualShaderNodeTransformFunc.FUNC_MAX` +VisualShaderNodeTransformFunc.FUNC_INVERSE = 0 +VisualShaderNodeTransformFunc.FUNC_TRANSPOSE = 1 +VisualShaderNodeTransformFunc.FUNC_MAX = 2 + +--- @param func VisualShaderNodeTransformFunc.Function +function VisualShaderNodeTransformFunc:set_function(func) end + +--- @return VisualShaderNodeTransformFunc.Function +function VisualShaderNodeTransformFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformOp +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformOp: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeTransformOp = {} + +--- @return VisualShaderNodeTransformOp +function VisualShaderNodeTransformOp:new() end + +--- @alias VisualShaderNodeTransformOp.Operator `VisualShaderNodeTransformOp.OP_AxB` | `VisualShaderNodeTransformOp.OP_BxA` | `VisualShaderNodeTransformOp.OP_AxB_COMP` | `VisualShaderNodeTransformOp.OP_BxA_COMP` | `VisualShaderNodeTransformOp.OP_ADD` | `VisualShaderNodeTransformOp.OP_A_MINUS_B` | `VisualShaderNodeTransformOp.OP_B_MINUS_A` | `VisualShaderNodeTransformOp.OP_A_DIV_B` | `VisualShaderNodeTransformOp.OP_B_DIV_A` | `VisualShaderNodeTransformOp.OP_MAX` +VisualShaderNodeTransformOp.OP_AxB = 0 +VisualShaderNodeTransformOp.OP_BxA = 1 +VisualShaderNodeTransformOp.OP_AxB_COMP = 2 +VisualShaderNodeTransformOp.OP_BxA_COMP = 3 +VisualShaderNodeTransformOp.OP_ADD = 4 +VisualShaderNodeTransformOp.OP_A_MINUS_B = 5 +VisualShaderNodeTransformOp.OP_B_MINUS_A = 6 +VisualShaderNodeTransformOp.OP_A_DIV_B = 7 +VisualShaderNodeTransformOp.OP_B_DIV_A = 8 +VisualShaderNodeTransformOp.OP_MAX = 9 + +--- @param op VisualShaderNodeTransformOp.Operator +function VisualShaderNodeTransformOp:set_operator(op) end + +--- @return VisualShaderNodeTransformOp.Operator +function VisualShaderNodeTransformOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformParameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value Transform3D +VisualShaderNodeTransformParameter = {} + +--- @return VisualShaderNodeTransformParameter +function VisualShaderNodeTransformParameter:new() end + +--- @param enabled bool +function VisualShaderNodeTransformParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeTransformParameter:is_default_value_enabled() end + +--- @param value Transform3D +function VisualShaderNodeTransformParameter:set_default_value(value) end + +--- @return Transform3D +function VisualShaderNodeTransformParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeTransformVecMult +----------------------------------------------------------- + +--- @class VisualShaderNodeTransformVecMult: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeTransformVecMult = {} + +--- @return VisualShaderNodeTransformVecMult +function VisualShaderNodeTransformVecMult:new() end + +--- @alias VisualShaderNodeTransformVecMult.Operator `VisualShaderNodeTransformVecMult.OP_AxB` | `VisualShaderNodeTransformVecMult.OP_BxA` | `VisualShaderNodeTransformVecMult.OP_3x3_AxB` | `VisualShaderNodeTransformVecMult.OP_3x3_BxA` | `VisualShaderNodeTransformVecMult.OP_MAX` +VisualShaderNodeTransformVecMult.OP_AxB = 0 +VisualShaderNodeTransformVecMult.OP_BxA = 1 +VisualShaderNodeTransformVecMult.OP_3x3_AxB = 2 +VisualShaderNodeTransformVecMult.OP_3x3_BxA = 3 +VisualShaderNodeTransformVecMult.OP_MAX = 4 + +--- @param op VisualShaderNodeTransformVecMult.Operator +function VisualShaderNodeTransformVecMult:set_operator(op) end + +--- @return VisualShaderNodeTransformVecMult.Operator +function VisualShaderNodeTransformVecMult:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeUIntConstant +----------------------------------------------------------- + +--- @class VisualShaderNodeUIntConstant: VisualShaderNodeConstant, { [string]: any } +--- @field constant int +VisualShaderNodeUIntConstant = {} + +--- @return VisualShaderNodeUIntConstant +function VisualShaderNodeUIntConstant:new() end + +--- @param constant int +function VisualShaderNodeUIntConstant:set_constant(constant) end + +--- @return int +function VisualShaderNodeUIntConstant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeUIntFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeUIntFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeUIntFunc = {} + +--- @return VisualShaderNodeUIntFunc +function VisualShaderNodeUIntFunc:new() end + +--- @alias VisualShaderNodeUIntFunc.Function `VisualShaderNodeUIntFunc.FUNC_NEGATE` | `VisualShaderNodeUIntFunc.FUNC_BITWISE_NOT` | `VisualShaderNodeUIntFunc.FUNC_MAX` +VisualShaderNodeUIntFunc.FUNC_NEGATE = 0 +VisualShaderNodeUIntFunc.FUNC_BITWISE_NOT = 1 +VisualShaderNodeUIntFunc.FUNC_MAX = 2 + +--- @param func VisualShaderNodeUIntFunc.Function +function VisualShaderNodeUIntFunc:set_function(func) end + +--- @return VisualShaderNodeUIntFunc.Function +function VisualShaderNodeUIntFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeUIntOp +----------------------------------------------------------- + +--- @class VisualShaderNodeUIntOp: VisualShaderNode, { [string]: any } +--- @field operator int +VisualShaderNodeUIntOp = {} + +--- @return VisualShaderNodeUIntOp +function VisualShaderNodeUIntOp:new() end + +--- @alias VisualShaderNodeUIntOp.Operator `VisualShaderNodeUIntOp.OP_ADD` | `VisualShaderNodeUIntOp.OP_SUB` | `VisualShaderNodeUIntOp.OP_MUL` | `VisualShaderNodeUIntOp.OP_DIV` | `VisualShaderNodeUIntOp.OP_MOD` | `VisualShaderNodeUIntOp.OP_MAX` | `VisualShaderNodeUIntOp.OP_MIN` | `VisualShaderNodeUIntOp.OP_BITWISE_AND` | `VisualShaderNodeUIntOp.OP_BITWISE_OR` | `VisualShaderNodeUIntOp.OP_BITWISE_XOR` | `VisualShaderNodeUIntOp.OP_BITWISE_LEFT_SHIFT` | `VisualShaderNodeUIntOp.OP_BITWISE_RIGHT_SHIFT` | `VisualShaderNodeUIntOp.OP_ENUM_SIZE` +VisualShaderNodeUIntOp.OP_ADD = 0 +VisualShaderNodeUIntOp.OP_SUB = 1 +VisualShaderNodeUIntOp.OP_MUL = 2 +VisualShaderNodeUIntOp.OP_DIV = 3 +VisualShaderNodeUIntOp.OP_MOD = 4 +VisualShaderNodeUIntOp.OP_MAX = 5 +VisualShaderNodeUIntOp.OP_MIN = 6 +VisualShaderNodeUIntOp.OP_BITWISE_AND = 7 +VisualShaderNodeUIntOp.OP_BITWISE_OR = 8 +VisualShaderNodeUIntOp.OP_BITWISE_XOR = 9 +VisualShaderNodeUIntOp.OP_BITWISE_LEFT_SHIFT = 10 +VisualShaderNodeUIntOp.OP_BITWISE_RIGHT_SHIFT = 11 +VisualShaderNodeUIntOp.OP_ENUM_SIZE = 12 + +--- @param op VisualShaderNodeUIntOp.Operator +function VisualShaderNodeUIntOp:set_operator(op) end + +--- @return VisualShaderNodeUIntOp.Operator +function VisualShaderNodeUIntOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeUIntParameter +----------------------------------------------------------- + +--- @class VisualShaderNodeUIntParameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value int +VisualShaderNodeUIntParameter = {} + +--- @return VisualShaderNodeUIntParameter +function VisualShaderNodeUIntParameter:new() end + +--- @param enabled bool +function VisualShaderNodeUIntParameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeUIntParameter:is_default_value_enabled() end + +--- @param value int +function VisualShaderNodeUIntParameter:set_default_value(value) end + +--- @return int +function VisualShaderNodeUIntParameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeUVFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeUVFunc: VisualShaderNode, { [string]: any } +--- @field function int +VisualShaderNodeUVFunc = {} + +--- @return VisualShaderNodeUVFunc +function VisualShaderNodeUVFunc:new() end + +--- @alias VisualShaderNodeUVFunc.Function `VisualShaderNodeUVFunc.FUNC_PANNING` | `VisualShaderNodeUVFunc.FUNC_SCALING` | `VisualShaderNodeUVFunc.FUNC_MAX` +VisualShaderNodeUVFunc.FUNC_PANNING = 0 +VisualShaderNodeUVFunc.FUNC_SCALING = 1 +VisualShaderNodeUVFunc.FUNC_MAX = 2 + +--- @param func VisualShaderNodeUVFunc.Function +function VisualShaderNodeUVFunc:set_function(func) end + +--- @return VisualShaderNodeUVFunc.Function +function VisualShaderNodeUVFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeUVPolarCoord +----------------------------------------------------------- + +--- @class VisualShaderNodeUVPolarCoord: VisualShaderNode, { [string]: any } +VisualShaderNodeUVPolarCoord = {} + +--- @return VisualShaderNodeUVPolarCoord +function VisualShaderNodeUVPolarCoord:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVarying +----------------------------------------------------------- + +--- @class VisualShaderNodeVarying: VisualShaderNode, { [string]: any } +--- @field varying_name StringName +--- @field varying_type int +VisualShaderNodeVarying = {} + +--- @param name String +function VisualShaderNodeVarying:set_varying_name(name) end + +--- @return String +function VisualShaderNodeVarying:get_varying_name() end + +--- @param type VisualShader.VaryingType +function VisualShaderNodeVarying:set_varying_type(type) end + +--- @return VisualShader.VaryingType +function VisualShaderNodeVarying:get_varying_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeVaryingGetter +----------------------------------------------------------- + +--- @class VisualShaderNodeVaryingGetter: VisualShaderNodeVarying, { [string]: any } +VisualShaderNodeVaryingGetter = {} + +--- @return VisualShaderNodeVaryingGetter +function VisualShaderNodeVaryingGetter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVaryingSetter +----------------------------------------------------------- + +--- @class VisualShaderNodeVaryingSetter: VisualShaderNodeVarying, { [string]: any } +VisualShaderNodeVaryingSetter = {} + +--- @return VisualShaderNodeVaryingSetter +function VisualShaderNodeVaryingSetter:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec2Constant +----------------------------------------------------------- + +--- @class VisualShaderNodeVec2Constant: VisualShaderNodeConstant, { [string]: any } +--- @field constant Vector2 +VisualShaderNodeVec2Constant = {} + +--- @return VisualShaderNodeVec2Constant +function VisualShaderNodeVec2Constant:new() end + +--- @param constant Vector2 +function VisualShaderNodeVec2Constant:set_constant(constant) end + +--- @return Vector2 +function VisualShaderNodeVec2Constant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec2Parameter +----------------------------------------------------------- + +--- @class VisualShaderNodeVec2Parameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value Vector2 +VisualShaderNodeVec2Parameter = {} + +--- @return VisualShaderNodeVec2Parameter +function VisualShaderNodeVec2Parameter:new() end + +--- @param enabled bool +function VisualShaderNodeVec2Parameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeVec2Parameter:is_default_value_enabled() end + +--- @param value Vector2 +function VisualShaderNodeVec2Parameter:set_default_value(value) end + +--- @return Vector2 +function VisualShaderNodeVec2Parameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec3Constant +----------------------------------------------------------- + +--- @class VisualShaderNodeVec3Constant: VisualShaderNodeConstant, { [string]: any } +--- @field constant Vector3 +VisualShaderNodeVec3Constant = {} + +--- @return VisualShaderNodeVec3Constant +function VisualShaderNodeVec3Constant:new() end + +--- @param constant Vector3 +function VisualShaderNodeVec3Constant:set_constant(constant) end + +--- @return Vector3 +function VisualShaderNodeVec3Constant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec3Parameter +----------------------------------------------------------- + +--- @class VisualShaderNodeVec3Parameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value Vector3 +VisualShaderNodeVec3Parameter = {} + +--- @return VisualShaderNodeVec3Parameter +function VisualShaderNodeVec3Parameter:new() end + +--- @param enabled bool +function VisualShaderNodeVec3Parameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeVec3Parameter:is_default_value_enabled() end + +--- @param value Vector3 +function VisualShaderNodeVec3Parameter:set_default_value(value) end + +--- @return Vector3 +function VisualShaderNodeVec3Parameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec4Constant +----------------------------------------------------------- + +--- @class VisualShaderNodeVec4Constant: VisualShaderNodeConstant, { [string]: any } +--- @field constant Quaternion +--- @field constant_v4 Vector4 +VisualShaderNodeVec4Constant = {} + +--- @return VisualShaderNodeVec4Constant +function VisualShaderNodeVec4Constant:new() end + +--- @param constant Quaternion +function VisualShaderNodeVec4Constant:set_constant(constant) end + +--- @return Quaternion +function VisualShaderNodeVec4Constant:get_constant() end + + +----------------------------------------------------------- +-- VisualShaderNodeVec4Parameter +----------------------------------------------------------- + +--- @class VisualShaderNodeVec4Parameter: VisualShaderNodeParameter, { [string]: any } +--- @field default_value_enabled bool +--- @field default_value Vector4 +VisualShaderNodeVec4Parameter = {} + +--- @return VisualShaderNodeVec4Parameter +function VisualShaderNodeVec4Parameter:new() end + +--- @param enabled bool +function VisualShaderNodeVec4Parameter:set_default_value_enabled(enabled) end + +--- @return bool +function VisualShaderNodeVec4Parameter:is_default_value_enabled() end + +--- @param value Vector4 +function VisualShaderNodeVec4Parameter:set_default_value(value) end + +--- @return Vector4 +function VisualShaderNodeVec4Parameter:get_default_value() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorBase +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorBase: VisualShaderNode, { [string]: any } +--- @field op_type int +VisualShaderNodeVectorBase = {} + +--- @alias VisualShaderNodeVectorBase.OpType `VisualShaderNodeVectorBase.OP_TYPE_VECTOR_2D` | `VisualShaderNodeVectorBase.OP_TYPE_VECTOR_3D` | `VisualShaderNodeVectorBase.OP_TYPE_VECTOR_4D` | `VisualShaderNodeVectorBase.OP_TYPE_MAX` +VisualShaderNodeVectorBase.OP_TYPE_VECTOR_2D = 0 +VisualShaderNodeVectorBase.OP_TYPE_VECTOR_3D = 1 +VisualShaderNodeVectorBase.OP_TYPE_VECTOR_4D = 2 +VisualShaderNodeVectorBase.OP_TYPE_MAX = 3 + +--- @param type VisualShaderNodeVectorBase.OpType +function VisualShaderNodeVectorBase:set_op_type(type) end + +--- @return VisualShaderNodeVectorBase.OpType +function VisualShaderNodeVectorBase:get_op_type() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorCompose +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorCompose: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeVectorCompose = {} + +--- @return VisualShaderNodeVectorCompose +function VisualShaderNodeVectorCompose:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorDecompose +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorDecompose: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeVectorDecompose = {} + +--- @return VisualShaderNodeVectorDecompose +function VisualShaderNodeVectorDecompose:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorDistance +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorDistance: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeVectorDistance = {} + +--- @return VisualShaderNodeVectorDistance +function VisualShaderNodeVectorDistance:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorFunc +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorFunc: VisualShaderNodeVectorBase, { [string]: any } +--- @field function int +VisualShaderNodeVectorFunc = {} + +--- @return VisualShaderNodeVectorFunc +function VisualShaderNodeVectorFunc:new() end + +--- @alias VisualShaderNodeVectorFunc.Function `VisualShaderNodeVectorFunc.FUNC_NORMALIZE` | `VisualShaderNodeVectorFunc.FUNC_SATURATE` | `VisualShaderNodeVectorFunc.FUNC_NEGATE` | `VisualShaderNodeVectorFunc.FUNC_RECIPROCAL` | `VisualShaderNodeVectorFunc.FUNC_ABS` | `VisualShaderNodeVectorFunc.FUNC_ACOS` | `VisualShaderNodeVectorFunc.FUNC_ACOSH` | `VisualShaderNodeVectorFunc.FUNC_ASIN` | `VisualShaderNodeVectorFunc.FUNC_ASINH` | `VisualShaderNodeVectorFunc.FUNC_ATAN` | `VisualShaderNodeVectorFunc.FUNC_ATANH` | `VisualShaderNodeVectorFunc.FUNC_CEIL` | `VisualShaderNodeVectorFunc.FUNC_COS` | `VisualShaderNodeVectorFunc.FUNC_COSH` | `VisualShaderNodeVectorFunc.FUNC_DEGREES` | `VisualShaderNodeVectorFunc.FUNC_EXP` | `VisualShaderNodeVectorFunc.FUNC_EXP2` | `VisualShaderNodeVectorFunc.FUNC_FLOOR` | `VisualShaderNodeVectorFunc.FUNC_FRACT` | `VisualShaderNodeVectorFunc.FUNC_INVERSE_SQRT` | `VisualShaderNodeVectorFunc.FUNC_LOG` | `VisualShaderNodeVectorFunc.FUNC_LOG2` | `VisualShaderNodeVectorFunc.FUNC_RADIANS` | `VisualShaderNodeVectorFunc.FUNC_ROUND` | `VisualShaderNodeVectorFunc.FUNC_ROUNDEVEN` | `VisualShaderNodeVectorFunc.FUNC_SIGN` | `VisualShaderNodeVectorFunc.FUNC_SIN` | `VisualShaderNodeVectorFunc.FUNC_SINH` | `VisualShaderNodeVectorFunc.FUNC_SQRT` | `VisualShaderNodeVectorFunc.FUNC_TAN` | `VisualShaderNodeVectorFunc.FUNC_TANH` | `VisualShaderNodeVectorFunc.FUNC_TRUNC` | `VisualShaderNodeVectorFunc.FUNC_ONEMINUS` | `VisualShaderNodeVectorFunc.FUNC_MAX` +VisualShaderNodeVectorFunc.FUNC_NORMALIZE = 0 +VisualShaderNodeVectorFunc.FUNC_SATURATE = 1 +VisualShaderNodeVectorFunc.FUNC_NEGATE = 2 +VisualShaderNodeVectorFunc.FUNC_RECIPROCAL = 3 +VisualShaderNodeVectorFunc.FUNC_ABS = 4 +VisualShaderNodeVectorFunc.FUNC_ACOS = 5 +VisualShaderNodeVectorFunc.FUNC_ACOSH = 6 +VisualShaderNodeVectorFunc.FUNC_ASIN = 7 +VisualShaderNodeVectorFunc.FUNC_ASINH = 8 +VisualShaderNodeVectorFunc.FUNC_ATAN = 9 +VisualShaderNodeVectorFunc.FUNC_ATANH = 10 +VisualShaderNodeVectorFunc.FUNC_CEIL = 11 +VisualShaderNodeVectorFunc.FUNC_COS = 12 +VisualShaderNodeVectorFunc.FUNC_COSH = 13 +VisualShaderNodeVectorFunc.FUNC_DEGREES = 14 +VisualShaderNodeVectorFunc.FUNC_EXP = 15 +VisualShaderNodeVectorFunc.FUNC_EXP2 = 16 +VisualShaderNodeVectorFunc.FUNC_FLOOR = 17 +VisualShaderNodeVectorFunc.FUNC_FRACT = 18 +VisualShaderNodeVectorFunc.FUNC_INVERSE_SQRT = 19 +VisualShaderNodeVectorFunc.FUNC_LOG = 20 +VisualShaderNodeVectorFunc.FUNC_LOG2 = 21 +VisualShaderNodeVectorFunc.FUNC_RADIANS = 22 +VisualShaderNodeVectorFunc.FUNC_ROUND = 23 +VisualShaderNodeVectorFunc.FUNC_ROUNDEVEN = 24 +VisualShaderNodeVectorFunc.FUNC_SIGN = 25 +VisualShaderNodeVectorFunc.FUNC_SIN = 26 +VisualShaderNodeVectorFunc.FUNC_SINH = 27 +VisualShaderNodeVectorFunc.FUNC_SQRT = 28 +VisualShaderNodeVectorFunc.FUNC_TAN = 29 +VisualShaderNodeVectorFunc.FUNC_TANH = 30 +VisualShaderNodeVectorFunc.FUNC_TRUNC = 31 +VisualShaderNodeVectorFunc.FUNC_ONEMINUS = 32 +VisualShaderNodeVectorFunc.FUNC_MAX = 33 + +--- @param func VisualShaderNodeVectorFunc.Function +function VisualShaderNodeVectorFunc:set_function(func) end + +--- @return VisualShaderNodeVectorFunc.Function +function VisualShaderNodeVectorFunc:get_function() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorLen +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorLen: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeVectorLen = {} + +--- @return VisualShaderNodeVectorLen +function VisualShaderNodeVectorLen:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorOp +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorOp: VisualShaderNodeVectorBase, { [string]: any } +--- @field operator int +VisualShaderNodeVectorOp = {} + +--- @return VisualShaderNodeVectorOp +function VisualShaderNodeVectorOp:new() end + +--- @alias VisualShaderNodeVectorOp.Operator `VisualShaderNodeVectorOp.OP_ADD` | `VisualShaderNodeVectorOp.OP_SUB` | `VisualShaderNodeVectorOp.OP_MUL` | `VisualShaderNodeVectorOp.OP_DIV` | `VisualShaderNodeVectorOp.OP_MOD` | `VisualShaderNodeVectorOp.OP_POW` | `VisualShaderNodeVectorOp.OP_MAX` | `VisualShaderNodeVectorOp.OP_MIN` | `VisualShaderNodeVectorOp.OP_CROSS` | `VisualShaderNodeVectorOp.OP_ATAN2` | `VisualShaderNodeVectorOp.OP_REFLECT` | `VisualShaderNodeVectorOp.OP_STEP` | `VisualShaderNodeVectorOp.OP_ENUM_SIZE` +VisualShaderNodeVectorOp.OP_ADD = 0 +VisualShaderNodeVectorOp.OP_SUB = 1 +VisualShaderNodeVectorOp.OP_MUL = 2 +VisualShaderNodeVectorOp.OP_DIV = 3 +VisualShaderNodeVectorOp.OP_MOD = 4 +VisualShaderNodeVectorOp.OP_POW = 5 +VisualShaderNodeVectorOp.OP_MAX = 6 +VisualShaderNodeVectorOp.OP_MIN = 7 +VisualShaderNodeVectorOp.OP_CROSS = 8 +VisualShaderNodeVectorOp.OP_ATAN2 = 9 +VisualShaderNodeVectorOp.OP_REFLECT = 10 +VisualShaderNodeVectorOp.OP_STEP = 11 +VisualShaderNodeVectorOp.OP_ENUM_SIZE = 12 + +--- @param op VisualShaderNodeVectorOp.Operator +function VisualShaderNodeVectorOp:set_operator(op) end + +--- @return VisualShaderNodeVectorOp.Operator +function VisualShaderNodeVectorOp:get_operator() end + + +----------------------------------------------------------- +-- VisualShaderNodeVectorRefract +----------------------------------------------------------- + +--- @class VisualShaderNodeVectorRefract: VisualShaderNodeVectorBase, { [string]: any } +VisualShaderNodeVectorRefract = {} + +--- @return VisualShaderNodeVectorRefract +function VisualShaderNodeVectorRefract:new() end + + +----------------------------------------------------------- +-- VisualShaderNodeWorldPositionFromDepth +----------------------------------------------------------- + +--- @class VisualShaderNodeWorldPositionFromDepth: VisualShaderNode, { [string]: any } +VisualShaderNodeWorldPositionFromDepth = {} + +--- @return VisualShaderNodeWorldPositionFromDepth +function VisualShaderNodeWorldPositionFromDepth:new() end + + +----------------------------------------------------------- +-- VoxelGI +----------------------------------------------------------- + +--- @class VoxelGI: VisualInstance3D, { [string]: any } +--- @field subdiv int +--- @field size Vector3 +--- @field camera_attributes CameraAttributesPractical | CameraAttributesPhysical +--- @field data VoxelGIData +VoxelGI = {} + +--- @return VoxelGI +function VoxelGI:new() end + +--- @alias VoxelGI.Subdiv `VoxelGI.SUBDIV_64` | `VoxelGI.SUBDIV_128` | `VoxelGI.SUBDIV_256` | `VoxelGI.SUBDIV_512` | `VoxelGI.SUBDIV_MAX` +VoxelGI.SUBDIV_64 = 0 +VoxelGI.SUBDIV_128 = 1 +VoxelGI.SUBDIV_256 = 2 +VoxelGI.SUBDIV_512 = 3 +VoxelGI.SUBDIV_MAX = 4 + +--- @param data VoxelGIData +function VoxelGI:set_probe_data(data) end + +--- @return VoxelGIData +function VoxelGI:get_probe_data() end + +--- @param subdiv VoxelGI.Subdiv +function VoxelGI:set_subdiv(subdiv) end + +--- @return VoxelGI.Subdiv +function VoxelGI:get_subdiv() end + +--- @param size Vector3 +function VoxelGI:set_size(size) end + +--- @return Vector3 +function VoxelGI:get_size() end + +--- @param camera_attributes CameraAttributes +function VoxelGI:set_camera_attributes(camera_attributes) end + +--- @return CameraAttributes +function VoxelGI:get_camera_attributes() end + +--- @param from_node Node? Default: null +--- @param create_visual_debug bool? Default: false +function VoxelGI:bake(from_node, create_visual_debug) end + +function VoxelGI:debug_bake() end + + +----------------------------------------------------------- +-- VoxelGIData +----------------------------------------------------------- + +--- @class VoxelGIData: Resource, { [string]: any } +--- @field dynamic_range float +--- @field energy float +--- @field bias float +--- @field normal_bias float +--- @field propagation float +--- @field use_two_bounces bool +--- @field interior bool +VoxelGIData = {} + +--- @return VoxelGIData +function VoxelGIData:new() end + +--- @param to_cell_xform Transform3D +--- @param aabb AABB +--- @param octree_size Vector3 +--- @param octree_cells PackedByteArray +--- @param data_cells PackedByteArray +--- @param distance_field PackedByteArray +--- @param level_counts PackedInt32Array +function VoxelGIData:allocate(to_cell_xform, aabb, octree_size, octree_cells, data_cells, distance_field, level_counts) end + +--- @return AABB +function VoxelGIData:get_bounds() end + +--- @return Vector3 +function VoxelGIData:get_octree_size() end + +--- @return Transform3D +function VoxelGIData:get_to_cell_xform() end + +--- @return PackedByteArray +function VoxelGIData:get_octree_cells() end + +--- @return PackedByteArray +function VoxelGIData:get_data_cells() end + +--- @return PackedInt32Array +function VoxelGIData:get_level_counts() end + +--- @param dynamic_range float +function VoxelGIData:set_dynamic_range(dynamic_range) end + +--- @return float +function VoxelGIData:get_dynamic_range() end + +--- @param energy float +function VoxelGIData:set_energy(energy) end + +--- @return float +function VoxelGIData:get_energy() end + +--- @param bias float +function VoxelGIData:set_bias(bias) end + +--- @return float +function VoxelGIData:get_bias() end + +--- @param bias float +function VoxelGIData:set_normal_bias(bias) end + +--- @return float +function VoxelGIData:get_normal_bias() end + +--- @param propagation float +function VoxelGIData:set_propagation(propagation) end + +--- @return float +function VoxelGIData:get_propagation() end + +--- @param interior bool +function VoxelGIData:set_interior(interior) end + +--- @return bool +function VoxelGIData:is_interior() end + +--- @param enable bool +function VoxelGIData:set_use_two_bounces(enable) end + +--- @return bool +function VoxelGIData:is_using_two_bounces() end + + +----------------------------------------------------------- +-- WeakRef +----------------------------------------------------------- + +--- @class WeakRef: RefCounted, { [string]: any } +WeakRef = {} + +--- @return WeakRef +function WeakRef:new() end + +--- @return any +function WeakRef:get_ref() end + + +----------------------------------------------------------- +-- WebRTCDataChannel +----------------------------------------------------------- + +--- @class WebRTCDataChannel: PacketPeer, { [string]: any } +--- @field write_mode int +WebRTCDataChannel = {} + +--- @alias WebRTCDataChannel.WriteMode `WebRTCDataChannel.WRITE_MODE_TEXT` | `WebRTCDataChannel.WRITE_MODE_BINARY` +WebRTCDataChannel.WRITE_MODE_TEXT = 0 +WebRTCDataChannel.WRITE_MODE_BINARY = 1 + +--- @alias WebRTCDataChannel.ChannelState `WebRTCDataChannel.STATE_CONNECTING` | `WebRTCDataChannel.STATE_OPEN` | `WebRTCDataChannel.STATE_CLOSING` | `WebRTCDataChannel.STATE_CLOSED` +WebRTCDataChannel.STATE_CONNECTING = 0 +WebRTCDataChannel.STATE_OPEN = 1 +WebRTCDataChannel.STATE_CLOSING = 2 +WebRTCDataChannel.STATE_CLOSED = 3 + +--- @return Error +function WebRTCDataChannel:poll() end + +function WebRTCDataChannel:close() end + +--- @return bool +function WebRTCDataChannel:was_string_packet() end + +--- @param write_mode WebRTCDataChannel.WriteMode +function WebRTCDataChannel:set_write_mode(write_mode) end + +--- @return WebRTCDataChannel.WriteMode +function WebRTCDataChannel:get_write_mode() end + +--- @return WebRTCDataChannel.ChannelState +function WebRTCDataChannel:get_ready_state() end + +--- @return String +function WebRTCDataChannel:get_label() end + +--- @return bool +function WebRTCDataChannel:is_ordered() end + +--- @return int +function WebRTCDataChannel:get_id() end + +--- @return int +function WebRTCDataChannel:get_max_packet_life_time() end + +--- @return int +function WebRTCDataChannel:get_max_retransmits() end + +--- @return String +function WebRTCDataChannel:get_protocol() end + +--- @return bool +function WebRTCDataChannel:is_negotiated() end + +--- @return int +function WebRTCDataChannel:get_buffered_amount() end + + +----------------------------------------------------------- +-- WebRTCDataChannelExtension +----------------------------------------------------------- + +--- @class WebRTCDataChannelExtension: WebRTCDataChannel, { [string]: any } +WebRTCDataChannelExtension = {} + +--- @return WebRTCDataChannelExtension +function WebRTCDataChannelExtension:new() end + +--- @param r_buffer const uint8_t ** +--- @param r_buffer_size int32_t* +--- @return Error +function WebRTCDataChannelExtension:_get_packet(r_buffer, r_buffer_size) end + +--- @param p_buffer const uint8_t* +--- @param p_buffer_size int +--- @return Error +function WebRTCDataChannelExtension:_put_packet(p_buffer, p_buffer_size) end + +--- @return int +function WebRTCDataChannelExtension:_get_available_packet_count() end + +--- @return int +function WebRTCDataChannelExtension:_get_max_packet_size() end + +--- @return Error +function WebRTCDataChannelExtension:_poll() end + +function WebRTCDataChannelExtension:_close() end + +--- @param p_write_mode WebRTCDataChannel.WriteMode +function WebRTCDataChannelExtension:_set_write_mode(p_write_mode) end + +--- @return WebRTCDataChannel.WriteMode +function WebRTCDataChannelExtension:_get_write_mode() end + +--- @return bool +function WebRTCDataChannelExtension:_was_string_packet() end + +--- @return WebRTCDataChannel.ChannelState +function WebRTCDataChannelExtension:_get_ready_state() end + +--- @return String +function WebRTCDataChannelExtension:_get_label() end + +--- @return bool +function WebRTCDataChannelExtension:_is_ordered() end + +--- @return int +function WebRTCDataChannelExtension:_get_id() end + +--- @return int +function WebRTCDataChannelExtension:_get_max_packet_life_time() end + +--- @return int +function WebRTCDataChannelExtension:_get_max_retransmits() end + +--- @return String +function WebRTCDataChannelExtension:_get_protocol() end + +--- @return bool +function WebRTCDataChannelExtension:_is_negotiated() end + +--- @return int +function WebRTCDataChannelExtension:_get_buffered_amount() end + + +----------------------------------------------------------- +-- WebRTCMultiplayerPeer +----------------------------------------------------------- + +--- @class WebRTCMultiplayerPeer: MultiplayerPeer, { [string]: any } +WebRTCMultiplayerPeer = {} + +--- @return WebRTCMultiplayerPeer +function WebRTCMultiplayerPeer:new() end + +--- @param channels_config Array? Default: [] +--- @return Error +function WebRTCMultiplayerPeer:create_server(channels_config) end + +--- @param peer_id int +--- @param channels_config Array? Default: [] +--- @return Error +function WebRTCMultiplayerPeer:create_client(peer_id, channels_config) end + +--- @param peer_id int +--- @param channels_config Array? Default: [] +--- @return Error +function WebRTCMultiplayerPeer:create_mesh(peer_id, channels_config) end + +--- @param peer WebRTCPeerConnection +--- @param peer_id int +--- @param unreliable_lifetime int? Default: 1 +--- @return Error +function WebRTCMultiplayerPeer:add_peer(peer, peer_id, unreliable_lifetime) end + +--- @param peer_id int +function WebRTCMultiplayerPeer:remove_peer(peer_id) end + +--- @param peer_id int +--- @return bool +function WebRTCMultiplayerPeer:has_peer(peer_id) end + +--- @param peer_id int +--- @return Dictionary +function WebRTCMultiplayerPeer:get_peer(peer_id) end + +--- @return Dictionary +function WebRTCMultiplayerPeer:get_peers() end + + +----------------------------------------------------------- +-- WebRTCPeerConnection +----------------------------------------------------------- + +--- @class WebRTCPeerConnection: RefCounted, { [string]: any } +WebRTCPeerConnection = {} + +--- @return WebRTCPeerConnection +function WebRTCPeerConnection:new() end + +--- @alias WebRTCPeerConnection.ConnectionState `WebRTCPeerConnection.STATE_NEW` | `WebRTCPeerConnection.STATE_CONNECTING` | `WebRTCPeerConnection.STATE_CONNECTED` | `WebRTCPeerConnection.STATE_DISCONNECTED` | `WebRTCPeerConnection.STATE_FAILED` | `WebRTCPeerConnection.STATE_CLOSED` +WebRTCPeerConnection.STATE_NEW = 0 +WebRTCPeerConnection.STATE_CONNECTING = 1 +WebRTCPeerConnection.STATE_CONNECTED = 2 +WebRTCPeerConnection.STATE_DISCONNECTED = 3 +WebRTCPeerConnection.STATE_FAILED = 4 +WebRTCPeerConnection.STATE_CLOSED = 5 + +--- @alias WebRTCPeerConnection.GatheringState `WebRTCPeerConnection.GATHERING_STATE_NEW` | `WebRTCPeerConnection.GATHERING_STATE_GATHERING` | `WebRTCPeerConnection.GATHERING_STATE_COMPLETE` +WebRTCPeerConnection.GATHERING_STATE_NEW = 0 +WebRTCPeerConnection.GATHERING_STATE_GATHERING = 1 +WebRTCPeerConnection.GATHERING_STATE_COMPLETE = 2 + +--- @alias WebRTCPeerConnection.SignalingState `WebRTCPeerConnection.SIGNALING_STATE_STABLE` | `WebRTCPeerConnection.SIGNALING_STATE_HAVE_LOCAL_OFFER` | `WebRTCPeerConnection.SIGNALING_STATE_HAVE_REMOTE_OFFER` | `WebRTCPeerConnection.SIGNALING_STATE_HAVE_LOCAL_PRANSWER` | `WebRTCPeerConnection.SIGNALING_STATE_HAVE_REMOTE_PRANSWER` | `WebRTCPeerConnection.SIGNALING_STATE_CLOSED` +WebRTCPeerConnection.SIGNALING_STATE_STABLE = 0 +WebRTCPeerConnection.SIGNALING_STATE_HAVE_LOCAL_OFFER = 1 +WebRTCPeerConnection.SIGNALING_STATE_HAVE_REMOTE_OFFER = 2 +WebRTCPeerConnection.SIGNALING_STATE_HAVE_LOCAL_PRANSWER = 3 +WebRTCPeerConnection.SIGNALING_STATE_HAVE_REMOTE_PRANSWER = 4 +WebRTCPeerConnection.SIGNALING_STATE_CLOSED = 5 + +WebRTCPeerConnection.session_description_created = Signal() +WebRTCPeerConnection.ice_candidate_created = Signal() +WebRTCPeerConnection.data_channel_received = Signal() + +--- static +--- @param extension_class StringName +function WebRTCPeerConnection:set_default_extension(extension_class) end + +--- @param configuration Dictionary? Default: {} +--- @return Error +function WebRTCPeerConnection:initialize(configuration) end + +--- @param label String +--- @param options Dictionary? Default: {} +--- @return WebRTCDataChannel +function WebRTCPeerConnection:create_data_channel(label, options) end + +--- @return Error +function WebRTCPeerConnection:create_offer() end + +--- @param type String +--- @param sdp String +--- @return Error +function WebRTCPeerConnection:set_local_description(type, sdp) end + +--- @param type String +--- @param sdp String +--- @return Error +function WebRTCPeerConnection:set_remote_description(type, sdp) end + +--- @param media String +--- @param index int +--- @param name String +--- @return Error +function WebRTCPeerConnection:add_ice_candidate(media, index, name) end + +--- @return Error +function WebRTCPeerConnection:poll() end + +function WebRTCPeerConnection:close() end + +--- @return WebRTCPeerConnection.ConnectionState +function WebRTCPeerConnection:get_connection_state() end + +--- @return WebRTCPeerConnection.GatheringState +function WebRTCPeerConnection:get_gathering_state() end + +--- @return WebRTCPeerConnection.SignalingState +function WebRTCPeerConnection:get_signaling_state() end + + +----------------------------------------------------------- +-- WebRTCPeerConnectionExtension +----------------------------------------------------------- + +--- @class WebRTCPeerConnectionExtension: WebRTCPeerConnection, { [string]: any } +WebRTCPeerConnectionExtension = {} + +--- @return WebRTCPeerConnectionExtension +function WebRTCPeerConnectionExtension:new() end + +--- @return WebRTCPeerConnection.ConnectionState +function WebRTCPeerConnectionExtension:_get_connection_state() end + +--- @return WebRTCPeerConnection.GatheringState +function WebRTCPeerConnectionExtension:_get_gathering_state() end + +--- @return WebRTCPeerConnection.SignalingState +function WebRTCPeerConnectionExtension:_get_signaling_state() end + +--- @param p_config Dictionary +--- @return Error +function WebRTCPeerConnectionExtension:_initialize(p_config) end + +--- @param p_label String +--- @param p_config Dictionary +--- @return WebRTCDataChannel +function WebRTCPeerConnectionExtension:_create_data_channel(p_label, p_config) end + +--- @return Error +function WebRTCPeerConnectionExtension:_create_offer() end + +--- @param p_type String +--- @param p_sdp String +--- @return Error +function WebRTCPeerConnectionExtension:_set_remote_description(p_type, p_sdp) end + +--- @param p_type String +--- @param p_sdp String +--- @return Error +function WebRTCPeerConnectionExtension:_set_local_description(p_type, p_sdp) end + +--- @param p_sdp_mid_name String +--- @param p_sdp_mline_index int +--- @param p_sdp_name String +--- @return Error +function WebRTCPeerConnectionExtension:_add_ice_candidate(p_sdp_mid_name, p_sdp_mline_index, p_sdp_name) end + +--- @return Error +function WebRTCPeerConnectionExtension:_poll() end + +function WebRTCPeerConnectionExtension:_close() end + + +----------------------------------------------------------- +-- WebSocketMultiplayerPeer +----------------------------------------------------------- + +--- @class WebSocketMultiplayerPeer: MultiplayerPeer, { [string]: any } +--- @field supported_protocols PackedStringArray +--- @field handshake_headers PackedStringArray +--- @field inbound_buffer_size int +--- @field outbound_buffer_size int +--- @field handshake_timeout float +--- @field max_queued_packets int +WebSocketMultiplayerPeer = {} + +--- @return WebSocketMultiplayerPeer +function WebSocketMultiplayerPeer:new() end + +--- @param url String +--- @param tls_client_options TLSOptions? Default: null +--- @return Error +function WebSocketMultiplayerPeer:create_client(url, tls_client_options) end + +--- @param port int +--- @param bind_address String? Default: "*" +--- @param tls_server_options TLSOptions? Default: null +--- @return Error +function WebSocketMultiplayerPeer:create_server(port, bind_address, tls_server_options) end + +--- @param peer_id int +--- @return WebSocketPeer +function WebSocketMultiplayerPeer:get_peer(peer_id) end + +--- @param id int +--- @return String +function WebSocketMultiplayerPeer:get_peer_address(id) end + +--- @param id int +--- @return int +function WebSocketMultiplayerPeer:get_peer_port(id) end + +--- @return PackedStringArray +function WebSocketMultiplayerPeer:get_supported_protocols() end + +--- @param protocols PackedStringArray +function WebSocketMultiplayerPeer:set_supported_protocols(protocols) end + +--- @return PackedStringArray +function WebSocketMultiplayerPeer:get_handshake_headers() end + +--- @param protocols PackedStringArray +function WebSocketMultiplayerPeer:set_handshake_headers(protocols) end + +--- @return int +function WebSocketMultiplayerPeer:get_inbound_buffer_size() end + +--- @param buffer_size int +function WebSocketMultiplayerPeer:set_inbound_buffer_size(buffer_size) end + +--- @return int +function WebSocketMultiplayerPeer:get_outbound_buffer_size() end + +--- @param buffer_size int +function WebSocketMultiplayerPeer:set_outbound_buffer_size(buffer_size) end + +--- @return float +function WebSocketMultiplayerPeer:get_handshake_timeout() end + +--- @param timeout float +function WebSocketMultiplayerPeer:set_handshake_timeout(timeout) end + +--- @param max_queued_packets int +function WebSocketMultiplayerPeer:set_max_queued_packets(max_queued_packets) end + +--- @return int +function WebSocketMultiplayerPeer:get_max_queued_packets() end + + +----------------------------------------------------------- +-- WebSocketPeer +----------------------------------------------------------- + +--- @class WebSocketPeer: PacketPeer, { [string]: any } +--- @field supported_protocols PackedStringArray +--- @field handshake_headers PackedStringArray +--- @field inbound_buffer_size int +--- @field outbound_buffer_size int +--- @field max_queued_packets int +--- @field heartbeat_interval int +WebSocketPeer = {} + +--- @return WebSocketPeer +function WebSocketPeer:new() end + +--- @alias WebSocketPeer.WriteMode `WebSocketPeer.WRITE_MODE_TEXT` | `WebSocketPeer.WRITE_MODE_BINARY` +WebSocketPeer.WRITE_MODE_TEXT = 0 +WebSocketPeer.WRITE_MODE_BINARY = 1 + +--- @alias WebSocketPeer.State `WebSocketPeer.STATE_CONNECTING` | `WebSocketPeer.STATE_OPEN` | `WebSocketPeer.STATE_CLOSING` | `WebSocketPeer.STATE_CLOSED` +WebSocketPeer.STATE_CONNECTING = 0 +WebSocketPeer.STATE_OPEN = 1 +WebSocketPeer.STATE_CLOSING = 2 +WebSocketPeer.STATE_CLOSED = 3 + +--- @param url String +--- @param tls_client_options TLSOptions? Default: null +--- @return Error +function WebSocketPeer:connect_to_url(url, tls_client_options) end + +--- @param stream StreamPeer +--- @return Error +function WebSocketPeer:accept_stream(stream) end + +--- @param message PackedByteArray +--- @param write_mode WebSocketPeer.WriteMode? Default: 1 +--- @return Error +function WebSocketPeer:send(message, write_mode) end + +--- @param message String +--- @return Error +function WebSocketPeer:send_text(message) end + +--- @return bool +function WebSocketPeer:was_string_packet() end + +function WebSocketPeer:poll() end + +--- @param code int? Default: 1000 +--- @param reason String? Default: "" +function WebSocketPeer:close(code, reason) end + +--- @return String +function WebSocketPeer:get_connected_host() end + +--- @return int +function WebSocketPeer:get_connected_port() end + +--- @return String +function WebSocketPeer:get_selected_protocol() end + +--- @return String +function WebSocketPeer:get_requested_url() end + +--- @param enabled bool +function WebSocketPeer:set_no_delay(enabled) end + +--- @return int +function WebSocketPeer:get_current_outbound_buffered_amount() end + +--- @return WebSocketPeer.State +function WebSocketPeer:get_ready_state() end + +--- @return int +function WebSocketPeer:get_close_code() end + +--- @return String +function WebSocketPeer:get_close_reason() end + +--- @return PackedStringArray +function WebSocketPeer:get_supported_protocols() end + +--- @param protocols PackedStringArray +function WebSocketPeer:set_supported_protocols(protocols) end + +--- @return PackedStringArray +function WebSocketPeer:get_handshake_headers() end + +--- @param protocols PackedStringArray +function WebSocketPeer:set_handshake_headers(protocols) end + +--- @return int +function WebSocketPeer:get_inbound_buffer_size() end + +--- @param buffer_size int +function WebSocketPeer:set_inbound_buffer_size(buffer_size) end + +--- @return int +function WebSocketPeer:get_outbound_buffer_size() end + +--- @param buffer_size int +function WebSocketPeer:set_outbound_buffer_size(buffer_size) end + +--- @param buffer_size int +function WebSocketPeer:set_max_queued_packets(buffer_size) end + +--- @return int +function WebSocketPeer:get_max_queued_packets() end + +--- @param interval float +function WebSocketPeer:set_heartbeat_interval(interval) end + +--- @return float +function WebSocketPeer:get_heartbeat_interval() end + + +----------------------------------------------------------- +-- WebXRInterface +----------------------------------------------------------- + +--- @class WebXRInterface: XRInterface, { [string]: any } +--- @field session_mode String +--- @field required_features String +--- @field optional_features String +--- @field requested_reference_space_types String +--- @field reference_space_type String +--- @field enabled_features String +--- @field visibility_state String +WebXRInterface = {} + +--- @alias WebXRInterface.TargetRayMode `WebXRInterface.TARGET_RAY_MODE_UNKNOWN` | `WebXRInterface.TARGET_RAY_MODE_GAZE` | `WebXRInterface.TARGET_RAY_MODE_TRACKED_POINTER` | `WebXRInterface.TARGET_RAY_MODE_SCREEN` +WebXRInterface.TARGET_RAY_MODE_UNKNOWN = 0 +WebXRInterface.TARGET_RAY_MODE_GAZE = 1 +WebXRInterface.TARGET_RAY_MODE_TRACKED_POINTER = 2 +WebXRInterface.TARGET_RAY_MODE_SCREEN = 3 + +WebXRInterface.session_supported = Signal() +WebXRInterface.session_started = Signal() +WebXRInterface.session_ended = Signal() +WebXRInterface.session_failed = Signal() +WebXRInterface.selectstart = Signal() +WebXRInterface.select = Signal() +WebXRInterface.selectend = Signal() +WebXRInterface.squeezestart = Signal() +WebXRInterface.squeeze = Signal() +WebXRInterface.squeezeend = Signal() +WebXRInterface.visibility_state_changed = Signal() +WebXRInterface.reference_space_reset = Signal() +WebXRInterface.display_refresh_rate_changed = Signal() + +--- @param session_mode String +function WebXRInterface:is_session_supported(session_mode) end + +--- @param session_mode String +function WebXRInterface:set_session_mode(session_mode) end + +--- @return String +function WebXRInterface:get_session_mode() end + +--- @param required_features String +function WebXRInterface:set_required_features(required_features) end + +--- @return String +function WebXRInterface:get_required_features() end + +--- @param optional_features String +function WebXRInterface:set_optional_features(optional_features) end + +--- @return String +function WebXRInterface:get_optional_features() end + +--- @return String +function WebXRInterface:get_reference_space_type() end + +--- @return String +function WebXRInterface:get_enabled_features() end + +--- @param requested_reference_space_types String +function WebXRInterface:set_requested_reference_space_types(requested_reference_space_types) end + +--- @return String +function WebXRInterface:get_requested_reference_space_types() end + +--- @param input_source_id int +--- @return bool +function WebXRInterface:is_input_source_active(input_source_id) end + +--- @param input_source_id int +--- @return XRControllerTracker +function WebXRInterface:get_input_source_tracker(input_source_id) end + +--- @param input_source_id int +--- @return WebXRInterface.TargetRayMode +function WebXRInterface:get_input_source_target_ray_mode(input_source_id) end + +--- @return String +function WebXRInterface:get_visibility_state() end + +--- @return float +function WebXRInterface:get_display_refresh_rate() end + +--- @param refresh_rate float +function WebXRInterface:set_display_refresh_rate(refresh_rate) end + +--- @return Array +function WebXRInterface:get_available_display_refresh_rates() end + + +----------------------------------------------------------- +-- Window +----------------------------------------------------------- + +--- @class Window: Viewport, { [string]: any } +--- @field mode int +--- @field title String +--- @field initial_position int +--- @field position Vector2i +--- @field size Vector2i +--- @field current_screen int +--- @field mouse_passthrough_polygon PackedVector2Array +--- @field visible bool +--- @field wrap_controls bool +--- @field transient bool +--- @field transient_to_focused bool +--- @field exclusive bool +--- @field unresizable bool +--- @field borderless bool +--- @field always_on_top bool +--- @field transparent bool +--- @field unfocusable bool +--- @field popup_window bool +--- @field extend_to_title bool +--- @field mouse_passthrough bool +--- @field sharp_corners bool +--- @field exclude_from_capture bool +--- @field popup_wm_hint bool +--- @field minimize_disabled bool +--- @field maximize_disabled bool +--- @field force_native bool +--- @field min_size Vector2i +--- @field max_size Vector2i +--- @field keep_title_visible bool +--- @field content_scale_size Vector2i +--- @field content_scale_mode int +--- @field content_scale_aspect int +--- @field content_scale_stretch int +--- @field content_scale_factor float +--- @field auto_translate bool +--- @field accessibility_name String +--- @field accessibility_description String +--- @field theme Theme +--- @field theme_type_variation String +Window = {} + +--- @return Window +function Window:new() end + +Window.NOTIFICATION_VISIBILITY_CHANGED = 30 +Window.NOTIFICATION_THEME_CHANGED = 32 + +--- @alias Window.Mode `Window.MODE_WINDOWED` | `Window.MODE_MINIMIZED` | `Window.MODE_MAXIMIZED` | `Window.MODE_FULLSCREEN` | `Window.MODE_EXCLUSIVE_FULLSCREEN` +Window.MODE_WINDOWED = 0 +Window.MODE_MINIMIZED = 1 +Window.MODE_MAXIMIZED = 2 +Window.MODE_FULLSCREEN = 3 +Window.MODE_EXCLUSIVE_FULLSCREEN = 4 + +--- @alias Window.Flags `Window.FLAG_RESIZE_DISABLED` | `Window.FLAG_BORDERLESS` | `Window.FLAG_ALWAYS_ON_TOP` | `Window.FLAG_TRANSPARENT` | `Window.FLAG_NO_FOCUS` | `Window.FLAG_POPUP` | `Window.FLAG_EXTEND_TO_TITLE` | `Window.FLAG_MOUSE_PASSTHROUGH` | `Window.FLAG_SHARP_CORNERS` | `Window.FLAG_EXCLUDE_FROM_CAPTURE` | `Window.FLAG_POPUP_WM_HINT` | `Window.FLAG_MINIMIZE_DISABLED` | `Window.FLAG_MAXIMIZE_DISABLED` | `Window.FLAG_MAX` +Window.FLAG_RESIZE_DISABLED = 0 +Window.FLAG_BORDERLESS = 1 +Window.FLAG_ALWAYS_ON_TOP = 2 +Window.FLAG_TRANSPARENT = 3 +Window.FLAG_NO_FOCUS = 4 +Window.FLAG_POPUP = 5 +Window.FLAG_EXTEND_TO_TITLE = 6 +Window.FLAG_MOUSE_PASSTHROUGH = 7 +Window.FLAG_SHARP_CORNERS = 8 +Window.FLAG_EXCLUDE_FROM_CAPTURE = 9 +Window.FLAG_POPUP_WM_HINT = 10 +Window.FLAG_MINIMIZE_DISABLED = 11 +Window.FLAG_MAXIMIZE_DISABLED = 12 +Window.FLAG_MAX = 13 + +--- @alias Window.ContentScaleMode `Window.CONTENT_SCALE_MODE_DISABLED` | `Window.CONTENT_SCALE_MODE_CANVAS_ITEMS` | `Window.CONTENT_SCALE_MODE_VIEWPORT` +Window.CONTENT_SCALE_MODE_DISABLED = 0 +Window.CONTENT_SCALE_MODE_CANVAS_ITEMS = 1 +Window.CONTENT_SCALE_MODE_VIEWPORT = 2 + +--- @alias Window.ContentScaleAspect `Window.CONTENT_SCALE_ASPECT_IGNORE` | `Window.CONTENT_SCALE_ASPECT_KEEP` | `Window.CONTENT_SCALE_ASPECT_KEEP_WIDTH` | `Window.CONTENT_SCALE_ASPECT_KEEP_HEIGHT` | `Window.CONTENT_SCALE_ASPECT_EXPAND` +Window.CONTENT_SCALE_ASPECT_IGNORE = 0 +Window.CONTENT_SCALE_ASPECT_KEEP = 1 +Window.CONTENT_SCALE_ASPECT_KEEP_WIDTH = 2 +Window.CONTENT_SCALE_ASPECT_KEEP_HEIGHT = 3 +Window.CONTENT_SCALE_ASPECT_EXPAND = 4 + +--- @alias Window.ContentScaleStretch `Window.CONTENT_SCALE_STRETCH_FRACTIONAL` | `Window.CONTENT_SCALE_STRETCH_INTEGER` +Window.CONTENT_SCALE_STRETCH_FRACTIONAL = 0 +Window.CONTENT_SCALE_STRETCH_INTEGER = 1 + +--- @alias Window.LayoutDirection `Window.LAYOUT_DIRECTION_INHERITED` | `Window.LAYOUT_DIRECTION_APPLICATION_LOCALE` | `Window.LAYOUT_DIRECTION_LTR` | `Window.LAYOUT_DIRECTION_RTL` | `Window.LAYOUT_DIRECTION_SYSTEM_LOCALE` | `Window.LAYOUT_DIRECTION_MAX` | `Window.LAYOUT_DIRECTION_LOCALE` +Window.LAYOUT_DIRECTION_INHERITED = 0 +Window.LAYOUT_DIRECTION_APPLICATION_LOCALE = 1 +Window.LAYOUT_DIRECTION_LTR = 2 +Window.LAYOUT_DIRECTION_RTL = 3 +Window.LAYOUT_DIRECTION_SYSTEM_LOCALE = 4 +Window.LAYOUT_DIRECTION_MAX = 5 +Window.LAYOUT_DIRECTION_LOCALE = 1 + +--- @alias Window.WindowInitialPosition `Window.WINDOW_INITIAL_POSITION_ABSOLUTE` | `Window.WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN` | `Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN` | `Window.WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN` | `Window.WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS` | `Window.WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS` +Window.WINDOW_INITIAL_POSITION_ABSOLUTE = 0 +Window.WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN = 1 +Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN = 2 +Window.WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN = 3 +Window.WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS = 4 +Window.WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS = 5 + +Window.window_input = Signal() +Window.files_dropped = Signal() +Window.mouse_entered = Signal() +Window.mouse_exited = Signal() +Window.focus_entered = Signal() +Window.focus_exited = Signal() +Window.close_requested = Signal() +Window.go_back_requested = Signal() +Window.visibility_changed = Signal() +Window.about_to_popup = Signal() +Window.theme_changed = Signal() +Window.dpi_changed = Signal() +Window.titlebar_changed = Signal() +Window.title_changed = Signal() + +--- @return Vector2 +function Window:_get_contents_minimum_size() end + +--- @param title String +function Window:set_title(title) end + +--- @return String +function Window:get_title() end + +--- @param initial_position Window.WindowInitialPosition +function Window:set_initial_position(initial_position) end + +--- @return Window.WindowInitialPosition +function Window:get_initial_position() end + +--- @param index int +function Window:set_current_screen(index) end + +--- @return int +function Window:get_current_screen() end + +--- @param position Vector2i +function Window:set_position(position) end + +--- @return Vector2i +function Window:get_position() end + +function Window:move_to_center() end + +--- @param size Vector2i +function Window:set_size(size) end + +--- @return Vector2i +function Window:get_size() end + +function Window:reset_size() end + +--- @return Vector2i +function Window:get_position_with_decorations() end + +--- @return Vector2i +function Window:get_size_with_decorations() end + +--- @param max_size Vector2i +function Window:set_max_size(max_size) end + +--- @return Vector2i +function Window:get_max_size() end + +--- @param min_size Vector2i +function Window:set_min_size(min_size) end + +--- @return Vector2i +function Window:get_min_size() end + +--- @param mode Window.Mode +function Window:set_mode(mode) end + +--- @return Window.Mode +function Window:get_mode() end + +--- @param flag Window.Flags +--- @param enabled bool +function Window:set_flag(flag, enabled) end + +--- @param flag Window.Flags +--- @return bool +function Window:get_flag(flag) end + +--- @return bool +function Window:is_maximize_allowed() end + +function Window:request_attention() end + +function Window:move_to_foreground() end + +--- @param visible bool +function Window:set_visible(visible) end + +--- @return bool +function Window:is_visible() end + +function Window:hide() end + +function Window:show() end + +--- @param transient bool +function Window:set_transient(transient) end + +--- @return bool +function Window:is_transient() end + +--- @param enable bool +function Window:set_transient_to_focused(enable) end + +--- @return bool +function Window:is_transient_to_focused() end + +--- @param exclusive bool +function Window:set_exclusive(exclusive) end + +--- @return bool +function Window:is_exclusive() end + +--- @param unparent bool +function Window:set_unparent_when_invisible(unparent) end + +--- @return bool +function Window:can_draw() end + +--- @return bool +function Window:has_focus() end + +function Window:grab_focus() end + +function Window:start_drag() end + +--- @param edge DisplayServer.WindowResizeEdge +function Window:start_resize(edge) end + +--- @param active bool +function Window:set_ime_active(active) end + +--- @param position Vector2i +function Window:set_ime_position(position) end + +--- @return bool +function Window:is_embedded() end + +--- @return Vector2 +function Window:get_contents_minimum_size() end + +--- @param force_native bool +function Window:set_force_native(force_native) end + +--- @return bool +function Window:get_force_native() end + +--- @param size Vector2i +function Window:set_content_scale_size(size) end + +--- @return Vector2i +function Window:get_content_scale_size() end + +--- @param mode Window.ContentScaleMode +function Window:set_content_scale_mode(mode) end + +--- @return Window.ContentScaleMode +function Window:get_content_scale_mode() end + +--- @param aspect Window.ContentScaleAspect +function Window:set_content_scale_aspect(aspect) end + +--- @return Window.ContentScaleAspect +function Window:get_content_scale_aspect() end + +--- @param stretch Window.ContentScaleStretch +function Window:set_content_scale_stretch(stretch) end + +--- @return Window.ContentScaleStretch +function Window:get_content_scale_stretch() end + +--- @param title_visible bool +function Window:set_keep_title_visible(title_visible) end + +--- @return bool +function Window:get_keep_title_visible() end + +--- @param factor float +function Window:set_content_scale_factor(factor) end + +--- @return float +function Window:get_content_scale_factor() end + +--- @param polygon PackedVector2Array +function Window:set_mouse_passthrough_polygon(polygon) end + +--- @return PackedVector2Array +function Window:get_mouse_passthrough_polygon() end + +--- @param enable bool +function Window:set_wrap_controls(enable) end + +--- @return bool +function Window:is_wrapping_controls() end + +function Window:child_controls_changed() end + +--- @param theme Theme +function Window:set_theme(theme) end + +--- @return Theme +function Window:get_theme() end + +--- @param theme_type StringName +function Window:set_theme_type_variation(theme_type) end + +--- @return StringName +function Window:get_theme_type_variation() end + +function Window:begin_bulk_theme_override() end + +function Window:end_bulk_theme_override() end + +--- @param name StringName +--- @param texture Texture2D +function Window:add_theme_icon_override(name, texture) end + +--- @param name StringName +--- @param stylebox StyleBox +function Window:add_theme_stylebox_override(name, stylebox) end + +--- @param name StringName +--- @param font Font +function Window:add_theme_font_override(name, font) end + +--- @param name StringName +--- @param font_size int +function Window:add_theme_font_size_override(name, font_size) end + +--- @param name StringName +--- @param color Color +function Window:add_theme_color_override(name, color) end + +--- @param name StringName +--- @param constant int +function Window:add_theme_constant_override(name, constant) end + +--- @param name StringName +function Window:remove_theme_icon_override(name) end + +--- @param name StringName +function Window:remove_theme_stylebox_override(name) end + +--- @param name StringName +function Window:remove_theme_font_override(name) end + +--- @param name StringName +function Window:remove_theme_font_size_override(name) end + +--- @param name StringName +function Window:remove_theme_color_override(name) end + +--- @param name StringName +function Window:remove_theme_constant_override(name) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Texture2D +function Window:get_theme_icon(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return StyleBox +function Window:get_theme_stylebox(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Font +function Window:get_theme_font(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return int +function Window:get_theme_font_size(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return Color +function Window:get_theme_color(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return int +function Window:get_theme_constant(name, theme_type) end + +--- @param name StringName +--- @return bool +function Window:has_theme_icon_override(name) end + +--- @param name StringName +--- @return bool +function Window:has_theme_stylebox_override(name) end + +--- @param name StringName +--- @return bool +function Window:has_theme_font_override(name) end + +--- @param name StringName +--- @return bool +function Window:has_theme_font_size_override(name) end + +--- @param name StringName +--- @return bool +function Window:has_theme_color_override(name) end + +--- @param name StringName +--- @return bool +function Window:has_theme_constant_override(name) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_icon(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_stylebox(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_font(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_font_size(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_color(name, theme_type) end + +--- @param name StringName +--- @param theme_type StringName? Default: &"" +--- @return bool +function Window:has_theme_constant(name, theme_type) end + +--- @return float +function Window:get_theme_default_base_scale() end + +--- @return Font +function Window:get_theme_default_font() end + +--- @return int +function Window:get_theme_default_font_size() end + +--- @return int +function Window:get_window_id() end + +--- @param name String +function Window:set_accessibility_name(name) end + +--- @return String +function Window:get_accessibility_name() end + +--- @param description String +function Window:set_accessibility_description(description) end + +--- @return String +function Window:get_accessibility_description() end + +--- static +--- @return Window +function Window:get_focused_window() end + +--- @param direction Window.LayoutDirection +function Window:set_layout_direction(direction) end + +--- @return Window.LayoutDirection +function Window:get_layout_direction() end + +--- @return bool +function Window:is_layout_rtl() end + +--- @param enable bool +function Window:set_auto_translate(enable) end + +--- @return bool +function Window:is_auto_translating() end + +--- @param enable bool +function Window:set_use_font_oversampling(enable) end + +--- @return bool +function Window:is_using_font_oversampling() end + +--- @param rect Rect2i? Default: Rect2i(0, 0, 0, 0) +function Window:popup(rect) end + +--- @param parent_rect Rect2i +function Window:popup_on_parent(parent_rect) end + +--- @param minsize Vector2i? Default: Vector2i(0, 0) +function Window:popup_centered(minsize) end + +--- @param ratio float? Default: 0.8 +function Window:popup_centered_ratio(ratio) end + +--- @param minsize Vector2i? Default: Vector2i(0, 0) +--- @param fallback_ratio float? Default: 0.75 +function Window:popup_centered_clamped(minsize, fallback_ratio) end + +--- @param from_node Node +--- @param rect Rect2i? Default: Rect2i(0, 0, 0, 0) +function Window:popup_exclusive(from_node, rect) end + +--- @param from_node Node +--- @param parent_rect Rect2i +function Window:popup_exclusive_on_parent(from_node, parent_rect) end + +--- @param from_node Node +--- @param minsize Vector2i? Default: Vector2i(0, 0) +function Window:popup_exclusive_centered(from_node, minsize) end + +--- @param from_node Node +--- @param ratio float? Default: 0.8 +function Window:popup_exclusive_centered_ratio(from_node, ratio) end + +--- @param from_node Node +--- @param minsize Vector2i? Default: Vector2i(0, 0) +--- @param fallback_ratio float? Default: 0.75 +function Window:popup_exclusive_centered_clamped(from_node, minsize, fallback_ratio) end + + +----------------------------------------------------------- +-- WorkerThreadPool +----------------------------------------------------------- + +--- @class WorkerThreadPool: Object, { [string]: any } +WorkerThreadPool = {} + +--- @param action Callable +--- @param high_priority bool? Default: false +--- @param description String? Default: "" +--- @return int +function WorkerThreadPool:add_task(action, high_priority, description) end + +--- @param task_id int +--- @return bool +function WorkerThreadPool:is_task_completed(task_id) end + +--- @param task_id int +--- @return Error +function WorkerThreadPool:wait_for_task_completion(task_id) end + +--- @return int +function WorkerThreadPool:get_caller_task_id() end + +--- @param action Callable +--- @param elements int +--- @param tasks_needed int? Default: -1 +--- @param high_priority bool? Default: false +--- @param description String? Default: "" +--- @return int +function WorkerThreadPool:add_group_task(action, elements, tasks_needed, high_priority, description) end + +--- @param group_id int +--- @return bool +function WorkerThreadPool:is_group_task_completed(group_id) end + +--- @param group_id int +--- @return int +function WorkerThreadPool:get_group_processed_element_count(group_id) end + +--- @param group_id int +function WorkerThreadPool:wait_for_group_task_completion(group_id) end + +--- @return int +function WorkerThreadPool:get_caller_group_id() end + + +----------------------------------------------------------- +-- World2D +----------------------------------------------------------- + +--- @class World2D: Resource, { [string]: any } +--- @field canvas RID +--- @field navigation_map RID +--- @field space RID +--- @field direct_space_state PhysicsDirectSpaceState2D +World2D = {} + +--- @return World2D +function World2D:new() end + +--- @return RID +function World2D:get_canvas() end + +--- @return RID +function World2D:get_navigation_map() end + +--- @return RID +function World2D:get_space() end + +--- @return PhysicsDirectSpaceState2D +function World2D:get_direct_space_state() end + + +----------------------------------------------------------- +-- World3D +----------------------------------------------------------- + +--- @class World3D: Resource, { [string]: any } +--- @field environment Environment +--- @field fallback_environment Environment +--- @field camera_attributes CameraAttributesPractical | CameraAttributesPhysical +--- @field space RID +--- @field navigation_map RID +--- @field scenario RID +--- @field direct_space_state PhysicsDirectSpaceState3D +World3D = {} + +--- @return World3D +function World3D:new() end + +--- @return RID +function World3D:get_space() end + +--- @return RID +function World3D:get_navigation_map() end + +--- @return RID +function World3D:get_scenario() end + +--- @param env Environment +function World3D:set_environment(env) end + +--- @return Environment +function World3D:get_environment() end + +--- @param env Environment +function World3D:set_fallback_environment(env) end + +--- @return Environment +function World3D:get_fallback_environment() end + +--- @param attributes CameraAttributes +function World3D:set_camera_attributes(attributes) end + +--- @return CameraAttributes +function World3D:get_camera_attributes() end + +--- @return PhysicsDirectSpaceState3D +function World3D:get_direct_space_state() end + + +----------------------------------------------------------- +-- WorldBoundaryShape2D +----------------------------------------------------------- + +--- @class WorldBoundaryShape2D: Shape2D, { [string]: any } +--- @field normal Vector2 +--- @field distance float +WorldBoundaryShape2D = {} + +--- @return WorldBoundaryShape2D +function WorldBoundaryShape2D:new() end + +--- @param normal Vector2 +function WorldBoundaryShape2D:set_normal(normal) end + +--- @return Vector2 +function WorldBoundaryShape2D:get_normal() end + +--- @param distance float +function WorldBoundaryShape2D:set_distance(distance) end + +--- @return float +function WorldBoundaryShape2D:get_distance() end + + +----------------------------------------------------------- +-- WorldBoundaryShape3D +----------------------------------------------------------- + +--- @class WorldBoundaryShape3D: Shape3D, { [string]: any } +--- @field plane Plane +WorldBoundaryShape3D = {} + +--- @return WorldBoundaryShape3D +function WorldBoundaryShape3D:new() end + +--- @param plane Plane +function WorldBoundaryShape3D:set_plane(plane) end + +--- @return Plane +function WorldBoundaryShape3D:get_plane() end + + +----------------------------------------------------------- +-- WorldEnvironment +----------------------------------------------------------- + +--- @class WorldEnvironment: Node, { [string]: any } +--- @field environment Environment +--- @field camera_attributes CameraAttributesPractical | CameraAttributesPhysical +--- @field compositor Compositor +WorldEnvironment = {} + +--- @return WorldEnvironment +function WorldEnvironment:new() end + +--- @param env Environment +function WorldEnvironment:set_environment(env) end + +--- @return Environment +function WorldEnvironment:get_environment() end + +--- @param camera_attributes CameraAttributes +function WorldEnvironment:set_camera_attributes(camera_attributes) end + +--- @return CameraAttributes +function WorldEnvironment:get_camera_attributes() end + +--- @param compositor Compositor +function WorldEnvironment:set_compositor(compositor) end + +--- @return Compositor +function WorldEnvironment:get_compositor() end + + +----------------------------------------------------------- +-- X509Certificate +----------------------------------------------------------- + +--- @class X509Certificate: Resource, { [string]: any } +X509Certificate = {} + +--- @return X509Certificate +function X509Certificate:new() end + +--- @param path String +--- @return Error +function X509Certificate:save(path) end + +--- @param path String +--- @return Error +function X509Certificate:load(path) end + +--- @return String +function X509Certificate:save_to_string() end + +--- @param string String +--- @return Error +function X509Certificate:load_from_string(string) end + + +----------------------------------------------------------- +-- XMLParser +----------------------------------------------------------- + +--- @class XMLParser: RefCounted, { [string]: any } +XMLParser = {} + +--- @return XMLParser +function XMLParser:new() end + +--- @alias XMLParser.NodeType `XMLParser.NODE_NONE` | `XMLParser.NODE_ELEMENT` | `XMLParser.NODE_ELEMENT_END` | `XMLParser.NODE_TEXT` | `XMLParser.NODE_COMMENT` | `XMLParser.NODE_CDATA` | `XMLParser.NODE_UNKNOWN` +XMLParser.NODE_NONE = 0 +XMLParser.NODE_ELEMENT = 1 +XMLParser.NODE_ELEMENT_END = 2 +XMLParser.NODE_TEXT = 3 +XMLParser.NODE_COMMENT = 4 +XMLParser.NODE_CDATA = 5 +XMLParser.NODE_UNKNOWN = 6 + +--- @return Error +function XMLParser:read() end + +--- @return XMLParser.NodeType +function XMLParser:get_node_type() end + +--- @return String +function XMLParser:get_node_name() end + +--- @return String +function XMLParser:get_node_data() end + +--- @return int +function XMLParser:get_node_offset() end + +--- @return int +function XMLParser:get_attribute_count() end + +--- @param idx int +--- @return String +function XMLParser:get_attribute_name(idx) end + +--- @param idx int +--- @return String +function XMLParser:get_attribute_value(idx) end + +--- @param name String +--- @return bool +function XMLParser:has_attribute(name) end + +--- @param name String +--- @return String +function XMLParser:get_named_attribute_value(name) end + +--- @param name String +--- @return String +function XMLParser:get_named_attribute_value_safe(name) end + +--- @return bool +function XMLParser:is_empty() end + +--- @return int +function XMLParser:get_current_line() end + +function XMLParser:skip_section() end + +--- @param position int +--- @return Error +function XMLParser:seek(position) end + +--- @param file String +--- @return Error +function XMLParser:open(file) end + +--- @param buffer PackedByteArray +--- @return Error +function XMLParser:open_buffer(buffer) end + + +----------------------------------------------------------- +-- XRAnchor3D +----------------------------------------------------------- + +--- @class XRAnchor3D: XRNode3D, { [string]: any } +XRAnchor3D = {} + +--- @return XRAnchor3D +function XRAnchor3D:new() end + +--- @return Vector3 +function XRAnchor3D:get_size() end + +--- @return Plane +function XRAnchor3D:get_plane() end + + +----------------------------------------------------------- +-- XRBodyModifier3D +----------------------------------------------------------- + +--- @class XRBodyModifier3D: SkeletonModifier3D, { [string]: any } +--- @field body_tracker String +--- @field body_update int +--- @field bone_update int +XRBodyModifier3D = {} + +--- @return XRBodyModifier3D +function XRBodyModifier3D:new() end + +--- @alias XRBodyModifier3D.BodyUpdate `XRBodyModifier3D.BODY_UPDATE_UPPER_BODY` | `XRBodyModifier3D.BODY_UPDATE_LOWER_BODY` | `XRBodyModifier3D.BODY_UPDATE_HANDS` +XRBodyModifier3D.BODY_UPDATE_UPPER_BODY = 1 +XRBodyModifier3D.BODY_UPDATE_LOWER_BODY = 2 +XRBodyModifier3D.BODY_UPDATE_HANDS = 4 + +--- @alias XRBodyModifier3D.BoneUpdate `XRBodyModifier3D.BONE_UPDATE_FULL` | `XRBodyModifier3D.BONE_UPDATE_ROTATION_ONLY` | `XRBodyModifier3D.BONE_UPDATE_MAX` +XRBodyModifier3D.BONE_UPDATE_FULL = 0 +XRBodyModifier3D.BONE_UPDATE_ROTATION_ONLY = 1 +XRBodyModifier3D.BONE_UPDATE_MAX = 2 + +--- @param tracker_name StringName +function XRBodyModifier3D:set_body_tracker(tracker_name) end + +--- @return StringName +function XRBodyModifier3D:get_body_tracker() end + +--- @param body_update XRBodyModifier3D.BodyUpdate +function XRBodyModifier3D:set_body_update(body_update) end + +--- @return XRBodyModifier3D.BodyUpdate +function XRBodyModifier3D:get_body_update() end + +--- @param bone_update XRBodyModifier3D.BoneUpdate +function XRBodyModifier3D:set_bone_update(bone_update) end + +--- @return XRBodyModifier3D.BoneUpdate +function XRBodyModifier3D:get_bone_update() end + + +----------------------------------------------------------- +-- XRBodyTracker +----------------------------------------------------------- + +--- @class XRBodyTracker: XRPositionalTracker, { [string]: any } +--- @field has_tracking_data bool +--- @field body_flags int +XRBodyTracker = {} + +--- @return XRBodyTracker +function XRBodyTracker:new() end + +--- @alias XRBodyTracker.BodyFlags `XRBodyTracker.BODY_FLAG_UPPER_BODY_SUPPORTED` | `XRBodyTracker.BODY_FLAG_LOWER_BODY_SUPPORTED` | `XRBodyTracker.BODY_FLAG_HANDS_SUPPORTED` +XRBodyTracker.BODY_FLAG_UPPER_BODY_SUPPORTED = 1 +XRBodyTracker.BODY_FLAG_LOWER_BODY_SUPPORTED = 2 +XRBodyTracker.BODY_FLAG_HANDS_SUPPORTED = 4 + +--- @alias XRBodyTracker.Joint `XRBodyTracker.JOINT_ROOT` | `XRBodyTracker.JOINT_HIPS` | `XRBodyTracker.JOINT_SPINE` | `XRBodyTracker.JOINT_CHEST` | `XRBodyTracker.JOINT_UPPER_CHEST` | `XRBodyTracker.JOINT_NECK` | `XRBodyTracker.JOINT_HEAD` | `XRBodyTracker.JOINT_HEAD_TIP` | `XRBodyTracker.JOINT_LEFT_SHOULDER` | `XRBodyTracker.JOINT_LEFT_UPPER_ARM` | `XRBodyTracker.JOINT_LEFT_LOWER_ARM` | `XRBodyTracker.JOINT_RIGHT_SHOULDER` | `XRBodyTracker.JOINT_RIGHT_UPPER_ARM` | `XRBodyTracker.JOINT_RIGHT_LOWER_ARM` | `XRBodyTracker.JOINT_LEFT_UPPER_LEG` | `XRBodyTracker.JOINT_LEFT_LOWER_LEG` | `XRBodyTracker.JOINT_LEFT_FOOT` | `XRBodyTracker.JOINT_LEFT_TOES` | `XRBodyTracker.JOINT_RIGHT_UPPER_LEG` | `XRBodyTracker.JOINT_RIGHT_LOWER_LEG` | `XRBodyTracker.JOINT_RIGHT_FOOT` | `XRBodyTracker.JOINT_RIGHT_TOES` | `XRBodyTracker.JOINT_LEFT_HAND` | `XRBodyTracker.JOINT_LEFT_PALM` | `XRBodyTracker.JOINT_LEFT_WRIST` | `XRBodyTracker.JOINT_LEFT_THUMB_METACARPAL` | `XRBodyTracker.JOINT_LEFT_THUMB_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_LEFT_THUMB_PHALANX_DISTAL` | `XRBodyTracker.JOINT_LEFT_THUMB_TIP` | `XRBodyTracker.JOINT_LEFT_INDEX_FINGER_METACARPAL` | `XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_LEFT_INDEX_FINGER_TIP` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_METACARPAL` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_TIP` | `XRBodyTracker.JOINT_LEFT_RING_FINGER_METACARPAL` | `XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_LEFT_RING_FINGER_TIP` | `XRBodyTracker.JOINT_LEFT_PINKY_FINGER_METACARPAL` | `XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_LEFT_PINKY_FINGER_TIP` | `XRBodyTracker.JOINT_RIGHT_HAND` | `XRBodyTracker.JOINT_RIGHT_PALM` | `XRBodyTracker.JOINT_RIGHT_WRIST` | `XRBodyTracker.JOINT_RIGHT_THUMB_METACARPAL` | `XRBodyTracker.JOINT_RIGHT_THUMB_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_RIGHT_THUMB_PHALANX_DISTAL` | `XRBodyTracker.JOINT_RIGHT_THUMB_TIP` | `XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_METACARPAL` | `XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_TIP` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_METACARPAL` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_TIP` | `XRBodyTracker.JOINT_RIGHT_RING_FINGER_METACARPAL` | `XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_RIGHT_RING_FINGER_TIP` | `XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_METACARPAL` | `XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_PROXIMAL` | `XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_INTERMEDIATE` | `XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_DISTAL` | `XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_TIP` | `XRBodyTracker.JOINT_LOWER_CHEST` | `XRBodyTracker.JOINT_LEFT_SCAPULA` | `XRBodyTracker.JOINT_LEFT_WRIST_TWIST` | `XRBodyTracker.JOINT_RIGHT_SCAPULA` | `XRBodyTracker.JOINT_RIGHT_WRIST_TWIST` | `XRBodyTracker.JOINT_LEFT_FOOT_TWIST` | `XRBodyTracker.JOINT_LEFT_HEEL` | `XRBodyTracker.JOINT_LEFT_MIDDLE_FOOT` | `XRBodyTracker.JOINT_RIGHT_FOOT_TWIST` | `XRBodyTracker.JOINT_RIGHT_HEEL` | `XRBodyTracker.JOINT_RIGHT_MIDDLE_FOOT` | `XRBodyTracker.JOINT_MAX` +XRBodyTracker.JOINT_ROOT = 0 +XRBodyTracker.JOINT_HIPS = 1 +XRBodyTracker.JOINT_SPINE = 2 +XRBodyTracker.JOINT_CHEST = 3 +XRBodyTracker.JOINT_UPPER_CHEST = 4 +XRBodyTracker.JOINT_NECK = 5 +XRBodyTracker.JOINT_HEAD = 6 +XRBodyTracker.JOINT_HEAD_TIP = 7 +XRBodyTracker.JOINT_LEFT_SHOULDER = 8 +XRBodyTracker.JOINT_LEFT_UPPER_ARM = 9 +XRBodyTracker.JOINT_LEFT_LOWER_ARM = 10 +XRBodyTracker.JOINT_RIGHT_SHOULDER = 11 +XRBodyTracker.JOINT_RIGHT_UPPER_ARM = 12 +XRBodyTracker.JOINT_RIGHT_LOWER_ARM = 13 +XRBodyTracker.JOINT_LEFT_UPPER_LEG = 14 +XRBodyTracker.JOINT_LEFT_LOWER_LEG = 15 +XRBodyTracker.JOINT_LEFT_FOOT = 16 +XRBodyTracker.JOINT_LEFT_TOES = 17 +XRBodyTracker.JOINT_RIGHT_UPPER_LEG = 18 +XRBodyTracker.JOINT_RIGHT_LOWER_LEG = 19 +XRBodyTracker.JOINT_RIGHT_FOOT = 20 +XRBodyTracker.JOINT_RIGHT_TOES = 21 +XRBodyTracker.JOINT_LEFT_HAND = 22 +XRBodyTracker.JOINT_LEFT_PALM = 23 +XRBodyTracker.JOINT_LEFT_WRIST = 24 +XRBodyTracker.JOINT_LEFT_THUMB_METACARPAL = 25 +XRBodyTracker.JOINT_LEFT_THUMB_PHALANX_PROXIMAL = 26 +XRBodyTracker.JOINT_LEFT_THUMB_PHALANX_DISTAL = 27 +XRBodyTracker.JOINT_LEFT_THUMB_TIP = 28 +XRBodyTracker.JOINT_LEFT_INDEX_FINGER_METACARPAL = 29 +XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_PROXIMAL = 30 +XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_INTERMEDIATE = 31 +XRBodyTracker.JOINT_LEFT_INDEX_FINGER_PHALANX_DISTAL = 32 +XRBodyTracker.JOINT_LEFT_INDEX_FINGER_TIP = 33 +XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_METACARPAL = 34 +XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_PROXIMAL = 35 +XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 36 +XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_PHALANX_DISTAL = 37 +XRBodyTracker.JOINT_LEFT_MIDDLE_FINGER_TIP = 38 +XRBodyTracker.JOINT_LEFT_RING_FINGER_METACARPAL = 39 +XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_PROXIMAL = 40 +XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_INTERMEDIATE = 41 +XRBodyTracker.JOINT_LEFT_RING_FINGER_PHALANX_DISTAL = 42 +XRBodyTracker.JOINT_LEFT_RING_FINGER_TIP = 43 +XRBodyTracker.JOINT_LEFT_PINKY_FINGER_METACARPAL = 44 +XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_PROXIMAL = 45 +XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_INTERMEDIATE = 46 +XRBodyTracker.JOINT_LEFT_PINKY_FINGER_PHALANX_DISTAL = 47 +XRBodyTracker.JOINT_LEFT_PINKY_FINGER_TIP = 48 +XRBodyTracker.JOINT_RIGHT_HAND = 49 +XRBodyTracker.JOINT_RIGHT_PALM = 50 +XRBodyTracker.JOINT_RIGHT_WRIST = 51 +XRBodyTracker.JOINT_RIGHT_THUMB_METACARPAL = 52 +XRBodyTracker.JOINT_RIGHT_THUMB_PHALANX_PROXIMAL = 53 +XRBodyTracker.JOINT_RIGHT_THUMB_PHALANX_DISTAL = 54 +XRBodyTracker.JOINT_RIGHT_THUMB_TIP = 55 +XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_METACARPAL = 56 +XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_PROXIMAL = 57 +XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_INTERMEDIATE = 58 +XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_PHALANX_DISTAL = 59 +XRBodyTracker.JOINT_RIGHT_INDEX_FINGER_TIP = 60 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_METACARPAL = 61 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_PROXIMAL = 62 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 63 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_PHALANX_DISTAL = 64 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FINGER_TIP = 65 +XRBodyTracker.JOINT_RIGHT_RING_FINGER_METACARPAL = 66 +XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_PROXIMAL = 67 +XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_INTERMEDIATE = 68 +XRBodyTracker.JOINT_RIGHT_RING_FINGER_PHALANX_DISTAL = 69 +XRBodyTracker.JOINT_RIGHT_RING_FINGER_TIP = 70 +XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_METACARPAL = 71 +XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_PROXIMAL = 72 +XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_INTERMEDIATE = 73 +XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_PHALANX_DISTAL = 74 +XRBodyTracker.JOINT_RIGHT_PINKY_FINGER_TIP = 75 +XRBodyTracker.JOINT_LOWER_CHEST = 76 +XRBodyTracker.JOINT_LEFT_SCAPULA = 77 +XRBodyTracker.JOINT_LEFT_WRIST_TWIST = 78 +XRBodyTracker.JOINT_RIGHT_SCAPULA = 79 +XRBodyTracker.JOINT_RIGHT_WRIST_TWIST = 80 +XRBodyTracker.JOINT_LEFT_FOOT_TWIST = 81 +XRBodyTracker.JOINT_LEFT_HEEL = 82 +XRBodyTracker.JOINT_LEFT_MIDDLE_FOOT = 83 +XRBodyTracker.JOINT_RIGHT_FOOT_TWIST = 84 +XRBodyTracker.JOINT_RIGHT_HEEL = 85 +XRBodyTracker.JOINT_RIGHT_MIDDLE_FOOT = 86 +XRBodyTracker.JOINT_MAX = 87 + +--- @alias XRBodyTracker.JointFlags `XRBodyTracker.JOINT_FLAG_ORIENTATION_VALID` | `XRBodyTracker.JOINT_FLAG_ORIENTATION_TRACKED` | `XRBodyTracker.JOINT_FLAG_POSITION_VALID` | `XRBodyTracker.JOINT_FLAG_POSITION_TRACKED` +XRBodyTracker.JOINT_FLAG_ORIENTATION_VALID = 1 +XRBodyTracker.JOINT_FLAG_ORIENTATION_TRACKED = 2 +XRBodyTracker.JOINT_FLAG_POSITION_VALID = 4 +XRBodyTracker.JOINT_FLAG_POSITION_TRACKED = 8 + +--- @param has_data bool +function XRBodyTracker:set_has_tracking_data(has_data) end + +--- @return bool +function XRBodyTracker:get_has_tracking_data() end + +--- @param flags XRBodyTracker.BodyFlags +function XRBodyTracker:set_body_flags(flags) end + +--- @return XRBodyTracker.BodyFlags +function XRBodyTracker:get_body_flags() end + +--- @param joint XRBodyTracker.Joint +--- @param flags XRBodyTracker.JointFlags +function XRBodyTracker:set_joint_flags(joint, flags) end + +--- @param joint XRBodyTracker.Joint +--- @return XRBodyTracker.JointFlags +function XRBodyTracker:get_joint_flags(joint) end + +--- @param joint XRBodyTracker.Joint +--- @param transform Transform3D +function XRBodyTracker:set_joint_transform(joint, transform) end + +--- @param joint XRBodyTracker.Joint +--- @return Transform3D +function XRBodyTracker:get_joint_transform(joint) end + + +----------------------------------------------------------- +-- XRCamera3D +----------------------------------------------------------- + +--- @class XRCamera3D: Camera3D, { [string]: any } +XRCamera3D = {} + +--- @return XRCamera3D +function XRCamera3D:new() end + + +----------------------------------------------------------- +-- XRController3D +----------------------------------------------------------- + +--- @class XRController3D: XRNode3D, { [string]: any } +XRController3D = {} + +--- @return XRController3D +function XRController3D:new() end + +XRController3D.button_pressed = Signal() +XRController3D.button_released = Signal() +XRController3D.input_float_changed = Signal() +XRController3D.input_vector2_changed = Signal() +XRController3D.profile_changed = Signal() + +--- @param name StringName +--- @return bool +function XRController3D:is_button_pressed(name) end + +--- @param name StringName +--- @return any +function XRController3D:get_input(name) end + +--- @param name StringName +--- @return float +function XRController3D:get_float(name) end + +--- @param name StringName +--- @return Vector2 +function XRController3D:get_vector2(name) end + +--- @return XRPositionalTracker.TrackerHand +function XRController3D:get_tracker_hand() end + + +----------------------------------------------------------- +-- XRControllerTracker +----------------------------------------------------------- + +--- @class XRControllerTracker: XRPositionalTracker, { [string]: any } +XRControllerTracker = {} + +--- @return XRControllerTracker +function XRControllerTracker:new() end + + +----------------------------------------------------------- +-- XRFaceModifier3D +----------------------------------------------------------- + +--- @class XRFaceModifier3D: Node3D, { [string]: any } +--- @field face_tracker String +--- @field target NodePath +XRFaceModifier3D = {} + +--- @return XRFaceModifier3D +function XRFaceModifier3D:new() end + +--- @param tracker_name StringName +function XRFaceModifier3D:set_face_tracker(tracker_name) end + +--- @return StringName +function XRFaceModifier3D:get_face_tracker() end + +--- @param target NodePath +function XRFaceModifier3D:set_target(target) end + +--- @return NodePath +function XRFaceModifier3D:get_target() end + + +----------------------------------------------------------- +-- XRFaceTracker +----------------------------------------------------------- + +--- @class XRFaceTracker: XRTracker, { [string]: any } +--- @field blend_shapes PackedFloat32Array +XRFaceTracker = {} + +--- @return XRFaceTracker +function XRFaceTracker:new() end + +--- @alias XRFaceTracker.BlendShapeEntry `XRFaceTracker.FT_EYE_LOOK_OUT_RIGHT` | `XRFaceTracker.FT_EYE_LOOK_IN_RIGHT` | `XRFaceTracker.FT_EYE_LOOK_UP_RIGHT` | `XRFaceTracker.FT_EYE_LOOK_DOWN_RIGHT` | `XRFaceTracker.FT_EYE_LOOK_OUT_LEFT` | `XRFaceTracker.FT_EYE_LOOK_IN_LEFT` | `XRFaceTracker.FT_EYE_LOOK_UP_LEFT` | `XRFaceTracker.FT_EYE_LOOK_DOWN_LEFT` | `XRFaceTracker.FT_EYE_CLOSED_RIGHT` | `XRFaceTracker.FT_EYE_CLOSED_LEFT` | `XRFaceTracker.FT_EYE_SQUINT_RIGHT` | `XRFaceTracker.FT_EYE_SQUINT_LEFT` | `XRFaceTracker.FT_EYE_WIDE_RIGHT` | `XRFaceTracker.FT_EYE_WIDE_LEFT` | `XRFaceTracker.FT_EYE_DILATION_RIGHT` | `XRFaceTracker.FT_EYE_DILATION_LEFT` | `XRFaceTracker.FT_EYE_CONSTRICT_RIGHT` | `XRFaceTracker.FT_EYE_CONSTRICT_LEFT` | `XRFaceTracker.FT_BROW_PINCH_RIGHT` | `XRFaceTracker.FT_BROW_PINCH_LEFT` | `XRFaceTracker.FT_BROW_LOWERER_RIGHT` | `XRFaceTracker.FT_BROW_LOWERER_LEFT` | `XRFaceTracker.FT_BROW_INNER_UP_RIGHT` | `XRFaceTracker.FT_BROW_INNER_UP_LEFT` | `XRFaceTracker.FT_BROW_OUTER_UP_RIGHT` | `XRFaceTracker.FT_BROW_OUTER_UP_LEFT` | `XRFaceTracker.FT_NOSE_SNEER_RIGHT` | `XRFaceTracker.FT_NOSE_SNEER_LEFT` | `XRFaceTracker.FT_NASAL_DILATION_RIGHT` | `XRFaceTracker.FT_NASAL_DILATION_LEFT` | `XRFaceTracker.FT_NASAL_CONSTRICT_RIGHT` | `XRFaceTracker.FT_NASAL_CONSTRICT_LEFT` | `XRFaceTracker.FT_CHEEK_SQUINT_RIGHT` | `XRFaceTracker.FT_CHEEK_SQUINT_LEFT` | `XRFaceTracker.FT_CHEEK_PUFF_RIGHT` | `XRFaceTracker.FT_CHEEK_PUFF_LEFT` | `XRFaceTracker.FT_CHEEK_SUCK_RIGHT` | `XRFaceTracker.FT_CHEEK_SUCK_LEFT` | `XRFaceTracker.FT_JAW_OPEN` | `XRFaceTracker.FT_MOUTH_CLOSED` | `XRFaceTracker.FT_JAW_RIGHT` | `XRFaceTracker.FT_JAW_LEFT` | `XRFaceTracker.FT_JAW_FORWARD` | `XRFaceTracker.FT_JAW_BACKWARD` | `XRFaceTracker.FT_JAW_CLENCH` | `XRFaceTracker.FT_JAW_MANDIBLE_RAISE` | `XRFaceTracker.FT_LIP_SUCK_UPPER_RIGHT` | `XRFaceTracker.FT_LIP_SUCK_UPPER_LEFT` | `XRFaceTracker.FT_LIP_SUCK_LOWER_RIGHT` | `XRFaceTracker.FT_LIP_SUCK_LOWER_LEFT` | `XRFaceTracker.FT_LIP_SUCK_CORNER_RIGHT` | `XRFaceTracker.FT_LIP_SUCK_CORNER_LEFT` | `XRFaceTracker.FT_LIP_FUNNEL_UPPER_RIGHT` | `XRFaceTracker.FT_LIP_FUNNEL_UPPER_LEFT` | `XRFaceTracker.FT_LIP_FUNNEL_LOWER_RIGHT` | `XRFaceTracker.FT_LIP_FUNNEL_LOWER_LEFT` | `XRFaceTracker.FT_LIP_PUCKER_UPPER_RIGHT` | `XRFaceTracker.FT_LIP_PUCKER_UPPER_LEFT` | `XRFaceTracker.FT_LIP_PUCKER_LOWER_RIGHT` | `XRFaceTracker.FT_LIP_PUCKER_LOWER_LEFT` | `XRFaceTracker.FT_MOUTH_UPPER_UP_RIGHT` | `XRFaceTracker.FT_MOUTH_UPPER_UP_LEFT` | `XRFaceTracker.FT_MOUTH_LOWER_DOWN_RIGHT` | `XRFaceTracker.FT_MOUTH_LOWER_DOWN_LEFT` | `XRFaceTracker.FT_MOUTH_UPPER_DEEPEN_RIGHT` | `XRFaceTracker.FT_MOUTH_UPPER_DEEPEN_LEFT` | `XRFaceTracker.FT_MOUTH_UPPER_RIGHT` | `XRFaceTracker.FT_MOUTH_UPPER_LEFT` | `XRFaceTracker.FT_MOUTH_LOWER_RIGHT` | `XRFaceTracker.FT_MOUTH_LOWER_LEFT` | `XRFaceTracker.FT_MOUTH_CORNER_PULL_RIGHT` | `XRFaceTracker.FT_MOUTH_CORNER_PULL_LEFT` | `XRFaceTracker.FT_MOUTH_CORNER_SLANT_RIGHT` | `XRFaceTracker.FT_MOUTH_CORNER_SLANT_LEFT` | `XRFaceTracker.FT_MOUTH_FROWN_RIGHT` | `XRFaceTracker.FT_MOUTH_FROWN_LEFT` | `XRFaceTracker.FT_MOUTH_STRETCH_RIGHT` | `XRFaceTracker.FT_MOUTH_STRETCH_LEFT` | `XRFaceTracker.FT_MOUTH_DIMPLE_RIGHT` | `XRFaceTracker.FT_MOUTH_DIMPLE_LEFT` | `XRFaceTracker.FT_MOUTH_RAISER_UPPER` | `XRFaceTracker.FT_MOUTH_RAISER_LOWER` | `XRFaceTracker.FT_MOUTH_PRESS_RIGHT` | `XRFaceTracker.FT_MOUTH_PRESS_LEFT` | `XRFaceTracker.FT_MOUTH_TIGHTENER_RIGHT` | `XRFaceTracker.FT_MOUTH_TIGHTENER_LEFT` | `XRFaceTracker.FT_TONGUE_OUT` | `XRFaceTracker.FT_TONGUE_UP` | `XRFaceTracker.FT_TONGUE_DOWN` | `XRFaceTracker.FT_TONGUE_RIGHT` | `XRFaceTracker.FT_TONGUE_LEFT` | `XRFaceTracker.FT_TONGUE_ROLL` | `XRFaceTracker.FT_TONGUE_BLEND_DOWN` | `XRFaceTracker.FT_TONGUE_CURL_UP` | `XRFaceTracker.FT_TONGUE_SQUISH` | `XRFaceTracker.FT_TONGUE_FLAT` | `XRFaceTracker.FT_TONGUE_TWIST_RIGHT` | `XRFaceTracker.FT_TONGUE_TWIST_LEFT` | `XRFaceTracker.FT_SOFT_PALATE_CLOSE` | `XRFaceTracker.FT_THROAT_SWALLOW` | `XRFaceTracker.FT_NECK_FLEX_RIGHT` | `XRFaceTracker.FT_NECK_FLEX_LEFT` | `XRFaceTracker.FT_EYE_CLOSED` | `XRFaceTracker.FT_EYE_WIDE` | `XRFaceTracker.FT_EYE_SQUINT` | `XRFaceTracker.FT_EYE_DILATION` | `XRFaceTracker.FT_EYE_CONSTRICT` | `XRFaceTracker.FT_BROW_DOWN_RIGHT` | `XRFaceTracker.FT_BROW_DOWN_LEFT` | `XRFaceTracker.FT_BROW_DOWN` | `XRFaceTracker.FT_BROW_UP_RIGHT` | `XRFaceTracker.FT_BROW_UP_LEFT` | `XRFaceTracker.FT_BROW_UP` | `XRFaceTracker.FT_NOSE_SNEER` | `XRFaceTracker.FT_NASAL_DILATION` | `XRFaceTracker.FT_NASAL_CONSTRICT` | `XRFaceTracker.FT_CHEEK_PUFF` | `XRFaceTracker.FT_CHEEK_SUCK` | `XRFaceTracker.FT_CHEEK_SQUINT` | `XRFaceTracker.FT_LIP_SUCK_UPPER` | `XRFaceTracker.FT_LIP_SUCK_LOWER` | `XRFaceTracker.FT_LIP_SUCK` | `XRFaceTracker.FT_LIP_FUNNEL_UPPER` | `XRFaceTracker.FT_LIP_FUNNEL_LOWER` | `XRFaceTracker.FT_LIP_FUNNEL` | `XRFaceTracker.FT_LIP_PUCKER_UPPER` | `XRFaceTracker.FT_LIP_PUCKER_LOWER` | `XRFaceTracker.FT_LIP_PUCKER` | `XRFaceTracker.FT_MOUTH_UPPER_UP` | `XRFaceTracker.FT_MOUTH_LOWER_DOWN` | `XRFaceTracker.FT_MOUTH_OPEN` | `XRFaceTracker.FT_MOUTH_RIGHT` | `XRFaceTracker.FT_MOUTH_LEFT` | `XRFaceTracker.FT_MOUTH_SMILE_RIGHT` | `XRFaceTracker.FT_MOUTH_SMILE_LEFT` | `XRFaceTracker.FT_MOUTH_SMILE` | `XRFaceTracker.FT_MOUTH_SAD_RIGHT` | `XRFaceTracker.FT_MOUTH_SAD_LEFT` | `XRFaceTracker.FT_MOUTH_SAD` | `XRFaceTracker.FT_MOUTH_STRETCH` | `XRFaceTracker.FT_MOUTH_DIMPLE` | `XRFaceTracker.FT_MOUTH_TIGHTENER` | `XRFaceTracker.FT_MOUTH_PRESS` | `XRFaceTracker.FT_MAX` +XRFaceTracker.FT_EYE_LOOK_OUT_RIGHT = 0 +XRFaceTracker.FT_EYE_LOOK_IN_RIGHT = 1 +XRFaceTracker.FT_EYE_LOOK_UP_RIGHT = 2 +XRFaceTracker.FT_EYE_LOOK_DOWN_RIGHT = 3 +XRFaceTracker.FT_EYE_LOOK_OUT_LEFT = 4 +XRFaceTracker.FT_EYE_LOOK_IN_LEFT = 5 +XRFaceTracker.FT_EYE_LOOK_UP_LEFT = 6 +XRFaceTracker.FT_EYE_LOOK_DOWN_LEFT = 7 +XRFaceTracker.FT_EYE_CLOSED_RIGHT = 8 +XRFaceTracker.FT_EYE_CLOSED_LEFT = 9 +XRFaceTracker.FT_EYE_SQUINT_RIGHT = 10 +XRFaceTracker.FT_EYE_SQUINT_LEFT = 11 +XRFaceTracker.FT_EYE_WIDE_RIGHT = 12 +XRFaceTracker.FT_EYE_WIDE_LEFT = 13 +XRFaceTracker.FT_EYE_DILATION_RIGHT = 14 +XRFaceTracker.FT_EYE_DILATION_LEFT = 15 +XRFaceTracker.FT_EYE_CONSTRICT_RIGHT = 16 +XRFaceTracker.FT_EYE_CONSTRICT_LEFT = 17 +XRFaceTracker.FT_BROW_PINCH_RIGHT = 18 +XRFaceTracker.FT_BROW_PINCH_LEFT = 19 +XRFaceTracker.FT_BROW_LOWERER_RIGHT = 20 +XRFaceTracker.FT_BROW_LOWERER_LEFT = 21 +XRFaceTracker.FT_BROW_INNER_UP_RIGHT = 22 +XRFaceTracker.FT_BROW_INNER_UP_LEFT = 23 +XRFaceTracker.FT_BROW_OUTER_UP_RIGHT = 24 +XRFaceTracker.FT_BROW_OUTER_UP_LEFT = 25 +XRFaceTracker.FT_NOSE_SNEER_RIGHT = 26 +XRFaceTracker.FT_NOSE_SNEER_LEFT = 27 +XRFaceTracker.FT_NASAL_DILATION_RIGHT = 28 +XRFaceTracker.FT_NASAL_DILATION_LEFT = 29 +XRFaceTracker.FT_NASAL_CONSTRICT_RIGHT = 30 +XRFaceTracker.FT_NASAL_CONSTRICT_LEFT = 31 +XRFaceTracker.FT_CHEEK_SQUINT_RIGHT = 32 +XRFaceTracker.FT_CHEEK_SQUINT_LEFT = 33 +XRFaceTracker.FT_CHEEK_PUFF_RIGHT = 34 +XRFaceTracker.FT_CHEEK_PUFF_LEFT = 35 +XRFaceTracker.FT_CHEEK_SUCK_RIGHT = 36 +XRFaceTracker.FT_CHEEK_SUCK_LEFT = 37 +XRFaceTracker.FT_JAW_OPEN = 38 +XRFaceTracker.FT_MOUTH_CLOSED = 39 +XRFaceTracker.FT_JAW_RIGHT = 40 +XRFaceTracker.FT_JAW_LEFT = 41 +XRFaceTracker.FT_JAW_FORWARD = 42 +XRFaceTracker.FT_JAW_BACKWARD = 43 +XRFaceTracker.FT_JAW_CLENCH = 44 +XRFaceTracker.FT_JAW_MANDIBLE_RAISE = 45 +XRFaceTracker.FT_LIP_SUCK_UPPER_RIGHT = 46 +XRFaceTracker.FT_LIP_SUCK_UPPER_LEFT = 47 +XRFaceTracker.FT_LIP_SUCK_LOWER_RIGHT = 48 +XRFaceTracker.FT_LIP_SUCK_LOWER_LEFT = 49 +XRFaceTracker.FT_LIP_SUCK_CORNER_RIGHT = 50 +XRFaceTracker.FT_LIP_SUCK_CORNER_LEFT = 51 +XRFaceTracker.FT_LIP_FUNNEL_UPPER_RIGHT = 52 +XRFaceTracker.FT_LIP_FUNNEL_UPPER_LEFT = 53 +XRFaceTracker.FT_LIP_FUNNEL_LOWER_RIGHT = 54 +XRFaceTracker.FT_LIP_FUNNEL_LOWER_LEFT = 55 +XRFaceTracker.FT_LIP_PUCKER_UPPER_RIGHT = 56 +XRFaceTracker.FT_LIP_PUCKER_UPPER_LEFT = 57 +XRFaceTracker.FT_LIP_PUCKER_LOWER_RIGHT = 58 +XRFaceTracker.FT_LIP_PUCKER_LOWER_LEFT = 59 +XRFaceTracker.FT_MOUTH_UPPER_UP_RIGHT = 60 +XRFaceTracker.FT_MOUTH_UPPER_UP_LEFT = 61 +XRFaceTracker.FT_MOUTH_LOWER_DOWN_RIGHT = 62 +XRFaceTracker.FT_MOUTH_LOWER_DOWN_LEFT = 63 +XRFaceTracker.FT_MOUTH_UPPER_DEEPEN_RIGHT = 64 +XRFaceTracker.FT_MOUTH_UPPER_DEEPEN_LEFT = 65 +XRFaceTracker.FT_MOUTH_UPPER_RIGHT = 66 +XRFaceTracker.FT_MOUTH_UPPER_LEFT = 67 +XRFaceTracker.FT_MOUTH_LOWER_RIGHT = 68 +XRFaceTracker.FT_MOUTH_LOWER_LEFT = 69 +XRFaceTracker.FT_MOUTH_CORNER_PULL_RIGHT = 70 +XRFaceTracker.FT_MOUTH_CORNER_PULL_LEFT = 71 +XRFaceTracker.FT_MOUTH_CORNER_SLANT_RIGHT = 72 +XRFaceTracker.FT_MOUTH_CORNER_SLANT_LEFT = 73 +XRFaceTracker.FT_MOUTH_FROWN_RIGHT = 74 +XRFaceTracker.FT_MOUTH_FROWN_LEFT = 75 +XRFaceTracker.FT_MOUTH_STRETCH_RIGHT = 76 +XRFaceTracker.FT_MOUTH_STRETCH_LEFT = 77 +XRFaceTracker.FT_MOUTH_DIMPLE_RIGHT = 78 +XRFaceTracker.FT_MOUTH_DIMPLE_LEFT = 79 +XRFaceTracker.FT_MOUTH_RAISER_UPPER = 80 +XRFaceTracker.FT_MOUTH_RAISER_LOWER = 81 +XRFaceTracker.FT_MOUTH_PRESS_RIGHT = 82 +XRFaceTracker.FT_MOUTH_PRESS_LEFT = 83 +XRFaceTracker.FT_MOUTH_TIGHTENER_RIGHT = 84 +XRFaceTracker.FT_MOUTH_TIGHTENER_LEFT = 85 +XRFaceTracker.FT_TONGUE_OUT = 86 +XRFaceTracker.FT_TONGUE_UP = 87 +XRFaceTracker.FT_TONGUE_DOWN = 88 +XRFaceTracker.FT_TONGUE_RIGHT = 89 +XRFaceTracker.FT_TONGUE_LEFT = 90 +XRFaceTracker.FT_TONGUE_ROLL = 91 +XRFaceTracker.FT_TONGUE_BLEND_DOWN = 92 +XRFaceTracker.FT_TONGUE_CURL_UP = 93 +XRFaceTracker.FT_TONGUE_SQUISH = 94 +XRFaceTracker.FT_TONGUE_FLAT = 95 +XRFaceTracker.FT_TONGUE_TWIST_RIGHT = 96 +XRFaceTracker.FT_TONGUE_TWIST_LEFT = 97 +XRFaceTracker.FT_SOFT_PALATE_CLOSE = 98 +XRFaceTracker.FT_THROAT_SWALLOW = 99 +XRFaceTracker.FT_NECK_FLEX_RIGHT = 100 +XRFaceTracker.FT_NECK_FLEX_LEFT = 101 +XRFaceTracker.FT_EYE_CLOSED = 102 +XRFaceTracker.FT_EYE_WIDE = 103 +XRFaceTracker.FT_EYE_SQUINT = 104 +XRFaceTracker.FT_EYE_DILATION = 105 +XRFaceTracker.FT_EYE_CONSTRICT = 106 +XRFaceTracker.FT_BROW_DOWN_RIGHT = 107 +XRFaceTracker.FT_BROW_DOWN_LEFT = 108 +XRFaceTracker.FT_BROW_DOWN = 109 +XRFaceTracker.FT_BROW_UP_RIGHT = 110 +XRFaceTracker.FT_BROW_UP_LEFT = 111 +XRFaceTracker.FT_BROW_UP = 112 +XRFaceTracker.FT_NOSE_SNEER = 113 +XRFaceTracker.FT_NASAL_DILATION = 114 +XRFaceTracker.FT_NASAL_CONSTRICT = 115 +XRFaceTracker.FT_CHEEK_PUFF = 116 +XRFaceTracker.FT_CHEEK_SUCK = 117 +XRFaceTracker.FT_CHEEK_SQUINT = 118 +XRFaceTracker.FT_LIP_SUCK_UPPER = 119 +XRFaceTracker.FT_LIP_SUCK_LOWER = 120 +XRFaceTracker.FT_LIP_SUCK = 121 +XRFaceTracker.FT_LIP_FUNNEL_UPPER = 122 +XRFaceTracker.FT_LIP_FUNNEL_LOWER = 123 +XRFaceTracker.FT_LIP_FUNNEL = 124 +XRFaceTracker.FT_LIP_PUCKER_UPPER = 125 +XRFaceTracker.FT_LIP_PUCKER_LOWER = 126 +XRFaceTracker.FT_LIP_PUCKER = 127 +XRFaceTracker.FT_MOUTH_UPPER_UP = 128 +XRFaceTracker.FT_MOUTH_LOWER_DOWN = 129 +XRFaceTracker.FT_MOUTH_OPEN = 130 +XRFaceTracker.FT_MOUTH_RIGHT = 131 +XRFaceTracker.FT_MOUTH_LEFT = 132 +XRFaceTracker.FT_MOUTH_SMILE_RIGHT = 133 +XRFaceTracker.FT_MOUTH_SMILE_LEFT = 134 +XRFaceTracker.FT_MOUTH_SMILE = 135 +XRFaceTracker.FT_MOUTH_SAD_RIGHT = 136 +XRFaceTracker.FT_MOUTH_SAD_LEFT = 137 +XRFaceTracker.FT_MOUTH_SAD = 138 +XRFaceTracker.FT_MOUTH_STRETCH = 139 +XRFaceTracker.FT_MOUTH_DIMPLE = 140 +XRFaceTracker.FT_MOUTH_TIGHTENER = 141 +XRFaceTracker.FT_MOUTH_PRESS = 142 +XRFaceTracker.FT_MAX = 143 + +--- @param blend_shape XRFaceTracker.BlendShapeEntry +--- @return float +function XRFaceTracker:get_blend_shape(blend_shape) end + +--- @param blend_shape XRFaceTracker.BlendShapeEntry +--- @param weight float +function XRFaceTracker:set_blend_shape(blend_shape, weight) end + +--- @return PackedFloat32Array +function XRFaceTracker:get_blend_shapes() end + +--- @param weights PackedFloat32Array +function XRFaceTracker:set_blend_shapes(weights) end + + +----------------------------------------------------------- +-- XRHandModifier3D +----------------------------------------------------------- + +--- @class XRHandModifier3D: SkeletonModifier3D, { [string]: any } +--- @field hand_tracker String +--- @field bone_update int +XRHandModifier3D = {} + +--- @return XRHandModifier3D +function XRHandModifier3D:new() end + +--- @alias XRHandModifier3D.BoneUpdate `XRHandModifier3D.BONE_UPDATE_FULL` | `XRHandModifier3D.BONE_UPDATE_ROTATION_ONLY` | `XRHandModifier3D.BONE_UPDATE_MAX` +XRHandModifier3D.BONE_UPDATE_FULL = 0 +XRHandModifier3D.BONE_UPDATE_ROTATION_ONLY = 1 +XRHandModifier3D.BONE_UPDATE_MAX = 2 + +--- @param tracker_name StringName +function XRHandModifier3D:set_hand_tracker(tracker_name) end + +--- @return StringName +function XRHandModifier3D:get_hand_tracker() end + +--- @param bone_update XRHandModifier3D.BoneUpdate +function XRHandModifier3D:set_bone_update(bone_update) end + +--- @return XRHandModifier3D.BoneUpdate +function XRHandModifier3D:get_bone_update() end + + +----------------------------------------------------------- +-- XRHandTracker +----------------------------------------------------------- + +--- @class XRHandTracker: XRPositionalTracker, { [string]: any } +--- @field has_tracking_data bool +--- @field hand_tracking_source int +XRHandTracker = {} + +--- @return XRHandTracker +function XRHandTracker:new() end + +--- @alias XRHandTracker.HandTrackingSource `XRHandTracker.HAND_TRACKING_SOURCE_UNKNOWN` | `XRHandTracker.HAND_TRACKING_SOURCE_UNOBSTRUCTED` | `XRHandTracker.HAND_TRACKING_SOURCE_CONTROLLER` | `XRHandTracker.HAND_TRACKING_SOURCE_NOT_TRACKED` | `XRHandTracker.HAND_TRACKING_SOURCE_MAX` +XRHandTracker.HAND_TRACKING_SOURCE_UNKNOWN = 0 +XRHandTracker.HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1 +XRHandTracker.HAND_TRACKING_SOURCE_CONTROLLER = 2 +XRHandTracker.HAND_TRACKING_SOURCE_NOT_TRACKED = 3 +XRHandTracker.HAND_TRACKING_SOURCE_MAX = 4 + +--- @alias XRHandTracker.HandJoint `XRHandTracker.HAND_JOINT_PALM` | `XRHandTracker.HAND_JOINT_WRIST` | `XRHandTracker.HAND_JOINT_THUMB_METACARPAL` | `XRHandTracker.HAND_JOINT_THUMB_PHALANX_PROXIMAL` | `XRHandTracker.HAND_JOINT_THUMB_PHALANX_DISTAL` | `XRHandTracker.HAND_JOINT_THUMB_TIP` | `XRHandTracker.HAND_JOINT_INDEX_FINGER_METACARPAL` | `XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL` | `XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE` | `XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL` | `XRHandTracker.HAND_JOINT_INDEX_FINGER_TIP` | `XRHandTracker.HAND_JOINT_MIDDLE_FINGER_METACARPAL` | `XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL` | `XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE` | `XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL` | `XRHandTracker.HAND_JOINT_MIDDLE_FINGER_TIP` | `XRHandTracker.HAND_JOINT_RING_FINGER_METACARPAL` | `XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL` | `XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE` | `XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_DISTAL` | `XRHandTracker.HAND_JOINT_RING_FINGER_TIP` | `XRHandTracker.HAND_JOINT_PINKY_FINGER_METACARPAL` | `XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL` | `XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE` | `XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL` | `XRHandTracker.HAND_JOINT_PINKY_FINGER_TIP` | `XRHandTracker.HAND_JOINT_MAX` +XRHandTracker.HAND_JOINT_PALM = 0 +XRHandTracker.HAND_JOINT_WRIST = 1 +XRHandTracker.HAND_JOINT_THUMB_METACARPAL = 2 +XRHandTracker.HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3 +XRHandTracker.HAND_JOINT_THUMB_PHALANX_DISTAL = 4 +XRHandTracker.HAND_JOINT_THUMB_TIP = 5 +XRHandTracker.HAND_JOINT_INDEX_FINGER_METACARPAL = 6 +XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7 +XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8 +XRHandTracker.HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9 +XRHandTracker.HAND_JOINT_INDEX_FINGER_TIP = 10 +XRHandTracker.HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11 +XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12 +XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13 +XRHandTracker.HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14 +XRHandTracker.HAND_JOINT_MIDDLE_FINGER_TIP = 15 +XRHandTracker.HAND_JOINT_RING_FINGER_METACARPAL = 16 +XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17 +XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18 +XRHandTracker.HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19 +XRHandTracker.HAND_JOINT_RING_FINGER_TIP = 20 +XRHandTracker.HAND_JOINT_PINKY_FINGER_METACARPAL = 21 +XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22 +XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23 +XRHandTracker.HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24 +XRHandTracker.HAND_JOINT_PINKY_FINGER_TIP = 25 +XRHandTracker.HAND_JOINT_MAX = 26 + +--- @alias XRHandTracker.HandJointFlags `XRHandTracker.HAND_JOINT_FLAG_ORIENTATION_VALID` | `XRHandTracker.HAND_JOINT_FLAG_ORIENTATION_TRACKED` | `XRHandTracker.HAND_JOINT_FLAG_POSITION_VALID` | `XRHandTracker.HAND_JOINT_FLAG_POSITION_TRACKED` | `XRHandTracker.HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID` | `XRHandTracker.HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID` +XRHandTracker.HAND_JOINT_FLAG_ORIENTATION_VALID = 1 +XRHandTracker.HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2 +XRHandTracker.HAND_JOINT_FLAG_POSITION_VALID = 4 +XRHandTracker.HAND_JOINT_FLAG_POSITION_TRACKED = 8 +XRHandTracker.HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16 +XRHandTracker.HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32 + +--- @param has_data bool +function XRHandTracker:set_has_tracking_data(has_data) end + +--- @return bool +function XRHandTracker:get_has_tracking_data() end + +--- @param source XRHandTracker.HandTrackingSource +function XRHandTracker:set_hand_tracking_source(source) end + +--- @return XRHandTracker.HandTrackingSource +function XRHandTracker:get_hand_tracking_source() end + +--- @param joint XRHandTracker.HandJoint +--- @param flags XRHandTracker.HandJointFlags +function XRHandTracker:set_hand_joint_flags(joint, flags) end + +--- @param joint XRHandTracker.HandJoint +--- @return XRHandTracker.HandJointFlags +function XRHandTracker:get_hand_joint_flags(joint) end + +--- @param joint XRHandTracker.HandJoint +--- @param transform Transform3D +function XRHandTracker:set_hand_joint_transform(joint, transform) end + +--- @param joint XRHandTracker.HandJoint +--- @return Transform3D +function XRHandTracker:get_hand_joint_transform(joint) end + +--- @param joint XRHandTracker.HandJoint +--- @param radius float +function XRHandTracker:set_hand_joint_radius(joint, radius) end + +--- @param joint XRHandTracker.HandJoint +--- @return float +function XRHandTracker:get_hand_joint_radius(joint) end + +--- @param joint XRHandTracker.HandJoint +--- @param linear_velocity Vector3 +function XRHandTracker:set_hand_joint_linear_velocity(joint, linear_velocity) end + +--- @param joint XRHandTracker.HandJoint +--- @return Vector3 +function XRHandTracker:get_hand_joint_linear_velocity(joint) end + +--- @param joint XRHandTracker.HandJoint +--- @param angular_velocity Vector3 +function XRHandTracker:set_hand_joint_angular_velocity(joint, angular_velocity) end + +--- @param joint XRHandTracker.HandJoint +--- @return Vector3 +function XRHandTracker:get_hand_joint_angular_velocity(joint) end + + +----------------------------------------------------------- +-- XRInterface +----------------------------------------------------------- + +--- @class XRInterface: RefCounted, { [string]: any } +--- @field interface_is_primary bool +--- @field xr_play_area_mode int +--- @field environment_blend_mode int +--- @field ar_is_anchor_detection_enabled bool +XRInterface = {} + +--- @alias XRInterface.Capabilities `XRInterface.XR_NONE` | `XRInterface.XR_MONO` | `XRInterface.XR_STEREO` | `XRInterface.XR_QUAD` | `XRInterface.XR_VR` | `XRInterface.XR_AR` | `XRInterface.XR_EXTERNAL` +XRInterface.XR_NONE = 0 +XRInterface.XR_MONO = 1 +XRInterface.XR_STEREO = 2 +XRInterface.XR_QUAD = 4 +XRInterface.XR_VR = 8 +XRInterface.XR_AR = 16 +XRInterface.XR_EXTERNAL = 32 + +--- @alias XRInterface.TrackingStatus `XRInterface.XR_NORMAL_TRACKING` | `XRInterface.XR_EXCESSIVE_MOTION` | `XRInterface.XR_INSUFFICIENT_FEATURES` | `XRInterface.XR_UNKNOWN_TRACKING` | `XRInterface.XR_NOT_TRACKING` +XRInterface.XR_NORMAL_TRACKING = 0 +XRInterface.XR_EXCESSIVE_MOTION = 1 +XRInterface.XR_INSUFFICIENT_FEATURES = 2 +XRInterface.XR_UNKNOWN_TRACKING = 3 +XRInterface.XR_NOT_TRACKING = 4 + +--- @alias XRInterface.PlayAreaMode `XRInterface.XR_PLAY_AREA_UNKNOWN` | `XRInterface.XR_PLAY_AREA_3DOF` | `XRInterface.XR_PLAY_AREA_SITTING` | `XRInterface.XR_PLAY_AREA_ROOMSCALE` | `XRInterface.XR_PLAY_AREA_STAGE` | `XRInterface.XR_PLAY_AREA_CUSTOM` +XRInterface.XR_PLAY_AREA_UNKNOWN = 0 +XRInterface.XR_PLAY_AREA_3DOF = 1 +XRInterface.XR_PLAY_AREA_SITTING = 2 +XRInterface.XR_PLAY_AREA_ROOMSCALE = 3 +XRInterface.XR_PLAY_AREA_STAGE = 4 +XRInterface.XR_PLAY_AREA_CUSTOM = 2147483647 + +--- @alias XRInterface.EnvironmentBlendMode `XRInterface.XR_ENV_BLEND_MODE_OPAQUE` | `XRInterface.XR_ENV_BLEND_MODE_ADDITIVE` | `XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND` +XRInterface.XR_ENV_BLEND_MODE_OPAQUE = 0 +XRInterface.XR_ENV_BLEND_MODE_ADDITIVE = 1 +XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND = 2 + +--- @alias XRInterface.VRSTextureFormat `XRInterface.XR_VRS_TEXTURE_FORMAT_UNIFIED` | `XRInterface.XR_VRS_TEXTURE_FORMAT_FRAGMENT_SHADING_RATE` | `XRInterface.XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP` +XRInterface.XR_VRS_TEXTURE_FORMAT_UNIFIED = 0 +XRInterface.XR_VRS_TEXTURE_FORMAT_FRAGMENT_SHADING_RATE = 1 +XRInterface.XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP = 2 + +XRInterface.play_area_changed = Signal() + +--- @return StringName +function XRInterface:get_name() end + +--- @return int +function XRInterface:get_capabilities() end + +--- @return bool +function XRInterface:is_primary() end + +--- @param primary bool +function XRInterface:set_primary(primary) end + +--- @return bool +function XRInterface:is_initialized() end + +--- @return bool +function XRInterface:initialize() end + +function XRInterface:uninitialize() end + +--- @return Dictionary +function XRInterface:get_system_info() end + +--- @return XRInterface.TrackingStatus +function XRInterface:get_tracking_status() end + +--- @return Vector2 +function XRInterface:get_render_target_size() end + +--- @return int +function XRInterface:get_view_count() end + +--- @param action_name String +--- @param tracker_name StringName +--- @param frequency float +--- @param amplitude float +--- @param duration_sec float +--- @param delay_sec float +function XRInterface:trigger_haptic_pulse(action_name, tracker_name, frequency, amplitude, duration_sec, delay_sec) end + +--- @param mode XRInterface.PlayAreaMode +--- @return bool +function XRInterface:supports_play_area_mode(mode) end + +--- @return XRInterface.PlayAreaMode +function XRInterface:get_play_area_mode() end + +--- @param mode XRInterface.PlayAreaMode +--- @return bool +function XRInterface:set_play_area_mode(mode) end + +--- @return PackedVector3Array +function XRInterface:get_play_area() end + +--- @return bool +function XRInterface:get_anchor_detection_is_enabled() end + +--- @param enable bool +function XRInterface:set_anchor_detection_is_enabled(enable) end + +--- @return int +function XRInterface:get_camera_feed_id() end + +--- @return bool +function XRInterface:is_passthrough_supported() end + +--- @return bool +function XRInterface:is_passthrough_enabled() end + +--- @return bool +function XRInterface:start_passthrough() end + +function XRInterface:stop_passthrough() end + +--- @param view int +--- @param cam_transform Transform3D +--- @return Transform3D +function XRInterface:get_transform_for_view(view, cam_transform) end + +--- @param view int +--- @param aspect float +--- @param near float +--- @param far float +--- @return Projection +function XRInterface:get_projection_for_view(view, aspect, near, far) end + +--- @return Array +function XRInterface:get_supported_environment_blend_modes() end + +--- @param mode XRInterface.EnvironmentBlendMode +--- @return bool +function XRInterface:set_environment_blend_mode(mode) end + +--- @return XRInterface.EnvironmentBlendMode +function XRInterface:get_environment_blend_mode() end + + +----------------------------------------------------------- +-- XRInterfaceExtension +----------------------------------------------------------- + +--- @class XRInterfaceExtension: XRInterface, { [string]: any } +XRInterfaceExtension = {} + +--- @return XRInterfaceExtension +function XRInterfaceExtension:new() end + +--- @return StringName +function XRInterfaceExtension:_get_name() end + +--- @return int +function XRInterfaceExtension:_get_capabilities() end + +--- @return bool +function XRInterfaceExtension:_is_initialized() end + +--- @return bool +function XRInterfaceExtension:_initialize() end + +function XRInterfaceExtension:_uninitialize() end + +--- @return Dictionary +function XRInterfaceExtension:_get_system_info() end + +--- @param mode XRInterface.PlayAreaMode +--- @return bool +function XRInterfaceExtension:_supports_play_area_mode(mode) end + +--- @return XRInterface.PlayAreaMode +function XRInterfaceExtension:_get_play_area_mode() end + +--- @param mode XRInterface.PlayAreaMode +--- @return bool +function XRInterfaceExtension:_set_play_area_mode(mode) end + +--- @return PackedVector3Array +function XRInterfaceExtension:_get_play_area() end + +--- @return Vector2 +function XRInterfaceExtension:_get_render_target_size() end + +--- @return int +function XRInterfaceExtension:_get_view_count() end + +--- @return Transform3D +function XRInterfaceExtension:_get_camera_transform() end + +--- @param view int +--- @param cam_transform Transform3D +--- @return Transform3D +function XRInterfaceExtension:_get_transform_for_view(view, cam_transform) end + +--- @param view int +--- @param aspect float +--- @param z_near float +--- @param z_far float +--- @return PackedFloat64Array +function XRInterfaceExtension:_get_projection_for_view(view, aspect, z_near, z_far) end + +--- @return RID +function XRInterfaceExtension:_get_vrs_texture() end + +--- @return XRInterface.VRSTextureFormat +function XRInterfaceExtension:_get_vrs_texture_format() end + +function XRInterfaceExtension:_process() end + +function XRInterfaceExtension:_pre_render() end + +--- @param render_target RID +--- @return bool +function XRInterfaceExtension:_pre_draw_viewport(render_target) end + +--- @param render_target RID +--- @param screen_rect Rect2 +function XRInterfaceExtension:_post_draw_viewport(render_target, screen_rect) end + +function XRInterfaceExtension:_end_frame() end + +--- @return PackedStringArray +function XRInterfaceExtension:_get_suggested_tracker_names() end + +--- @param tracker_name StringName +--- @return PackedStringArray +function XRInterfaceExtension:_get_suggested_pose_names(tracker_name) end + +--- @return XRInterface.TrackingStatus +function XRInterfaceExtension:_get_tracking_status() end + +--- @param action_name String +--- @param tracker_name StringName +--- @param frequency float +--- @param amplitude float +--- @param duration_sec float +--- @param delay_sec float +function XRInterfaceExtension:_trigger_haptic_pulse(action_name, tracker_name, frequency, amplitude, duration_sec, delay_sec) end + +--- @return bool +function XRInterfaceExtension:_get_anchor_detection_is_enabled() end + +--- @param enabled bool +function XRInterfaceExtension:_set_anchor_detection_is_enabled(enabled) end + +--- @return int +function XRInterfaceExtension:_get_camera_feed_id() end + +--- @return RID +function XRInterfaceExtension:_get_color_texture() end + +--- @return RID +function XRInterfaceExtension:_get_depth_texture() end + +--- @return RID +function XRInterfaceExtension:_get_velocity_texture() end + +--- @return RID +function XRInterfaceExtension:get_color_texture() end + +--- @return RID +function XRInterfaceExtension:get_depth_texture() end + +--- @return RID +function XRInterfaceExtension:get_velocity_texture() end + +--- @param render_target RID +--- @param src_rect Rect2 +--- @param dst_rect Rect2i +--- @param use_layer bool +--- @param layer int +--- @param apply_lens_distortion bool +--- @param eye_center Vector2 +--- @param k1 float +--- @param k2 float +--- @param upscale float +--- @param aspect_ratio float +function XRInterfaceExtension:add_blit(render_target, src_rect, dst_rect, use_layer, layer, apply_lens_distortion, eye_center, k1, k2, upscale, aspect_ratio) end + +--- @param render_target RID +--- @return RID +function XRInterfaceExtension:get_render_target_texture(render_target) end + + +----------------------------------------------------------- +-- XRNode3D +----------------------------------------------------------- + +--- @class XRNode3D: Node3D, { [string]: any } +--- @field tracker String +--- @field pose String +--- @field show_when_tracked bool +XRNode3D = {} + +--- @return XRNode3D +function XRNode3D:new() end + +XRNode3D.tracking_changed = Signal() + +--- @param tracker_name StringName +function XRNode3D:set_tracker(tracker_name) end + +--- @return StringName +function XRNode3D:get_tracker() end + +--- @param pose StringName +function XRNode3D:set_pose_name(pose) end + +--- @return StringName +function XRNode3D:get_pose_name() end + +--- @param show bool +function XRNode3D:set_show_when_tracked(show) end + +--- @return bool +function XRNode3D:get_show_when_tracked() end + +--- @return bool +function XRNode3D:get_is_active() end + +--- @return bool +function XRNode3D:get_has_tracking_data() end + +--- @return XRPose +function XRNode3D:get_pose() end + +--- @param action_name String +--- @param frequency float +--- @param amplitude float +--- @param duration_sec float +--- @param delay_sec float +function XRNode3D:trigger_haptic_pulse(action_name, frequency, amplitude, duration_sec, delay_sec) end + + +----------------------------------------------------------- +-- XROrigin3D +----------------------------------------------------------- + +--- @class XROrigin3D: Node3D, { [string]: any } +--- @field world_scale float +--- @field current bool +XROrigin3D = {} + +--- @return XROrigin3D +function XROrigin3D:new() end + +--- @param world_scale float +function XROrigin3D:set_world_scale(world_scale) end + +--- @return float +function XROrigin3D:get_world_scale() end + +--- @param enabled bool +function XROrigin3D:set_current(enabled) end + +--- @return bool +function XROrigin3D:is_current() end + + +----------------------------------------------------------- +-- XRPose +----------------------------------------------------------- + +--- @class XRPose: RefCounted, { [string]: any } +--- @field has_tracking_data bool +--- @field name String +--- @field transform String +--- @field linear_velocity String +--- @field angular_velocity String +--- @field tracking_confidence int +XRPose = {} + +--- @return XRPose +function XRPose:new() end + +--- @alias XRPose.TrackingConfidence `XRPose.XR_TRACKING_CONFIDENCE_NONE` | `XRPose.XR_TRACKING_CONFIDENCE_LOW` | `XRPose.XR_TRACKING_CONFIDENCE_HIGH` +XRPose.XR_TRACKING_CONFIDENCE_NONE = 0 +XRPose.XR_TRACKING_CONFIDENCE_LOW = 1 +XRPose.XR_TRACKING_CONFIDENCE_HIGH = 2 + +--- @param has_tracking_data bool +function XRPose:set_has_tracking_data(has_tracking_data) end + +--- @return bool +function XRPose:get_has_tracking_data() end + +--- @param name StringName +function XRPose:set_name(name) end + +--- @return StringName +function XRPose:get_name() end + +--- @param transform Transform3D +function XRPose:set_transform(transform) end + +--- @return Transform3D +function XRPose:get_transform() end + +--- @return Transform3D +function XRPose:get_adjusted_transform() end + +--- @param velocity Vector3 +function XRPose:set_linear_velocity(velocity) end + +--- @return Vector3 +function XRPose:get_linear_velocity() end + +--- @param velocity Vector3 +function XRPose:set_angular_velocity(velocity) end + +--- @return Vector3 +function XRPose:get_angular_velocity() end + +--- @param tracking_confidence XRPose.TrackingConfidence +function XRPose:set_tracking_confidence(tracking_confidence) end + +--- @return XRPose.TrackingConfidence +function XRPose:get_tracking_confidence() end + + +----------------------------------------------------------- +-- XRPositionalTracker +----------------------------------------------------------- + +--- @class XRPositionalTracker: XRTracker, { [string]: any } +--- @field profile String +--- @field hand int +XRPositionalTracker = {} + +--- @return XRPositionalTracker +function XRPositionalTracker:new() end + +--- @alias XRPositionalTracker.TrackerHand `XRPositionalTracker.TRACKER_HAND_UNKNOWN` | `XRPositionalTracker.TRACKER_HAND_LEFT` | `XRPositionalTracker.TRACKER_HAND_RIGHT` | `XRPositionalTracker.TRACKER_HAND_MAX` +XRPositionalTracker.TRACKER_HAND_UNKNOWN = 0 +XRPositionalTracker.TRACKER_HAND_LEFT = 1 +XRPositionalTracker.TRACKER_HAND_RIGHT = 2 +XRPositionalTracker.TRACKER_HAND_MAX = 3 + +XRPositionalTracker.pose_changed = Signal() +XRPositionalTracker.pose_lost_tracking = Signal() +XRPositionalTracker.button_pressed = Signal() +XRPositionalTracker.button_released = Signal() +XRPositionalTracker.input_float_changed = Signal() +XRPositionalTracker.input_vector2_changed = Signal() +XRPositionalTracker.profile_changed = Signal() + +--- @return String +function XRPositionalTracker:get_tracker_profile() end + +--- @param profile String +function XRPositionalTracker:set_tracker_profile(profile) end + +--- @return XRPositionalTracker.TrackerHand +function XRPositionalTracker:get_tracker_hand() end + +--- @param hand XRPositionalTracker.TrackerHand +function XRPositionalTracker:set_tracker_hand(hand) end + +--- @param name StringName +--- @return bool +function XRPositionalTracker:has_pose(name) end + +--- @param name StringName +--- @return XRPose +function XRPositionalTracker:get_pose(name) end + +--- @param name StringName +function XRPositionalTracker:invalidate_pose(name) end + +--- @param name StringName +--- @param transform Transform3D +--- @param linear_velocity Vector3 +--- @param angular_velocity Vector3 +--- @param tracking_confidence XRPose.TrackingConfidence +function XRPositionalTracker:set_pose(name, transform, linear_velocity, angular_velocity, tracking_confidence) end + +--- @param name StringName +--- @return any +function XRPositionalTracker:get_input(name) end + +--- @param name StringName +--- @param value any +function XRPositionalTracker:set_input(name, value) end + + +----------------------------------------------------------- +-- XRServer +----------------------------------------------------------- + +--- @class XRServer: Object, { [string]: any } +--- @field world_scale float +--- @field world_origin Vector3 +--- @field camera_locked_to_origin bool +--- @field primary_interface Object +XRServer = {} + +--- @alias XRServer.TrackerType `XRServer.TRACKER_HEAD` | `XRServer.TRACKER_CONTROLLER` | `XRServer.TRACKER_BASESTATION` | `XRServer.TRACKER_ANCHOR` | `XRServer.TRACKER_HAND` | `XRServer.TRACKER_BODY` | `XRServer.TRACKER_FACE` | `XRServer.TRACKER_ANY_KNOWN` | `XRServer.TRACKER_UNKNOWN` | `XRServer.TRACKER_ANY` +XRServer.TRACKER_HEAD = 1 +XRServer.TRACKER_CONTROLLER = 2 +XRServer.TRACKER_BASESTATION = 4 +XRServer.TRACKER_ANCHOR = 8 +XRServer.TRACKER_HAND = 16 +XRServer.TRACKER_BODY = 32 +XRServer.TRACKER_FACE = 64 +XRServer.TRACKER_ANY_KNOWN = 127 +XRServer.TRACKER_UNKNOWN = 128 +XRServer.TRACKER_ANY = 255 + +--- @alias XRServer.RotationMode `XRServer.RESET_FULL_ROTATION` | `XRServer.RESET_BUT_KEEP_TILT` | `XRServer.DONT_RESET_ROTATION` +XRServer.RESET_FULL_ROTATION = 0 +XRServer.RESET_BUT_KEEP_TILT = 1 +XRServer.DONT_RESET_ROTATION = 2 + +XRServer.reference_frame_changed = Signal() +XRServer.interface_added = Signal() +XRServer.interface_removed = Signal() +XRServer.tracker_added = Signal() +XRServer.tracker_updated = Signal() +XRServer.tracker_removed = Signal() + +--- @return float +function XRServer:get_world_scale() end + +--- @param scale float +function XRServer:set_world_scale(scale) end + +--- @return Transform3D +function XRServer:get_world_origin() end + +--- @param world_origin Transform3D +function XRServer:set_world_origin(world_origin) end + +--- @return Transform3D +function XRServer:get_reference_frame() end + +function XRServer:clear_reference_frame() end + +--- @param rotation_mode XRServer.RotationMode +--- @param keep_height bool +function XRServer:center_on_hmd(rotation_mode, keep_height) end + +--- @return Transform3D +function XRServer:get_hmd_transform() end + +--- @param enabled bool +function XRServer:set_camera_locked_to_origin(enabled) end + +--- @return bool +function XRServer:is_camera_locked_to_origin() end + +--- @param interface XRInterface +function XRServer:add_interface(interface) end + +--- @return int +function XRServer:get_interface_count() end + +--- @param interface XRInterface +function XRServer:remove_interface(interface) end + +--- @param idx int +--- @return XRInterface +function XRServer:get_interface(idx) end + +--- @return Array[Dictionary] +function XRServer:get_interfaces() end + +--- @param name String +--- @return XRInterface +function XRServer:find_interface(name) end + +--- @param tracker XRTracker +function XRServer:add_tracker(tracker) end + +--- @param tracker XRTracker +function XRServer:remove_tracker(tracker) end + +--- @param tracker_types int +--- @return Dictionary +function XRServer:get_trackers(tracker_types) end + +--- @param tracker_name StringName +--- @return XRTracker +function XRServer:get_tracker(tracker_name) end + +--- @return XRInterface +function XRServer:get_primary_interface() end + +--- @param interface XRInterface +function XRServer:set_primary_interface(interface) end + + +----------------------------------------------------------- +-- XRTracker +----------------------------------------------------------- + +--- @class XRTracker: RefCounted, { [string]: any } +--- @field type int +--- @field name String +--- @field description String +XRTracker = {} + +--- @return XRServer.TrackerType +function XRTracker:get_tracker_type() end + +--- @param type XRServer.TrackerType +function XRTracker:set_tracker_type(type) end + +--- @return StringName +function XRTracker:get_tracker_name() end + +--- @param name StringName +function XRTracker:set_tracker_name(name) end + +--- @return String +function XRTracker:get_tracker_desc() end + +--- @param description String +function XRTracker:set_tracker_desc(description) end + + +----------------------------------------------------------- +-- XRVRS +----------------------------------------------------------- + +--- @class XRVRS: Object, { [string]: any } +--- @field vrs_min_radius float +--- @field vrs_strength float +--- @field vrs_render_region Rect2i +XRVRS = {} + +--- @return XRVRS +function XRVRS:new() end + +--- @return float +function XRVRS:get_vrs_min_radius() end + +--- @param radius float +function XRVRS:set_vrs_min_radius(radius) end + +--- @return float +function XRVRS:get_vrs_strength() end + +--- @param strength float +function XRVRS:set_vrs_strength(strength) end + +--- @return Rect2i +function XRVRS:get_vrs_render_region() end + +--- @param render_region Rect2i +function XRVRS:set_vrs_render_region(render_region) end + +--- @param target_size Vector2 +--- @param eye_foci PackedVector2Array +--- @return RID +function XRVRS:make_vrs_texture(target_size, eye_foci) end + + +----------------------------------------------------------- +-- ZIPPacker +----------------------------------------------------------- + +--- @class ZIPPacker: RefCounted, { [string]: any } +--- @field compression_level int +ZIPPacker = {} + +--- @return ZIPPacker +function ZIPPacker:new() end + +--- @alias ZIPPacker.ZipAppend `ZIPPacker.APPEND_CREATE` | `ZIPPacker.APPEND_CREATEAFTER` | `ZIPPacker.APPEND_ADDINZIP` +ZIPPacker.APPEND_CREATE = 0 +ZIPPacker.APPEND_CREATEAFTER = 1 +ZIPPacker.APPEND_ADDINZIP = 2 + +--- @alias ZIPPacker.CompressionLevel `ZIPPacker.COMPRESSION_DEFAULT` | `ZIPPacker.COMPRESSION_NONE` | `ZIPPacker.COMPRESSION_FAST` | `ZIPPacker.COMPRESSION_BEST` +ZIPPacker.COMPRESSION_DEFAULT = -1 +ZIPPacker.COMPRESSION_NONE = 0 +ZIPPacker.COMPRESSION_FAST = 1 +ZIPPacker.COMPRESSION_BEST = 9 + +--- @param path String +--- @param append ZIPPacker.ZipAppend? Default: 0 +--- @return Error +function ZIPPacker:open(path, append) end + +--- @param compression_level int +function ZIPPacker:set_compression_level(compression_level) end + +--- @return int +function ZIPPacker:get_compression_level() end + +--- @param path String +--- @return Error +function ZIPPacker:start_file(path) end + +--- @param data PackedByteArray +--- @return Error +function ZIPPacker:write_file(data) end + +--- @return Error +function ZIPPacker:close_file() end + +--- @return Error +function ZIPPacker:close() end + + +----------------------------------------------------------- +-- ZIPReader +----------------------------------------------------------- + +--- @class ZIPReader: RefCounted, { [string]: any } +ZIPReader = {} + +--- @return ZIPReader +function ZIPReader:new() end + +--- @param path String +--- @return Error +function ZIPReader:open(path) end + +--- @return Error +function ZIPReader:close() end + +--- @return PackedStringArray +function ZIPReader:get_files() end + +--- @param path String +--- @param case_sensitive bool? Default: true +--- @return PackedByteArray +function ZIPReader:read_file(path, case_sensitive) end + +--- @param path String +--- @param case_sensitive bool? Default: true +--- @return bool +function ZIPReader:file_exists(path, case_sensitive) end + +--- @param path String +--- @param case_sensitive bool? Default: true +--- @return int +function ZIPReader:get_compression_level(path, case_sensitive) end + + diff --git a/addons/lua-gdextension/lua_api_definitions/global_enums.lua b/addons/lua-gdextension/lua_api_definitions/global_enums.lua new file mode 100644 index 0000000..9f40844 --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/global_enums.lua @@ -0,0 +1,542 @@ +--- This file was automatically generated by generate_lua_godot_api.py +--- @meta + +----------------------------------------------------------- +-- Global Enums +----------------------------------------------------------- + +--- @alias Side `SIDE_LEFT` | `SIDE_TOP` | `SIDE_RIGHT` | `SIDE_BOTTOM` +SIDE_LEFT = 0 +SIDE_TOP = 1 +SIDE_RIGHT = 2 +SIDE_BOTTOM = 3 +--- @alias Corner `CORNER_TOP_LEFT` | `CORNER_TOP_RIGHT` | `CORNER_BOTTOM_RIGHT` | `CORNER_BOTTOM_LEFT` +CORNER_TOP_LEFT = 0 +CORNER_TOP_RIGHT = 1 +CORNER_BOTTOM_RIGHT = 2 +CORNER_BOTTOM_LEFT = 3 +--- @alias Orientation `VERTICAL` | `HORIZONTAL` +VERTICAL = 1 +HORIZONTAL = 0 +--- @alias ClockDirection `CLOCKWISE` | `COUNTERCLOCKWISE` +CLOCKWISE = 0 +COUNTERCLOCKWISE = 1 +--- @alias HorizontalAlignment `HORIZONTAL_ALIGNMENT_LEFT` | `HORIZONTAL_ALIGNMENT_CENTER` | `HORIZONTAL_ALIGNMENT_RIGHT` | `HORIZONTAL_ALIGNMENT_FILL` +HORIZONTAL_ALIGNMENT_LEFT = 0 +HORIZONTAL_ALIGNMENT_CENTER = 1 +HORIZONTAL_ALIGNMENT_RIGHT = 2 +HORIZONTAL_ALIGNMENT_FILL = 3 +--- @alias VerticalAlignment `VERTICAL_ALIGNMENT_TOP` | `VERTICAL_ALIGNMENT_CENTER` | `VERTICAL_ALIGNMENT_BOTTOM` | `VERTICAL_ALIGNMENT_FILL` +VERTICAL_ALIGNMENT_TOP = 0 +VERTICAL_ALIGNMENT_CENTER = 1 +VERTICAL_ALIGNMENT_BOTTOM = 2 +VERTICAL_ALIGNMENT_FILL = 3 +--- @alias InlineAlignment `INLINE_ALIGNMENT_TOP_TO` | `INLINE_ALIGNMENT_CENTER_TO` | `INLINE_ALIGNMENT_BASELINE_TO` | `INLINE_ALIGNMENT_BOTTOM_TO` | `INLINE_ALIGNMENT_TO_TOP` | `INLINE_ALIGNMENT_TO_CENTER` | `INLINE_ALIGNMENT_TO_BASELINE` | `INLINE_ALIGNMENT_TO_BOTTOM` | `INLINE_ALIGNMENT_TOP` | `INLINE_ALIGNMENT_CENTER` | `INLINE_ALIGNMENT_BOTTOM` | `INLINE_ALIGNMENT_IMAGE_MASK` | `INLINE_ALIGNMENT_TEXT_MASK` +INLINE_ALIGNMENT_TOP_TO = 0 +INLINE_ALIGNMENT_CENTER_TO = 1 +INLINE_ALIGNMENT_BASELINE_TO = 3 +INLINE_ALIGNMENT_BOTTOM_TO = 2 +INLINE_ALIGNMENT_TO_TOP = 0 +INLINE_ALIGNMENT_TO_CENTER = 4 +INLINE_ALIGNMENT_TO_BASELINE = 8 +INLINE_ALIGNMENT_TO_BOTTOM = 12 +INLINE_ALIGNMENT_TOP = 0 +INLINE_ALIGNMENT_CENTER = 5 +INLINE_ALIGNMENT_BOTTOM = 14 +INLINE_ALIGNMENT_IMAGE_MASK = 3 +INLINE_ALIGNMENT_TEXT_MASK = 12 +--- @alias EulerOrder `EULER_ORDER_XYZ` | `EULER_ORDER_XZY` | `EULER_ORDER_YXZ` | `EULER_ORDER_YZX` | `EULER_ORDER_ZXY` | `EULER_ORDER_ZYX` +EULER_ORDER_XYZ = 0 +EULER_ORDER_XZY = 1 +EULER_ORDER_YXZ = 2 +EULER_ORDER_YZX = 3 +EULER_ORDER_ZXY = 4 +EULER_ORDER_ZYX = 5 +--- @alias Key `KEY_NONE` | `KEY_SPECIAL` | `KEY_ESCAPE` | `KEY_TAB` | `KEY_BACKTAB` | `KEY_BACKSPACE` | `KEY_ENTER` | `KEY_KP_ENTER` | `KEY_INSERT` | `KEY_DELETE` | `KEY_PAUSE` | `KEY_PRINT` | `KEY_SYSREQ` | `KEY_CLEAR` | `KEY_HOME` | `KEY_END` | `KEY_LEFT` | `KEY_UP` | `KEY_RIGHT` | `KEY_DOWN` | `KEY_PAGEUP` | `KEY_PAGEDOWN` | `KEY_SHIFT` | `KEY_CTRL` | `KEY_META` | `KEY_ALT` | `KEY_CAPSLOCK` | `KEY_NUMLOCK` | `KEY_SCROLLLOCK` | `KEY_F1` | `KEY_F2` | `KEY_F3` | `KEY_F4` | `KEY_F5` | `KEY_F6` | `KEY_F7` | `KEY_F8` | `KEY_F9` | `KEY_F10` | `KEY_F11` | `KEY_F12` | `KEY_F13` | `KEY_F14` | `KEY_F15` | `KEY_F16` | `KEY_F17` | `KEY_F18` | `KEY_F19` | `KEY_F20` | `KEY_F21` | `KEY_F22` | `KEY_F23` | `KEY_F24` | `KEY_F25` | `KEY_F26` | `KEY_F27` | `KEY_F28` | `KEY_F29` | `KEY_F30` | `KEY_F31` | `KEY_F32` | `KEY_F33` | `KEY_F34` | `KEY_F35` | `KEY_KP_MULTIPLY` | `KEY_KP_DIVIDE` | `KEY_KP_SUBTRACT` | `KEY_KP_PERIOD` | `KEY_KP_ADD` | `KEY_KP_0` | `KEY_KP_1` | `KEY_KP_2` | `KEY_KP_3` | `KEY_KP_4` | `KEY_KP_5` | `KEY_KP_6` | `KEY_KP_7` | `KEY_KP_8` | `KEY_KP_9` | `KEY_MENU` | `KEY_HYPER` | `KEY_HELP` | `KEY_BACK` | `KEY_FORWARD` | `KEY_STOP` | `KEY_REFRESH` | `KEY_VOLUMEDOWN` | `KEY_VOLUMEMUTE` | `KEY_VOLUMEUP` | `KEY_MEDIAPLAY` | `KEY_MEDIASTOP` | `KEY_MEDIAPREVIOUS` | `KEY_MEDIANEXT` | `KEY_MEDIARECORD` | `KEY_HOMEPAGE` | `KEY_FAVORITES` | `KEY_SEARCH` | `KEY_STANDBY` | `KEY_OPENURL` | `KEY_LAUNCHMAIL` | `KEY_LAUNCHMEDIA` | `KEY_LAUNCH0` | `KEY_LAUNCH1` | `KEY_LAUNCH2` | `KEY_LAUNCH3` | `KEY_LAUNCH4` | `KEY_LAUNCH5` | `KEY_LAUNCH6` | `KEY_LAUNCH7` | `KEY_LAUNCH8` | `KEY_LAUNCH9` | `KEY_LAUNCHA` | `KEY_LAUNCHB` | `KEY_LAUNCHC` | `KEY_LAUNCHD` | `KEY_LAUNCHE` | `KEY_LAUNCHF` | `KEY_GLOBE` | `KEY_KEYBOARD` | `KEY_JIS_EISU` | `KEY_JIS_KANA` | `KEY_UNKNOWN` | `KEY_SPACE` | `KEY_EXCLAM` | `KEY_QUOTEDBL` | `KEY_NUMBERSIGN` | `KEY_DOLLAR` | `KEY_PERCENT` | `KEY_AMPERSAND` | `KEY_APOSTROPHE` | `KEY_PARENLEFT` | `KEY_PARENRIGHT` | `KEY_ASTERISK` | `KEY_PLUS` | `KEY_COMMA` | `KEY_MINUS` | `KEY_PERIOD` | `KEY_SLASH` | `KEY_0` | `KEY_1` | `KEY_2` | `KEY_3` | `KEY_4` | `KEY_5` | `KEY_6` | `KEY_7` | `KEY_8` | `KEY_9` | `KEY_COLON` | `KEY_SEMICOLON` | `KEY_LESS` | `KEY_EQUAL` | `KEY_GREATER` | `KEY_QUESTION` | `KEY_AT` | `KEY_A` | `KEY_B` | `KEY_C` | `KEY_D` | `KEY_E` | `KEY_F` | `KEY_G` | `KEY_H` | `KEY_I` | `KEY_J` | `KEY_K` | `KEY_L` | `KEY_M` | `KEY_N` | `KEY_O` | `KEY_P` | `KEY_Q` | `KEY_R` | `KEY_S` | `KEY_T` | `KEY_U` | `KEY_V` | `KEY_W` | `KEY_X` | `KEY_Y` | `KEY_Z` | `KEY_BRACKETLEFT` | `KEY_BACKSLASH` | `KEY_BRACKETRIGHT` | `KEY_ASCIICIRCUM` | `KEY_UNDERSCORE` | `KEY_QUOTELEFT` | `KEY_BRACELEFT` | `KEY_BAR` | `KEY_BRACERIGHT` | `KEY_ASCIITILDE` | `KEY_YEN` | `KEY_SECTION` +KEY_NONE = 0 +KEY_SPECIAL = 4194304 +KEY_ESCAPE = 4194305 +KEY_TAB = 4194306 +KEY_BACKTAB = 4194307 +KEY_BACKSPACE = 4194308 +KEY_ENTER = 4194309 +KEY_KP_ENTER = 4194310 +KEY_INSERT = 4194311 +KEY_DELETE = 4194312 +KEY_PAUSE = 4194313 +KEY_PRINT = 4194314 +KEY_SYSREQ = 4194315 +KEY_CLEAR = 4194316 +KEY_HOME = 4194317 +KEY_END = 4194318 +KEY_LEFT = 4194319 +KEY_UP = 4194320 +KEY_RIGHT = 4194321 +KEY_DOWN = 4194322 +KEY_PAGEUP = 4194323 +KEY_PAGEDOWN = 4194324 +KEY_SHIFT = 4194325 +KEY_CTRL = 4194326 +KEY_META = 4194327 +KEY_ALT = 4194328 +KEY_CAPSLOCK = 4194329 +KEY_NUMLOCK = 4194330 +KEY_SCROLLLOCK = 4194331 +KEY_F1 = 4194332 +KEY_F2 = 4194333 +KEY_F3 = 4194334 +KEY_F4 = 4194335 +KEY_F5 = 4194336 +KEY_F6 = 4194337 +KEY_F7 = 4194338 +KEY_F8 = 4194339 +KEY_F9 = 4194340 +KEY_F10 = 4194341 +KEY_F11 = 4194342 +KEY_F12 = 4194343 +KEY_F13 = 4194344 +KEY_F14 = 4194345 +KEY_F15 = 4194346 +KEY_F16 = 4194347 +KEY_F17 = 4194348 +KEY_F18 = 4194349 +KEY_F19 = 4194350 +KEY_F20 = 4194351 +KEY_F21 = 4194352 +KEY_F22 = 4194353 +KEY_F23 = 4194354 +KEY_F24 = 4194355 +KEY_F25 = 4194356 +KEY_F26 = 4194357 +KEY_F27 = 4194358 +KEY_F28 = 4194359 +KEY_F29 = 4194360 +KEY_F30 = 4194361 +KEY_F31 = 4194362 +KEY_F32 = 4194363 +KEY_F33 = 4194364 +KEY_F34 = 4194365 +KEY_F35 = 4194366 +KEY_KP_MULTIPLY = 4194433 +KEY_KP_DIVIDE = 4194434 +KEY_KP_SUBTRACT = 4194435 +KEY_KP_PERIOD = 4194436 +KEY_KP_ADD = 4194437 +KEY_KP_0 = 4194438 +KEY_KP_1 = 4194439 +KEY_KP_2 = 4194440 +KEY_KP_3 = 4194441 +KEY_KP_4 = 4194442 +KEY_KP_5 = 4194443 +KEY_KP_6 = 4194444 +KEY_KP_7 = 4194445 +KEY_KP_8 = 4194446 +KEY_KP_9 = 4194447 +KEY_MENU = 4194370 +KEY_HYPER = 4194371 +KEY_HELP = 4194373 +KEY_BACK = 4194376 +KEY_FORWARD = 4194377 +KEY_STOP = 4194378 +KEY_REFRESH = 4194379 +KEY_VOLUMEDOWN = 4194380 +KEY_VOLUMEMUTE = 4194381 +KEY_VOLUMEUP = 4194382 +KEY_MEDIAPLAY = 4194388 +KEY_MEDIASTOP = 4194389 +KEY_MEDIAPREVIOUS = 4194390 +KEY_MEDIANEXT = 4194391 +KEY_MEDIARECORD = 4194392 +KEY_HOMEPAGE = 4194393 +KEY_FAVORITES = 4194394 +KEY_SEARCH = 4194395 +KEY_STANDBY = 4194396 +KEY_OPENURL = 4194397 +KEY_LAUNCHMAIL = 4194398 +KEY_LAUNCHMEDIA = 4194399 +KEY_LAUNCH0 = 4194400 +KEY_LAUNCH1 = 4194401 +KEY_LAUNCH2 = 4194402 +KEY_LAUNCH3 = 4194403 +KEY_LAUNCH4 = 4194404 +KEY_LAUNCH5 = 4194405 +KEY_LAUNCH6 = 4194406 +KEY_LAUNCH7 = 4194407 +KEY_LAUNCH8 = 4194408 +KEY_LAUNCH9 = 4194409 +KEY_LAUNCHA = 4194410 +KEY_LAUNCHB = 4194411 +KEY_LAUNCHC = 4194412 +KEY_LAUNCHD = 4194413 +KEY_LAUNCHE = 4194414 +KEY_LAUNCHF = 4194415 +KEY_GLOBE = 4194416 +KEY_KEYBOARD = 4194417 +KEY_JIS_EISU = 4194418 +KEY_JIS_KANA = 4194419 +KEY_UNKNOWN = 8388607 +KEY_SPACE = 32 +KEY_EXCLAM = 33 +KEY_QUOTEDBL = 34 +KEY_NUMBERSIGN = 35 +KEY_DOLLAR = 36 +KEY_PERCENT = 37 +KEY_AMPERSAND = 38 +KEY_APOSTROPHE = 39 +KEY_PARENLEFT = 40 +KEY_PARENRIGHT = 41 +KEY_ASTERISK = 42 +KEY_PLUS = 43 +KEY_COMMA = 44 +KEY_MINUS = 45 +KEY_PERIOD = 46 +KEY_SLASH = 47 +KEY_0 = 48 +KEY_1 = 49 +KEY_2 = 50 +KEY_3 = 51 +KEY_4 = 52 +KEY_5 = 53 +KEY_6 = 54 +KEY_7 = 55 +KEY_8 = 56 +KEY_9 = 57 +KEY_COLON = 58 +KEY_SEMICOLON = 59 +KEY_LESS = 60 +KEY_EQUAL = 61 +KEY_GREATER = 62 +KEY_QUESTION = 63 +KEY_AT = 64 +KEY_A = 65 +KEY_B = 66 +KEY_C = 67 +KEY_D = 68 +KEY_E = 69 +KEY_F = 70 +KEY_G = 71 +KEY_H = 72 +KEY_I = 73 +KEY_J = 74 +KEY_K = 75 +KEY_L = 76 +KEY_M = 77 +KEY_N = 78 +KEY_O = 79 +KEY_P = 80 +KEY_Q = 81 +KEY_R = 82 +KEY_S = 83 +KEY_T = 84 +KEY_U = 85 +KEY_V = 86 +KEY_W = 87 +KEY_X = 88 +KEY_Y = 89 +KEY_Z = 90 +KEY_BRACKETLEFT = 91 +KEY_BACKSLASH = 92 +KEY_BRACKETRIGHT = 93 +KEY_ASCIICIRCUM = 94 +KEY_UNDERSCORE = 95 +KEY_QUOTELEFT = 96 +KEY_BRACELEFT = 123 +KEY_BAR = 124 +KEY_BRACERIGHT = 125 +KEY_ASCIITILDE = 126 +KEY_YEN = 165 +KEY_SECTION = 167 +--- @alias KeyModifierMask `KEY_CODE_MASK` | `KEY_MODIFIER_MASK` | `KEY_MASK_CMD_OR_CTRL` | `KEY_MASK_SHIFT` | `KEY_MASK_ALT` | `KEY_MASK_META` | `KEY_MASK_CTRL` | `KEY_MASK_KPAD` | `KEY_MASK_GROUP_SWITCH` +KEY_CODE_MASK = 8388607 +KEY_MODIFIER_MASK = 2130706432 +KEY_MASK_CMD_OR_CTRL = 16777216 +KEY_MASK_SHIFT = 33554432 +KEY_MASK_ALT = 67108864 +KEY_MASK_META = 134217728 +KEY_MASK_CTRL = 268435456 +KEY_MASK_KPAD = 536870912 +KEY_MASK_GROUP_SWITCH = 1073741824 +--- @alias KeyLocation `KEY_LOCATION_UNSPECIFIED` | `KEY_LOCATION_LEFT` | `KEY_LOCATION_RIGHT` +KEY_LOCATION_UNSPECIFIED = 0 +KEY_LOCATION_LEFT = 1 +KEY_LOCATION_RIGHT = 2 +--- @alias MouseButton `MOUSE_BUTTON_NONE` | `MOUSE_BUTTON_LEFT` | `MOUSE_BUTTON_RIGHT` | `MOUSE_BUTTON_MIDDLE` | `MOUSE_BUTTON_WHEEL_UP` | `MOUSE_BUTTON_WHEEL_DOWN` | `MOUSE_BUTTON_WHEEL_LEFT` | `MOUSE_BUTTON_WHEEL_RIGHT` | `MOUSE_BUTTON_XBUTTON1` | `MOUSE_BUTTON_XBUTTON2` +MOUSE_BUTTON_NONE = 0 +MOUSE_BUTTON_LEFT = 1 +MOUSE_BUTTON_RIGHT = 2 +MOUSE_BUTTON_MIDDLE = 3 +MOUSE_BUTTON_WHEEL_UP = 4 +MOUSE_BUTTON_WHEEL_DOWN = 5 +MOUSE_BUTTON_WHEEL_LEFT = 6 +MOUSE_BUTTON_WHEEL_RIGHT = 7 +MOUSE_BUTTON_XBUTTON1 = 8 +MOUSE_BUTTON_XBUTTON2 = 9 +--- @alias MouseButtonMask `MOUSE_BUTTON_MASK_LEFT` | `MOUSE_BUTTON_MASK_RIGHT` | `MOUSE_BUTTON_MASK_MIDDLE` | `MOUSE_BUTTON_MASK_MB_XBUTTON1` | `MOUSE_BUTTON_MASK_MB_XBUTTON2` +MOUSE_BUTTON_MASK_LEFT = 1 +MOUSE_BUTTON_MASK_RIGHT = 2 +MOUSE_BUTTON_MASK_MIDDLE = 4 +MOUSE_BUTTON_MASK_MB_XBUTTON1 = 128 +MOUSE_BUTTON_MASK_MB_XBUTTON2 = 256 +--- @alias JoyButton `JOY_BUTTON_INVALID` | `JOY_BUTTON_A` | `JOY_BUTTON_B` | `JOY_BUTTON_X` | `JOY_BUTTON_Y` | `JOY_BUTTON_BACK` | `JOY_BUTTON_GUIDE` | `JOY_BUTTON_START` | `JOY_BUTTON_LEFT_STICK` | `JOY_BUTTON_RIGHT_STICK` | `JOY_BUTTON_LEFT_SHOULDER` | `JOY_BUTTON_RIGHT_SHOULDER` | `JOY_BUTTON_DPAD_UP` | `JOY_BUTTON_DPAD_DOWN` | `JOY_BUTTON_DPAD_LEFT` | `JOY_BUTTON_DPAD_RIGHT` | `JOY_BUTTON_MISC1` | `JOY_BUTTON_PADDLE1` | `JOY_BUTTON_PADDLE2` | `JOY_BUTTON_PADDLE3` | `JOY_BUTTON_PADDLE4` | `JOY_BUTTON_TOUCHPAD` | `JOY_BUTTON_SDL_MAX` | `JOY_BUTTON_MAX` +JOY_BUTTON_INVALID = -1 +JOY_BUTTON_A = 0 +JOY_BUTTON_B = 1 +JOY_BUTTON_X = 2 +JOY_BUTTON_Y = 3 +JOY_BUTTON_BACK = 4 +JOY_BUTTON_GUIDE = 5 +JOY_BUTTON_START = 6 +JOY_BUTTON_LEFT_STICK = 7 +JOY_BUTTON_RIGHT_STICK = 8 +JOY_BUTTON_LEFT_SHOULDER = 9 +JOY_BUTTON_RIGHT_SHOULDER = 10 +JOY_BUTTON_DPAD_UP = 11 +JOY_BUTTON_DPAD_DOWN = 12 +JOY_BUTTON_DPAD_LEFT = 13 +JOY_BUTTON_DPAD_RIGHT = 14 +JOY_BUTTON_MISC1 = 15 +JOY_BUTTON_PADDLE1 = 16 +JOY_BUTTON_PADDLE2 = 17 +JOY_BUTTON_PADDLE3 = 18 +JOY_BUTTON_PADDLE4 = 19 +JOY_BUTTON_TOUCHPAD = 20 +JOY_BUTTON_SDL_MAX = 21 +JOY_BUTTON_MAX = 128 +--- @alias JoyAxis `JOY_AXIS_INVALID` | `JOY_AXIS_LEFT_X` | `JOY_AXIS_LEFT_Y` | `JOY_AXIS_RIGHT_X` | `JOY_AXIS_RIGHT_Y` | `JOY_AXIS_TRIGGER_LEFT` | `JOY_AXIS_TRIGGER_RIGHT` | `JOY_AXIS_SDL_MAX` | `JOY_AXIS_MAX` +JOY_AXIS_INVALID = -1 +JOY_AXIS_LEFT_X = 0 +JOY_AXIS_LEFT_Y = 1 +JOY_AXIS_RIGHT_X = 2 +JOY_AXIS_RIGHT_Y = 3 +JOY_AXIS_TRIGGER_LEFT = 4 +JOY_AXIS_TRIGGER_RIGHT = 5 +JOY_AXIS_SDL_MAX = 6 +JOY_AXIS_MAX = 10 +--- @alias MIDIMessage `MIDI_MESSAGE_NONE` | `MIDI_MESSAGE_NOTE_OFF` | `MIDI_MESSAGE_NOTE_ON` | `MIDI_MESSAGE_AFTERTOUCH` | `MIDI_MESSAGE_CONTROL_CHANGE` | `MIDI_MESSAGE_PROGRAM_CHANGE` | `MIDI_MESSAGE_CHANNEL_PRESSURE` | `MIDI_MESSAGE_PITCH_BEND` | `MIDI_MESSAGE_SYSTEM_EXCLUSIVE` | `MIDI_MESSAGE_QUARTER_FRAME` | `MIDI_MESSAGE_SONG_POSITION_POINTER` | `MIDI_MESSAGE_SONG_SELECT` | `MIDI_MESSAGE_TUNE_REQUEST` | `MIDI_MESSAGE_TIMING_CLOCK` | `MIDI_MESSAGE_START` | `MIDI_MESSAGE_CONTINUE` | `MIDI_MESSAGE_STOP` | `MIDI_MESSAGE_ACTIVE_SENSING` | `MIDI_MESSAGE_SYSTEM_RESET` +MIDI_MESSAGE_NONE = 0 +MIDI_MESSAGE_NOTE_OFF = 8 +MIDI_MESSAGE_NOTE_ON = 9 +MIDI_MESSAGE_AFTERTOUCH = 10 +MIDI_MESSAGE_CONTROL_CHANGE = 11 +MIDI_MESSAGE_PROGRAM_CHANGE = 12 +MIDI_MESSAGE_CHANNEL_PRESSURE = 13 +MIDI_MESSAGE_PITCH_BEND = 14 +MIDI_MESSAGE_SYSTEM_EXCLUSIVE = 240 +MIDI_MESSAGE_QUARTER_FRAME = 241 +MIDI_MESSAGE_SONG_POSITION_POINTER = 242 +MIDI_MESSAGE_SONG_SELECT = 243 +MIDI_MESSAGE_TUNE_REQUEST = 246 +MIDI_MESSAGE_TIMING_CLOCK = 248 +MIDI_MESSAGE_START = 250 +MIDI_MESSAGE_CONTINUE = 251 +MIDI_MESSAGE_STOP = 252 +MIDI_MESSAGE_ACTIVE_SENSING = 254 +MIDI_MESSAGE_SYSTEM_RESET = 255 +--- @alias Error `OK` | `FAILED` | `ERR_UNAVAILABLE` | `ERR_UNCONFIGURED` | `ERR_UNAUTHORIZED` | `ERR_PARAMETER_RANGE_ERROR` | `ERR_OUT_OF_MEMORY` | `ERR_FILE_NOT_FOUND` | `ERR_FILE_BAD_DRIVE` | `ERR_FILE_BAD_PATH` | `ERR_FILE_NO_PERMISSION` | `ERR_FILE_ALREADY_IN_USE` | `ERR_FILE_CANT_OPEN` | `ERR_FILE_CANT_WRITE` | `ERR_FILE_CANT_READ` | `ERR_FILE_UNRECOGNIZED` | `ERR_FILE_CORRUPT` | `ERR_FILE_MISSING_DEPENDENCIES` | `ERR_FILE_EOF` | `ERR_CANT_OPEN` | `ERR_CANT_CREATE` | `ERR_QUERY_FAILED` | `ERR_ALREADY_IN_USE` | `ERR_LOCKED` | `ERR_TIMEOUT` | `ERR_CANT_CONNECT` | `ERR_CANT_RESOLVE` | `ERR_CONNECTION_ERROR` | `ERR_CANT_ACQUIRE_RESOURCE` | `ERR_CANT_FORK` | `ERR_INVALID_DATA` | `ERR_INVALID_PARAMETER` | `ERR_ALREADY_EXISTS` | `ERR_DOES_NOT_EXIST` | `ERR_DATABASE_CANT_READ` | `ERR_DATABASE_CANT_WRITE` | `ERR_COMPILATION_FAILED` | `ERR_METHOD_NOT_FOUND` | `ERR_LINK_FAILED` | `ERR_SCRIPT_FAILED` | `ERR_CYCLIC_LINK` | `ERR_INVALID_DECLARATION` | `ERR_DUPLICATE_SYMBOL` | `ERR_PARSE_ERROR` | `ERR_BUSY` | `ERR_SKIP` | `ERR_HELP` | `ERR_BUG` | `ERR_PRINTER_ON_FIRE` +OK = 0 +FAILED = 1 +ERR_UNAVAILABLE = 2 +ERR_UNCONFIGURED = 3 +ERR_UNAUTHORIZED = 4 +ERR_PARAMETER_RANGE_ERROR = 5 +ERR_OUT_OF_MEMORY = 6 +ERR_FILE_NOT_FOUND = 7 +ERR_FILE_BAD_DRIVE = 8 +ERR_FILE_BAD_PATH = 9 +ERR_FILE_NO_PERMISSION = 10 +ERR_FILE_ALREADY_IN_USE = 11 +ERR_FILE_CANT_OPEN = 12 +ERR_FILE_CANT_WRITE = 13 +ERR_FILE_CANT_READ = 14 +ERR_FILE_UNRECOGNIZED = 15 +ERR_FILE_CORRUPT = 16 +ERR_FILE_MISSING_DEPENDENCIES = 17 +ERR_FILE_EOF = 18 +ERR_CANT_OPEN = 19 +ERR_CANT_CREATE = 20 +ERR_QUERY_FAILED = 21 +ERR_ALREADY_IN_USE = 22 +ERR_LOCKED = 23 +ERR_TIMEOUT = 24 +ERR_CANT_CONNECT = 25 +ERR_CANT_RESOLVE = 26 +ERR_CONNECTION_ERROR = 27 +ERR_CANT_ACQUIRE_RESOURCE = 28 +ERR_CANT_FORK = 29 +ERR_INVALID_DATA = 30 +ERR_INVALID_PARAMETER = 31 +ERR_ALREADY_EXISTS = 32 +ERR_DOES_NOT_EXIST = 33 +ERR_DATABASE_CANT_READ = 34 +ERR_DATABASE_CANT_WRITE = 35 +ERR_COMPILATION_FAILED = 36 +ERR_METHOD_NOT_FOUND = 37 +ERR_LINK_FAILED = 38 +ERR_SCRIPT_FAILED = 39 +ERR_CYCLIC_LINK = 40 +ERR_INVALID_DECLARATION = 41 +ERR_DUPLICATE_SYMBOL = 42 +ERR_PARSE_ERROR = 43 +ERR_BUSY = 44 +ERR_SKIP = 45 +ERR_HELP = 46 +ERR_BUG = 47 +ERR_PRINTER_ON_FIRE = 48 +--- @alias PropertyHint `PROPERTY_HINT_NONE` | `PROPERTY_HINT_RANGE` | `PROPERTY_HINT_ENUM` | `PROPERTY_HINT_ENUM_SUGGESTION` | `PROPERTY_HINT_EXP_EASING` | `PROPERTY_HINT_LINK` | `PROPERTY_HINT_FLAGS` | `PROPERTY_HINT_LAYERS_2D_RENDER` | `PROPERTY_HINT_LAYERS_2D_PHYSICS` | `PROPERTY_HINT_LAYERS_2D_NAVIGATION` | `PROPERTY_HINT_LAYERS_3D_RENDER` | `PROPERTY_HINT_LAYERS_3D_PHYSICS` | `PROPERTY_HINT_LAYERS_3D_NAVIGATION` | `PROPERTY_HINT_LAYERS_AVOIDANCE` | `PROPERTY_HINT_FILE` | `PROPERTY_HINT_DIR` | `PROPERTY_HINT_GLOBAL_FILE` | `PROPERTY_HINT_GLOBAL_DIR` | `PROPERTY_HINT_RESOURCE_TYPE` | `PROPERTY_HINT_MULTILINE_TEXT` | `PROPERTY_HINT_EXPRESSION` | `PROPERTY_HINT_PLACEHOLDER_TEXT` | `PROPERTY_HINT_COLOR_NO_ALPHA` | `PROPERTY_HINT_OBJECT_ID` | `PROPERTY_HINT_TYPE_STRING` | `PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE` | `PROPERTY_HINT_OBJECT_TOO_BIG` | `PROPERTY_HINT_NODE_PATH_VALID_TYPES` | `PROPERTY_HINT_SAVE_FILE` | `PROPERTY_HINT_GLOBAL_SAVE_FILE` | `PROPERTY_HINT_INT_IS_OBJECTID` | `PROPERTY_HINT_INT_IS_POINTER` | `PROPERTY_HINT_ARRAY_TYPE` | `PROPERTY_HINT_DICTIONARY_TYPE` | `PROPERTY_HINT_LOCALE_ID` | `PROPERTY_HINT_LOCALIZABLE_STRING` | `PROPERTY_HINT_NODE_TYPE` | `PROPERTY_HINT_HIDE_QUATERNION_EDIT` | `PROPERTY_HINT_PASSWORD` | `PROPERTY_HINT_TOOL_BUTTON` | `PROPERTY_HINT_ONESHOT` | `PROPERTY_HINT_GROUP_ENABLE` | `PROPERTY_HINT_INPUT_NAME` | `PROPERTY_HINT_FILE_PATH` | `PROPERTY_HINT_MAX` +PROPERTY_HINT_NONE = 0 +PROPERTY_HINT_RANGE = 1 +PROPERTY_HINT_ENUM = 2 +PROPERTY_HINT_ENUM_SUGGESTION = 3 +PROPERTY_HINT_EXP_EASING = 4 +PROPERTY_HINT_LINK = 5 +PROPERTY_HINT_FLAGS = 6 +PROPERTY_HINT_LAYERS_2D_RENDER = 7 +PROPERTY_HINT_LAYERS_2D_PHYSICS = 8 +PROPERTY_HINT_LAYERS_2D_NAVIGATION = 9 +PROPERTY_HINT_LAYERS_3D_RENDER = 10 +PROPERTY_HINT_LAYERS_3D_PHYSICS = 11 +PROPERTY_HINT_LAYERS_3D_NAVIGATION = 12 +PROPERTY_HINT_LAYERS_AVOIDANCE = 37 +PROPERTY_HINT_FILE = 13 +PROPERTY_HINT_DIR = 14 +PROPERTY_HINT_GLOBAL_FILE = 15 +PROPERTY_HINT_GLOBAL_DIR = 16 +PROPERTY_HINT_RESOURCE_TYPE = 17 +PROPERTY_HINT_MULTILINE_TEXT = 18 +PROPERTY_HINT_EXPRESSION = 19 +PROPERTY_HINT_PLACEHOLDER_TEXT = 20 +PROPERTY_HINT_COLOR_NO_ALPHA = 21 +PROPERTY_HINT_OBJECT_ID = 22 +PROPERTY_HINT_TYPE_STRING = 23 +PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE = 24 +PROPERTY_HINT_OBJECT_TOO_BIG = 25 +PROPERTY_HINT_NODE_PATH_VALID_TYPES = 26 +PROPERTY_HINT_SAVE_FILE = 27 +PROPERTY_HINT_GLOBAL_SAVE_FILE = 28 +PROPERTY_HINT_INT_IS_OBJECTID = 29 +PROPERTY_HINT_INT_IS_POINTER = 30 +PROPERTY_HINT_ARRAY_TYPE = 31 +PROPERTY_HINT_DICTIONARY_TYPE = 38 +PROPERTY_HINT_LOCALE_ID = 32 +PROPERTY_HINT_LOCALIZABLE_STRING = 33 +PROPERTY_HINT_NODE_TYPE = 34 +PROPERTY_HINT_HIDE_QUATERNION_EDIT = 35 +PROPERTY_HINT_PASSWORD = 36 +PROPERTY_HINT_TOOL_BUTTON = 39 +PROPERTY_HINT_ONESHOT = 40 +PROPERTY_HINT_GROUP_ENABLE = 42 +PROPERTY_HINT_INPUT_NAME = 43 +PROPERTY_HINT_FILE_PATH = 44 +PROPERTY_HINT_MAX = 45 +--- @alias PropertyUsageFlags `PROPERTY_USAGE_NONE` | `PROPERTY_USAGE_STORAGE` | `PROPERTY_USAGE_EDITOR` | `PROPERTY_USAGE_INTERNAL` | `PROPERTY_USAGE_CHECKABLE` | `PROPERTY_USAGE_CHECKED` | `PROPERTY_USAGE_GROUP` | `PROPERTY_USAGE_CATEGORY` | `PROPERTY_USAGE_SUBGROUP` | `PROPERTY_USAGE_CLASS_IS_BITFIELD` | `PROPERTY_USAGE_NO_INSTANCE_STATE` | `PROPERTY_USAGE_RESTART_IF_CHANGED` | `PROPERTY_USAGE_SCRIPT_VARIABLE` | `PROPERTY_USAGE_STORE_IF_NULL` | `PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED` | `PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE` | `PROPERTY_USAGE_CLASS_IS_ENUM` | `PROPERTY_USAGE_NIL_IS_VARIANT` | `PROPERTY_USAGE_ARRAY` | `PROPERTY_USAGE_ALWAYS_DUPLICATE` | `PROPERTY_USAGE_NEVER_DUPLICATE` | `PROPERTY_USAGE_HIGH_END_GFX` | `PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT` | `PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT` | `PROPERTY_USAGE_KEYING_INCREMENTS` | `PROPERTY_USAGE_DEFERRED_SET_RESOURCE` | `PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT` | `PROPERTY_USAGE_EDITOR_BASIC_SETTING` | `PROPERTY_USAGE_READ_ONLY` | `PROPERTY_USAGE_SECRET` | `PROPERTY_USAGE_DEFAULT` | `PROPERTY_USAGE_NO_EDITOR` +PROPERTY_USAGE_NONE = 0 +PROPERTY_USAGE_STORAGE = 2 +PROPERTY_USAGE_EDITOR = 4 +PROPERTY_USAGE_INTERNAL = 8 +PROPERTY_USAGE_CHECKABLE = 16 +PROPERTY_USAGE_CHECKED = 32 +PROPERTY_USAGE_GROUP = 64 +PROPERTY_USAGE_CATEGORY = 128 +PROPERTY_USAGE_SUBGROUP = 256 +PROPERTY_USAGE_CLASS_IS_BITFIELD = 512 +PROPERTY_USAGE_NO_INSTANCE_STATE = 1024 +PROPERTY_USAGE_RESTART_IF_CHANGED = 2048 +PROPERTY_USAGE_SCRIPT_VARIABLE = 4096 +PROPERTY_USAGE_STORE_IF_NULL = 8192 +PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 16384 +PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE = 32768 +PROPERTY_USAGE_CLASS_IS_ENUM = 65536 +PROPERTY_USAGE_NIL_IS_VARIANT = 131072 +PROPERTY_USAGE_ARRAY = 262144 +PROPERTY_USAGE_ALWAYS_DUPLICATE = 524288 +PROPERTY_USAGE_NEVER_DUPLICATE = 1048576 +PROPERTY_USAGE_HIGH_END_GFX = 2097152 +PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT = 4194304 +PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT = 8388608 +PROPERTY_USAGE_KEYING_INCREMENTS = 16777216 +PROPERTY_USAGE_DEFERRED_SET_RESOURCE = 33554432 +PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT = 67108864 +PROPERTY_USAGE_EDITOR_BASIC_SETTING = 134217728 +PROPERTY_USAGE_READ_ONLY = 268435456 +PROPERTY_USAGE_SECRET = 536870912 +PROPERTY_USAGE_DEFAULT = 6 +PROPERTY_USAGE_NO_EDITOR = 2 +--- @alias MethodFlags `METHOD_FLAG_NORMAL` | `METHOD_FLAG_EDITOR` | `METHOD_FLAG_CONST` | `METHOD_FLAG_VIRTUAL` | `METHOD_FLAG_VARARG` | `METHOD_FLAG_STATIC` | `METHOD_FLAG_OBJECT_CORE` | `METHOD_FLAG_VIRTUAL_REQUIRED` | `METHOD_FLAGS_DEFAULT` +METHOD_FLAG_NORMAL = 1 +METHOD_FLAG_EDITOR = 2 +METHOD_FLAG_CONST = 4 +METHOD_FLAG_VIRTUAL = 8 +METHOD_FLAG_VARARG = 16 +METHOD_FLAG_STATIC = 32 +METHOD_FLAG_OBJECT_CORE = 64 +METHOD_FLAG_VIRTUAL_REQUIRED = 128 +METHOD_FLAGS_DEFAULT = 1 +--- @alias Variant.Type `TYPE_NIL` | `TYPE_BOOL` | `TYPE_INT` | `TYPE_FLOAT` | `TYPE_STRING` | `TYPE_VECTOR2` | `TYPE_VECTOR2I` | `TYPE_RECT2` | `TYPE_RECT2I` | `TYPE_VECTOR3` | `TYPE_VECTOR3I` | `TYPE_TRANSFORM2D` | `TYPE_VECTOR4` | `TYPE_VECTOR4I` | `TYPE_PLANE` | `TYPE_QUATERNION` | `TYPE_AABB` | `TYPE_BASIS` | `TYPE_TRANSFORM3D` | `TYPE_PROJECTION` | `TYPE_COLOR` | `TYPE_STRING_NAME` | `TYPE_NODE_PATH` | `TYPE_RID` | `TYPE_OBJECT` | `TYPE_CALLABLE` | `TYPE_SIGNAL` | `TYPE_DICTIONARY` | `TYPE_ARRAY` | `TYPE_PACKED_BYTE_ARRAY` | `TYPE_PACKED_INT32_ARRAY` | `TYPE_PACKED_INT64_ARRAY` | `TYPE_PACKED_FLOAT32_ARRAY` | `TYPE_PACKED_FLOAT64_ARRAY` | `TYPE_PACKED_STRING_ARRAY` | `TYPE_PACKED_VECTOR2_ARRAY` | `TYPE_PACKED_VECTOR3_ARRAY` | `TYPE_PACKED_COLOR_ARRAY` | `TYPE_PACKED_VECTOR4_ARRAY` | `TYPE_MAX` +TYPE_NIL = 0 +TYPE_BOOL = 1 +TYPE_INT = 2 +TYPE_FLOAT = 3 +TYPE_STRING = 4 +TYPE_VECTOR2 = 5 +TYPE_VECTOR2I = 6 +TYPE_RECT2 = 7 +TYPE_RECT2I = 8 +TYPE_VECTOR3 = 9 +TYPE_VECTOR3I = 10 +TYPE_TRANSFORM2D = 11 +TYPE_VECTOR4 = 12 +TYPE_VECTOR4I = 13 +TYPE_PLANE = 14 +TYPE_QUATERNION = 15 +TYPE_AABB = 16 +TYPE_BASIS = 17 +TYPE_TRANSFORM3D = 18 +TYPE_PROJECTION = 19 +TYPE_COLOR = 20 +TYPE_STRING_NAME = 21 +TYPE_NODE_PATH = 22 +TYPE_RID = 23 +TYPE_OBJECT = 24 +TYPE_CALLABLE = 25 +TYPE_SIGNAL = 26 +TYPE_DICTIONARY = 27 +TYPE_ARRAY = 28 +TYPE_PACKED_BYTE_ARRAY = 29 +TYPE_PACKED_INT32_ARRAY = 30 +TYPE_PACKED_INT64_ARRAY = 31 +TYPE_PACKED_FLOAT32_ARRAY = 32 +TYPE_PACKED_FLOAT64_ARRAY = 33 +TYPE_PACKED_STRING_ARRAY = 34 +TYPE_PACKED_VECTOR2_ARRAY = 35 +TYPE_PACKED_VECTOR3_ARRAY = 36 +TYPE_PACKED_COLOR_ARRAY = 37 +TYPE_PACKED_VECTOR4_ARRAY = 38 +TYPE_MAX = 39 +--- @alias Variant.Operator `OP_EQUAL` | `OP_NOT_EQUAL` | `OP_LESS` | `OP_LESS_EQUAL` | `OP_GREATER` | `OP_GREATER_EQUAL` | `OP_ADD` | `OP_SUBTRACT` | `OP_MULTIPLY` | `OP_DIVIDE` | `OP_NEGATE` | `OP_POSITIVE` | `OP_MODULE` | `OP_POWER` | `OP_SHIFT_LEFT` | `OP_SHIFT_RIGHT` | `OP_BIT_AND` | `OP_BIT_OR` | `OP_BIT_XOR` | `OP_BIT_NEGATE` | `OP_AND` | `OP_OR` | `OP_XOR` | `OP_NOT` | `OP_IN` | `OP_MAX` +OP_EQUAL = 0 +OP_NOT_EQUAL = 1 +OP_LESS = 2 +OP_LESS_EQUAL = 3 +OP_GREATER = 4 +OP_GREATER_EQUAL = 5 +OP_ADD = 6 +OP_SUBTRACT = 7 +OP_MULTIPLY = 8 +OP_DIVIDE = 9 +OP_NEGATE = 10 +OP_POSITIVE = 11 +OP_MODULE = 12 +OP_POWER = 13 +OP_SHIFT_LEFT = 14 +OP_SHIFT_RIGHT = 15 +OP_BIT_AND = 16 +OP_BIT_OR = 17 +OP_BIT_XOR = 18 +OP_BIT_NEGATE = 19 +OP_AND = 20 +OP_OR = 21 +OP_XOR = 22 +OP_NOT = 23 +OP_IN = 24 +OP_MAX = 25 + diff --git a/addons/lua-gdextension/lua_api_definitions/lua_script_language.lua b/addons/lua-gdextension/lua_api_definitions/lua_script_language.lua new file mode 100644 index 0000000..1b46740 --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/lua_script_language.lua @@ -0,0 +1,273 @@ +--- @meta + +----------------------------------------------------------- +-- Properties +----------------------------------------------------------- + +--- @class LuaScriptProperty +--- Property definition for Lua scripts. +LuaScriptProperty = {} + +--- Used to define custom properties in Lua scripts. +--- If you pass a table, the following keys are used (all are optional): +--- + `1`: if it's a Variant type or Class (like `Dictionary` or `Node2D`) it represents the property type. +--- Otherwise, it represents the property's default value. +--- + `type`: should be a Variant type or a Class, such as `Vector2` or `RefCounted`. +--- + `hint`: property hint (check out the `PropertyHint` enum for available values) +--- + `hint_string`: property hint string, depends on the value of `hint` +--- + `usage`: property usage flags (check out the `PropertyUsage` enum for available values) +--- + `class_name`: the name of the Class, filled automatically from `type` if it's a Class type +--- + `default`: the default value of the property +--- + `get`: getter function, should be either a Lua function or a string containing the getter method name +--- + `set`: setter function, should be either a Lua function or a string containing the setter method name +--- +--- In case `t` is not a table, the table `{t}` will be used instead. +--- @param t table | any +--- @return LuaScriptProperty +function property(t) end + +--- Same as `property`, but always adds `PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE` to the property's usage flags. +--- Similar to GDScript's `@export` annotation. +--- @see property +--- @param t table | any +--- @return LuaScriptProperty +function export(t) end + +--- Creates a `PROPERTY_USAGE_CATEGORY` property. +--- Note that the category name will be the key used in your class for this property. +--- @return LuaScriptProperty +function export_category() end + +--- Same as `export`, but always adds `PROPERTY_HINT_COLOR_NO_ALPHA` to the property's usage flags. +--- Similar to GDScript's `@export_color_no_alpha` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_color_no_alpha(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_DIR` to the property's usage flags. +--- Similar to GDScript's `@export_dir` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_dir(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_ENUM` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_enum` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_enum(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_EXP_EASING` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_exp_easing` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_exp_easing(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_FILE` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_file` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_file(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_FLAGS` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_flags` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_flags(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_2D_NAVIGATION` to the property's usage flags. +--- Similar to GDScript's `@export_flags_2d_navigation` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_2d_navigation(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_2D_PHYSICS` to the property's usage flags. +--- Similar to GDScript's `@export_flags_2d_physics` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_2d_physics(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_2D_RENDER` to the property's usage flags. +--- Similar to GDScript's `@export_flags_2d_render` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_2d_render(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_3D_NAVIGATION` to the property's usage flags. +--- Similar to GDScript's `@export_flags_3d_navigation` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_3d_navigation(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_3D_PHYSICS` to the property's usage flags. +--- Similar to GDScript's `@export_flags_3d_physics` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_3d_physics(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_3D_RENDER` to the property's usage flags. +--- Similar to GDScript's `@export_flags_3d_render` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_3d_render(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_LAYERS_AVOIDANCE` to the property's usage flags. +--- Similar to GDScript's `@export_flags_avoidance` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_flags_avoidance(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_GLOBAL_DIR` to the property's usage flags. +--- Similar to GDScript's `@export_global_dir` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_global_dir(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_GLOBAL_FILE` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_global_file` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_global_file(...) end + +--- Creates a `PROPERTY_USAGE_GROUP` property. +--- Note that the group name will be the key used in your class for this property. +--- @param prefix string? +--- @return LuaScriptProperty +function export_group(prefix) end + +--- Same as `export`, but always adds `PROPERTY_HINT_MULTILINE_TEXT` to the property's usage flags. +--- Similar to GDScript's `@export_multiline` annotation. +--- @see export +--- @param t table | any +--- @return LuaScriptProperty +function export_multiline(t) end + +--- Same as `export`, but always adds `PROPERTY_HINT_NODE_PATH_VALID_TYPES` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_node_path` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_node_path(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_PLACEHOLDER_TEXT` to the property's hint flags. +--- String arguments will be used as the property's `hint_string`. +--- The first argument that is not a string is forwarded to `export` +--- Similar to GDScript's `export_placeholder` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_placeholder(...) end + +--- Same as `export`, but always adds `PROPERTY_HINT_RANGE` to the property's hint flags. +--- The first argument that is not a number or string is forwarded to `export`. +--- Similar to GDScript's `export_node_path` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_range(...) end + +--- Used to define exported properties in Lua scripts. +--- This is the same as `property`, but always adds `PROPERTY_USAGE_STORAGE` to the property's usage flags. +--- @see property +--- @param t table | any +--- @return LuaScriptProperty +function export_storage(t) end + +--- Creates a `PROPERTY_USAGE_SUBGROUP` property. +--- Note that the subgroup name will be the key used in your class for this property. +--- @param prefix string? +--- @return LuaScriptProperty +function export_subgroup(prefix) end + +--- Same as `export`, but always adds `PROPERTY_HINT_TOOL_BUTTON` to the property's hint flags. +--- The first argument that is not a string is forwarded to `export`. +--- Similar to GDScript's `export_node_path` annotation. +--- @see export +--- @param ... string | any +--- @return LuaScriptProperty +function export_tool_button(...) end + + +----------------------------------------------------------- +-- Signals +----------------------------------------------------------- + +--- @class LuaScriptSignal +--- Signal definition for Lua scripts. +LuaScriptSignal = {} + +--- Used to define custom signals in Lua scripts. +--- For now there is no way to pass type information for arguments, only their names. +--- ``` +--- local MyClass = {} +--- MyClass.some_signal = signal("argument1", "argument2") +--- return MyClass +--- ``` +--- @param ... string +--- @return LuaScriptSignal +function signal(...) end + + +----------------------------------------------------------- +-- RPC configuration +----------------------------------------------------------- + +--- Similar to GDScript's `@rpc` annotation, should be used to initialize the special `rpc_config` table. +--- Example: +--- ``` +--- local MyClass = {} +--- +--- function MyClass:some_method() end +--- function MyClass:some_other_method() end +--- +--- MyClass.rpc_config = { +--- "some_method" = rpc("any_peer", "call_local", "reliable", 0), +--- "some_other_method" = rpc("reliable", 1), +--- } +--- +--- return MyClass +--- ``` +--- See [@rpc](https://docs.godotengine.org/en/stable/classes/class_@gdscript.html#class-gdscript-annotation-rpc) for more information. +--- +--- @param mode "any_peer" | "authority" | nil +--- @param sync "call_remote" | "call_local" | nil +--- @param transfer_mode "unreliable" | "unreliable_ordered" | "reliable" | nil +--- @param transfer_channel integer? +function rpc(mode, sync, transfer_mode, transfer_channel) end + + +----------------------------------------------------------- +-- Misc +----------------------------------------------------------- + +--- Creates a table suitable for defining Godot Classes in Lua scripts. +--- The only thing special about it is that `pairs` iterates over its keys in order of insertion, +--- so that its properties and methods are shown in order of definition in the Godot Editor. +--- @return table +function GDCLASS() end diff --git a/addons/lua-gdextension/lua_api_definitions/manually_defined_globals.lua b/addons/lua-gdextension/lua_api_definitions/manually_defined_globals.lua new file mode 100644 index 0000000..9d56bcc --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/manually_defined_globals.lua @@ -0,0 +1,23 @@ +--- @meta + +--- Yields the current coroutine until the passed signal is emitted. +--- If an Object is passed, awaits for its 'completed' signal. +--- This function should only be called inside a coroutine. +--- +--- Note: only available if `GODOT_UTILITY_FUNCTIONS` library is open in the LuaState. +--- @param awaitable Object | Signal +--- @return any +function await(awaitable) end + + +--- Returns the Variant type of the passed value. +--- Contrary to GDScript's `typeof`, in Lua this does not return the enum like `TYPE_BOOL` or `TYPE_DICTIONARY`, but rather the actual class type like `bool` or `Dictionary`. +--- ``` +--- if typeof(some_value) == Dictionary then +--- -- ... +--- end +--- ``` +--- Note: only available if `GODOT_VARIANT` library is open in the LuaState. +--- @param value any +--- @return userdata? +function typeof(value) end diff --git a/addons/lua-gdextension/lua_api_definitions/utility_functions.lua b/addons/lua-gdextension/lua_api_definitions/utility_functions.lua new file mode 100644 index 0000000..4d91716 --- /dev/null +++ b/addons/lua-gdextension/lua_api_definitions/utility_functions.lua @@ -0,0 +1,522 @@ +--- This file was automatically generated by generate_lua_godot_api.py +--- @meta + +--- @param angle_rad float +--- @return float +function sin(angle_rad) end + +--- @param angle_rad float +--- @return float +function cos(angle_rad) end + +--- @param angle_rad float +--- @return float +function tan(angle_rad) end + +--- @param x float +--- @return float +function sinh(x) end + +--- @param x float +--- @return float +function cosh(x) end + +--- @param x float +--- @return float +function tanh(x) end + +--- @param x float +--- @return float +function asin(x) end + +--- @param x float +--- @return float +function acos(x) end + +--- @param x float +--- @return float +function atan(x) end + +--- @param y float +--- @param x float +--- @return float +function atan2(y, x) end + +--- @param x float +--- @return float +function asinh(x) end + +--- @param x float +--- @return float +function acosh(x) end + +--- @param x float +--- @return float +function atanh(x) end + +--- @param x float +--- @return float +function sqrt(x) end + +--- @param x float +--- @param y float +--- @return float +function fmod(x, y) end + +--- @param x float +--- @param y float +--- @return float +function fposmod(x, y) end + +--- @param x int +--- @param y int +--- @return int +function posmod(x, y) end + +--- @param x any +--- @return any +function floor(x) end + +--- @param x float +--- @return float +function floorf(x) end + +--- @param x float +--- @return int +function floori(x) end + +--- @param x any +--- @return any +function ceil(x) end + +--- @param x float +--- @return float +function ceilf(x) end + +--- @param x float +--- @return int +function ceili(x) end + +--- @param x any +--- @return any +function round(x) end + +--- @param x float +--- @return float +function roundf(x) end + +--- @param x float +--- @return int +function roundi(x) end + +--- @param x any +--- @return any +function abs(x) end + +--- @param x float +--- @return float +function absf(x) end + +--- @param x int +--- @return int +function absi(x) end + +--- @param x any +--- @return any +function sign(x) end + +--- @param x float +--- @return float +function signf(x) end + +--- @param x int +--- @return int +function signi(x) end + +--- @param x any +--- @param step any +--- @return any +function snapped(x, step) end + +--- @param x float +--- @param step float +--- @return float +function snappedf(x, step) end + +--- @param x float +--- @param step int +--- @return int +function snappedi(x, step) end + +--- @param base float +--- @param exp float +--- @return float +function pow(base, exp) end + +--- @param x float +--- @return float +function log(x) end + +--- @param x float +--- @return float +function exp(x) end + +--- @param x float +--- @return bool +function is_nan(x) end + +--- @param x float +--- @return bool +function is_inf(x) end + +--- @param a float +--- @param b float +--- @return bool +function is_equal_approx(a, b) end + +--- @param x float +--- @return bool +function is_zero_approx(x) end + +--- @param x float +--- @return bool +function is_finite(x) end + +--- @param x float +--- @param curve float +--- @return float +function ease(x, curve) end + +--- @param x float +--- @return int +function step_decimals(x) end + +--- @param from any +--- @param to any +--- @param weight any +--- @return any +function lerp(from, to, weight) end + +--- @param from float +--- @param to float +--- @param weight float +--- @return float +function lerpf(from, to, weight) end + +--- @param from float +--- @param to float +--- @param pre float +--- @param post float +--- @param weight float +--- @return float +function cubic_interpolate(from, to, pre, post, weight) end + +--- @param from float +--- @param to float +--- @param pre float +--- @param post float +--- @param weight float +--- @return float +function cubic_interpolate_angle(from, to, pre, post, weight) end + +--- @param from float +--- @param to float +--- @param pre float +--- @param post float +--- @param weight float +--- @param to_t float +--- @param pre_t float +--- @param post_t float +--- @return float +function cubic_interpolate_in_time(from, to, pre, post, weight, to_t, pre_t, post_t) end + +--- @param from float +--- @param to float +--- @param pre float +--- @param post float +--- @param weight float +--- @param to_t float +--- @param pre_t float +--- @param post_t float +--- @return float +function cubic_interpolate_angle_in_time(from, to, pre, post, weight, to_t, pre_t, post_t) end + +--- @param start float +--- @param control_1 float +--- @param control_2 float +--- @param _end float +--- @param t float +--- @return float +function bezier_interpolate(start, control_1, control_2, _end, t) end + +--- @param start float +--- @param control_1 float +--- @param control_2 float +--- @param _end float +--- @param t float +--- @return float +function bezier_derivative(start, control_1, control_2, _end, t) end + +--- @param from float +--- @param to float +--- @return float +function angle_difference(from, to) end + +--- @param from float +--- @param to float +--- @param weight float +--- @return float +function lerp_angle(from, to, weight) end + +--- @param from float +--- @param to float +--- @param weight float +--- @return float +function inverse_lerp(from, to, weight) end + +--- @param value float +--- @param istart float +--- @param istop float +--- @param ostart float +--- @param ostop float +--- @return float +function remap(value, istart, istop, ostart, ostop) end + +--- @param from float +--- @param to float +--- @param x float +--- @return float +function smoothstep(from, to, x) end + +--- @param from float +--- @param to float +--- @param delta float +--- @return float +function move_toward(from, to, delta) end + +--- @param from float +--- @param to float +--- @param delta float +--- @return float +function rotate_toward(from, to, delta) end + +--- @param deg float +--- @return float +function deg_to_rad(deg) end + +--- @param rad float +--- @return float +function rad_to_deg(rad) end + +--- @param lin float +--- @return float +function linear_to_db(lin) end + +--- @param db float +--- @return float +function db_to_linear(db) end + +--- @param value any +--- @param min any +--- @param max any +--- @return any +function wrap(value, min, max) end + +--- @param value int +--- @param min int +--- @param max int +--- @return int +function wrapi(value, min, max) end + +--- @param value float +--- @param min float +--- @param max float +--- @return float +function wrapf(value, min, max) end + +--- @param arg1 any +--- @param arg2 any +--- @return any +function max(arg1, arg2, ...) end + +--- @param a int +--- @param b int +--- @return int +function maxi(a, b) end + +--- @param a float +--- @param b float +--- @return float +function maxf(a, b) end + +--- @param arg1 any +--- @param arg2 any +--- @return any +function min(arg1, arg2, ...) end + +--- @param a int +--- @param b int +--- @return int +function mini(a, b) end + +--- @param a float +--- @param b float +--- @return float +function minf(a, b) end + +--- @param value any +--- @param min any +--- @param max any +--- @return any +function clamp(value, min, max) end + +--- @param value int +--- @param min int +--- @param max int +--- @return int +function clampi(value, min, max) end + +--- @param value float +--- @param min float +--- @param max float +--- @return float +function clampf(value, min, max) end + +--- @param value int +--- @return int +function nearest_po2(value) end + +--- @param value float +--- @param length float +--- @return float +function pingpong(value, length) end + +function randomize() end + +--- @return int +function randi() end + +--- @return float +function randf() end + +--- @param from int +--- @param to int +--- @return int +function randi_range(from, to) end + +--- @param from float +--- @param to float +--- @return float +function randf_range(from, to) end + +--- @param mean float +--- @param deviation float +--- @return float +function randfn(mean, deviation) end + +--- @param base int +function seed(base) end + +--- @param seed int +--- @return PackedInt64Array +function rand_from_seed(seed) end + +--- @param obj any +--- @return any +function weakref(obj) end + +--- @param variant any +--- @param type int +--- @return any +function type_convert(variant, type) end + +--- @param arg1 any +--- @return String +function str(arg1, ...) end + +--- @param error int +--- @return String +function error_string(error) end + +--- @param type int +--- @return String +function type_string(type) end + +--- @param arg1 any +function print(arg1, ...) end + +--- @param arg1 any +function print_rich(arg1, ...) end + +--- @param arg1 any +function printerr(arg1, ...) end + +--- @param arg1 any +function printt(arg1, ...) end + +--- @param arg1 any +function prints(arg1, ...) end + +--- @param arg1 any +function printraw(arg1, ...) end + +--- @param arg1 any +function print_verbose(arg1, ...) end + +--- @param arg1 any +function push_error(arg1, ...) end + +--- @param arg1 any +function push_warning(arg1, ...) end + +--- @param variable any +--- @return String +function var_to_str(variable) end + +--- @param string String +--- @return any +function str_to_var(string) end + +--- @param variable any +--- @return PackedByteArray +function var_to_bytes(variable) end + +--- @param bytes PackedByteArray +--- @return any +function bytes_to_var(bytes) end + +--- @param variable any +--- @return PackedByteArray +function var_to_bytes_with_objects(variable) end + +--- @param bytes PackedByteArray +--- @return any +function bytes_to_var_with_objects(bytes) end + +--- @param variable any +--- @return int +function hash(variable) end + +--- @param instance_id int +--- @return Object +function instance_from_id(instance_id) end + +--- @param id int +--- @return bool +function is_instance_id_valid(id) end + +--- @param instance any +--- @return bool +function is_instance_valid(instance) end + +--- @return int +function rid_allocate_id() end + +--- @param base int +--- @return RID +function rid_from_int64(base) end + +--- @param a any +--- @param b any +--- @return bool +function is_same(a, b) end diff --git a/addons/lua-gdextension/lua_repl.gd b/addons/lua-gdextension/lua_repl.gd new file mode 100644 index 0000000..3d39186 --- /dev/null +++ b/addons/lua-gdextension/lua_repl.gd @@ -0,0 +1,146 @@ +# Copyright (C) 2026 Gil Barbosa Reis. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the “Software”), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is furnished to do +# so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +@tool +extends Node + +@onready var _output: RichTextLabel = $Output +@onready var _input: LineEdit = $Footer/Input +@onready var _history_popup: PopupMenu = $Header/HistoryButton.get_popup() +var _lua: LuaState +var _history = PackedStringArray() +var _current_history = 0 + + +func _ready(): + _history_popup.about_to_popup.connect(_on_history_popup_about_to_popup) + _history_popup.id_pressed.connect(_on_history_popup_id_pressed) + reset() + + +func reset(): + _lua = LuaState.new() + _lua.open_libraries() + _lua.registry.print = _printn + _lua.globals.package.path = ProjectSettings.get_setting_with_override("lua_gdextension/lua_script_language/package_path") + _lua.globals.package.cpath = ProjectSettings.get_setting_with_override("lua_gdextension/lua_script_language/package_c_path") + _lua.load_string(r""" + local tab_size = ... + local indent = string.rep(' ', tab_size) + print = function(...) + local args = {...} + for i = 1, #args do + args[i] = tostring(args[i]) + end + debug.getregistry().print(table.concat(args, indent)) + end + """).invoke(_output.tab_size) + + _history.clear() + _current_history = 0 + clear() + + +func do_string(text: String): + text = text.strip_edges() + if text.is_empty(): + return + + _history.append(text) + _current_history = _history.size() + _input.clear() + _printn(text) + + # support for "= value" idiom from Lua 5.1 REPL + text.trim_prefix("=") + + var result = _lua.do_string("return " + text) + if result is LuaError: + result = _lua.do_string(text) + + if result is LuaError: + _print_error(result.message) + else: + _printn("Out[%d]: %s" % [_current_history, result]) + _prompt() + + +func clear(): + _output.clear() + _prompt() + + +func set_history(index: int): + if index < 0 or index >= _history.size(): + return + + _current_history = index + var text = _history[index] + _input.text = text + _input.caret_column = text.length() + + +func _prompt(): + _print("\nIn [%d]: " % [_current_history + 1]) + + +func _print(msg: String): + self._output.add_text(msg) + + +func _printn(msg: String): + _print(msg) + _print("\n") + + +func _print_error(msg: String): + var color: Color = EditorInterface.get_editor_settings().get_setting("text_editor/theme/highlighting/brace_mismatch_color") + self._output.append_text("[color=%s]%s[/color]\n" % [color.to_html(), msg.replace("[", "[lb]")]) + + +func _on_history_popup_about_to_popup(): + _history_popup.clear() + for line in _history: + _history_popup.add_item(line) + + +func _on_history_popup_id_pressed(id: int): + set_history(id) + + +func _on_input_text_submitted(new_text: String): + do_string(new_text) + + +func _on_run_button_pressed(): + do_string(_input.text) + + +func _on_input_gui_input(event: InputEvent): + var key_event = event as InputEventKey + if not key_event or not key_event.pressed: + return + + if key_event.keycode == KEY_UP: + set_history(_current_history - 1) + get_viewport().set_input_as_handled() + elif key_event.keycode == KEY_DOWN: + set_history(_current_history + 1) + get_viewport().set_input_as_handled() diff --git a/addons/lua-gdextension/lua_repl.gd.uid b/addons/lua-gdextension/lua_repl.gd.uid new file mode 100644 index 0000000..7626d98 --- /dev/null +++ b/addons/lua-gdextension/lua_repl.gd.uid @@ -0,0 +1 @@ +uid://bjod0yq2efea8 diff --git a/addons/lua-gdextension/lua_repl.tscn b/addons/lua-gdextension/lua_repl.tscn new file mode 100644 index 0000000..60c8c9c --- /dev/null +++ b/addons/lua-gdextension/lua_repl.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=2 format=3 uid="uid://4lq5s4lnqg8c"] + +[ext_resource type="Script" uid="uid://bjod0yq2efea8" path="res://addons/lua-gdextension/lua_repl.gd" id="1_gf8ka"] + +[node name="LuaRepl" type="VBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_gf8ka") + +[node name="Header" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="Title" type="Label" parent="Header"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Lua REPL" + +[node name="HistoryButton" type="MenuButton" parent="Header"] +layout_mode = 2 +text = "History" +flat = false + +[node name="ResetButton" type="Button" parent="Header"] +layout_mode = 2 +tooltip_text = "Reset the Lua environment and REPL history" +text = "Reset" + +[node name="ClearButton" type="Button" parent="Header"] +layout_mode = 2 +tooltip_text = "Clear the output text" +text = "Clear" + +[node name="Output" type="RichTextLabel" parent="."] +layout_mode = 2 +size_flags_vertical = 3 +focus_mode = 2 +scroll_following = true +selection_enabled = true + +[node name="Footer" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="Input" type="LineEdit" parent="Footer"] +layout_mode = 2 +size_flags_horizontal = 3 +keep_editing_on_text_submit = true + +[node name="RunButton" type="Button" parent="Footer"] +layout_mode = 2 +text = "Run" + +[connection signal="pressed" from="Header/ResetButton" to="." method="reset"] +[connection signal="pressed" from="Header/ClearButton" to="." method="clear"] +[connection signal="gui_input" from="Footer/Input" to="." method="_on_input_gui_input"] +[connection signal="text_submitted" from="Footer/Input" to="." method="_on_input_text_submitted"] +[connection signal="pressed" from="Footer/RunButton" to="." method="_on_run_button_pressed"] diff --git a/addons/lua-gdextension/luagdextension.gdextension b/addons/lua-gdextension/luagdextension.gdextension new file mode 100644 index 0000000..305ca9f --- /dev/null +++ b/addons/lua-gdextension/luagdextension.gdextension @@ -0,0 +1,45 @@ +[configuration] +entry_symbol = "luagdextension_entrypoint" +compatibility_minimum = "4.4" +reloadable = true + +[libraries] +macos.debug = "build/libluagdextension.macos.template_debug.universal.dylib" +macos.release = "build/libluagdextension.macos.template_release.universal.dylib" +ios.debug = "build/libluagdextension.ios.template_debug.universal.xcframework" +ios.release = "build/libluagdextension.ios.template_release.universal.xcframework" +windows.debug.x86_32 = "build/libluagdextension.windows.template_debug.x86_32.dll" +windows.release.x86_32 = "build/libluagdextension.windows.template_release.x86_32.dll" +windows.debug.x86_64 = "build/libluagdextension.windows.template_debug.x86_64.dll" +windows.release.x86_64 = "build/libluagdextension.windows.template_release.x86_64.dll" +windows.debug.arm64 = "build/libluagdextension.windows.template_debug.arm64.dll" +windows.release.arm64 = "build/libluagdextension.windows.template_release.arm64.dll" +linux.debug.x86_32 = "build/libluagdextension.linux.template_debug.x86_32.so" +linux.release.x86_32 = "build/libluagdextension.linux.template_release.x86_32.so" +linux.debug.x86_64 = "build/libluagdextension.linux.template_debug.x86_64.so" +linux.release.x86_64 = "build/libluagdextension.linux.template_release.x86_64.so" +linux.debug.arm64 = "build/libluagdextension.linux.template_debug.arm64.so" +linux.release.arm64 = "build/libluagdextension.linux.template_release.arm64.so" +android.debug.x86_32 = "build/libluagdextension.android.template_debug.x86_32.so" +android.release.x86_32 = "build/libluagdextension.android.template_release.x86_32.so" +android.debug.x86_64 = "build/libluagdextension.android.template_debug.x86_64.so" +android.release.x86_64 = "build/libluagdextension.android.template_release.x86_64.so" +android.debug.arm32 = "build/libluagdextension.android.template_debug.arm32.so" +android.release.arm32 = "build/libluagdextension.android.template_release.arm32.so" +android.debug.arm64 = "build/libluagdextension.android.template_debug.arm64.so" +android.release.arm64 = "build/libluagdextension.android.template_release.arm64.so" +web.debug.threads.wasm32 = "build/libluagdextension.web.template_debug.wasm32.wasm" +web.release.threads.wasm32 = "build/libluagdextension.web.template_release.wasm32.wasm" +web.debug.wasm32 = "build/libluagdextension.web.template_debug.wasm32.nothreads.wasm" +web.release.wasm32 = "build/libluagdextension.web.template_release.wasm32.nothreads.wasm" + +[icons] +LuaScript = "LuaScript_icon.svg" + +[dependencies] +ios.debug = { + "build/libgodot-cpp.ios.template_debug.universal.xcframework": "" +} +ios.release = { + "build/libgodot-cpp.ios.template_release.universal.xcframework": "" +} diff --git a/addons/lua-gdextension/luagdextension.gdextension.uid b/addons/lua-gdextension/luagdextension.gdextension.uid new file mode 100644 index 0000000..8a53780 --- /dev/null +++ b/addons/lua-gdextension/luagdextension.gdextension.uid @@ -0,0 +1 @@ +uid://d3k6wyksykaj2 diff --git a/addons/lua-gdextension/plugin.cfg b/addons/lua-gdextension/plugin.cfg new file mode 100644 index 0000000..703b6b1 --- /dev/null +++ b/addons/lua-gdextension/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Lua GDExtension" +description="Tools for Lua GDExtension: REPL tab" +author="gilzoide" +version="0.7.0" +script="plugin.gd" diff --git a/addons/lua-gdextension/plugin.gd b/addons/lua-gdextension/plugin.gd new file mode 100644 index 0000000..46d7311 --- /dev/null +++ b/addons/lua-gdextension/plugin.gd @@ -0,0 +1,37 @@ +# Copyright (C) 2026 Gil Barbosa Reis. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the “Software”), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is furnished to do +# so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +@tool +extends EditorPlugin + + +var _lua_repl: Control + + +func _enter_tree(): + _lua_repl = preload("lua_repl.tscn").instantiate() + add_control_to_bottom_panel(_lua_repl, "Lua REPL") + + +func _exit_tree(): + if _lua_repl: + remove_control_from_bottom_panel(_lua_repl) + _lua_repl.queue_free() + _lua_repl = null diff --git a/addons/lua-gdextension/plugin.gd.uid b/addons/lua-gdextension/plugin.gd.uid new file mode 100644 index 0000000..15bcde4 --- /dev/null +++ b/addons/lua-gdextension/plugin.gd.uid @@ -0,0 +1 @@ +uid://cwp2hwkpbitgx